Compare commits

..

819 Commits

Author SHA1 Message Date
Valerie Peng
78c9fb92aa 8258851: Mismatch in SunPKCS11 provider registration properties and actual implementation
Reviewed-by: weijun
2020-12-23 22:36:45 +00:00
Harold Seigel
fda0943419 8258839: Remove JVM option ExitVMOnVerifyError
Reviewed-by: iignatyev, dcubed, coleenp
2020-12-23 20:49:36 +00:00
Valerie Peng
cd94606c0c 8258186: Replace use of JNI_COMMIT mode with mode 0
Reviewed-by: xuelei, alanb
2020-12-23 20:47:54 +00:00
Daniel D. Daugherty
e46edb5528 8258911: ProblemList serviceability/attach/RemovingUnixDomainSocketTest.java on Linux-X64
Reviewed-by: amenkov
2020-12-23 20:30:27 +00:00
Prasanta Sadhukhan
91244cc738 8258557: Deproblemlist fixed problemlisted test
Reviewed-by: trebari, serb
2020-12-23 16:35:31 +00:00
Harold Seigel
244573509d 8258837: Remove JVM option DisableStartThread
Reviewed-by: kbarrett, dcubed
2020-12-23 14:45:13 +00:00
Sean Coffey
a4e082e985 8253368: TLS connection always receives close_notify exception
Reviewed-by: xuelei
2020-12-23 12:26:44 +00:00
Hao Sun
4ea88512dd 8257928: Test image build failure with clang-10 due to -Wmisleading-indentation
Reviewed-by: amenkov, cjplummer
2020-12-23 01:32:05 +00:00
Jesper Wilhelmsson
f2bad3a0be Merge 2020-12-22 21:16:59 +00:00
Xue-Lei Andrew Fan
47c9b437af 8258828: The method local variable is not really used
Reviewed-by: jnimeh, wetmore
2020-12-22 19:43:20 +00:00
Lin Zang
0ae78d4cd0 8258593: remove redundant codes in HeapObjectDumper
Reviewed-by: coleenp, lfoltan, cjplummer
2020-12-22 19:19:51 +00:00
Daniel D. Daugherty
61e5e393a7 8258832: ProblemList com/sun/jdi/AfterThreadDeathTest.java on Linux-X64
Reviewed-by: ccheung, amenkov
2020-12-22 18:59:36 +00:00
Xue-Lei Andrew Fan
39e03a0b2c 8258804: Collection.toArray() should use empty array
Reviewed-by: mullan
2020-12-22 18:12:37 +00:00
Daniel D. Daugherty
eabc9030ab 8258827: ProblemList Naming/DefaultRegistryPort.java and Naming/legalRegistryNames/LegalRegistryNames.java on Windows
Reviewed-by: rriggs, msheppar, prr
2020-12-22 17:15:34 +00:00
Weijun Wang
9e463d1a88 8258631: Remove sun.security.jgss.krb5.Krb5Util.getSubject()
Reviewed-by: xuelei
2020-12-22 16:41:19 +00:00
Corey Ashford
0849117d5c 8256431: [PPC64] Implement Base64 encodeBlock() for Power64-LE
Reviewed-by: mdoerr
2020-12-22 14:19:32 +00:00
Daniel D. Daugherty
172af1524d 8258284: clean up issues with nested ThreadsListHandles
Reviewed-by: eosterlund, rehn
2020-12-22 14:07:43 +00:00
Daniel D. Daugherty
88dd6a9434 8258802: ProblemList TestJstatdDefaults.java, TestJstatdRmiPort.java, and TestJstatdServer.java
Reviewed-by: amenkov, cjplummer
2020-12-22 13:43:17 +00:00
Vladimir Ivanov
772addfd24 8258790: C2: Crash on empty macro node list
Reviewed-by: kvn, chagedorn
2020-12-22 12:12:21 +00:00
Roberto Castañeda Lozano
3df6ec2fbc 8258682: compiler/intrinsics/mathexact/sanity tests fail with RepeatCompilation
Normalize match and suspect counts in the verify() method by the number of
compilation repetitions, if the RepeatCompilation option is used.

Reviewed-by: kvn, chagedorn
2020-12-22 10:04:00 +00:00
Jie Fu
1594372c28 8258584: java/util/HexFormat/HexFormatTest.java fails on x86_32
Reviewed-by: rriggs
2020-12-22 02:07:33 +00:00
Xin Liu
30b9ff660f 8258653: CallJavaNode::_bci is not in use
Reviewed-by: kvn, vlivanov
2020-12-21 23:27:33 +00:00
Xue-Lei Andrew Fan
12297a00ef 8258736: No break in the loop
Reviewed-by: wetmore
2020-12-21 19:09:03 +00:00
Guoxiong Li
01d51a101a 8231622: SuppressWarning("serial") ignored on field serialVersionUID
Reviewed-by: jjg
2020-12-21 17:50:21 +00:00
Jonathan Gibbons
8da7c58016 8258443: doclint should be service-loaded with system class loader
Reviewed-by: alanb
2020-12-21 17:04:37 +00:00
Roberto Castañeda Lozano
4e8338eb13 8255763: C2: OSR miscompilation caused by invalid memory instruction placement
Disable GCM hoisting of memory-writing nodes for irreducible CFGs. This prevents
GCM from wrongly "hoisting" stores into descendants of their original loop. Such
an "inverted hoisting" can happen due to CFGLoop::compute_freq()'s inaccurate
estimation of frequencies for irreducible CFGs.

Extend CFG verification code by checking that memory-writing nodes are placed in
either their original loop or an ancestor.

Add tests for the reducible and irreducible cases. The former was already
handled correctly before the change (the frequency estimation model prevents
"inverted hoisting" for reducible CFGs), and is just added for coverage.

This change addresses the specific miscompilation issue in a conservative way,
for simplicity and safety. Future work includes investigating if only the
illegal blocks can be discarded as candidates for GCM hoisting, and refining
frequency estimation for irreducible CFGs.

Reviewed-by: kvn, chagedorn
2020-12-21 13:04:24 +00:00
Roman Kennke
2525f39d35 8258714: Shenandoah: Process references before evacuation during degen
Reviewed-by: shade
2020-12-21 12:42:34 +00:00
Jaroslav Bachorik
a06cea50a5 8258396: SIGILL in jdk.jfr.internal.PlatformRecorder.rotateDisk()
Reviewed-by: mgronlun
2020-12-21 11:43:13 +00:00
Jesper Wilhelmsson
d234388042 Merge 2020-12-21 09:09:05 +00:00
Anton Kozlov
d4c7db5060 8257620: Do not use objc_msgSend_stret to get macOS version
Reviewed-by: ihse, rriggs
2020-12-21 08:44:59 +00:00
Christian Hagedorn
8e42efaada 8257513: C2: assert((constant_addr - _masm.code()->consts()->start()) == con.offset())
Reviewed-by: kvn, thartmann
2020-12-21 08:06:48 +00:00
Phil Race
fa50877c2e 8257853: Remove dependencies on JNF's JNI utility functions in AWT and 2D code
Reviewed-by: psadhukhan, kizune
2020-12-19 23:35:04 +00:00
Andrey Turbanov
580af4906d 8258006: Replaces while cycles with iterator with enhanced for in java.desktop
Reviewed-by: prr, serb
2020-12-19 22:19:41 +00:00
Alexander Zuev
dc7f01f448 8257584: [macos] NullPointerException originating from LWCToolkit.java
Reviewed-by: serb
2020-12-19 21:34:34 +00:00
Prasanta Sadhukhan
c7c53d016e 8258554: javax/swing/JTable/4235420/bug4235420.java fails in GTK L&F
Reviewed-by: serb
2020-12-19 12:00:18 +00:00
Doug Simon
c50b464a12 8258715: [JVMCI] separate JVMCI code install timers for CompileBroker and hosted compilations
Reviewed-by: kvn
2020-12-19 11:17:16 +00:00
Mikael Vidstedt
64644a1072 8253881: Hotspot/Serviceability Terminology Refresh
Reviewed-by: kbarrett, tschatzl, dholmes, lfoltan, dcubed
2020-12-19 02:47:28 +00:00
Brent Christian
e680ebeb2f 8258007: Add instrumentation to NativeLibraryTest
Reviewed-by: mchung, naoto
2020-12-19 00:17:02 +00:00
Alexandre Iline
6a78b2a2b2 8258645: Bring Jemmy 1.3.11 to JDK test base
Reviewed-by: serb
2020-12-18 21:16:35 +00:00
Igor Veresov
7f92d187b1 8258553: Limit number of fields in instance to be considered for scalar replacement
Reviewed-by: kvn, vlivanov
2020-12-18 21:08:04 +00:00
Xin Liu
adf0e23aa2 8257800: CompileCommand TypedMethodOptionMatcher::parse_method_pattern() may over consume
Reviewed-by: thartmann, chagedorn, phh
2020-12-18 20:35:38 +00:00
Yumin Qi
06c24e14eb 8256213: Remove os::split_reserved_memory
Reviewed-by: ccheung, iklam
2020-12-18 20:23:43 +00:00
Chris Hegarty
be41468c83 8258696: Temporarily revert use of pattern match instanceof until docs-reference is fixed
Reviewed-by: rriggs, dcubed, bpb, jjg, dfuchs, aefimov
2020-12-18 19:49:28 +00:00
Xue-Lei Andrew Fan
a4f393caf4 8258661: Inner class ResponseCacheEntry could be static
Reviewed-by: jnimeh
2020-12-18 19:01:57 +00:00
Xue-Lei Andrew Fan
3c488199c4 8169086: DTLS tests fail intermittently with too much loops or timeout
Reviewed-by: ascarpino
2020-12-18 18:52:52 +00:00
Jonathan Gibbons
c04c7e1f10 8258002: Update "type" terminology in generated docs
Reviewed-by: hannesw
2020-12-18 18:34:25 +00:00
Leonid Mesnik
71ae05d51f 8258061: Improve diagnostic information about errors during class redefinition
Reviewed-by: coleenp, sspitsyn
2020-12-18 16:40:12 +00:00
Roger Riggs
68f2acbf4c 8252055: Use java.util.HexFormat in java.security
Reviewed-by: xuelei
2020-12-18 16:35:11 +00:00
Roger Riggs
1dae45d745 8250523: Remove abortOnException diagnostic option from TestHumongousNonArrayAllocation.java
Reviewed-by: kbarrett
2020-12-18 16:34:17 +00:00
Hannes Wallnöfer
45bd3b9ec0 8223607: --override-methods=summary ignores some signature changes
Reviewed-by: jjg
2020-12-18 15:46:25 +00:00
Kim Barrett
00d80fdd86 8258255: Move PtrQueue active flag to SATBMarkQueue
Reviewed-by: tschatzl, sjohanss
2020-12-18 15:08:46 +00:00
Jie Fu
59ae054873 8258687: Build broken on Windows after fix for JDK-8258134
Reviewed-by: thartmann
2020-12-18 14:13:01 +00:00
Joel Borggrén-Franck
1cc98bde67 8256693: getAnnotatedReceiverType parameterizes types too eagerly
Reviewed-by: vromero
2020-12-18 13:34:36 +00:00
Richard Reingruber
1ce2e94f5f 8256843: [PPC64] runtime/logging/RedefineClasses.java fails with assert: registers not saved on stack
Reviewed-by: mdoerr, lucy
2020-12-18 13:16:09 +00:00
Jie Fu
45a150b8dc 8258134: assert(size == calc_size) failed: incorrect size calculation on x86_32 with AVX512 machines
Reviewed-by: kvn, thartmann
2020-12-18 12:50:19 +00:00
Stefan Johansson
38593a4f2a 8257974: Regression 21% in DaCapo-lusearch-large after JDK-8236926
Reviewed-by: ayang, redestad, tschatzl
2020-12-18 08:14:58 +00:00
Thomas Stuefe
853c04712d 8258469: Cleanup remaining safefetch test coding
Reviewed-by: coleenp, dholmes
2020-12-18 08:13:16 +00:00
Sergey Bylokhov
7afb01dce9 8258373: Update the text handling in the JPasswordField
Reviewed-by: kizune, prr, psadhukhan
2020-12-18 06:26:16 +00:00
Yasumasa Suenaga
1e03ca13cc 8258471: "search codecache" clhsdb command does not work
Reviewed-by: cjplummer, sspitsyn
2020-12-18 04:50:09 +00:00
Stuart Marks
cbc3feeb89 8258259: Unicode linebreak matching behavior is incorrect; backout JDK-8235812
Reviewed-by: naoto
2020-12-18 00:36:33 +00:00
Nils Eliasson
7320e051ea 8258647: TestCharVect2 is very slow
Reviewed-by: vlivanov, kvn
2020-12-17 22:43:00 +00:00
Daniel Fuchs
3f77a6002e 8258582: HttpClient: the HttpClient doesn't explicitly shutdown its default executor when stopping.
Reviewed-by: chegar, michaelm
2020-12-17 22:33:38 +00:00
Rajan Halade
9fdfc6dfc6 8225072: Add LuxTrust certificate that is expiring in March 2021 to list of allowed but expired certs
8258630: Add expiry exception for QuoVadis root certificate

Backport-of: 666e6c4033
2020-12-17 22:14:25 +00:00
Jesper Wilhelmsson
f15528eb64 Merge 2020-12-17 20:41:37 +00:00
Rajan Halade
666e6c4033 8225072: Add LuxTrust certificate that is expiring in March 2021 to list of allowed but expired certs
8258630: Add expiry exception for QuoVadis root certificate

Reviewed-by: ascarpino
2020-12-17 20:27:25 +00:00
Hai-May Chao
b0b70df4ad 8246005: KeyStoreSpi::engineStore(LoadStoreParameter) spec mismatch to its behavior
Reviewed-by: xuelei
2020-12-17 20:10:54 +00:00
Jie Kang
763623db80 8258524: Instrumented EventHandler calls private instance method EventWriter.reset
Reviewed-by: mgronlun
2020-12-17 19:21:13 +00:00
Coleen Phillimore
6e824b3f51 8258408: SystemDictionary passes TRAPS to functions that don't throw exceptions
Reviewed-by: dholmes, lfoltan
2020-12-17 18:49:42 +00:00
Jonathan Gibbons
30ca0a5d4b 8247994: Localize javadoc search
Reviewed-by: hannesw, ihse
2020-12-17 18:34:27 +00:00
Phil Race
9ed0b76403 8254850: Update terminology in java.awt.GridBagLayout source code comments
Reviewed-by: kcr, kizune
2020-12-17 18:21:40 +00:00
Vicente Romero
47c180da43 8258515: javac should issue an error if an annotation is nested in a local class or interface
Reviewed-by: jjg
2020-12-17 18:08:35 +00:00
Nils Eliasson
cb5a6b1a7d 8258225: compiler/c2/cr6340864/TestIntVect.java runs faster in interpreter
Reviewed-by: vlivanov, thartmann, kvn
2020-12-17 17:50:53 +00:00
Patricio Chilano Mateo
7b05439dcc 8258057: serviceability/attach/RemovingUnixDomainSocketTest.java doesn't ignore VM warnings
Reviewed-by: cjplummer, amenkov, dholmes
2020-12-17 16:41:50 +00:00
Brian Burkhalter
143998e46c 8248383: Clarify java.io.Reader.read(char[], ...) behavior for full array
Reviewed-by: naoto, smarks, rriggs
2020-12-17 16:29:57 +00:00
Coleen Phillimore
8251b74665 8257530: vmTestbase/metaspace/stressDictionary/StressDictionary.java timed out
Reviewed-by: lfoltan
2020-12-17 15:40:44 +00:00
Alexey Semenyuk
61cbf0fffe 8258293: tools/jpackage/share/RuntimePackageTest.java#id0 with RuntimePackageTest.testUsrInstallDir2
Reviewed-by: almatvee, herrick
2020-12-17 15:33:03 +00:00
Markus Grönlund
7aac4dc175 8257621: JFR StringPool misses cached items across consecutive recordings
Reviewed-by: egahlin
2020-12-17 14:34:44 +00:00
Kim Barrett
61390d8e45 8257999: Parallel GC crash in gc/parallel/TestDynShrinkHeap.java: new region is not in covered_region
Reviewed-by: sjohanss, tschatzl
2020-12-17 14:18:00 +00:00
Coleen Phillimore
6aa8eed352 8258415: gtest for committed memory leaks reservation
Reviewed-by: hseigel, stuefe
2020-12-17 13:35:09 +00:00
Julia Boes
952dc70402 8257636: Update usage of "type" terminology in java.lang.Class and java.lang.reflect
Reviewed-by: darcy
2020-12-17 11:32:58 +00:00
Xin Liu
83be8a902c 8247732: validate user-input intrinsic_ids in ControlIntrinsic
renew webrev to the latest jdk. fixed a typo and a bug.  Add constraints for both DisableIntrinsic and ControlIntrinsics.  Add tests to cover different use cases of them.

Reviewed-by: neliasso, thartmann
2020-12-17 10:05:09 +00:00
Christian Hagedorn
04a1e5b75b 8258505: [TESTBUG] TestDivZeroWithSplitIf.java fails due to missing UnlockDiagnosticVMOptions
Reviewed-by: thartmann, kvn, dcubed
2020-12-17 08:09:19 +00:00
Guoxiong Li
41f312eb64 8254023: A module declaration is not allowed to be a target of an annotation that lacks an @Target meta-annotation
Reviewed-by: jfranck, vromero
2020-12-17 08:06:35 +00:00
Thomas Stuefe
178c00182c 8258479: Minor cleanups in VMError
Reviewed-by: lfoltan, coleenp
2020-12-17 05:26:11 +00:00
Jatin Bhateja
c11525a45e 8257772: Vectorizing clear memory operation using AVX-512 masked operations
Reviewed-by: thartmann, kvn
2020-12-17 04:42:19 +00:00
Prasanta Sadhukhan
d77b49d172 8258233: Reenable another fixed problemlisted test
Reviewed-by: trebari, jdv
2020-12-17 04:36:02 +00:00
Prasanta Sadhukhan
513269d24e 8196093: javax/swing/JComboBox/8072767/bug8072767.java fails
Reviewed-by: prr
2020-12-17 03:32:46 +00:00
Nick Gasson
643ddc1320 8257882: Implement linkToNative intrinsic on AArch64
Reviewed-by: jvernee, mcimadamore, aph
2020-12-17 03:24:40 +00:00
Jesper Wilhelmsson
11bd7a814f Merge 2020-12-17 03:04:19 +00:00
Brent Christian
b2f035549a 8253497: Core Libs Terminology Refresh
Reviewed-by: naoto, kcr, rriggs, joehw, bpb, smarks, alanb
2020-12-16 23:09:20 +00:00
Jonathan Gibbons
ce0ab2dd84 8258338: Support deprecated records
Reviewed-by: hannesw
2020-12-16 22:26:57 +00:00
Jonathan Gibbons
6b4b676550 8241353: NPE in ToolProvider.getSystemJavaCompiler
Reviewed-by: vromero
2020-12-16 22:21:54 +00:00
Magnus Ihse Bursie
a244b82293 8258411: Move module set configuration from Modules.gmk to conf dir
Reviewed-by: alanb, mchung
2020-12-16 21:57:32 +00:00
Roger Riggs
aa9c136d67 8251989: Hex formatting and parsing utility
Reviewed-by: tvaleev, chegar, naoto, darcy
2020-12-16 20:29:49 +00:00
Anton Litvinov
87644a2bb7 8255880: UI of Swing components is not redrawn after their internal state changed
Reviewed-by: prr
Backport-of: e8c40bafa5
2020-12-16 19:48:07 +00:00
Xue-Lei Andrew Fan
efd61c6f53 8258514: Replace Collections.unmodifiableList with List.of
Reviewed-by: jnimeh
2020-12-16 19:42:03 +00:00
Ioi Lam
59f4c4aad5 8258075: Use auto variable declarations for enum iteration
Reviewed-by: jrose, ccheung
2020-12-16 19:39:24 +00:00
Harold Seigel
330ce86123 8257700: Add logging for sealed classes in JVM_GetPermittedSubclasses
Reviewed-by: lfoltan, coleenp, dholmes
2020-12-16 19:20:54 +00:00
Coleen Phillimore
c4632647ae 8258048: Placeholder hash code is the same as Dictionary hash code
Reviewed-by: dholmes, hseigel, lfoltan
2020-12-16 19:17:58 +00:00
Magnus Ihse Bursie
ab5d581ba8 8258447: Move make/hotspot/hotspot.script to make/scripts
Reviewed-by: dcubed
2020-12-16 18:48:32 +00:00
Gerard Ziemski
70183f4d6e 8251438: Issues with our POSIX set_signal_handler()
Reviewed-by: dholmes, stuefe
2020-12-16 17:09:45 +00:00
Magnus Ihse Bursie
6eca29600d 8258420: Move URL configuration from Docs.gmk to conf dir
Reviewed-by: alanb
2020-12-16 13:38:10 +00:00
Erik Gahlin
3c66485015 8257906: JFR: RecordingStream leaks memory
Reviewed-by: mgronlun
2020-12-16 11:03:41 +00:00
Julia Boes
72dfba8053 8257637: Update usage of "type" terminology in java.lang.annotation
Reviewed-by: darcy
2020-12-16 10:46:39 +00:00
Xin Liu
0c8cc2cde4 8258058: improve description of OutOfMemoryError relevant flags
OutOfMemoryError thrown out of JVM doesn't notify hotspot, so debug.cpp::report_java_out_out_memory does not handle it. ie. Some options don't respect OOMEs from Java libraries.  We need to make the description more clear to users.

Reviewed-by: dholmes, jiefu
2020-12-16 09:01:27 +00:00
Kim Barrett
cdb53422e8 8258252: Move PtrQueue enqueue to PtrQueueSet subclasses
Reviewed-by: tschatzl, rkennke
2020-12-16 07:53:40 +00:00
Ioi Lam
17ace8339d 8258074: Move some flags related to compiler to compiler_globals.hpp
Reviewed-by: kvn, coleenp
2020-12-16 04:36:43 +00:00
Stuart Marks
47ba652d5a 8258455: problem list tools/jdeprscan/tests/jdk/jdeprscan/TestRelease.java
Reviewed-by: dholmes, darcy
2020-12-16 04:13:28 +00:00
Calvin Cheung
b5a3a5b621 8258236: Segfault in ClassListParser::resolve_indy dumping static AppCDS archive
Reviewed-by: redestad, coleenp
2020-12-16 02:37:29 +00:00
David Holmes
1e77896838 8236225: Remove expired flags in JDK 17
8256717: Expire the long term obsoleted VM flags

Reviewed-by: coleenp, kvn
2020-12-16 00:00:12 +00:00
Coleen Phillimore
4d6f318153 8257726: Make -XX:+StressLdcRewrite option a diagnostic option
Reviewed-by: lfoltan, stuefe, dcubed
2020-12-15 23:54:50 +00:00
Weijun Wang
b97fe6c410 8258419: RSA cipher buffer cleanup
Reviewed-by: valeriep
2020-12-15 22:49:35 +00:00
Ioi Lam
8bf46c7368 8258438: build error in test/hotspot/gtest/runtime/test_os.cpp
Reviewed-by: dcubed, tschatzl
2020-12-15 21:42:01 +00:00
Andrii Rodionov
7977e381ea 8254024: Enhance native libs for AWT and Swing to work with GraalVM Native Image
Reviewed-by: serb, ihse, bobv
2020-12-15 21:37:38 +00:00
Tom Rodriguez
1f556d22ca 8258380: [JVMCI] don't clear InstalledCode reference when unloading JVMCI nmethods
Reviewed-by: kvn, eosterlund
2020-12-15 21:31:00 +00:00
Pankaj Bansal
e7aa5fe602 8258427: Problem List some tests related to FileDialog for MacOS
Reviewed-by: prr, serb
2020-12-15 21:28:50 +00:00
Coleen Phillimore
c37eabe73b 8252148: vmError::controlled_crash should be #ifdef ASSERT and move tests to gtest
Reviewed-by: iklam, stuefe
2020-12-15 20:48:18 +00:00
Anton Kozlov
2273f9555a 8234930: Use MAP_JIT when allocating pages for code cache on macOS
Reviewed-by: stuefe, iklam, burban
2020-12-15 18:43:49 +00:00
Joe Darcy
da2415fed5 8257457: Update --release 16 symbol information for JDK 16 build 28
Reviewed-by: jjg
2020-12-15 17:18:48 +00:00
Yumin Qi
36e2097401 8255917: runtime/cds/SharedBaseAddress.java failed "assert(reserved_rgn != 0LL) failed: No reserved region"
Reviewed-by: ccheung, iklam, stuefe
2020-12-15 16:52:26 +00:00
Joe Darcy
e9113517d4 8258140: Update @jls tags in java.base for renamed/renumbered sections
Reviewed-by: psandoz
2020-12-15 16:48:31 +00:00
Alexey Semenyuk
d53ee6219b 8255899: Allow uninstallation of jpackage exe bundles
Reviewed-by: almatvee, herrick
2020-12-15 16:42:29 +00:00
Eric Caspole
65756abf44 8257802: LogCompilation throws couldn't find bytecode on JDK 8 log
Reviewed-by: kvn, redestad
2020-12-15 16:20:15 +00:00
Christian Hagedorn
ce36aeaac3 8257822: C2 crashes with SIGFPE due to a division that floats above its zero check
Reviewed-by: kvn, thartmann
2020-12-15 15:14:34 +00:00
Markus Grönlund
fa1cbb47aa 8258404: Restore stacktrace reuse after 8258094
Reviewed-by: egahlin
2020-12-15 14:48:57 +00:00
Maurizio Cimadamore
7ff9c85639 8258242: Type profile pollution occurs when memory segments of different kinds are used
Reviewed-by: vlivanov, redestad
2020-12-15 13:50:40 +00:00
Zhengyu Gu
a372be4ba2 8258244: Shenandoah: Not expecting forwarded object in roots during mark after JDK-8240868
Reviewed-by: rkennke
2020-12-15 13:22:10 +00:00
Thomas Stuefe
568dc29b9a 8185734: [Windows] Structured Exception Catcher missing around gtest execution
Reviewed-by: dholmes, ihse
2020-12-15 09:02:46 +00:00
Richard Reingruber
09e8675f56 8255381: com/sun/jdi/EATests.java should not suspend graal threads
Reviewed-by: cjplummer, mdoerr, sspitsyn
2020-12-15 08:38:58 +00:00
Thomas Stuefe
3ab1dfeb8f 8257828: SafeFetch may crash if invoked in non-JavaThreads
Reviewed-by: mdoerr, kbarrett, coleenp, dholmes
2020-12-15 07:00:54 +00:00
Jesper Wilhelmsson
381021aebf Merge 2020-12-15 03:40:30 +00:00
Zhengyu Gu
2c3ae19a20 8258239: Shenandoah: Used wrong closure to mark concurrent roots
Reviewed-by: rkennke
2020-12-14 17:55:23 +00:00
Kim Barrett
1ff0f1673d 8258142: Simplify G1RedirtyCardsQueue
Separate local redirty qset from redirty queue.

Reviewed-by: tschatzl, iwalulya
2020-12-14 16:13:23 +00:00
Anton Litvinov
e8c40bafa5 8255880: UI of Swing components is not redrawn after their internal state changed
Reviewed-by: prr, serb
2020-12-14 14:36:15 +00:00
Sergey Tsypanov
15481041e0 8255477: Remove unused method URL.set(String protocol, String host, int port, String file, String ref)
Reviewed-by: dfuchs
2020-12-14 13:03:55 +00:00
Claes Redestad
e69ae07f08 8257985: count_trailing_zeros doesn't handle 64-bit values on 32-bit JVM
Reviewed-by: kbarrett
2020-12-14 11:59:05 +00:00
Markus Grönlund
afc44414d5 8258094: AIX build fails after 8257602
Reviewed-by: rrich, stuefe, egahlin
2020-12-14 11:36:01 +00:00
Prasanta Sadhukhan
2ee795d9e4 8196092: javax/swing/JComboBox/8032878/bug8032878.java fails
Reviewed-by: serb, pbansal
2020-12-14 11:34:39 +00:00
Hannes Wallnöfer
164c8a6e18 8258092: Link to early access platform documentation in TestHtmlTableTags.java
Reviewed-by: jjg
2020-12-14 08:08:57 +00:00
Ioi Lam
c30fff7c32 8257229: gtest death tests fail with unrecognized stderr output
Reviewed-by: coleenp, minqi
2020-12-14 07:00:40 +00:00
Prasanta Sadhukhan
e1182920db 8258040: Reenable fixed problemlisted test
Reviewed-by: prr
2020-12-14 03:36:22 +00:00
Martin Buchholz
43dc3f7992 8254350: CompletableFuture.get may swallow InterruptedException
Reviewed-by: alanb, dl
2020-12-13 19:17:36 +00:00
Aleksey Shipilev
6d79ec87fb 8258111: Problemlist compiler/blackhole tests for -Xcomp until JDK-8258101 is fixed
Reviewed-by: iignatyev, kvn
2020-12-12 06:09:57 +00:00
Mandy Chung
2001da3dd4 8257596: Clarify trusted final fields for record classes
Reviewed-by: hseigel, chegar, psandoz
2020-12-11 22:44:48 +00:00
Vladimir Ivanov
b1afed7501 8257919: [JVMCI] profiling info didn't change after reprofile
Reviewed-by: kvn, redestad
2020-12-11 21:50:49 +00:00
Naoto Sato
74b79c6e19 8257964: Broken Calendar#getMinimalDaysInFirstWeek with java.locale.providers=HOST
Reviewed-by: joehw
2020-12-11 21:26:16 +00:00
Vicente Romero
b7ac32d6ee 8257598: Clarify what component values are used in Record::equals
Reviewed-by: darcy, chegar
2020-12-11 19:16:34 +00:00
Joe Darcy
a280182956 8258060: Update @jls tags for renamed/renumbered sections
Reviewed-by: jjg, abuckley
2020-12-11 18:38:45 +00:00
Thomas Schatzl
bacf22b907 8256641: CDS VM operations do not lock the heap
Reviewed-by: kbarrett, iklam
2020-12-11 18:14:37 +00:00
Conor Cleary
f9c9bf03a8 8255583: Investigate creating a test to trigger the condition in KeepAliveStreamCleaner
Reviewed-by: dfuchs, chegar, michaelm
2020-12-11 16:07:11 +00:00
Ivan Šipka
8273514095 8166026: Refactor java/lang shell tests to java
Reviewed-by: mullan
2020-12-11 14:37:25 +00:00
Claes Redestad
ff75ad515b 8258059: Clean up MethodData::profile_unsafe
Reviewed-by: roland, chegar
2020-12-11 11:26:10 +00:00
Per Liden
b5592c05ad 8257970: Remove julong types in os::limit_heap_by_allocatable_memory
Reviewed-by: stefank, tschatzl
2020-12-11 10:17:21 +00:00
Dongbo He
b28b0947d9 8257145: Performance regression with -XX:-ResizePLAB after JDK-8079555
Co-authored-by: Junjun Lin <linjunjun@huawei.com>
Reviewed-by: tschatzl, sjohanss
2020-12-11 09:06:10 +00:00
Kim Barrett
fa20186cb6 8257676: Simplify WeakProcessorPhase
Reviewed-by: iwalulya, ayang, tschatzl
2020-12-11 07:45:18 +00:00
Prasanta Sadhukhan
b90b7f50df 8196090: javax/swing/JComboBox/6559152/bug6559152.java fails
Reviewed-by: serb
2020-12-11 04:54:27 +00:00
Ioi Lam
1d15ebe19e 8243205: Modularize JVM flags declaration
Reviewed-by: kvn, coleenp, stefank
2020-12-11 04:18:54 +00:00
Jie Fu
8befc3210d 8258073: x86_32 build broken after JDK-8257731
Reviewed-by: iklam
2020-12-11 03:36:17 +00:00
John Lin
37dc675cd0 8247402: Documentation for Map::compute contains confusing implementation requirements
Reviewed-by: prappo, martin
2020-12-11 00:26:10 +00:00
Ioi Lam
d4282b0cfc 8257731: Remove excessive include of stubRoutines.hpp
Reviewed-by: coleenp, kvn
2020-12-10 23:57:35 +00:00
Yudi Zheng
58dca9253d 8257910: [JVMCI] Set exception_seen accordingly in the runtime.
Reviewed-by: kvn
2020-12-10 22:43:37 +00:00
Markus Grönlund
e90d0d1da4 8258065: ProblemList JfrGTestAdaptiveSampling
Reviewed-by: iignatyev
2020-12-10 22:25:23 +00:00
Doug Simon
fa77008f19 8258015: [JVMCI] JVMCI_lock shouldn't be held while initializing box classes
Reviewed-by: kvn
Backport-of: d163c6fe2e
2020-12-10 21:18:35 +00:00
Ioi Lam
80dac5a87c 8257912: Convert enum iteration to use range-based for loops
Reviewed-by: kbarrett, tschatzl, gziemski
2020-12-10 20:33:13 +00:00
Igor Ignatyev
164c55be78 8258056: jdk/javadoc/doclet/testHtmlTableTags/TestHtmlTableTags.java fails against jdk17
Reviewed-by: jwilhelm
2020-12-10 20:21:35 +00:00
Brian Burkhalter
42264b2db4 8257971: (fs) Remove unused code from WindowsPath.subpath(begin, end)
Reviewed-by: lancea
2020-12-10 19:55:44 +00:00
Igor Ignatyev
3342ecaf44 8258054: runtime/sealedClasses/GetPermittedSubclassesTest.java fails w/ jdk17
Reviewed-by: mikael, hseigel, darcy
2020-12-10 18:16:33 +00:00
Claes Redestad
f57405617e 8256424: Move ciSymbol::symbol_name() to ciSymbols::symbol_name()
Reviewed-by: kvn, iklam
2020-12-10 17:22:48 +00:00
Ioi Lam
1e5e790ba0 8258018: Remove arrayOop.inline.hpp
Reviewed-by: stefank, kbarrett, coleenp
2020-12-10 17:04:35 +00:00
Severin Gehwolf
669361117d 8253797: [cgroups v2] Account for the fact that swap accounting is disabled on some systems
Reviewed-by: hseigel
2020-12-10 16:47:02 +00:00
Joe Darcy
6be1f5671e 8257450: Start of release updates for JDK 17
8257451: Add SourceVersion.RELEASE_17
8257453: Add source 17 and target 17 to javac

Reviewed-by: dholmes, erikj, iris, mikael, jjg, jlahoda, jwilhelm, mchung, ihse
2020-12-10 16:46:28 +00:00
Doug Simon
d163c6fe2e 8258015: [JVMCI] JVMCI_lock shouldn't be held while initializing box classes
Reviewed-by: iveresov
2020-12-10 16:16:25 +00:00
Michael McMahon
b35401d6a7 8257966: Instrument test/jdk/java/nio/channels/spi/SelectorProvider/inheritedChannel/StateTestService.java
Reviewed-by: alanb, dfuchs
2020-12-10 16:02:25 +00:00
Maurizio Cimadamore
37043b0557 8257837: Performance regression in heap byte buffer views
Reviewed-by: chegar, roland
2020-12-10 15:32:36 +00:00
Magnus Ihse Bursie
0890620c94 8258005: JDK build fails with incorrect fixpath script
Co-authored-by: Mikael Vidstedt <mikael@openjdk.org>
Reviewed-by: erikj
2020-12-10 14:54:40 +00:00
Markus Grönlund
502a5241e5 8257602: Introduce JFR Event Throttling and new jdk.ObjectAllocationSample event (enabled by default)
Co-authored-by: Jaroslav Bachorik <jbachorik@openjdk.org>
Reviewed-by: egahlin, jbachorik
2020-12-10 12:33:48 +00:00
Dong Bo
026b09cf64 8257483: C2: Split immediate vector rotate from RotateLeftV and RotateRightV nodes
Reviewed-by: vlivanov
2020-12-10 12:26:04 +00:00
Per Liden
0a0691ebcf 8257901: ZGC: Take virtual memory usage into account when sizing heap
Reviewed-by: stefank, eosterlund, ayang, tschatzl
2020-12-10 11:10:38 +00:00
Christoph Langer
29ffffa7b9 8257997: sun/security/ssl/SSLSocketImpl/SSLSocketLeak.java again reports leaks after JDK-8257884
Reviewed-by: mbaesken
2020-12-10 10:56:36 +00:00
Kim Barrett
db5da9619b 8257876: Avoid Reference.isEnqueued in tests
Reviewed-by: mchung, tschatzl
2020-12-10 10:34:47 +00:00
Daniel Fuchs
4a839e95de 8256459: java/net/httpclient/ManyRequests.java and java/net/httpclient/LineBodyHandlerTest.java fail infrequently with java.net.ConnectException: Connection timed out: no further information
Reviewed-by: chegar
2020-12-10 10:09:29 +00:00
Roland Westrelin
d93293f31b 8256730: Code that uses Object.checkIndex() range checks doesn't optimize well
Reviewed-by: vlivanov, thartmann
2020-12-10 08:09:08 +00:00
Sandhya Viswanathan
869dcb6f50 8257806: Optimize x86 allTrue and anyTrue vector mask operations of Vector API
Reviewed-by: kvn, psandoz
2020-12-10 04:31:27 +00:00
Koichi Sakata
34650f52b5 8257872: UL: -Xlog does not check number of options
Reviewed-by: dholmes, iklam, ysuenaga
2020-12-10 04:05:18 +00:00
Michael Edgar
6847bbbb11 8255918: XMLStreamFilterImpl constructor consumes XMLStreamException
Reviewed-by: joehw
2020-12-10 03:40:01 +00:00
Joe Darcy
d2f9e31ae4 8257638: Update usage of "type" terminology in javax.lang.model
Reviewed-by: jjg
2020-12-10 02:59:26 +00:00
Phil Race
f631a9901f 8256888: Client manual test problem list update
Reviewed-by: serb
2020-12-10 01:36:52 +00:00
Alexander Matveev
eb1c8a15b6 8257924: Use full path when running external executable from jpackage
Reviewed-by: herrick, asemenyuk
2020-12-10 01:01:38 +00:00
Andy Herrick
1ce2a36c7b 8257539: tools/jpackage/windows/WinL10nTest.java unpack.bat failed with Exit code: 1618
Reviewed-by: almatvee, asemenyuk, prr, kizune
2020-12-10 00:50:28 +00:00
Toshio Nakamura
53e537c738 8255387: Japanese characters were printed upside down on AIX
Reviewed-by: prr, serb
2020-12-10 00:27:44 +00:00
Coleen Phillimore
0a3e446ad9 8257993: vmTestbase/nsk/jvmti/RedefineClasses/StressRedefine/TestDescription.java crash intermittently
Reviewed-by: sspitsyn, hseigel, dholmes
2020-12-09 23:08:52 +00:00
Guoxiong Li
46c9a860b6 8245956: JavaCompiler still uses File API instead of Path API in a specific case
Reviewed-by: jjg
2020-12-09 21:09:23 +00:00
Doug Simon
baf4c1a4af 8257917: [JVMCI] crash when materializing boxed values under -Xcomp
Reviewed-by: iveresov, kvn
2020-12-09 20:26:55 +00:00
Vladimir Kozlov
fd5f6e2e19 8257986: [JVMCI] ProblemList 2 reprofile JVMCI tests
Reviewed-by: iignatyev
2020-12-09 19:21:53 +00:00
Andrey Turbanov
30de320c01 6882207: Convert javap to use diamond operator internally
Reviewed-by: jjg
2020-12-09 19:20:13 +00:00
Harold Seigel
d33a689b96 8256867: Classes with empty PermittedSubclasses attribute cannot be extended
Reviewed-by: lfoltan, mchung, jlahoda, chegar
2020-12-09 19:07:11 +00:00
Alexander Matveev
e6b4c4d716 8238781: [macos] jpackage tests failed due to "hdiutil: convert failed" in various ways
Reviewed-by: herrick, asemenyuk
2020-12-09 19:02:15 +00:00
Marcus G K Williams
b977a7b8a5 8257989: Error in gtest os_page_size_for_region_unaligned after 8257588
Reviewed-by: stuefe
2020-12-09 18:59:09 +00:00
Mandy Chung
5f03341211 8052260: Reference.isEnqueued() spec does not match the long-standing behavior returning true iff it's in the ref queue
Reviewed-by: kbarrett, alanb
2020-12-09 17:27:02 +00:00
Patrick Concannon
6dd06add9d 8254996: make jdk.net.UnixDomainPrincipal a record class
Reviewed-by: dfuchs, michaelm
2020-12-09 17:03:07 +00:00
Jan Lahoda
bd22aa5e86 8229862: NPE in jdk.compiler/com.sun.tools.javac.jvm.Code.emitop0(Code.java:570)
Co-authored-by: Bernard Blaser <bsrbnd@openjdk.org>
Reviewed-by: vromero
2020-12-09 16:49:50 +00:00
Eric Caspole
cf62b0ad86 8257518: LogCompilation: java.lang.InternalError with JFR turned on
Reviewed-by: kvn, redestad
2020-12-09 15:55:33 +00:00
Magnus Ihse Bursie
6c69eca380 8257973: UTIL_LOOKUP_PROGS should only find executable files
Reviewed-by: erikj
2020-12-09 15:41:08 +00:00
Jan Lahoda
6eff9315e1 8256950: Add record attribute support to symbol generator CreateSymbols
Reviewed-by: jjg, chegar
2020-12-09 15:05:01 +00:00
Christian Hagedorn
f148915d54 8245107: Use Unified Logging in trace_method_handle_stub()
Reviewed-by: coleenp, mdoerr
2020-12-09 14:36:13 +00:00
Martin Doerr
0201a33dd6 8255959: Timeouts in VectorConversion tests
Reviewed-by: psandoz, stuefe
2020-12-09 13:17:50 +00:00
Bernhard Urban-Forster
d3dddb6a56 8256657: Add cross-compiled build for Windows+Arm64 to submit workflow
Reviewed-by: shade, ihse
2020-12-09 11:21:37 +00:00
Ivan Šipka
616b1f12bd 8257516: define test group for manual tests
Reviewed-by: iignatyev
2020-12-09 10:28:04 +00:00
Julia Boes
5bdce9b995 8257639: Update usage of "type" terminology in java.lang.Enum & java.lang.Record
Reviewed-by: chegar, dfuchs
2020-12-09 09:32:22 +00:00
Hannes Wallnöfer
b4615c67a3 8256580: Fault in new grid display
Reviewed-by: jjg
2020-12-09 09:21:50 +00:00
Jie Fu
df55ecd83c 8257794: Zero: assert(istate->_stack_limit == istate->_thread->last_Java_sp() + 1) failed: wrong on Linux/x86_32
Reviewed-by: shade
2020-12-09 09:01:07 +00:00
Christoph Langer
fae7961a03 8257884: Re-enable sun/security/ssl/SSLSocketImpl/SSLSocketLeak.java as automatic test
Reviewed-by: xuelei
2020-12-09 08:12:09 +00:00
Per Liden
79f1dfb8d3 8255987: JDI tests fail with com.sun.jdi.ObjectCollectedException
Reviewed-by: dholmes, cjplummer
2020-12-09 07:46:04 +00:00
Aleksey Shipilev
9ce3d806fa 8257887: java/foreign/TestSegments.java test fails on 32-bit after JDK-8257186
Reviewed-by: jiefu, adityam, redestad
2020-12-09 06:42:38 +00:00
Igor Veresov
10da767c2f 8257847: Tiered should publish MDO data pointer for interpreter after profile start
Reviewed-by: thartmann, kvn, dlong
2020-12-09 04:28:59 +00:00
Joe Darcy
2a62d5d34f 8256917: Use combo @returns tag in java.compiler javadoc
Reviewed-by: jjg, iris
2020-12-09 02:37:30 +00:00
Jonathan Gibbons
b29f9cd7b0 8075778: Add javadoc tag to avoid duplication of return information in simple situations.
Reviewed-by: prappo, jlahoda
2020-12-08 23:25:08 +00:00
Dan Smith
48d8650ae1 8257845: Integrate JEP 390
8254047: [JEP 390] Revise "value-based class" & apply to wrappers
8252181: [JEP 390] Define & apply annotation jdk.internal.ValueBased
8252183: [JEP 390] Add 'lint' warning for @ValueBased classes
8257027: [JEP 390] Diagnose synchronization on @ValueBased classes
8252180: [JEP 390] Deprecate wrapper class constructors for removal

Co-authored-by: Roger Riggs <rriggs@openjdk.org>
Co-authored-by: Srikanth Adayapalam <sadayapalam@openjdk.org>
Co-authored-by: Lois Foltan <lfoltan@openjdk.org>
Reviewed-by: rriggs, hseigel, mchung, darcy
2020-12-08 23:04:01 +00:00
Mark Reinhold
ed4c4ee73b 8256299: Implement JEP 396: Strongly Encapsulate JDK Internals by Default
Co-authored-by: Alan Bateman <alanb@openjdk.org>
Reviewed-by: mchung, alanb
2020-12-08 22:12:24 +00:00
Marius Volkhart
c47ab5f6b7 8256515: javax.xml.XMLEventReader produces incorrect START_DOCUMENT event
Reviewed-by: joehw
2020-12-08 20:43:42 +00:00
Calvin Cheung
291ba97fab 8251267: CDS tests should use CDSTestUtils.getOutputDir instead of System.getProperty("user.dir")
Reviewed-by: minqi, iklam
2020-12-08 20:00:10 +00:00
Erik Joelsson
f48d5d1b7e 8257789: Fix incremental build of test-image and bundles
Reviewed-by: tbell, ihse
2020-12-08 18:45:38 +00:00
Brent Christian
1a9ed92d6f 8200102: NativeLibraryTest.java fails intermittently, unloaded count is not same as expected
Reviewed-by: mchung, naoto
2020-12-08 18:01:04 +00:00
Magnus Ihse Bursie
264feb35ff 8257905: Make fixpath.sh more liberal in accepting paths embedded in arguments
Reviewed-by: erikj
2020-12-08 17:59:35 +00:00
Vladimir Ivanov
044616bd71 8252049: Native memory leak in ciMethodData ctor
Reviewed-by: kbarrett, coleenp
2020-12-08 17:02:09 +00:00
Daniel Fuchs
fab6158c19 8236413: AbstractConnectTimeout should tolerate both NoRouteToHostException and UnresolvedAddressException
Reviewed-by: aefimov, michaelm
2020-12-08 16:36:04 +00:00
Gerard Ziemski
936a7acf32 8252797: Non-PCH build fails on Ubuntu 16.4 when building with gtests
Reviewed-by: dholmes
2020-12-08 15:49:11 +00:00
Jan Lahoda
d0c526513d 8256149: Weird AST structure for incomplete member select
Reviewed-by: vromero
2020-12-08 13:09:15 +00:00
Maurizio Cimadamore
a70802477e 8257194: Add 'foreign linker API' in 'jdk.incubator.foreign' module desc/summary
Reviewed-by: jvernee, shade
2020-12-08 12:15:13 +00:00
Aleksey Shipilev
35e81536e7 8257848: -XX:CompileCommand=blackhole,* should be diagnostic
Reviewed-by: vlivanov
2020-12-08 10:11:01 +00:00
Athijegannathan Sundararajan
d2b66196b4 8242258: (jrtfs) Path::toUri throws AssertionError for malformed input
Reviewed-by: alanb
2020-12-08 09:38:38 +00:00
Kim Barrett
52ab72127d 8254733: HotSpot Style Guide should permit using range-based for loops
Reviewed-by: dholmes, pliden, jrose, dcubed, iklam, eosterlund, tschatzl, kvn
2020-12-08 09:25:42 +00:00
Christian Hagedorn
1d0adbb812 8253644: C2: assert(skeleton_predicate_has_opaque(iff)) failed: unexpected
Reviewed-by: roland, kvn
2020-12-08 08:48:58 +00:00
Jan Lahoda
51ac37686c 8256411: Based anonymous classes have a weird end position
Reviewed-by: vromero
2020-12-08 08:38:24 +00:00
Roland Westrelin
0b6b6eb59a 8257813: [redo] C2: Filter type in PhiNode::Value() for induction variables of trip-counted integer loops
Reviewed-by: chagedorn, kvn
2020-12-08 08:30:18 +00:00
Jamil Nimeh
500ab45770 8257769: Cipher.getParameters() throws NPE for ChaCha20-Poly1305
Reviewed-by: mullan, valeriep
2020-12-08 06:10:10 +00:00
Vicente Romero
6ff18e38b4 8257855: Example SafeVarargsNotApplicableToRecordAccessors breaks test tools/javac/diags/CheckExamples.java
Reviewed-by: jjg
2020-12-08 04:07:38 +00:00
Erik Gahlin
cef606feca 8253762: JFR: getField(String) should be able to access subfields
Reviewed-by: mgronlun
2020-12-08 00:06:20 +00:00
Xue-Lei Andrew Fan
39b8a2e682 8257670: sun/security/ssl/SSLSocketImpl/SSLSocketLeak.java reports leaks
Reviewed-by: jnimeh
2020-12-07 23:53:17 +00:00
Jie Fu
c43c224ef9 8257796: [TESTBUG] TestUseSHA512IntrinsicsOptionOnSupportedCPU.java fails on x86_32
Reviewed-by: kvn
2020-12-07 22:59:51 +00:00
Vladimir Ivanov
62c7788b29 8257211: C2: Enable call devirtualization during post-parse phase
Reviewed-by: kvn, neliasso, thartmann
2020-12-07 22:50:38 +00:00
David Holmes
149a02f99a 8257572: Deprecate the archaic signal-chaining interfaces: sigset and signal
Reviewed-by: ihse, alanb, dcubed, erikj
2020-12-07 21:56:05 +00:00
Eric Caspole
f92745d73e 8257718: LogCompilation: late_inline doesnt work right for JDK 8 logs
Reviewed-by: redestad, kvn
2020-12-07 21:31:19 +00:00
Joe Darcy
6937d9f9dd 8257799: Update JLS cross-references in java.compiler
Reviewed-by: jjg
2020-12-07 20:46:22 +00:00
Dean Long
a5297bd0d4 8254939: macOS: unused function 'replicate4_imm'
Reviewed-by: redestad, thartmann
2020-12-07 20:10:07 +00:00
Aleksey Shipilev
36c0600523 8257805: Add compiler/blackhole tests to tier1
Reviewed-by: kvn
2020-12-07 19:26:40 +00:00
Zhengyu Gu
395b6bdeee 8257817: Shenandoah: Don't race with conc-weak-in-progress flag in weak-LRB
Reviewed-by: rkennke
2020-12-07 19:19:23 +00:00
Alexander Matveev
a265c20138 8255619: Localized WinResources.properties have MsiInstallerStrings_en.wxl resource
Reviewed-by: herrick, naoto, asemenyuk
2020-12-07 18:11:35 +00:00
Andy Herrick
e3793e5a60 8257514: Fix the issues in jdk.jpackage identified by SpotBugs
Reviewed-by: asemenyuk, almatvee, shade
2020-12-07 18:04:04 +00:00
Maurizio Cimadamore
bbc44f57c4 8257186: Size of heap segments is not computed correctlyFix overflow in size computation for heap segments
Reviewed-by: jvernee, chegar
2020-12-07 17:25:23 +00:00
Vicente Romero
b4b9828cb0 8254784: javac should reject records with @SafeVarargs applied to varargs record component
Reviewed-by: mcimadamore
2020-12-07 16:45:51 +00:00
Xue-Lei Andrew Fan
dcf63f8578 8257788: Class fields could be local in the SunJSSE provider
Reviewed-by: shade
2020-12-07 16:35:01 +00:00
Magnus Ihse Bursie
d29c78da19 8257679: Improved unix compatibility layer in Windows build (winenv)
Reviewed-by: erikj, jvernee, burban
2020-12-07 15:55:53 +00:00
Eric Caspole
74be819088 8257517: LogCompilation: Add -z to the help messages
Reviewed-by: redestad
2020-12-07 15:41:03 +00:00
Guoxiong Li
2c04fc02c9 8257037: No javac warning when calling deprecated constructor with diamond
Reviewed-by: mcimadamore
2020-12-07 13:51:33 +00:00
Martin Doerr
46b35acfcb 8257798: [PPC64] undefined reference to Klass::vtable_start_offset()
Reviewed-by: goetz
2020-12-07 13:45:19 +00:00
Zhengyu Gu
ecd7e476f8 8257793: Shenandoah: SATB barrier should only filter out already strongly marked oops
Reviewed-by: shade, rkennke
2020-12-07 13:18:02 +00:00
Thomas Schatzl
e08b9ed0be 8257820: Remove gc/ergonomics/TestMinHeapSize.java as it is too brittle
Reviewed-by: jiefu, kbarrett
2020-12-07 12:43:35 +00:00
Jan Lahoda
637b0c64b0 8246778: Compiler implementation for Sealed Classes (Second Preview)
Co-authored-by: Vicente Romero <vromero@openjdk.org>
Co-authored-by: Harold Seigel <hseigel@openjdk.org>
Reviewed-by: lfoltan, mchung, alanb, mcimadamore, chegar
2020-12-07 11:11:31 +00:00
Erik Gahlin
09707dd4f2 8252807: The jdk.jfr.Recording.getStream does not work when toDisk is disabled
Reviewed-by: mgronlun
2020-12-07 11:09:25 +00:00
Jorn Vernee
04ce8e3840 8257184: Upstream 8252504: Add a method to MemoryLayout which returns a offset-computing method handle
Reviewed-by: mcimadamore, chegar
2020-12-07 11:08:24 +00:00
Chris Hegarty
5a03e47605 8255560: Class::isRecord should check that the current class is final and not abstract
Reviewed-by: mchung, darcy
2020-12-07 11:02:52 +00:00
Thomas Stuefe
8e8e584552 8257588: Make os::_page_sizes a bitmask
Reviewed-by: tschatzl, stefank
2020-12-07 10:32:05 +00:00
Daniel Fuchs
566d77a2ae 8254802: ThrowingPushPromisesAsStringCustom.java fails in "try throwing in GET_BODY"
Reviewed-by: michaelm
2020-12-07 09:58:16 +00:00
Roland Westrelin
f5a582c287 8257575: C2: "failed: only phis" assert failure in loop strip mining verification
Reviewed-by: thartmann, neliasso
2020-12-07 09:38:22 +00:00
Julia Boes
d05401d886 8256679: Update serialization javadoc once JOSS changes for records are complete
Reviewed-by: chegar, rriggs
2020-12-07 09:30:52 +00:00
Jie Fu
7620124ee9 8257230: assert(InitialHeapSize >= MinHeapSize) failed: Ergonomics decided on incompatible initial and minimum heap sizes
Reviewed-by: tschatzl, sjohanss
2020-12-07 09:27:33 +00:00
Aleksey Shipilev
05dac03f36 8257803: Add -Xbatch to compiler/blackhole tests
Reviewed-by: dholmes
2020-12-07 06:43:34 +00:00
Lin Zang
29a09c8911 8257668: SA JMap - skip non-java thread stack dump for heap dump
Reviewed-by: cjplummer, sspitsyn, phh
2020-12-07 04:01:51 +00:00
Aleksey Shipilev
e590618962 8252505: C1/C2 compiler support for blackholes
Reviewed-by: vlivanov, aph
2020-12-06 17:43:34 +00:00
Mandy Chung
972bc3b408 8256167: Convert JDK use of Reference::get to Reference::refersTo
Reviewed-by: sspitsyn, shade, dfuchs, alanb, kbarrett
2020-12-06 00:08:22 +00:00
Valerie Peng
78be334c38 8242332: Add SHA3 support to SunPKCS11 provider
Reviewed-by: xuelei
2020-12-05 23:47:35 +00:00
Martin Buchholz
c4339c3064 8243614: Typo in ReentrantLock's Javadoc
Reviewed-by: dholmes, alanb
2020-12-05 08:44:22 +00:00
Sergey Bylokhov
d3ac1bf16c 8198390: Test MultiResolutionDrawImageWithTransformTest.java fails when -esa is passed
Reviewed-by: kizune
2020-12-04 23:06:07 +00:00
Erik Joelsson
51d325e613 8257633: Missing -mmacosx-version-min=X flag when linking libjvm
Reviewed-by: mikael
2020-12-04 21:40:39 +00:00
Brian Burkhalter
e27ea4d12c 8257750: writeBuffer field of java.io.DataOutputStream should be final
Reviewed-by: lancea, naoto
2020-12-04 20:32:07 +00:00
Vladimir Kozlov
dd0b9454a2 8257531: Super word not applied to a loop of simple Buffer operations
Reviewed-by: roland, psandoz
2020-12-04 19:23:52 +00:00
Xue-Lei Andrew Fan
d76039d3dc 8257725: No throws of SSLHandshakeException
Reviewed-by: jnimeh
2020-12-04 18:29:55 +00:00
Xue-Lei Andrew Fan
fcc84795f6 8257724: Incorrect package of the linked class in BaseSSLSocketImpl
Reviewed-by: valeriep, wetmore
2020-12-04 18:20:14 +00:00
Calvin Cheung
d8ac76fa09 8257651: LambdaEagerInit.java test failed in 2 different ways
Reviewed-by: iklam, lfoltan
2020-12-04 17:07:00 +00:00
Mikhailo Seledtsov
3eb694605e 8257732: Problem list TestJFRWithJMX for OL 8.2 until the issue is resolved
Reviewed-by: hseigel
2020-12-04 16:38:21 +00:00
Kartik Ohri
ac54900849 8257401: Use switch expressions in jdk.internal.net.http and java.net.http
Reviewed-by: chegar, dfuchs, pconcannon
2020-12-04 15:15:56 +00:00
Roland Westrelin
86b65756cb 8257574: C2: "failed: parsing found no loops but there are some" assert failure
Reviewed-by: thartmann, neliasso, chagedorn
2020-12-04 12:01:53 +00:00
Maurizio Cimadamore
dede01eb20 8257622: MemoryAccess methods are missing @ForceInline annotations
Reviewed-by: jvernee, shade
2020-12-04 11:46:06 +00:00
Martin Doerr
1d2d9815d0 8257423: [PPC64] Support -XX:-UseInlineCaches
Reviewed-by: stuefe, rrich
2020-12-04 11:24:15 +00:00
Erik Gahlin
feabddee56 8251843: jfr/tool/TestPrintJSON.java fails intermittently
Reviewed-by: mgronlun
2020-12-04 10:37:59 +00:00
Andrey Turbanov
c6f93ec9f2 8257707: Fix incorrect format string in Http1HeaderParser
Reviewed-by: shade
2020-12-04 10:19:30 +00:00
Vladimir Ivanov
fbdc1877e2 8257624: C2: PhaseMacroExpand::eliminate_macro_nodes() crashes on out-of-bounds access into macro node array
Reviewed-by: neliasso, kvn
2020-12-04 09:37:18 +00:00
Vladimir Ivanov
fd6756ee2b 8257634: C2: Introduce IncrementalInliningForceCleanup diagnostic flag
Reviewed-by: kvn, adityam, thartmann
2020-12-04 09:24:08 +00:00
Hao Sun
af6b7f9c55 8257743: Minimal build on AArch64 failed with --disable-precompiled-headers
Reviewed-by: shade
2020-12-04 09:12:30 +00:00
Alexander Scherbatiy
d6dd440c76 8256264: Printed GlyphVector outline with low DPI has bad quality on Windows
Reviewed-by: serb
2020-12-04 09:02:20 +00:00
Alan Bateman
2b4a423fd7 8255542: Attribute length of Module, ModulePackages and other attributes is ignored
Reviewed-by: mchung, dfuchs, chegar
2020-12-04 08:59:14 +00:00
Thomas Schatzl
ca402671af 8257509: Strengthen requirements to call G1HeapVerifier::verify(VerifyOption)
Reviewed-by: sjohanss, ayang
2020-12-04 08:40:12 +00:00
Christian Hagedorn
4a85514963 8257182: JCK test failures in integer / long rotation tests
Reviewed-by: mdoerr, vlivanov, thartmann, kvn
2020-12-04 08:10:31 +00:00
Vladimir Ivanov
f33808ffc9 8257631: C2: Assertion failure in ArrayCopyNode::get_count() during late inlining
Reviewed-by: neliasso, kvn, thartmann
2020-12-04 07:55:40 +00:00
Vladimir Ivanov
417e7e6317 8257632: C2: Late inlining attempt on a call with a dead memory crashes
Reviewed-by: neliasso, kvn, thartmann
2020-12-04 07:55:04 +00:00
Vladimir Ivanov
6845fee905 8257625: C2: Harden input checks in vector intrinsics
Reviewed-by: thartmann
2020-12-04 07:54:24 +00:00
Vladimir Ivanov
4390f2c8c3 8257630: C2: ReplacedNodes doesn't handle non-CFG multi nodes
Reviewed-by: neliasso, kvn, thartmann
2020-12-04 07:53:17 +00:00
Andrey Turbanov
d08c612b40 8257708: Remove redundant unmodifiableSet wrapper from already immutable set returned by Collections.singleton
Reviewed-by: shade, sspitsyn
2020-12-04 06:32:14 +00:00
Valerie Peng
49f9e57715 8257734: Extraneous output in HmacSHA3_512 constructor
Reviewed-by: ascarpino
2020-12-04 03:52:04 +00:00
Andrey Turbanov
f83fd4acb4 8257438: Avoid adding duplicate values into extendedKeyCodesSet
Reviewed-by: serb
2020-12-03 23:11:55 +00:00
Jie Fu
37c7835c78 8257673: Build fails without shenandoahgc after JDK-8257563
Reviewed-by: aph, shade
2020-12-03 23:09:07 +00:00
Mandy Chung
f0b1194004 8235784: java/lang/invoke/VarHandles/VarHandleTestByteArrayAsInt.java fails due to timeout with fastdebug bits
Reviewed-by: bchristi, naoto
2020-12-03 22:14:52 +00:00
Erik Joelsson
36209b70da 8257547: Handle multiple prereqs on the same line in deps files
Reviewed-by: ihse, tbell
2020-12-03 21:41:37 +00:00
Alex Menkov
c5b32b33eb 8256808: com/sun/jdi/CatchAllTest.java failed with "NullPointerException: Cannot invoke "lib.jdb.Jdb.log(String)" because "this.jdb" is null"
Reviewed-by: cjplummer, sspitsyn
2020-12-03 21:31:33 +00:00
Sergey Bylokhov
85269470e5 6508941: java.awt.Desktop.open causes VM to crash with video files sporadically
Reviewed-by: kizune, aivanov
2020-12-03 20:08:09 +00:00
Zhengyu Gu
7c7facc234 8257701: Shenandoah: objArrayKlass metadata is not marked with chunked arrays
Reviewed-by: shade
2020-12-03 19:58:58 +00:00
Stuart Marks
2b73f9929f 8228615: Optional.empty doc should suggest using isEmpty
Reviewed-by: lancea, bpb, naoto
2020-12-03 19:32:53 +00:00
Amit Pawar
805d05812c 8254699: Suboptimal PreTouchParallelChunkSize defaults and limits
Reviewed-by: tschatzl, sjohanss
2020-12-03 19:05:04 +00:00
Zhengyu Gu
e29ee5b8a5 8257641: Shenandoah: Query is_at_shenandoah_safepoint() from control thread should return false
Reviewed-by: shade
2020-12-03 18:42:42 +00:00
Anthony Scarpino
55f5542ca2 8026976: ECParameters, Point does not match field size
Reviewed-by: xuelei
2020-12-03 18:05:53 +00:00
Volker Simonis
d3f3c32282 8255742: PrintInlining as compiler directive doesn't print virtual calls
Reviewed-by: thartmann, kvn
2020-12-03 18:02:05 +00:00
Vladimir Kozlov
6c9482eef5 8257561: Some code is not vectorized after 8251925 and 8250607
Reviewed-by: chagedorn, vlivanov, thartmann
2020-12-03 17:02:04 +00:00
Anthony Scarpino
70517c83c2 8257642: CipherByteBufferOverwriteTest copyright issue
Reviewed-by: xuelei, wetmore
2020-12-03 16:29:16 +00:00
Evgeny Astigeevich
e836396207 8257436: [aarch64] Regressions in ArrayCopyUnalignedDst.testByte/testChar for 65-78 bytes when UseSIMDForMemoryOps is on
Reviewed-by: simonis
2020-12-03 15:55:32 +00:00
Julia Boes
b170c8376d 8257591: Remove suppression of record preview related warnings in java.lang
Reviewed-by: chegar
2020-12-03 15:48:03 +00:00
Evan Whelan
66a2e70985 8255845: Memory leak in imageFile.cpp
Reviewed-by: jlaskey, sundar
2020-12-03 15:28:42 +00:00
Doug Simon
fa58671f9f 8257020: [JVMCI] enable a JVMCICompiler to specify which GCs it supports
Reviewed-by: stefank, kvn
2020-12-03 13:42:50 +00:00
Tobias Hartmann
129c37700f 8257594: C2 compiled checkcast of non-null object triggers endless deoptimization/recompilation cycle
Reviewed-by: roland, vlivanov
2020-12-03 13:42:19 +00:00
Harold Seigel
e4497c9e69 8256718: Obsolete the long term deprecated and aliased Trace flags
Reviewed-by: sspitsyn, iklam, dholmes, coleenp
2020-12-03 13:14:57 +00:00
Richard Reingruber
4a267f1bc2 8244847: Linux/PPC: runtime/CompressedOops/CompressedClassPointers: smallHeapTest fails
Reviewed-by: stuefe, mdoerr
2020-12-03 08:50:08 +00:00
Thomas Stuefe
b44a329f91 8256864: [windows] Improve tracing for mapping errors
Reviewed-by: iklam, rrich
2020-12-03 08:41:26 +00:00
Thomas Stuefe
ae1eb286c6 8257604: JNI_ArgumentPusherVaArg leaks valist
Reviewed-by: dcubed, coleenp
2020-12-03 07:50:19 +00:00
Nick Gasson
4169d96e24 8257143: Enable JVMCI code installation tests on AArch64
Reviewed-by: burban, kvn
2020-12-03 07:26:10 +00:00
Hannes Wallnöfer
a5a034b72f 8257617: TestLinkPlatform fails with new Java source version
Reviewed-by: darcy
2020-12-03 07:12:25 +00:00
Jamil Nimeh
d80ae05f61 8166596: TLS support for the EdDSA signature algorithm
Reviewed-by: xuelei
2020-12-03 06:12:07 +00:00
Kim Barrett
3932527288 8257466: Improve enum iteration
Improve support for iteration on enums that are just range of values, without named enumerators.

Reviewed-by: iklam, lfoltan
2020-12-03 04:26:23 +00:00
Ioi Lam
02a0a027f4 8257563: Remove excessive include of klass.inline.hpp
Reviewed-by: dholmes, stuefe, stefank
2020-12-03 01:34:04 +00:00
Anthony Scarpino
cc1915b3b3 8253821: Improve ByteBuffer performance with GCM
Reviewed-by: xuelei, valeriep
2020-12-02 23:10:32 +00:00
Calvin Cheung
3da30e991a 8257241: CDS should not handle disableEagerInitialization for archived lambda proxy classes
Reviewed-by: iklam, redestad, mchung
2020-12-02 22:17:46 +00:00
Vladimir Ivanov
7104400ad8 8257164: Share LambdaForms for VH linkers/invokers
Reviewed-by: redestad, kvn, psandoz
2020-12-02 21:47:27 +00:00
Leonid Mesnik
3e89981d98 8257623: vmTestbase/nsk/jvmti/ResourceExhausted/resexhausted001/TestDescription.java shouldn't use timeout
Reviewed-by: sspitsyn, dcubed
2020-12-02 20:16:28 +00:00
Christoph Langer
93b6ab56ae 8256818: SSLSocket that is never bound or connected leaks socket resources
Reviewed-by: xuelei
2020-12-02 19:23:26 +00:00
Vladimir Ivanov
692b273ec5 8257189: Handle concurrent updates of MH.form better
Reviewed-by: redestad, psandoz
2020-12-02 17:35:41 +00:00
Ioi Lam
670426646d 8257565: epsilonBarrierSet.hpp should not include barrierSetAssembler
Reviewed-by: kbarrett, stuefe, shade
2020-12-02 16:56:55 +00:00
Yumin Qi
0b8c7807fe 8256256: UL should not use heap allocation for output string
Reviewed-by: dholmes, stuefe
2020-12-02 16:22:51 +00:00
Coleen Phillimore
2508bc7c58 8257140: Crash in JvmtiTagMap::flush_object_free_events()
Reviewed-by: sspitsyn, kbarrett
2020-12-02 14:09:55 +00:00
Coleen Phillimore
cfb50a9cb7 8253916: ResourceExhausted/resexhausted001 crashes on Linux-x64
Reviewed-by: stuefe, sspitsyn, dholmes
2020-12-02 13:40:26 +00:00
Stefan Karlsson
287b829c04 8254877: GCLogPrecious::_lock rank constrains what locks you are allowed to have when crashing
Reviewed-by: eosterlund
2020-12-02 12:28:38 +00:00
Stefan Karlsson
1fd0ea7035 8256382: Use try_lock for hs_err EventLog printing
Reviewed-by: stuefe
2020-12-02 12:28:10 +00:00
Magnus Ihse Bursie
bff68f1f67 8257533: legacy-jre-image includes jpackage and jlink tools
Reviewed-by: alanb, sundar
2020-12-02 10:30:48 +00:00
Stuart Monteith
9a60413ba0 8248736: [aarch64] runtime/signal/TestSigpoll.java failed "fatal error: not an ldr (literal) instruction."
Reviewed-by: aph, shade
2020-12-02 10:22:20 +00:00
Magnus Ihse Bursie
e7ca0c4ae3 8257224: JDK-8251549 didn't update building.html
Reviewed-by: sundar, shade
2020-12-02 10:18:15 +00:00
Doug Simon
7e37c7c544 8257471: fatal error: Fatal exception in JVMCI: Exception during JVMCI compiler initialization
Reviewed-by: kvn, never
2020-12-02 10:14:46 +00:00
Yasumasa Suenaga
3e3745c2da 8256008: UL does not report anything if disk writing fails
Reviewed-by: stuefe
2020-12-02 09:19:24 +00:00
Yasumasa Suenaga
fb139cff1a 8257467: [TESTBUG] -Wdeprecated-declarations is reported at sigset() in exesigtest.c
Reviewed-by: dholmes, stuefe
2020-12-02 09:06:02 +00:00
Stefan Johansson
9de283b891 8257505: nsk/share/test/StressOptions stressTime is scaled in getter but not when printed
Reviewed-by: kbarrett, dholmes
2020-12-02 08:53:54 +00:00
Sergey Bylokhov
282cb325b1 8005970: Mouse cursor is default cursor over TextArea's scrollbar
Reviewed-by: kizune
2020-12-02 06:51:53 +00:00
Jie Fu
f2a0988a4a 8257228: G1: SIGFPE in G1ConcurrentRefine::create(int*) due to buffers_to_cards overflow
Reviewed-by: kbarrett, tschatzl
2020-12-02 06:49:57 +00:00
Bradford Wetmore
fe5cccc1ec 8254631: Better support ALPN byte wire values in SunJSSE
Reviewed-by: xuelei, dfuchs
2020-12-02 04:14:28 +00:00
Alexey Semenyuk
541c7f74bb 8257434: jpackage fails to create rpm on Fedora Linux
Reviewed-by: almatvee, herrick
2020-12-02 02:50:33 +00:00
Jie Fu
8f4fa3f8d5 8257232: CompileThresholdScaling fails to work on 32-bit platforms
Reviewed-by: kvn, redestad
2020-12-02 02:31:08 +00:00
Paul Sandoz
cfd070ece6 8257537: [vector] Cleanup redundant bitwise cases on floating point vectors
Reviewed-by: vlivanov
2020-12-02 02:01:19 +00:00
Sergey Bylokhov
03f3b8eadd 8210253: Clipped UI rendering with X11 pipeline and HiDPI
Reviewed-by: aivanov, kizune
2020-12-02 00:04:20 +00:00
Xin Liu
ce496cbda5 8257190: simplify PhaseIdealLoop constructors
Currently, C2 has 3 private constructors of PhaseIdealLoop as follows. a-b are for verification. only c is for real loop optimizations.
a. PhaseIdealLoop( PhaseIterGVN &igvn)
b. PhaseIdealLoop(PhaseIterGVN &igvn, const PhaseIdealLoop *verify_me)
c. PhaseIdealLoop(PhaseIterGVN &igvn, LoopOptsMode mode)

I propose 3 changes to simplify them.
1. add assertion in the constructor c. C2 shouldn't use mode = LoopOptsVerify for it.
2. merge a and b into one constructor.
3. make the merged verification ctor only for debug builds.

Reviewed-by: thartmann, kvn
2020-12-01 23:50:53 +00:00
David Holmes
927504e827 8256474: Migrate Mutex _owner accesses to use Atomic operations
Reviewed-by: coleenp, kbarrett
2020-12-01 23:10:39 +00:00
Claes Redestad
00e79db89e 8257511: JDK-8254082 brings regression to AbstractStringBuilder.insert(int dstOffset, CharSequence s, int start, int end)
Reviewed-by: alanb, rriggs, bpb
2020-12-01 22:50:05 +00:00
Nils Eliasson
015e6e58c5 8257460: Further CompilerOracle cleanup
Reviewed-by: kvn, redestad, thartmann
2020-12-01 21:08:45 +00:00
Guoxiong Li
29d90b952c 8255968: Confusing error message for inaccessible constructor
Reviewed-by: mcimadamore
2020-12-01 21:06:06 +00:00
Brian Burkhalter
c5046ca5b3 8246739: InputStream.skipNBytes could be implemented more efficiently
Reviewed-by: rriggs, lancea, naoto
2020-12-01 20:07:53 +00:00
Mandy Chung
56b15fbbcc 8159746: (proxy) Support for default methods
Co-authored-by: Peter Levart <plevart@openjdk.org>
Reviewed-by: darcy, alanb, plevart
2020-12-01 17:23:07 +00:00
Alan Bateman
1433bafb33 8253751: Dependencies of automatic modules are not propagated through module layers
Reviewed-by: mchung
2020-12-01 15:40:10 +00:00
Patric Hedlin
e3d0f27031 8257231: assert(!is_mcall || (call_returns[block->_pre_order] <= (uint) current_offset))
Reviewed-by: shade, chagedorn
2020-12-01 14:16:41 +00:00
Aleksey Shipilev
eaf4db6b8b 8257502: Builds fail with new warnings after JDK-8256254
Reviewed-by: jiefu, stuefe
2020-12-01 13:51:35 +00:00
Claes Redestad
2966d0d334 8257223: C2: Optimize RegMask::is_bound
Reviewed-by: kvn, neliasso
2020-12-01 13:18:32 +00:00
Coleen Phillimore
3a11009dac 8256830: misc tests failed with "assert(env->is_enabled(JVMTI_EVENT_OBJECT_FREE)) failed: checking"
Reviewed-by: kbarrett, sspitsyn, dholmes
2020-12-01 13:07:41 +00:00
Mahendra Chhipa
c859fb02f3 8249836: java/io/IOException/LastErrorString.java should have bug-id as 1st word in @ignore
Reviewed-by: iignatyev
2020-12-01 12:57:36 +00:00
Yasumasa Suenaga
e0de28c1d3 8257424: RecordingStream does not specify the recording name
Reviewed-by: egahlin
2020-12-01 11:17:43 +00:00
Magnus Ihse Bursie
60f2ba9a24 8257487: Include configuration name in summary
Reviewed-by: shade
2020-12-01 11:04:13 +00:00
Per Liden
021dced22a 8257415: ZGC: Fix barrier_data types
Reviewed-by: smonteith, stefank
2020-12-01 10:40:46 +00:00
Christian Hagedorn
aa2d36f6de 8256807: C2: Not marking stores correctly as mismatched in string opts
Reviewed-by: vlivanov, roland, thartmann
2020-12-01 10:11:39 +00:00
Roland Westrelin
3d460bd295 8256655: rework long counted loop handling
Reviewed-by: kvn, thartmann, vlivanov
2020-12-01 07:30:51 +00:00
Aleksey Shipilev
13bd2e82ca 8257396: AArch64 Zero build is broken after JDK-8252684
Reviewed-by: dholmes
2020-12-01 07:14:24 +00:00
Tobias Hartmann
353e791a18 8257398: Enhance debug output in Type::check_symmetrical
Reviewed-by: vlivanov, chagedorn
2020-12-01 07:02:48 +00:00
Ioi Lam
f48737c7b3 8256254: Convert vmIntrinsics::ID to enum class
Reviewed-by: redestad, kvn
2020-12-01 05:35:29 +00:00
Sergey Bylokhov
b5ce8af3d7 8256373: [Windows/HiDPI] The Frame#setBounds does not work in a minimized state
Reviewed-by: kizune, aivanov
2020-12-01 04:49:21 +00:00
Jie Fu
0eaf0bbe26 8257420: Zero VM build broken with clang after JDK-8256726 due to strlen() is not a constexpr
Reviewed-by: shade, stuefe
2020-12-01 03:38:30 +00:00
Prasanta Sadhukhan
822ee47459 8257242: [macOS] Java app crashes while switching input methods
Reviewed-by: serb
2020-12-01 03:21:57 +00:00
Valerie Peng
7d8985243d 8244154: Update SunPKCS11 provider with PKCS11 v3.0 header files
Reviewed-by: weijun
2020-12-01 00:49:39 +00:00
Mandy Chung
4356469a31 8230501: Class data support for hidden classes
Reviewed-by: jvernee, psandoz, chegar
2020-12-01 00:24:40 +00:00
Lance Andersen
11dad148ff 8257445: (zipfs) Add DataProvider to TestLocOffsetFromZip64EF.java
Reviewed-by: bpb
2020-12-01 00:14:59 +00:00
Rohit Arul Raj
29f86e00b1 8256536: Newer AMD 19h (EPYC) Processor family defaults
Reviewed-by: kvn
2020-11-30 22:29:53 +00:00
Weijun Wang
7f58a8e954 8213719: Both sect163r2 and sect163k1 are default curves for field size 163
Reviewed-by: valeriep, xuelei
2020-11-30 22:19:53 +00:00
Xue-Lei Andrew Fan
ae5b5268f3 8257448: Clean duplicated non-null check in the SunJSSE provider implementation
Reviewed-by: mullan
2020-11-30 21:57:14 +00:00
Stuart Marks
41dbc139ab 8180352: Add Stream.toList() method
Reviewed-by: psandoz
2020-11-30 19:37:56 +00:00
Paul Sandoz
89690699b2 8256995: [vector] Improve broadcast operations
Co-authored-by: Paul Sandoz <psandoz@openjdk.org>
Co-authored-by: Sandhya Viswanathan <sviswanathan@openjdk.org>
Reviewed-by: kvn, vlivanov
2020-11-30 18:52:20 +00:00
Sergey Tsypanov
6eb25d7cb4 8254082: AbstractStringBuilder.insert(int dstOffset, CharSequence s, int start, int end) is missing fast-path for String
Reviewed-by: redestad
2020-11-30 17:43:19 +00:00
Erik Joelsson
4c86e46d75 8256810: Incremental rebuild broken on Macosx
Reviewed-by: mikael, ihse
2020-11-30 17:40:39 +00:00
Stefan Johansson
02ba5194c0 8255001: Move G1PeriodicGCTask to its own file
Reviewed-by: tschatzl, lkorinth
2020-11-30 17:37:19 +00:00
skodanda
8aaee53c2c 8256187: [TEST_BUG] Automate bug4275046.java test
Reviewed-by: aivanov, psadhukhan
2020-11-30 17:36:45 +00:00
Magnus Ihse Bursie
a3e1980c08 8256541: Sort out what version of awk is used in the build system
Reviewed-by: erikj
2020-11-30 16:35:02 +00:00
Per Liden
e3abe51a31 8257418: C2: Rename barrier data member in MemNode and LoadStoreNode
Reviewed-by: vlivanov
2020-11-30 14:15:43 +00:00
Sean Mullan
c0719605e7 8257083: Security infra test failures caused by JDK-8202343
Reviewed-by: xuelei
2020-11-30 13:31:47 +00:00
Coleen Phillimore
4db05e991b 8254042: gtest/GTestWrapper.java failed os.test_random
Reviewed-by: dholmes, stuefe, kbarrett
2020-11-30 12:48:17 +00:00
Thomas Schatzl
962f7a3bae 8257162: Initialize ThreadLocalAllocBuffer members
Reviewed-by: shade, ayang, sjohanss, pliden
2020-11-30 11:27:45 +00:00
Vladimir Ivanov
337d7bce03 8257165: C2: Improve box elimination for vector masks and shuffles
Reviewed-by: kvn, thartmann
2020-11-30 10:36:38 +00:00
Vladimir Ivanov
4e55d0f31e 8257057: C2: Improve safepoint processing during vector scalarization pass
Reviewed-by: kvn, thartmann
2020-11-30 10:30:47 +00:00
Richard Reingruber
e77aed624e 8256754: Deoptimization::revoke_for_object_deoptimization: stack processing start call is redundant
Reviewed-by: dlong, eosterlund
2020-11-30 08:37:06 +00:00
Erik Gahlin
738efea9c6 8248564: JFR: Remote Recording Stream
Reviewed-by: mgronlun
2020-11-30 08:19:08 +00:00
Claes Redestad
9bcd2695c3 8257221: C2: RegMask::is_bound_set split set handling broken since JDK-8221404
Reviewed-by: kvn, neliasso
2020-11-30 08:18:32 +00:00
David Holmes
222e943074 8257238: Cleanup include directives for precompiled.hpp
Reviewed-by: kbarrett
2020-11-30 03:38:10 +00:00
Xue-Lei Andrew Fan
fdee70d174 8257237: Cleanup unused imports in the SunJSSE provider implementation
Reviewed-by: wetmore
2020-11-30 01:54:36 +00:00
Vladimir Kozlov
816e8f83b8 8256999: Add C2 intrinsic for Reference.refersTo and PhantomReference::refersTo
Reviewed-by: pliden, vlivanov, rkennke, eosterlund, shade
2020-11-29 20:27:01 +00:00
Doug Simon
c5d95071df 8257220: [JVMCI] option validation should not result in a heavy-weight VM crash
Reviewed-by: kvn
2020-11-29 16:52:14 +00:00
Vladimir Kempik
c2af27beb0 8257148: Remove obsolete code in AWTView.m
Reviewed-by: serb
2020-11-29 08:17:52 +00:00
Aleksey Shipilev
87f37aa278 8256726: Zero: print proper message in ArrayIndexOutOfBoundException
Reviewed-by: dholmes, sgehwolf
2020-11-29 08:02:53 +00:00
Aleksey Shipilev
f4c15a98e3 8256832: Zero: micro-optimize safepoint handling after JDK-8255384
Reviewed-by: rehn
2020-11-29 08:02:25 +00:00
David Holmes
04eecf03eb 8257233: Windows x86 build is broken by JDK-8252684
Reviewed-by: mikael
2020-11-29 01:20:37 +00:00
Nick Gasson
c93f0a07c4 8252684: Move the AArch64 assember test under test/hotspot/gtest
Reviewed-by: aph
2020-11-28 15:37:18 +00:00
Sergey Bylokhov
1241f80002 8196086: java/awt/image/DrawImage/IncorrectSourceOffset.java fails
Reviewed-by: shade
2020-11-28 04:30:22 +00:00
Joe Darcy
65137ff02c 8253753: Enable default constructor warning in client modules
Reviewed-by: prr, serb, ihse
2020-11-27 21:31:59 +00:00
Hollow Man
f6bfbb2b09 8257208: Fix typo in doc/building.md
Reviewed-by: ihse
2020-11-27 19:32:24 +00:00
Fleshgrinder
b4cba15a0e 8170432: Class java.util.UUID & @Override
Reviewed-by: dfuchs, lancea
2020-11-27 19:29:50 +00:00
Hannes Wallnöfer
5be4de8583 8245058: improve presentation of annotations for modules and packages
Reviewed-by: jjg
2020-11-27 19:12:31 +00:00
Martin Doerr
d51e2ab219 8256986: [PPC64] C2 crashes when accessing nonexisting jvms of CallLeafDirectNode
Reviewed-by: clanger
2020-11-27 15:43:52 +00:00
Hannes Wallnöfer
644271e7a4 8248566: Make API docs more usable on mobile browsers
Reviewed-by: jjg
2020-11-27 15:31:56 +00:00
Hannes Wallnöfer
53d14442c9 8244535: JavaDoc search is overly strict with letter case
Reviewed-by: jjg
2020-11-27 15:27:19 +00:00
Hannes Wallnöfer
78fdb65dcf 8254893: Fix display of search tag results without holder information
Reviewed-by: jjg
2020-11-27 13:21:18 +00:00
Albert Mingkun Yang
20525d2110 8257149: Improve G1 Service thread task scheduling to guarantee task delay
Reviewed-by: sjohanss, iwalulya
2020-11-27 11:57:11 +00:00
Hannes Wallnöfer
f2f3ba92d7 8242652: Throw SkippedException if no JS engine availabe in TestSearchScript
Reviewed-by: prappo
2020-11-27 09:43:01 +00:00
Stefan Johansson
ee99686b28 8252645: Change time measurements in G1ServiceThread to only account remembered set work
Reviewed-by: ayang, tschatzl
2020-11-27 08:44:35 +00:00
Aleksey Shipilev
a3eec39b01 8257181: s390x builds are very noisy with gc-sections messages
Reviewed-by: mdoerr, lucy
2020-11-27 06:48:04 +00:00
Aleksey Shipilev
9a468d8599 8256757: Incorrect MachCallRuntimeNode::ret_addr_offset() for CallLeafNoFP on x86_32
Reviewed-by: jiefu, kvn
2020-11-27 06:47:30 +00:00
Evgeny Astigeevich
2215e5a47e 8255351: Add detection for Graviton 2 CPUs
Reviewed-by: simonis, kvn
2020-11-26 19:55:39 +00:00
Bradford Wetmore
62d72dec5e 8220730: sun.security.provider.SecureRandom default constructor has wrong documentation
Reviewed-by: weijun
2020-11-26 18:47:38 +00:00
Andrew Haley
4e43b28858 8256359: AArch64: runtime/ReservedStack/ReservedStackTestCompiler.java fails
Reviewed-by: shade, adinn
2020-11-26 17:52:54 +00:00
Evgeny Astigeevich
6e0062236c 8256488: [aarch64] Use ldpq/stpq instead of ld4/st4 for small copies in StubGenerator::copy_memory
Reviewed-by: simonis
2020-11-26 16:10:23 +00:00
Daniel Fuchs
a93841ac9c 8255277: randomDelay in DrainDeadlockT and LoggingDeadlock do not randomly delay
Reviewed-by: lancea
2020-11-26 14:50:40 +00:00
Claes Redestad
2d30a10138 8257069: C2: Clarify and sanity test RegMask/RegMaskIterator
Reviewed-by: jvernee, kvn
2020-11-26 13:42:55 +00:00
Stefan Karlsson
0a5de50052 8257151: ZGC: Simplify ZVerify
Reviewed-by: pliden, eosterlund
2020-11-26 13:02:49 +00:00
Per Liden
bf66d734bc 8257073: ZGC: Try forward object before retaining page
Reviewed-by: ayang, eosterlund, stefank
2020-11-26 12:30:28 +00:00
Aleksey Shipilev
1b3aa3afc5 8256831: MIPS Zero builds fail with undefined __atomic_compare_exchange_8
Reviewed-by: ihse
2020-11-26 11:26:01 +00:00
Jorn Vernee
734d3c3b8a 8256862: Several java/foreign tests fail on x86_32 platforms
Reviewed-by: sundar
2020-11-26 11:21:10 +00:00
Per Liden
7946c94170 8257082: ZGC: Clean up ZRuntimeWorkers and ZWorkers
Reviewed-by: stefank
2020-11-26 10:57:24 +00:00
Stefan Johansson
f6d6a07c30 8256938: Improve remembered set sampling task scheduling
Reviewed-by: tschatzl, ayang
2020-11-26 10:06:14 +00:00
Per Liden
b823ad9270 8257072: ZGC: Rename roots iterators
Reviewed-by: ayang, stefank
2020-11-26 09:54:19 +00:00
Sergey Bylokhov
973255c469 8196100: javax/swing/text/JTextComponent/5074573/bug5074573.java fails
Reviewed-by: kizune
2020-11-26 08:43:29 +00:00
Joakim Nordström
a8e3eabb6d 8245026: PsAdaptiveSizePolicy::_old_gen_policy_is_ready is unused
Reviewed-by: sjohanss, pliden
2020-11-26 07:31:09 +00:00
Jie Fu
b1d1499356 8256956: RegisterImpl::max_slots_per_register is incorrect on AMD64
Reviewed-by: thartmann, vlivanov
2020-11-26 02:41:42 +00:00
Claes Redestad
20020d1572 8254360: Re-examine use of CodeBuffer::verify_section_allocation
Reviewed-by: neliasso, thartmann, kvn
2020-11-25 21:50:34 +00:00
Thomas Stuefe
e56a8df8a0 8257042: [aix] Disable os.release_one_mapping_multi_commits_vm gtest
Reviewed-by: shade
2020-11-25 21:26:36 +00:00
Sergey Bylokhov
9d7121c180 8256713: SwingSet2 : Slider leaves tracks in uiScale=2
Reviewed-by: jdv, psadhukhan
2020-11-25 20:28:10 +00:00
Per Liden
434b98fe0f 8257077: ZGC: Remove ZWorkers::run_serial()
Reviewed-by: stefank
2020-11-25 20:12:16 +00:00
Per Liden
f3fc0e088d 8257079: ZGC: Fold ZMark::prepare_mark() into ZMark::start()
Reviewed-by: stefank, ayang
2020-11-25 20:11:26 +00:00
Aleksey Shipilev
a14f02d8e5 8256267: Relax compiler/floatingpoint/NaNTest.java for x86_32 and lower -XX:+UseSSE
Reviewed-by: kvn, iignatyev
2020-11-25 20:01:00 +00:00
Jorn Vernee
7c73fff34d 8256486: Linux/Windows-x86 builds broken after JDK-8254231
Reviewed-by: shade
2020-11-25 18:09:22 +00:00
Lin Zang
461c5fc637 8256450: Add gz option to jmap to write a gzipped heap dump
Reviewed-by: cjplummer, sspitsyn, phh
2020-11-25 16:51:42 +00:00
Vipin Sharma
dee79d6053 8253936: Replace <code>...</code> with {@code ...} for java.sql
Reviewed-by: lancea
2020-11-25 16:01:40 +00:00
Nils Eliasson
cfb175dfdf 8256508: Improve CompileCommand flag
Reviewed-by: redestad, kvn
2020-11-25 14:20:35 +00:00
Christian Hagedorn
7aed9b65d0 8256016: Dacapo24H.java failed with "assert(false) failed: unscheduable graph"
Reviewed-by: kvn, vlivanov
2020-11-25 14:00:40 +00:00
Ralf Schmelter
26e6cb3eb9 8256489: Make gtest for long path names on Windows more resilient in the presence of virus scanners
Reviewed-by: dholmes, clanger
2020-11-25 13:16:36 +00:00
Aleksey Shipilev
911f16d4c8 8257056: Submit workflow should apt-get update to avoid package installation errors
Reviewed-by: rwestberg, sgehwolf
2020-11-25 13:13:15 +00:00
Chris Hegarty
b0bd0c24aa 8256755: Update build.tools.depend.Depend to handle record components in API signatures
Reviewed-by: jlahoda
2020-11-25 11:37:19 +00:00
Maurizio Cimadamore
9aeadbb020 8256865: Foreign Memory Access and Linker API are missing NPE checks
Reviewed-by: jvernee, sundar, chegar
2020-11-25 10:48:37 +00:00
Joakim Nordström
8cd2e0f694 8243315: ParallelScavengeHeap::initialize() passes GenAlignment as page size to os::trace_page_sizes instead of actual page size
Reviewed-by: sjohanss, tschatzl
2020-11-25 09:36:45 +00:00
Chris Hegarty
cdb41ba1d0 8255904: Remove superfluous use of reflection in Class::isRecord
Reviewed-by: redestad, alanb
2020-11-25 09:00:30 +00:00
Robin Westberg
c45725e587 8256747: GitHub Actions: decouple the hotspot build-only jobs from Linux x64 testing
Reviewed-by: shade
2020-11-25 08:28:59 +00:00
Alan Bateman
79e57ace65 8256643: Terminally deprecate ThreadGroup stop, destroy, isDestroyed, setDaemon and isDaemon
Reviewed-by: serb, rriggs, iris, mchung, smarks
2020-11-25 08:26:00 +00:00
Jatin Bhateja
0d91f0a1df 8252848: Optimize small primitive arrayCopy operations through partial inlining using AVX-512 masked instructions
Reviewed-by: neliasso, kvn
2020-11-25 06:08:19 +00:00
Kim Barrett
66943fefa7 8256517: (ref) Reference.clear during reference processing may lose notification
8240696: (ref) Reference.clear may extend the lifetime of the referent

Use private native helper to implement Reference.clear.

Reviewed-by: pliden, rkennke, mchung
2020-11-25 03:34:50 +00:00
Mandy Chung
3c230b8ac5 8256993: Clarify Package::isSealed javadoc about package sealing vs sealed class or interface
Reviewed-by: alanb
2020-11-24 21:18:46 +00:00
Stefan Johansson
1b7a61ff4a 8254999: Move G1RemSetSamplingTask to more appropriate location
Reviewed-by: tschatzl, ayang
2020-11-24 20:56:14 +00:00
Patric Hedlin
695117f8f6 8255479: [aarch64] assert(src->section_index_of(target) == CodeBuffer::SECT_NONE) failed: sanity
Reviewed-by: aph, neliasso
2020-11-24 18:56:58 +00:00
Sean Mullan
dbfeb90d3a 8243559: Remove root certificates with 1024-bit keys
Reviewed-by: weijun
2020-11-24 18:14:05 +00:00
Alex Menkov
2a1e9be6c2 8256364: vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t002 failed with "assert(handle != __null) failed: JNI handle should not be null"
Reviewed-by: cjplummer, sspitsyn
2020-11-24 17:49:55 +00:00
Eric Liu
f1d6e8dbb6 8256387: Unexpected result if patching an entire instruction on AArch64
Reviewed-by: shade, aph
2020-11-24 17:29:03 +00:00
Roger Riggs
bd14274b1b 8256480: Refactor ObjectInputStream field reader implementation
Reviewed-by: bchristi
2020-11-24 17:04:08 +00:00
Tobias Hartmann
1c4c99eae2 8256823: C2 compilation fails with "assert(isShiftCount(imm8 >> 1)) failed: illegal shift count"
Reviewed-by: vlivanov, kvn, chagedorn
2020-11-24 16:52:13 +00:00
Martin Doerr
3b3e90ecad 8256924: ppc, ppcle, s390: JVM crashes at VM init after JDK-8254231
Reviewed-by: shade
2020-11-24 16:24:55 +00:00
Andy Herrick
ff6df15be3 8256801: tools/jpackage/share/FileAssociationsTest.java#id0 failed unpack.bat with "Exit code: 1603"
Reviewed-by: asemenyuk, almatvee, kizune
2020-11-24 14:59:13 +00:00
Andy Herrick
303631e3d5 8256475: Fix Behavior when Installer name differs from application name.
Reviewed-by: asemenyuk, almatvee, kizune
2020-11-24 14:56:23 +00:00
Claes Redestad
fa3cfcd0cd 8256883: C2: Add a RegMask iterator
Reviewed-by: kvn, pliden, eosterlund
2020-11-24 14:35:51 +00:00
Claes Redestad
f55ae9595e 8256858: C2: Devirtualize PhaseIterGVN-specific methods
Reviewed-by: kvn, thartmann
2020-11-24 14:33:47 +00:00
Aleksey Shipilev
7b3d0958c0 8256618: Zero: Linux x86_32 build still fails
Reviewed-by: aph, dholmes, stuefe
2020-11-24 12:26:44 +00:00
Magnus Ihse Bursie
9e4944f7b6 8256308: Send arguments to javac server in a config file
Reviewed-by: erikj, jfranck
2020-11-24 11:13:09 +00:00
Aleksey Shipilev
8f7caa4353 8256857: ARM32 builds broken after JDK-8254231
Reviewed-by: jvernee, stuefe
2020-11-24 11:02:13 +00:00
Thomas Stuefe
f8d7c5a5cf 8256922: ppc, ppcle build broken after JDK-8254231
Reviewed-by: shade, lucy, mdoerr
2020-11-24 10:59:54 +00:00
Aleksey Shipilev
b52f6c053b 8256736: Zero: GTest tests fail with "unsuppported vm variant"
Reviewed-by: dholmes
2020-11-24 06:49:55 +00:00
Fairoz Matte
e838d71d61 8256722: handle VC++:1927 VS2019 in abstract_vm_version
Reviewed-by: shade, dholmes
2020-11-24 04:48:40 +00:00
Kim Barrett
cc96b0acbc 8256813: Simplify WeakProcessor counting of OopStorage entries
Reviewed-by: sjohanss, stefank
2020-11-24 02:17:47 +00:00
Xiaohong Gong
67a959002d 8256614: AArch64: Add SVE backend implementation for integer min/max
Reviewed-by: adinn
2020-11-24 02:04:34 +00:00
Per Liden
372595cca3 8256390: ZGC: Relocate in-place instead of having a heap reserve
Reviewed-by: stefank, eosterlund
2020-11-23 23:30:38 +00:00
Aleksey Shipilev
1df94c9fff 8256912: Zero builds fail after JDK-8255984
Reviewed-by: zgu, rkennke
2020-11-23 22:30:36 +00:00
Naoto Sato
b3497f9b36 8256839: JavaDoc for java.time.Period.negated() method
Reviewed-by: rriggs, lancea, joehw, scolebourne
2020-11-23 22:17:45 +00:00
Kim Barrett
b50b99dfcb 8256825: Cleanup WeakProcessorPhaseTimes
Reviewed-by: sjohanss, stefank
2020-11-23 20:20:20 +00:00
Aleksey Shipilev
47a78e8a6d 8256829: GNU hash style is not available on MIPS
Reviewed-by: ihse, aoqi, glaubitz
2020-11-23 19:32:34 +00:00
Aleksey Shipilev
7551c6800c 8256675: Zero: purge biased locking support
Reviewed-by: coleenp, pchilanomate
2020-11-23 19:15:50 +00:00
Aleksey Shipilev
d9ae0db699 8256746: gc/CriticalNativeArgs.java fails without -XX:-CriticalJNINatives
Reviewed-by: kbarrett, coleenp, rkennke
2020-11-23 19:12:13 +00:00
William Kemper
aac5c2a862 8255984: Shenandoah: "adaptive" heuristic is prone to missing load spikes
Reviewed-by: shade
2020-11-23 18:53:59 +00:00
Thomas Stuefe
fa75ad695c 8256725: Metaspace: better blocktree and binlist asserts
Reviewed-by: shade, rrich, lkorinth
2020-11-23 18:50:09 +00:00
Sandhya Viswanathan
9de5d091ff 8256585: Remove in-place conversion vector operators from Vector API
Reviewed-by: psandoz
2020-11-23 18:48:16 +00:00
Aleksey Shipilev
18e8506412 8256860: S390 builds broken after JDK-8254231
Reviewed-by: stuefe
2020-11-23 17:55:20 +00:00
Joe Darcy
042734cc5b 8251549: Update docs on building for Git
Reviewed-by: lancea
2020-11-23 17:44:10 +00:00
Naoto Sato
ae0ca743f5 8247432: Update IANA Language Subtag Registry to Version 2020-09-29
Reviewed-by: joehw
2020-11-23 16:41:50 +00:00
Elliott Baron
8ddf5e172b 8256809: Annotation processing causes NPE during flow analysis
Reviewed-by: jlahoda
2020-11-23 16:02:52 +00:00
Patricio Chilano Mateo
aabc9ca266 8255678: Add Mutex::try_lock version without rank checks
Reviewed-by: dcubed, dholmes, coleenp
2020-11-23 15:41:19 +00:00
Jorn Vernee
884b9ff24f 8256485: Zero VM build broken after JDK-8254231
Reviewed-by: shade, redestad
2020-11-23 15:13:51 +00:00
Zhengyu Gu
84429cd944 8249144: Potential memory leak in TypedMethodOptionMatcher
Reviewed-by: thartmann
2020-11-23 13:44:43 +00:00
ANUPAM DEV
895cc4f0a2 8255675: Typo in java.net.HttpURLConnection
Reviewed-by: chegar
2020-11-23 12:08:47 +00:00
Conor Cleary
5ed704484e 8256154: Some TestNG tests require default constructors
Reviewed-by: dfuchs, bpb
2020-11-23 11:48:39 +00:00
Magnus Ihse Bursie
b0485b9632 8256240: Reproducible builds should turn on the "deterministic" flag for Visual Studio
Reviewed-by: erikj
2020-11-23 11:33:18 +00:00
Maurizio Cimadamore
0fb31dbf3a 8254231: Implementation of Foreign Linker API (Incubator)
Reviewed-by: coleenp, ihse, dholmes, vlivanov
2020-11-23 11:00:38 +00:00
Per Liden
53f38353e0 8256419: ZGC: Remove "Heap Used Before/After Mark/Relocation" samplers
Reviewed-by: eosterlund, stefank
2020-11-23 10:38:38 +00:00
Claes Redestad
b450e7c1c5 8256827: C2: Avoid reallocations by pre-sizing lists in post_allocate_copy_removal
Reviewed-by: kvn, thartmann
2020-11-23 10:18:40 +00:00
Claes Redestad
c0689d25fb 8256741: Reduce footprint of compiler interface data structures
Reviewed-by: cjplummer, kvn
2020-11-23 10:17:43 +00:00
Claes Redestad
65b77d5920 8256738: Compiler interface clean-up
Reviewed-by: neliasso, kvn, thartmann
2020-11-23 10:17:09 +00:00
Stefan Karlsson
69c3470e72 8252973: ZGC: Implement Large Pages support on Windows
Reviewed-by: eosterlund, mbeckwit, pliden
2020-11-23 08:39:23 +00:00
Christian Hagedorn
e4a32bea9f 8251925: C2: RenaissanceStressTest fails with assert(!had_error): bad dominance
Reviewed-by: kvn, thartmann
2020-11-23 08:37:09 +00:00
Stefan Karlsson
1f32c11d5e 8256740: ZGC: Move closures out of zOopClosure files
Reviewed-by: pliden
2020-11-23 08:24:47 +00:00
Tobias Hartmann
659aec8096 8256719: C1 flags that should have expired are still present
Reviewed-by: shade, neliasso
2020-11-23 07:09:32 +00:00
Aleksey Shipilev
e06a68397d 8256497: Zero: enable G1 and Shenandoah GCs
Reviewed-by: rkennke, erikj, ihse
2020-11-22 18:10:04 +00:00
Aleksey Shipilev
037e49cf57 8256670: Zero: enable compressed oops support back
Reviewed-by: coleenp
2020-11-22 18:06:18 +00:00
Aleksey Shipilev
d46f6f5a80 8256523: Streamline Java SHA2 implementation
Reviewed-by: valeriep
2020-11-22 18:03:06 +00:00
Coleen Phillimore
1aa90ac629 8256822: runtime/logging/RedefineClasses.java fails with "Error: VM option 'Verbose' is develop and is available only in debug version of VM."
Reviewed-by: stuefe
2020-11-21 21:55:59 +00:00
Kim Barrett
edf72f065f 8256824: test/langtools/tools/javac/diags/examples/InnerClassCantHaveStatic.java has a bad copyright
Reviewed-by: dcubed
2020-11-21 16:06:31 +00:00
Vicente Romero
9a19eb6918 8254105: allow static nested declarations
Reviewed-by: mcimadamore
2020-11-21 03:17:57 +00:00
Alex Menkov
14de791d60 8255934: JConsole 14 and greater fails to connect to older JVM
Reviewed-by: cjplummer, sspitsyn
2020-11-20 23:33:11 +00:00
Aleksey Shipilev
86f36027e4 8256806: Shenandoah: optimize shenandoah/jni/TestPinnedGarbage.java test
Reviewed-by: rkennke
2020-11-20 21:45:13 +00:00
Vladimir Ivanov
57025e65e1 8256073: Improve vector rematerialization support
Reviewed-by: thartmann, kvn
2020-11-20 21:17:09 +00:00
Vladimir Ivanov
41c05876bc 8255367: C2: Deoptimization during vector box construction is broken
Reviewed-by: thartmann, kvn
2020-11-20 21:16:34 +00:00
Vladimir Ivanov
f79e9d4573 8256061: RegisterSaver::save_live_registers() omits upper halves of ZMM0-15 registers
Reviewed-by: kvn
2020-11-20 21:15:58 +00:00
Vladimir Ivanov
503590f6bf 8256056: Deoptimization stub doesn't save vector registers on x86
Reviewed-by: redestad, kvn
2020-11-20 21:15:21 +00:00
Vladimir Ivanov
e6fa85b493 8256058: Improve vector register handling in RegisterMap::pd_location() on x86
Reviewed-by: kvn
2020-11-20 21:14:34 +00:00
Conor Cleary
be6c89366f 8256183: InputStream.skipNBytes is missing @since 12
Reviewed-by: dfuchs, lancea, bpb
2020-11-20 20:11:48 +00:00
Weijun Wang
b21b96df21 8256507: Add a micro benchmark for JDK-8153005
Reviewed-by: shade
2020-11-20 19:53:24 +00:00
Poonam Bajaj
8d9cf48e81 8255908: ExceptionInInitializerError due to UncheckedIOException while initializing cgroupv1 subsystem
Reviewed-by: shade, sgehwolf, bobv
2020-11-20 18:40:01 +00:00
Zhengyu Gu
5ad1e22866 8256658: Shenandoah: Deadlock between nmethod_entry_barrier and concurrent code root evacuator
Reviewed-by: rkennke
2020-11-20 18:36:17 +00:00
Stuart Marks
cc0ed401ec 8037384: Fix wording in Javadoc of java.io.Serializable
8231547: Serializable class doc should link to serialization specification

Reviewed-by: rriggs, iris, chegar
2020-11-20 18:26:38 +00:00
Erik Joelsson
19b2898691 8256751: Incremental rebuild with precompiled header fails when touching a header file
Reviewed-by: ihse
2020-11-20 18:13:56 +00:00
Daniel D. Daugherty
4dd71ae1c5 8256803: ProblemList runtime/ReservedStack/ReservedStackTestCompiler.java on linux-aarch64
Reviewed-by: mikael
2020-11-20 17:59:05 +00:00
Naoto Sato
2c3a2bed6d 8211449: Correction to the spec of implicit negative subpattern in DecimalFormat
Reviewed-by: bpb
2020-11-20 17:10:00 +00:00
Alexey Semenyuk
11bfdc57f9 8235304: JPackage Windows test should be added to set Publisher
Reviewed-by: herrick, almatvee
2020-11-20 16:38:50 +00:00
Brian Burkhalter
2ae3e51f59 8229845: Decrease memory consumption of BigInteger.toString()
Reviewed-by: redestad
2020-11-20 16:23:41 +00:00
Igor Ignatyev
ff00c591c3 8256569: Add C2 compiler stress flags to CTW
Reviewed-by: kvn, shade, thartmann
2020-11-20 15:01:37 +00:00
Coleen Phillimore
e7c7469cf5 8246378: [Windows] assert on MethodHandle logging code
Reviewed-by: iklam, vlivanov
2020-11-20 13:00:10 +00:00
Zhengyu Gu
98a5d5a6ee 8256664: Shenandoah: Cleanup after JDK-8212879
Reviewed-by: rkennke
2020-11-20 12:57:13 +00:00
jasontatton-aws
b99fd4c7d6 8033441: print line numbers with -XX:+PrintOptoAssembly
Reviewed-by: jiefu, thartmann
2020-11-20 12:51:47 +00:00
Zhengyu Gu
266dea06ec 8256688: Shenandoah: Lock rank inversion after JDK-8212879
Reviewed-by: rkennke
2020-11-20 12:51:11 +00:00
Per Liden
aeba9259b2 8256416: ZGC: Lower ZMarkCompleteTimeout
Reviewed-by: ayang, eosterlund
2020-11-20 12:36:42 +00:00
Stefan Karlsson
10ba541846 8256727: ZGC: Clean out dead code after JDK-8212879
Reviewed-by: pliden
2020-11-20 12:35:37 +00:00
Roberto Castañeda Lozano
eb35ade9a0 6232281: -XX:-UseLoopSafepoints causes assert(v_false,"Parse::remove_useless_nodes missed this node")
Check for nodes missed by remove_useless_nodes() only if PhaseRemoveUseless has
actually been run. This makes it possible to use -XX:-UseLoopSafepoints without
crashing trivially, although implicit assumptions in other parts of C2 about the
existence of loop safepoints might lead to more subtle failures for more complex
methods.

Reviewed-by: neliasso, thartmann, kvn
2020-11-20 12:06:36 +00:00
Thomas Schatzl
a25fb0356a 8256406: G1 x86 C1/Interpreter post write barrier always uses 32 bit to access variable sized PtrQueue::_index
Reviewed-by: shade
2020-11-20 11:09:07 +00:00
Bernhard Urban-Forster
f57662874a 8256633: Fix product build on Windows+Arm64
Reviewed-by: shade
2020-11-20 11:01:25 +00:00
Magnus Ihse Bursie
8e7a855ee8 8255526: Enable jcheck whitespace checking of build system files
Reviewed-by: shade, erikj
2020-11-20 10:01:34 +00:00
Robin Westberg
c45ab1aada 8256393: Github Actions build on Linux should define OS and GCC versions
Reviewed-by: shade, erikj, ihse
2020-11-20 08:04:08 +00:00
Guoxiong Li
5fedb69e66 8250888: nsk/jvmti/scenarios/general_functions/GF08/gf08t001/TestDriver.java fails
Reviewed-by: cjplummer, sspitsyn
2020-11-20 07:02:48 +00:00
Thomas Stuefe
02adaa5854 8255885: Metaspace: freelist commit counter is not updated when purging
Reviewed-by: coleenp, iklam
2020-11-20 06:52:21 +00:00
David Holmes
fa240f2261 8256594: Unexpected warning: SIGSEGV handler flags expected:SA_RESTART|SA_SIGINFO found:SA_RESTART|SA_SIGINFO
Reviewed-by: stuefe, coleenp, dcubed
2020-11-20 04:17:27 +00:00
Alexander Zuev
4c095252a5 8256108: Create implementation for NSAccessibilityElement protocol peer
Reviewed-by: serb
2020-11-20 04:10:09 +00:00
Naoto Sato
68138893a5 8251317: Support for CLDR version 38
Reviewed-by: erikj, bchristi, joehw
2020-11-19 22:41:11 +00:00
Sergey Bylokhov
c816464c1d 4916923: In MetalRootPaneUI, MetalRootLayout does not correctly calculate minimumsize
Reviewed-by: shade
2020-11-19 22:39:37 +00:00
Coleen Phillimore
fae68ff016 8256640: assert(!m->is_old() || ik()->is_being_redefined()) failed: old methods should not be in vtable
Reviewed-by: lfoltan, dcubed, dholmes
2020-11-19 22:39:07 +00:00
Aleksey Shipilev
c1407733c5 8256692: Zero: remove obsolete block from ZeroInterpreter::native_entry
Reviewed-by: coleenp
2020-11-19 21:57:53 +00:00
Ian Graves
080c707aab 8253459: Formatter treats index, width and precision > Integer.MAX_VALUE incorrectly
Reviewed-by: rriggs, smarks
2020-11-19 20:20:55 +00:00
Sean Mullan
b9db002fef 8256682: JDK-8202343 is incomplete
Reviewed-by: dfuchs
2020-11-19 19:09:22 +00:00
Stefan Johansson
b8244b606e 8236926: Concurrently uncommit memory in G1
Reviewed-by: ayang, tschatzl
2020-11-19 17:55:33 +00:00
Aleksey Shipilev
defdd12e70 8142984: Zero: fast accessors should handle both getters and setters
Reviewed-by: andrew, coleenp
2020-11-19 17:37:07 +00:00
Alexey Semenyuk
1718abaefa 8227400: Adjust jib profiles to make 3rd party tools for creating installers available on Mach5 test machines
Reviewed-by: almatvee, herrick
2020-11-19 17:24:32 +00:00
Hai-May Chao
9bb82232fa 8253299: Manifest bytes are read twice when verifying a signed JAR
Reviewed-by: redestad, lancea, alanb
2020-11-19 17:22:59 +00:00
Paul Sandoz
580f22ccb7 8256581: Refactor vector conversion tests
Reviewed-by: vlivanov
2020-11-19 16:58:03 +00:00
Kim Barrett
675d1d56e6 8256516: Simplify clearing References
Provide and use explicit referent clearing instead of set to null.

Reviewed-by: rkennke, shade, pliden, mchung
2020-11-19 15:42:46 +00:00
Coleen Phillimore
ba721f5f2f 8212879: Make JVMTI TagMap table concurrent
Co-authored-by: Kim Barrett <kbarrett@openjdk.org>
Co-authored-by: Coleen Phillimore <coleenp@openjdk.org>
Reviewed-by: stefank, ihse, zgu, eosterlund, sspitsyn, kbarrett
2020-11-19 14:30:02 +00:00
Sean Mullan
3a4b90f086 8202343: Disable TLS 1.0 and 1.1
Reviewed-by: xuelei, dfuchs, coffeys
2020-11-19 14:15:57 +00:00
Patricio Chilano Mateo
342ccf6903 8256253: Defer Biased Locking obsoletion to JDK 18
Reviewed-by: dholmes, coleenp, dcubed, mdoerr
2020-11-19 14:12:41 +00:00
Alan Hayward
d183fc7faa 8221554: aarch64 cross-modifying code
Reviewed-by: rehn, aph
2020-11-19 12:27:22 +00:00
Thomas Stuefe
f626ed6a43 8255978: [windows] os::release_memory may not release the full range
Reviewed-by: iklam, minqi
2020-11-19 11:51:09 +00:00
Dong Bo
6702910b74 8256375: AArch64: aarch64-asmtest.py may generate undefined register r18
Reviewed-by: aph
2020-11-19 09:46:34 +00:00
Patrick Concannon
9fe2d31d6e 8252304: Seed an HttpRequest.Builder from an existing HttpRequest
Co-authored-by: Chris Hegarty <chegar@openjdk.org>
Reviewed-by: chegar, dfuchs, michaelm
2020-11-19 09:35:49 +00:00
Aleksey Shipilev
cb2676c8b7 8256499: Zero: enable Epsilon GC
Reviewed-by: rkennke, ihse
2020-11-19 08:02:37 +00:00
Nils Eliasson
8e241b5262 8256552: Let ReplayCompiles set UseDebuggerErgo
Reviewed-by: vlivanov, redestad
2020-11-19 07:45:08 +00:00
Ioi Lam
4178834deb 8256172: Clean up CDS handling of i2i_entry
Reviewed-by: minqi, ccheung
2020-11-19 07:31:00 +00:00
Yasumasa Suenaga
cfa92a53c0 8256178: Add RAII object for file lock
Reviewed-by: dholmes, coleenp
2020-11-19 04:09:25 +00:00
David Holmes
2b15571316 8256383: PlatformMutex::try_lock has different semantics on Windows and Posix
Reviewed-by: stuefe, dcubed
2020-11-18 22:48:39 +00:00
David Holmes
99eac53580 8225631: Consider replacing muxAcquire/Release with PlatformMonitor
Reviewed-by: coleenp, dcubed, kbarrett
2020-11-18 22:45:49 +00:00
Stuart Marks
646c20022c 8256152: tests fail because of ambiguous method resolution
Reviewed-by: psandoz
2020-11-18 22:04:18 +00:00
Christoph Langer
5912df2440 8256427: Test com/sun/jndi/dns/ConfigTests/PortUnreachable.java does not work on AIX
Reviewed-by: jiefu, mbaesken
2020-11-18 22:00:19 +00:00
Magnus Ihse Bursie
3110d589e1 8256538: Fix annoying awk warning in configure for java versions
Reviewed-by: erikj
2020-11-18 21:54:12 +00:00
Jorn Vernee
03e84ef7e3 8256189: Exact VarHandle tests should test withInvokeBehavior() works as expected
Reviewed-by: mcimadamore, chegar
2020-11-18 19:01:52 +00:00
Leonid Mesnik
300cbaa6ad 8256418: Jittester make build is broken.
Reviewed-by: iignatyev
2020-11-18 18:05:38 +00:00
Daniel D. Daugherty
c9c1573375 8256567: ProblemList java/util/stream/test/org/openjdk/tests/java/util/stream/SpliteratorTest.java for Xcomp testing
Reviewed-by: mcimadamore
2020-11-18 18:02:40 +00:00
Daniel D. Daugherty
33d3918e5a 8256565: ProblemList jdk/jfr/api/recording/event/TestReEnableName.java on windows
Reviewed-by: egahlin
2020-11-18 17:15:37 +00:00
Daniel D. Daugherty
1707d5ca3c 8238174: migrate ObjectMonitor::_owner field away from C++ volatile semantics
Reviewed-by: dholmes, mdoerr
2020-11-18 16:48:17 +00:00
Gerard Ziemski
50a2c22ff7 8253742: POSIX signal code cleanup
Reviewed-by: stuefe, dholmes
2020-11-18 15:29:13 +00:00
Coleen Phillimore
fa8dce4f77 8256365: Clean up vtable initialization code
Reviewed-by: eosterlund, dholmes
2020-11-18 14:12:48 +00:00
Erik Joelsson
4e5116c46e 8256501: libTestMainKeyWindow fails to build with Xcode 12.2
Reviewed-by: ihse, serb
2020-11-18 14:10:27 +00:00
Weijun Wang
486d6f631b 8256363: Define toString() for MGF1ParameterSpec
Reviewed-by: mullan
2020-11-18 13:14:11 +00:00
Zhengyu Gu
eab170c0af 8256415: Shenandoah: Should evacuate/update codecache concurrently when class unloading is off
Reviewed-by: rkennke
2020-11-18 12:59:17 +00:00
Tobias Hartmann
f504f419d3 8256385: C2: fatal error: modified node is not on IGVN._worklist
Reviewed-by: chagedorn, roland
2020-11-18 11:53:25 +00:00
Tobias Hartmann
5bcf898b97 8256478: C2 compilation fails with assert(t1->isa_long()) failed: Type must be a long
Reviewed-by: roland, chagedorn, kvn
2020-11-18 11:52:47 +00:00
Claes Redestad
f7f3447496 8256453: C2: Reduce State footprint
Reviewed-by: neliasso, kvn
2020-11-18 10:31:13 +00:00
Maurizio Cimadamore
d2ddf07461 8256477: Specialize heap memory segment implementations
Reviewed-by: jvernee, chegar
2020-11-18 10:23:20 +00:00
Martin Doerr
97074969a5 8256479: [PPC64] C2 crashes when UseVectorByteReverseInstructionsPPC64 used without SuperwordUseVSX
Reviewed-by: goetz, psandoz
2020-11-18 10:20:37 +00:00
Dong Bo
b0b9dd27b8 8256318: AArch64: Add support for floating-point absolute difference
Reviewed-by: aph
2020-11-18 10:14:20 +00:00
Roland Westrelin
655bb619a3 8255936: "parsing found no loops but there are some" assertion failure with Shenandoah
Reviewed-by: thartmann, rkennke
2020-11-18 09:24:17 +00:00
Michael McMahon
6948456dbf 8256461: AbstractFileSystemProvider.getSunPathForSocketCall for empty Path returns '.'
Reviewed-by: dfuchs, alanb
2020-11-18 08:43:51 +00:00
Thomas Schatzl
d30956055b 8253081: G1 fails on stale objects in archived module graph in Open Archive regions
Change the handling of Open Archive areas, instead of assuming that everything in there is live always, a root containing references to all live root objects is provided. Adapt G1 to handle Open Archive regions as any other old region apart from never compacting or evacuating them.

Co-authored-by: Ioi Lam <iklam@openjdk.org>
Reviewed-by: kbarrett, sjohanss, redestad
2020-11-18 08:21:03 +00:00
Xubo Zhang
c08921487b 8255368: Math.exp() gives wrong result for large values on x86 32-bit platforms
Reviewed-by: darcy, kvn
2020-11-18 04:49:15 +00:00
Ioi Lam
7ecf070e7d 8256476: Assert in vmIntrinsics::flags_for with -XX:+Verbose
Reviewed-by: redestad
2020-11-18 03:44:27 +00:00
Nick Gasson
26a1ec1b96 8256435: [TESTBUG] java/foreign/TestHandshake.java fails with direct buffer memory OOM
Reviewed-by: mcimadamore
2020-11-18 02:08:20 +00:00
Dongbo He
ef3ddb1d03 8255448: Fastdebug JVM crashes with Vector API when PrintAssembly is turned on
Co-authored-by: Huang Wang <wanghuang3@huawei.com>
Reviewed-by: vlivanov
2020-11-18 01:10:11 +00:00
Daniel D. Daugherty
eb021848ba 8134630: make code and comments consistent for stack lock optimization
Reviewed-by: dholmes, coleenp
2020-11-17 23:59:08 +00:00
Per Liden
f751738645 8256484: ZGC: Rename ZRelocationSetSelector::register_garbage_page()
Reviewed-by: stefank, ayang
2020-11-17 20:48:14 +00:00
Igor Ignatyev
d9dbd5def6 8256430: add linux-x64-optimized to regular testing
Reviewed-by: kvn, dcubed, vlivanov, erikj
2020-11-17 19:59:04 +00:00
Roman Kennke
9efbb463a4 8256426: Shenandoah: Remove superfluous assert is ShBS::load_reference_barrier()
Reviewed-by: shade
2020-11-17 17:09:56 +00:00
Per Liden
9130ca4c73 8256401: ZGC: Improve ZList verification
Reviewed-by: ayang, stefank
2020-11-17 16:40:12 +00:00
Roman Kennke
f2a9d02de2 8256370: Add asserts to Reference.getInactive()
Reviewed-by: mchung
2020-11-17 15:46:34 +00:00
Magnus Ihse Bursie
c255b18cfc 8256216: Enable reproducible builds in jib-profiles
Reviewed-by: erikj
2020-11-17 15:29:43 +00:00
Jose Ricardo Ziviani
c371782630 8255553: [PPC64] Introduce and use setbc and setnbc P10 instructions
Reviewed-by: mdoerr
2020-11-17 15:15:44 +00:00
Aleksey Shipilev
3b9c5a36f5 8255796: Zero: CASE(_new) should replenish TLABs properly
Reviewed-by: sgehwolf
2020-11-17 14:48:00 +00:00
Claes Redestad
654ad27418 8256392: C2: Various Node cleanups
Reviewed-by: neliasso, thartmann, vlivanov
2020-11-17 12:24:42 +00:00
Daniel Fuchs
9dbbe83a06 8256146: Cleanup test/jdk/java/nio/channels/DatagramChannel/Connect.java
Reviewed-by: alanb
2020-11-17 12:21:11 +00:00
Michael McMahon
9d0ee66f2d 8255758: JEP 380 spec clarifications
Reviewed-by: dfuchs, alanb
2020-11-17 12:12:08 +00:00
Aleksey Shipilev
3dcde557f7 8256386: ARM32 tests fail with "bad AD file" after JDK-8223051
Reviewed-by: azeemj, kvn, roland
2020-11-17 12:10:52 +00:00
Rafael Winterhalter
53a31889fe 8202471: (ann) Cannot read type annotations on generic receiver type's type variables
Reviewed-by: jfranck
2020-11-17 11:23:47 +00:00
Doug Simon
adb8561aba 8253228: [JVMCI] provide more info on fatal JVMCI errors
Reviewed-by: kvn, never
2020-11-17 11:21:17 +00:00
Roland Westrelin
a7422ac2f4 8255150: Add utility methods to check long indexes and ranges
Co-authored-by: Paul Sandoz <psandoz@openjdk.org>
Reviewed-by: jvernee, dlong, vlivanov
2020-11-17 10:37:27 +00:00
Tobias Hartmann
6d878565f8 8256325: Remove duplicate asserts in PhaseMacroExpand::expand_macro_nodes
Reviewed-by: shade, redestad
2020-11-17 09:37:36 +00:00
Christian Hagedorn
5dbfae0176 8255058: C1: assert(is_virtual()) failed: type check
Reviewed-by: neliasso, kvn
2020-11-17 09:16:06 +00:00
Matthias Baesken
4553fa0b98 8256258: some missing NULL checks or asserts after CodeCache::find_blob_unsafe
Reviewed-by: shade
2020-11-17 07:59:01 +00:00
Claes Redestad
1228517261 8256274: C2: Optimize copying of the shared type dictionary
Reviewed-by: neliasso, kvn
2020-11-17 07:15:04 +00:00
Kim Barrett
537b40e013 8252588: HotSpot Style Guide should permit uniform initialization
Reviewed-by: jrose, dholmes, dcubed, tschatzl, kvn
2020-11-17 03:16:10 +00:00
Alexander Matveev
c35e1a284b 8255947: [macos] Signed macOS jpackage app doesn't filter spurious '-psn' argument
Reviewed-by: herrick, asemenyuk
2020-11-17 01:57:24 +00:00
Eric Liu
30a2ad5501 8254872: Optimize Rotate on AArch64
Reviewed-by: aph, kvn
2020-11-17 01:55:09 +00:00
Jie Fu
eabf3bace7 8256037: [TESTBUG] com/sun/jndi/dns/ConfigTests/PortUnreachable.java fails due to the hard coded threshold is small
Reviewed-by: shade, aefimov
2020-11-17 01:35:30 +00:00
Sergey Bylokhov
36dbe6f2de 8256376: The javax/swing/JSpinner/SerializationTest.java fails on headful windows
Reviewed-by: aivanov
2020-11-16 23:14:58 +00:00
Naoto Sato
bf84dac4cf 8247781: Day periods support
Reviewed-by: scolebourne, rriggs, joehw
2020-11-16 23:12:45 +00:00
Thomas Stuefe
0357db3581 8256287: [windows] add loop fuse to map_or_reserve_memory_aligned
Reviewed-by: luhenry, iklam, minqi
2020-11-16 20:08:49 +00:00
Claes Redestad
6e35bcbf03 8256205: Simplify compiler calling convention handling
Reviewed-by: kvn, neliasso
2020-11-16 19:39:36 +00:00
Igor Ignatyev
68fd71d2ad 8256414: add optimized build to submit workflow
add linux-x64-optimized to submit workflow

Reviewed-by: vlivanov, shade, kvn
2020-11-16 19:30:43 +00:00
Patricio Chilano Mateo
3675653c20 8255384: Remove special_runtime_exit_condition() check from SS::block()
Reviewed-by: dholmes, rrich, dcubed
2020-11-16 17:21:13 +00:00
Boris Ulasevich
f611fdfee8 8254016: Test8237524 fails with -XX:-CompactStrings option
Reviewed-by: shade
2020-11-16 14:58:14 +00:00
Jorn Vernee
b8de2391d6 8256380: JDK-8254162 broke 32bit windows build
Reviewed-by: shade
2020-11-16 14:25:51 +00:00
Daniel D. Daugherty
1d7ed03d5c 8244376: possibly stale comment above "struct SharedGlobals" in synchronizer.cpp
Reviewed-by: hseigel, dholmes
2020-11-16 14:10:08 +00:00
Jie Kang
c85c9ad1f1 8255992: JFR EventWriter does not use first string from StringPool with id 0
Reviewed-by: egahlin
2020-11-16 13:25:40 +00:00
Robbin Ehn
c5fe2c1fcb 8244679: JVM/TI GetCurrentContendedMonitor/contmon001 failed due to "(IsSameObject#3) unexpected monitor object: 0x000000562336DBA8"
Reviewed-by: pchilanomate, dcubed, dholmes, sspitsyn
2020-11-16 13:06:45 +00:00
Hui Shi
8eeb36f14a 8255883: Avoid duplicated GeneratedMethodAccessor when reflect method invoked from different threads
Reviewed-by: shade, alanb
2020-11-16 11:34:47 +00:00
Thomas Schatzl
ac3948930e 8256323: Remove HeapRegionManager::update_committed_space()
Reviewed-by: shade, sjohanss
2020-11-16 10:11:33 +00:00
Robin Westberg
1103e3374c 8256354: Github Action build on Windows should define OS and MSVC versions
Reviewed-by: erikj, shade
2020-11-16 08:02:11 +00:00
Robin Westberg
588caab074 8256277: Github Action build on macOS should define OS and Xcode versions
Reviewed-by: shade, ehelin, erikj
2020-11-16 08:00:21 +00:00
Stefan Karlsson
6a69e304dd 8256337: ap01t001.cpp, 67: Received unexpected number of ObjectFree events: 7
Reviewed-by: coleenp, sspitsyn
2020-11-16 07:58:40 +00:00
Thomas Stuefe
298bce1d92 8256367: [windows] Better logging for some system calls
Reviewed-by: iklam
2020-11-16 07:15:43 +00:00
Christoph Langer
1e9a432d59 8256202: Some tweaks for jarsigner tests PosixPermissionsTest and SymLinkTest
Reviewed-by: mbaesken
2020-11-13 17:28:05 +00:00
Daniel Fuchs
1c47244b01 8255244: HttpClient: Response headers contain incorrectly encoded Unicode characters
Reviewed-by: chegar, michaelm
2020-11-13 15:10:41 +00:00
Harold Seigel
56ea7864d4 8245215: Obsolete InitialBootClassLoaderMetaspaceSize and UseLargePagesInMetaspace
Reviewed-by: lfoltan, ccheung, stuefe, coleenp
2020-11-13 13:13:43 +00:00
Aleksey Shipilev
e9956fec9a 8256127: Add cross-compiled foreign architectures builds to submit workflow
Reviewed-by: ihse, rwestberg
2020-11-13 12:36:51 +00:00
Stefan Karlsson
c8dd0b53ee 8256320: ZGC: Update zDebug to support UseCompressedClassPointers
Reviewed-by: pliden
2020-11-13 12:23:08 +00:00
Patrick Concannon
5973e91cc3 8253005: Add @throws IOException in javadoc for HttpEchange.sendResponseHeaders
Reviewed-by: dfuchs
2020-11-13 11:31:25 +00:00
Vladimir Ivanov
8c31bd2939 8256275: Optimized build is broken
Reviewed-by: redestad, coleenp
2020-11-13 11:07:53 +00:00
Roman Kennke
b0c28fadaa 8256011: Shenandoah: Don't resurrect finalizably reachable objects
Reviewed-by: shade, zgu
2020-11-13 09:47:00 +00:00
Nils Eliasson
41139e31c0 8255964: Add all details to jstack log in jtreg timeout handler
Reviewed-by: iignatyev
2020-11-13 09:40:06 +00:00
Aleksey Shipilev
b4d0186718 8253525: Implement getInstanceSize/sizeOf intrinsics
Reviewed-by: kvn, sspitsyn
2020-11-13 08:20:11 +00:00
Roland Westrelin
ea576ddbd4 8254887: C2: assert(cl->trip_count() > 0) failed: peeling a fully unrolled loop
Reviewed-by: chagedorn, thartmann
2020-11-13 08:19:33 +00:00
Aleksey Shipilev
05b824567c 8256290: javac/lambda/T8031967.java fails with StackOverflowError on x86_32
Reviewed-by: mcimadamore
2020-11-13 07:40:19 +00:00
Aleksey Shipilev
c3139abe38 8256220: C1: x86_32 fails with -XX:UseSSE=1 after JDK-8210764 due to mishandled lir_neg
Reviewed-by: chagedorn
2020-11-13 07:39:29 +00:00
Yumin Qi
1d3d64f34c 8255973: Add more logging to debug JDK-8255917
Reviewed-by: ccheung, stuefe, iklam
2020-11-13 03:44:41 +00:00
Alexandre Iline
e32a4ea4ef 8253820: Save test images and dumps with timestamps from client sanity suite
Reviewed-by: serb
2020-11-13 02:27:32 +00:00
Mandy Chung
dff26a489d 8256063: Module::getPackages on an unnamed module may return packages that are in a named module
Reviewed-by: alanb, chegar
2020-11-13 00:32:29 +00:00
Zhengyu Gu
531c56ea65 8256278: Shenandoah: Avoid num of dead callback from weak processor in Shenandoah root verifier
Reviewed-by: rkennke, shade
2020-11-12 21:37:30 +00:00
Roger Riggs
b5a9c92b7a 8256244: java/lang/ProcessHandle/PermissionTest.java fails with TestNG 7.1
Reviewed-by: lancea, iignatyev
2020-11-12 17:06:00 +00:00
Fernando Guallini
90f9a7053a 8255546: Missing coverage for javax.smartcardio.CardPermission and ResponseAPDU
Reviewed-by: xuelei
2020-11-12 17:04:16 +00:00
Sergey Bylokhov
1c0b490c28 8256201: java/awt/FullScreen/FullscreenWindowProps/FullscreenWindowProps.java failed
Reviewed-by: jdv
2020-11-12 17:00:15 +00:00
Maurizio Cimadamore
3e70aac5cc 8254162: Implementation of Foreign-Memory Access API (Third Incubator)
Reviewed-by: erikj, psandoz, alanb
2020-11-12 16:37:23 +00:00
Calvin Cheung
c6ab0fdb15 8255990: Bitmap region of dynamic CDS archive is not unmapped
Reviewed-by: iklam, minqi
2020-11-12 16:14:29 +00:00
Patricio Chilano Mateo
943acd22e5 8256276: Temporarily disable gtest special_flags
Reviewed-by: tschatzl, dcubed
2020-11-12 15:45:26 +00:00
Claes Redestad
19bade0280 8256238: Remove Matcher::pass_original_key_for_aes
Reviewed-by: thartmann, chagedorn
2020-11-12 14:21:24 +00:00
Claes Redestad
f7685a4639 8256203: Simplify RegMask::Empty
Reviewed-by: thartmann, chagedorn
2020-11-12 14:20:48 +00:00
Roland Westrelin
70c7b1d93c 8250607: C2: Filter type in PhiNode::Value() for induction variables of trip-counted integer loops
Reviewed-by: chagedorn, thartmann
2020-11-12 14:15:40 +00:00
Thomas Schatzl
bd8693a084 8256181: Remove Allocation of old generation on alternate memory devices functionality
Reviewed-by: ayang, iignatyev, iklam
2020-11-12 14:05:50 +00:00
Harold Seigel
4df8abc200 8255787: Tag container tests that use cGroups with cgroups keyword
Reviewed-by: sspitsyn
2020-11-12 13:23:57 +00:00
Matthias Baesken
ec08b3f28d 8256188: Adjust output of make/autoconf/configure
Reviewed-by: clanger, ihse
2020-11-12 06:29:13 +00:00
Hao Sun
da48003abd 8255975: Fix AArch64 OpenJDK build failure with gcc-5
Reviewed-by: dholmes
2020-11-12 02:30:39 +00:00
Lin Zang
14e25e2059 8255982: Extend BasicJMapTest to test with different GC Heap
Reviewed-by: shade, iignatyev
2020-11-12 02:12:15 +00:00
Ioi Lam
2f06893a29 8252526: Remove excessive inclusion of jvmti.h and jvmtiExport.hpp
Reviewed-by: ihse, kbarrett
2020-11-12 01:45:27 +00:00
Corey Ashford
ccb48b7203 8248188: Add IntrinsicCandidate and API for Base64 decoding
8248188: Add IntrinsicCandidate and API for Base64 decoding, add Power64LE intrinsic implementation.

This patch set encompasses the following commits:

Adds a new intrinsic candidate to the java.lang.Base64 class - decodeBlock(), and provides a flexible API for the intrinsic. The API is similar to the existing encodeBlock intrinsic.

Adds the code in HotSpot to check and martial the new intrinsic's arguments to the arch-specific intrinsic implementation.

Adds a Power64LE-specific implementation of the decodeBlock intrinsic.

Adds a JMH microbenchmark for both Base64 encoding and encoding.

Enhances the JTReg hotspot intrinsic "TestBase64.java" regression test to more fully test both decoding and encoding.

Reviewed-by: rriggs, mdoerr, kvn
2020-11-11 21:31:07 +00:00
Aleksey Shipilev
59965c17b4 8256237: Zero: non-PCH build fails after JDK-8253064
Reviewed-by: zgu, dcubed
2020-11-11 19:52:18 +00:00
Zhengyu Gu
bfa060f098 8256051: nmethod_entry_barrier stub miscalculates xmm spill size on x86_32
Reviewed-by: shade
2020-11-11 19:12:55 +00:00
Roman Kennke
96e0261041 8256106: Bypass intrinsic/barrier when calling Reference.get() from Finalizer
Reviewed-by: eosterlund
2020-11-11 18:07:08 +00:00
Roman Kennke
3c3469b9ce 8256020: Shenandoah: Don't resurrect objects during evacuation on AS_NO_KEEPALIVE
Reviewed-by: shade
2020-11-11 18:03:58 +00:00
Daniel D. Daugherty
2e19026d45 8253064: monitor list simplifications and getting rid of TSM
Co-authored-by: Erik Österlund <eosterlund@openjdk.org>
Reviewed-by: eosterlund, rehn, coleenp
2020-11-11 16:20:11 +00:00
Aleksey Shipilev
421a7c3b41 8256182: Update qemu-debootstrap cross-compilation recipe
Reviewed-by: ihse
2020-11-11 16:06:08 +00:00
Lance Andersen
6247736fc9 8256018: Adler32/CRC32/CRC32C missing reachabilityFence
Reviewed-by: naoto, alanb
2020-11-11 15:34:03 +00:00
Martin Doerr
436019b8bb 8256166: [C2] Registers get confused on Big Endian after 8221404
Reviewed-by: redestad, thartmann
2020-11-11 15:28:09 +00:00
Alexander Zuev
ed615e3ca0 4907798: MEMORY LEAK: javax.swing.plaf.basic.BasicPopupMenuUI$MenuKeyboardHelper
Reviewed-by: psadhukhan, serb
2020-11-11 11:43:47 +00:00
Boris Ulasevich
362feaae24 8254661: arm32: additional cleanup after fixing SIGSEGV
Reviewed-by: ngasson, shade
2020-11-11 11:09:26 +00:00
Roberto Castañeda Lozano
432c387e21 8254317: C2: Resource consumption of ConvI2LNode::Ideal() grows exponentially
Prevent exponential number of calls to ConvI2LNode::Ideal() when AddIs are used
multiple times by other AddIs in the optimization ConvI2L(AddI(x, y)) ->
AddL(ConvI2L(x), ConvI2L(y)). This is achieved by (1) reusing existing ConvI2Ls
if possible rather than eagerly creating new ones and (2) postponing the
optimization of newly created ConvI2Ls. Remove hook node solution introduced in
8217359, since this is subsumed by (2). Use phase->is_IterGVN() rather than
can_reshape to check if ConvI2LNode::Ideal() is called within iterative GVN, for
clarity. Add regression tests that cover different shapes and sizes of AddI
subgraphs, implicitly checking (by not timing out) that there is no
combinatorial explosion.

Co-authored-by: Vladimir Ivanov <vlivanov@openjdk.org>
Reviewed-by: vlivanov, kvn
2020-11-11 10:18:36 +00:00
Nick Gasson
79ac041844 8256025: AArch64: MachCallRuntimeNode::ret_addr_offset() is incorrect for stub calls
Reviewed-by: aph
2020-11-11 09:59:56 +00:00
prajwal_kumaraswamy
6e8b862811 8255559: Leak File Descriptors Because of ResolverLocalFilesystem#engineResolveURI()
Reviewed-by: weijun
2020-11-11 09:24:42 +00:00
Jan Lahoda
129ff97fe6 8231599: NPE when loading a preview classfile from a future Java version
Reviewed-by: vromero
2020-11-11 09:11:02 +00:00
Prasanta Sadhukhan
5181f9cea2 7190978: javax/swing/JComponent/7154030/bug7154030.java fails on mac
Reviewed-by: serb
2020-11-11 08:08:39 +00:00
Prasanta Sadhukhan
35284e4667 8255916: [macos] javax/swing/JInternalFrame/6647340/bug6647340.java timed out
Reviewed-by: serb
2020-11-11 08:05:20 +00:00
Dong Bo
8638cd9acf 8255625: AArch64: Implement Base64.encodeBlock accelerator/intrinsic
Reviewed-by: aph
2020-11-11 01:51:27 +00:00
Sergey Bylokhov
5de99da75c 8237495: Java MIDI fails with a dereferenced memory error when asked to send a raw 0xF7
Reviewed-by: kizune
2020-11-11 01:31:03 +00:00
Sergey Bylokhov
be635258fa 8211999: Window positioning bugs due to overlapping GraphicsDevice bounds (Windows/HiDPI)
Reviewed-by: kizune, aivanov
2020-11-11 01:29:33 +00:00
Jorn Vernee
0a41ca6b75 8254354: Add a withInvokeExactBehavior() VarHandle combinator
Reviewed-by: psandoz, chegar
2020-11-10 23:26:02 +00:00
Alexey Semenyuk
d6f1463cb3 8233332: Need to create exploded tests covering all forms of modules
Reviewed-by: herrick, almatvee
2020-11-10 22:36:31 +00:00
Claes Redestad
f2a0bf3ea8 8256017: Remove unused elapsedTimer constructor
Reviewed-by: tschatzl, hseigel
2020-11-10 20:39:30 +00:00
Coleen Phillimore
7d4e86be3b 8138588: VerifyMergedCPBytecodes option cleanup needed
Reviewed-by: hseigel, dcubed, sspitsyn
2020-11-10 20:38:25 +00:00
Jayashree S Kumar
a7f46919ff 8244088: [Regression] Switch of Gnome theme ends up in deadlocked UI
Reviewed-by: serb
2020-11-10 19:36:59 +00:00
Frederic Parain
bd3e65b576 8256052: Remove unused allocation type from fieldInfo
Reviewed-by: redestad, lfoltan, hseigel
2020-11-10 19:16:35 +00:00
Mandy Chung
6d8acd2696 8256066: Tests use deprecated TestNG API that is no longer available in new versions
Reviewed-by: jjg
2020-11-10 17:51:52 +00:00
Aleksey Shipilev
643969a184 8255822: Zero: improve build-time JVMTI handling
Reviewed-by: dholmes, ihse
2020-11-10 17:23:10 +00:00
Claes Redestad
6ae5e5b6b7 8221404: C2: Convert RegMask and IndexSet to use uintptr_t
Reviewed-by: kvn, thartmann
2020-11-10 16:48:21 +00:00
Thomas Schatzl
6555996f92 8253600: G1: Fully support pinned regions for full gc
Reviewed-by: sjohanss, ayang
2020-11-10 16:36:06 +00:00
Roman Kennke
97d6e4aed7 8256046: Shenandoah: Mix-in NULL_PTR in non-strong ShLRBNode's type
Reviewed-by: roland, shade
2020-11-10 15:25:44 +00:00
Jie Fu
a1d4b9f35b 8256009: Remove src/hotspot/share/adlc/Test/i486.ad
Reviewed-by: shade, thartmann
2020-11-10 13:49:01 +00:00
Vladimir Ivanov
3455fa9bfd 8256050: JVM crashes with -XX:+PrintDeoptimizationDetails
Reviewed-by: kvn, dcubed
2020-11-10 12:41:11 +00:00
Vladimir Ivanov
e6df13e6e0 8256054: C2: Floating-point min/max operations on vectors intermittently produce wrong results for NaN values
Reviewed-by: redestad, psandoz, dlong
2020-11-10 12:39:33 +00:00
Jie Fu
52805f526b 8256048: Incomplete gitignore setting for netbeans project
Reviewed-by: erikj
2020-11-10 12:16:00 +00:00
Martin Doerr
9d07259f16 8255598: [PPC64] assert(Universe::heap()->is_in(result)) failed: object not in heap
Reviewed-by: ayang, tschatzl
2020-11-10 11:48:23 +00:00
Nils Eliasson
e281b13597 8255011: [TESTBUG] compiler/codecache/stress/UnexpectedDeoptimizationAllTest.java timed out
Change CodeCacheStressRunner to have a 60 second test time

Reviewed-by: iignatyev
2020-11-10 11:25:53 +00:00
Thomas Schatzl
c601849e00 8256038: G1: Improve comment about mark word handling of displaced mark words
Reviewed-by: sjohanss, kbarrett
2020-11-10 09:12:29 +00:00
Roman Kennke
a38dd53411 8256040: Shenandoah: Allow NULL referent in ShenandoahReferenceProcessor::should_discover()
Reviewed-by: shade
2020-11-10 06:56:58 +00:00
Aleksey Shipilev
01567b51dc 8256036: Shenandoah: MethodHandles adapters section overflows after JDK-8255762
Reviewed-by: jiefu, redestad
2020-11-10 06:30:26 +00:00
Aleksey Shipilev
4bc065cf9e 8255782: Turn UseTLAB and ResizeTLAB from product_pd to product, defaulting to "true"
Reviewed-by: stuefe, stefank, tschatzl
2020-11-10 06:29:53 +00:00
Sergey Bylokhov
b5d78afe20 8254863: Delete code leftover from old fixes
Reviewed-by: azeemj, kizune, prr
2020-11-10 06:17:19 +00:00
amresh-sahu
8066b33c40 8253905: Update sanity test suite to not place windows at (0,0)
Reviewed-by: shurailine, serb
2020-11-10 05:27:16 +00:00
Dong Bo
f71f9dc93a 8255949: AArch64: Add support for vectorized shift right and accumulate
Reviewed-by: aph
2020-11-10 01:24:25 +00:00
Zhengyu Gu
1332ba3c3c 8256039: Shenandoah: runtime/stringtable/StringTableCleaningTest.java fails
Reviewed-by: shade, rkennke
2020-11-10 00:05:20 +00:00
Sergey Bylokhov
11431b16e0 4619330: All built-in java.awt.color.ColorSpace fields should be specified as such
Reviewed-by: prr
2020-11-09 23:40:04 +00:00
Andrew Haley
17f04fc9e7 8254078: DataOutputStream is very slow post-disabling of Biased Locking
Reviewed-by: rriggs, shade, alanb
2020-11-09 16:02:30 +00:00
Stefan Johansson
79b7909507 8255980: G1 Service thread register_task can be used after shutdown
Reviewed-by: tschatzl, ayang
2020-11-09 14:24:24 +00:00
Thomas Stuefe
dd8e4ffbe5 8255711: Fix and unify hotspot signal handlers
Reviewed-by: coleenp, gziemski, dholmes
2020-11-09 12:03:06 +00:00
Roman Kennke
d99e1f6c29 8255991: Shenandoah: Apply 'weak' LRB on cmpxchg and xchg
Reviewed-by: shade
2020-11-09 09:19:13 +00:00
Sergey Bylokhov
c7551c37c7 8256014: Eliminate the warning about serialization in non-public API of Swing
Reviewed-by: prr, psadhukhan
2020-11-09 06:38:53 +00:00
Sergey Bylokhov
2d6c28db24 6847157: java.lang.NullPointerException: HDC for component at sun.java2d.loops.Blit.Blit
Reviewed-by: prr
2020-11-09 06:35:50 +00:00
Sergey Bylokhov
3ce09c05c4 8255920: J2DBench should support CS_PYCC color profile
Reviewed-by: prr
2020-11-09 01:38:28 +00:00
Anton Kozlov
2c8f4e202b 8255799: AArch64: CPU_A53MAC feature may be set incorrectly
Reviewed-by: ngasson, aph
2020-11-09 01:35:26 +00:00
Sergey Bylokhov
2cad836833 8255575: java.awt.color.ICC_ColorSpace is not thread-safe
Reviewed-by: prr
2020-11-09 01:28:19 +00:00
Sergey Bylokhov
a53b12df2d 8255722: Create a new test for rotated blit
Reviewed-by: prr
2020-11-09 01:12:46 +00:00
Roman Kennke
f39a2c89fc 8256015: Shenandoah: Add missing Shenandoah implementation in WB_isObjectInOldGen
Reviewed-by: shade
2020-11-08 20:35:25 +00:00
Phil Race
ed7526a66c 8247872: Upgrade HarfBuzz to the latest 2.7.2
Reviewed-by: serb
2020-11-08 17:06:12 +00:00
Xin Liu
6a183fbbc3 8255562: delete UseRDPCForConstantTableBase
Reviewed-by: simonis
2020-11-08 15:03:57 +00:00
Pavel Rappo
c5462bb95d 8255989: Remove explicitly unascribed authorship from Java source files
Reviewed-by: redestad, mr, mchung, iris, serb
2020-11-07 12:11:43 +00:00
Sergey Bylokhov
358f5d2b03 6422025: ThemeReader.cpp can be updated for VC7
Reviewed-by: aivanov
2020-11-07 06:10:56 +00:00
Alex Menkov
a9dff9420a 8254864: vmTestbase/nsk/jvmti/ResourceExhausted/resexhausted001/TestDescription.java timed out
Reviewed-by: sspitsyn, cjplummer
2020-11-06 21:57:43 +00:00
Coleen Phillimore
0b7fba75c1 8254270: linux 32 bit build doesn't compile libjdwp/log_messages.c
Reviewed-by: redestad, cjplummer, dholmes, stuefe
2020-11-06 19:04:09 +00:00
Conor Cleary
f5d36e6c94 8246741: NetworkInterface/UniqueMacAddressesTest: mac address uniqueness test failed
Reviewed-by: chegar, dfuchs
2020-11-06 17:35:24 +00:00
Vicente Romero
688b10b970 8255561: add tests to check binary compatibility rules for records
Reviewed-by: jjg
2020-11-06 16:39:40 +00:00
Brian Burkhalter
727a69f537 8255969: Improve java/io/BufferedInputStream/LargeCopyWithMark.java using jtreg tags
Reviewed-by: naoto
2020-11-06 16:15:14 +00:00
Andy Herrick
952abea47b 8254920: Application launched with jpackage produced .exe crashes JVM
Reviewed-by: asemenyuk, almatvee, kizune
2020-11-06 16:14:36 +00:00
David Holmes
5dfb42fc68 8255563: Missing NULL checks after JDK-8233624
Reviewed-by: kvn
2020-11-06 01:38:10 +00:00
Sergey Bylokhov
e730e8b691 8241806: The sun/awt/shell/FileSystemViewMemoryLeak.java is unstable
Reviewed-by: jdv, aivanov
2020-11-06 00:30:09 +00:00
Eric Caspole
57b98fa55a 8255965: LogCompilation: add sort by nmethod code size
Reviewed-by: kvn, redestad
2020-11-05 23:51:27 +00:00
Chris Plummer
e42c134038 8255706: The JDWP debug agent unecessarily checks for JVMTI_ERROR_INTERRUPT after calling RawMonitorEnter
Reviewed-by: alanb, dholmes, sspitsyn
2020-11-05 23:18:01 +00:00
Claes Redestad
e66fd6f0aa 8255756: Disabling logging does unnecessary work
Reviewed-by: iklam
2020-11-05 21:20:13 +00:00
Claes Redestad
140c162a0d 8255894: Remove unused StubRoutines::_zero_aligned_words
Reviewed-by: shade
2020-11-05 21:18:59 +00:00
Zhengyu Gu
fc894ab11b 8255955: Shenandoah: Only STW GC should process concurrent roots at pauses
Reviewed-by: rkennke
2020-11-05 18:59:33 +00:00
Brian Burkhalter
d6f0940400 8255913: Decrease number of iterations in TestMaxCachedBufferSize
Reviewed-by: lancea, dfuchs
2020-11-05 18:30:34 +00:00
Vladimir Kozlov
1b59595e1e 8255914: [AOT] Using AOT flag should give warning when AOT is not included in build
Reviewed-by: dholmes, iveresov
2020-11-05 17:18:19 +00:00
Brian Burkhalter
a50fdd5484 8219014: (bf) Add absolute bulk put methods which accept a source Buffer
Reviewed-by: psandoz, alanb
2020-11-05 16:27:49 +00:00
Erik Österlund
3a02578b33 8255452: Doing GC during JVMTI MethodExit event posting breaks return oop
Reviewed-by: coleenp, dlong, rrich, sspitsyn
2020-11-05 16:17:33 +00:00
Gerard Ziemski
ba2ff3a6d2 8250637: UseOSErrorReporting times out (on Mac and Linux)
Reviewed-by: stuefe, dholmes
2020-11-05 16:15:27 +00:00
Zhengyu Gu
31918c55f3 8255847: Shenandoah: Shenandoah should not mark through weak roots
Reviewed-by: rkennke
2020-11-05 15:29:11 +00:00
Rahul Yadav
867a484df1 8255214: Unsupported 'valign' attribute for 'th' tag used in j.u.l.LogManager
Reviewed-by: mchung, dfuchs
2020-11-05 14:35:06 +00:00
Sergey Bylokhov
d3c43c2816 8255937: Better cleanup for test/jdk/javax/imageio/stream/StreamFlush.java
Reviewed-by: jdv
2020-11-05 11:35:54 +00:00
Kiran Sidhartha Ravikumar
b65ff60a8e 8255226: (tz) Upgrade time-zone data to tzdata2020d
Reviewed-by: naoto
2020-11-05 11:29:19 +00:00
Patrick Concannon
2b78a43f77 8255584: HttpPrincipal::getName returns incorrect name
Reviewed-by: dfuchs
2020-11-05 10:10:21 +00:00
Lin Zang
a6ce6a5d80 8252103: Parallel heap inspection for ParallelScavengeHeap
Reviewed-by: sjohanss, tschatzl
2020-11-05 09:43:21 +00:00
Jan Lahoda
cdef186c11 8232856: jshell crashes when pressing up arrow after /!
Reviewed-by: psandoz
2020-11-05 09:12:07 +00:00
Claes Redestad
700447f7e4 8255909: Remove unused delayed_value methods
Reviewed-by: minqi, coleenp, thartmann
2020-11-05 08:37:08 +00:00
Stefan Johansson
397972ebf3 8255848: -Xlog:gc+heap+exit shows "used 0K"
Reviewed-by: tschatzl, ayang
2020-11-05 08:13:40 +00:00
Tobias Hartmann
eb85b8da32 8255665: C2 should aggressively remove temporary hook nodes
Reviewed-by: chagedorn, kvn
2020-11-05 08:02:47 +00:00
Jan Lahoda
18bc95ba51 8250625: Compiler implementation of Pattern Matching for instanceof (Final)
Reviewed-by: vromero
2020-11-05 08:01:33 +00:00
Aleksey Shipilev
60e4aca846 8255890: Zero: remove unused methods from BytecodeInterpreter
Reviewed-by: coleenp
2020-11-05 06:29:35 +00:00
Ioi Lam
397bae20e9 8255860: Clean up CDS logging related to lambda
Reviewed-by: ccheung, minqi
2020-11-05 05:20:59 +00:00
Vicente Romero
97a81cee25 8253385: annotation processors remove varargs information from record components
Reviewed-by: jjg
2020-11-04 23:30:41 +00:00
Chris Plummer
166c728300 8255858: Add debug agent support for storing thread names
Reviewed-by: sspitsyn, amenkov
2020-11-04 22:43:34 +00:00
Claes Redestad
a0ade22057 8255900: x86: Reduce impact when VerifyOops is disabled
Reviewed-by: neliasso, minqi, kvn
2020-11-04 21:40:31 +00:00
Roman Kennke
29db1dcd62 8255886: Shenandoah: Resolve cset address truncation and register clash in interpreter LRB
Reviewed-by: shade
2020-11-04 21:30:27 +00:00
Andy Herrick
26e7ef78fb 8252870: Finalize (remove "incubator" from) jpackage
Reviewed-by: kcr, erikj, almatvee, asemenyuk, prr, ihse
2020-11-04 20:27:11 +00:00
Jorn Vernee
804bd72599 8255128: linux x86 build failure with libJNIPoint.c
Reviewed-by: coleenp, shade, ihse
2020-11-04 18:10:49 +00:00
Jorn Vernee
160759ceef 8255838: Use 32-bit immediate movslq in macro assembler if 64-bit value fits in 32 bits on x86_64
Reviewed-by: azeemj, kvn, redestad, thartmann
2020-11-04 18:10:23 +00:00
Mandy Chung
94ace035a5 8255863: Clean up test/jdk/java/lang/invoke/defineHiddenClass/BasicTest.java
Reviewed-by: rriggs, chegar
2020-11-04 17:44:09 +00:00
Mandy Chung
2da9981e33 8255862: Remove @SuppressWarnings from sun.misc.Unsafe
Reviewed-by: shade, alanb, chegar
2020-11-04 17:40:06 +00:00
Calvin Cheung
5348298f62 8255855: appcds/jigsaw/NewModuleFinderTest.java test failed due to unexpected NPE
Reviewed-by: iklam
2020-11-04 17:17:46 +00:00
Brian Burkhalter
c287170c94 8254742: InputStream::readNBytes(int) result may contain zeros not in input
Reviewed-by: shade, bchristi
2020-11-04 16:50:02 +00:00
Magnus Ihse Bursie
7dcaba6312 8253892: Disable misleading-indentation on clang as well as gcc
Reviewed-by: erikj
2020-11-04 16:17:15 +00:00
Aleksey Shipilev
61c924701f 8255895: Submit workflow artifacts miss hs_errs/replays due to ZIP include mismatch
Reviewed-by: erikj
2020-11-04 14:44:27 +00:00
Prasanta Sadhukhan
7f4d873dd9 8255215: Unsupported 'valign' attribute for 'tr' tag used in j.s.t.h.HTMLDocument
Reviewed-by: serb
2020-11-04 13:08:46 +00:00
Jesper Wilhelmsson
724217c740 8255893: Problemlist runtime/cds/appcds/jigsaw/NewModuleFinderTest.java
Reviewed-by: dholmes
2020-11-04 11:51:59 +00:00
Kim Barrett
6023f6b1bf 8188055: (ref) Add Reference::refersTo predicate
Reviewed-by: mchung, pliden, rriggs, dholmes, ihse, smarks, alanb
2020-11-04 09:18:23 +00:00
Matthias Baesken
ab9192e463 8255681: print callstack in error case in runAWTLoopWithApp
Reviewed-by: clanger, serb
2020-11-04 07:44:43 +00:00
Roberto Castañeda Lozano
c7a2c24529 8255797: ciReplay: improve documentation of replay file syntax in parser
Complete and disambiguate the informal specification of the replay file syntax
given in the ciReplay class implementation.

Reviewed-by: kvn, thartmann
2020-11-04 07:32:21 +00:00
Aleksey Shipilev
a5d8a9c211 8255617: Zero: purge the remaining bytecode interpreter profiling support
Reviewed-by: coleenp, sgehwolf, jiefu
2020-11-04 06:40:31 +00:00
Kim Barrett
4b88119b4b 8253037: G1: Improve check for string dedup
Combine dedup enabled and is_string into a single test, using the already in-hand klass of the object.

Reviewed-by: ayang, tschatzl
2020-11-04 05:04:02 +00:00
Magnus Ihse Bursie
2668d23244 8255861: Also update jaotc.1 for JDK 16
Reviewed-by: kvn
2020-11-03 23:52:08 +00:00
Erik Joelsson
76fa974cb2 8255850: Hotspot recompiled on first incremental build
Reviewed-by: ihse
2020-11-03 23:11:23 +00:00
Magnus Ihse Bursie
622f72bc8b 8255853: Update all nroff manpages for JDK 16 release
Reviewed-by: erikj
2020-11-03 22:12:56 +00:00
Yumin Qi
cdf9cd8afa 8255784: appcds/javaldr/ExceptionDuringDumpAtObjectsInitPhase.java test failed resulting in VM crash
Reviewed-by: ccheung, iklam
2020-11-03 20:50:51 +00:00
Roman Kennke
eab99f37ce 8255852: Shenandoah: Fix incorrect copyright header in new files added by 8254315
Reviewed-by: zgu
2020-11-03 20:34:42 +00:00
Brian Burkhalter
450452bb8c 8254876: (fs) NullPointerException not thrown when first argument to Path.of or Paths.get is null
Reviewed-by: rriggs, alanb
2020-11-03 19:39:28 +00:00
Calvin Cheung
b46d73bee8 8255239: The timezone of the hs_err_pid log file is corrupted in Japanese locale
Reviewed-by: iklam, minqi
2020-11-03 19:30:46 +00:00
Lance Andersen
6606e0909c 8255380: (zipfs) ZipFileSystem::readExtra can fail if zipinfo-time is not set to false
Reviewed-by: redestad
2020-11-03 19:20:42 +00:00
Bernhard Urban-Forster
88ee973334 8254827: JVMCI: Enable it for Windows+AArch64
Reviewed-by: ihse, never, kvn
2020-11-03 19:04:47 +00:00
Roman Kennke
f64a15d62e 8254315: Shenandoah: Concurrent weak reference processing
Reviewed-by: zgu, shade
2020-11-03 18:58:46 +00:00
Sergey Bylokhov
83f3cf4298 8196087: java/awt/image/DrawImage/IncorrectUnmanagedImageRotatedClip.java fails
Reviewed-by: jdv
2020-11-03 18:28:19 +00:00
Zhengyu Gu
134e22a00f 8255606: Enable concurrent stack processing on x86_32 platforms
Reviewed-by: shade, rkennke, eosterlund
2020-11-03 17:23:47 +00:00
Aleksey Shipilev
ca216bae1a 8255810: Zero: build fails without JVMTI
Reviewed-by: coleenp
2020-11-03 17:21:16 +00:00
Jonathan Gibbons
d47336bf1c 8248320: Provide a unique accessible name for <nav role="navigation">
Reviewed-by: hannesw
2020-11-03 17:15:17 +00:00
Magnus Ihse Bursie
64a981124a 8255798: Remove dead headless code in CompileJavaModules.gmk
Reviewed-by: shade, erikj
2020-11-03 14:52:05 +00:00
Magnus Ihse Bursie
364b0fe82e 8255801: Race when building ct.sym build tools
Reviewed-by: erikj
2020-11-03 14:51:14 +00:00
Aleksey Shipilev
f389a718a8 8255737: Zero: DO_UPDATE_INSTRUCTION_COUNT should only update when relevant VM flags are set
Reviewed-by: sgehwolf
2020-11-03 14:00:28 +00:00
Roman Kennke
93ef0091db 8255762: Shenandoah: Consolidate/streamline interpreter LRBs
Reviewed-by: shade
2020-11-03 12:59:17 +00:00
Richard Reingruber
63461d59a1 8255072: [TESTBUG] com/sun/jdi/EATests.java should not fail if expected VMOutOfMemoryException is not thrown
Reviewed-by: cjplummer, sspitsyn, kvn
2020-11-03 12:36:59 +00:00
Jorn Vernee
b8d4e02ce7 8255374: Add a dropReturn MethodHandle combinator
Reviewed-by: redestad
2020-11-03 12:10:48 +00:00
Stefan Johansson
1d0bd50624 8254758: Change G1ServiceThread to be task based
Reviewed-by: ayang, iwalulya, tschatzl
2020-11-03 11:07:35 +00:00
Aleksey Shipilev
9a0cf58721 8255615: Zero: demote ZeroStack::abi_stack_available guarantee to assert
Reviewed-by: sgehwolf
2020-11-03 11:04:47 +00:00
Aleksey Shipilev
904561ebf2 8255719: Zero: on return path, check for pending exception before attempting to clear it
Reviewed-by: sgehwolf
2020-11-03 11:02:15 +00:00
Aleksey Shipilev
9bd836e046 8255744: Zero: handle JVM_CONSTANT_DynamicInError
Reviewed-by: sgehwolf
2020-11-03 10:35:20 +00:00
Patrick Zhang
36998b006d 8255716: AArch64: Regression: JVM crashes if manually offline a core
Reviewed-by: aph, adinn, akozlov
2020-11-03 09:28:12 +00:00
Jayathirth D V
4107670d62 8233562: [TESTBUG] Swing StyledEditorKit test bug4506788.java fails on MacOS
Reviewed-by: psadhukhan
2020-11-03 07:54:31 +00:00
Thomas Stuefe
9a36747927 8255780: Remove unused overloads of VMError::report_and_die()
Reviewed-by: mdoerr, coleenp
2020-11-03 07:34:06 +00:00
Stefan Karlsson
c96a914b52 8255662: ZGC: Unify nmethod closures in the heap iterator
Reviewed-by: eosterlund, pliden
2020-11-03 07:31:47 +00:00
Aleksey Shipilev
aa2862ad86 8255741: Zero: print signal name in unhandled signal handler
Reviewed-by: stuefe
2020-11-03 07:28:06 +00:00
Tobias Hartmann
15805741f1 8255672: Replace PhaseTransform::eqv by pointer equality check
Reviewed-by: chagedorn, redestad, kvn
2020-11-03 07:17:58 +00:00
Thomas Stuefe
e7a2d5c843 8252533: Signal handlers should run with synchronous error signals unblocked
Reviewed-by: gziemski, dholmes
2020-11-03 07:16:45 +00:00
Aleksey Shipilev
6d36b4bb79 8255743: Relax SIGFPE match in in runtime/ErrorHandling/SecondaryErrorTest.java
Reviewed-by: stuefe
2020-11-03 07:06:14 +00:00
Aleksey Shipilev
f0eeca9080 8255718: Zero: VM should know it runs in interpreter-only mode
Reviewed-by: andrew, coleenp
2020-11-03 07:04:28 +00:00
Jayathirth D V
9beb866b12 8233561: [TESTBUG] Swing text test bug8014863.java fails on macos
Reviewed-by: psadhukhan
2020-11-03 06:38:22 +00:00
3841 changed files with 262547 additions and 123501 deletions

View File

@@ -9,17 +9,19 @@ on:
platforms:
description: "Platform(s) to execute on"
required: true
default: "Linux x64, Linux x86, Windows x64, macOS x64"
default: "Linux additional (hotspot only), Linux x64, Linux x86, Windows aarch64, Windows x64, macOS x64"
jobs:
prerequisites:
name: Prerequisites
runs-on: "ubuntu-latest"
runs-on: "ubuntu-20.04"
outputs:
should_run: ${{ steps.check_submit.outputs.should_run }}
bundle_id: ${{ steps.check_bundle_id.outputs.bundle_id }}
platform_linux_x86: ${{ steps.check_platforms.outputs.platform_linux_x86 }}
platform_linux_additional: ${{ steps.check_platforms.outputs.platform_linux_additional }}
platform_linux_x64: ${{ steps.check_platforms.outputs.platform_linux_x64 }}
platform_linux_x86: ${{ steps.check_platforms.outputs.platform_linux_x86 }}
platform_windows_aarch64: ${{ steps.check_platforms.outputs.platform_windows_aarch64 }}
platform_windows_x64: ${{ steps.check_platforms.outputs.platform_windows_x64 }}
platform_macos_x64: ${{ steps.check_platforms.outputs.platform_macos_x64 }}
dependencies: ${{ steps.check_deps.outputs.dependencies }}
@@ -32,8 +34,10 @@ jobs:
- name: Check which platforms should be included
id: check_platforms
run: |
echo "::set-output name=platform_linux_additional::${{ contains(github.event.inputs.platforms, 'linux additional (hotspot only)') || (github.event.inputs.platforms == '' && (secrets.JDK_SUBMIT_PLATFORMS == '' || contains(secrets.JDK_SUBMIT_PLATFORMS, 'linux additional (hotspot only)'))) }}"
echo "::set-output name=platform_linux_x64::${{ contains(github.event.inputs.platforms, 'linux x64') || (github.event.inputs.platforms == '' && (secrets.JDK_SUBMIT_PLATFORMS == '' || contains(secrets.JDK_SUBMIT_PLATFORMS, 'linux x64'))) }}"
echo "::set-output name=platform_linux_x86::${{ contains(github.event.inputs.platforms, 'linux x86') || (github.event.inputs.platforms == '' && (secrets.JDK_SUBMIT_PLATFORMS == '' || contains(secrets.JDK_SUBMIT_PLATFORMS, 'linux x86'))) }}"
echo "::set-output name=platform_windows_aarch64::${{ contains(github.event.inputs.platforms, 'windows aarch64') || (github.event.inputs.platforms == '' && (secrets.JDK_SUBMIT_PLATFORMS == '' || contains(secrets.JDK_SUBMIT_PLATFORMS, 'windows aarch64'))) }}"
echo "::set-output name=platform_windows_x64::${{ contains(github.event.inputs.platforms, 'windows x64') || (github.event.inputs.platforms == '' && (secrets.JDK_SUBMIT_PLATFORMS == '' || contains(secrets.JDK_SUBMIT_PLATFORMS, 'windows x64'))) }}"
echo "::set-output name=platform_macos_x64::${{ contains(github.event.inputs.platforms, 'macos x64') || (github.event.inputs.platforms == '' && (secrets.JDK_SUBMIT_PLATFORMS == '' || contains(secrets.JDK_SUBMIT_PLATFORMS, 'macos x64'))) }}"
if: steps.check_submit.outputs.should_run != 'false'
@@ -80,7 +84,7 @@ jobs:
if: steps.check_submit.outputs.should_run != 'false' && steps.jtreg.outputs.cache-hit != 'true'
- name: Build jtreg
run: sh make/build-all.sh ${JAVA_HOME}
run: sh make/build-all.sh ${JAVA_HOME_8_X64}
working-directory: jtreg
if: steps.check_submit.outputs.should_run != 'false' && steps.jtreg.outputs.cache-hit != 'true'
@@ -98,9 +102,9 @@ jobs:
linux_x64_build:
name: Linux x64
runs-on: "ubuntu-latest"
runs-on: "ubuntu-20.04"
needs: prerequisites
if: needs.prerequisites.outputs.should_run != 'false' && needs.prerequisites.outputs.platform_linux_x64 != 'false'
if: needs.prerequisites.outputs.should_run != 'false' && (needs.prerequisites.outputs.platform_linux_x64 != 'false' || needs.prerequisites.outputs.platform_linux_additional == 'true')
strategy:
fail-fast: false
@@ -108,22 +112,10 @@ jobs:
flavor:
- build release
- build debug
- build hotspot no-pch
- build hotspot zero
- build hotspot minimal
include:
- flavor: build debug
flags: --enable-debug
artifact: -debug
- flavor: build hotspot no-pch
flags: --enable-debug --disable-precompiled-headers
build-target: hotspot
- flavor: build hotspot zero
flags: --enable-debug --disable-precompiled-headers --with-jvm-variants=zero
build-target: hotspot
- flavor: build hotspot minimal
flags: --enable-debug --disable-precompiled-headers --with-jvm-variants=minimal
build-target: hotspot
env:
JDK_VERSION: "${{ fromJson(needs.prerequisites.outputs.dependencies).DEFAULT_VERSION_FEATURE }}"
@@ -177,7 +169,10 @@ jobs:
path: gtest
- name: Install dependencies
run: sudo apt-get install libxrandr-dev libxtst-dev libcups2-dev libasound2-dev
run: |
sudo apt-get update
sudo apt-get install gcc-10=10.2.0-5ubuntu1~20.04 g++-10=10.2.0-5ubuntu1~20.04 libxrandr-dev libxtst-dev libcups2-dev libasound2-dev
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100 --slave /usr/bin/g++ g++ /usr/bin/g++-10
- name: Configure
run: >
@@ -195,7 +190,7 @@ jobs:
working-directory: jdk
- name: Build
run: make CONF_NAME=linux-x64 ${{ matrix.build-target }}
run: make CONF_NAME=linux-x64
working-directory: jdk
- name: Persist test bundles
@@ -205,11 +200,10 @@ jobs:
path: |
jdk/build/linux-x64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin${{ matrix.artifact }}.tar.gz
jdk/build/linux-x64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin-tests${{ matrix.artifact }}.tar.gz
if: matrix.build-target == false
linux_x64_test:
name: Linux x64
runs-on: "ubuntu-latest"
runs-on: "ubuntu-20.04"
needs:
- prerequisites
- linux_x64_build
@@ -368,8 +362,8 @@ jobs:
"$HOME/linux-x64${{ matrix.artifact }}_testsupport_${{ env.logsuffix }}.zip"
.
-i *.jtr
-i hs_err*
-i replay*
-i */hs_err*.log
-i */replay*.log
continue-on-error: true
- name: Persist test results
@@ -386,9 +380,190 @@ jobs:
path: ~/linux-x64${{ matrix.artifact }}_testsupport_${{ env.logsuffix }}.zip
continue-on-error: true
linux_additional_build:
name: Linux additional
runs-on: "ubuntu-20.04"
needs:
- prerequisites
- linux_x64_build
if: needs.prerequisites.outputs.should_run != 'false' && needs.prerequisites.outputs.platform_linux_additional != 'false'
strategy:
fail-fast: false
matrix:
flavor:
- hs x64 build only
- hs x64 zero build only
- hs x64 minimal build only
- hs x64 optimized build only
- hs aarch64 build only
- hs arm build only
- hs s390x build only
- hs ppc64le build only
include:
- flavor: hs x64 build only
flags: --enable-debug --disable-precompiled-headers
- flavor: hs x64 zero build only
flags: --enable-debug --disable-precompiled-headers --with-jvm-variants=zero
- flavor: hs x64 minimal build only
flags: --enable-debug --disable-precompiled-headers --with-jvm-variants=minimal
- flavor: hs x64 optimized build only
flags: --with-debug-level=optimized --disable-precompiled-headers
- flavor: hs aarch64 build only
flags: --enable-debug --disable-precompiled-headers
debian-arch: arm64
gnu-arch: aarch64
- flavor: hs arm build only
flags: --enable-debug --disable-precompiled-headers
debian-arch: armhf
gnu-arch: arm
gnu-flavor: eabihf
- flavor: hs s390x build only
flags: --enable-debug --disable-precompiled-headers
debian-arch: s390x
gnu-arch: s390x
- flavor: hs ppc64le build only
flags: --enable-debug --disable-precompiled-headers
debian-arch: ppc64el
gnu-arch: powerpc64le
env:
JDK_VERSION: "${{ fromJson(needs.prerequisites.outputs.dependencies).DEFAULT_VERSION_FEATURE }}"
BOOT_JDK_VERSION: "${{ fromJson(needs.prerequisites.outputs.dependencies).BOOT_JDK_VERSION }}"
BOOT_JDK_FILENAME: "${{ fromJson(needs.prerequisites.outputs.dependencies).LINUX_X64_BOOT_JDK_FILENAME }}"
BOOT_JDK_URL: "${{ fromJson(needs.prerequisites.outputs.dependencies).LINUX_X64_BOOT_JDK_URL }}"
BOOT_JDK_SHA256: "${{ fromJson(needs.prerequisites.outputs.dependencies).LINUX_X64_BOOT_JDK_SHA256 }}"
steps:
- name: Checkout the source
uses: actions/checkout@v2
with:
path: jdk
- name: Restore boot JDK from cache
id: bootjdk
uses: actions/cache@v2
with:
path: ~/bootjdk/${{ env.BOOT_JDK_VERSION }}
key: bootjdk-${{ runner.os }}-${{ env.BOOT_JDK_VERSION }}-${{ env.BOOT_JDK_SHA256 }}-v1
- name: Download boot JDK
run: |
mkdir -p "${HOME}/bootjdk/${BOOT_JDK_VERSION}"
wget -O "${HOME}/bootjdk/${BOOT_JDK_FILENAME}" "${BOOT_JDK_URL}"
echo "${BOOT_JDK_SHA256} ${HOME}/bootjdk/${BOOT_JDK_FILENAME}" | sha256sum -c >/dev/null -
tar -xf "${HOME}/bootjdk/${BOOT_JDK_FILENAME}" -C "${HOME}/bootjdk/${BOOT_JDK_VERSION}"
mv "${HOME}/bootjdk/${BOOT_JDK_VERSION}/"*/* "${HOME}/bootjdk/${BOOT_JDK_VERSION}/"
if: steps.bootjdk.outputs.cache-hit != 'true'
- name: Restore build JDK
id: build_restore
uses: actions/download-artifact@v2
with:
name: transient_jdk-linux-x64_${{ needs.prerequisites.outputs.bundle_id }}
path: ~/jdk-linux-x64
continue-on-error: true
- name: Restore build JDK (retry)
uses: actions/download-artifact@v2
with:
name: transient_jdk-linux-x64_${{ needs.prerequisites.outputs.bundle_id }}
path: ~/jdk-linux-x64
if: steps.build_restore.outcome == 'failure'
- name: Unpack build JDK
run: |
mkdir -p "${HOME}/jdk-linux-x64/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin"
tar -xf "${HOME}/jdk-linux-x64/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin.tar.gz" -C "${HOME}/jdk-linux-x64/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin"
- name: Find root of build JDK image dir
run: |
build_jdk_root=`find ${HOME}/jdk-linux-x64/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin -name release -type f`
echo "build_jdk_root=`dirname ${build_jdk_root}`" >> $GITHUB_ENV
- name: Update apt
run: sudo apt-get update
- name: Install native host dependencies
run: |
sudo apt-get install gcc-10=10.2.0-5ubuntu1~20.04 g++-10=10.2.0-5ubuntu1~20.04 libxrandr-dev libxtst-dev libcups2-dev libasound2-dev
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100 --slave /usr/bin/g++ g++ /usr/bin/g++-10
if: matrix.debian-arch == ''
- name: Install cross-compilation host dependencies
run: sudo apt-get install gcc-10-${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-flavor}}=10.2.0-5ubuntu1~20.04cross1 g++-10-${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-flavor}}=10.2.0-5ubuntu1~20.04cross1
if: matrix.debian-arch != ''
- name: Cache sysroot
id: cache-sysroot
uses: actions/cache@v2
with:
path: ~/sysroot-${{ matrix.debian-arch }}/
key: sysroot-${{ matrix.debian-arch }}-${{ hashFiles('jdk/.github/workflows/submit.yml') }}
if: matrix.debian-arch != ''
- name: Install sysroot host dependencies
run: sudo apt-get install debootstrap qemu-user-static
if: matrix.debian-arch != '' && steps.cache-sysroot.outputs.cache-hit != 'true'
- name: Create sysroot
run: >
sudo qemu-debootstrap
--arch=${{ matrix.debian-arch }}
--verbose
--include=fakeroot,symlinks,build-essential,libx11-dev,libxext-dev,libxrender-dev,libxrandr-dev,libxtst-dev,libxt-dev,libcups2-dev,libfontconfig1-dev,libasound2-dev,libfreetype6-dev,libpng-dev
--resolve-deps
buster
~/sysroot-${{ matrix.debian-arch }}
http://httpredir.debian.org/debian/
if: matrix.debian-arch != '' && steps.cache-sysroot.outputs.cache-hit != 'true'
- name: Prepare sysroot for caching
run: |
sudo chroot ~/sysroot-${{ matrix.debian-arch }} symlinks -cr .
sudo chown ${USER} -R ~/sysroot-${{ matrix.debian-arch }}
rm -rf ~/sysroot-${{ matrix.debian-arch }}/{dev,proc,run,sys}
if: matrix.debian-arch != '' && steps.cache-sysroot.outputs.cache-hit != 'true'
- name: Configure cross compiler
run: |
echo "CC=${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-flavor}}-gcc-10" >> $GITHUB_ENV
echo "CXX=${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-flavor}}-g++-10" >> $GITHUB_ENV
if: matrix.debian-arch != ''
- name: Configure cross specific flags
run: >
echo "cross_flags=
--openjdk-target=${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-flavor}}
--with-sysroot=${HOME}/sysroot-${{ matrix.debian-arch }}/
--with-toolchain-path=${HOME}/sysroot-${{ matrix.debian-arch }}/
--with-freetype-lib=${HOME}/sysroot-${{ matrix.debian-arch }}/usr/lib/${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-flavor}}/
--with-freetype-include=${HOME}/sysroot-${{ matrix.debian-arch }}/usr/include/freetype2/
--x-libraries=${HOME}/sysroot-${{ matrix.debian-arch }}/usr/lib/${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-flavor}}/
" >> $GITHUB_ENV
if: matrix.debian-arch != ''
- name: Configure
run: >
bash configure
--with-conf-name=linux-${{ matrix.gnu-arch }}-hotspot
${{ matrix.flags }}
${{ env.cross_flags }}
--with-version-opt=${GITHUB_ACTOR}-${GITHUB_SHA}
--with-version-build=0
--with-boot-jdk=${HOME}/bootjdk/${BOOT_JDK_VERSION}
--with-build-jdk=${{ env.build_jdk_root }}
--with-default-make-target="hotspot"
--with-zlib=system
working-directory: jdk
- name: Build
run: make CONF_NAME=linux-${{ matrix.gnu-arch }}-hotspot
working-directory: jdk
linux_x86_build:
name: Linux x86
runs-on: "ubuntu-latest"
runs-on: "ubuntu-20.04"
needs: prerequisites
if: needs.prerequisites.outputs.should_run != 'false' && needs.prerequisites.outputs.platform_linux_x86 != 'false'
@@ -462,7 +637,8 @@ jobs:
run: |
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install gcc-multilib g++-multilib libfreetype6-dev:i386 libxrandr-dev:i386 libxtst-dev:i386 libtiff-dev:i386 libcupsimage2-dev:i386 libcups2-dev:i386 libasound2-dev:i386
sudo apt-get install gcc-10-multilib g++-10-multilib libfreetype6-dev:i386 libxrandr-dev:i386 libxtst-dev:i386 libtiff-dev:i386 libcupsimage2-dev:i386 libcups2-dev:i386 libasound2-dev:i386
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100 --slave /usr/bin/g++ g++ /usr/bin/g++-10
- name: Configure
run: >
@@ -481,7 +657,7 @@ jobs:
working-directory: jdk
- name: Build
run: make CONF_NAME=linux-x86 ${{ matrix.build-target }}
run: make CONF_NAME=linux-x86
working-directory: jdk
- name: Persist test bundles
@@ -491,11 +667,10 @@ jobs:
path: |
jdk/build/linux-x86/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x86_bin${{ matrix.artifact }}.tar.gz
jdk/build/linux-x86/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x86_bin-tests${{ matrix.artifact }}.tar.gz
if: matrix.build-target == false
linux_x86_test:
name: Linux x86
runs-on: "ubuntu-latest"
runs-on: "ubuntu-20.04"
needs:
- prerequisites
- linux_x86_build
@@ -655,8 +830,8 @@ jobs:
"$HOME/linux-x86${{ matrix.artifact }}_testsupport_${{ env.logsuffix }}.zip"
.
-i *.jtr
-i hs_err*
-i replay*
-i */hs_err*.log
-i */replay*.log
continue-on-error: true
- name: Persist test results
@@ -673,9 +848,97 @@ jobs:
path: ~/linux-x86${{ matrix.artifact }}_testsupport_${{ env.logsuffix }}.zip
continue-on-error: true
windows_aarch64_build:
name: Windows aarch64
runs-on: "windows-2019"
needs: prerequisites
if: needs.prerequisites.outputs.should_run != 'false' && needs.prerequisites.outputs.platform_windows_aarch64 != 'false'
strategy:
fail-fast: false
matrix:
flavor:
- build debug
include:
- flavor: build debug
flags: --enable-debug
artifact: -debug
env:
JDK_VERSION: "${{ fromJson(needs.prerequisites.outputs.dependencies).DEFAULT_VERSION_FEATURE }}"
BOOT_JDK_VERSION: "${{ fromJson(needs.prerequisites.outputs.dependencies).BOOT_JDK_VERSION }}"
BOOT_JDK_FILENAME: "${{ fromJson(needs.prerequisites.outputs.dependencies).WINDOWS_X64_BOOT_JDK_FILENAME }}"
BOOT_JDK_URL: "${{ fromJson(needs.prerequisites.outputs.dependencies).WINDOWS_X64_BOOT_JDK_URL }}"
BOOT_JDK_SHA256: "${{ fromJson(needs.prerequisites.outputs.dependencies).WINDOWS_X64_BOOT_JDK_SHA256 }}"
steps:
- name: Restore cygwin packages from cache
id: cygwin
uses: actions/cache@v2
with:
path: ~/cygwin/packages
key: cygwin-packages-${{ runner.os }}-v1
- name: Install cygwin
run: |
New-Item -Force -ItemType directory -Path "$HOME\cygwin"
& curl -L "https://www.cygwin.com/setup-x86_64.exe" -o "$HOME/cygwin/setup-x86_64.exe"
Start-Process -FilePath "$HOME\cygwin\setup-x86_64.exe" -ArgumentList "--quiet-mode --packages autoconf,make,zip,unzip --root $HOME\cygwin\cygwin64 --local-package-dir $HOME\cygwin\packages --site http://mirrors.kernel.org/sourceware/cygwin --no-desktop --no-shortcuts --no-startmenu --no-admin" -Wait -NoNewWindow
- name: Checkout the source
uses: actions/checkout@v2
with:
path: jdk
- name: Restore boot JDK from cache
id: bootjdk
uses: actions/cache@v2
with:
path: ~/bootjdk/${{ env.BOOT_JDK_VERSION }}
key: bootjdk-${{ runner.os }}-${{ env.BOOT_JDK_VERSION }}-${{ env.BOOT_JDK_SHA256 }}-v1
- name: Download boot JDK
run: |
mkdir -p "$HOME\bootjdk\$env:BOOT_JDK_VERSION"
& curl -L "$env:BOOT_JDK_URL" -o "$HOME/bootjdk/$env:BOOT_JDK_FILENAME"
$FileHash = Get-FileHash -Algorithm SHA256 "$HOME/bootjdk/$env:BOOT_JDK_FILENAME"
$FileHash.Hash -eq $env:BOOT_JDK_SHA256
& tar -xf "$HOME/bootjdk/$env:BOOT_JDK_FILENAME" -C "$HOME/bootjdk/$env:BOOT_JDK_VERSION"
Get-ChildItem "$HOME\bootjdk\$env:BOOT_JDK_VERSION\*\*" | Move-Item -Destination "$HOME\bootjdk\$env:BOOT_JDK_VERSION"
if: steps.bootjdk.outputs.cache-hit != 'true'
- name: Ensure a specific version of MSVC is installed
run: >
Start-Process -FilePath 'C:\Program Files (x86)\Microsoft Visual Studio\Installer\vs_installer.exe' -Wait -NoNewWindow -ArgumentList
'modify --installPath "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise" --quiet
--add Microsoft.VisualStudio.Component.VC.14.28.arm64'
- name: Configure
run: >
$env:Path = "$HOME\cygwin\cygwin64\bin;$HOME\cygwin\cygwin64\bin;$env:Path" ;
$env:Path = $env:Path -split ";" -match "C:\\Windows|PowerShell|cygwin" -join ";" ;
$env:BOOT_JDK = cygpath "$HOME/bootjdk/$env:BOOT_JDK_VERSION" ;
& bash configure
--with-conf-name=windows-aarch64
--with-msvc-toolset-version=14.28
--openjdk-target=aarch64-unknown-cygwin
${{ matrix.flags }}
--with-version-opt="$env:GITHUB_ACTOR-$env:GITHUB_SHA"
--with-version-build=0
--with-boot-jdk="$env:BOOT_JDK"
--with-default-make-target="hotspot"
working-directory: jdk
- name: Build
run: |
$env:Path = "$HOME\cygwin\cygwin64\bin;$HOME\cygwin\cygwin64\bin;$env:Path" ;
$env:Path = $env:Path -split ";" -match "C:\\Windows|PowerShell|cygwin" -join ";" ;
& make CONF_NAME=windows-aarch64
working-directory: jdk
windows_x64_build:
name: Windows x64
runs-on: "windows-latest"
runs-on: "windows-2019"
needs: prerequisites
if: needs.prerequisites.outputs.should_run != 'false' && needs.prerequisites.outputs.platform_windows_x64 != 'false'
@@ -755,18 +1018,28 @@ jobs:
path: ~/jtreg/
if: steps.jtreg_restore.outcome == 'failure'
- name: Ensure a specific version of MSVC is installed
run: >
Start-Process -FilePath 'C:\Program Files (x86)\Microsoft Visual Studio\Installer\vs_installer.exe' -Wait -NoNewWindow -ArgumentList
'modify --installPath "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise" --quiet
--add Microsoft.VisualStudio.Component.VC.14.27.x86.x64'
- name: Configure
run: >
$env:Path = "$HOME\cygwin\cygwin64\bin;$HOME\cygwin\cygwin64\bin;$env:Path" ;
$env:Path = $env:Path -split ";" -match "C:\\Windows|PowerShell|cygwin" -join ";" ;
$env:BOOT_JDK = cygpath "$HOME/bootjdk/$env:BOOT_JDK_VERSION" ;
$env:JT_HOME = cygpath "$HOME/jtreg" ;
$env:GTEST = cygpath "$env:GITHUB_WORKSPACE/gtest" ;
& bash configure
--with-conf-name=windows-x64
--with-msvc-toolset-version=14.27
${{ matrix.flags }}
--with-version-opt="$env:GITHUB_ACTOR-$env:GITHUB_SHA"
--with-version-build=0
--with-boot-jdk="$HOME/bootjdk/$env:BOOT_JDK_VERSION"
--with-jtreg="$HOME/jtreg"
--with-gtest="$env:GITHUB_WORKSPACE/gtest"
--with-boot-jdk="$env:BOOT_JDK"
--with-jtreg="$env:JT_HOME"
--with-gtest="$env:GTEST"
--with-default-make-target="product-bundles test-bundles"
--enable-jtreg-failure-handler
working-directory: jdk
@@ -775,7 +1048,7 @@ jobs:
run: |
$env:Path = "$HOME\cygwin\cygwin64\bin;$HOME\cygwin\cygwin64\bin;$env:Path" ;
$env:Path = $env:Path -split ";" -match "C:\\Windows|PowerShell|cygwin" -join ";" ;
& make CONF_NAME=windows-x64 ${{ matrix.build-target }}
& make CONF_NAME=windows-x64
working-directory: jdk
- name: Persist test bundles
@@ -786,11 +1059,10 @@ jobs:
jdk/build/windows-x64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_windows-x64_bin${{ matrix.artifact }}.zip
jdk/build/windows-x64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_windows-x64_bin-tests${{ matrix.artifact }}.tar.gz
jdk/build/windows-x64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_windows-x64_bin${{ matrix.artifact }}-symbols.tar.gz
if: matrix.build-target == false
windows_x64_test:
name: Windows x64
runs-on: "windows-latest"
runs-on: "windows-2019"
needs:
- prerequisites
- windows_x64_build
@@ -971,8 +1243,8 @@ jobs:
"$HOME/windows-x64${{ matrix.artifact }}_testsupport_${{ env.logsuffix }}.zip"
.
-i *.jtr
-i hs_err*
-i replay*
-i */hs_err*.log
-i */replay*.log
continue-on-error: true
- name: Persist test results
@@ -991,7 +1263,7 @@ jobs:
macos_x64_build:
name: macOS x64
runs-on: "macos-latest"
runs-on: "macos-10.15"
needs: prerequisites
if: needs.prerequisites.outputs.should_run != 'false' && needs.prerequisites.outputs.platform_macos_x64 != 'false'
@@ -1061,6 +1333,9 @@ jobs:
- name: Install dependencies
run: brew install make
- name: Select Xcode version
run: sudo xcode-select --switch /Applications/Xcode_11.3.1.app/Contents/Developer
- name: Configure
run: >
bash configure
@@ -1077,7 +1352,7 @@ jobs:
working-directory: jdk
- name: Build
run: make CONF_NAME=macos-x64 ${{ matrix.build-target }}
run: make CONF_NAME=macos-x64
working-directory: jdk
- name: Persist test bundles
@@ -1087,11 +1362,10 @@ jobs:
path: |
jdk/build/macos-x64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_osx-x64_bin${{ matrix.artifact }}.tar.gz
jdk/build/macos-x64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_osx-x64_bin-tests${{ matrix.artifact }}.tar.gz
if: matrix.build-target == false
macos_x64_test:
name: macOS x64
runs-on: "macos-latest"
runs-on: "macos-10.15"
needs:
- prerequisites
- macos_x64_build
@@ -1204,6 +1478,9 @@ jobs:
- name: Install dependencies
run: brew install make
- name: Select Xcode version
run: sudo xcode-select --switch /Applications/Xcode_11.3.1.app/Contents/Developer
- name: Find root of jdk image dir
run: |
imageroot=`find ${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_osx-x64_bin${{ matrix.artifact }} -name release -type f`
@@ -1253,8 +1530,8 @@ jobs:
"$HOME/macos-x64${{ matrix.artifact }}_testsupport_${{ env.logsuffix }}.zip"
.
-i *.jtr
-i hs_err*
-i replay*
-i */hs_err*.log
-i */replay*.log
continue-on-error: true
- name: Persist test results
@@ -1273,11 +1550,13 @@ jobs:
artifacts:
name: Post-process artifacts
runs-on: "ubuntu-latest"
runs-on: "ubuntu-20.04"
if: always()
continue-on-error: true
needs:
- prerequisites
- linux_additional_build
- windows_aarch64_build
- linux_x64_test
- linux_x86_test
- windows_x64_test

2
.gitignore vendored
View File

@@ -2,6 +2,7 @@
/dist/
/.idea/
/.vscode/
/nbproject/
nbproject/private/
/webrev
/.src-rev
@@ -14,3 +15,4 @@ test/nashorn/lib
NashornProfile.txt
**/JTreport/**
**/JTwork/**
/src/utils/LogCompilation/target/

View File

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

View File

@@ -97,12 +97,10 @@
<li><a href="#getting-help">Getting Help</a></li>
</ul></li>
<li><a href="#hints-and-suggestions-for-advanced-users">Hints and Suggestions for Advanced Users</a><ul>
<li><a href="#setting-up-a-repository-for-pushing-changes-defpath">Setting Up a Repository for Pushing Changes (defpath)</a></li>
<li><a href="#bash-completion">Bash Completion</a></li>
<li><a href="#using-multiple-configurations">Using Multiple Configurations</a></li>
<li><a href="#handling-reconfigurations">Handling Reconfigurations</a></li>
<li><a href="#using-fine-grained-make-targets">Using Fine-Grained Make Targets</a></li>
<li><a href="#learn-about-mercurial">Learn About Mercurial</a></li>
</ul></li>
<li><a href="#understanding-the-build-system">Understanding the Build System</a><ul>
<li><a href="#configurations">Configurations</a></li>
@@ -116,10 +114,10 @@
</ul>
</nav>
<h2 id="tldr-instructions-for-the-impatient">TL;DR (Instructions for the Impatient)</h2>
<p>If you are eager to try out building the JDK, these simple steps works most of the time. They assume that you have installed Mercurial (and Cygwin if running on Windows) and cloned the top-level JDK repository that you want to build.</p>
<p>If you are eager to try out building the JDK, these simple steps works most of the time. They assume that you have installed Git (and Cygwin if running on Windows) and cloned the top-level JDK repository that you want to build.</p>
<ol type="1">
<li><p><a href="#getting-the-source-code">Get the complete source code</a>:<br />
<code>hg clone http://hg.openjdk.java.net/jdk/jdk</code></p></li>
<code>git clone https://git.openjdk.java.net/jdk/</code></p></li>
<li><p><a href="#running-configure">Run configure</a>:<br />
<code>bash configure</code></p>
<p>If <code>configure</code> fails due to missing dependencies (to either the <a href="#native-compiler-toolchain-requirements">toolchain</a>, <a href="#build-tools-requirements">build tools</a>, <a href="#external-library-requirements">external libraries</a> or the <a href="#boot-jdk-requirements">boot JDK</a>), most of the time it prints a suggestion on how to resolve the situation on your platform. Follow the instructions, and try running <code>bash configure</code> again.</p></li>
@@ -135,8 +133,8 @@
<p>The JDK is a complex software project. Building it requires a certain amount of technical expertise, a fair number of dependencies on external software, and reasonably powerful hardware.</p>
<p>If you just want to use the JDK and not build it yourself, this document is not for you. See for instance <a href="http://openjdk.java.net/install">OpenJDK installation</a> for some methods of installing a prebuilt JDK.</p>
<h2 id="getting-the-source-code">Getting the Source Code</h2>
<p>Make sure you are getting the correct version. As of JDK 10, the source is no longer split into separate repositories so you only need to clone one single repository. At the <a href="http://hg.openjdk.java.net/">OpenJDK Mercurial server</a> you can see a list of all available repositories. If you want to build an older version, e.g. JDK 8, it is recommended that you get the <code>jdk8u</code> forest, which contains incremental updates, instead of the <code>jdk8</code> forest, which was frozen at JDK 8 GA.</p>
<p>If you are new to Mercurial, a good place to start is the <a href="http://www.mercurial-scm.org/guide">Mercurial Beginner's Guide</a>. The rest of this document assumes a working knowledge of Mercurial.</p>
<p>Make sure you are getting the correct version. As of JDK 10, the source is no longer split into separate repositories so you only need to clone one single repository. At the <a href="https://git.openjdk.java.net/">OpenJDK Git site</a> you can see a list of all available repositories. If you want to build an older version, e.g. JDK 11, it is recommended that you get the <code>jdk11u</code> repo, which contains incremental updates, instead of the <code>jdk11</code> repo, which was frozen at JDK 11 GA.</p>
<p>If you are new to Git, a good place to start is the book <a href="https://git-scm.com/book/en/v2">Pro Git</a>. The rest of this document assumes a working knowledge of Git.</p>
<h3 id="special-considerations">Special Considerations</h3>
<p>For a smooth building experience, it is recommended that you follow these rules on where and how to check out the source code.</p>
<ul>
@@ -147,7 +145,11 @@
<ul>
<li><p>Create the directory that is going to contain the top directory of the JDK clone by using the <code>mkdir</code> command in the Cygwin bash shell. That is, do <em>not</em> create it using Windows Explorer. This will ensure that it will have proper Cygwin attributes, and that it's children will inherit those attributes.</p></li>
<li><p>Do not put the JDK clone in a path under your Cygwin home directory. This is especially important if your user name contains spaces and/or mixed upper and lower case letters.</p></li>
<li><p>Clone the JDK repository using the Cygwin command line <code>hg</code> client as instructed in this document. That is, do <em>not</em> use another Mercurial client such as TortoiseHg.</p></li>
<li><p>You need to install a git client. You have two choices, Cygwin git or Git for Windows. Unfortunately there are pros and cons with each choice.</p>
<ul>
<li><p>The Cygwin <code>git</code> client has no line ending issues and understands Cygwin paths (which are used throughout the JDK build system). However, it does not currently work well with the Skara CLI tooling. Please see the <a href="https://wiki.openjdk.java.net/display/SKARA/Skara#Skara-Git">Skara wiki on Git clients</a> for up-to-date information about the Skara git client support.</p></li>
<li><p>The <a href="https://gitforwindows.org">Git for Windows</a> client has issues with line endings, and do not understand Cygwin paths. It does work well with the Skara CLI tooling, however. To alleviate the line ending problems, make sure you set <code>core.autocrlf</code> to <code>false</code> (this is asked during installation).</p></li>
</ul></li>
</ul>
<p>Failure to follow this procedure might result in hard-to-debug build problems.</p></li>
</ul>
@@ -194,7 +196,7 @@
<p>Windows XP is not a supported platform, but all newer Windows should be able to build the JDK.</p>
<p>On Windows, it is important that you pay attention to the instructions in the <a href="#special-considerations">Special Considerations</a>.</p>
<p>Windows is the only non-POSIX OS supported by the JDK, and as such, requires some extra care. A POSIX support layer is required to build on Windows. Currently, the only supported such layers are Cygwin and Windows Subsystem for Linux (WSL). (Msys is no longer supported due to a too old bash; msys2 would likely be possible to support in a future version but that would require effort to implement.)</p>
<p>Internally in the build system, all paths are represented as Unix-style paths, e.g. <code>/cygdrive/c/hg/jdk9/Makefile</code> rather than <code>C:\hg\jdk9\Makefile</code>. This rule also applies to input to the build system, e.g. in arguments to <code>configure</code>. So, use <code>--with-msvcr-dll=/cygdrive/c/msvcr100.dll</code> rather than <code>--with-msvcr-dll=c:\msvcr100.dll</code>. For details on this conversion, see the section on <a href="#fixpath">Fixpath</a>.</p>
<p>Internally in the build system, all paths are represented as Unix-style paths, e.g. <code>/cygdrive/c/git/jdk/Makefile</code> rather than <code>C:\git\jdk\Makefile</code>. This rule also applies to input to the build system, e.g. in arguments to <code>configure</code>. So, use <code>--with-msvcr-dll=/cygdrive/c/msvcr100.dll</code> rather than <code>--with-msvcr-dll=c:\msvcr100.dll</code>. For details on this conversion, see the section on <a href="#fixpath">Fixpath</a>.</p>
<h4 id="cygwin">Cygwin</h4>
<p>A functioning <a href="http://www.cygwin.com/">Cygwin</a> environment is required for building the JDK on Windows. If you have a 64-bit OS, we strongly recommend using the 64-bit version of Cygwin.</p>
<p><strong>Note:</strong> Cygwin has a model of continuously updating all packages without any easy way to install or revert to a specific version of a package. This means that whenever you add or update a package in Cygwin, you might (inadvertently) update tools that are used by the JDK build process, and that can cause unexpected build problems.</p>
@@ -400,7 +402,7 @@
<li><code>--enable-jvm-feature-&lt;feature&gt;</code> or <code>--disable-jvm-feature-&lt;feature&gt;</code> - Include (or exclude) <code>&lt;feature&gt;</code> as a JVM feature in Hotspot. You can also specify a list of features to be enabled, separated by space or comma, as <code>--with-jvm-features=&lt;feature&gt;[,&lt;feature&gt;...]</code>. If you prefix <code>&lt;feature&gt;</code> with a <code>-</code>, it will be disabled. These options will modify the default list of features for the JVM variant(s) you are building. For the <code>custom</code> JVM variant, the default list is empty. A complete list of valid JVM features can be found using <code>bash configure --help</code>.</li>
<li><code>--with-target-bits=&lt;bits&gt;</code> - Create a target binary suitable for running on a <code>&lt;bits&gt;</code> platform. Use this to create 32-bit output on a 64-bit build platform, instead of doing a full cross-compile. (This is known as a <em>reduced</em> build.)</li>
</ul>
<p>On Linux, BSD and AIX, it is possible to override where Java by default searches for runtime/JNI libraries. This can be useful in situations where there is a special shared directory for system JNI libraries. This setting can in turn be overriden at runtime by setting the <code>java.library.path</code> property.</p>
<p>On Linux, BSD and AIX, it is possible to override where Java by default searches for runtime/JNI libraries. This can be useful in situations where there is a special shared directory for system JNI libraries. This setting can in turn be overridden at runtime by setting the <code>java.library.path</code> property.</p>
<ul>
<li><code>--with-jni-libpath=&lt;path&gt;</code> - Use the specified path as a default when searching for runtime libraries.</li>
</ul>
@@ -439,7 +441,7 @@
<h3 id="configure-control-variables">Configure Control Variables</h3>
<p>It is possible to control certain aspects of <code>configure</code> by overriding the value of <code>configure</code> variables, either on the command line or in the environment.</p>
<p>Normally, this is <strong>not recommended</strong>. If used improperly, it can lead to a broken configuration. Unless you're well versed in the build system, this is hard to use properly. Therefore, <code>configure</code> will print a warning if this is detected.</p>
<p>However, there are a few <code>configure</code> variables, known as <em>control variables</em> that are supposed to be overriden on the command line. These are variables that describe the location of tools needed by the build, like <code>MAKE</code> or <code>GREP</code>. If any such variable is specified, <code>configure</code> will use that value instead of trying to autodetect the tool. For instance, <code>bash configure MAKE=/opt/gnumake4.0/bin/make</code>.</p>
<p>However, there are a few <code>configure</code> variables, known as <em>control variables</em> that are supposed to be overridden on the command line. These are variables that describe the location of tools needed by the build, like <code>MAKE</code> or <code>GREP</code>. If any such variable is specified, <code>configure</code> will use that value instead of trying to autodetect the tool. For instance, <code>bash configure MAKE=/opt/gnumake4.0/bin/make</code>.</p>
<p>If a configure argument exists, use that instead, e.g. use <code>--with-jtreg</code> instead of setting <code>JTREGEXE</code>.</p>
<p>Also note that, despite what autoconf claims, setting <code>CFLAGS</code> will not accomplish anything. Instead use <code>--with-extra-cflags</code> (and similar for <code>cxxflags</code> and <code>ldflags</code>).</p>
<h2 id="running-make">Running Make</h2>
@@ -476,7 +478,7 @@
<h3 id="make-control-variables">Make Control Variables</h3>
<p>It is possible to control <code>make</code> behavior by overriding the value of <code>make</code> variables, either on the command line or in the environment.</p>
<p>Normally, this is <strong>not recommended</strong>. If used improperly, it can lead to a broken build. Unless you're well versed in the build system, this is hard to use properly. Therefore, <code>make</code> will print a warning if this is detected.</p>
<p>However, there are a few <code>make</code> variables, known as <em>control variables</em> that are supposed to be overriden on the command line. These make up the &quot;make time&quot; configuration, as opposed to the &quot;configure time&quot; configuration.</p>
<p>However, there are a few <code>make</code> variables, known as <em>control variables</em> that are supposed to be overridden on the command line. These make up the &quot;make time&quot; configuration, as opposed to the &quot;configure time&quot; configuration.</p>
<h4 id="general-make-control-variables">General Make Control Variables</h4>
<ul>
<li><code>JOBS</code> - Specify the number of jobs to build with. See <a href="#build-performance">Build Performance</a>.</li>
@@ -629,21 +631,30 @@ cp: cannot stat `arm-linux-gnueabihf/libXt.so&#39;: No such file or directory</c
<p>Fortunately, you can create sysroots for foreign architectures with tools provided by your OS. On Debian/Ubuntu systems, one could use <code>qemu-deboostrap</code> to create the <em>target</em> system chroot, which would have the native libraries and headers specific to that <em>target</em> system. After that, we can use the cross-compiler on the <em>build</em> system, pointing into chroot to get the build dependencies right. This allows building for foreign architectures with native compilation speed.</p>
<p>For example, cross-compiling to AArch64 from x86_64 could be done like this:</p>
<ul>
<li>Install cross-compiler on the <em>build</em> system:</li>
</ul>
<pre><code>apt install g++-aarch64-linux-gnu gcc-aarch64-linux-gnu</code></pre>
<ul>
<li>Create chroot on the <em>build</em> system, configuring it for <em>target</em> system:</li>
</ul>
<pre><code>sudo qemu-debootstrap --arch=arm64 --verbose \
--include=fakeroot,build-essential,libx11-dev,libxext-dev,libxrender-dev,libxrandr-dev,libxtst-dev,libxt-dev,libcups2-dev,libfontconfig1-dev,libasound2-dev,libfreetype6-dev,libpng12-dev \
--resolve-deps jessie /chroots/arm64 http://httpredir.debian.org/debian/</code></pre>
<ul>
<li>Configure and build with newly created chroot as sysroot/toolchain-path:</li>
</ul>
<pre><code>CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ sh ./configure --openjdk-target=aarch64-linux-gnu --with-sysroot=/chroots/arm64/ --with-toolchain-path=/chroots/arm64/
<li><p>Install cross-compiler on the <em>build</em> system:</p>
<pre><code>apt install g++-aarch64-linux-gnu gcc-aarch64-linux-gnu</code></pre></li>
<li><p>Create chroot on the <em>build</em> system, configuring it for <em>target</em> system:</p>
<pre><code>sudo qemu-debootstrap \
--arch=arm64 \
--verbose \
--include=fakeroot,symlinks,build-essential,libx11-dev,libxext-dev,libxrender-dev,libxrandr-dev,libxtst-dev,libxt-dev,libcups2-dev,libfontconfig1-dev,libasound2-dev,libfreetype6-dev,libpng-dev \
--resolve-deps \
buster \
~/sysroot-arm64 \
http://httpredir.debian.org/debian/</code></pre></li>
<li><p>Make sure the symlinks inside the newly created chroot point to proper locations:</p>
<pre><code>sudo chroot ~/sysroot-arm64 symlinks -cr .</code></pre></li>
<li><p>Configure and build with newly created chroot as sysroot/toolchain-path:</p>
<pre><code>CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ sh ./configure \
--openjdk-target=aarch64-linux-gnu \
--with-sysroot=~/sysroot-arm64 \
--with-toolchain-path=~/sysroot-arm64 \
--with-freetype-lib=~/sysroot-arm64/usr/lib/aarch64-linux-gnu/ \
--with-freetype-include=~/sysroot-arm64/usr/include/freetype2/ \
--x-libraries=~/sysroot-arm64/usr/lib/aarch64-linux-gnu/
make images
ls build/linux-aarch64-normal-server-release/</code></pre>
ls build/linux-aarch64-server-release/</code></pre></li>
</ul>
<p>The build does not create new files in that chroot, so it can be reused for multiple builds without additional cleanup.</p>
<p>Architectures that are known to successfully cross-compile like this are:</p>
<table>
@@ -749,14 +760,14 @@ ls build/linux-aarch64-normal-server-release/</code></pre>
=== Output from failing command(s) repeated here ===
* For target hotspot_variant-server_libjvm_objs_psMemoryPool.o:
/localhome/hg/jdk9-sandbox/hotspot/src/share/vm/services/psMemoryPool.cpp:1:1: error: &#39;failhere&#39; does not name a type
/localhome/git/jdk-sandbox/hotspot/src/share/vm/services/psMemoryPool.cpp:1:1: error: &#39;failhere&#39; does not name a type
... (rest of output omitted)
* All command lines available in /localhome/hg/jdk9-sandbox/build/linux-x64/make-support/failure-logs.
* All command lines available in /localhome/git/jdk-sandbox/build/linux-x64/make-support/failure-logs.
=== End of repeated output ===
=== Make failed targets repeated here ===
lib/CompileJvm.gmk:207: recipe for target &#39;/localhome/hg/jdk9-sandbox/build/linux-x64/hotspot/variant-server/libjvm/objs/psMemoryPool.o&#39; failed
lib/CompileJvm.gmk:207: recipe for target &#39;/localhome/git/jdk-sandbox/build/linux-x64/hotspot/variant-server/libjvm/objs/psMemoryPool.o&#39; failed
make/Main.gmk:263: recipe for target &#39;hotspot-server-libs&#39; failed
=== End of repeated output ===
@@ -783,7 +794,7 @@ Hint: If caused by a warning, try configure --disable-warnings-as-errors.</code>
<p>Here are a suggested list of things to try if you are having unexpected build problems. Each step requires more time than the one before, so try them in order. Most issues will be solved at step 1 or 2.</p>
<ol type="1">
<li><p>Make sure your repository is up-to-date</p>
<p>Run <code>hg pull -u</code> to make sure you have the latest changes.</p></li>
<p>Run <code>git pull origin master</code> to make sure you have the latest changes.</p></li>
<li><p>Clean build results</p>
<p>The simplest way to fix incremental rebuild issues is to run <code>make clean</code>. This will remove all build results, but not the configuration or any build system support artifacts. In most cases, this will solve build errors resulting from incremental build mismatches.</p></li>
<li><p>Completely clean the build directory.</p>
@@ -792,8 +803,8 @@ Hint: If caused by a warning, try configure --disable-warnings-as-errors.</code>
make dist-clean
bash configure $(cat current-configuration)
make</code></pre></li>
<li><p>Re-clone the Mercurial repository</p>
<p>Sometimes the Mercurial repository gets in a state that causes the product to be un-buildable. In such a case, the simplest solution is often the &quot;sledgehammer approach&quot;: delete the entire repository, and re-clone it. If you have local changes, save them first to a different location using <code>hg export</code>.</p></li>
<li><p>Re-clone the Git repository</p>
<p>Sometimes the Git repository gets in a state that causes the product to be un-buildable. In such a case, the simplest solution is often the &quot;sledgehammer approach&quot;: delete the entire repository, and re-clone it. If you have local changes, save them first to a different location using <code>git format-patch</code>.</p></li>
</ol>
<h3 id="specific-build-issues">Specific Build Issues</h3>
<h4 id="clock-skew">Clock Skew</h4>
@@ -812,19 +823,6 @@ spawn failed</code></pre>
<p>If none of the suggestions in this document helps you, or if you find what you believe is a bug in the build system, please contact the Build Group by sending a mail to <a href="mailto:build-dev@openjdk.java.net">build-dev@openjdk.java.net</a>. Please include the relevant parts of the configure and/or build log.</p>
<p>If you need general help or advice about developing for the JDK, you can also contact the Adoption Group. See the section on <a href="#contributing-to-openjdk">Contributing to OpenJDK</a> for more information.</p>
<h2 id="hints-and-suggestions-for-advanced-users">Hints and Suggestions for Advanced Users</h2>
<h3 id="setting-up-a-repository-for-pushing-changes-defpath">Setting Up a Repository for Pushing Changes (defpath)</h3>
<p>To help you prepare a proper push path for a Mercurial repository, there exists a useful tool known as <a href="http://openjdk.java.net/projects/code-tools/defpath">defpath</a>. It will help you setup a proper push path for pushing changes to the JDK.</p>
<p>Install the extension by cloning <code>http://hg.openjdk.java.net/code-tools/defpath</code> and updating your <code>.hgrc</code> file. Here's one way to do this:</p>
<pre><code>cd ~
mkdir hg-ext
cd hg-ext
hg clone http://hg.openjdk.java.net/code-tools/defpath
cat &lt;&lt; EOT &gt;&gt; ~/.hgrc
[extensions]
defpath=~/hg-ext/defpath/defpath.py
EOT</code></pre>
<p>You can now setup a proper push path using:</p>
<pre><code>hg defpath -d -u &lt;your OpenJDK username&gt;</code></pre>
<h3 id="bash-completion">Bash Completion</h3>
<p>The <code>configure</code> and <code>make</code> commands tries to play nice with bash command-line completion (using <code>&lt;tab&gt;</code> or <code>&lt;tab&gt;&lt;tab&gt;</code>). To use this functionality, make sure you enable completion in your <code>~/.bashrc</code> (see instructions for bash in your operating system).</p>
<p>Make completion will work out of the box, and will complete valid make targets. For instance, typing <code>make jdk-i&lt;tab&gt;</code> will complete to <code>make jdk-image</code>.</p>
@@ -877,14 +875,6 @@ sudo mv /tmp/configure /usr/local/bin</code></pre>
<h4 id="rebuilding-part-of-java.base-jdk_filter">Rebuilding Part of java.base (JDK_FILTER)</h4>
<p>If you are modifying files in <code>java.base</code>, which is the by far largest module in the JDK, then you need to rebuild all those files whenever a single file has changed. (This inefficiency will hopefully be addressed in JDK 10.)</p>
<p>As a hack, you can use the make control variable <code>JDK_FILTER</code> to specify a pattern that will be used to limit the set of files being recompiled. For instance, <code>make java.base JDK_FILTER=javax/crypto</code> (or, to combine methods, <code>make java.base-java-only JDK_FILTER=javax/crypto</code>) will limit the compilation to files in the <code>javax.crypto</code> package.</p>
<h3 id="learn-about-mercurial">Learn About Mercurial</h3>
<p>To become an efficient JDK developer, it is recommended that you invest in learning Mercurial properly. Here are some links that can get you started:</p>
<ul>
<li><a href="http://www.mercurial-scm.org/wiki/GitConcepts">Mercurial for git users</a></li>
<li><a href="http://www.mercurial-scm.org/wiki/Tutorial">The official Mercurial tutorial</a></li>
<li><a href="http://hginit.com/">hg init</a></li>
<li><a href="http://hgbook.red-bean.com/read/">Mercurial: The Definitive Guide</a></li>
</ul>
<h2 id="understanding-the-build-system">Understanding the Build System</h2>
<p>This section will give you a more technical description on the details of the build system.</p>
<h3 id="configurations">Configurations</h3>

View File

@@ -3,11 +3,11 @@
## TL;DR (Instructions for the Impatient)
If you are eager to try out building the JDK, these simple steps works most of
the time. They assume that you have installed Mercurial (and Cygwin if running
the time. They assume that you have installed Git (and Cygwin if running
on Windows) and cloned the top-level JDK repository that you want to build.
1. [Get the complete source code](#getting-the-source-code): \
`hg clone http://hg.openjdk.java.net/jdk/jdk`
`git clone https://git.openjdk.java.net/jdk/`
2. [Run configure](#running-configure): \
`bash configure`
@@ -47,14 +47,14 @@ JDK.
Make sure you are getting the correct version. As of JDK 10, the source is no
longer split into separate repositories so you only need to clone one single
repository. At the [OpenJDK Mercurial server](http://hg.openjdk.java.net/) you
repository. At the [OpenJDK Git site](https://git.openjdk.java.net/) you
can see a list of all available repositories. If you want to build an older version,
e.g. JDK 8, it is recommended that you get the `jdk8u` forest, which contains
incremental updates, instead of the `jdk8` forest, which was frozen at JDK 8 GA.
e.g. JDK 11, it is recommended that you get the `jdk11u` repo, which contains
incremental updates, instead of the `jdk11` repo, which was frozen at JDK 11 GA.
If you are new to Mercurial, a good place to start is the [Mercurial Beginner's
Guide](http://www.mercurial-scm.org/guide). The rest of this document assumes a
working knowledge of Mercurial.
If you are new to Git, a good place to start is the book [Pro
Git](https://git-scm.com/book/en/v2). The rest of this document
assumes a working knowledge of Git.
### Special Considerations
@@ -89,9 +89,21 @@ on where and how to check out the source code.
directory. This is especially important if your user name contains
spaces and/or mixed upper and lower case letters.
* Clone the JDK repository using the Cygwin command line `hg` client
as instructed in this document. That is, do *not* use another Mercurial
client such as TortoiseHg.
* You need to install a git client. You have two choices, Cygwin git or
Git for Windows. Unfortunately there are pros and cons with each choice.
* The Cygwin `git` client has no line ending issues and understands
Cygwin paths (which are used throughout the JDK build system).
However, it does not currently work well with the Skara CLI tooling.
Please see the [Skara wiki on Git clients](
https://wiki.openjdk.java.net/display/SKARA/Skara#Skara-Git) for
up-to-date information about the Skara git client support.
* The [Git for Windows](https://gitforwindows.org) client has issues
with line endings, and do not understand Cygwin paths. It does work
well with the Skara CLI tooling, however. To alleviate the line ending
problems, make sure you set `core.autocrlf` to `false` (this is asked
during installation).
Failure to follow this procedure might result in hard-to-debug build
problems.
@@ -173,7 +185,7 @@ likely be possible to support in a future version but that would require effort
to implement.)
Internally in the build system, all paths are represented as Unix-style paths,
e.g. `/cygdrive/c/hg/jdk9/Makefile` rather than `C:\hg\jdk9\Makefile`. This
e.g. `/cygdrive/c/git/jdk/Makefile` rather than `C:\git\jdk\Makefile`. This
rule also applies to input to the build system, e.g. in arguments to
`configure`. So, use `--with-msvcr-dll=/cygdrive/c/msvcr100.dll` rather than
`--with-msvcr-dll=c:\msvcr100.dll`. For details on this conversion, see the section
@@ -641,7 +653,7 @@ features, use `bash configure --help=short` instead.)
On Linux, BSD and AIX, it is possible to override where Java by default
searches for runtime/JNI libraries. This can be useful in situations where
there is a special shared directory for system JNI libraries. This setting
can in turn be overriden at runtime by setting the `java.library.path` property.
can in turn be overridden at runtime by setting the `java.library.path` property.
* `--with-jni-libpath=<path>` - Use the specified path as a default
when searching for runtime libraries.
@@ -707,7 +719,7 @@ hard to use properly. Therefore, `configure` will print a warning if this is
detected.
However, there are a few `configure` variables, known as *control variables*
that are supposed to be overriden on the command line. These are variables that
that are supposed to be overridden on the command line. These are variables that
describe the location of tools needed by the build, like `MAKE` or `GREP`. If
any such variable is specified, `configure` will use that value instead of
trying to autodetect the tool. For instance, `bash configure
@@ -787,7 +799,7 @@ broken build. Unless you're well versed in the build system, this is hard to
use properly. Therefore, `make` will print a warning if this is detected.
However, there are a few `make` variables, known as *control variables* that
are supposed to be overriden on the command line. These make up the "make time"
are supposed to be overridden on the command line. These make up the "make time"
configuration, as opposed to the "configure time" configuration.
#### General Make Control Variables
@@ -1086,23 +1098,39 @@ for foreign architectures with native compilation speed.
For example, cross-compiling to AArch64 from x86_64 could be done like this:
* Install cross-compiler on the *build* system:
```
apt install g++-aarch64-linux-gnu gcc-aarch64-linux-gnu
```
```
apt install g++-aarch64-linux-gnu gcc-aarch64-linux-gnu
```
* Create chroot on the *build* system, configuring it for *target* system:
```
sudo qemu-debootstrap --arch=arm64 --verbose \
--include=fakeroot,build-essential,libx11-dev,libxext-dev,libxrender-dev,libxrandr-dev,libxtst-dev,libxt-dev,libcups2-dev,libfontconfig1-dev,libasound2-dev,libfreetype6-dev,libpng12-dev \
--resolve-deps jessie /chroots/arm64 http://httpredir.debian.org/debian/
```
```
sudo qemu-debootstrap \
--arch=arm64 \
--verbose \
--include=fakeroot,symlinks,build-essential,libx11-dev,libxext-dev,libxrender-dev,libxrandr-dev,libxtst-dev,libxt-dev,libcups2-dev,libfontconfig1-dev,libasound2-dev,libfreetype6-dev,libpng-dev \
--resolve-deps \
buster \
~/sysroot-arm64 \
http://httpredir.debian.org/debian/
```
* Make sure the symlinks inside the newly created chroot point to proper locations:
```
sudo chroot ~/sysroot-arm64 symlinks -cr .
```
* Configure and build with newly created chroot as sysroot/toolchain-path:
```
CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ sh ./configure --openjdk-target=aarch64-linux-gnu --with-sysroot=/chroots/arm64/ --with-toolchain-path=/chroots/arm64/
make images
ls build/linux-aarch64-normal-server-release/
```
```
CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ sh ./configure \
--openjdk-target=aarch64-linux-gnu \
--with-sysroot=~/sysroot-arm64 \
--with-toolchain-path=~/sysroot-arm64 \
--with-freetype-lib=~/sysroot-arm64/usr/lib/aarch64-linux-gnu/ \
--with-freetype-include=~/sysroot-arm64/usr/include/freetype2/ \
--x-libraries=~/sysroot-arm64/usr/lib/aarch64-linux-gnu/
make images
ls build/linux-aarch64-server-release/
```
The build does not create new files in that chroot, so it can be reused for multiple builds
without additional cleanup.
@@ -1270,14 +1298,14 @@ ERROR: Build failed for target 'hotspot' in configuration 'linux-x64' (exit code
=== Output from failing command(s) repeated here ===
* For target hotspot_variant-server_libjvm_objs_psMemoryPool.o:
/localhome/hg/jdk9-sandbox/hotspot/src/share/vm/services/psMemoryPool.cpp:1:1: error: 'failhere' does not name a type
/localhome/git/jdk-sandbox/hotspot/src/share/vm/services/psMemoryPool.cpp:1:1: error: 'failhere' does not name a type
... (rest of output omitted)
* All command lines available in /localhome/hg/jdk9-sandbox/build/linux-x64/make-support/failure-logs.
* All command lines available in /localhome/git/jdk-sandbox/build/linux-x64/make-support/failure-logs.
=== End of repeated output ===
=== Make failed targets repeated here ===
lib/CompileJvm.gmk:207: recipe for target '/localhome/hg/jdk9-sandbox/build/linux-x64/hotspot/variant-server/libjvm/objs/psMemoryPool.o' failed
lib/CompileJvm.gmk:207: recipe for target '/localhome/git/jdk-sandbox/build/linux-x64/hotspot/variant-server/libjvm/objs/psMemoryPool.o' failed
make/Main.gmk:263: recipe for target 'hotspot-server-libs' failed
=== End of repeated output ===
@@ -1375,7 +1403,7 @@ order. Most issues will be solved at step 1 or 2.
1. Make sure your repository is up-to-date
Run `hg pull -u` to make sure you have the latest changes.
Run `git pull origin master` to make sure you have the latest changes.
2. Clean build results
@@ -1400,13 +1428,13 @@ order. Most issues will be solved at step 1 or 2.
make
```
4. Re-clone the Mercurial repository
4. Re-clone the Git repository
Sometimes the Mercurial repository gets in a state that causes the product
Sometimes the Git repository gets in a state that causes the product
to be un-buildable. In such a case, the simplest solution is often the
"sledgehammer approach": delete the entire repository, and re-clone it.
If you have local changes, save them first to a different location using
`hg export`.
`git format-patch`.
### Specific Build Issues
@@ -1451,33 +1479,6 @@ contact the Adoption Group. See the section on [Contributing to OpenJDK](
## Hints and Suggestions for Advanced Users
### Setting Up a Repository for Pushing Changes (defpath)
To help you prepare a proper push path for a Mercurial repository, there exists
a useful tool known as [defpath](
http://openjdk.java.net/projects/code-tools/defpath). It will help you setup a
proper push path for pushing changes to the JDK.
Install the extension by cloning
`http://hg.openjdk.java.net/code-tools/defpath` and updating your `.hgrc` file.
Here's one way to do this:
```
cd ~
mkdir hg-ext
cd hg-ext
hg clone http://hg.openjdk.java.net/code-tools/defpath
cat << EOT >> ~/.hgrc
[extensions]
defpath=~/hg-ext/defpath/defpath.py
EOT
```
You can now setup a proper push path using:
```
hg defpath -d -u <your OpenJDK username>
```
### Bash Completion
The `configure` and `make` commands tries to play nice with bash command-line
@@ -1618,16 +1619,6 @@ instance, `make java.base JDK_FILTER=javax/crypto` (or, to combine methods,
`make java.base-java-only JDK_FILTER=javax/crypto`) will limit the compilation
to files in the `javax.crypto` package.
### Learn About Mercurial
To become an efficient JDK developer, it is recommended that you invest in
learning Mercurial properly. Here are some links that can get you started:
* [Mercurial for git users](http://www.mercurial-scm.org/wiki/GitConcepts)
* [The official Mercurial tutorial](http://www.mercurial-scm.org/wiki/Tutorial)
* [hg init](http://hginit.com/)
* [Mercurial: The Definitive Guide](http://hgbook.red-bean.com/read/)
## Understanding the Build System
This section will give you a more technical description on the details of the

View File

@@ -49,6 +49,7 @@
<li><a href="#thread_local">thread_local</a></li>
<li><a href="#nullptr">nullptr</a></li>
<li><a href="#atomic">&lt;atomic&gt;</a></li>
<li><a href="#uniform-initialization">Uniform Initialization</a></li>
<li><a href="#additional-permitted-features">Additional Permitted Features</a></li>
<li><a href="#excluded-features">Excluded Features</a></li>
<li><a href="#undecided-features">Undecided Features</a></li>
@@ -275,6 +276,17 @@ while ( test_foo(args...) ) { // No, excess spaces around control</code></pre></
<p>Do not use facilities provided by the <code>&lt;atomic&gt;</code> header (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2427.html">n2427</a>), (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2752.htm">n2752</a>); instead, use the HotSpot <code>Atomic</code> class and related facilities.</p>
<p>Atomic operations in HotSpot code must have semantics which are consistent with those provided by the JDK's compilers for Java. There are platform-specific implementation choices that a C++ compiler might make or change that are outside the scope of the C++ Standard, and might differ from what the Java compilers implement.</p>
<p>In addition, HotSpot <code>Atomic</code> has a concept of &quot;conservative&quot; memory ordering, which may differ from (may be stronger than) sequentially consistent. There are algorithms in HotSpot that are believed to rely on that ordering.</p>
<h3 id="uniform-initialization">Uniform Initialization</h3>
<p>The use of <em>uniform initialization</em> (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2672.htm">n2672</a>), also known as <em>brace initialization</em>, is permitted.</p>
<p>Some relevant sections from cppreference.com:</p>
<ul>
<li><a href="https://en.cppreference.com/w/cpp/language/initialization">initialization</a></li>
<li><a href="https://en.cppreference.com/w/cpp/language/value_initialization">value initialization</a></li>
<li><a href="https://en.cppreference.com/w/cpp/language/direct_initialization">direct initialization</a></li>
<li><a href="https://en.cppreference.com/w/cpp/language/list_initialization">list initialization</a></li>
<li><a href="https://en.cppreference.com/w/cpp/language/aggregate_initialization">aggregate initialization</a></li>
</ul>
<p>Although related, the use of <code>std::initializer_list</code> remains forbidden, as part of the avoidance of the C++ Standard Library in HotSpot code.</p>
<h3 id="additional-permitted-features">Additional Permitted Features</h3>
<ul>
<li><p><code>constexpr</code> (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2235.pdf">n2235</a>) (<a href="https://isocpp.org/files/papers/N3652.html">n3652</a>)</p></li>
@@ -292,6 +304,7 @@ while ( test_foo(args...) ) { // No, excess spaces around control</code></pre></
<li><p>Dynamic initialization and destruction with concurrency (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2660.htm">n2660</a>)</p></li>
<li><p><code>final</code> virtual specifiers for classes and virtual functions (<a href="http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2928.htm">n2928</a>), (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3206.htm">n3206</a>), (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3272.htm">n3272</a>)</p></li>
<li><p>Local and unnamed types as template parameters (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2657.htm">n2657</a>)</p></li>
<li><p>Range-based <code>for</code> loops (<a href="http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2930.html">n2930</a>) (<a href="https://en.cppreference.com/w/cpp/language/range-for">range-for</a>)</p></li>
</ul>
<h3 id="excluded-features">Excluded Features</h3>
<ul>

View File

@@ -681,6 +681,23 @@ ordering, which may differ from (may be stronger than) sequentially
consistent. There are algorithms in HotSpot that are believed to rely
on that ordering.
### Uniform Initialization
The use of _uniform initialization_
([n2672](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2672.htm)),
also known as _brace initialization_, is permitted.
Some relevant sections from cppreference.com:
* [initialization](https://en.cppreference.com/w/cpp/language/initialization)
* [value initialization](https://en.cppreference.com/w/cpp/language/value_initialization)
* [direct initialization](https://en.cppreference.com/w/cpp/language/direct_initialization)
* [list initialization](https://en.cppreference.com/w/cpp/language/list_initialization)
* [aggregate initialization](https://en.cppreference.com/w/cpp/language/aggregate_initialization)
Although related, the use of `std::initializer_list` remains forbidden, as
part of the avoidance of the C++ Standard Library in HotSpot code.
### Additional Permitted Features
* `constexpr`
@@ -733,6 +750,10 @@ on that ordering.
* Local and unnamed types as template parameters
([n2657](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2657.htm))
* Range-based `for` loops
([n2930](http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2930.html))
([range-for](https://en.cppreference.com/w/cpp/language/range-for))
### Excluded Features
* New string and character literals

View File

@@ -1,13 +0,0 @@
# jetbrains/runtime:jbr15env
FROM centos:7
RUN yum -y install centos-release-scl
RUN yum -y install devtoolset-8
RUN yum -y install zip bzip2 unzip tar wget make autoconf automake libtool gcc gcc-c++ libstdc++-devel alsa-devel cups-devel xorg-x11-devel libjpeg62-devel giflib-devel freetype-devel file which libXtst-devel libXt-devel libXrender-devel alsa-lib-devel fontconfig-devel libXrandr-devel libXi-devel git
# Install Java 15
RUN wget https://cdn.azul.com/zulu/bin/zulu15.27.17-ca-jdk15.0.0-linux_x64.tar.gz \
-O - | tar xz -C /
RUN mv /zulu15.27.17-ca-jdk15.0.0-linux_x64 /jdk15.0.0
ENV PATH /opt/rh/devtoolset-8/root/usr/bin:$PATH
RUN mkdir .git
RUN git config user.email "builduser@jetbrains.com"
RUN git config user.name "builduser"

View File

@@ -1,9 +0,0 @@
#!/bin/bash -x
JBSDK_VERSION=$1
JDK_BUILD_NUMBER=$2
build_number=$3
script_dir=jb/project/tools/linux/scripts
${script_dir}/mkimages_x64.sh $JBSDK_VERSION $JDK_BUILD_NUMBER $build_number "jcef" || exit $?
${script_dir}/mkimages_x64.sh $JBSDK_VERSION $JDK_BUILD_NUMBER $build_number "jfx" || exit $?
${script_dir}/mkimages_x64.sh $JBSDK_VERSION $JDK_BUILD_NUMBER $build_number "jfx_jcef" || exit $?

View File

@@ -1,77 +0,0 @@
#!/bin/bash -x
# The following parameters must be specified:
# JBSDK_VERSION - specifies the current version of OpenJDK e.g. 11_0_6
# JDK_BUILD_NUMBER - specifies the number of OpenJDK build or the value of --with-version-build argument to configure
# build_number - specifies the number of JetBrainsRuntime build
# bundle_type - specifies bundle to bu built; possible values:
# jcef - the bundles 1) jbr with jcef+javafx, 2) jbrsdk and 3) test will be created
# jfx - the bundle 1) jbr with javafx only will be created
#
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
#
# $ ./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)
#
JBSDK_VERSION=$1
JDK_BUILD_NUMBER=$2
build_number=$3
JBRSDK_BASE_NAME=jbrsdk-${JBSDK_VERSION}
sh configure \
--disable-warnings-as-errors \
--with-debug-level=release \
--with-version-build=$JDK_BUILD_NUMBER \
--with-version-pre= \
--with-version-opt=b$build_number \
--with-boot-jdk=amazon-corretto-11.0.5.10.1-linux-aarch64 \
--with-import-modules=./modular-sdk \
--enable-cds=yes || exit $?
make clean CONF=linux-aarch64-normal-server-release || exit $?
make images CONF=linux-aarch64-normal-server-release test-image || exit $?
JBSDK=${JBRSDK_BASE_NAME}-linux-aarch64-b${build_number}
BASE_DIR=build/linux-aarch64-normal-server-release/images
JSDK=${BASE_DIR}/jdk
JBRSDK_BUNDLE=jbrsdk
echo Fixing permissions
chmod -R a+r $JSDK
rm -rf $BASE_DIR/$JBRSDK_BUNDLE
cp -r $JSDK $BASE_DIR/$JBRSDK_BUNDLE || exit $?
echo Creating $JBSDK.tar.gz ...
tar -pcf $JBSDK.tar \
--exclude=*.debuginfo --exclude=demo --exclude=sample --exclude=man \
-C $BASE_DIR ${JBRSDK_BUNDLE} || exit $?
gzip $JBSDK.tar || exit $?
JBR_BUNDLE=jbr
JBR_BASE_NAME=jbr-$JBSDK_VERSION
rm -rf $BASE_DIR/$JBR_BUNDLE
JBR=$JBR_BASE_NAME-linux-aarch64-b$build_number
grep -v javafx modules.list | grep -v "jdk.internal.vm\|jdk.aot\|jcef" > modules.list.aarch64
echo Running jlink....
${JSDK}/bin/jlink \
--module-path ${JSDK}/jmods --no-man-pages --compress=2 \
--add-modules $(xargs < modules.list.aarch64 | sed s/" "//g | sed s/,$//g) \
--output ${BASE_DIR}/${JBR_BUNDLE} || exit $?
echo Modifying release info ...
grep -v \"^JAVA_VERSION\" ${JSDK}/release | grep -v \"^MODULES\" >> ${BASE_DIR}/${JBR_BUNDLE}/release
echo Creating $JBR.tar.gz ...
tar -pcf $JBR.tar -C $BASE_DIR ${JBR_BUNDLE} || exit $?
gzip $JBR.tar || exit $?
JBRSDK_TEST=$JBRSDK_BASE_NAME-linux-test-aarch64-b$build_number
echo Creating $JBRSDK_TEST.tar.gz ...
tar -pcf $JBRSDK_TEST.tar -C $BASE_DIR --exclude='test/jdk/demos' test || exit $?
gzip $JBRSDK_TEST.tar || exit $?

View File

@@ -1,139 +0,0 @@
#!/bin/bash -x
# The following parameters must be specified:
# JBSDK_VERSION - specifies the current version of OpenJDK e.g. 11_0_6
# JDK_BUILD_NUMBER - specifies the number of OpenJDK build or the value of --with-version-build argument to configure
# build_number - specifies the number of JetBrainsRuntime build
# bundle_type - specifies bundle to bu built; possible values:
# jcef - the bundles 1) jbr with jcef+javafx, 2) jbrsdk and 3) test will be created
# jfx - the bundle 1) jbr with javafx only will be created
#
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
#
# $ ./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)
#
JBSDK_VERSION=$1
JDK_BUILD_NUMBER=$2
build_number=$3
bundle_type=$4
function create_jbr {
case "$1" in
"${bundle_type}_lw")
JBR_BASE_NAME=jbr_${bundle_type}_lw-${JBSDK_VERSION}
grep -v "jdk.compiler\|jdk.hotspot.agent" modules.list > modules_tmp.list
;;
"jfx" | "jcef")
JBR_BASE_NAME=jbr_${bundle_type}-${JBSDK_VERSION}
cat modules.list > modules_tmp.list
;;
"jfx_jcef")
JBR_BASE_NAME=jbr-${JBSDK_VERSION}
cat modules.list > modules_tmp.list
;;
*)
JBR_BASE_NAME=jbr-${JBSDK_VERSION}
cat modules.list > modules_tmp.list
;;
esac
rm -rf ${BASE_DIR}/${JBR_BUNDLE}
JBR=$JBR_BASE_NAME-linux-x64-b$build_number
echo Running jlink....
$JSDK/bin/jlink \
--module-path $JSDK/jmods --no-man-pages --compress=2 \
--add-modules $(xargs < modules_tmp.list | sed s/" "//g) --output $BASE_DIR/$JBR_BUNDLE
if [[ "$bundle_type" == *jcef* ]]; then
cp -R $BASE_DIR/$JBR_BUNDLE $BASE_DIR/jbr
cp -R jcef_linux_x64/* $BASE_DIR/$JBR_BUNDLE/lib || exit $?
fi
grep -v "^JAVA_VERSION" $JSDK/release | grep -v "^MODULES" >> $BASE_DIR/$JBR_BUNDLE/release
echo Creating $JBR.tar.gz ...
if [ ! -z "$bundle_type" ]; then
rm -rf ${BASE_DIR}/jbr
cp -R ${BASE_DIR}/${JBR_BUNDLE} ${BASE_DIR}/jbr
fi
tar -pcf $JBR.tar -C $BASE_DIR jbr || exit $?
gzip $JBR.tar || exit $?
rm -rf ${BASE_DIR}/${JBR_BUNDLE}
}
JBRSDK_BASE_NAME=jbrsdk-$JBSDK_VERSION
#git checkout -- modules.list src
case "$bundle_type" in
"jfx")
git apply -p0 < jb/project/tools/exclude_jcef_module.patch
;;
"jcef")
git apply -p0 < jb/project/tools/exclude_jfx_module.patch
;;
esac
if [ -z "$bundle_type" ]; then
JBR_BUNDLE=jbr
sh configure \
--disable-warnings-as-errors \
--with-debug-level=release \
--with-version-pre= \
--with-version-build=${JDK_BUILD_NUMBER} \
--with-version-opt=b${build_number} \
--with-boot-jdk=$BOOT_JDK \
--enable-cds=yes || exit $?
else
JBR_BUNDLE=jbr_${bundle_type}
sh configure \
--disable-warnings-as-errors \
--with-debug-level=release \
--with-version-pre= \
--with-version-build=${JDK_BUILD_NUMBER} \
--with-version-opt=b${build_number} \
--with-import-modules=./modular-sdk \
--with-boot-jdk=$BOOT_JDK \
--enable-cds=yes || exit $?
fi
make images CONF=linux-x86_64-server-release || exit $?
JSDK=build/linux-x86_64-server-release/images/jdk
JBSDK=$JBRSDK_BASE_NAME-linux-x64-b$build_number
echo Fixing permissions
chmod -R a+r $JSDK
BASE_DIR=build/linux-x86_64-server-release/images
JBRSDK_BUNDLE=jbrsdk
rm -rf $BASE_DIR/$JBRSDK_BUNDLE
cp -r $JSDK $BASE_DIR/$JBRSDK_BUNDLE || exit $?
if [[ "$bundle_type" == *jcef* ]]; then
cp -R jcef_linux_x64/* $BASE_DIR/$JBRSDK_BUNDLE/lib || exit $?
fi
if [[ "$bundle_type" == "jfx_jcef" || -z "$bundle_type" ]]; then
echo Creating $JBSDK.tar.gz ...
tar -pcf $JBSDK.tar --exclude=*.debuginfo --exclude=demo --exclude=sample --exclude=man \
-C $BASE_DIR $JBRSDK_BUNDLE || exit $?
gzip $JBSDK.tar || exit $?
fi
create_jbr ${bundle_type}
if [[ "$bundle_type" == "jfx_jcef" || -z "$bundle_type" ]]; then
make test-image || exit $?
JBRSDK_TEST=$JBRSDK_BASE_NAME-linux-test-x64-b$build_number
echo Creating $JBSDK_TEST.tar.gz ...
tar -pcf $JBRSDK_TEST.tar -C $BASE_DIR --exclude='test/jdk/demos' test || exit $?
gzip $JBRSDK_TEST.tar || exit $?
fi

View File

@@ -1,72 +0,0 @@
#!/bin/bash -x
# The following parameters must be specified:
# JBSDK_VERSION - specifies the current version of OpenJDK e.g. 11_0_6
# JDK_BUILD_NUMBER - specifies the number of OpenJDK build or the value of --with-version-build argument to configure
# build_number - specifies the number of JetBrainsRuntime build
# bundle_type - specifies bundle to bu built; possible values:
# jcef - the bundles 1) jbr with jcef+javafx, 2) jbrsdk and 3) test will be created
# jfx - the bundle 1) jbr with javafx only will be created
#
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
#
# $ ./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)
#
JBSDK_VERSION=$1
JDK_BUILD_NUMBER=$2
build_number=$3
JBRSDK_BASE_NAME=jbrsdk-${JBSDK_VERSION}
sh configure \
--disable-warnings-as-errors \
--with-debug-level=fastdebug \
--with-version-build=$JDK_BUILD_NUMBER \
--with-version-pre= \
--with-version-opt=b$build_number \
--with-import-modules=./modular-sdk \
--enable-cds=yes || exit $?
make clean CONF=linux-x86_64-normal-server-fastdebug || exit $?
make images CONF=linux-x86_64-normal-server-fastdebug || exit $?
JBSDK=${JBRSDK_BASE_NAME}-linux-x64-fastdebug-b${build_number}
BASE_DIR=build/linux-x86_64-normal-server-fastdebug/images
JSDK=${BASE_DIR}/jdk
JBRSDK_BUNDLE=jbrsdk
echo Fixing permissions
chmod -R a+r $JSDK
rm -rf $BASE_DIR/$JBRSDK_BUNDLE
cp -r $JSDK $BASE_DIR/$JBRSDK_BUNDLE || exit $?
cp -R jcef_linux_x64/* $BASE_DIR/$JBRSDK_BUNDLE/lib || exit $?
echo Creating $JBSDK.tar.gz ...
tar -pcf $JBSDK.tar \
--exclude=*.debuginfo --exclude=demo --exclude=sample --exclude=man \
-C $BASE_DIR ${JBRSDK_BUNDLE} || exit $?
gzip $JBSDK.tar || exit $?
JBR_BUNDLE=jbr
JBR_BASE_NAME=jbr-$JBSDK_VERSION
rm -rf $BASE_DIR/$JBR_BUNDLE
JBR=$JBR_BASE_NAME-linux-x64-fastdebug-b$build_number
echo Running jlink....
${JSDK}/bin/jlink \
--module-path ${JSDK}/jmods --no-man-pages --compress=2 \
--add-modules $(xargs < modules.list | sed s/" "//g | sed s/,$//g) \
--output ${BASE_DIR}/${JBR_BUNDLE} || exit $?
cp -R jcef_linux_x64/* $BASE_DIR/$JBR_BUNDLE/lib || exit $?
echo Modifying release info ...
grep -v \"^JAVA_VERSION\" ${JSDK}/release | grep -v \"^MODULES\" >> ${BASE_DIR}/${JBR_BUNDLE}/release
echo Creating $JBR.tar.gz ...
tar -czf $JBR.tar -C $BASE_DIR ${JBR_BUNDLE} || exit $?
gzip $JBR.tar || exit $?

View File

@@ -1,73 +0,0 @@
#!/bin/bash -x
# The following parameters must be specified:
# JBSDK_VERSION - specifies the current version of OpenJDK e.g. 11_0_6
# JDK_BUILD_NUMBER - specifies the number of OpenJDK build or the value of --with-version-build argument to configure
# build_number - specifies the number of JetBrainsRuntime build
# bundle_type - specifies bundle to bu built; possible values:
# jcef - the bundles 1) jbr with jcef+javafx, 2) jbrsdk and 3) test will be created
# jfx - the bundle 1) jbr with javafx only will be created
#
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
#
# $ ./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)
#
JBSDK_VERSION=$1
JDK_BUILD_NUMBER=$2
build_number=$3
JBRSDK_BASE_NAME=jbrsdk-${JBSDK_VERSION}
linux32 bash configure \
--disable-warnings-as-errors \
--with-debug-level=release \
--with-version-build=$JDK_BUILD_NUMBER \
--with-version-pre= \
--with-version-opt=b$build_number \
--with-boot-jdk=/jbrsdk-11.0.5-b1 \
--enable-cds=yes || exit $?
make clean CONF=linux-x86-normal-server-release || exit $?
make images CONF=linux-x86-normal-server-release test-image || exit $?
JBSDK=${JBRSDK_BASE_NAME}-linux-x86-b${build_number}
BASE_DIR=build/linux-x86-normal-server-release/images
JSDK=${BASE_DIR}/jdk
JBRSDK_BUNDLE=jbrsdk
echo Fixing permissions
chmod -R a+r $JSDK
rm -rf $BASE_DIR/$JBRSDK_BUNDLE
cp -r $JSDK $BASE_DIR/$JBRSDK_BUNDLE || exit $?
echo Creating $JBSDK.tar.gz ...
tar -pcf $JBSDK.tar --exclude=*.debuginfo --exclude=demo --exclude=sample --exclude=man -C $BASE_DIR ${JBRSDK_BUNDLE} || exit $?
gzip $JBSDK.tar || exit $?
JBR_BUNDLE=jbr
JBR_BASE_NAME=jbr-$JBSDK_VERSION
rm -rf $BASE_DIR/$JBR_BUNDLE
JBR=$JBR_BASE_NAME-linux-x86-b$build_number
grep -v javafx modules.list | grep -v "jdk.internal.vm\|jdk.aot\|jcef" > modules.list.x86
echo Running jlink....
${JSDK}/bin/jlink \
--module-path ${JSDK}/jmods --no-man-pages --compress=2 \
--add-modules $(xargs < modules.list.x86 | sed s/" "//g | sed s/,$//g) --output ${BASE_DIR}/${JBR_BUNDLE} || exit $?
echo Modifying release info ...
grep -v \"^JAVA_VERSION\" ${JSDK}/release | grep -v \"^MODULES\" >> ${BASE_DIR}/${JBR_BUNDLE}/release
echo Creating $JBR.tar.gz ...
tar -pcf $JBR.tar -C $BASE_DIR $JBR_BUNDLE || exit $?
gzip $JBR.tar || exit $?
JBRSDK_TEST=$JBRSDK_BASE_NAME-linux-test-x86-b$build_number
echo Creating $JBRSDK_TEST.tar.gz ...
tar -pcf $JBRSDK_TEST.tar -C $BASE_DIR --exclude='test/jdk/demos' --exclude='test/hotspot/gtest' test || exit $?
gzip $JBRSDK_TEST.tar || exit $?

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,9 +0,0 @@
#!/bin/bash -x
JBSDK_VERSION=$1
JDK_BUILD_NUMBER=$2
build_number=$3
script_dir=jb/project/tools/mac/scripts
${script_dir}/mkimages.sh $JBSDK_VERSION $JDK_BUILD_NUMBER $build_number "jcef" || exit $?
${script_dir}/mkimages.sh $JBSDK_VERSION $JDK_BUILD_NUMBER $build_number "jfx" || exit $?
${script_dir}/mkimages.sh $JBSDK_VERSION $JDK_BUILD_NUMBER $build_number "jfx_jcef" || exit $?

View File

@@ -1,148 +0,0 @@
#!/bin/bash -x
# The following parameters must be specified:
# JBSDK_VERSION - specifies the current version of OpenJDK e.g. 11_0_6
# JDK_BUILD_NUMBER - specifies the number of OpenJDK build or the value of --with-version-build argument to configure
# build_number - specifies the number of JetBrainsRuntime build
# bundle_type - specifies bundle to bu built; possible values:
# jcef - the bundles 1) jbr with jcef+javafx, 2) jbrsdk and 3) test will be created
# jfx - the bundle 1) jbr with javafx only will be created
#
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
#
# $ ./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)
#
JBSDK_VERSION=$1
JDK_BUILD_NUMBER=$2
build_number=$3
bundle_type=$4
function create_jbr {
case "$1" in
"${bundle_type}_lw")
JBR_BASE_NAME=jbr_${bundle_type}_lw-${JBSDK_VERSION}
grep -v "jdk.compiler\|jdk.hotspot.agent" modules.list > modules_tmp.list
;;
"jfx" | "jcef")
JBR_BASE_NAME=jbr_${bundle_type}-${JBSDK_VERSION}
cat modules.list > modules_tmp.list
;;
"jfx_jcef")
JBR_BASE_NAME=jbr-${JBSDK_VERSION}
cat modules.list > modules_tmp.list
;;
*)
JBR_BASE_NAME=jbr-${JBSDK_VERSION}
cat modules.list > modules_tmp.list
;;
esac
rm -rf ${BASE_DIR}/${JBR_BUNDLE}
JRE_CONTENTS=${BASE_DIR}/${JBR_BUNDLE}/Contents
JRE_HOME=${JRE_CONTENTS}/Home
if [ -d "${JRE_CONTENTS}" ]; then
rm -rf ${JRE_CONTENTS}
fi
mkdir -p ${JRE_CONTENTS}
JBR=${JBR_BASE_NAME}-osx-x64-b${build_number}
${BASE_DIR}/$JBRSDK_BUNDLE/Contents/Home/bin/jlink \
--module-path ${BASE_DIR}/${JBRSDK_BUNDLE}/Contents/Home/jmods --no-man-pages --compress=2 \
--add-modules $(xargs < modules_tmp.list | sed s/" "//g) --output ${JRE_HOME} || exit $?
grep -v "^JAVA_VERSION" ${BASE_DIR}/${JBRSDK_BUNDLE}/Contents/Home/release | grep -v "^MODULES" >> ${JRE_HOME}/release
cp -R ${BASE_DIR}/${JBRSDK_BUNDLE}/Contents/MacOS ${JRE_CONTENTS}
cp ${BASE_DIR}/${JBRSDK_BUNDLE}/Contents/Info.plist ${JRE_CONTENTS}
if [[ "${bundle_type}" == *jcef* ]]; then
rm -rf ${JRE_CONTENTS}/Frameworks || exit $?
rm -rf ${JRE_CONTENTS}/Helpers || exit $?
cp -a jcef_mac/Frameworks ${JRE_CONTENTS} || exit $?
cp -a jcef_mac/Helpers ${JRE_CONTENTS} || exit $?
fi
echo Creating ${JBR}.tar.gz ...
if [ ! -z "$bundle_type" ]; then
rm -rf ${BASE_DIR}/jbr
cp -R ${BASE_DIR}/${JBR_BUNDLE} ${BASE_DIR}/jbr
fi
COPYFILE_DISABLE=1 tar -pczf ${JBR}.tar.gz --exclude='*.dSYM' --exclude='man' -C ${BASE_DIR} jbr || exit $?
rm -rf ${BASE_DIR}/${JBR_BUNDLE}
}
JBRSDK_BASE_NAME=jbrsdk-${JBSDK_VERSION}
#git checkout -- modules.list src
case "$bundle_type" in
"jfx")
git apply -p0 < jb/project/tools/exclude_jcef_module.patch
;;
"jcef")
git apply -p0 < jb/project/tools/exclude_jfx_module.patch
;;
esac
if [ -z "$bundle_type" ]; then
JBR_BUNDLE=jbr
sh configure \
--disable-warnings-as-errors \
--with-debug-level=release \
--with-version-pre= \
--with-version-build=${JDK_BUILD_NUMBER} \
--with-version-opt=b${build_number} \
--with-boot-jdk=`/usr/libexec/java_home -v $BOOT_JDK` \
--enable-cds=yes || exit $?
else
JBR_BUNDLE=jbr_${bundle_type}
sh configure \
--disable-warnings-as-errors \
--with-debug-level=release \
--with-version-pre= \
--with-version-build=${JDK_BUILD_NUMBER} \
--with-version-opt=b${build_number} \
--with-import-modules=./modular-sdk \
--with-boot-jdk=`/usr/libexec/java_home -v $BOOT_JDK` \
--enable-cds=yes || exit $?
fi
make images CONF=macosx-x86_64-server-release || exit $?
JSDK=build/macosx-x86_64-server-release/images/jdk-bundle
JBSDK=${JBRSDK_BASE_NAME}-osx-x64-b${build_number}
BASE_DIR=jre
JBRSDK_BUNDLE=jbrsdk
rm -rf $BASE_DIR
mkdir $BASE_DIR || exit $?
JBSDK_VERSION_WITH_DOTS=$(echo $JBSDK_VERSION | sed 's/_/\./g')
cp -a $JSDK/jdk-$JBSDK_VERSION_WITH_DOTS.jdk $BASE_DIR/$JBRSDK_BUNDLE || exit $?
if [[ "$bundle_type" == *jcef* ]]; then
cp -a jcef_mac/Frameworks $BASE_DIR/$JBRSDK_BUNDLE/Contents/ || exit $?
cp -a jcef_mac/Helpers $BASE_DIR/$JBRSDK_BUNDLE/Contents/ || exit $?
fi
if [[ "$bundle_type" == "jfx_jcef" || -z "$bundle_type" ]]; then
echo Creating $JBSDK.tar.gz ...
COPYFILE_DISABLE=1 tar -pczf $JBSDK.tar.gz -C $BASE_DIR \
--exclude='._*' --exclude='.DS_Store' --exclude='*~' \
--exclude='Home/demo' --exclude='Home/man' --exclude='Home/sample' \
$JBRSDK_BUNDLE || exit $?
fi
create_jbr "${bundle_type}" || exit $?
if [[ "$bundle_type" == "jfx_jcef" || -z "$bundle_type" ]]; then
make test-image || exit $?
JBRSDK_TEST=$JBRSDK_BASE_NAME-osx-test-x64-b$build_number
echo Creating $JBRSDK_TEST.tar.gz ...
COPYFILE_DISABLE=1 tar -pczf $JBRSDK_TEST.tar.gz -C build/macosx-x86_64-server-release/images \
--exclude='test/jdk/demos' test || exit $?
fi

View File

@@ -1,83 +0,0 @@
#!/bin/bash -x
# The following parameters must be specified:
# JBSDK_VERSION - specifies the current version of OpenJDK e.g. 11_0_6
# JDK_BUILD_NUMBER - specifies the number of OpenJDK build or the value of --with-version-build argument to configure
# build_number - specifies the number of JetBrainsRuntime build
# bundle_type - specifies bundle to bu built; possible values:
# jcef - the bundles 1) jbr with jcef+javafx, 2) jbrsdk and 3) test will be created
# jfx - the bundle 1) jbr with javafx only will be created
#
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
#
# $ ./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)
#
JBSDK_VERSION=$1
JDK_BUILD_NUMBER=$2
build_number=$3
JBRSDK_BASE_NAME=jbrsdk-${JBSDK_VERSION}
sh configure \
--disable-warnings-as-errors \
--with-debug-level=fastdebug \
--with-version-build=$JDK_BUILD_NUMBER \
--with-version-pre= \
--with-version-opt=b$build_number \
--with-import-modules=./modular-sdk \
--with-boot-jdk=`/usr/libexec/java_home -v 11` \
--enable-cds=yes || exit $?
make clean CONF=macosx-x86_64-normal-server-fastdebug || exit $?
make images CONF=macosx-x86_64-normal-server-fastdebug || exit $?
JSDK=build/macosx-x86_64-normal-server-fastdebug/images/jdk-bundle
JBSDK=${JBRSDK_BASE_NAME}-osx-x64-fastdebug-b${build_number}
BASE_DIR=jre
JBRSDK_BUNDLE=jbrsdk
rm -rf $BASE_DIR
mkdir $BASE_DIR || exit $?
JBSDK_VERSION_WITH_DOTS=$(echo $JBSDK_VERSION | sed 's/_/\./g')
cp -a $JSDK/jdk-$JBSDK_VERSION_WITH_DOTS.jdk $BASE_DIR/$JBRSDK_BUNDLE || exit $?
echo Creating $JBSDK.tar.gz ...
cp -a jcef_mac/Frameworks $BASE_DIR/$JBRSDK_BUNDLE/Contents/
cp -a jcef_mac/Helpers $BASE_DIR/$JBRSDK_BUNDLE/Contents
COPYFILE_DISABLE=1 \
tar -pczf ${JBSDK}.tar.gz -C ${BASE_DIR} \
--exclude='._*' --exclude='.DS_Store' --exclude='*~' \
--exclude='Home/demo' --exclude='Home/man' --exclude='Home/sample' \
${JBRSDK_BUNDLE} || exit $?
JBR_BUNDLE=jbr
JRE_CONTENTS=$BASE_DIR/$JBR_BUNDLE/Contents
JRE_HOME=$JRE_CONTENTS/Home
JBR_BASE_NAME=jbr-$JBSDK_VERSION
mkdir -p $JRE_CONTENTS
if [ -d "$JRE_HOME" ]; then
rm -rf $JRE_HOME
fi
JBR=${JBR_BASE_NAME}-osx-x64-fastdebug-b${build_number}
$BASE_DIR/$JBRSDK_BUNDLE/Contents/Home/bin/jlink \
--module-path $BASE_DIR/$JBRSDK_BUNDLE/Contents/Home/jmods --no-man-pages --compress=2 \
--add-modules $(xargs < modules.list | sed s/" "//g) --output $JRE_HOME || exit $?
grep -v "^JAVA_VERSION" $BASE_DIR/$JBRSDK_BUNDLE/Contents/Home/release | grep -v "^MODULES" >> $JRE_HOME/release
cp -R $BASE_DIR/$JBRSDK_BUNDLE/Contents/MacOS $JRE_CONTENTS
cp $BASE_DIR/$JBRSDK_BUNDLE/Contents/Info.plist $JRE_CONTENTS
cp -a jcef_mac/Frameworks ${JRE_CONTENTS} || exit $?
cp -a jcef_mac/Helpers ${JRE_CONTENTS} || exit $?
echo Creating $JBR.tar.gz ...
COPYFILE_DISABLE=1 tar -pczf $JBR.tar.gz --exclude='*.dSYM' --exclude='man' -C $BASE_DIR $JBR_BUNDLE || exit $?

View File

@@ -1,120 +0,0 @@
#!/bin/bash
APP_DIRECTORY=$1
APPL_USER=$2
APPL_PASSWORD=$3
APP_NAME=$4
BUNDLE_ID=$5
FAKE_ROOT="${6:-fake-root}"
if [[ -z "$APP_DIRECTORY" ]] || [[ -z "$APPL_USER" ]] || [[ -z "$APPL_PASSWORD" ]]; then
echo "Usage: $0 AppDirectory Username Password"
exit 1
fi
if [[ ! -d "$APP_DIRECTORY" ]]; then
echo "AppDirectory '$APP_DIRECTORY' does not exist or not a directory"
exit 1
fi
function log() {
echo "$(date '+[%H:%M:%S]') $*"
}
function publish-log() {
id=$1
file=$2
curl -T "$file" "$ARTIFACTORY_URL/$id" || true
}
function altool-upload() {
# Since altool uses same file for upload token we have to trick it into using different folders for token file location
# Also it copies zip into TMPDIR so we override it too, to simplify cleanup
OLD_HOME="$HOME"
export HOME="$FAKE_ROOT/home"
export TMPDIR="$FAKE_ROOT/tmp"
mkdir -p "$HOME"
mkdir -p "$TMPDIR"
export _JAVA_OPTIONS="-Duser.home=$HOME -Djava.io.tmpdir=$TMPDIR"
# Reduce amount of downloads, cache transporter libraries
shared_itmstransporter="$OLD_HOME/shared-itmstransporter"
if [[ -f "$shared_itmstransporter" ]]; then
cp -r "$shared_itmstransporter" "$HOME/.itmstransporter"
fi
# For some reason altool prints everything to stderr, not stdout
set +e
xcrun altool --notarize-app \
--username "$APPL_USER" --password "$APPL_PASSWORD" \
--primary-bundle-id "$BUNDLE_ID" \
--asc-provider JetBrainssro --file "$1" 2>&1 | tee "altool.init.out"
unset TMPDIR
export HOME="$OLD_HOME"
set -e
}
#immediately exit script with an error if a command fails
set -euo pipefail
file="$APP_NAME.zip"
log "Zipping $file..."
rm -rf "$file"
ditto -c -k --sequesterRsrc --keepParent "$APP_DIRECTORY/Contents" "$file"
log "Notarizing $file..."
rm -rf "altool.init.out" "altool.check.out"
altool-upload "$file"
rm -rf "$file"
notarization_info="$(grep -e "RequestUUID" "altool.init.out" | grep -oE '([0-9a-f-]{36})')"
if [ -z "$notarization_info" ]; then
log "Faile to read RequestUUID from altool.init.out"
exit 10
fi
PATH="$PATH:/usr/local/bin/"
log "Notarization request sent, awaiting response"
spent=0
while true; do
# For some reason altool prints everything to stderr, not stdout
xcrun altool --username "$APPL_USER" --notarization-info "$notarization_info" --password "$APPL_PASSWORD" >"altool.check.out" 2>&1 || true
status="$(grep -oe 'Status: .*' "altool.check.out" | cut -c 9- || true)"
log "Current status: $status"
if [ "$status" = "invalid" ]; then
log "Notarization failed"
ec=1
elif [ "$status" = "success" ]; then
log "Notarization succeeded"
ec=0
else
if [ "$status" != "in progress" ]; then
log "Unknown notarization status, waiting more, altool output:"
cat "altool.check.out"
fi
if [[ $spent -gt 60 ]]; then
log "Waiting time out (apx 60 minutes)"
ec=2
break
fi
sleep 60
((spent += 1))
continue
fi
developer_log="developer_log.json"
log "Fetching $developer_log"
# TODO: Replace cut with trim or something better
url="$(grep -oe 'LogFileURL: .*' "altool.check.out" | cut -c 13-)"
wget "$url" -O "$developer_log" && cat "$developer_log" || true
if [ $ec != 0 ]; then
log "Publishing $developer_log"
publish-log "$notarization_info" "$developer_log"
fi
break
done
cat "altool.check.out"
rm -rf "altool.init.out" "altool.check.out"
exit $ec

View File

@@ -1,93 +0,0 @@
#!/bin/bash
APP_DIRECTORY=$1
JB_CERT=$2
if [[ -z "$APP_DIRECTORY" ]] || [[ -z "$JB_CERT" ]]; then
echo "Usage: $0 AppDirectory CertificateID"
exit 1
fi
if [[ ! -d "$APP_DIRECTORY" ]]; then
echo "AppDirectory '$APP_DIRECTORY' does not exist or not a directory"
exit 1
fi
function log() {
echo "$(date '+[%H:%M:%S]') $*"
}
#immediately exit script with an error if a command fails
set -euo pipefail
# Cleanup files left from previous sign attempt (if any)
find "$APP_DIRECTORY" -name '*.cstemp' -exec rm '{}' \;
log "Signing libraries and executables..."
# -perm +111 searches for executables
for f in \
"Contents/Home/bin" \
"Contents/Home/lib"; do
if [ -d "$APP_DIRECTORY/$f" ]; then
find "$APP_DIRECTORY/$f" \
-type f \( -name "*.jnilib" -o -name "*.dylib" -o -name "*.so" -o -perm +111 \) \
-exec codesign --timestamp \
-v -s "$JB_CERT" --options=runtime \
--entitlements entitlements.xml {} \;
fi
done
log "Signing libraries in jars in $PWD"
# 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 "$APP_DIRECTORY" -name '*.jar' \
-exec sh -c "set -u; unzip -l \"\$0\" | grep -q -e '\.dylib\$' -e '\.jnilib\$' -e '\.so\$' -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 "jattach" \) \
-exec codesign --timestamp \
-v -s "$JB_CERT" --options=runtime \
--entitlements entitlements.xml {} \;
(cd jarfolder; zip -q -r -o ../jar.jar .)
mv jar.jar "$file"
done
rm -rf jarfolder jar.jar
log "Signing other files..."
for f in \
"Contents/MacOS"; do
if [ -d "$APP_DIRECTORY/$f" ]; then
find "$APP_DIRECTORY/$f" \
-type f \( -name "*.jnilib" -o -name "*.dylib" -o -name "*.so" -o -perm +111 \) \
-exec codesign --timestamp \
-v -s "$JB_CERT" --options=runtime \
--entitlements entitlements.xml {} \;
fi
done
#log "Signing executable..."
#codesign --timestamp \
# -v -s "$JB_CERT" --options=runtime \
# --force \
# --entitlements entitlements.xml "$APP_DIRECTORY/Contents/MacOS/idea"
log "Signing whole app..."
codesign --timestamp \
-v -s "$JB_CERT" --options=runtime \
--force \
--entitlements entitlements.xml "$APP_DIRECTORY"
log "Verifying java is not broken"
find "$APP_DIRECTORY" \
-type f -name 'java' -perm +111 -exec {} -version \;

View File

@@ -1,145 +0,0 @@
#!/bin/bash
#immediately exit script with an error if a command fails
set -euo pipefail
export COPY_EXTENDED_ATTRIBUTES_DISABLE=true
export COPYFILE_DISABLE=true
INPUT_FILE=$1
EXPLODED=$2.exploded
BACKUP_JMODS=$2.backup
USERNAME=$3
PASSWORD=$4
CODESIGN_STRING=$5
NOTARIZE=$6
BUNDLE_ID=$7
cd "$(dirname "$0")"
function log() {
echo "$(date '+[%H:%M:%S]') $*"
}
log "Deleting $EXPLODED ..."
if test -d "$EXPLODED"; then
find "$EXPLODED" -mindepth 1 -maxdepth 1 -exec chmod -R u+wx '{}' \;
fi
rm -rf "$EXPLODED"
mkdir "$EXPLODED"
rm -rf "$BACKUP_JMODS"
mkdir "$BACKUP_JMODS"
log "Unzipping $INPUT_FILE to $EXPLODED ..."
tar -xzvf "$INPUT_FILE" --directory $EXPLODED
rm "$INPUT_FILE"
BUILD_NAME="$(ls "$EXPLODED")"
if test -d $EXPLODED/$BUILD_NAME/Contents/Home/jmods; then
mv $EXPLODED/$BUILD_NAME/Contents/Home/jmods $BACKUP_JMODS
fi
if test -d $EXPLODED/$BUILD_NAME/Contents/Home/Frameworks; then
mv $EXPLODED/$BUILD_NAME/Contents/Home/Frameworks $BACKUP_JMODS
fi
if test -f $EXPLODED/$BUILD_NAME/Contents/MacOS/libjli.dylib; then
mv $EXPLODED/$BUILD_NAME/Contents/MacOS/libjli.dylib $BACKUP_JMODS
fi
#log "$INPUT_FILE unzipped and removed"
log "$INPUT_FILE extracted and removed"
APPLICATION_PATH="$EXPLODED/$BUILD_NAME"
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
log "Unlocking keychain..."
# Make sure *.p12 is imported into local KeyChain
security unlock-keychain -p "$PASSWORD" "/Users/$USERNAME/Library/Keychains/login.keychain"
attempt=1
limit=3
set +e
while [[ $attempt -le $limit ]]; do
log "Signing (attempt $attempt) $APPLICATION_PATH ..."
./sign.sh "$APPLICATION_PATH" "$CODESIGN_STRING"
ec=$?
if [[ $ec -ne 0 ]]; then
((attempt += 1))
if [ $attempt -eq $limit ]; then
set -e
fi
log "Signing failed, wait for 30 sec and try to sign again"
sleep 30
else
log "Signing done"
codesign -v "$APPLICATION_PATH" -vvvvv
log "Check sign done"
((attempt += limit))
fi
done
set -e
if [ "$NOTARIZE" = "yes" ]; then
log "Notarizing..."
# shellcheck disable=SC1090
source "$HOME/.notarize_token"
APP_NAME=$(echo ${INPUT_FILE} | awk -F"." '{ print $1 }')
# Since notarization tool uses same file for upload token we have to trick it into using different folders, hence fake root
# Also it leaves copy of zip file in TMPDIR, so notarize.sh overrides it and uses FAKE_ROOT as location for temp TMPDIR
FAKE_ROOT="$(pwd)/fake-root"
mkdir -p "$FAKE_ROOT"
echo "Notarization will use fake root: $FAKE_ROOT"
./notarize.sh "$APPLICATION_PATH" "$APPLE_USERNAME" "$APPLE_PASSWORD" "$APP_NAME" "$BUNDLE_ID" "$FAKE_ROOT"
rm -rf "$FAKE_ROOT"
set +e
log "Stapling..."
xcrun stapler staple "$APPLICATION_PATH"
else
log "Notarization disabled"
log "Stapling disabled"
fi
log "Zipping $BUILD_NAME to $INPUT_FILE ..."
(
#cd "$EXPLODED"
#ditto -c -k --sequesterRsrc --keepParent "$BUILD_NAME" "../$INPUT_FILE"
if test ! -z $(ls $BACKUP_JMODS/libjli.dylib); then
mv $BACKUP_JMODS/libjli.dylib $EXPLODED/$BUILD_NAME/Contents/MacOS
fi
if test -d $BACKUP_JMODS/jmods; then
mv $BACKUP_JMODS/jmods $EXPLODED/$BUILD_NAME/Contents/Home
fi
if test -d $BACKUP_JMODS/Frameworks; then
mv $BACKUP_JMODS/Frameworks $EXPLODED/$BUILD_NAME/Contents/Home
fi
COPYFILE_DISABLE=1 tar -pczf $INPUT_FILE --exclude='*.dSYM' --exclude='man' -C $EXPLODED $BUILD_NAME
log "Finished zipping"
)
rm -rf "$EXPLODED"
log "Done"

View File

@@ -1,9 +0,0 @@
#!/bin/bash -x
JBSDK_VERSION=$1
JDK_BUILD_NUMBER=$2
build_number=$3
script_dir=jb/project/tools/windows/scripts
${script_dir}/mkimages_x64.sh $JBSDK_VERSION $JDK_BUILD_NUMBER $build_number "jcef" || exit $?
${script_dir}/mkimages_x64.sh $JBSDK_VERSION $JDK_BUILD_NUMBER $build_number "jfx" || exit $?
${script_dir}/mkimages_x64.sh $JBSDK_VERSION $JDK_BUILD_NUMBER $build_number "jfx_jcef" || exit $?

View File

@@ -1,119 +0,0 @@
#!/bin/bash -x
# The following parameters must be specified:
# JBSDK_VERSION - specifies the current version of OpenJDK e.g. 11_0_6
# JDK_BUILD_NUMBER - specifies the number of OpenJDK build or the value of --with-version-build argument to configure
# build_number - specifies the number of JetBrainsRuntime build
# bundle_type - specifies bundle to bu built; possible values:
# jcef - the bundles 1) jbr with jcef+javafx, 2) jbrsdk and 3) test will be created
# jfx - the bundle 1) jbr with javafx only will be created
#
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
#
# $ ./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)
#
JBSDK_VERSION=$1
JDK_BUILD_NUMBER=$2
build_number=$3
bundle_type=$4
function create_jbr {
case "$1" in
"${bundle_type}_lw")
grep -v "jdk.compiler\|jdk.hotspot.agent" modules.list > modules_tmp.list
;;
"jfx" | "jcef" | "jfx_jcef")
cat modules.list > modules_tmp.list
;;
*)
cat modules.list > modules_tmp.list
;;
esac
rm -rf ${JBR_BUNDLE}
${JSDK}/bin/jlink \
--module-path ${JSDK}/jmods --no-man-pages --compress=2 \
--add-modules $(xargs < modules_tmp.list | sed s/" "//g) --output ${JBR_BUNDLE} || exit $?
if [[ "${bundle_type}" == *jcef* ]]
then
cp -R jcef_win_x64/* ${JBR_BUNDLE}/bin
fi
echo Modifying release info ...
grep -v \"^JAVA_VERSION\" ${JSDK}/release | grep -v \"^MODULES\" >> ${JBR_BUNDLE}/release
}
JBRSDK_BASE_NAME=jbrsdk-${JBSDK_VERSION}
WORK_DIR=$(pwd)
#git checkout -- modules.list src
case "$bundle_type" in
"jfx")
echo "Excluding jcef modules"
git apply -p0 < jb/project/tools/exclude_jcef_module.patch
;;
"jcef")
echo "Excluding jfx modules"
git apply -p0 < jb/project/tools/exclude_jfx_module.patch
;;
esac
PATH="/usr/local/bin:/usr/bin:${PATH}"
if [ -z "$bundle_type" ]; then
bash ./configure \
--disable-warnings-as-errors \
--with-target-bits=64 \
--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} \
--disable-ccache \
--enable-cds=yes || exit 1
else
bash ./configure \
--disable-warnings-as-errors \
--with-target-bits=64 \
--with-version-pre= \
--with-version-build=${JDK_BUILD_NUMBER} \
--with-version-opt=b${build_number} \
--with-import-modules=${WORK_DIR}/modular-sdk \
--with-toolchain-version=${TOOLCHAIN_VERSION} \
--with-boot-jdk=${BOOT_JDK} \
--disable-ccache \
--enable-cds=yes || exit 1
fi
if [[ "$bundle_type" == "jfx_jcef" || -z "$bundle_type" ]]; then
make LOG=info images CONF=windows-x86_64-server-release test-image || exit 1
else
make LOG=info images CONF=windows-x86_64-server-release || exit 1
fi
JSDK=build/windows-x86_64-server-release/images/jdk
if [[ "$bundle_type" == "*jcef*" || -z "$bundle_type" ]]; then
JBSDK=${JBRSDK_BASE_NAME}-windows-x64-b${build_number}
fi
BASE_DIR=build/windows-x86_64-server-release/images
JBRSDK_BUNDLE=jbrsdk
rm -rf ${BASE_DIR}/${JBRSDK_BUNDLE} && rsync -a --exclude demo --exclude sample ${JSDK}/ ${JBRSDK_BUNDLE} || exit 1
if [[ "$bundle_type" == "*jcef*" ]]; then
cp -R jcef_win_x64/* ${JBRSDK_BUNDLE}/bin
fi
if [ -z "$bundle_type" ]; then
JBR_BUNDLE=jbr
else
JBR_BUNDLE=jbr_${bundle_type}
fi
create_jbr ${bundle_type}
#JBR_BUNDLE=jbr_${bundle_type}_lw
#create_jbr ${bundle_type}_lw

View File

@@ -1,57 +0,0 @@
#!/bin/bash -x
# The following parameters must be specified:
# JBSDK_VERSION - specifies the current version of OpenJDK e.g. 11_0_6
# JDK_BUILD_NUMBER - specifies the number of OpenJDK build or the value of --with-version-build argument to configure
# build_number - specifies the number of JetBrainsRuntime build
# bundle_type - specifies bundle to bu built; possible values:
# jcef - the bundles 1) jbr with jcef+javafx, 2) jbrsdk and 3) test will be created
# jfx - the bundle 1) jbr with javafx only will be created
#
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
#
# $ ./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)
#
JBSDK_VERSION=$1
JDK_BUILD_NUMBER=$2
build_number=$3
JBRSDK_BASE_NAME=jbrsdk-${JBSDK_VERSION}
WORK_DIR=$(pwd)
PATH="/usr/local/bin:/usr/bin:${PATH}"
./configure \
--disable-warnings-as-errors \
--disable-debug-symbols \
--with-target-bits=32 \
--with-version-pre= \
--with-version-build=${JDK_BUILD_NUMBER} \
--with-version-opt=b${build_number} \
--with-toolchain-version=2015 \
--with-boot-jdk=${BOOT_JDK} \
--disable-ccache \
--enable-cds=yes || exit 1
make clean CONF=windows-x86-normal-server-release || exit 1
make LOG=info images CONF=windows-x86-normal-server-release test-image || exit 1
JBSDK=${JBRSDK_BASE_NAME}-windows-x86-b${build_number}
BASE_DIR=build/windows-x86-normal-server-release/images
JSDK=${BASE_DIR}/jdk
JBRSDK_BUNDLE=jbrsdk
rm -rf ${BASE_DIR}/${JBRSDK_BUNDLE} && rsync -a --exclude demo --exclude sample ${JSDK}/ ${JBRSDK_BUNDLE} || exit 1
JBR_BUNDLE=jbr
rm -rf ${JBR_BUNDLE}
grep -v javafx modules.list | grep -v "jdk.internal.vm\|jdk.aot\|jcef" > modules.list.x86
${JSDK}/bin/jlink \
--module-path ${JSDK}/jmods --no-man-pages --compress=2 \
--add-modules $(xargs < modules.list.x86 | sed s/" "//g) --output ${JBR_BUNDLE} || exit $?
echo Modifying release info ...
grep -v \"^JAVA_VERSION\" ${JSDK}/release | grep -v \"^MODULES\" >> ${JBR_BUNDLE}/release

View File

@@ -1,79 +0,0 @@
#!/bin/bash -x
# The following parameters must be specified:
# JBSDK_VERSION - specifies the current version of OpenJDK e.g. 11_0_6
# JDK_BUILD_NUMBER - specifies the number of OpenJDK build or the value of --with-version-build argument to configure
# build_number - specifies the number of JetBrainsRuntime build
# bundle_type - specifies bundle to bu built; possible values:
# jcef - the bundles 1) jbr with jcef+javafx, 2) jbrsdk and 3) test will be created
# jfx - the bundle 1) jbr with javafx only will be created
#
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
#
# $ ./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)
#
JBSDK_VERSION=$1
JDK_BUILD_NUMBER=$2
build_number=$3
bundle_type=$4
function pack_jbr {
case "$1" in
"${bundle_type}_lw")
JBR_BASE_NAME=jbr_${bundle_type}_lw-${JBSDK_VERSION}
;;
"jfx" | "jcef")
JBR_BASE_NAME=jbr_${bundle_type}-${JBSDK_VERSION}
;;
"jfx_jcef" | "")
JBR_BASE_NAME=jbr-${JBSDK_VERSION}
;;
*)
echo "***ERR*** bundle was not specified" && exit 1
;;
esac
JBR=$JBR_BASE_NAME-windows-x64-b$build_number
echo Creating $JBR.tar.gz ...
if [ ! -z "$bundle_type" ]; then
rm -rf ${BASE_DIR}/jbr
cp -R ${BASE_DIR}/${JBR_BUNDLE} ${BASE_DIR}/jbr
fi
/usr/bin/tar -czf $JBR.tar.gz -C $BASE_DIR jbr || exit 1
#rm -rf ${BASE_DIR}/${JBR_BUNDLE}
}
JBRSDK_BASE_NAME=jbrsdk-$JBSDK_VERSION
JBR_BASE_NAME=jbr-$JBSDK_VERSION
IMAGES_DIR=build/windows-x86_64-server-release/images
JSDK=$IMAGES_DIR/jdk
JBSDK=$JBRSDK_BASE_NAME-windows-x64-b$build_number
BASE_DIR=.
if [ -z "$bundle_type" ]; then
JBR_BUNDLE=jbr
else
JBR_BUNDLE=jbr_${bundle_type}
fi
if [[ "$bundle_type" == "jfx_jcef" || -z "$bundle_type" ]]; then
JBRSDK_BUNDLE=jbrsdk
echo Creating $JBSDK.tar.gz ...
/usr/bin/tar -czf $JBSDK.tar.gz $JBRSDK_BUNDLE || exit 1
fi
JBR_BUNDLE=jbr_${bundle_type}
pack_jbr $bundle_type
if [[ "$bundle_type" == "jfx_jcef" || -z "$bundle_type" ]]; then
JBRSDK_TEST=$JBRSDK_BASE_NAME-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 || exit 1
fi

View File

@@ -1,45 +0,0 @@
#!/bin/bash -x
# The following parameters must be specified:
# JBSDK_VERSION - specifies the current version of OpenJDK e.g. 11_0_6
# JDK_BUILD_NUMBER - specifies the number of OpenJDK build or the value of --with-version-build argument to configure
# build_number - specifies the number of JetBrainsRuntime build
# bundle_type - specifies bundle to bu built; possible values:
# jcef - the bundles 1) jbr with jcef+javafx, 2) jbrsdk and 3) test will be created
# jfx - the bundle 1) jbr with javafx only will be created
#
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
#
# $ ./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)
#
JBSDK_VERSION=$1
JDK_BUILD_NUMBER=$2
build_number=$3
JBRSDK_BASE_NAME=jbrsdk-$JBSDK_VERSION
JBR_BASE_NAME=jbr-$JBSDK_VERSION
IMAGES_DIR=build/windows-x86-normal-server-release/images
JSDK=$IMAGES_DIR/jdk
JBSDK=$JBRSDK_BASE_NAME-windows-x86-b$build_number
BASE_DIR=.
JBRSDK_BUNDLE=jbrsdk
echo Creating $JBSDK.tar.gz ...
/usr/bin/tar -czf $JBSDK.tar.gz $JBRSDK_BUNDLE || exit 1
JBR_BUNDLE=jbr
JBR_BASE_NAME=jbr-${JBSDK_VERSION}
JBR=$JBR_BASE_NAME-windows-x86-b$build_number
echo Creating $JBR.tar.gz ...
/usr/bin/tar -czf $JBR.tar.gz -C $BASE_DIR ${JBR_BUNDLE} || exit 1
JBRSDK_TEST=$JBRSDK_BASE_NAME-windows-test-x86-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 || exit 1

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -45,11 +45,6 @@ $(OUTPUTDIR)/compile_commands.json: $(wildcard $(MAKESUPPORT_OUTPUTDIR)/compile-
$(RM) $@
$(FIND) $(MAKESUPPORT_OUTPUTDIR)/compile-commands/ -name \*.json | \
$(SORT) | $(XARGS) $(CAT) >> $@.tmp
$(if $(FIXPATH),$(FIXPATH) $(AWK) 'BEGIN { \
tmpfile = substr(ARGV[2],2); \
cmd = "$(CP) " "\047" tmpfile "\047" " $@.tmp"; \
system(cmd); \
}' -- @$@.tmp)
$(SED) -e '1s/^/[\$(NEWLINE)/' -e '$(DOLLAR)s/,\s\{0,\}$(DOLLAR)/\$(NEWLINE)]/' $@.tmp > $@
$(RM) $@.tmp

View File

@@ -74,7 +74,7 @@ define SetupInterimModule
EXCLUDE_FILES := $(TOPDIR)/src/$1/share/classes/module-info.java \
Standard.java, \
EXTRA_FILES := $(BUILDTOOLS_OUTPUTDIR)/gensrc/$1.interim/module-info.java, \
COPY := .gif .png .xml .css .js .txt javax.tools.JavaCompilerTool, \
COPY := .gif .png .xml .css .js .js.template .txt javax.tools.JavaCompilerTool, \
BIN := $(BUILDTOOLS_OUTPUTDIR)/interim_langtools_modules/$1.interim, \
DISABLED_WARNINGS := module options, \
JAVAC_FLAGS := \

View File

@@ -76,7 +76,6 @@ java.datatransfer_COPY += flavormap.properties
################################################################################
java.desktop_DISABLED_WARNINGS += missing-explicit-ctor
java.desktop_DOCLINT += -Xdoclint:all/protected,-reference \
'-Xdoclint/package:java.*,javax.*'
java.desktop_COPY += .gif .png .wav .txt .xml .css .pf
@@ -184,10 +183,6 @@ ifeq ($(call isTargetOs, windows), true)
java.desktop_EXCLUDES += com/sun/java/swing/plaf/gtk
endif
ifdef BUILD_HEADLESS_ONLY
java.desktop_EXCLUDES += sun/applet
endif
ifeq ($(call isTargetOs, windows macosx), false)
java.desktop_EXCLUDE_FILES += sun/awt/AWTCharset.java
endif
@@ -299,10 +294,6 @@ java.xml.crypto_CLEAN += .properties
################################################################################
jdk.accessibility_DISABLED_WARNINGS += missing-explicit-ctor
################################################################################
jdk.charsets_COPY += .dat
################################################################################
@@ -348,7 +339,7 @@ jdk.dynalink_CLEAN += .properties
################################################################################
jdk.javadoc_COPY += .xml .css .js .png .txt
jdk.javadoc_COPY += .xml .css .js .js.template .png .txt
################################################################################
@@ -389,11 +380,11 @@ endif
################################################################################
jdk.incubator.jpackage_COPY += .gif .png .txt .spec .script .prerm .preinst \
jdk.jpackage_COPY += .gif .png .txt .spec .script .prerm .preinst \
.postrm .postinst .list .sh .desktop .copyright .control .plist .template \
.icns .scpt .wxs .wxl .wxi .ico .bmp .tiff
jdk.incubator.jpackage_CLEAN += .properties
jdk.jpackage_CLEAN += .properties
################################################################################

View File

@@ -57,14 +57,11 @@ $(eval $(call IncludeCustomExtension, Docs.gmk))
################################################################################
# Javadoc settings
# Include configuration for URLs in generated javadoc
include $(TOPDIR)/make/conf/javadoc.conf
MODULES_SOURCE_PATH := $(call PathList, $(call GetModuleSrcPath) )
# URLs
JAVADOC_BASE_URL := https://docs.oracle.com/pls/topic/lookup?ctx=javase$(VERSION_NUMBER)&amp;id=homepage
BUG_SUBMIT_URL := https://bugreport.java.com/bugreport/
COPYRIGHT_URL := legal/copyright.html
LICENSE_URL := https://www.oracle.com/java/javase/terms/license/java$(VERSION_NUMBER)speclicense.html
REDISTRIBUTION_URL := https://www.oracle.com/technetwork/java/redist-137594.html
# In order to get a specific ordering it's necessary to specify the total
# ordering of tags as the tags are otherwise ordered in order of definition.

View File

@@ -61,7 +61,7 @@ endif
# Save the stderr output of the command and print it along with stdout in case
# something goes wrong.
$(CLASSLIST_FILE): $(INTERIM_IMAGE_DIR)/bin/java$(EXE_SUFFIX) $(CLASSLIST_JAR)
$(CLASSLIST_FILE): $(INTERIM_IMAGE_DIR)/bin/java$(EXECUTABLE_SUFFIX) $(CLASSLIST_JAR)
$(call MakeDir, $(LINK_OPT_DIR))
$(call LogInfo, Generating $(patsubst $(OUTPUTDIR)/%, %, $@))
$(call LogInfo, Generating $(patsubst $(OUTPUTDIR)/%, %, $(JLI_TRACE_FILE)))
@@ -94,7 +94,7 @@ $(CLASSLIST_FILE): $(INTERIM_IMAGE_DIR)/bin/java$(EXE_SUFFIX) $(CLASSLIST_JAR)
# dependencies, make will correctly rebuild both jli trace and classlist
# incrementally using the single recipe above.
$(CLASSLIST_FILE): $(JLI_TRACE_FILE)
$(JLI_TRACE_FILE): $(INTERIM_IMAGE_DIR)/bin/java$(EXE_SUFFIX) $(CLASSLIST_JAR)
$(JLI_TRACE_FILE): $(INTERIM_IMAGE_DIR)/bin/java$(EXECUTABLE_SUFFIX) $(CLASSLIST_JAR)
TARGETS += $(CLASSLIST_FILE) $(JLI_TRACE_FILE)

View File

@@ -44,7 +44,7 @@ ALL_MODULES := $(call FindAllModules)
$(eval $(call ReadImportMetaData))
JRE_MODULES += $(filter $(ALL_MODULES), $(BOOT_MODULES) \
$(PLATFORM_MODULES) $(JRE_TOOL_MODULES))
$(PLATFORM_MODULES) jdk.jdwp.agent)
JDK_MODULES += $(ALL_MODULES)
JRE_MODULES_LIST := $(call CommaList, $(JRE_MODULES))

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2016, 2020, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,7 @@ include Modules.gmk
################################################################################
# Use this file inside the image as target for make rule
JIMAGE_TARGET_FILE := bin/java$(EXE_SUFFIX)
JIMAGE_TARGET_FILE := bin/java$(EXECUTABLE_SUFFIX)
INTERIM_MODULES_LIST := $(call CommaList, $(INTERIM_IMAGE_MODULES))

View File

@@ -60,19 +60,14 @@ define SetTestOpt
endif
endef
# Setup _NT_SYMBOL_PATH on Windows
# Setup _NT_SYMBOL_PATH on Windows, which points to our pdb files.
ifeq ($(call isTargetOs, windows), true)
ifndef _NT_SYMBOL_PATH
# Can't use PathList here as it adds quotes around the value.
_NT_SYMBOL_PATH := \
$(subst $(SPACE),;,$(strip \
$(foreach p, $(sort $(dir $(wildcard \
$(addprefix $(SYMBOLS_IMAGE_DIR)/bin/, *.pdb */*.pdb)))), \
$(call FixPath, $p) \
) \
))
export _NT_SYMBOL_PATH
$(call LogDebug, Rewriting _NT_SYMBOL_PATH to $(_NT_SYMBOL_PATH))
SYMBOL_PATH := $(call PathList, $(sort $(patsubst %/, %, $(dir $(wildcard \
$(addprefix $(SYMBOLS_IMAGE_DIR)/bin/, *.pdb */*.pdb))))))
export _NT_SYMBOL_PATH := $(subst \\,\, $(call FixPath, \
$(subst $(DQUOTE),, $(SYMBOL_PATH))))
$(call LogDebug, Setting _NT_SYMBOL_PATH to $(_NT_SYMBOL_PATH))
endif
endif
@@ -613,6 +608,7 @@ define SetupRunGtestTestBody
$$(FIXPATH) $$(TEST_IMAGE_DIR)/hotspot/gtest/$$($1_VARIANT)/gtestLauncher \
-jdk $(JDK_UNDER_TEST) $$($1_GTEST_FILTER) \
--gtest_output=xml:$$($1_TEST_RESULTS_DIR)/gtest.xml \
--gtest_catch_exceptions=0 \
$$($1_GTEST_REPEAT) $$(GTEST_OPTIONS) $$(GTEST_VM_OPTIONS) \
$$(GTEST_JAVA_OPTIONS) $$($1_AOT_OPTIONS) \
> >($(TEE) $$($1_TEST_RESULTS_DIR)/gtest.txt) \

View File

@@ -189,15 +189,9 @@ ifeq ($(OPENJDK_TARGET_CPU), x86_64)
endif
ifeq ($(OPENJDK_TARGET_OS), windows)
ifeq ($(wildcard $(TEST_IMAGE_DIR)/bin/fixpath.exe), )
$(info Error: fixpath is missing from test image '$(TEST_IMAGE_DIR)')
$(error Cannot continue.)
endif
FIXPATH := $(TEST_IMAGE_DIR)/bin/fixpath.exe -c
PATH_SEP:=;
FIXPATH := $(BASH) $(TOPDIR)/make/scripts/fixpath.sh exec
else
FIXPATH :=
PATH_SEP:=:
endif
# Check number of cores and memory in MB
@@ -280,7 +274,6 @@ $(call CreateNewSpec, $(NEW_SPEC), \
BASH := $(BASH), \
JIB_JAR := $(JIB_JAR), \
FIXPATH := $(FIXPATH), \
PATH_SEP := $(PATH_SEP), \
OPENJDK_TARGET_OS := $(OPENJDK_TARGET_OS), \
OPENJDK_TARGET_OS_TYPE := $(OPENJDK_TARGET_OS_TYPE), \
OPENJDK_TARGET_OS_ENV := $(OPENJDK_TARGET_OS_ENV), \

View File

@@ -116,16 +116,13 @@ JAVAC_CMD := $(BOOT_JDK)/bin/javac
JAR_CMD := $(BOOT_JDK)/bin/jar
JLINK_CMD := $(JDK_OUTPUTDIR)/bin/jlink
JMOD_CMD := $(JDK_OUTPUTDIR)/bin/jmod
JARSIGNER_CMD := $(BOOT_JDK)/bin/jarsigner
JAVA := $(FIXPATH) $(JAVA_CMD) $(JAVA_FLAGS_BIG) $(JAVA_FLAGS)
JAVA_SMALL := $(FIXPATH) $(JAVA_CMD) $(JAVA_FLAGS_SMALL) $(JAVA_FLAGS)
JAVA_DETACH := $(FIXPATH) $(FIXPATH_DETACH_FLAG) $(JAVA_CMD) $(JAVA_FLAGS_BIG) $(JAVA_FLAGS)
JAVAC := $(FIXPATH) $(JAVAC_CMD)
JAR := $(FIXPATH) $(JAR_CMD)
JLINK := $(FIXPATH) $(JLINK_CMD)
JMOD := $(FIXPATH) $(JMOD_CMD)
JARSIGNER := $(FIXPATH) $(JARSIGNER_CMD)
BUILD_JAVA := $(JDK_IMAGE_DIR)/bin/JAVA
################################################################################
@@ -153,7 +150,6 @@ LN := ln
MIG := mig
MKDIR := mkdir
MV := mv
NAWK := nawk
NICE := nice
PATCH := patch
PRINTF := printf
@@ -167,7 +163,6 @@ TAIL := tail
TEE := tee
TR := tr
TOUCH := touch
UNIQ := uniq
WC := wc
XARGS := xargs
ZIPEXE := zip
@@ -178,7 +173,7 @@ HG := hg
ULIMIT := ulimit
ifeq ($(OPENJDK_BUILD_OS), windows)
CYGPATH := cygpath
PATHTOOL := cygpath
endif
################################################################################

View File

@@ -30,34 +30,25 @@ include MakeBase.gmk
############################################################################
ifeq ($(call isTargetOs, windows), true)
FIXPATH_COPY := $(TEST_IMAGE_DIR)/bin/fixpath.exe
$(FIXPATH_COPY): $(firstword $(FIXPATH))
$(call install-file)
FIXPATH_WORKSPACE_ROOT := $(call FixPath, $(WORKSPACE_ROOT))
FIXPATH_OUTPUTDIR := $(call FixPath, $(OUTPUTDIR))
else
FIXPATH_WORKSPACE_ROOT := $(WORKSPACE_ROOT)
FIXPATH_OUTPUTDIR := $(OUTPUTDIR)
endif
BUILD_INFO_PROPERTIES := $(TEST_IMAGE_DIR)/build-info.properties
$(BUILD_INFO_PROPERTIES):
$(call MakeTargetDir)
$(ECHO) "# Build info properties for JDK tests" > $@
$(ECHO) "build.workspace.root=$(FIXPATH_WORKSPACE_ROOT)" >> $@
$(ECHO) "build.output.root=$(FIXPATH_OUTPUTDIR)" >> $@
$(ECHO) "build.workspace.root=$(call FixPath, $(WORKSPACE_ROOT))" >> $@
$(ECHO) "build.output.root=$(call FixPath, $(OUTPUTDIR))" >> $@
prepare-test-image: $(FIXPATH_COPY) $(BUILD_INFO_PROPERTIES)
$(call MakeDir, $(TEST_IMAGE_DIR))
$(ECHO) > $(TEST_IMAGE_DIR)/Readme.txt 'JDK test image'
README := $(TEST_IMAGE_DIR)/Readme.txt
$(README):
$(call MakeTargetDir)
$(ECHO) > $@ 'JDK test image'
TARGETS += $(BUILD_INFO_PROPERTIES) $(README)
################################################################################
prepare-test-image: $(TARGETS)
all: prepare-test-image
.PHONY: default all prepare-test-image

View File

@@ -70,27 +70,18 @@ AC_DEFUN_ONCE([BASIC_SETUP_PATHS],
fi
if test "x$OPENJDK_TARGET_OS" = "xwindows"; then
PATH_SEP=";"
EXE_SUFFIX=".exe"
BASIC_CHECK_PATHS_WINDOWS
else
PATH_SEP=":"
EXE_SUFFIX=""
BASIC_SETUP_PATHS_WINDOWS
fi
AC_SUBST(PATH_SEP)
AC_SUBST(EXE_SUFFIX)
# We get the top-level directory from the supporting wrappers.
BASIC_WINDOWS_VERIFY_DIR($TOPDIR, source)
UTIL_FIXUP_PATH(TOPDIR)
AC_MSG_CHECKING([for top-level directory])
AC_MSG_RESULT([$TOPDIR])
AC_SUBST(TOPDIR)
AC_SUBST(CONFIGURE_START_DIR)
# We can only call UTIL_FIXUP_PATH after BASIC_CHECK_PATHS_WINDOWS.
UTIL_FIXUP_PATH(TOPDIR)
UTIL_FIXUP_PATH(CONFIGURE_START_DIR)
if test "x$CUSTOM_ROOT" != x; then
BASIC_WINDOWS_VERIFY_DIR($CUSTOM_ROOT, custom root)
UTIL_FIXUP_PATH(CUSTOM_ROOT)
WORKSPACE_ROOT="${CUSTOM_ROOT}"
else
@@ -98,6 +89,9 @@ AC_DEFUN_ONCE([BASIC_SETUP_PATHS],
fi
AC_SUBST(WORKSPACE_ROOT)
UTIL_FIXUP_PATH(CONFIGURE_START_DIR)
AC_SUBST(CONFIGURE_START_DIR)
# Locate the directory of this script.
AUTOCONF_DIR=$TOPDIR/make/autoconf
@@ -234,9 +228,12 @@ AC_DEFUN_ONCE([BASIC_SETUP_DEVKIT],
# if no Xcode installed, xcodebuild exits with 1
# if Xcode is installed, even if xcode-select is misconfigured, then it exits with 0
if test "x$DEVKIT_ROOT" != x || /usr/bin/xcodebuild -version >/dev/null 2>&1; then
# We need to use xcodebuild in the toolchain dir provided by the user, this will
# fall back on the stub binary in /usr/bin/xcodebuild
AC_PATH_PROG([XCODEBUILD], [xcodebuild], [/usr/bin/xcodebuild], [$TOOLCHAIN_PATH])
# We need to use xcodebuild in the toolchain dir provided by the user
UTIL_LOOKUP_PROGS(XCODEBUILD, xcodebuild, $TOOLCHAIN_PATH)
if test x$XCODEBUILD = x; then
# fall back on the stub binary in /usr/bin/xcodebuild
XCODEBUILD=/usr/bin/xcodebuild
fi
else
# this should result in SYSROOT being empty, unless --with-sysroot is provided
# when only the command line tools are installed there are no SDKs, so headers
@@ -306,6 +303,7 @@ AC_DEFUN_ONCE([BASIC_SETUP_DEVKIT],
AC_MSG_RESULT([$SYSROOT])
AC_MSG_CHECKING([for toolchain path])
AC_MSG_RESULT([$TOOLCHAIN_PATH])
AC_SUBST(TOOLCHAIN_PATH)
AC_MSG_CHECKING([for extra path])
AC_MSG_RESULT([$EXTRA_PATH])
])
@@ -380,6 +378,7 @@ AC_DEFUN_ONCE([BASIC_SETUP_OUTPUT_DIR],
AC_MSG_CHECKING([what configuration name to use])
AC_MSG_RESULT([$CONF_NAME])
BASIC_WINDOWS_VERIFY_DIR($OUTPUTDIR, output)
UTIL_FIXUP_PATH(OUTPUTDIR)
CONFIGURESUPPORT_OUTPUTDIR="$OUTPUTDIR/configure-support"
@@ -416,26 +415,16 @@ AC_DEFUN([BASIC_CHECK_DIR_ON_LOCAL_DISK],
# df -l lists only local disks; if the given directory is not found then
# a non-zero exit code is given
if test "x$DF" = x; then
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
# msys does not have df; use Windows "net use" instead.
IS_NETWORK_DISK=`net use | grep \`pwd -W | cut -d ":" -f 1 | tr a-z A-Z\`:`
if test "x$IS_NETWORK_DISK" = x; then
$2
else
$3
fi
else
# No df here, say it's local
$2
fi
# No df here, say it's local
$2
else
# JDK-8189619
# df on AIX does not understand -l. On modern AIXes it understands "-T local" which
# is the same. On older AIXes we just continue to live with a "not local build" warning.
if test "x$OPENJDK_TARGET_OS" = xaix; then
DF_LOCAL_ONLY_OPTION='-T local'
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
# In WSL, we can only build on a drvfs file system (that is, a mounted real Windows drive)
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl1"; then
# In WSL1, we can only build on a drvfs file system (that is, a mounted real Windows drive)
DF_LOCAL_ONLY_OPTION='-t drvfs'
else
DF_LOCAL_ONLY_OPTION='-l'

View File

@@ -28,38 +28,37 @@
# but is used by much of the early bootstrap code.
AC_DEFUN_ONCE([BASIC_SETUP_FUNDAMENTAL_TOOLS],
[
# Start with tools that do not need have cross compilation support
# and can be expected to be found in the default PATH. These tools are
# used by configure.
# Bootstrapping: These tools are needed by UTIL_LOOKUP_PROGS
AC_PATH_PROGS(BASENAME, basename)
UTIL_CHECK_NONEMPTY(BASENAME)
AC_PATH_PROGS(DIRNAME, dirname)
UTIL_CHECK_NONEMPTY(DIRNAME)
AC_PATH_PROGS(FILE, file)
UTIL_CHECK_NONEMPTY(FILE)
AC_PATH_PROGS(LDD, ldd)
# First are all the simple required tools.
UTIL_REQUIRE_PROGS(BASENAME, basename)
# First are all the fundamental required tools.
UTIL_REQUIRE_PROGS(BASH, bash)
UTIL_REQUIRE_PROGS(CAT, cat)
UTIL_REQUIRE_PROGS(CHMOD, chmod)
UTIL_REQUIRE_PROGS(CMP, cmp)
UTIL_REQUIRE_PROGS(COMM, comm)
UTIL_REQUIRE_PROGS(CP, cp)
UTIL_REQUIRE_PROGS(CUT, cut)
UTIL_REQUIRE_PROGS(DATE, date)
UTIL_REQUIRE_PROGS(DIFF, [gdiff diff])
UTIL_REQUIRE_PROGS(DIRNAME, dirname)
UTIL_REQUIRE_PROGS(DIFF, gdiff diff)
UTIL_REQUIRE_PROGS(ECHO, echo)
UTIL_REQUIRE_PROGS(EXPR, expr)
UTIL_REQUIRE_PROGS(FILE, file)
UTIL_REQUIRE_PROGS(FIND, find)
UTIL_REQUIRE_PROGS(HEAD, head)
UTIL_REQUIRE_PROGS(GUNZIP, gunzip)
UTIL_REQUIRE_PROGS(GZIP, pigz gzip)
UTIL_REQUIRE_PROGS(HEAD, head)
UTIL_REQUIRE_PROGS(LN, ln)
UTIL_REQUIRE_PROGS(LS, ls)
# gmkdir is known to be safe for concurrent invocations with -p flag.
UTIL_REQUIRE_PROGS(MKDIR, [gmkdir mkdir])
UTIL_REQUIRE_PROGS(MKDIR, gmkdir mkdir)
UTIL_REQUIRE_PROGS(MKTEMP, mktemp)
UTIL_REQUIRE_PROGS(MV, mv)
UTIL_REQUIRE_PROGS(NAWK, [nawk gawk awk])
UTIL_REQUIRE_PROGS(AWK, gawk nawk awk)
UTIL_REQUIRE_PROGS(PRINTF, printf)
UTIL_REQUIRE_PROGS(READLINK, [greadlink readlink])
UTIL_REQUIRE_PROGS(RM, rm)
UTIL_REQUIRE_PROGS(RMDIR, rmdir)
UTIL_REQUIRE_PROGS(SH, sh)
@@ -70,33 +69,31 @@ AC_DEFUN_ONCE([BASIC_SETUP_FUNDAMENTAL_TOOLS],
UTIL_REQUIRE_PROGS(TOUCH, touch)
UTIL_REQUIRE_PROGS(TR, tr)
UTIL_REQUIRE_PROGS(UNAME, uname)
UTIL_REQUIRE_PROGS(UNIQ, uniq)
UTIL_REQUIRE_PROGS(WC, wc)
UTIL_REQUIRE_PROGS(XARGS, xargs)
# Then required tools that require some special treatment.
UTIL_REQUIRE_SPECIAL(AWK, [AC_PROG_AWK])
UTIL_REQUIRE_SPECIAL(GREP, [AC_PROG_GREP])
UTIL_REQUIRE_SPECIAL(EGREP, [AC_PROG_EGREP])
UTIL_REQUIRE_SPECIAL(FGREP, [AC_PROG_FGREP])
UTIL_REQUIRE_SPECIAL(SED, [AC_PROG_SED])
# Optional tools, we can do without them
UTIL_LOOKUP_PROGS(DF, df)
UTIL_LOOKUP_PROGS(NICE, nice)
UTIL_LOOKUP_PROGS(READLINK, greadlink readlink)
# These are only needed on some platforms
UTIL_LOOKUP_PROGS(PATHTOOL, cygpath wslpath)
UTIL_LOOKUP_PROGS(LSB_RELEASE, lsb_release)
UTIL_LOOKUP_PROGS(CMD, cmd.exe, $PATH:/cygdrive/c/windows/system32:/mnt/c/windows/system32:/c/windows/system32)
# For compare.sh only
UTIL_LOOKUP_PROGS(CMP, cmp)
UTIL_LOOKUP_PROGS(UNIQ, uniq)
# Always force rm.
RM="$RM -f"
# pwd behaves differently on various platforms and some don't support the -L flag.
# Always use the bash builtin pwd to get uniform behavior.
THEPWDCMD=pwd
# These are not required on all platforms
UTIL_PATH_PROGS(CYGPATH, cygpath)
UTIL_PATH_PROGS(WSLPATH, wslpath)
UTIL_PATH_PROGS(DF, df)
UTIL_PATH_PROGS(CPIO, [cpio bsdcpio])
UTIL_PATH_PROGS(NICE, nice)
UTIL_PATH_PROGS(LSB_RELEASE, lsb_release)
UTIL_PATH_PROGS(CMD, cmd.exe, $PATH /cygdrive/c/Windows/System32 /mnt/c/Windows/System32)
])
###############################################################################
@@ -131,10 +128,14 @@ AC_DEFUN([BASIC_CHECK_MAKE_VERSION],
if test "x$OPENJDK_BUILD_OS" = "xwindows"; then
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
MAKE_EXPECTED_ENV='cygwin'
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys2"; then
MAKE_EXPECTED_ENV='msys'
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
MAKE_EXPECTED_ENV='x86_64-.*-linux-gnu'
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl1" || test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl2"; then
if test "x$OPENJDK_BUILD_CPU" = "xaarch64"; then
MAKE_EXPECTED_ENV='aarch64-.*-linux-gnu'
else
MAKE_EXPECTED_ENV='x86_64-.*-linux-gnu'
fi
else
AC_MSG_ERROR([Unknown Windows environment])
fi
@@ -186,14 +187,14 @@ AC_DEFUN([BASIC_CHECK_MAKE_OUTPUT_SYNC],
# Goes looking for a usable version of GNU make.
AC_DEFUN([BASIC_CHECK_GNU_MAKE],
[
UTIL_SETUP_TOOL([MAKE],
UTIL_SETUP_TOOL(MAKE,
[
# Try our hardest to locate a correct version of GNU make
AC_PATH_PROGS(CHECK_GMAKE, gmake)
UTIL_LOOKUP_PROGS(CHECK_GMAKE, gmake)
BASIC_CHECK_MAKE_VERSION("$CHECK_GMAKE", [gmake in PATH])
if test "x$FOUND_MAKE" = x; then
AC_PATH_PROGS(CHECK_MAKE, make)
UTIL_LOOKUP_PROGS(CHECK_MAKE, make)
BASIC_CHECK_MAKE_VERSION("$CHECK_MAKE", [make in PATH])
fi
@@ -202,10 +203,10 @@ AC_DEFUN([BASIC_CHECK_GNU_MAKE],
# We have a toolchain path, check that as well before giving up.
OLD_PATH=$PATH
PATH=$TOOLCHAIN_PATH:$PATH
AC_PATH_PROGS(CHECK_TOOLSDIR_GMAKE, gmake)
UTIL_LOOKUP_PROGS(CHECK_TOOLSDIR_GMAKE, gmake)
BASIC_CHECK_MAKE_VERSION("$CHECK_TOOLSDIR_GMAKE", [gmake in tools-dir])
if test "x$FOUND_MAKE" = x; then
AC_PATH_PROGS(CHECK_TOOLSDIR_MAKE, make)
UTIL_LOOKUP_PROGS(CHECK_TOOLSDIR_MAKE, make)
BASIC_CHECK_MAKE_VERSION("$CHECK_TOOLSDIR_MAKE", [make in tools-dir])
fi
PATH=$OLD_PATH
@@ -335,24 +336,17 @@ AC_DEFUN_ONCE([BASIC_SETUP_COMPLEX_TOOLS],
# Non-required basic tools
UTIL_PATH_PROGS(LDD, ldd)
if test "x$LDD" = "x"; then
# List shared lib dependencies is used for
# debug output and checking for forbidden dependencies.
# We can build without it.
LDD="true"
fi
UTIL_PATH_PROGS(READELF, [greadelf readelf])
UTIL_PATH_PROGS(DOT, dot)
UTIL_PATH_PROGS(HG, hg)
UTIL_PATH_PROGS(GIT, git)
UTIL_PATH_PROGS(STAT, stat)
UTIL_PATH_PROGS(TIME, time)
UTIL_PATH_PROGS(FLOCK, flock)
UTIL_LOOKUP_PROGS(READELF, greadelf readelf)
UTIL_LOOKUP_PROGS(DOT, dot)
UTIL_LOOKUP_PROGS(HG, hg)
UTIL_LOOKUP_PROGS(GIT, git)
UTIL_LOOKUP_PROGS(STAT, stat)
UTIL_LOOKUP_PROGS(TIME, time)
UTIL_LOOKUP_PROGS(FLOCK, flock)
# Dtrace is usually found in /usr/sbin, but that directory may not
# be in the user path.
UTIL_PATH_PROGS(DTRACE, dtrace, $PATH:/usr/sbin)
UTIL_PATH_PROGS(PATCH, [gpatch patch])
UTIL_LOOKUP_PROGS(DTRACE, dtrace, $PATH:/usr/sbin)
UTIL_LOOKUP_PROGS(PATCH, gpatch patch)
# Check if it's GNU time
IS_GNU_TIME=`$TIME --version 2>&1 | $GREP 'GNU time'`
if test "x$IS_GNU_TIME" != x; then
@@ -366,7 +360,7 @@ AC_DEFUN_ONCE([BASIC_SETUP_COMPLEX_TOOLS],
UTIL_REQUIRE_PROGS(DSYMUTIL, dsymutil)
UTIL_REQUIRE_PROGS(MIG, mig)
UTIL_REQUIRE_PROGS(XATTR, xattr)
UTIL_PATH_PROGS(CODESIGN, codesign)
UTIL_LOOKUP_PROGS(CODESIGN, codesign)
if test "x$CODESIGN" != "x"; then
# Check for user provided code signing identity.
@@ -407,7 +401,7 @@ AC_DEFUN_ONCE([BASIC_SETUP_COMPLEX_TOOLS],
UTIL_REQUIRE_PROGS(SETFILE, SetFile)
fi
if ! test "x$OPENJDK_TARGET_OS" = "xwindows"; then
UTIL_REQUIRE_BUILTIN_PROGS(ULIMIT, ulimit)
UTIL_REQUIRE_PROGS(ULIMIT, ulimit)
fi
])
@@ -453,7 +447,7 @@ AC_DEFUN_ONCE([BASIC_CHECK_BASH_OPTIONS],
#
AC_DEFUN_ONCE([BASIC_SETUP_PANDOC],
[
UTIL_PATH_PROGS(PANDOC, pandoc)
UTIL_LOOKUP_PROGS(PANDOC, pandoc)
PANDOC_MARKDOWN_FLAG="markdown"
if test -n "$PANDOC"; then

View File

@@ -24,97 +24,160 @@
#
# Setup basic configuration paths, and platform-specific stuff related to PATHs.
AC_DEFUN([BASIC_CHECK_PATHS_WINDOWS],
AC_DEFUN([BASIC_SETUP_PATHS_WINDOWS],
[
SRC_ROOT_LENGTH=`$THEPWDCMD -L|$WC -m`
if test $SRC_ROOT_LENGTH -gt 100; then
AC_MSG_ERROR([Your base path is too long. It is $SRC_ROOT_LENGTH characters long, but only 100 is supported])
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
# Clarify if it is wsl1 or wsl2, and use that as OS_ENV from this point forward
$PATHTOOL -w / > /dev/null 2>&1
if test $? -ne 0; then
# Without Windows access to our root, it's definitely WSL1
OPENJDK_BUILD_OS_ENV=windows.wsl1
else
# This test is not guaranteed, but there is no documented way of
# distinguishing between WSL1 and WSL2. Assume only WSL2 has WSL_INTEROP
# in /run/WSL
if test -d "/run/WSL" ; then
OPENJDK_BUILD_OS_ENV=windows.wsl2
else
OPENJDK_BUILD_OS_ENV=windows.wsl1
fi
fi
# This is a bit silly since we really don't have a target env as such,
# but do it to keep consistency.
OPENJDK_TARGET_OS_ENV=$OPENJDK_BUILD_OS_ENV
fi
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys2"; then
# Must be done prior to calling any commands to avoid mangling of command line
export MSYS2_ARG_CONV_EXCL="*"
fi
AC_MSG_CHECKING([Windows environment type])
WINENV_VENDOR=${OPENJDK_BUILD_OS_ENV#windows.}
AC_MSG_RESULT([$WINENV_VENDOR])
if test "x$WINENV_VENDOR" = x; then
AC_MSG_ERROR([Unknown Windows environment. Neither cygwin, msys2, wsl1 nor wsl2 was detected.])
fi
if test "x$PATHTOOL" = x; then
AC_MSG_ERROR([Incorrect $WINENV_VENDOR installation. Neither cygpath nor wslpath was found])
fi
if test "x$CMD" = x; then
AC_MSG_ERROR([Incorrect Windows/$WINENV_VENDOR setup. Could not locate cmd.exe])
fi
AC_MSG_CHECKING([$WINENV_VENDOR drive prefix])
WINENV_PREFIX=`$PATHTOOL -u c:/ | $SED -e 's!/c/!!'`
AC_MSG_RESULT(['$WINENV_PREFIX'])
AC_SUBST(WINENV_PREFIX)
AC_MSG_CHECKING([$WINENV_VENDOR root directory as Windows path])
if test "x$OPENJDK_BUILD_OS_ENV" != "xwindows.wsl1"; then
WINENV_ROOT=`$PATHTOOL -w / 2> /dev/null`
# msys2 has a trailing backslash; strip it
WINENV_ROOT=${WINENV_ROOT%\\}
else
WINENV_ROOT='[[unavailable]]'
fi
AC_MSG_RESULT(['$WINENV_ROOT'])
AC_SUBST(WINENV_ROOT)
AC_MSG_CHECKING([$WINENV_VENDOR temp directory])
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.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"
fi
AC_MSG_CHECKING([$WINENV_VENDOR release])
WINENV_UNAME_RELEASE=`$UNAME -r`
AC_MSG_RESULT([$WINENV_UNAME_RELEASE])
AC_MSG_CHECKING([$WINENV_VENDOR version])
WINENV_UNAME_VERSION=`$UNAME -v`
AC_MSG_RESULT([$WINENV_UNAME_VERSION])
WINENV_VERSION="$WINENV_UNAME_RELEASE, $WINENV_UNAME_VERSION"
AC_MSG_CHECKING([Windows version])
# We must change directory to one guaranteed to work, otherwise WSL1
# can complain (since it does not have a WINENV_ROOT so it can't access
# unix-style paths from Windows.
# Additional [] needed to keep m4 from mangling shell constructs.
[ WINDOWS_VERSION=`$CMD /c ver.exe | $EGREP -o '([0-9]+\.)+[0-9]+'` ]
[ WINDOWS_VERSION=`cd $WINENV_TEMP_DIR && $CMD /c ver | $EGREP -o '([0-9]+\.)+[0-9]+'` ]
AC_MSG_RESULT([$WINDOWS_VERSION])
# Additional handling per specific env
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
AC_MSG_CHECKING([cygwin release])
CYGWIN_RELEASE=`$UNAME -r`
AC_MSG_RESULT([$CYGWIN_RELEASE])
AC_MSG_CHECKING([cygwin version])
CYGWIN_VERSION=`$UNAME -v`
AC_MSG_RESULT([$CYGWIN_VERSION])
# Additional [] needed to keep m4 from mangling shell constructs.
[ CYGWIN_VERSION_OLD=`$ECHO $CYGWIN_RELEASE | $GREP -e '^1\.[0-6]'` ]
[ CYGWIN_VERSION_OLD=`$ECHO $WINENV_UNAME_RELEASE | $GREP -e '^1\.[0-6]'` ]
if test "x$CYGWIN_VERSION_OLD" != x; then
AC_MSG_NOTICE([Your cygwin is too old. You are running $CYGWIN_RELEASE, but at least cygwin 1.7 is required. Please upgrade.])
AC_MSG_ERROR([Cannot continue])
fi
WINDOWS_ENV_VENDOR='cygwin'
WINDOWS_ENV_VERSION="$CYGWIN_RELEASE, $CYGWIN_VERSION"
if test "x$CYGPATH" = x; then
AC_MSG_ERROR([Something is wrong with your cygwin installation since I cannot find cygpath.exe in your path])
if test "x$LDD" = x; then
AC_MSG_ERROR([ldd is missing, which is needed on cygwin])
fi
AC_MSG_CHECKING([cygwin root directory as unix-style path])
# The cmd output ends with Windows line endings (CR/LF)
cygwin_winpath_root=`cd / ; cmd /c cd | $TR -d '\r\n'`
# Force cygpath to report the proper root by including a trailing space, and then stripping it off again.
CYGWIN_ROOT_PATH=`$CYGPATH -u "$cygwin_winpath_root " | $CUT -f 1 -d " "`
AC_MSG_RESULT([$CYGWIN_ROOT_PATH])
WINDOWS_ENV_ROOT_PATH="$CYGWIN_ROOT_PATH"
test_cygdrive_prefix=`$ECHO $CYGWIN_ROOT_PATH | $GREP ^/cygdrive/`
if test "x$test_cygdrive_prefix" = x; then
AC_MSG_ERROR([Your cygdrive prefix is not /cygdrive. This is currently not supported. Change with mount -c.])
WINENV_MARKER_DLL=cygwin1.dll
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys2"; then
if test "x$LDD" = x; then
AC_MSG_ERROR([ldd is missing, which is needed on msys2])
fi
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
AC_MSG_CHECKING([msys release])
MSYS_RELEASE=`$UNAME -r`
AC_MSG_RESULT([$MSYS_RELEASE])
AC_MSG_CHECKING([msys version])
MSYS_VERSION=`$UNAME -v`
AC_MSG_RESULT([$MSYS_VERSION])
WINDOWS_ENV_VENDOR='msys'
WINDOWS_ENV_VERSION="$MSYS_RELEASE, $MSYS_VERSION"
AC_MSG_CHECKING([msys root directory as unix-style path])
# The cmd output ends with Windows line endings (CR/LF), the grep command will strip that away
MSYS_ROOT_PATH=`cd / ; cmd /c cd | $GREP ".*"`
UTIL_REWRITE_AS_UNIX_PATH(MSYS_ROOT_PATH)
AC_MSG_RESULT([$MSYS_ROOT_PATH])
WINDOWS_ENV_ROOT_PATH="$MSYS_ROOT_PATH"
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
AC_MSG_CHECKING([WSL kernel version])
WSL_KERNEL_VERSION=`$UNAME -v`
AC_MSG_RESULT([$WSL_KERNEL_VERSION])
AC_MSG_CHECKING([WSL kernel release])
WSL_KERNEL_RELEASE=`$UNAME -r`
AC_MSG_RESULT([$WSL_KERNEL_RELEASE])
AC_MSG_CHECKING([WSL distribution])
WINENV_MARKER_DLL=msys-2.0.dll
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl1" || test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl2"; then
AC_MSG_CHECKING([wsl distribution])
WSL_DISTRIBUTION=`$LSB_RELEASE -d | sed 's/Description:\t//'`
AC_MSG_RESULT([$WSL_DISTRIBUTION])
WINDOWS_ENV_VENDOR='wsl'
WINDOWS_ENV_VERSION="$WSL_KERNEL_RELEASE, $WSL_KERNEL_VERSION ($WSL_DISTRIBUTION)"
else
AC_MSG_ERROR([Unknown Windows environment. Neither cygwin, msys, nor wsl was detected.])
WINENV_VERSION="$WINENV_VERSION ($WSL_DISTRIBUTION)"
# Tell WSL to automatically translate the PATH variable
export WSLENV=PATH/l
fi
# Test if windows or unix (cygwin/msys) find is first in path.
# Chicken and egg: FIXPATH is needed for UTIL_FIXUP_PATH to work. So for the
# first run we use the auto-detect abilities of fixpath.sh.
FIXPATH_DIR="$TOPDIR/make/scripts"
FIXPATH="$BASH $FIXPATH_DIR/fixpath.sh exec"
FIXPATH_BASE="$BASH $FIXPATH_DIR/fixpath.sh"
FIXPATH_SAVED_PATH="$PATH"
UTIL_FIXUP_PATH(FIXPATH_DIR)
# Now we can use FIXPATH_DIR to rewrite path to fixpath.sh properly.
if test "x$WINENV_PREFIX" = x; then
# On msys the prefix is empty, but we need to pass something to have the
# fixpath.sh options parser happy.
WINENV_PREFIX_ARG="NONE"
else
WINENV_PREFIX_ARG="$WINENV_PREFIX"
fi
FIXPATH_ARGS="-e $PATHTOOL -p $WINENV_PREFIX_ARG -r ${WINENV_ROOT//\\/\\\\} -t $WINENV_TEMP_DIR -c $CMD -q"
FIXPATH_BASE="$BASH $FIXPATH_DIR/fixpath.sh $FIXPATH_ARGS"
FIXPATH="$FIXPATH_BASE exec"
AC_SUBST(FIXPATH_BASE)
AC_SUBST(FIXPATH)
SRC_ROOT_LENGTH=`$ECHO "$TOPDIR" | $WC -m`
if test $SRC_ROOT_LENGTH -gt 100; then
AC_MSG_ERROR([Your base path is too long. It is $SRC_ROOT_LENGTH characters long, but only 100 is supported])
fi
# Test if windows or unix "find" is first in path.
AC_MSG_CHECKING([what kind of 'find' is first on the PATH])
FIND_BINARY_OUTPUT=`find --version 2>&1`
if test "x`echo $FIND_BINARY_OUTPUT | $GREP GNU`" != x; then
AC_MSG_RESULT([unix style])
elif test "x`echo $FIND_BINARY_OUTPUT | $GREP FIND`" != x; then
AC_MSG_RESULT([Windows])
AC_MSG_NOTICE([Your path contains Windows tools (C:\Windows\system32) before your unix (cygwin or msys) tools.])
AC_MSG_NOTICE([Your path contains Windows tools (C:\Windows\system32) before your unix tools.])
AC_MSG_NOTICE([This will not work. Please correct and make sure /usr/bin (or similar) is first in path.])
AC_MSG_ERROR([Cannot continue])
else
@@ -123,73 +186,39 @@ AC_DEFUN([BASIC_CHECK_PATHS_WINDOWS],
fi
])
AC_DEFUN_ONCE([BASIC_COMPILE_FIXPATH],
# Verify that the directory is usable on Windows
AC_DEFUN([BASIC_WINDOWS_VERIFY_DIR],
[
# When using cygwin or msys, we need a wrapper binary that renames
# /cygdrive/c/ arguments into c:/ arguments and peeks into
# @files and rewrites these too! This wrapper binary is
# called fixpath.
FIXPATH=
if test "x$OPENJDK_BUILD_OS" = xwindows; then
AC_MSG_CHECKING([if fixpath can be created])
FIXPATH_SRC="$TOPDIR/make/src/native/fixpath.c"
FIXPATH_BIN="$CONFIGURESUPPORT_OUTPUTDIR/bin/fixpath.exe"
FIXPATH_DIR="$CONFIGURESUPPORT_OUTPUTDIR/fixpath"
if test "x$OPENJDK_BUILD_OS_ENV" = xwindows.cygwin; then
# Important to keep the .exe suffix on Cygwin for Hotspot makefiles
FIXPATH="$FIXPATH_BIN -c"
elif test "x$OPENJDK_BUILD_OS_ENV" = xwindows.msys; then
# Take all collected prefixes and turn them into a -m/c/foo@/c/bar@... command line
# @ was chosen as separator to minimize risk of other tools messing around with it
all_unique_prefixes=`echo "${all_fixpath_prefixes@<:@@@:>@}" \
| tr ' ' '\n' | $GREP '^/./' | $SORT | $UNIQ`
fixpath_argument_list=`echo $all_unique_prefixes | tr ' ' '@'`
FIXPATH="$FIXPATH_BIN -m$fixpath_argument_list"
elif test "x$OPENJDK_BUILD_OS_ENV" = xwindows.wsl; then
FIXPATH="$FIXPATH_BIN -w"
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl1"; then
OUTPUTDIR_WIN=`$FIXPATH_BASE print $1`
if test "x$OUTPUTDIR_WIN" = x; then
AC_MSG_NOTICE([For wsl1, the $2 dir must be located on a Windows drive. Please see doc/building.md for details.])
AC_MSG_ERROR([Cannot continue])
fi
FIXPATH_SRC_W="$FIXPATH_SRC"
FIXPATH_BIN_W="$FIXPATH_BIN"
$RM -rf $FIXPATH_BIN $FIXPATH_DIR
$MKDIR -p $FIXPATH_DIR $CONFIGURESUPPORT_OUTPUTDIR/bin
UTIL_REWRITE_AS_WINDOWS_MIXED_PATH([FIXPATH_SRC_W])
UTIL_REWRITE_AS_WINDOWS_MIXED_PATH([FIXPATH_BIN_W])
cd $FIXPATH_DIR
$CC $FIXPATH_SRC_W -Fe$FIXPATH_BIN_W > $FIXPATH_DIR/fixpath1.log 2>&1
cd $CONFIGURE_START_DIR
if test ! -x $FIXPATH_BIN; then
AC_MSG_RESULT([no])
cat $FIXPATH_DIR/fixpath1.log
AC_MSG_ERROR([Could not create $FIXPATH_BIN])
fi
AC_MSG_RESULT([yes])
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
OLD_WSLENV="$WSLENV"
WSLENV=`$ECHO $WSLENV | $SED 's/PATH\/l://'`
UTIL_APPEND_TO_PATH(WSLENV, "FIXPATH_PATH")
export WSLENV
export FIXPATH_PATH=$VS_PATH_WINDOWS
AC_MSG_NOTICE([FIXPATH_PATH is $FIXPATH_PATH])
AC_MSG_NOTICE([Rewriting WSLENV from $OLD_WSLENV to $WSLENV])
fi
AC_MSG_CHECKING([if fixpath.exe works])
cd $FIXPATH_DIR
$FIXPATH $CC $FIXPATH_SRC -Fe$FIXPATH_DIR/fixpath2.exe \
> $FIXPATH_DIR/fixpath2.log 2>&1
cd $CONFIGURE_START_DIR
if test ! -x $FIXPATH_DIR/fixpath2.exe; then
AC_MSG_RESULT([no])
cat $FIXPATH_DIR/fixpath2.log
AC_MSG_ERROR([fixpath did not work!])
fi
AC_MSG_RESULT([yes])
FIXPATH_DETACH_FLAG="--detach"
fi
AC_SUBST(FIXPATH)
AC_SUBST(FIXPATH_DETACH_FLAG)
])
# Create fixpath wrapper
AC_DEFUN([BASIC_WINDOWS_FINALIZE_FIXPATH],
[
if test "x$OPENJDK_BUILD_OS" = xwindows; then
FIXPATH_CMDLINE=". $TOPDIR/make/scripts/fixpath.sh -e $PATHTOOL \
-p $WINENV_PREFIX_ARG -r ${WINENV_ROOT//\\/\\\\} -t $WINENV_TEMP_DIR \
-c $CMD -q"
$ECHO > $OUTPUTDIR/fixpath '#!/bin/bash'
$ECHO >> $OUTPUTDIR/fixpath export PATH='"[$]PATH:'$PATH'"'
$ECHO >> $OUTPUTDIR/fixpath $FIXPATH_CMDLINE '"[$]@"'
$CHMOD +x $OUTPUTDIR/fixpath
FIXPATH_BASE="$OUTPUTDIR/fixpath"
FIXPATH="$FIXPATH_BASE exec"
fi
])
# Platform-specific finalization
AC_DEFUN([BASIC_WINDOWS_FINALIZE],
[
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl2"; then
# Change back from temp dir
cd $CONFIGURE_START_DIR
fi
])

View File

@@ -63,19 +63,23 @@ AC_DEFUN([BOOTJDK_DO_CHECK],
# If previous step claimed to have found a JDK, check it to see if it seems to be valid.
if test "x$BOOT_JDK_FOUND" = xmaybe; then
# Do we have a bin/java?
if test ! -x "$BOOT_JDK/bin/java$EXE_SUFFIX"; then
if test ! -x "$BOOT_JDK/bin/java" && test ! -x "$BOOT_JDK/bin/java.exe"; then
AC_MSG_NOTICE([Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring])
BOOT_JDK_FOUND=no
else
# Do we have a bin/javac?
if test ! -x "$BOOT_JDK/bin/javac$EXE_SUFFIX"; then
if test ! -x "$BOOT_JDK/bin/javac" && test ! -x "$BOOT_JDK/bin/javac.exe"; then
AC_MSG_NOTICE([Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring])
AC_MSG_NOTICE([(This might be an JRE instead of an JDK)])
BOOT_JDK_FOUND=no
else
# Oh, this is looking good! We probably have found a proper JDK. Is it the correct version?
java_to_test="$BOOT_JDK/bin/java"
UTIL_FIXUP_EXECUTABLE(java_to_test)
BOOT_JDK_VERSION_OUTPUT=`$java_to_test $USER_BOOT_JDK_OPTIONS -version 2>&1`
# Additional [] needed to keep m4 from mangling shell constructs.
[ BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java$EXE_SUFFIX" $USER_BOOT_JDK_OPTIONS -version 2>&1 | $AWK '/version \"[0-9a-zA-Z\._\-]+\"/{print $ 0; exit;}'` ]
[ BOOT_JDK_VERSION=`echo $BOOT_JDK_VERSION_OUTPUT | $AWK '/version "[0-9a-zA-Z\._\-]+"/ {print $ 0; exit;}'` ]
if [ [[ "$BOOT_JDK_VERSION" =~ "Picked up" ]] ]; then
AC_MSG_NOTICE([You have _JAVA_OPTIONS or JAVA_TOOL_OPTIONS set. This can mess up the build. Please use --with-boot-jdk-jvmargs instead.])
AC_MSG_NOTICE([Java reports: "$BOOT_JDK_VERSION".])
@@ -91,7 +95,12 @@ AC_DEFUN([BOOTJDK_DO_CHECK],
# Extra M4 quote needed to protect [] in grep expression.
[FOUND_CORRECT_VERSION=`$ECHO $BOOT_JDK_VERSION \
| $EGREP "\"(${DEFAULT_ACCEPTABLE_BOOT_VERSIONS// /|})([\.+-].*)?\""`]
if test "x$FOUND_CORRECT_VERSION" = x; then
if test "x$BOOT_JDK_VERSION" = x; then
AC_MSG_NOTICE([Potential Boot JDK found at $BOOT_JDK is not a working JDK; ignoring])
AC_MSG_NOTICE([Output from java -version was: $BOOT_JDK_VERSION_OUTPUT])
BOOT_JDK_FOUND=no
elif test "x$FOUND_CORRECT_VERSION" = x; then
AC_MSG_NOTICE([Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring])
AC_MSG_NOTICE([(Your Boot JDK version must be one of: $DEFAULT_ACCEPTABLE_BOOT_VERSIONS)])
BOOT_JDK_FOUND=no
@@ -102,7 +111,9 @@ AC_DEFUN([BOOTJDK_DO_CHECK],
AC_MSG_CHECKING([for Boot JDK])
AC_MSG_RESULT([$BOOT_JDK])
AC_MSG_CHECKING([Boot JDK version])
BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java$EXE_SUFFIX" $USER_BOOT_JDK_OPTIONS -version 2>&1 | $TR '\n\r' ' '`
BOOT_JDK_VERSION=`$java_to_test $USER_BOOT_JDK_OPTIONS -version 2>&1 | $TR -d '\r'`
# This is not a no-op; it will portably convert newline to space
BOOT_JDK_VERSION=`$ECHO $BOOT_JDK_VERSION`
AC_MSG_RESULT([$BOOT_JDK_VERSION])
fi # end check jdk version
fi # end check javac
@@ -151,8 +162,8 @@ AC_DEFUN([BOOTJDK_CHECK_JAVA_HOME],
[
if test "x$JAVA_HOME" != x; then
JAVA_HOME_PROCESSED="$JAVA_HOME"
UTIL_FIXUP_PATH(JAVA_HOME_PROCESSED)
if test ! -d "$JAVA_HOME_PROCESSED"; then
UTIL_FIXUP_PATH(JAVA_HOME_PROCESSED, NOFAIL)
if test "x$JAVA_HOME_PROCESSED" = x || test ! -d "$JAVA_HOME_PROCESSED"; then
AC_MSG_NOTICE([Your JAVA_HOME points to a non-existing directory!])
else
# Aha, the user has set a JAVA_HOME
@@ -167,8 +178,8 @@ AC_DEFUN([BOOTJDK_CHECK_JAVA_HOME],
# Test: Is there a java or javac in the PATH, which is a symlink to the JDK?
AC_DEFUN([BOOTJDK_CHECK_JAVA_IN_PATH_IS_SYMLINK],
[
AC_PATH_PROG(JAVAC_CHECK, javac)
AC_PATH_PROG(JAVA_CHECK, java)
UTIL_LOOKUP_PROGS(JAVAC_CHECK, javac, , NOFIXPATH)
UTIL_LOOKUP_PROGS(JAVA_CHECK, java, , NOFIXPATH)
BINARY="$JAVAC_CHECK"
if test "x$JAVAC_CHECK" = x; then
BINARY="$JAVA_CHECK"
@@ -207,9 +218,9 @@ AC_DEFUN([BOOTJDK_CHECK_MACOSX_JAVA_LOCATOR],
# First check at user selected default
BOOTJDK_DO_CHECK([BOOTJDK_CHECK_LIBEXEC_JAVA_HOME()])
# If that did not work out (e.g. too old), try explicit versions instead
BOOTJDK_DO_CHECK([BOOTJDK_CHECK_LIBEXEC_JAVA_HOME([-v 1.9])])
BOOTJDK_DO_CHECK([BOOTJDK_CHECK_LIBEXEC_JAVA_HOME([-v 1.8])])
BOOTJDK_DO_CHECK([BOOTJDK_CHECK_LIBEXEC_JAVA_HOME([-v 1.7])])
for ver in $DEFAULT_ACCEPTABLE_BOOT_VERSIONS ; do
BOOTJDK_DO_CHECK([BOOTJDK_CHECK_LIBEXEC_JAVA_HOME([-v $ver])])
done
fi
])
@@ -242,8 +253,10 @@ AC_DEFUN([BOOTJDK_FIND_BEST_JDK_IN_WINDOWS_VIRTUAL_DIRECTORY],
[
if test "x[$]$1" != x; then
VIRTUAL_DIR="[$]$1/Java"
UTIL_REWRITE_AS_UNIX_PATH(VIRTUAL_DIR)
BOOTJDK_FIND_BEST_JDK_IN_DIRECTORY($VIRTUAL_DIR)
UTIL_FIXUP_PATH(VIRTUAL_DIR, NOFAIL)
if test "x$VIRTUAL_DIR" != x; then
BOOTJDK_FIND_BEST_JDK_IN_DIRECTORY($VIRTUAL_DIR)
fi
fi
])
@@ -270,16 +283,17 @@ AC_DEFUN([BOOTJDK_CHECK_WELL_KNOWN_LOCATIONS],
AC_DEFUN([BOOTJDK_CHECK_TOOL_IN_BOOTJDK],
[
# Use user overridden value if available, otherwise locate tool in the Boot JDK.
UTIL_SETUP_TOOL($1,
UTIL_REQUIRE_SPECIAL($1,
[
AC_MSG_CHECKING([for $2 in Boot JDK])
AC_MSG_CHECKING([for $2 [[Boot JDK]]])
$1=$BOOT_JDK/bin/$2
if test ! -x [$]$1; then
if test ! -x [$]$1 && test ! -x [$]$1.exe; then
AC_MSG_RESULT(not found)
AC_MSG_NOTICE([Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk])
AC_MSG_ERROR([Could not find $2 in the Boot JDK])
fi
AC_MSG_RESULT(ok)
AC_MSG_RESULT(\[$]BOOT_JDK/bin/$2)
UTIL_FIXUP_EXECUTABLE($1)
AC_SUBST($1)
])
])
@@ -313,12 +327,12 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK],
AC_MSG_ERROR([The path given by --with-boot-jdk does not contain a valid Boot JDK])
fi
# Test: On MacOS X, can we find a boot jdk using /usr/libexec/java_home?
BOOTJDK_DO_CHECK([BOOTJDK_CHECK_MACOSX_JAVA_LOCATOR])
# Test: Is $JAVA_HOME set?
BOOTJDK_DO_CHECK([BOOTJDK_CHECK_JAVA_HOME])
# Test: On MacOS X, can we find a boot jdk using /usr/libexec/java_home?
BOOTJDK_DO_CHECK([BOOTJDK_CHECK_MACOSX_JAVA_LOCATOR])
# Test: Is there a java or javac in the PATH, which is a symlink to the JDK?
BOOTJDK_DO_CHECK([BOOTJDK_CHECK_JAVA_IN_PATH_IS_SYMLINK])
@@ -336,11 +350,10 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK],
AC_SUBST(BOOT_JDK)
# Setup tools from the Boot JDK.
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVA, java$EXE_SUFFIX)
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVAC, javac$EXE_SUFFIX)
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVADOC, javadoc$EXE_SUFFIX)
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAR, jar$EXE_SUFFIX)
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JARSIGNER, jarsigner$EXE_SUFFIX)
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVA, java)
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVAC, javac)
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVADOC, javadoc)
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAR, jar)
# Finally, set some other options...
@@ -353,7 +366,7 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK],
AC_SUBST(BOOT_JDK_SOURCETARGET)
# Check if the boot jdk is 32 or 64 bit
if "$JAVA" -version 2>&1 | $GREP -q "64-Bit"; then
if $JAVA -version 2>&1 | $GREP -q "64-Bit"; then
BOOT_JDK_BITS="64"
else
BOOT_JDK_BITS="32"
@@ -368,7 +381,7 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK],
if test "x$boot_jdk_cds_args" != x; then
# Try creating a CDS archive
"$JAVA" $boot_jdk_cds_args -Xshare:dump > /dev/null 2>&1
$JAVA $boot_jdk_cds_args -Xshare:dump > /dev/null 2>&1
if test $? -eq 0; then
BOOTJDK_USE_LOCAL_CDS=true
AC_MSG_RESULT([yes, created])
@@ -516,7 +529,7 @@ AC_DEFUN([BOOTJDK_CHECK_BUILD_JDK],
else
# Oh, this is looking good! We probably have found a proper JDK. Is it the correct version?
# Additional [] needed to keep m4 from mangling shell constructs.
[ BUILD_JDK_VERSION=`"$BUILD_JDK/bin/java" -version 2>&1 | $AWK '/version \"[0-9a-zA-Z\._\-]+\"/{print $ 0; exit;}'` ]
[ BUILD_JDK_VERSION=`"$BUILD_JDK/bin/java" -version 2>&1 | $AWK '/version "[0-9a-zA-Z\._\-]+"/ {print $ 0; exit;}'` ]
# Extra M4 quote needed to protect [] in grep expression.
[FOUND_CORRECT_VERSION=`echo $BUILD_JDK_VERSION | $EGREP "\"$VERSION_FEATURE([\.+-].*)?\""`]
@@ -574,8 +587,12 @@ AC_DEFUN([BOOTJDK_SETUP_BUILD_JDK],
fi
fi
# Since these tools do not yet exist, we cannot use UTIL_FIXUP_EXECUTABLE to
# detect the need of fixpath
JMOD="$BUILD_JDK/bin/jmod"
UTIL_ADD_FIXPATH(JMOD)
JLINK="$BUILD_JDK/bin/jlink"
UTIL_ADD_FIXPATH(JLINK)
AC_SUBST(JMOD)
AC_SUBST(JLINK)

View File

@@ -28,14 +28,6 @@
# First include the real base spec.gmk file
include @SPEC@
# Check that the user did not try to specify a different java to use for compiling.
# On windows we need to account for fixpath being first word.
ifeq ($(firstword $(JAVA)),$(FIXPATH))
JAVA_EXEC_POS=2
else
JAVA_EXEC_POS=1
endif
# Override specific values to do a boot cycle build
# Use a different Boot JDK
@@ -47,10 +39,9 @@ OUTPUTDIR:=$(OLD_OUTPUTDIR)/bootcycle-build
# No spaces in patsubst to avoid leading space in variable
JAVAC_SERVER_DIR:=$(patsubst $(OLD_OUTPUTDIR)%,$(OUTPUTDIR)%,$(JAVAC_SERVER_DIR))
JAVA_CMD:=$(BOOT_JDK)/bin/java
JAVAC_CMD:=$(BOOT_JDK)/bin/javac
JAR_CMD:=$(BOOT_JDK)/bin/jar
JARSIGNER_CMD:=$(BOOT_JDK)/bin/jarsigner
JAVA_CMD := $(FIXPATH) $(BOOT_JDK)/bin/java
JAVAC_CMD := $(FIXPATH) $(BOOT_JDK)/bin/javac
JAR_CMD := $(FIXPATH) $(BOOT_JDK)/bin/jar
# The bootcycle JVM arguments may differ from the original boot jdk.
JAVA_FLAGS_BIG := @BOOTCYCLE_JVM_ARGS_BIG@
# Any CDS settings generated for the bootjdk are invalid in the bootcycle build.
@@ -58,5 +49,3 @@ JAVA_FLAGS_BIG := @BOOTCYCLE_JVM_ARGS_BIG@
# settings for CDS.
JAVA_FLAGS := $(filter-out -XX:SharedArchiveFile% -Xshare%, $(JAVA_FLAGS))
# Pandoc cannot be used without the jjs plugin, which was removed with Nashorn.
ENABLE_PANDOC := false

View File

@@ -56,11 +56,11 @@ if test $? = 0; then
fi
# Test and fix wsl
echo $OUT | grep x86_64-unknown-linux-gnu > /dev/null 2> /dev/null
echo $OUT | grep unknown-linux-gnu > /dev/null 2> /dev/null
if test $? = 0; then
uname -r | grep -i microsoft > /dev/null 2> /dev/null
if test $? = 0; then
OUT="x86_64-pc-wsl"
OUT=`echo $OUT | sed -e 's/unknown-linux-gnu/pc-wsl/'`
fi
fi

View File

@@ -1,6 +1,6 @@
#!/bin/sh
#
# Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2014, 2020, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -35,7 +35,13 @@ if echo $* | grep linux-musl >/dev/null ; then
fi
# Allow wsl
if echo $* | grep x86_64-pc-wsl >/dev/null ; then
if echo $* | grep pc-wsl >/dev/null ; then
echo $*
exit
fi
# Allow msys2
if echo $* | grep pc-msys >/dev/null ; then
echo $*
exit
fi
@@ -49,7 +55,7 @@ if ! echo $* | grep '^aarch64-' >/dev/null ; then
fi
while test $# -gt 0 ; do
case $1 in
case $1 in
-- ) # Stop option processing
shift; break ;;
aarch64-* )

View File

@@ -175,7 +175,7 @@ AC_DEFUN([BPERF_SETUP_CCACHE],
if test "x$TOOLCHAIN_PATH" != x; then
PATH=$TOOLCHAIN_PATH:$PATH
fi
UTIL_PATH_PROGS(CCACHE, ccache)
UTIL_LOOKUP_PROGS(CCACHE, ccache)
PATH="$OLD_PATH"
AC_MSG_CHECKING([if ccache is available])

View File

@@ -1,6 +1,6 @@
#!/bin/bash
#
# Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2012, 2020, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -43,7 +43,7 @@ export CMP="@CMP@"
export CP="@CP@"
export CUT="@CUT@"
export DIFF="@DIFF@"
export DUMPBIN="@FIXPATH@ @DUMPBIN@"
export DUMPBIN="@DUMPBIN@"
export EXPR="@EXPR@"
export FILE="@FILE@"
export FIND="@FIND@"
@@ -53,7 +53,6 @@ export LDD="@LDD@"
export LN="@LN@"
export MKDIR="@MKDIR@"
export MV="@MV@"
export NAWK="@NAWK@"
export NM="@GNM@"
export OBJDUMP="@OBJDUMP@"
export OTOOL="@OTOOL@"
@@ -87,12 +86,10 @@ else
fi
if [ "$OPENJDK_TARGET_OS" = "windows" ]; then
if [ "$OPENJDK_BUILD_OS_ENV" = "windows.wsl" ]; then
export FIXPATH_PATH="@VS_PATH_WINDOWS@"
export WSLENV="$WSLENV:FIXPATH_PATH:DEBUG_FIXPATH"
else
export PATH="@VS_PATH@"
if [[ $OPENJDK_BUILD_OS_ENV =~ ^windows.wsl ]]; then
export WSLENV=PATH/l
fi
export PATH="$PATH:@TOOLCHAIN_PATH@"
fi
export HOTSPOT_BUILD_TIME="@HOTSPOT_BUILD_TIME@"

View File

@@ -1,6 +1,6 @@
#!/bin/bash
#
# Copyright (c) 2012, 2019, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2012, 2020, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -49,7 +49,7 @@ export LC_ALL=C
if test "x$CUSTOM_CONFIG_DIR" != x; then
custom_hook=$CUSTOM_CONFIG_DIR/custom-hook.m4
if test ! -e $custom_hook; then
echo "CUSTOM_CONFIG_DIR not pointing to a proper custom config dir."
echo "CUSTOM_CONFIG_DIR ($CUSTOM_CONFIG_DIR) not pointing to a proper custom config dir."
echo "Error: Cannot continue" 1>&2
exit 1
fi
@@ -83,6 +83,7 @@ autoconf_missing_help() {
BREW="`type -p brew 2> /dev/null`"
ZYPPER="`type -p zypper 2> /dev/null`"
CYGWIN="`type -p cygpath 2> /dev/null`"
UNAMEOUT="`uname 2> /dev/null`"
if test "x$ZYPPER" != x; then
PKGHANDLER_COMMAND="sudo zypper install autoconf"
@@ -92,6 +93,8 @@ autoconf_missing_help() {
PKGHANDLER_COMMAND="sudo yum install autoconf"
elif test "x$BREW" != x; then
PKGHANDLER_COMMAND="brew install autoconf"
elif test "x$UNAMEOUT" == xAIX; then
echo "You might be able to fix this by installing autoconf from the 'AIX Toolbox for Linux Applications' (or compile it from the sources)."
elif test "x$CYGWIN" != x; then
PKGHANDLER_COMMAND="( cd <location of cygwin setup.exe> && cmd /c setup -q -P autoconf )"
fi
@@ -114,7 +117,7 @@ generate_configure_script() {
AUTOCONF="`type -p autoconf 2> /dev/null`"
if test "x$AUTOCONF" = x; then
echo
echo "Autoconf is not found on the PATH, and AUTOCONF is not set."
echo "Autoconf is not found on the PATH ($PATH), and AUTOCONF is not set."
echo "You need autoconf to be able to generate a runnable configure script."
autoconf_missing_help
echo "Error: Cannot find autoconf" 1>&2

View File

@@ -106,6 +106,8 @@ BASIC_SETUP_DEVKIT
# To properly create a configuration name, we need to have the OpenJDK target
# and options (variants and debug level) parsed.
BASIC_SETUP_OUTPUT_DIR
# After we have the output dir we can finalize the fixpath wrapper
BASIC_WINDOWS_FINALIZE_FIXPATH
# Must be done before we can call HELP_MSG_MISSING_DEPENDENCY.
HELP_SETUP_DEPENDENCY_HELP
@@ -203,7 +205,8 @@ FLAGS_POST_TOOLCHAIN
PLATFORM_SETUP_OPENJDK_TARGET_BITS
PLATFORM_SETUP_OPENJDK_TARGET_ENDIANNESS
# Configure flags for the tools
# Configure flags for the tools. Need to know if we should build reproducible.
JDKOPT_SETUP_REPRODUCIBLE_BUILD
FLAGS_SETUP_FLAGS
# Setup debug symbols (need objcopy from the toolchain for that)
@@ -219,9 +222,6 @@ JDKOPT_SETUP_ADDRESS_SANITIZER
#
###############################################################################
# After we have toolchain, we can compile fixpath. It's needed by the lib checks.
BASIC_COMPILE_FIXPATH
LIB_DETERMINE_DEPENDENCIES
LIB_SETUP_LIBRARIES
@@ -247,7 +247,6 @@ JDKOPT_ENABLE_DISABLE_GENERATE_CLASSLIST
JDKOPT_EXCLUDE_TRANSLATIONS
JDKOPT_ENABLE_DISABLE_MANPAGES
JDKOPT_ENABLE_DISABLE_CDS_ARCHIVE
JDKOPT_SETUP_REPRODUCIBLE_BUILD
###############################################################################
#
@@ -294,6 +293,7 @@ BASIC_CHECK_LEFTOVER_OVERRIDDEN
CONFIG_STATUS="$CONFIGURESUPPORT_OUTPUTDIR/config.status"
# Create the actual output files. Now the main work of configure is done.
BASIC_WINDOWS_FINALIZE
AC_OUTPUT
# After AC_OUTPUT, we need to do final work

View File

@@ -130,6 +130,7 @@ AC_DEFUN([FLAGS_SETUP_WARNINGS],
case "${TOOLCHAIN_TYPE}" in
microsoft)
DISABLE_WARNING_PREFIX="-wd"
BUILD_CC_DISABLE_WARNING_PREFIX="-wd"
CFLAGS_WARNINGS_ARE_ERRORS="-WX"
WARNINGS_ENABLE_ALL="-W3"
@@ -142,6 +143,7 @@ AC_DEFUN([FLAGS_SETUP_WARNINGS],
gcc)
DISABLE_WARNING_PREFIX="-Wno-"
BUILD_CC_DISABLE_WARNING_PREFIX="-Wno-"
CFLAGS_WARNINGS_ARE_ERRORS="-Werror"
# Additional warnings that are not activated by -Wall and -Wextra
@@ -153,7 +155,6 @@ AC_DEFUN([FLAGS_SETUP_WARNINGS],
WARNINGS_ENABLE_ALL_CXXFLAGS="$WARNINGS_ENABLE_ALL_CFLAGS $WARNINGS_ENABLE_ADDITIONAL_CXX"
DISABLED_WARNINGS="unused-parameter unused"
BUILD_CC_DISABLE_WARNING_PREFIX="-Wno-"
;;
clang)
@@ -663,16 +664,10 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP],
$1_DEFINES_CPU_JDK="${$1_DEFINES_CPU_JDK} -DARCH='\"$FLAGS_CPU_LEGACY\"' \
-D$FLAGS_CPU_LEGACY"
if test "x$FLAGS_CPU_BITS" = x64; then
# -D_LP64=1 is only set on linux and mac. Setting on windows causes diff in
# unpack200.exe.
if test "x$FLAGS_OS" = xlinux || test "x$FLAGS_OS" = xmacosx; then
$1_DEFINES_CPU_JDK="${$1_DEFINES_CPU_JDK} -D_LP64=1"
fi
if test "x$FLAGS_OS" != xaix; then
# xlc on AIX defines _LP64=1 by default and issues a warning if we redefine it.
$1_DEFINES_CPU_JVM="${$1_DEFINES_CPU_JVM} -D_LP64=1"
fi
if test "x$FLAGS_CPU_BITS" = x64 && test "x$FLAGS_OS" != xaix; then
# xlc on AIX defines _LP64=1 by default and issues a warning if we redefine it.
$1_DEFINES_CPU_JDK="${$1_DEFINES_CPU_JDK} -D_LP64=1"
$1_DEFINES_CPU_JVM="${$1_DEFINES_CPU_JVM} -D_LP64=1"
fi
# toolchain dependend, per-cpu
@@ -756,6 +751,18 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP],
$1_WARNING_CFLAGS_JVM="-Wno-format-zero-length -Wtype-limits -Wuninitialized"
fi
if test "x$TOOLCHAIN_TYPE" = xmicrosoft && test "x$ENABLE_REPRODUCIBLE_BUILD" = xtrue; then
# Enabling deterministic creates warnings if __DATE__ or __TIME__ are
# used, and since we are, silence that warning.
REPRODUCIBLE_CFLAGS="-experimental:deterministic -wd5048"
FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [${REPRODUCIBLE_CFLAGS}],
PREFIX: $3,
IF_FALSE: [
REPRODUCIBLE_CFLAGS=
]
)
fi
# Prevent the __FILE__ macro from generating absolute paths into the built
# binaries. Depending on toolchain, different mitigations are possible.
# * GCC and Clang of new enough versions have -fmacro-prefix-map.
@@ -774,6 +781,29 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP],
FILE_MACRO_CFLAGS=
]
)
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft &&
test "x$ENABLE_REPRODUCIBLE_BUILD" = xtrue; then
# There is a known issue with the pathmap if the mapping is made to the
# empty string. Add a minimal string "s" as prefix to work around this.
workspace_root_win=`$FIXPATH_BASE print "${WORKSPACE_ROOT%/}"`
# PATHMAP_FLAGS is also added to LDFLAGS in flags-ldflags.m4.
PATHMAP_FLAGS="-pathmap:${workspace_root_win//\//\\\\}=s \
-pathmap:${workspace_root_win}=s"
FILE_MACRO_CFLAGS="$PATHMAP_FLAGS"
FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [${FILE_MACRO_CFLAGS}],
PREFIX: $3,
IF_FALSE: [
PATHMAP_FLAGS=
FILE_MACRO_CFLAGS=
]
)
fi
AC_MSG_CHECKING([how to prevent absolute paths in output])
if test "x$FILE_MACRO_CFLAGS" != x; then
AC_MSG_RESULT([using compiler options])
else
AC_MSG_RESULT([using relative paths])
fi
fi
AC_SUBST(FILE_MACRO_CFLAGS)
@@ -782,12 +812,13 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP],
CFLAGS_JVM_COMMON="$ALWAYS_CFLAGS_JVM $ALWAYS_DEFINES_JVM \
$TOOLCHAIN_CFLAGS_JVM ${$1_TOOLCHAIN_CFLAGS_JVM} \
$OS_CFLAGS $OS_CFLAGS_JVM $CFLAGS_OS_DEF_JVM $DEBUG_CFLAGS_JVM \
$WARNING_CFLAGS $WARNING_CFLAGS_JVM $JVM_PICFLAG $FILE_MACRO_CFLAGS"
$WARNING_CFLAGS $WARNING_CFLAGS_JVM $JVM_PICFLAG $FILE_MACRO_CFLAGS \
$REPRODUCIBLE_CFLAGS"
CFLAGS_JDK_COMMON="$ALWAYS_CFLAGS_JDK $ALWAYS_DEFINES_JDK $TOOLCHAIN_CFLAGS_JDK \
$OS_CFLAGS $CFLAGS_OS_DEF_JDK $DEBUG_CFLAGS_JDK $DEBUG_OPTIONS_FLAGS_JDK \
$WARNING_CFLAGS $WARNING_CFLAGS_JDK $DEBUG_SYMBOLS_CFLAGS_JDK \
$FILE_MACRO_CFLAGS"
$FILE_MACRO_CFLAGS $REPRODUCIBLE_CFLAGS"
# Use ${$2EXTRA_CFLAGS} to block EXTRA_CFLAGS to be added to build flags.
# (Currently we don't have any OPENJDK_BUILD_EXTRA_CFLAGS, but that might

View File

@@ -66,11 +66,11 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
# Add -z,defs, to forbid undefined symbols in object files.
# add -z,relro (mark relocations read only) for all libs
# add -z,now ("full relro" - more of the Global Offset Table GOT is marked read only)
BASIC_LDFLAGS="-Wl,--hash-style=gnu -Wl,-z,defs -Wl,-z,relro -Wl,-z,now"
BASIC_LDFLAGS="-Wl,-z,defs -Wl,-z,relro -Wl,-z,now"
# Linux : remove unused code+data in link step
if test "x$ENABLE_LINKTIME_GC" = xtrue; then
if test "x$OPENJDK_TARGET_CPU" = xs390x; then
BASIC_LDFLAGS="$BASIC_LDFLAGS -Wl,--gc-sections -Wl,--print-gc-sections"
BASIC_LDFLAGS="$BASIC_LDFLAGS -Wl,--gc-sections"
else
BASIC_LDFLAGS_JDK_ONLY="$BASIC_LDFLAGS_JDK_ONLY -Wl,--gc-sections"
fi
@@ -106,7 +106,7 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
# Assume clang or gcc.
# FIXME: We should really generalize SET_SHARED_LIBRARY_ORIGIN instead.
OS_LDFLAGS_JVM_ONLY="-Wl,-rpath,@loader_path/. -Wl,-rpath,@loader_path/.."
OS_LDFLAGS_JDK_ONLY="-mmacosx-version-min=$MACOSX_VERSION_MIN"
OS_LDFLAGS="-mmacosx-version-min=$MACOSX_VERSION_MIN"
fi
fi
@@ -137,9 +137,17 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
fi
fi
if test "x$ENABLE_REPRODUCIBLE_BUILD" = "xtrue"; then
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
REPRODUCIBLE_LDFLAGS="-experimental:deterministic"
fi
fi
if test "x$ALLOW_ABSOLUTE_PATHS_IN_OUTPUT" = "xfalse"; then
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
BASIC_LDFLAGS="$BASIC_LDFLAGS -pdbaltpath:%_PDB%"
# PATHMAP_FLAGS is setup in flags-cflags.m4.
FILE_MACRO_LDFLAGS="${PATHMAP_FLAGS}"
fi
fi
@@ -164,6 +172,16 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_CPU_DEP],
$1_CPU_LDFLAGS="$ARM_ARCH_TYPE_FLAGS $ARM_FLOAT_TYPE_FLAGS"
fi
# MIPS ABI does not support GNU hash style
if test "x${OPENJDK_$1_CPU}" = xmips ||
test "x${OPENJDK_$1_CPU}" = xmipsel ||
test "x${OPENJDK_$1_CPU}" = xmips64 ||
test "x${OPENJDK_$1_CPU}" = xmips64el; then
$1_CPU_LDFLAGS="${$1_CPU_LDFLAGS} -Wl,--hash-style=sysv"
else
$1_CPU_LDFLAGS="${$1_CPU_LDFLAGS} -Wl,--hash-style=gnu"
fi
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
if test "x${OPENJDK_$1_CPU_BITS}" = "x32"; then
$1_CPU_EXECUTABLE_LDFLAGS="-stack:327680"
@@ -177,7 +195,7 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_CPU_DEP],
# JVM_VARIANT_PATH depends on if this is build or target...
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
$1_LDFLAGS_JDK_LIBPATH="-libpath:${OUTPUTDIR}/support/modules_libs/java.base"
$1_LDFLAGS_JDK_LIBPATH="-libpath:\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base"
else
$1_LDFLAGS_JDK_LIBPATH="-L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base \
-L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base/${$1_JVM_VARIANT_PATH}"
@@ -185,15 +203,17 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_CPU_DEP],
# Export variables according to old definitions, prefix with $2 if present.
LDFLAGS_JDK_COMMON="$BASIC_LDFLAGS $BASIC_LDFLAGS_JDK_ONLY \
$OS_LDFLAGS_JDK_ONLY $DEBUGLEVEL_LDFLAGS_JDK_ONLY ${$2EXTRA_LDFLAGS}"
$OS_LDFLAGS $DEBUGLEVEL_LDFLAGS_JDK_ONLY ${$2EXTRA_LDFLAGS}"
$2LDFLAGS_JDKLIB="$LDFLAGS_JDK_COMMON $BASIC_LDFLAGS_JDK_LIB_ONLY \
${$1_LDFLAGS_JDK_LIBPATH} $SHARED_LIBRARY_FLAGS"
${$1_LDFLAGS_JDK_LIBPATH} $SHARED_LIBRARY_FLAGS \
$REPRODUCIBLE_LDFLAGS $FILE_MACRO_LDFLAGS"
$2LDFLAGS_JDKEXE="$LDFLAGS_JDK_COMMON $EXECUTABLE_LDFLAGS \
${$1_CPU_EXECUTABLE_LDFLAGS}"
${$1_CPU_EXECUTABLE_LDFLAGS} $REPRODUCIBLE_LDFLAGS $FILE_MACRO_LDFLAGS"
$2JVM_LDFLAGS="$BASIC_LDFLAGS $BASIC_LDFLAGS_JVM_ONLY $OS_LDFLAGS_JVM_ONLY \
$2JVM_LDFLAGS="$BASIC_LDFLAGS $BASIC_LDFLAGS_JVM_ONLY $OS_LDFLAGS $OS_LDFLAGS_JVM_ONLY \
$DEBUGLEVEL_LDFLAGS $DEBUGLEVEL_LDFLAGS_JVM_ONLY $BASIC_LDFLAGS_ONLYCXX \
${$1_CPU_LDFLAGS} ${$1_CPU_LDFLAGS_JVM_ONLY} ${$2EXTRA_LDFLAGS}"
${$1_CPU_LDFLAGS} ${$1_CPU_LDFLAGS_JVM_ONLY} ${$2EXTRA_LDFLAGS} \
$REPRODUCIBLE_LDFLAGS $FILE_MACRO_LDFLAGS"
AC_SUBST($2LDFLAGS_JDKLIB)
AC_SUBST($2LDFLAGS_JDKEXE)

View File

@@ -226,6 +226,14 @@ AC_DEFUN([FLAGS_SETUP_SYSROOT_FLAGS],
fi
fi
# For the microsoft toolchain, we need to get the SYSROOT flags from the
# Visual Studio environment. Currently we cannot handle this as a separate
# build toolchain.
if test "x$1" = x && test "x$OPENJDK_BUILD_OS" = "xwindows" \
&& test "x$TOOLCHAIN_TYPE" = "xmicrosoft"; then
TOOLCHAIN_SETUP_VISUAL_STUDIO_ENV
fi
AC_SUBST($1SYSROOT_CFLAGS)
AC_SUBST($1SYSROOT_LDFLAGS)
])
@@ -234,6 +242,7 @@ AC_DEFUN_ONCE([FLAGS_PRE_TOOLCHAIN],
[
# We should always include user supplied flags
FLAGS_SETUP_USER_SUPPLIED_FLAGS
# The sysroot flags are needed for configure to be able to run the compilers
FLAGS_SETUP_SYSROOT_FLAGS
@@ -258,10 +267,6 @@ AC_DEFUN_ONCE([FLAGS_PRE_TOOLCHAIN],
GLOBAL_LDFLAGS="$MACHINE_FLAG $SYSROOT_LDFLAGS $USER_LDFLAGS"
# FIXME: Don't really know how to do with this, but this was the old behavior
GLOBAL_CPPFLAGS="$SYSROOT_CFLAGS"
AC_SUBST(GLOBAL_CFLAGS)
AC_SUBST(GLOBAL_CXXFLAGS)
AC_SUBST(GLOBAL_LDFLAGS)
AC_SUBST(GLOBAL_CPPFLAGS)
# FIXME: For compatilibity, export this as EXTRA_CFLAGS for now.
EXTRA_CFLAGS="$MACHINE_FLAG $USER_CFLAGS"
@@ -280,6 +285,14 @@ AC_DEFUN_ONCE([FLAGS_PRE_TOOLCHAIN],
CXXFLAGS="$GLOBAL_CXXFLAGS"
LDFLAGS="$GLOBAL_LDFLAGS"
CPPFLAGS="$GLOBAL_CPPFLAGS"
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
# When autoconf sends both compiler and linker flags to cl.exe at the same
# time, linker flags must be last at the command line. Achieve this by
# moving them to LIBS.
LIBS="$LIBS -link $LDFLAGS"
LDFLAGS=""
fi
])
AC_DEFUN([FLAGS_SETUP_TOOLCHAIN_CONTROL],
@@ -370,9 +383,6 @@ AC_DEFUN_ONCE([FLAGS_POST_TOOLCHAIN],
BUILD_SYSROOT_LDFLAGS="$SYSROOT_LDFLAGS"
fi
fi
AC_SUBST(BUILD_SYSROOT_CFLAGS)
AC_SUBST(BUILD_SYSROOT_LDFLAGS)
])
AC_DEFUN([FLAGS_SETUP_FLAGS],

View File

@@ -25,7 +25,7 @@
AC_DEFUN_ONCE([HELP_SETUP_DEPENDENCY_HELP],
[
AC_CHECK_PROGS(PKGHANDLER, zypper apt-get yum brew port pkgutil pkgadd)
UTIL_LOOKUP_PROGS(PKGHANDLER, zypper apt-get yum brew port pkgutil pkgadd pacman)
])
AC_DEFUN([HELP_MSG_MISSING_DEPENDENCY],
@@ -38,8 +38,6 @@ AC_DEFUN([HELP_MSG_MISSING_DEPENDENCY],
HELP_MSG="OpenJDK distributions are available at http://jdk.java.net/."
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
cygwin_help $MISSING_DEPENDENCY
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
msys_help $MISSING_DEPENDENCY
else
PKGHANDLER_COMMAND=
@@ -58,6 +56,8 @@ AC_DEFUN([HELP_MSG_MISSING_DEPENDENCY],
pkgadd_help $MISSING_DEPENDENCY ;;
zypper)
zypper_help $MISSING_DEPENDENCY ;;
pacman)
pacman_help $MISSING_DEPENDENCY ;;
esac
if test "x$PKGHANDLER_COMMAND" != x; then
@@ -83,10 +83,6 @@ cygwin_help() {
esac
}
msys_help() {
PKGHANDLER_COMMAND=""
}
apt_help() {
case $1 in
reduced)
@@ -165,6 +161,17 @@ brew_help() {
esac
}
pacman_help() {
case $1 in
unzip)
PKGHANDLER_COMMAND="sudo pacman -S unzip" ;;
zip)
PKGHANDLER_COMMAND="sudo pacman -S zip" ;;
make)
PKGHANDLER_COMMAND="sudo pacman -S make" ;;
esac
}
port_help() {
PKGHANDLER_COMMAND=""
}
@@ -238,6 +245,7 @@ AC_DEFUN_ONCE([HELP_PRINT_SUMMARY_AND_WARNINGS],
printf "\n"
printf "Configuration summary:\n"
printf "* Name: $CONF_NAME\n"
printf "* Debug level: $DEBUG_LEVEL\n"
printf "* HS debug level: $HOTSPOT_DEBUG_LEVEL\n"
printf "* JVM variants: $JVM_VARIANTS\n"
@@ -256,16 +264,13 @@ AC_DEFUN_ONCE([HELP_PRINT_SUMMARY_AND_WARNINGS],
printf "\n"
printf "Tools summary:\n"
if test "x$OPENJDK_BUILD_OS" = "xwindows"; then
printf "* Environment: $WINDOWS_ENV_VENDOR version $WINDOWS_ENV_VERSION. Windows version $WINDOWS_VERSION"
if test "x$WINDOWS_ENV_ROOT_PATH" != "x"; then
printf ". Root at $WINDOWS_ENV_ROOT_PATH"
fi
printf "\n"
printf "* Environment: %s version %s; windows version %s; prefix \"%s\"; root \"%s\"\n" \
"$WINENV_VENDOR" "$WINENV_VERSION" "$WINDOWS_VERSION" "$WINENV_PREFIX" "$WINENV_ROOT"
fi
printf "* Boot JDK: $BOOT_JDK_VERSION (at $BOOT_JDK)\n"
printf "* Toolchain: $TOOLCHAIN_TYPE ($TOOLCHAIN_DESCRIPTION)\n"
printf "* C Compiler: Version $CC_VERSION_NUMBER (at $CC)\n"
printf "* C++ Compiler: Version $CXX_VERSION_NUMBER (at $CXX)\n"
printf "* C Compiler: Version $CC_VERSION_NUMBER (at ${CC#"$FIXPATH "})\n"
printf "* C++ Compiler: Version $CXX_VERSION_NUMBER (at ${CXX#"$FIXPATH "})\n"
printf "\n"
printf "Build performance summary:\n"

View File

@@ -388,9 +388,9 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_CODE_COVERAGE],
UTIL_FIXUP_PATH(JCOV_HOME)
if test "x$with_jcov_input_jdk" != "x" ; then
JCOV_INPUT_JDK="$with_jcov_input_jdk"
if test ! -f "$JCOV_INPUT_JDK/bin/java$EXE_SUFFIX"; then
if test ! -f "$JCOV_INPUT_JDK/bin/java" && test ! -f "$JCOV_INPUT_JDK/bin/java.exe"; then
AC_MSG_RESULT([fail])
AC_MSG_ERROR([Invalid JDK bundle: "$JCOV_INPUT_JDK/bin/java$EXE_SUFFIX" does not exist])
AC_MSG_ERROR([Invalid JDK bundle: "$JCOV_INPUT_JDK/bin/java" does not exist])
fi
UTIL_FIXUP_PATH(JCOV_INPUT_JDK)
fi
@@ -664,10 +664,27 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_REPRODUCIBLE_BUILD],
fi
fi
UTIL_ARG_ENABLE(NAME: reproducible-build, DEFAULT: $with_source_date_present,
REPRODUCIBLE_BUILD_DEFAULT=$with_source_date_present
if test "x$OPENJDK_BUILD_OS" = xwindows && \
test "x$ALLOW_ABSOLUTE_PATHS_IN_OUTPUT" = xfalse; then
# To support banning absolute paths on Windows, we must use the -pathmap
# method, which requires reproducible builds.
REPRODUCIBLE_BUILD_DEFAULT=true
fi
UTIL_ARG_ENABLE(NAME: reproducible-build, DEFAULT: $REPRODUCIBLE_BUILD_DEFAULT,
RESULT: ENABLE_REPRODUCIBLE_BUILD,
DESC: [enable reproducible builds (not yet fully functional)],
DEFAULT_DESC: [enabled if --with-source-date is given])
DEFAULT_DESC: [enabled if --with-source-date is given or on Windows without absolute paths])
if test "x$OPENJDK_BUILD_OS" = xwindows && \
test "x$ALLOW_ABSOLUTE_PATHS_IN_OUTPUT" = xfalse && \
test "x$ENABLE_REPRODUCIBLE_BUILD" = xfalse; then
AC_MSG_NOTICE([On Windows it is not possible to combine --disable-reproducible-builds])
AC_MSG_NOTICE([with --disable-absolute-paths-in-output.])
AC_MSG_ERROR([Cannot continue])
fi
AC_SUBST(SOURCE_DATE)
AC_SUBST(ENABLE_REPRODUCIBLE_BUILD)

View File

@@ -159,7 +159,7 @@ AC_DEFUN_ONCE([JVM_FEATURES_PARSE_OPTIONS],
# Likewise, check for deprecated arguments.
m4_foreach(FEATURE, m4_split(jvm_features_deprecated), [
AC_ARG_ENABLE(jvm-feature-FEATURE, AS_HELP_STRING(
[--enable-jvm-feature-FEATURE],
[--enable-jvm-feature-FEATURE],
[Deprecated. Option is kept for backwards compatibility and is ignored]))
m4_define(FEATURE_SHELL, [enable_jvm_feature_]m4_translit(FEATURE, -, _))
@@ -306,7 +306,7 @@ AC_DEFUN_ONCE([JVM_FEATURES_CHECK_GRAAL],
# Graal is only available where JVMCI is available since it requires JVMCI.
if test "x$OPENJDK_TARGET_CPU" = "xx86_64"; then
AC_MSG_RESULT([yes])
elif test "x$OPENJDK_TARGET_OS-$OPENJDK_TARGET_CPU" = "xlinux-aarch64"; then
elif test "x$OPENJDK_TARGET_CPU" = "xaarch64"; then
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no, $OPENJDK_TARGET_CPU])
@@ -340,7 +340,7 @@ AC_DEFUN_ONCE([JVM_FEATURES_CHECK_JVMCI],
AC_MSG_CHECKING([if platform is supported by JVMCI])
if test "x$OPENJDK_TARGET_CPU" = "xx86_64"; then
AC_MSG_RESULT([yes])
elif test "x$OPENJDK_TARGET_OS-$OPENJDK_TARGET_CPU" = "xlinux-aarch64"; then
elif test "x$OPENJDK_TARGET_CPU" = "xaarch64"; then
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no, $OPENJDK_TARGET_CPU])
@@ -476,7 +476,7 @@ AC_DEFUN([JVM_FEATURES_PREPARE_VARIANT],
JVM_FEATURES_VARIANT_UNAVAILABLE="cds minimal zero"
elif test "x$variant" = "xzero"; then
JVM_FEATURES_VARIANT_UNAVAILABLE="aot cds compiler1 compiler2 \
epsilongc g1gc graal jvmci minimal shenandoahgc zgc"
graal jvmci minimal zgc"
else
JVM_FEATURES_VARIANT_UNAVAILABLE="minimal zero"
fi

View File

@@ -124,6 +124,14 @@ AC_DEFUN_ONCE([LIB_SETUP_LIBRARIES],
BASIC_JVM_LIBS="$BASIC_JVM_LIBS -lpthread"
fi
# Libatomic library
# 32-bit MIPS needs fallback library for 8-byte atomic ops
if test "x$OPENJDK_TARGET_OS" = xlinux &&
(test "x$OPENJDK_TARGET_CPU" = xmips ||
test "x$OPENJDK_TARGET_CPU" = xmipsel); then
BASIC_JVM_LIBS="$BASIC_JVM_LIBS -latomic"
fi
# perfstat lib
if test "x$OPENJDK_TARGET_OS" = xaix; then
BASIC_JVM_LIBS="$BASIC_JVM_LIBS -lperfstat"

View File

@@ -206,9 +206,9 @@ AC_DEFUN([PLATFORM_EXTRACT_VARS_FROM_OS],
VAR_OS=windows
VAR_OS_ENV=windows.wsl
;;
*mingw*)
*msys*)
VAR_OS=windows
VAR_OS_ENV=windows.msys
VAR_OS_ENV=windows.msys2
;;
*aix*)
VAR_OS=aix

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2020, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -28,9 +28,6 @@ AC_DEFUN_ONCE([SRCDIRS_SETUP_DIRS],
OUTPUTDIR="$OUTPUTDIR"
AC_SUBST(OUTPUTDIR)
JDK_OUTPUTDIR="$OUTPUTDIR/jdk"
# Where are the sources.
AC_SUBST(TOPDIR)
])
################################################################################

View File

@@ -131,20 +131,24 @@ ENABLE_REPRODUCIBLE_BUILD := @ENABLE_REPRODUCIBLE_BUILD@
LIBM:=@LIBM@
LIBDL:=@LIBDL@
# colon or semicolon
PATH_SEP:=@PATH_SEP@
WINENV_ROOT := @WINENV_ROOT@
WINENV_PREFIX := @WINENV_PREFIX@
ifneq ($(findstring windows.wsl, @OPENJDK_BUILD_OS_ENV@), )
# Tell WSL to convert PATH between linux and windows
export WSLENV := PATH/l
else ifeq (@OPENJDK_BUILD_OS_ENV@, windows.msys2)
# Prohibit msys2 from attemping any path wrangling
export MSYS2_ARG_CONV_EXCL := "*"
endif
# Save the original path before replacing it with the Visual Studio tools
ORIGINAL_PATH:=@ORIGINAL_PATH@
ifeq ($(OPENJDK_TARGET_OS), windows)
# On Windows, the Visual Studio toolchain needs the PATH to be adjusted
# to include Visual Studio tools (this needs to be in cygwin/msys style).
ifeq ($(OPENJDK_TARGET_OS_ENV), windows.wsl)
export FIXPATH_PATH:=@VS_PATH_WINDOWS@
export WSLENV:=$(WSLENV):FIXPATH_PATH:DEBUG_FIXPATH
else
export PATH:=@VS_PATH@
endif
ORIGINAL_PATH := @ORIGINAL_PATH@
ifeq (@TOOLCHAIN_TYPE@, microsoft)
# The Visual Studio toolchain needs the PATH to be adjusted to include
# Visual Studio tools.
export PATH := @TOOLCHAIN_PATH@:$(PATH)
endif
SYSROOT_CFLAGS := @SYSROOT_CFLAGS@
@@ -488,7 +492,7 @@ ADLC_LANGSTD_CXXFLAGS=@ADLC_LANGSTD_CXXFLAGS@
ADLC_LDFLAGS=@ADLC_LDFLAGS@
# Tools that potentially need to be cross compilation aware.
CC:=@FIXPATH@ @CCACHE@ @ICECC@ @CC@
CC := @CCACHE@ @ICECC@ @CC@
# CFLAGS used to compile the jdk native libraries (C-code)
CFLAGS_JDKLIB:=@CFLAGS_JDKLIB@
@@ -510,12 +514,12 @@ EXTRA_CXXFLAGS = @EXTRA_CXXFLAGS@
EXTRA_LDFLAGS = @EXTRA_LDFLAGS@
EXTRA_ASFLAGS = @EXTRA_ASFLAGS@
CXX:=@FIXPATH@ @CCACHE@ @ICECC@ @CXX@
CXX := @CCACHE@ @ICECC@ @CXX@
CPP:=@FIXPATH@ @CPP@
CPP := @CPP@
# The linker can be gcc or ld on unix systems, or link.exe on windows systems.
LD:=@FIXPATH@ @LD@
LD := @LD@
# Linker used by the jaotc tool for AOT compilation.
LD_JAOTC:=@LD_JAOTC@
@@ -535,7 +539,7 @@ JDKEXE_LIBS:=@JDKEXE_LIBS@
LDFLAGS_CXX_JDK:=@LDFLAGS_CXX_JDK@
# Sometimes a different linker is needed for c++ libs
LDCXX:=@FIXPATH@ @LDCXX@
LDCXX := @LDCXX@
# The flags for linking libstdc++ linker.
LIBCXX:=@LIBCXX@
@@ -544,22 +548,22 @@ LDFLAGS_TESTEXE:=@LDFLAGS_TESTEXE@
# BUILD_CC/BUILD_LD is a compiler/linker that generates code that is runnable on the
# build platform.
BUILD_CC:=@FIXPATH@ @BUILD_ICECC@ @BUILD_CC@
BUILD_CXX:=@FIXPATH@ @BUILD_ICECC@ @BUILD_CXX@
BUILD_LD:=@FIXPATH@ @BUILD_LD@
BUILD_LDCXX:=@FIXPATH@ @BUILD_LDCXX@
BUILD_AS:=@FIXPATH@ @BUILD_AS@
BUILD_AR:=@FIXPATH@ @BUILD_AR@
BUILD_NM:=@FIXPATH@ @BUILD_NM@
BUILD_CC := @BUILD_ICECC@ @BUILD_CC@
BUILD_CXX := @BUILD_ICECC@ @BUILD_CXX@
BUILD_LD := @BUILD_LD@
BUILD_LDCXX := @BUILD_LDCXX@
BUILD_AS := @BUILD_AS@
BUILD_AR := @BUILD_AR@
BUILD_NM := @BUILD_NM@
BUILD_OBJCOPY:=@BUILD_OBJCOPY@
BUILD_STRIP:=@BUILD_STRIP@
BUILD_SYSROOT_CFLAGS:=@BUILD_SYSROOT_CFLAGS@
BUILD_SYSROOT_LDFLAGS:=@BUILD_SYSROOT_LDFLAGS@
AS:=@FIXPATH@ @AS@
AS := @AS@
# AR is used to create a static library (is ar in unix, lib.exe in windows)
AR:=@FIXPATH@ @AR@
AR := @AR@
ARFLAGS:=@ARFLAGS@
NM:=@NM@
@@ -608,7 +612,7 @@ STATIC_LIBRARY=@STATIC_LIBRARY@
LIBRARY_PREFIX:=@LIBRARY_PREFIX@
SHARED_LIBRARY_SUFFIX:=@SHARED_LIBRARY_SUFFIX@
STATIC_LIBRARY_SUFFIX:=@STATIC_LIBRARY_SUFFIX@
EXE_SUFFIX:=@EXE_SUFFIX@
EXECUTABLE_SUFFIX:=@EXECUTABLE_SUFFIX@
OBJ_SUFFIX:=@OBJ_SUFFIX@
STATIC_BUILD:=@STATIC_BUILD@
@@ -629,18 +633,15 @@ JAVADOC_CMD:=@JAVADOC@
JAR_CMD:=@JAR@
JLINK_CMD := @JLINK@
JMOD_CMD := @JMOD@
JARSIGNER_CMD:=@JARSIGNER@
# These variables are meant to be used. They are defined with = instead of := to make
# it possible to override only the *_CMD variables.
JAVA=@FIXPATH@ $(JAVA_CMD) $(JAVA_FLAGS_BIG) $(JAVA_FLAGS)
JAVA_SMALL=@FIXPATH@ $(JAVA_CMD) $(JAVA_FLAGS_SMALL) $(JAVA_FLAGS)
JAVA_DETACH =@FIXPATH@ @FIXPATH_DETACH_FLAG@ $(JAVA_CMD) $(JAVA_FLAGS_BIG) $(JAVA_FLAGS)
JAVAC=@FIXPATH@ $(JAVAC_CMD)
JAVADOC=@FIXPATH@ $(JAVADOC_CMD)
JAR=@FIXPATH@ $(JAR_CMD)
JLINK = @FIXPATH@ $(JLINK_CMD)
JMOD = @FIXPATH@ $(JMOD_CMD) $(JAVA_TOOL_FLAGS_SMALL)
JARSIGNER=@FIXPATH@ $(JARSIGNER_CMD)
JAVA = $(JAVA_CMD) $(JAVA_FLAGS_BIG) $(JAVA_FLAGS)
JAVA_SMALL = $(JAVA_CMD) $(JAVA_FLAGS_SMALL) $(JAVA_FLAGS)
JAVAC = $(JAVAC_CMD)
JAVADOC = $(JAVADOC_CMD)
JAR = $(JAR_CMD)
JLINK = $(JLINK_CMD)
JMOD = $(JMOD_CMD) $(JAVA_TOOL_FLAGS_SMALL)
BUILD_JAVA_FLAGS := @BOOTCYCLE_JVM_ARGS_BIG@
BUILD_JAVA=@FIXPATH@ $(BUILD_JDK)/bin/java $(BUILD_JAVA_FLAGS)
@@ -685,9 +686,7 @@ CCACHE:=@CCACHE@
CD:=cd
CHMOD:=@CHMOD@
CODESIGN:=@CODESIGN@
COMM:=@COMM@
CP:=@CP@
CPIO:=@CPIO@
CUT:=@CUT@
DATE:=@DATE@
DIFF:=@DIFF@
@@ -707,9 +706,8 @@ LN:=@LN@
MIG:=@MIG@
MKDIR:=@MKDIR@
MV:=@MV@
NAWK:=@NAWK@
NICE:=@NICE@
PANDOC:=@FIXPATH@ @PANDOC@
PANDOC:=@PANDOC@
PATCH:=@PATCH@
PRINTF:=@PRINTF@
READLINK:=@READLINK@
@@ -725,15 +723,14 @@ TIME:=@TIME@
IS_GNU_TIME:=@IS_GNU_TIME@
TR:=@TR@
TOUCH:=@TOUCH@
UNIQ:=@UNIQ@
WC:=@WC@
XARGS:=@XARGS@
ZIPEXE:=@ZIPEXE@
UNZIP:=@UNZIP@
MT:=@FIXPATH@ @MT@
RC:=@FIXPATH@ @RC@
DUMPBIN:=@FIXPATH@ @DUMPBIN@
CYGPATH:=@CYGPATH@
MT:=@MT@
RC:=@RC@
DUMPBIN:=@DUMPBIN@
PATHTOOL:=@PATHTOOL@
WSLPATH:=@WSLPATH@
LDD:=@LDD@
OTOOL:=@OTOOL@
@@ -750,7 +747,8 @@ JT_HOME:=@JT_HOME@
JIB_HOME:=@JIB_HOME@
XCODEBUILD=@XCODEBUILD@
DTRACE := @DTRACE@
FIXPATH:=@FIXPATH@
FIXPATH := @FIXPATH@
FIXPATH_BASE := @FIXPATH_BASE@
ULIMIT:=@ULIMIT@
TAR_TYPE:=@TAR_TYPE@

View File

@@ -32,7 +32,7 @@
# compilers and related tools that are used.
########################################################################
m4_include([toolchain_windows.m4])
m4_include([toolchain_microsoft.m4])
# All valid toolchains, regardless of platform (used by help.m4)
VALID_TOOLCHAINS_all="gcc clang xlc microsoft"
@@ -179,6 +179,7 @@ AC_DEFUN([TOOLCHAIN_SETUP_FILENAME_PATTERNS],
SHARED_LIBRARY='[$]1.dll'
STATIC_LIBRARY='[$]1.lib'
OBJ_SUFFIX='.obj'
EXECUTABLE_SUFFIX='.exe'
else
LIBRARY_PREFIX=lib
SHARED_LIBRARY_SUFFIX='.so'
@@ -186,6 +187,7 @@ AC_DEFUN([TOOLCHAIN_SETUP_FILENAME_PATTERNS],
SHARED_LIBRARY='lib[$]1.so'
STATIC_LIBRARY='lib[$]1.a'
OBJ_SUFFIX='.o'
EXECUTABLE_SUFFIX=''
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
# For full static builds, we're overloading the SHARED_LIBRARY
# variables in order to limit the amount of changes required.
@@ -209,6 +211,7 @@ AC_DEFUN([TOOLCHAIN_SETUP_FILENAME_PATTERNS],
AC_SUBST(SHARED_LIBRARY)
AC_SUBST(STATIC_LIBRARY)
AC_SUBST(OBJ_SUFFIX)
AC_SUBST(EXECUTABLE_SUFFIX)
])
# Determine which toolchain type to use, and make sure it is valid for this
@@ -292,12 +295,12 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETERMINE_TOOLCHAIN_TYPE],
TOOLCHAIN_CC_BINARY_clang="clang"
TOOLCHAIN_CC_BINARY_gcc="gcc"
TOOLCHAIN_CC_BINARY_microsoft="cl$EXE_SUFFIX"
TOOLCHAIN_CC_BINARY_microsoft="cl"
TOOLCHAIN_CC_BINARY_xlc="xlclang"
TOOLCHAIN_CXX_BINARY_clang="clang++"
TOOLCHAIN_CXX_BINARY_gcc="g++"
TOOLCHAIN_CXX_BINARY_microsoft="cl$EXE_SUFFIX"
TOOLCHAIN_CXX_BINARY_microsoft="cl"
TOOLCHAIN_CXX_BINARY_xlc="xlclang++"
# Use indirect variable referencing
@@ -325,9 +328,6 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETERMINE_TOOLCHAIN_TYPE],
# special setup, e.g. additional paths etc.
AC_DEFUN_ONCE([TOOLCHAIN_PRE_DETECTION],
[
# FIXME: Is this needed?
AC_LANG(C++)
# Store the CFLAGS etc passed to the configure script.
ORG_CFLAGS="$CFLAGS"
ORG_CXXFLAGS="$CXXFLAGS"
@@ -335,52 +335,26 @@ AC_DEFUN_ONCE([TOOLCHAIN_PRE_DETECTION],
# autoconf magic only relies on PATH, so update it if tools dir is specified
OLD_PATH="$PATH"
# On Windows, we need to detect the visual studio installation first.
# This will change the PATH, but we need to keep that new PATH even
# after toolchain detection is done, since the compiler (on x86) uses
# it for DLL resolution in runtime.
if test "x$OPENJDK_BUILD_OS" = "xwindows" \
&& test "x$TOOLCHAIN_TYPE" = "xmicrosoft"; then
TOOLCHAIN_SETUP_VISUAL_STUDIO_ENV
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
# Append VS_PATH. In WSL, VS_PATH will not contain the WSL env path needed
# for using basic Unix tools, so need to keep the original PATH.
UTIL_APPEND_TO_PATH(PATH, $VS_PATH)
UTIL_APPEND_TO_PATH(WSLENV, "PATH/l:LIB:INCLUDE")
export WSLENV
else
# Reset path to VS_PATH. It will include everything that was on PATH at the time we
# ran TOOLCHAIN_SETUP_VISUAL_STUDIO_ENV.
PATH="$VS_PATH"
fi
# The microsoft toolchain also requires INCLUDE and LIB to be set.
export INCLUDE="$VS_INCLUDE"
export LIB="$VS_LIB"
else
if test "x$XCODE_VERSION_OUTPUT" != x; then
# For Xcode, we set the Xcode version as TOOLCHAIN_VERSION
TOOLCHAIN_VERSION=`$ECHO $XCODE_VERSION_OUTPUT | $CUT -f 2 -d ' '`
TOOLCHAIN_DESCRIPTION="$TOOLCHAIN_DESCRIPTION from Xcode $TOOLCHAIN_VERSION"
else
# Currently we do not define this for other toolchains. This might change as the need arise.
TOOLCHAIN_VERSION=
fi
if test "x$XCODE_VERSION_OUTPUT" != x; then
# For Xcode, we set the Xcode version as TOOLCHAIN_VERSION
TOOLCHAIN_VERSION=`$ECHO $XCODE_VERSION_OUTPUT | $CUT -f 2 -d ' '`
TOOLCHAIN_DESCRIPTION="$TOOLCHAIN_DESCRIPTION from Xcode $TOOLCHAIN_VERSION"
fi
AC_SUBST(TOOLCHAIN_VERSION)
# Finally add TOOLCHAIN_PATH at the beginning, to allow --with-tools-dir to
# Finally prepend TOOLCHAIN_PATH to the PATH, to allow --with-tools-dir to
# override all other locations.
if test "x$TOOLCHAIN_PATH" != x; then
PATH=$TOOLCHAIN_PATH:$PATH
export PATH=$TOOLCHAIN_PATH:$PATH
fi
])
# Restore path, etc
AC_DEFUN_ONCE([TOOLCHAIN_POST_DETECTION],
[
# Restore old path, except for the microsoft toolchain, which requires VS_PATH
# to remain in place. Otherwise the compiler will not work in some siutations
# in later configure checks.
# Restore old path, except for the microsoft toolchain, which requires the
# toolchain path to remain in place. Otherwise the compiler will not work in
# some siutations in later configure checks.
if test "x$TOOLCHAIN_TYPE" != "xmicrosoft"; then
PATH="$OLD_PATH"
fi
@@ -427,7 +401,7 @@ AC_DEFUN([TOOLCHAIN_EXTRACT_COMPILER_VERSION],
# First line typically looks something like:
# Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.40219.01 for 80x86
# but the compiler name may vary depending on locale.
COMPILER_VERSION_OUTPUT=`"$COMPILER" 2>&1 | $GREP -v 'ERROR.*UtilTranslatePathList' | $HEAD -n 1 | $TR -d '\r'`
COMPILER_VERSION_OUTPUT=`$COMPILER 2>&1 1>/dev/null | $HEAD -n 1 | $TR -d '\r'`
# Check that this is likely to be Microsoft CL.EXE.
$ECHO "$COMPILER_VERSION_OUTPUT" | $GREP "Microsoft" > /dev/null
if test $? -ne 0; then
@@ -506,7 +480,7 @@ AC_DEFUN([TOOLCHAIN_FIND_COMPILER],
if test "x`basename [$]$1`" = "x[$]$1"; then
# A command without a complete path is provided, search $PATH.
AC_PATH_PROGS(POTENTIAL_$1, [$]$1)
UTIL_LOOKUP_PROGS(POTENTIAL_$1, [$]$1)
if test "x$POTENTIAL_$1" != x; then
$1=$POTENTIAL_$1
else
@@ -528,34 +502,16 @@ AC_DEFUN([TOOLCHAIN_FIND_COMPILER],
# If we are not cross compiling, then the default compiler name will be
# used.
$1=
# If TOOLCHAIN_PATH is set, check for all compiler names in there first
# before checking the rest of the PATH.
# FIXME: Now that we prefix the TOOLS_DIR to the PATH in the PRE_DETECTION
# step, this should not be necessary.
if test -n "$TOOLCHAIN_PATH"; then
PATH_save="$PATH"
PATH="$TOOLCHAIN_PATH"
AC_PATH_TOOL(TOOLCHAIN_PATH_$1, $SEARCH_LIST)
$1=$TOOLCHAIN_PATH_$1
PATH="$PATH_save"
fi
# AC_PATH_TOOL can't be run multiple times with the same variable,
# so create a new name for this run.
if test "x[$]$1" = x; then
AC_PATH_TOOL(POTENTIAL_$1, $SEARCH_LIST)
UTIL_LOOKUP_TOOLCHAIN_PROGS(POTENTIAL_$1, $SEARCH_LIST)
if test "x$POTENTIAL_$1" != x; then
$1=$POTENTIAL_$1
fi
if test "x[$]$1" = x; then
else
HELP_MSG_MISSING_DEPENDENCY([devkit])
AC_MSG_ERROR([Could not find a $COMPILER_NAME compiler. $HELP_MSG])
fi
fi
# Now we have a compiler binary in $1. Make sure it's okay.
UTIL_FIXUP_EXECUTABLE($1)
TEST_COMPILER="[$]$1"
AC_MSG_CHECKING([resolved symbolic links for $1])
@@ -596,12 +552,7 @@ AC_DEFUN([TOOLCHAIN_EXTRACT_LD_VERSION],
# There is no specific version flag, but all output starts with a version string.
# First line typically looks something like:
# Microsoft (R) Incremental Linker Version 12.00.31101.0
# Reset PATH since it can contain a mix of WSL/linux paths and Windows paths from VS,
# which, in combination with WSLENV, will make the WSL layer complain
old_path="$PATH"
PATH=
LINKER_VERSION_STRING=`$LD 2>&1 | $HEAD -n 1 | $TR -d '\r'`
PATH="$old_path"
LINKER_VERSION_STRING=`$LINKER 2>&1 | $HEAD -n 1 | $TR -d '\r'`
# Extract version number
[ LINKER_VERSION_NUMBER=`$ECHO $LINKER_VERSION_STRING | \
$SED -e 's/.* \([0-9][0-9]*\(\.[0-9][0-9]*\)*\).*/\1/'` ]
@@ -612,7 +563,7 @@ AC_DEFUN([TOOLCHAIN_EXTRACT_LD_VERSION],
# This program is free software; [...]
# If using gold it will look like:
# GNU gold (GNU Binutils 2.30) 1.15
LINKER_VERSION_STRING=`$LD -Wl,--version 2> /dev/null | $HEAD -n 1`
LINKER_VERSION_STRING=`$LINKER -Wl,--version 2> /dev/null | $HEAD -n 1`
# Extract version number
if [ [[ "$LINKER_VERSION_STRING" == *gold* ]] ]; then
[ LINKER_VERSION_NUMBER=`$ECHO $LINKER_VERSION_STRING | \
@@ -629,7 +580,7 @@ AC_DEFUN([TOOLCHAIN_EXTRACT_LD_VERSION],
# or
# GNU ld (GNU Binutils for Ubuntu) 2.26.1
LINKER_VERSION_STRING=`$LD -Wl,-v 2>&1 | $HEAD -n 1`
LINKER_VERSION_STRING=`$LINKER -Wl,-v 2>&1 | $HEAD -n 1`
# Check if we're using the GNU ld
$ECHO "$LINKER_VERSION_STRING" | $GREP "GNU" > /dev/null
if test $? -eq 0; then
@@ -649,6 +600,23 @@ AC_DEFUN([TOOLCHAIN_EXTRACT_LD_VERSION],
AC_MSG_NOTICE([Using $TOOLCHAIN_TYPE $LINKER_NAME version $LINKER_VERSION_NUMBER @<:@$LINKER_VERSION_STRING@:>@])
])
# Make sure we did not pick up /usr/bin/link, which is the unix-style link
# executable.
#
# $1 = linker to test (LD or BUILD_LD)
AC_DEFUN(TOOLCHAIN_VERIFY_LINK_BINARY,
[
LINKER=[$]$1
AC_MSG_CHECKING([if the found link.exe is actually the Visual Studio linker])
$LINKER --version > /dev/null
if test $? -eq 0 ; then
AC_MSG_RESULT([no])
AC_MSG_ERROR([$LINKER is the winenv link tool. Please check your PATH and rerun configure.])
else
AC_MSG_RESULT([yes])
fi
])
# Detect the core components of the toolchain, i.e. the compilers (CC and CXX),
# preprocessor (CPP and CXXCPP), the linker (LD), the assembler (AS) and the
# archiver (AR). Verify that the compilers are correct according to the
@@ -693,39 +661,18 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETECT_TOOLCHAIN_CORE],
#
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
# In the Microsoft toolchain we have a separate LD command "link".
# Make sure we reject /usr/bin/link (as determined in CYGWIN_LINK), which is
# a cygwin program for something completely different.
AC_CHECK_PROG([LD], [link$EXE_SUFFIX],[link$EXE_SUFFIX],,, [$CYGWIN_LINK])
UTIL_FIXUP_EXECUTABLE(LD)
# Verify that we indeed succeeded with this trick.
AC_MSG_CHECKING([if the found link.exe is actually the Visual Studio linker])
# Reset PATH since it can contain a mix of WSL/linux paths and Windows paths from VS,
# which, in combination with WSLENV, will make the WSL layer complain
old_path="$PATH"
PATH=
"$LD" --version > /dev/null
if test $? -eq 0 ; then
AC_MSG_RESULT([no])
AC_MSG_ERROR([This is the Cygwin link tool. Please check your PATH and rerun configure.])
else
AC_MSG_RESULT([yes])
fi
PATH="$old_path"
UTIL_LOOKUP_TOOLCHAIN_PROGS(LD, link)
TOOLCHAIN_VERIFY_LINK_BINARY(LD)
LDCXX="$LD"
# jaotc being a windows program expects the linker to be supplied with exe suffix.
LD_JAOTC="$LD$EXE_SUFFIX"
# jaotc being a windows program expects the linker to be supplied with exe suffix.but without
# fixpath
LD_JAOTC="${LD##$FIXPATH }"
else
# All other toolchains use the compiler to link.
LD="$CC"
LDCXX="$CXX"
# jaotc expects 'ld' as the linker rather than the compiler.
UTIL_CHECK_TOOLS([LD_JAOTC], ld)
UTIL_FIXUP_EXECUTABLE(LD_JAOTC)
UTIL_LOOKUP_TOOLCHAIN_PROGS(LD_JAOTC, ld)
fi
AC_SUBST(LD)
AC_SUBST(LD_JAOTC)
@@ -746,8 +693,12 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETECT_TOOLCHAIN_CORE],
#
# Setup the assembler (AS)
#
# FIXME: is this correct for microsoft?
AS="$CC -c"
if test "x$TOOLCHAIN_TYPE" != xmicrosoft; then
AS="$CC -c"
else
# On windows, the assember is "ml.exe"
UTIL_LOOKUP_TOOLCHAIN_PROGS(AS, ml)
fi
AC_SUBST(AS)
#
@@ -755,13 +706,12 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETECT_TOOLCHAIN_CORE],
#
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
# The corresponding ar tool is lib.exe (used to create static libraries)
AC_CHECK_PROG([AR], [lib$EXE_SUFFIX],[lib$EXE_SUFFIX],,,)
UTIL_LOOKUP_TOOLCHAIN_PROGS(AR, lib)
elif test "x$TOOLCHAIN_TYPE" = xgcc; then
UTIL_CHECK_TOOLS(AR, ar gcc-ar)
UTIL_LOOKUP_TOOLCHAIN_PROGS(AR, ar gcc-ar)
else
UTIL_CHECK_TOOLS(AR, ar)
UTIL_LOOKUP_TOOLCHAIN_PROGS(AR, ar)
fi
UTIL_FIXUP_EXECUTABLE(AR)
])
# Setup additional tools that is considered a part of the toolchain, but not the
@@ -770,41 +720,26 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETECT_TOOLCHAIN_CORE],
AC_DEFUN_ONCE([TOOLCHAIN_DETECT_TOOLCHAIN_EXTRA],
[
if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then
UTIL_PATH_PROGS(LIPO, lipo)
UTIL_FIXUP_EXECUTABLE(LIPO)
UTIL_LOOKUP_PROGS(LIPO, lipo)
UTIL_REQUIRE_PROGS(OTOOL, otool)
UTIL_FIXUP_EXECUTABLE(OTOOL)
UTIL_REQUIRE_PROGS(INSTALL_NAME_TOOL, install_name_tool)
UTIL_FIXUP_EXECUTABLE(INSTALL_NAME_TOOL)
fi
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
AC_CHECK_PROG([MT], [mt$EXE_SUFFIX], [mt$EXE_SUFFIX],,, [/usr/bin/mt])
UTIL_FIXUP_EXECUTABLE(MT)
# Setup the manifest tool (MT)
UTIL_LOOKUP_TOOLCHAIN_PROGS(MT, mt)
# Setup the resource compiler (RC)
AC_CHECK_PROG([RC], [rc$EXE_SUFFIX], [rc$EXE_SUFFIX],,, [/usr/bin/rc])
UTIL_FIXUP_EXECUTABLE(RC)
AC_CHECK_PROG([DUMPBIN], [dumpbin$EXE_SUFFIX], [dumpbin$EXE_SUFFIX],,,)
UTIL_FIXUP_EXECUTABLE(DUMPBIN)
# We need to check for 'msbuild.exe' because at the place where we expect to
# find 'msbuild.exe' there's also a directory called 'msbuild' and configure
# won't find the 'msbuild.exe' executable in that case (and the
# 'ac_executable_extensions' is unusable due to performance reasons).
# Notice that we intentionally don't fix up the path to MSBUILD because we
# will call it in a DOS shell during freetype detection on Windows (see
# 'LIB_SETUP_FREETYPE' in "libraries.m4"
AC_CHECK_PROG([MSBUILD], [msbuild$EXE_SUFFIX], [msbuild$EXE_SUFFIX],,,)
UTIL_LOOKUP_TOOLCHAIN_PROGS(RC, rc)
UTIL_LOOKUP_TOOLCHAIN_PROGS(DUMPBIN, dumpbin)
fi
if test "x$OPENJDK_TARGET_OS" != xwindows; then
UTIL_CHECK_TOOLS(STRIP, strip)
UTIL_FIXUP_EXECUTABLE(STRIP)
UTIL_LOOKUP_TOOLCHAIN_PROGS(STRIP, strip)
if test "x$TOOLCHAIN_TYPE" = xgcc; then
UTIL_CHECK_TOOLS(NM, nm gcc-nm)
UTIL_LOOKUP_TOOLCHAIN_PROGS(NM, nm gcc-nm)
else
UTIL_CHECK_TOOLS(NM, nm)
UTIL_LOOKUP_TOOLCHAIN_PROGS(NM, nm)
fi
UTIL_FIXUP_EXECUTABLE(NM)
GNM="$NM"
AC_SUBST(GNM)
fi
@@ -812,25 +747,14 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETECT_TOOLCHAIN_EXTRA],
# objcopy is used for moving debug symbols to separate files when
# full debug symbols are enabled.
if test "x$OPENJDK_TARGET_OS" = xlinux; then
UTIL_CHECK_TOOLS(OBJCOPY, [gobjcopy objcopy])
# Only call fixup if objcopy was found.
if test -n "$OBJCOPY"; then
UTIL_FIXUP_EXECUTABLE(OBJCOPY)
fi
UTIL_LOOKUP_TOOLCHAIN_PROGS(OBJCOPY, gobjcopy objcopy)
fi
UTIL_CHECK_TOOLS(OBJDUMP, [gobjdump objdump])
if test "x$OBJDUMP" != x; then
# Only used for compare.sh; we can live without it. UTIL_FIXUP_EXECUTABLE
# bails if argument is missing.
UTIL_FIXUP_EXECUTABLE(OBJDUMP)
fi
UTIL_LOOKUP_TOOLCHAIN_PROGS(OBJDUMP, gobjdump objdump)
case $TOOLCHAIN_TYPE in
gcc|clang)
UTIL_CHECK_TOOLS(CXXFILT, [c++filt])
UTIL_CHECK_NONEMPTY(CXXFILT)
UTIL_FIXUP_EXECUTABLE(CXXFILT)
UTIL_REQUIRE_TOOLCHAIN_PROGS(CXXFILT, c++filt)
;;
esac
])
@@ -902,63 +826,57 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_BUILD_COMPILERS],
BUILD_SYSROOT="$BUILD_DEVKIT_SYSROOT"
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
BUILD_VS_INCLUDE="$BUILD_DEVKIT_VS_INCLUDE"
BUILD_VS_LIB="$BUILD_DEVKIT_VS_LIB"
# For historical reasons, paths are separated by ; in devkit.info
BUILD_VS_INCLUDE="${BUILD_DEVKIT_VS_INCLUDE//;/:}"
BUILD_VS_LIB="${BUILD_DEVKIT_VS_LIB//;/:}"
TOOLCHAIN_SETUP_VISUAL_STUDIO_SYSROOT_FLAGS([BUILD_])
TOOLCHAIN_SETUP_VISUAL_STUDIO_SYSROOT_FLAGS(BUILD_, BUILD_)
fi
fi
fi
# FIXME: we should list the discovered compilers as an exclude pattern!
# If we do that, we can do this detection before POST_DETECTION, and still
# find the build compilers in the tools dir, if needed.
if test "x$OPENJDK_BUILD_OS" = xmacosx; then
UTIL_REQUIRE_PROGS(BUILD_CC, [clang cl cc gcc])
UTIL_REQUIRE_PROGS(BUILD_CXX, [clang++ cl CC g++])
else
UTIL_REQUIRE_PROGS(BUILD_CC, [cl cc gcc])
UTIL_REQUIRE_PROGS(BUILD_CXX, [cl CC g++])
fi
UTIL_FIXUP_EXECUTABLE(BUILD_CC)
UTIL_FIXUP_EXECUTABLE(BUILD_CXX)
UTIL_PATH_PROGS(BUILD_NM, nm gcc-nm)
UTIL_FIXUP_EXECUTABLE(BUILD_NM)
UTIL_PATH_PROGS(BUILD_AR, ar gcc-ar)
UTIL_FIXUP_EXECUTABLE(BUILD_AR)
UTIL_PATH_PROGS(BUILD_OBJCOPY, objcopy)
UTIL_FIXUP_EXECUTABLE(BUILD_OBJCOPY)
UTIL_PATH_PROGS(BUILD_STRIP, strip)
UTIL_FIXUP_EXECUTABLE(BUILD_STRIP)
# Assume the C compiler is the assembler
BUILD_AS="$BUILD_CC -c"
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
# In the Microsoft toolchain we have a separate LD command "link".
# Make sure we reject /usr/bin/link (as determined in CYGWIN_LINK), which is
# a cygwin program for something completely different.
AC_CHECK_PROG([BUILD_LD], [link$EXE_SUFFIX],[link$EXE_SUFFIX],,, [$CYGWIN_LINK])
UTIL_FIXUP_EXECUTABLE(BUILD_LD)
# Verify that we indeed succeeded with this trick.
AC_MSG_CHECKING([if the found link.exe is actually the Visual Studio linker])
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
# If we got no devkit, we need to go hunting for the proper env
TOOLCHAIN_FIND_VISUAL_STUDIO_BAT_FILE($OPENJDK_BUILD_CPU, [$TOOLCHAIN_VERSION])
TOOLCHAIN_EXTRACT_VISUAL_STUDIO_ENV($OPENJDK_BUILD_CPU, BUILD_)
# Reset PATH since it can contain a mix of WSL/linux paths and Windows paths from VS,
# which, in combination with WSLENV, will make the WSL layer complain
old_path="$PATH"
PATH=
# We cannot currently export the VS_PATH to spec.gmk. This is probably
# strictly not correct, but seems to work anyway.
"$BUILD_LD" --version > /dev/null
if test $? -eq 0 ; then
AC_MSG_RESULT([no])
AC_MSG_ERROR([This is the Cygwin link tool. Please check your PATH and rerun configure.])
else
AC_MSG_RESULT([yes])
# Convert VS_INCLUDE and VS_LIB into sysroot flags
TOOLCHAIN_SETUP_VISUAL_STUDIO_SYSROOT_FLAGS(BUILD_)
fi
fi
PATH="$old_path"
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
UTIL_REQUIRE_PROGS(BUILD_CC, cl, [$VS_PATH])
UTIL_REQUIRE_PROGS(BUILD_CXX, cl, [$VS_PATH])
# On windows, the assember is "ml.exe". We currently don't need this so
# do not require.
UTIL_LOOKUP_PROGS(BUILD_AS, ml, [$VS_PATH])
# On windows, the ar tool is lib.exe (used to create static libraries).
# We currently don't need this so do not require.
UTIL_LOOKUP_PROGS(BUILD_AR, lib, [$VS_PATH])
# In the Microsoft toolchain we have a separate LD command "link".
UTIL_REQUIRE_PROGS(BUILD_LD, link, [$VS_PATH])
TOOLCHAIN_VERIFY_LINK_BINARY(BUILD_LD)
BUILD_LDCXX="$BUILD_LD"
else
if test "x$OPENJDK_BUILD_OS" = xmacosx; then
UTIL_REQUIRE_PROGS(BUILD_CC, clang cc gcc)
UTIL_REQUIRE_PROGS(BUILD_CXX, clang++ CC g++)
else
UTIL_REQUIRE_PROGS(BUILD_CC, cc gcc)
UTIL_REQUIRE_PROGS(BUILD_CXX, CC g++)
fi
UTIL_LOOKUP_PROGS(BUILD_NM, nm gcc-nm)
UTIL_LOOKUP_PROGS(BUILD_AR, ar gcc-ar lib)
UTIL_LOOKUP_PROGS(BUILD_OBJCOPY, objcopy)
UTIL_LOOKUP_PROGS(BUILD_STRIP, strip)
# Assume the C compiler is the assembler
BUILD_AS="$BUILD_CC -c"
# Just like for the target compiler, use the compiler as linker
BUILD_LD="$BUILD_CC"
BUILD_LDCXX="$BUILD_CXX"
@@ -1003,7 +921,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_MISC_CHECKS],
# Check for extra potential brokenness.
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
# On Windows, double-check that we got the right compiler.
CC_VERSION_OUTPUT=`$CC 2>&1 | $GREP -v 'ERROR.*UtilTranslatePathList' | $HEAD -n 1 | $TR -d '\r'`
CC_VERSION_OUTPUT=`$CC 2>&1 1>/dev/null | $HEAD -n 1 | $TR -d '\r'`
COMPILER_CPU_TEST=`$ECHO $CC_VERSION_OUTPUT | $SED -n "s/^.* \(.*\)$/\1/p"`
if test "x$OPENJDK_TARGET_CPU" = "xx86"; then
if test "x$COMPILER_CPU_TEST" != "x80x86" -a "x$COMPILER_CPU_TEST" != "xx86"; then
@@ -1099,7 +1017,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_JTREG],
if test "x$JT_HOME" = x; then
# JT_HOME is not set in environment, or was deemed invalid.
# Try to find jtreg on path
UTIL_PATH_PROGS(JTREGEXE, jtreg)
UTIL_LOOKUP_PROGS(JTREGEXE, jtreg)
if test "x$JTREGEXE" != x; then
# That's good, now try to derive JT_HOME
JT_HOME=`(cd $($DIRNAME $JTREGEXE)/.. && pwd)`

View File

@@ -61,30 +61,32 @@ VS_TOOLSET_SUPPORTED_2019=true
AC_DEFUN([TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT],
[
if test "x$VS_ENV_CMD" = x; then
VS_VERSION="$1"
VS_BASE="$2"
METHOD="$3"
TARGET_CPU="$1"
VS_VERSION="$2"
VS_BASE="$3"
METHOD="$4"
UTIL_REWRITE_AS_UNIX_PATH(VS_BASE)
# In VS 2017 and VS 2019, the default installation is in a subdir named after the edition.
# Find the first one present and use that.
if test "x$VS_EDITIONS" != x; then
for edition in $VS_EDITIONS; do
if test -d "$VS_BASE/$edition"; then
VS_BASE="$VS_BASE/$edition"
break
fi
done
fi
UTIL_FIXUP_PATH(VS_BASE, NOFAIL)
if test "x$VS_BASE" != x && test -d "$VS_BASE"; then
# In VS 2017 and VS 2019, the default installation is in a subdir named after the edition.
# Find the first one present and use that.
if test "x$VS_EDITIONS" != x; then
for edition in $VS_EDITIONS; do
if test -d "$VS_BASE/$edition"; then
VS_BASE="$VS_BASE/$edition"
break
fi
done
fi
if test -d "$VS_BASE"; then
AC_MSG_NOTICE([Found Visual Studio installation at $VS_BASE using $METHOD])
if test "x$OPENJDK_TARGET_CPU" = xx86; then
if test "x$TARGET_CPU" = xx86; then
VCVARSFILES="vc/bin/vcvars32.bat vc/auxiliary/build/vcvars32.bat"
elif test "x$OPENJDK_TARGET_CPU" = xx86_64; then
elif test "x$TARGET_CPU" = xx86_64; then
VCVARSFILES="vc/bin/amd64/vcvars64.bat vc/bin/x86_amd64/vcvarsx86_amd64.bat \
VC/Auxiliary/Build/vcvarsx86_amd64.bat VC/Auxiliary/Build/vcvars64.bat"
elif test "x$OPENJDK_TARGET_CPU" = xaarch64; then
vc/auxiliary/build/vcvarsx86_amd64.bat vc/auxiliary/build/vcvars64.bat"
elif test "x$TARGET_CPU" = xaarch64; then
# for host x86-64, target aarch64
VCVARSFILES="vc/auxiliary/build/vcvarsamd64_arm64.bat \
vc/auxiliary/build/vcvarsx86_arm64.bat"
@@ -114,24 +116,27 @@ AC_DEFUN([TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT],
AC_DEFUN([TOOLCHAIN_CHECK_POSSIBLE_WIN_SDK_ROOT],
[
if test "x$VS_ENV_CMD" = x; then
VS_VERSION="$1"
WIN_SDK_BASE="$2"
METHOD="$3"
UTIL_REWRITE_AS_UNIX_PATH(WIN_SDK_BASE)
if test -d "$WIN_SDK_BASE"; then
TARGET_CPU="$1"
VS_VERSION="$2"
WIN_SDK_BASE="$3"
METHOD="$4"
UTIL_FIXUP_PATH(WIN_SDK_BASE, NOFAIL)
if test "x$WIN_SDK_BASE" != x && test -d "$WIN_SDK_BASE"; then
# There have been cases of partial or broken SDK installations. A missing
# lib dir is not going to work.
if test ! -d "$WIN_SDK_BASE/lib"; then
AC_MSG_NOTICE([Found Windows SDK installation at $WIN_SDK_BASE using $METHOD])
AC_MSG_NOTICE([Warning: Installation is broken, lib dir is missing. Ignoring])
elif test -f "$WIN_SDK_BASE/Bin/SetEnv.Cmd"; then
elif test -f "$WIN_SDK_BASE/bin/setenv.cmd"; then
AC_MSG_NOTICE([Found Windows SDK installation at $WIN_SDK_BASE using $METHOD])
VS_ENV_CMD="$WIN_SDK_BASE/Bin/SetEnv.Cmd"
if test "x$OPENJDK_TARGET_CPU" = xx86; then
VS_ENV_CMD="$WIN_SDK_BASE/bin/setenv.cmd"
if test "x$TARGET_CPU" = xx86; then
VS_ENV_ARGS="/x86"
elif test "x$OPENJDK_TARGET_CPU" = xx86_64; then
elif test "x$TARGET_CPU" = xx86_64; then
VS_ENV_ARGS="/x64"
elif test "x$OPENJDK_TARGET_CPU" = xaarch64; then
elif test "x$TARGET_CPU" = xaarch64; then
VS_ENV_ARGS="/arm64"
fi
# PLATFORM_TOOLSET is used during the compilation of the freetype sources (see
@@ -160,7 +165,8 @@ AC_DEFUN([TOOLCHAIN_FIND_VISUAL_STUDIO_BAT_FILE],
[specific MSVC toolset version to use, passed as -vcvars_ver argument to
pass to vcvarsall.bat (Windows only)])])
VS_VERSION="$1"
TARGET_CPU="$1"
VS_VERSION="$2"
eval VS_COMNTOOLS_VAR="\${VS_ENVVAR_${VS_VERSION}}"
eval VS_COMNTOOLS="\$${VS_COMNTOOLS_VAR}"
eval VS_INSTALL_DIR="\${VS_VS_INSTALLDIR_${VS_VERSION}}"
@@ -174,9 +180,9 @@ AC_DEFUN([TOOLCHAIN_FIND_VISUAL_STUDIO_BAT_FILE],
# When using --with-tools-dir, assume it points to the correct and default
# version of Visual Studio or that --with-toolchain-version was also set.
if test "x$with_tools_dir" != x; then
TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT([${VS_VERSION}],
TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT([$TARGET_CPU], [$VS_VERSION],
[$with_tools_dir/../..], [--with-tools-dir])
TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT([${VS_VERSION}],
TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT([$TARGET_CPU], [$VS_VERSION],
[$with_tools_dir/../../..], [--with-tools-dir])
if test "x$VS_ENV_CMD" = x; then
# Having specified an argument which is incorrect will produce an instant failure;
@@ -189,45 +195,46 @@ AC_DEFUN([TOOLCHAIN_FIND_VISUAL_STUDIO_BAT_FILE],
fi
if test "x$VS_COMNTOOLS" != x; then
TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT([${VS_VERSION}],
TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT([$TARGET_CPU], [$VS_VERSION],
[$VS_COMNTOOLS/../..], [$VS_COMNTOOLS_VAR variable])
fi
if test "x$PROGRAMFILES" != x; then
TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT([${VS_VERSION}],
TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT([$TARGET_CPU], [$VS_VERSION],
[$PROGRAMFILES/$VS_INSTALL_DIR], [well-known name])
fi
# Work around the insanely named ProgramFiles(x86) env variable
PROGRAMFILES_X86="`env | $SED -n 's/^ProgramFiles(x86)=//p'`"
if test "x$PROGRAMFILES_X86" != x; then
TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT([${VS_VERSION}],
TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT([$TARGET_CPU], [$VS_VERSION],
[$PROGRAMFILES_X86/$VS_INSTALL_DIR], [well-known name])
fi
TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT([${VS_VERSION}],
[C:/Program Files/$VS_INSTALL_DIR], [well-known name])
TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT([${VS_VERSION}],
[C:/Program Files (x86)/$VS_INSTALL_DIR], [well-known name])
TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT([$TARGET_CPU], [$VS_VERSION],
[c:/program files/$VS_INSTALL_DIR], [well-known name])
TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT([$TARGET_CPU], [$VS_VERSION],
[c:/program files (x86)/$VS_INSTALL_DIR], [well-known name])
if test "x$SDK_INSTALL_DIR" != x; then
if test "x$ProgramW6432" != x; then
TOOLCHAIN_CHECK_POSSIBLE_WIN_SDK_ROOT([${VS_VERSION}],
TOOLCHAIN_CHECK_POSSIBLE_WIN_SDK_ROOT([$TARGET_CPU], [$VS_VERSION],
[$ProgramW6432/$SDK_INSTALL_DIR], [well-known name])
fi
if test "x$PROGRAMW6432" != x; then
TOOLCHAIN_CHECK_POSSIBLE_WIN_SDK_ROOT([${VS_VERSION}],
TOOLCHAIN_CHECK_POSSIBLE_WIN_SDK_ROOT([$TARGET_CPU], [$VS_VERSION],
[$PROGRAMW6432/$SDK_INSTALL_DIR], [well-known name])
fi
if test "x$PROGRAMFILES" != x; then
TOOLCHAIN_CHECK_POSSIBLE_WIN_SDK_ROOT([${VS_VERSION}],
TOOLCHAIN_CHECK_POSSIBLE_WIN_SDK_ROOT([$TARGET_CPU], [$VS_VERSION],
[$PROGRAMFILES/$SDK_INSTALL_DIR], [well-known name])
fi
TOOLCHAIN_CHECK_POSSIBLE_WIN_SDK_ROOT([${VS_VERSION}],
[C:/Program Files/$SDK_INSTALL_DIR], [well-known name])
TOOLCHAIN_CHECK_POSSIBLE_WIN_SDK_ROOT([${VS_VERSION}],
[C:/Program Files (x86)/$SDK_INSTALL_DIR], [well-known name])
TOOLCHAIN_CHECK_POSSIBLE_WIN_SDK_ROOT([$TARGET_CPU], [$VS_VERSION],
[c:/program files/$SDK_INSTALL_DIR], [well-known name])
TOOLCHAIN_CHECK_POSSIBLE_WIN_SDK_ROOT([$TARGET_CPU], [$VS_VERSION],
[c:/program files (x86)/$SDK_INSTALL_DIR], [well-known name])
fi
VCVARS_VER=auto
if test "x$VS_TOOLSET_SUPPORTED" != x; then
if test "x$with_msvc_toolset_version" != x; then
VS_ENV_ARGS="$VS_ENV_ARGS -vcvars_ver=$with_msvc_toolset_version"
VCVARS_VER="$with_msvc_toolset_version"
fi
fi
])
@@ -264,44 +271,9 @@ AC_DEFUN([TOOLCHAIN_FIND_VISUAL_STUDIO],
eval VS_SUPPORTED="\${VS_SUPPORTED_${VS_VERSION}}"
eval PLATFORM_TOOLSET="\${VS_VS_PLATFORM_NAME_${VS_VERSION}}"
# The TOOLCHAIN_PATH from a devkit is in Unix format. In WSL we need a
# windows version of the complete VS_PATH as VS_PATH_WINDOWS
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
# Convert the toolchain path
OLDIFS="$IFS"
IFS=":"
VS_PATH_WINDOWS=""
for i in $TOOLCHAIN_PATH; do
path=$i
UTIL_REWRITE_AS_WINDOWS_MIXED_PATH([path])
VS_PATH_WINDOWS="$VS_PATH_WINDOWS;$path"
done
IFS="$OLDIFS"
# Append the current path from Windows env
WINDOWS_PATH="`$CMD /c echo %PATH%`"
VS_PATH_WINDOWS="$VS_PATH_WINDOWS;$WINDOWS_PATH"
else
VS_PATH="$TOOLCHAIN_PATH:$PATH"
fi
# Convert DEVKIT_VS_INCLUDE into windows style VS_INCLUDE so that it
# can still be exported as INCLUDE for compiler invocations without
# SYSROOT_CFLAGS
OLDIFS="$IFS"
IFS=";"
for i in $DEVKIT_VS_INCLUDE; do
ipath=$i
UTIL_REWRITE_AS_WINDOWS_MIXED_PATH([ipath])
VS_INCLUDE="$VS_INCLUDE;$ipath"
done
# Convert DEVKIT_VS_LIB into VS_LIB so that it can still be exported
# as LIB for compiler invocations without SYSROOT_LDFLAGS
for i in $DEVKIT_VS_LIB; do
libpath=$i
UTIL_REWRITE_AS_WINDOWS_MIXED_PATH([libpath])
VS_LIB="$VS_LIB;$libpath"
done
IFS="$OLDIFS"
# For historical reasons, paths are separated by ; in devkit.info
VS_INCLUDE=${DEVKIT_VS_INCLUDE//;/:}
VS_LIB=${DEVKIT_VS_LIB//;/:}
AC_MSG_NOTICE([Found devkit $VS_DESCRIPTION])
@@ -319,7 +291,7 @@ AC_DEFUN([TOOLCHAIN_FIND_VISUAL_STUDIO],
fi
for VS_VERSION in $VS_VERSIONS_PROBE_LIST; do
TOOLCHAIN_FIND_VISUAL_STUDIO_BAT_FILE([$VS_VERSION])
TOOLCHAIN_FIND_VISUAL_STUDIO_BAT_FILE($OPENJDK_TARGET_CPU, [$VS_VERSION])
if test "x$VS_ENV_CMD" != x; then
TOOLCHAIN_VERSION=$VS_VERSION
eval VS_DESCRIPTION="\${VS_DESCRIPTION_${VS_VERSION}}"
@@ -341,206 +313,118 @@ AC_DEFUN([TOOLCHAIN_FIND_VISUAL_STUDIO],
fi
])
AC_DEFUN([TOOLCHAIN_EXTRACT_VISUAL_STUDIO_ENV],
[
TARGET_CPU=$1
AC_MSG_NOTICE([Trying to extract Visual Studio environment variables for $TARGET_CPU])
AC_MSG_NOTICE([using $VS_ENV_CMD $VS_ENV_ARGS])
VS_ENV_TMP_DIR="$CONFIGURESUPPORT_OUTPUTDIR/vs-env-$TARGET_CPU"
$MKDIR -p $VS_ENV_TMP_DIR
# Cannot use the VS10 setup script directly (since it only updates the DOS subshell environment).
# Instead create a shell script which will set the relevant variables when run.
OLDPATH="$PATH"
# Make sure we only capture additions to PATH needed by VS.
# Clear out path, but need system dir present for vsvars cmd file to be able to run
export PATH=$WINENV_PREFIX/c/windows/system32
# The "| cat" is to stop SetEnv.Cmd to mess with system colors on some systems
# We can't pass -vcvars_ver=$VCVARS_VER here because cmd.exe eats all '='
# in bat file arguments. :-(
$FIXPATH $CMD /c "$TOPDIR/make/scripts/extract-vs-env.cmd" "$VS_ENV_CMD" \
"$VS_ENV_TMP_DIR/set-vs-env.sh" $VCVARS_VER $VS_ENV_ARGS \
> $VS_ENV_TMP_DIR/extract-vs-env.log | $CAT 2>&1
PATH="$OLDPATH"
if test ! -s $VS_ENV_TMP_DIR/set-vs-env.sh; then
AC_MSG_NOTICE([Could not succesfully extract the environment variables needed for the VS setup.])
AC_MSG_NOTICE([Try setting --with-tools-dir to the VC/bin directory within the VS installation.])
AC_MSG_NOTICE([To analyze the problem, see extract-vs-env.log and extract-vs-env.bat in])
AC_MSG_NOTICE([$VS_ENV_TMP_DIR.])
AC_MSG_ERROR([Cannot continue])
fi
# Remove windows line endings
$SED -i -e 's|\r||g' $VS_ENV_TMP_DIR/set-vs-env.sh
# Now set all paths and other env variables by executing the generated
# shell script. This will allow the rest of the configure script to find
# and run the compiler in the proper way.
AC_MSG_NOTICE([Setting extracted environment variables for $TARGET_CPU])
. $VS_ENV_TMP_DIR/set-vs-env.sh
# Extract only what VS_ENV_CMD added to the PATH
VS_PATH=${PATH_AFTER/"$PATH_BEFORE"}
VS_PATH=${VS_PATH//::/:}
# Remove any paths containing # (typically F#) as that messes up make. This
# is needed if visual studio was installed with F# support.
[ VS_PATH=`$ECHO "$VS_PATH" | $SED 's/[^:#]*#[^:]*://g'` ]
# Sometimes case is off
if test -z "$WINDOWSSDKDIR"; then
WINDOWSSDKDIR="$WindowsSdkDir"
fi
# Now we have VS_PATH, VS_INCLUDE, VS_LIB. For further checking, we
# also define VCINSTALLDIR and WINDOWSSDKDIR. All are in
# unix style.
])
################################################################################
# Check if the VS env variables were setup prior to running configure.
# If not, then find vcvarsall.bat and run it automatically, and integrate
# the set env variables into the spec file.
AC_DEFUN([TOOLCHAIN_SETUP_VISUAL_STUDIO_ENV],
[
# Store path to cygwin link.exe to help excluding it when searching for
# VS linker. This must be done before changing the PATH when looking for VS.
AC_PATH_PROG(CYGWIN_LINK, link.exe)
if test "x$CYGWIN_LINK" != x; then
AC_MSG_CHECKING([if the first found link.exe is actually the Cygwin link tool])
"$CYGWIN_LINK" --version > /dev/null
if test $? -eq 0 ; then
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no])
# This might be the VS linker. Don't exclude it later on.
CYGWIN_LINK=""
fi
fi
# First-hand choice is to locate and run the vsvars bat file.
# Locate the vsvars bat file and save it as VS_ENV_CMD
TOOLCHAIN_FIND_VISUAL_STUDIO
# If we have a devkit, skip all of the below.
# If we have a devkit, we don't need to run VS_ENV_CMD
if test "x$DEVKIT_VS_VERSION" = x; then
if test "x$VS_ENV_CMD" != x; then
# We have found a Visual Studio environment on disk, let's extract variables from the vsvars bat file.
UTIL_FIXUP_EXECUTABLE(VS_ENV_CMD)
# We have found a Visual Studio environment on disk, let's extract variables
# from the vsvars bat file into shell variables in the configure script.
TOOLCHAIN_EXTRACT_VISUAL_STUDIO_ENV($OPENJDK_TARGET_CPU)
# Lets extract the variables that are set by vcvarsall.bat/vsvars32.bat/vsvars64.bat
AC_MSG_NOTICE([Trying to extract Visual Studio environment variables])
# We need to create a couple of temporary files.
VS_ENV_TMP_DIR="$CONFIGURESUPPORT_OUTPUTDIR/vs-env"
$MKDIR -p $VS_ENV_TMP_DIR
# Cannot use the VS10 setup script directly (since it only updates the DOS subshell environment).
# Instead create a shell script which will set the relevant variables when run.
WINPATH_VS_ENV_CMD="$VS_ENV_CMD"
UTIL_REWRITE_AS_WINDOWS_MIXED_PATH([WINPATH_VS_ENV_CMD])
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
WINPATH_BASH="bash"
else
WINPATH_BASH="$BASH"
UTIL_REWRITE_AS_WINDOWS_MIXED_PATH([WINPATH_BASH])
fi
# Generate a DOS batch file which runs $VS_ENV_CMD, and then creates a shell
# script (executable by bash) that will setup the important variables.
EXTRACT_VC_ENV_BAT_FILE="$VS_ENV_TMP_DIR/extract-vs-env.bat"
$ECHO "@echo off" > $EXTRACT_VC_ENV_BAT_FILE
# This will end up something like:
# call C:/progra~2/micros~2.0/vc/bin/amd64/vcvars64.bat
$ECHO "call \"$WINPATH_VS_ENV_CMD\" $VS_ENV_ARGS" >> $EXTRACT_VC_ENV_BAT_FILE
# In some cases, the VS_ENV_CMD will change directory, change back so
# the set-vs-env.sh ends up in the right place.
$ECHO 'cd %~dp0' >> $EXTRACT_VC_ENV_BAT_FILE
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
# These will end up something like:
# echo VS_PATH=\"$PATH\" > set-vs-env.sh
# The trailing space for everyone except PATH is no typo, but is needed due
# to trailing \ in the Windows paths. These will be stripped later.
# Trying pure CMD extract. This results in windows paths that need to
# be converted post extraction, but a simpler script.
$ECHO 'echo VS_PATH="%PATH%" > set-vs-env.sh' \
>> $EXTRACT_VC_ENV_BAT_FILE
$ECHO 'echo VS_INCLUDE="%INCLUDE% " >> set-vs-env.sh' \
>> $EXTRACT_VC_ENV_BAT_FILE
$ECHO 'echo VS_LIB="%LIB% " >> set-vs-env.sh' \
>> $EXTRACT_VC_ENV_BAT_FILE
$ECHO 'echo VCINSTALLDIR="%VCINSTALLDIR% " >> set-vs-env.sh' \
>> $EXTRACT_VC_ENV_BAT_FILE
$ECHO 'echo VCToolsRedistDir="%VCToolsRedistDir% " >> set-vs-env.sh' \
>> $EXTRACT_VC_ENV_BAT_FILE
$ECHO 'echo WindowsSdkDir="%WindowsSdkDir% " >> set-vs-env.sh' \
>> $EXTRACT_VC_ENV_BAT_FILE
$ECHO 'echo WINDOWSSDKDIR="%WINDOWSSDKDIR% " >> set-vs-env.sh' \
>> $EXTRACT_VC_ENV_BAT_FILE
else
# These will end up something like:
# C:/CygWin/bin/bash -c 'echo VS_PATH=\"$PATH\" > localdevenv.sh
# The trailing space for everyone except PATH is no typo, but is needed due
# to trailing \ in the Windows paths. These will be stripped later.
$ECHO "$WINPATH_BASH -c 'echo VS_PATH="'\"$PATH\" > set-vs-env.sh' \
>> $EXTRACT_VC_ENV_BAT_FILE
$ECHO "$WINPATH_BASH -c 'echo VS_INCLUDE="'\"$INCLUDE\;$include \" >> set-vs-env.sh' \
>> $EXTRACT_VC_ENV_BAT_FILE
$ECHO "$WINPATH_BASH -c 'echo VS_LIB="'\"$LIB\;$lib \" >> set-vs-env.sh' \
>> $EXTRACT_VC_ENV_BAT_FILE
$ECHO "$WINPATH_BASH -c 'echo VCINSTALLDIR="'\"$VCINSTALLDIR \" >> set-vs-env.sh' \
>> $EXTRACT_VC_ENV_BAT_FILE
$ECHO "$WINPATH_BASH -c 'echo VCToolsRedistDir="'\"$VCToolsRedistDir \" >> set-vs-env.sh' \
>> $EXTRACT_VC_ENV_BAT_FILE
$ECHO "$WINPATH_BASH -c 'echo WindowsSdkDir="'\"$WindowsSdkDir \" >> set-vs-env.sh' \
>> $EXTRACT_VC_ENV_BAT_FILE
$ECHO "$WINPATH_BASH -c 'echo WINDOWSSDKDIR="'\"$WINDOWSSDKDIR \" >> set-vs-env.sh' \
>> $EXTRACT_VC_ENV_BAT_FILE
fi
# Now execute the newly created bat file.
# Change directory so we don't need to mess with Windows paths in redirects.
cd $VS_ENV_TMP_DIR
$CMD /c extract-vs-env.bat > extract-vs-env.log 2>&1
cd $CONFIGURE_START_DIR
if test ! -s $VS_ENV_TMP_DIR/set-vs-env.sh; then
AC_MSG_NOTICE([Could not succesfully extract the environment variables needed for the VS setup.])
AC_MSG_NOTICE([Try setting --with-tools-dir to the VC/bin directory within the VS installation])
AC_MSG_NOTICE([or run "bash.exe -l" from a VS command prompt and then run configure from there.])
AC_MSG_ERROR([Cannot continue])
fi
# Remove windows line endings
$SED -i -e 's|\r||g' $VS_ENV_TMP_DIR/set-vs-env.sh
# Now set all paths and other env variables. This will allow the rest of
# the configure script to find and run the compiler in the proper way.
AC_MSG_NOTICE([Setting extracted environment variables])
. $VS_ENV_TMP_DIR/set-vs-env.sh
# Now we have VS_PATH, VS_INCLUDE, VS_LIB. For further checking, we
# also define VCINSTALLDIR, WindowsSdkDir and WINDOWSSDKDIR.
# In WSL, the extracted VS_PATH is Windows style. This needs to be
# rewritten as Unix style and the Windows style version is saved
# in VS_PATH_WINDOWS.
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
OLDIFS="$IFS"
IFS=";"
# Convert VS_PATH to unix style
VS_PATH_WINDOWS="$VS_PATH"
VS_PATH=""
for i in $VS_PATH_WINDOWS; do
path=$i
# Only process non-empty elements
if test "x$path" != x; then
IFS="$OLDIFS"
# Check that directory exists before calling fixup_path
testpath=$path
UTIL_REWRITE_AS_UNIX_PATH([testpath])
if test -d "$testpath"; then
UTIL_FIXUP_PATH([path])
UTIL_APPEND_TO_PATH(VS_PATH, $path)
fi
IFS=";"
fi
done
IFS="$OLDIFS"
fi
# also define VCINSTALLDIR and WINDOWSSDKDIR. All are in
# unix style.
else
# We did not find a vsvars bat file, let's hope we are run from a VS command prompt.
AC_MSG_NOTICE([Cannot locate a valid Visual Studio installation, checking current environment])
# We did not find a vsvars bat file.
AC_MSG_ERROR([Cannot locate a valid Visual Studio installation])
fi
fi
# At this point, we should have correct variables in the environment, or we can't continue.
AC_MSG_CHECKING([for Visual Studio variables])
# At this point, we should have correct variables in the environment
AC_MSG_CHECKING([that Visual Studio variables have been correctly extracted])
if test "x$VCINSTALLDIR" != x || test "x$WindowsSDKDir" != x \
|| test "x$WINDOWSSDKDIR" != x || test "x$DEVKIT_NAME" != x; then
if test "x$VCINSTALLDIR" != x || test "x$WINDOWSSDKDIR" != x \
|| test "x$DEVKIT_NAME" != x; then
if test "x$VS_INCLUDE" = x || test "x$VS_LIB" = x; then
AC_MSG_RESULT([present but broken])
AC_MSG_RESULT([no; Visual Studio present but broken])
AC_MSG_ERROR([Your VC command prompt seems broken, INCLUDE and/or LIB is missing.])
else
AC_MSG_RESULT([ok])
# Remove any trailing "\" ";" and " " from the variables.
VS_INCLUDE=`$ECHO "$VS_INCLUDE" | $SED -e 's/\\\\*;* *$//'`
VS_LIB=`$ECHO "$VS_LIB" | $SED 's/\\\\*;* *$//'`
VCINSTALLDIR=`$ECHO "$VCINSTALLDIR" | $SED 's/\\\\* *$//'`
VCToolsRedistDir=`$ECHO "$VCToolsRedistDir" | $SED 's/\\\\* *$//'`
WindowsSdkDir=`$ECHO "$WindowsSdkDir" | $SED 's/\\\\* *$//'`
WINDOWSSDKDIR=`$ECHO "$WINDOWSSDKDIR" | $SED 's/\\\\* *$//'`
if test -z "$WINDOWSSDKDIR"; then
WINDOWSSDKDIR="$WindowsSdkDir"
fi
# Remove any paths containing # (typically F#) as that messes up make. This
# is needed if visual studio was installed with F# support.
VS_PATH=`$ECHO "$VS_PATH" | $SED 's/[[^:#]]*#[^:]*://g'`
AC_SUBST(VS_PATH)
AC_SUBST(VS_INCLUDE)
AC_SUBST(VS_LIB)
# Turn VS_PATH into TOOLCHAIN_PATH
TOOLCHAIN_PATH="$TOOLCHAIN_PATH:$VS_PATH"
# Convert VS_INCLUDE and VS_LIB into sysroot flags
TOOLCHAIN_SETUP_VISUAL_STUDIO_SYSROOT_FLAGS
AC_SUBST(VS_PATH_WINDOWS)
fi
else
AC_MSG_RESULT([not found])
if test "x$VS_ENV_CMD" = x; then
AC_MSG_NOTICE([Cannot locate a valid Visual Studio or Windows SDK installation on disk,])
AC_MSG_NOTICE([nor is this script run from a Visual Studio command prompt.])
AC_MSG_NOTICE([Cannot locate a valid Visual Studio or Windows SDK installation on disk])
else
AC_MSG_NOTICE([Running the extraction script failed.])
AC_MSG_NOTICE([Running the extraction script failed])
fi
AC_MSG_NOTICE([Try setting --with-tools-dir to the VC/bin directory within the VS installation])
AC_MSG_NOTICE([or run "bash.exe -l" from a VS command prompt and then run configure from there.])
AC_MSG_NOTICE([Try setting --with-tools-dir to the VC/bin directory within the VS installation.])
AC_MSG_NOTICE([To analyze the problem, see extract-vs-env.log and extract-vs-env.bat in])
AC_MSG_NOTICE([$VS_ENV_TMP_DIR.])
AC_MSG_ERROR([Cannot continue])
fi
])
@@ -556,25 +440,15 @@ AC_DEFUN([TOOLCHAIN_CHECK_POSSIBLE_MSVC_DLL],
# Need to check if the found msvcr is correct architecture
AC_MSG_CHECKING([found $DLL_NAME architecture])
MSVC_DLL_FILETYPE=`$FILE -b "$POSSIBLE_MSVC_DLL"`
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
# The MSYS 'file' command returns "PE32 executable for MS Windows (DLL) (GUI) Intel 80386 32-bit"
# on x32 and "PE32+ executable for MS Windows (DLL) (GUI) Mono/.Net assembly" on x64 systems.
if test "x$OPENJDK_TARGET_CPU_BITS" = x32; then
CORRECT_MSVCR_ARCH="PE32 executable"
else
CORRECT_MSVCR_ARCH="PE32+ executable"
fi
else
if test "x$OPENJDK_TARGET_CPU" = xx86; then
CORRECT_MSVCR_ARCH=386
elif test "x$OPENJDK_TARGET_CPU" = xx86_64; then
CORRECT_MSVCR_ARCH=x86-64
elif test "x$OPENJDK_TARGET_CPU" = xaarch64; then
# The cygwin 'file' command only returns "PE32+ executable (DLL) (console), for MS Windows",
# without specifying which architecture it is for specifically. This has been fixed upstream.
# https://github.com/file/file/commit/b849b1af098ddd530094bf779b58431395db2e10#diff-ff2eced09e6860de75057dd731d092aeR142
CORRECT_MSVCR_ARCH="PE32+ executable"
fi
if test "x$OPENJDK_TARGET_CPU" = xx86; then
CORRECT_MSVCR_ARCH=386
elif test "x$OPENJDK_TARGET_CPU" = xx86_64; then
CORRECT_MSVCR_ARCH=x86-64
elif test "x$OPENJDK_TARGET_CPU" = xaarch64; then
# The cygwin 'file' command only returns "PE32+ executable (DLL) (console), for MS Windows",
# without specifying which architecture it is for specifically. This has been fixed upstream.
# https://github.com/file/file/commit/b849b1af098ddd530094bf779b58431395db2e10#diff-ff2eced09e6860de75057dd731d092aeR142
CORRECT_MSVCR_ARCH="PE32+ executable"
fi
if $ECHO "$MSVC_DLL_FILETYPE" | $GREP "$CORRECT_MSVCR_ARCH" 2>&1 > /dev/null; then
AC_MSG_RESULT([ok])
@@ -603,20 +477,15 @@ AC_DEFUN([TOOLCHAIN_SETUP_MSVC_DLL],
if test "x$MSVC_DLL" = x; then
if test "x$VCINSTALLDIR" != x; then
CYGWIN_VC_INSTALL_DIR="$VCINSTALLDIR"
UTIL_FIXUP_PATH(CYGWIN_VC_INSTALL_DIR)
if test "$VS_VERSION" -lt 2017; then
# Probe: Using well-known location from Visual Studio 12.0 and older
POSSIBLE_MSVC_DLL="$CYGWIN_VC_INSTALL_DIR/redist/$vs_target_cpu/Microsoft.VC${VS_VERSION_INTERNAL}.CRT/$DLL_NAME"
POSSIBLE_MSVC_DLL="$VCINSTALLDIR/redist/$vs_target_cpu/microsoft.vc${VS_VERSION_INTERNAL}.crt/$DLL_NAME"
else
CYGWIN_VC_TOOLS_REDIST_DIR="$VCToolsRedistDir"
UTIL_FIXUP_PATH(CYGWIN_VC_TOOLS_REDIST_DIR)
# Probe: Using well-known location from VS 2017 and VS 2019
POSSIBLE_MSVC_DLL="`ls $CYGWIN_VC_TOOLS_REDIST_DIR/$vs_target_cpu/Microsoft.VC${VS_VERSION_INTERNAL}.CRT/$DLL_NAME`"
POSSIBLE_MSVC_DLL="`ls $VCToolsRedistDir/$vs_target_cpu/microsoft.vc${VS_VERSION_INTERNAL}.crt/$DLL_NAME 2> /dev/null`"
fi
# In case any of the above finds more than one file, loop over them.
for possible_msvc_dll in $POSSIBLE_MSVC_DLL; do
$ECHO "POSSIBLE_MSVC_DLL $possible_msvc_dll"
TOOLCHAIN_CHECK_POSSIBLE_MSVC_DLL([$DLL_NAME], [$possible_msvc_dll],
[well-known location in VCINSTALLDIR])
done
@@ -632,40 +501,44 @@ AC_DEFUN([TOOLCHAIN_SETUP_MSVC_DLL],
if test "x$MSVC_DLL" = x; then
# Probe: Look in the Windows system32 directory
CYGWIN_SYSTEMROOT="$SYSTEMROOT"
UTIL_REWRITE_AS_UNIX_PATH(CYGWIN_SYSTEMROOT)
POSSIBLE_MSVC_DLL="$CYGWIN_SYSTEMROOT/system32/$DLL_NAME"
TOOLCHAIN_CHECK_POSSIBLE_MSVC_DLL([$DLL_NAME], [$POSSIBLE_MSVC_DLL],
[well-known location in SYSTEMROOT])
WIN_SYSTEMROOT="$SYSTEMROOT"
UTIL_FIXUP_PATH(WIN_SYSTEMROOT, NOFAIL)
if test "x$WIN_SYSTEMROOT" != x; then
POSSIBLE_MSVC_DLL="$WIN_SYSTEMROOT/system32/$DLL_NAME"
TOOLCHAIN_CHECK_POSSIBLE_MSVC_DLL([$DLL_NAME], [$POSSIBLE_MSVC_DLL],
[well-known location in SYSTEMROOT])
fi
fi
if test "x$MSVC_DLL" = x; then
# Probe: If Visual Studio Express is installed, there is usually one with the debugger
if test "x$VS100COMNTOOLS" != x; then
CYGWIN_VS_TOOLS_DIR="$VS100COMNTOOLS/.."
UTIL_REWRITE_AS_UNIX_PATH(CYGWIN_VS_TOOLS_DIR)
POSSIBLE_MSVC_DLL=`$FIND "$CYGWIN_VS_TOOLS_DIR" -name $DLL_NAME \
WIN_VS_TOOLS_DIR="$VS100COMNTOOLS/.."
UTIL_FIXUP_PATH(WIN_VS_TOOLS_DIR, NOFAIL)
if test "x$WIN_VS_TOOLS_DIR" != x; then
POSSIBLE_MSVC_DLL=`$FIND "$WIN_VS_TOOLS_DIR" -name $DLL_NAME \
| $GREP -i /$vs_target_cpu/ | $HEAD --lines 1`
TOOLCHAIN_CHECK_POSSIBLE_MSVC_DLL([$DLL_NAME], [$POSSIBLE_MSVC_DLL],
[search of VS100COMNTOOLS])
TOOLCHAIN_CHECK_POSSIBLE_MSVC_DLL([$DLL_NAME], [$POSSIBLE_MSVC_DLL],
[search of VS100COMNTOOLS])
fi
fi
fi
if test "x$MSVC_DLL" = x; then
# Probe: Search wildly in the VCINSTALLDIR. We've probably lost by now.
# (This was the original behaviour; kept since it might turn something up)
if test "x$CYGWIN_VC_INSTALL_DIR" != x; then
if test "x$VCINSTALLDIR" != x; then
if test "x$OPENJDK_TARGET_CPU" = xx86; then
POSSIBLE_MSVC_DLL=`$FIND "$CYGWIN_VC_INSTALL_DIR" -name $DLL_NAME \
POSSIBLE_MSVC_DLL=`$FIND "$VCINSTALLDIR" -name $DLL_NAME \
| $GREP x86 | $GREP -v ia64 | $GREP -v x64 | $GREP -v arm64 | $HEAD --lines 1`
if test "x$POSSIBLE_MSVC_DLL" = x; then
# We're grasping at straws now...
POSSIBLE_MSVC_DLL=`$FIND "$CYGWIN_VC_INSTALL_DIR" -name $DLL_NAME \
POSSIBLE_MSVC_DLL=`$FIND "$VCINSTALLDIR" -name $DLL_NAME \
| $HEAD --lines 1`
fi
else
POSSIBLE_MSVC_DLL=`$FIND "$CYGWIN_VC_INSTALL_DIR" -name $DLL_NAME \
| $GREP $vs_target_cpu | $HEAD --lines 1`
POSSIBLE_MSVC_DLL=`$FIND "$VCINSTALLDIR" -name $DLL_NAME \
| $GREP x64 | $HEAD --lines 1`
fi
TOOLCHAIN_CHECK_POSSIBLE_MSVC_DLL([$DLL_NAME], [$POSSIBLE_MSVC_DLL],
@@ -729,9 +602,9 @@ AC_DEFUN([TOOLCHAIN_SETUP_VS_RUNTIME_DLLS],
fi
AC_ARG_WITH(vcruntime-1-dll, [AS_HELP_STRING([--with-vcruntime-1-dll],
[path to microsoft C++ runtime dll (vcruntime*_1.dll) (Windows 64-bits only) @<:@probed@:>@])])
[path to microsoft C++ runtime dll (vcruntime*_1.dll) (Windows x64 only) @<:@probed@:>@])])
if test "x$VCRUNTIME_1_NAME" != "x" -a "x$OPENJDK_TARGET_CPU_BITS" = x64; then
if test "x$VCRUNTIME_1_NAME" != "x" && test "x$OPENJDK_TARGET_CPU" = xx86_64; then
if test "x$with_vcruntime_1_dll" != x; then
# If given explicitly by user, do not probe. If not present, fail directly.
TOOLCHAIN_CHECK_POSSIBLE_MSVC_DLL($VCRUNTIME_1_NAME, [$with_vcruntime_1_dll],
@@ -750,13 +623,13 @@ AC_DEFUN([TOOLCHAIN_SETUP_VS_RUNTIME_DLLS],
TOOLCHAIN_SETUP_MSVC_DLL([${VCRUNTIME_1_NAME}])
VCRUNTIME_1_DLL="$MSVC_DLL"
fi
AC_SUBST(VCRUNTIME_1_DLL)
fi
AC_SUBST(VCRUNTIME_1_DLL)
AC_ARG_WITH(ucrt-dll-dir, [AS_HELP_STRING([--with-ucrt-dll-dir],
[path to Microsoft Windows Kit UCRT DLL dir (Windows only) @<:@probed@:>@])])
if test "x$USE_UCRT" = "xtrue"; then
if test "x$USE_UCRT" = "xtrue" && test "x$OPENJDK_TARGET_CPU" != xaarch64; then
AC_MSG_CHECKING([for UCRT DLL dir])
if test "x$with_ucrt_dll_dir" != x; then
if test -z "$(ls -d "$with_ucrt_dll_dir/"*.dll 2> /dev/null)"; then
@@ -771,19 +644,16 @@ AC_DEFUN([TOOLCHAIN_SETUP_VS_RUNTIME_DLLS],
UCRT_DLL_DIR="$DEVKIT_UCRT_DLL_DIR"
AC_MSG_RESULT($UCRT_DLL_DIR)
else
CYGWIN_WINDOWSSDKDIR="${WINDOWSSDKDIR}"
UTIL_FIXUP_PATH([CYGWIN_WINDOWSSDKDIR])
if test "x$OPENJDK_TARGET_CPU" = "xaarch64"; then
dll_subdir=$OPENJDK_TARGET_CPU
if test "x$dll_subdir" = "xaarch64"; then
dll_subdir="arm64"
elif test "x$OPENJDK_TARGET_CPU" = "xx86_64"; then
elif test "x$dll_subdir" = "xx86_64"; then
dll_subdir="x64"
elif test "x$OPENJDK_TARGET_CPU" = "xx86"; then
dll_subdir="x86"
fi
UCRT_DLL_DIR="$CYGWIN_WINDOWSSDKDIR/Redist/ucrt/DLLs/$dll_subdir"
UCRT_DLL_DIR="$WINDOWSSDKDIR/redist/ucrt/dlls/$dll_subdir"
if test -z "$(ls -d "$UCRT_DLL_DIR/"*.dll 2> /dev/null)"; then
# Try with version subdir
UCRT_DLL_DIR="`ls -d $CYGWIN_WINDOWSSDKDIR/Redist/*/ucrt/DLLs/$dll_subdir \
UCRT_DLL_DIR="`ls -d $WINDOWSSDKDIR/redist/*/ucrt/dlls/$dll_subdir \
2> /dev/null | $SORT -d | $HEAD -n1`"
if test -z "$UCRT_DLL_DIR" \
|| test -z "$(ls -d "$UCRT_DLL_DIR/"*.dll 2> /dev/null)"; then
@@ -805,43 +675,23 @@ AC_DEFUN([TOOLCHAIN_SETUP_VS_RUNTIME_DLLS],
# Setup the sysroot flags and add them to global CFLAGS and LDFLAGS so
# that configure can use them while detecting compilers.
# TOOLCHAIN_TYPE is available here.
# Param 1 - Optional prefix to all variables. (e.g BUILD_)
# Param 1 - Optional prefix to SYSROOT variables. (e.g BUILD_)
# Param 2 - Optional prefix to VS variables. (e.g BUILD_)
AC_DEFUN([TOOLCHAIN_SETUP_VISUAL_STUDIO_SYSROOT_FLAGS],
[
OLDIFS="$IFS"
IFS=";"
# Convert $1VS_INCLUDE into $1SYSROOT_CFLAGS
for i in [$]$1VS_INCLUDE; do
ipath=$i
# Only process non-empty elements
if test "x$ipath" != x; then
IFS="$OLDIFS"
# Check that directory exists before calling fixup_path
testpath=$ipath
UTIL_REWRITE_AS_UNIX_PATH([testpath])
if test -d "$testpath"; then
UTIL_FIXUP_PATH([ipath])
$1SYSROOT_CFLAGS="[$]$1SYSROOT_CFLAGS -I$ipath"
fi
IFS=";"
fi
IFS=":"
# Convert VS_INCLUDE into SYSROOT_CFLAGS
for ipath in [$]$2VS_INCLUDE; do
$1SYSROOT_CFLAGS="[$]$1SYSROOT_CFLAGS -I$ipath"
done
# Convert $1VS_LIB into $1SYSROOT_LDFLAGS
for i in [$]$1VS_LIB; do
libpath=$i
# Only process non-empty elements
if test "x$libpath" != x; then
IFS="$OLDIFS"
# Check that directory exists before calling fixup_path
testpath=$libpath
UTIL_REWRITE_AS_UNIX_PATH([testpath])
if test -d "$testpath"; then
UTIL_FIXUP_PATH([libpath])
$1SYSROOT_LDFLAGS="[$]$1SYSROOT_LDFLAGS -libpath:$libpath"
fi
IFS=";"
fi
# Convert VS_LIB into SYSROOT_LDFLAGS
for libpath in [$]$2VS_LIB; do
$1SYSROOT_LDFLAGS="[$]$1SYSROOT_LDFLAGS -libpath:$libpath"
done
IFS="$OLDIFS"
AC_SUBST($1SYSROOT_CFLAGS)

View File

@@ -24,7 +24,6 @@
#
m4_include([util_paths.m4])
m4_include([util_windows.m4])
###############################################################################
# Create a function/macro that takes a series of named arguments. The call is
@@ -462,151 +461,3 @@ UTIL_DEFUN_NAMED([UTIL_ARG_ENABLE],
fi
])
###############################################################################
# Test that variable $1 denoting a program is not empty. If empty, exit with an error.
# $1: variable to check
AC_DEFUN([UTIL_CHECK_NONEMPTY],
[
if test "x[$]$1" = x; then
AC_MSG_ERROR([Could not find required tool for $1])
fi
])
###############################################################################
# Setup a tool for the given variable. If correctly specified by the user,
# use that value, otherwise search for the tool using the supplied code snippet.
# $1: variable to set
# $2: code snippet to call to look for the tool
# $3: code snippet to call if variable was used to find tool
AC_DEFUN([UTIL_SETUP_TOOL],
[
# Publish this variable in the help.
AC_ARG_VAR($1, [Override default value for $1])
if [[ -z "${$1+x}" ]]; then
# The variable is not set by user, try to locate tool using the code snippet
$2
else
# The variable is set, but is it from the command line or the environment?
# Try to remove the string !$1! from our list.
try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!$1!/}
if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
# If it failed, the variable was not from the command line. Ignore it,
# but warn the user (except for BASH, which is always set by the calling BASH).
if test "x$1" != xBASH; then
AC_MSG_WARN([Ignoring value of $1 from the environment. Use command line variables instead.])
fi
# Try to locate tool using the code snippet
$2
else
# If it succeeded, then it was overridden by the user. We will use it
# for the tool.
# First remove it from the list of overridden variables, so we can test
# for unknown variables in the end.
CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
tool_override=[$]$1
AC_MSG_NOTICE([User supplied override $1="$tool_override"])
# Check if we try to supply an empty value
if test "x$tool_override" = x; then
AC_MSG_CHECKING([for $1])
AC_MSG_RESULT([disabled])
else
# Split up override in command part and argument part
tool_and_args=($tool_override)
[ tool_command=${tool_and_args[0]} ]
[ unset 'tool_and_args[0]' ]
[ tool_args=${tool_and_args[@]} ]
# Check if the provided tool contains a complete path.
tool_basename="${tool_command##*/}"
if test "x$tool_basename" = "x$tool_command"; then
# A command without a complete path is provided, search $PATH.
AC_MSG_NOTICE([Will search for user supplied tool "$tool_basename"])
AC_PATH_PROG($1, $tool_basename)
if test "x[$]$1" = x; then
AC_MSG_ERROR([User supplied tool $1="$tool_basename" could not be found])
fi
else
# Otherwise we believe it is a complete path. Use it as it is.
AC_MSG_NOTICE([Will use user supplied tool "$tool_command"])
AC_MSG_CHECKING([for $tool_command])
if test ! -x "$tool_command" && test ! -x "$tool_command.exe"; then
AC_MSG_RESULT([not found])
AC_MSG_ERROR([User supplied tool $1="$tool_command" does not exist or is not executable])
fi
$1="$tool_command"
AC_MSG_RESULT([found])
fi
if test "x$tool_args" != x; then
# If we got arguments, re-append them to the command after the fixup.
$1="[$]$1 $tool_args"
fi
fi
fi
$3
fi
])
###############################################################################
# Call UTIL_SETUP_TOOL with AC_PATH_PROGS to locate the tool
# $1: variable to set
# $2: executable name (or list of names) to look for
# $3: [path]
AC_DEFUN([UTIL_PATH_PROGS],
[
UTIL_SETUP_TOOL($1, [AC_PATH_PROGS($1, $2, , $3)])
])
###############################################################################
# Call UTIL_SETUP_TOOL with AC_CHECK_TOOLS to locate the tool
# $1: variable to set
# $2: executable name (or list of names) to look for
AC_DEFUN([UTIL_CHECK_TOOLS],
[
UTIL_SETUP_TOOL($1, [AC_CHECK_TOOLS($1, $2)])
])
###############################################################################
# Like UTIL_PATH_PROGS but fails if no tool was found.
# $1: variable to set
# $2: executable name (or list of names) to look for
# $3: [path]
AC_DEFUN([UTIL_REQUIRE_PROGS],
[
UTIL_PATH_PROGS($1, $2, , $3)
UTIL_CHECK_NONEMPTY($1)
])
###############################################################################
# Like UTIL_SETUP_TOOL but fails if no tool was found.
# $1: variable to set
# $2: autoconf macro to call to look for the special tool
AC_DEFUN([UTIL_REQUIRE_SPECIAL],
[
UTIL_SETUP_TOOL($1, [$2])
UTIL_CHECK_NONEMPTY($1)
])
###############################################################################
# Like UTIL_REQUIRE_PROGS but also allows for bash built-ins
# $1: variable to set
# $2: executable name (or list of names) to look for
# $3: [path]
AC_DEFUN([UTIL_REQUIRE_BUILTIN_PROGS],
[
UTIL_SETUP_TOOL($1, [AC_PATH_PROGS($1, $2, , $3)])
if test "x[$]$1" = x; then
AC_MSG_NOTICE([Required tool $2 not found in PATH, checking built-in])
if type -p $2 > /dev/null 2>&1; then
AC_MSG_NOTICE([Found $2 as shell built-in. Using it])
$1="$2"
else
AC_MSG_ERROR([Required tool $2 also not found as built-in.])
fi
fi
UTIL_CHECK_NONEMPTY($1)
])

View File

@@ -23,6 +23,7 @@
# questions.
#
###############################################################################
# Appends a string to a path variable, only adding the : when needed.
AC_DEFUN([UTIL_APPEND_TO_PATH],
[
@@ -35,6 +36,7 @@ AC_DEFUN([UTIL_APPEND_TO_PATH],
fi
])
###############################################################################
# Prepends a string to a path variable, only adding the : when needed.
AC_DEFUN([UTIL_PREPEND_TO_PATH],
[
@@ -47,34 +49,6 @@ AC_DEFUN([UTIL_PREPEND_TO_PATH],
fi
])
################################################################################
# This will make a path absolute. Assumes it's already a unix path. Also
# resolves ~ to homedir.
AC_DEFUN([UTIL_ABSOLUTE_PATH],
[
if test "x[$]$1" != x; then
new_path="[$]$1"
# Use eval to expand a potential ~. This technique does not work if there
# are spaces in the path (which is valid at this point on Windows), so only
# try to apply it if there is an actual ~ first in the path.
if [ [[ "$new_path" = "~"* ]] ]; then
eval new_path="$new_path"
if test ! -f "$new_path" && test ! -d "$new_path"; then
AC_MSG_ERROR([The new_path of $1, which resolves as "$new_path", is not found.])
fi
fi
if test -d "$new_path"; then
$1="`cd "$new_path"; $THEPWDCMD -L`"
else
dir="`$DIRNAME "$new_path"`"
base="`$BASENAME "$new_path"`"
$1="`cd "$dir"; $THEPWDCMD -L`/$base"
fi
fi
])
###############################################################################
# This will make sure the given variable points to a full and proper
# path. This means:
@@ -84,31 +58,100 @@ AC_DEFUN([UTIL_ABSOLUTE_PATH],
# 2) The path will be absolute, and it will be in unix-style (on
# cygwin).
# $1: The name of the variable to fix
# $2: if NOFAIL, errors will be silently ignored
AC_DEFUN([UTIL_FIXUP_PATH],
[
# Only process if variable expands to non-empty
if test "x[$]$1" != x; then
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
UTIL_FIXUP_PATH_CYGWIN($1)
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
UTIL_FIXUP_PATH_MSYS($1)
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
UTIL_FIXUP_PATH_WSL($1)
path="[$]$1"
if test "x$path" != x; then
if test "x$OPENJDK_BUILD_OS" = "xwindows"; then
if test "x$2" = "xNOFAIL"; then
quiet_option="-q"
fi
imported_path=`$FIXPATH_BASE $quiet_option import "$path"`
$FIXPATH_BASE verify "$imported_path"
if test $? -ne 0; then
if test "x$2" != "xNOFAIL"; then
AC_MSG_ERROR([The path of $1, which resolves as "$path", could not be imported.])
else
imported_path=""
fi
fi
if test "x$imported_path" != "x$path"; then
$1="$imported_path"
fi
else
# We're on a unix platform. Hooray! :)
path="[$]$1"
has_space=`$ECHO "$path" | $GREP " "`
if test "x$has_space" != x; then
AC_MSG_NOTICE([The path of $1, which resolves as "$path", is invalid.])
AC_MSG_ERROR([Spaces are not allowed in this path.])
[ if [[ "$path" =~ " " ]]; then ]
if test "x$2" != "xNOFAIL"; then
AC_MSG_NOTICE([The path of $1, which resolves as "$path", is invalid.])
AC_MSG_ERROR([Spaces are not allowed in this path.])
else
path=""
fi
fi
# Use eval to expand a potential ~.
eval new_path="$path"
if test ! -e "$new_path"; then
if test "x$2" != "xNOFAIL"; then
AC_MSG_ERROR([The path of $1, which resolves as "$new_path", is not found.])
else
new_path=""
fi
fi
# Make the path absolute
if test "x$new_path" != x; then
if test -d "$new_path"; then
path="`cd "$new_path"; pwd -L`"
else
dir="`$DIRNAME "$new_path"`"
base="`$BASENAME "$new_path"`"
path="`cd "$dir"; pwd -L`/$base"
fi
else
path=""
fi
UTIL_ABSOLUTE_PATH(path)
$1="$path"
fi
fi
])
###############################################################################
# Check if the given file is a unix-style or windows-style executable, that is,
# if it expects paths in unix-style or windows-style.
# Returns "windows" or "unix" in $RESULT.
AC_DEFUN([UTIL_CHECK_WINENV_EXEC_TYPE],
[
# For cygwin and msys2, if it's linked with the correct helper lib, it
# accept unix paths
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin" || \
test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys2"; then
linked_libs=`$LDD $1 2>&1`
if test $? -ne 0; then
# Non-binary files (e.g. shell scripts) are unix files
RESULT=unix
else
[ if [[ "$linked_libs" =~ $WINENV_MARKER_DLL ]]; then ]
RESULT=unix
else
RESULT=windows
fi
fi
elif test "x$OPENJDK_BUILD_OS" = "xwindows"; then
# On WSL, we can check if it is a PE file
file_type=`$FILE -b $1 2>&1`
[ if [[ $file_type =~ PE.*Windows ]]; then ]
RESULT=windows
else
RESULT=unix
fi
else
RESULT=unix
fi
])
###############################################################################
# This will make sure the given variable points to a executable
# with a full and proper path. This means:
@@ -121,65 +164,331 @@ AC_DEFUN([UTIL_FIXUP_PATH],
# If the input variable does not have a directory specification, then
# it need to be in the PATH.
# $1: The name of the variable to fix
# $2: Where to look for the command (replaces $PATH)
# $3: set to NOFIXPATH to skip prefixing FIXPATH, even if needed on platform
AC_DEFUN([UTIL_FIXUP_EXECUTABLE],
[
input="[$]$1"
# Only process if variable expands to non-empty
if test "x[$]$1" != x; then
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
UTIL_FIXUP_EXECUTABLE_CYGWIN($1)
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
UTIL_FIXUP_EXECUTABLE_MSYS($1)
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
UTIL_FIXUP_EXECUTABLE_WSL($1)
if test "x$input" != x; then
# First separate the path from the arguments. This will split at the first
# space.
[ if [[ "$OPENJDK_BUILD_OS" = "windows" && input =~ ^$FIXPATH ]]; then
line="${input#$FIXPATH }"
prefix="$FIXPATH "
else
# We're on a unix platform. Hooray! :)
# First separate the path from the arguments. This will split at the first
# space.
complete="[$]$1"
path="${complete%% *}"
tmp="$complete EOL"
arguments="${tmp#* }"
line="$input"
prefix=""
fi ]
path="${line%% *}"
arguments="${line#"$path"}"
# Cannot rely on the command "which" here since it doesn't always work.
is_absolute_path=`$ECHO "$path" | $GREP ^/`
if test -z "$is_absolute_path"; then
# Path to executable is not absolute. Find it.
IFS_save="$IFS"
IFS=:
for p in $PATH; do
if test -f "$p/$path" && test -x "$p/$path"; then
new_path="$p/$path"
break
fi
done
IFS="$IFS_save"
else
# This is an absolute path, we can use it without further modifications.
[ if ! [[ "$path" =~ /|\\ ]]; then ]
# This is a command without path (e.g. "gcc" or "echo")
command_type=`type -t "$path"`
if test "x$command_type" = xbuiltin || test "x$command_type" = xkeyword; then
# Shell builtin or keyword; we're done here
new_path="$path"
fi
if test "x$new_path" = x; then
AC_MSG_NOTICE([The path of $1, which resolves as "$complete", is not found.])
has_space=`$ECHO "$complete" | $GREP " "`
if test "x$has_space" != x; then
AC_MSG_NOTICE([This might be caused by spaces in the path, which is not allowed.])
else
# Search in $PATH using bash built-in 'type -p'.
saved_path="$PATH"
if test "x$2" != x; then
PATH="$2"
fi
new_path=`type -p "$path"`
if test "x$new_path" = x && test "x$OPENJDK_BUILD_OS" = "xwindows"; then
# Try again with .exe
new_path="`type -p "$path.exe"`"
fi
PATH="$saved_path"
if test "x$new_path" = x; then
AC_MSG_NOTICE([The command for $1, which resolves as "$input", is not found in the PATH.])
AC_MSG_ERROR([Cannot locate $path])
fi
AC_MSG_ERROR([Cannot locate the the path of $1])
fi
else
# This is a path with slashes, don't look at $PATH
if test "x$OPENJDK_BUILD_OS" = "xwindows"; then
# fixpath.sh import will do all heavy lifting for us
new_path=`$FIXPATH_BASE import "$path"`
if test ! -e $new_path; then
# It failed, but maybe spaces were part of the path and not separating
# the command and argument. Retry using that assumption.
new_path=`$FIXPATH_BASE import "$input"`
if test ! -e $new_path; then
AC_MSG_NOTICE([The command for $1, which resolves as "$input", can not be found.])
AC_MSG_ERROR([Cannot locate $input])
fi
# It worked, clear all "arguments"
arguments=""
fi
else # on unix
# Make absolute
$1="$path"
UTIL_FIXUP_PATH($1, NOFAIL)
new_path="[$]$1"
if test ! -e $new_path; then
AC_MSG_NOTICE([The command for $1, which resolves as "$input", is not found])
[ if [[ "$path" =~ " " ]]; then ]
AC_MSG_NOTICE([This might be caused by spaces in the path, which is not allowed.])
fi
AC_MSG_ERROR([Cannot locate $path])
fi
if test ! -x $new_path; then
AC_MSG_NOTICE([The command for $1, which resolves as "$input", is not executable.])
AC_MSG_ERROR([Cannot execute command at $path])
fi
fi # end on unix
fi # end with or without slashes
# Now we have a usable command as new_path, with arguments in arguments
if test "x$OPENJDK_BUILD_OS" = "xwindows"; then
if test "x$prefix" = x; then
# Only mess around if prefix was not given
UTIL_CHECK_WINENV_EXEC_TYPE("$new_path")
if test "x$RESULT" = xwindows; then
prefix="$FIXPATH "
# make sure we have an .exe suffix (but not two)
new_path="${new_path%.exe}.exe"
else
# If we have gotten a .exe suffix, remove it
new_path="${new_path%.exe}"
fi
fi
fi
if test "x$3" = xNOFIXPATH; then
prefix=""
fi
# Now join together the path and the arguments once again
if test "x$arguments" != xEOL; then
new_complete="$new_path ${arguments% *}"
new_complete="$prefix$new_path$arguments"
$1="$new_complete"
fi
])
###############################################################################
# Setup a tool for the given variable. If correctly specified by the user,
# use that value, otherwise search for the tool using the supplied code snippet.
# $1: variable to set
# $2: code snippet to call to look for the tool
# $3: code snippet to call if variable was used to find tool
AC_DEFUN([UTIL_SETUP_TOOL],
[
# Publish this variable in the help.
AC_ARG_VAR($1, [Override default value for $1])
if [[ -z "${$1+x}" ]]; then
# The variable is not set by user, try to locate tool using the code snippet
$2
else
# The variable is set, but is it from the command line or the environment?
# Try to remove the string !$1! from our list.
try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!$1!/}
if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
# If it failed, the variable was not from the command line. Ignore it,
# but warn the user (except for BASH, which is always set by the calling BASH).
if test "x$1" != xBASH; then
AC_MSG_WARN([Ignoring value of $1 from the environment. Use command line variables instead.])
fi
# Try to locate tool using the code snippet
$2
else
new_complete="$new_path"
# If it succeeded, then it was overridden by the user. We will use it
# for the tool.
# First remove it from the list of overridden variables, so we can test
# for unknown variables in the end.
CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
tool_override=[$]$1
# Check if we try to supply an empty value
if test "x$tool_override" = x; then
AC_MSG_CHECKING([for $1])
AC_MSG_RESULT([[[disabled by user]]])
else
# Split up override in command part and argument part
tool_and_args=($tool_override)
[ tool_command=${tool_and_args[0]} ]
[ unset 'tool_and_args[0]' ]
[ tool_args=${tool_and_args[@]} ]
# Check if the provided tool contains a complete path.
tool_basename="${tool_command##*/}"
if test "x$tool_basename" = "x$tool_command"; then
# A command without a complete path is provided, search $PATH.
AC_MSG_NOTICE([Will search for user supplied tool "$tool_basename"])
AC_PATH_PROGS($1, $tool_basename ${tool_basename}.exe)
tool_command="[$]$1"
if test "x$tool_command" = x; then
AC_MSG_ERROR([User supplied tool $1="$tool_basename" could not be found in PATH])
fi
else
# Otherwise we believe it is a complete path. Use it as it is.
if test ! -x "$tool_command" && test ! -x "${tool_command}.exe"; then
AC_MSG_ERROR([User supplied tool $1="$tool_command" does not exist or is not executable])
fi
if test ! -x "$tool_command"; then
tool_command="${tool_command}.exe"
fi
$1="$tool_command"
fi
if test "x$tool_args" != x; then
# If we got arguments, re-append them to the command after the fixup.
$1="[$]$1 $tool_args"
fi
AC_MSG_CHECKING([for $1])
AC_MSG_RESULT([[$]$1 [[user supplied]]])
fi
fi
$3
fi
])
###############################################################################
# Locate a tool using proper methods.
# $1: variable to set
# $2: executable name (or list of names) to look for
# $3: [path]
# $4: set to NOFIXPATH to skip prefixing FIXPATH, even if needed on platform
AC_DEFUN([UTIL_LOOKUP_PROGS],
[
UTIL_SETUP_TOOL($1, [
$1=""
if test "x$3" != x; then
old_path="$PATH"
PATH="$3"
fi
if test "x$complete" != "x$new_complete"; then
$1="$new_complete"
AC_MSG_NOTICE([Rewriting $1 to "$new_complete"])
for name in $2; do
AC_MSG_CHECKING(for $name)
command_type=`type -t "$name"`
if test "x$command_type" = xbuiltin || test "x$command_type" = xkeyword; then
# Shell builtin or keyword; we're done here
full_path="$name"
$1="$full_path"
AC_MSG_RESULT([[$full_path [builtin]]])
break
else
# Search in $PATH
old_ifs="$IFS"
IFS=":"
for elem in $PATH; do
IFS="$old_ifs"
if test "x$elem" = x; then
continue
fi
full_path="$elem/$name"
if test ! -e "$full_path" && test "x$OPENJDK_BUILD_OS" = "xwindows"; then
# Try again with .exe
full_path="$elem/$name.exe"
fi
if test -x "$full_path" && test ! -d "$full_path" ; then
$1="$full_path"
UTIL_FIXUP_EXECUTABLE($1, $3, $4)
result="[$]$1"
# If we have FIXPATH enabled, strip all instances of it and prepend
# a single one, to avoid double fixpath prefixing.
if test "x$4" != xNOFIXPATH; then
[ if [[ $FIXPATH != "" && $result =~ ^"$FIXPATH " ]]; then ]
result="\$FIXPATH ${result#"$FIXPATH "}"
fi
fi
AC_MSG_RESULT([$result])
break 2;
fi
done
IFS="$old_ifs"
fi
AC_MSG_RESULT([[[not found]]])
done
if test "x$3" != x; then
PATH="$old_path"
fi
])
])
###############################################################################
# Call UTIL_SETUP_TOOL with AC_CHECK_TOOLS to locate the tool. This will look
# first for cross-compilation tools.
# $1: variable to set
# $2: executable name (or list of names) to look for
# $3: [path]
AC_DEFUN([UTIL_LOOKUP_TOOLCHAIN_PROGS],
[
if test "x$ac_tool_prefix" = x; then
UTIL_LOOKUP_PROGS($1, $2, $3)
else
prefixed_names=$(for name in $2; do echo ${ac_tool_prefix}${name} $name; done)
UTIL_LOOKUP_PROGS($1, $prefixed_names, $3)
fi
])
###############################################################################
# Test that variable $1 denoting a program is not empty. If empty, exit with an error.
# $1: variable to check
AC_DEFUN([UTIL_CHECK_NONEMPTY],
[
if test "x[$]$1" = x; then
AC_MSG_ERROR([Could not find required tool for $1])
fi
])
###############################################################################
# Like UTIL_LOOKUP_PROGS but fails if no tool was found.
# $1: variable to set
# $2: executable name (or list of names) to look for
# $3: [path]
AC_DEFUN([UTIL_REQUIRE_PROGS],
[
UTIL_LOOKUP_PROGS($1, $2, $3)
UTIL_CHECK_NONEMPTY($1)
])
###############################################################################
# Like UTIL_LOOKUP_PROGS but fails if no tool was found.
# $1: variable to set
# $2: executable name (or list of names) to look for
# $3: [path]
AC_DEFUN([UTIL_REQUIRE_TOOLCHAIN_PROGS],
[
UTIL_LOOKUP_TOOLCHAIN_PROGS($1, $2, $3)
UTIL_CHECK_NONEMPTY($1)
])
###############################################################################
# Like UTIL_SETUP_TOOL but fails if no tool was found.
# $1: variable to set
# $2: autoconf macro to call to look for the special tool
AC_DEFUN([UTIL_REQUIRE_SPECIAL],
[
UTIL_SETUP_TOOL($1, [$2])
UTIL_CHECK_NONEMPTY($1)
# The special macro will return an absolute path, and is only used for
# unix tools. No further processing needed.
])
###############################################################################
# Add FIXPATH prefix to variable. Normally this is done by UTIL_LOOKUP_PROGS
# or UTIL_FIXUP_EXECUTABLE, but in some circumstances this has to be done
# explicitly, such as when the command in question does not exist yet.
#
# $1: variable to add fixpath to
AC_DEFUN([UTIL_ADD_FIXPATH],
[
if test "x$FIXPATH" != x; then
$1="$FIXPATH [$]$1"
fi
])
@@ -208,8 +517,8 @@ AC_DEFUN([UTIL_REMOVE_SYMBOLIC_LINKS],
sym_link_file=`$BASENAME [$]$1`
cd $sym_link_dir
# Use -P flag to resolve symlinks in directories.
cd `$THEPWDCMD -P`
sym_link_dir=`$THEPWDCMD -P`
cd `pwd -P`
sym_link_dir=`pwd -P`
# Resolve file symlinks
while test $COUNTER -lt 20; do
ISLINK=`$LS -l $sym_link_dir/$sym_link_file | $GREP '\->' | $SED -e 's/.*-> \(.*\)/\1/'`
@@ -220,7 +529,7 @@ AC_DEFUN([UTIL_REMOVE_SYMBOLIC_LINKS],
# Again resolve directory symlinks since the target of the just found
# link could be in a different directory
cd `$DIRNAME $ISLINK`
sym_link_dir=`$THEPWDCMD -P`
sym_link_dir=`pwd -P`
sym_link_file=`$BASENAME $ISLINK`
let COUNTER=COUNTER+1
done
@@ -229,4 +538,3 @@ AC_DEFUN([UTIL_REMOVE_SYMBOLIC_LINKS],
fi
fi
])

View File

@@ -1,451 +0,0 @@
#
# Copyright (c) 2011, 2020, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
AC_DEFUN([UTIL_REWRITE_AS_UNIX_PATH],
[
windows_path="[$]$1"
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
unix_path=`$CYGPATH -u "$windows_path"`
$1="$unix_path"
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
unix_path=`$ECHO "$windows_path" | $SED -e 's,^\\(.\\):,/\\1,g' -e 's,\\\\,/,g'`
$1="$unix_path"
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
# wslpath does not check the input, only call if an actual windows path was
# given.
if $ECHO "$windows_path" | $GREP -q ["^[a-zA-Z]:[\\\\/]"]; then
unix_path=`$WSLPATH -u "$windows_path"`
$1="$unix_path"
fi
fi
])
AC_DEFUN([UTIL_REWRITE_AS_WINDOWS_MIXED_PATH],
[
unix_path="[$]$1"
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
windows_path=`$CYGPATH -m "$unix_path"`
$1="$windows_path"
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
windows_path=`cmd //c echo $unix_path`
$1="$windows_path"
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
windows_path=`$WSLPATH -m "$unix_path" 2>/dev/null`
if test $? -ne 0; then
dir=`dirname "$unix_path"`
base=`basename "$unix_path"`
windows_path=`$WSLPATH -m "$dir"`/"$base"
if test $? -ne 0; then
AC_MSG_ERROR([Cannot convert "$unix_path" to Windows path])
fi
fi
$1="$windows_path"
fi
])
# Helper function which possibly converts a path using DOS-style short mode.
# If so, the updated path is stored in $new_path.
# $1: The path to check
AC_DEFUN([UTIL_MAKE_WINDOWS_SPACE_SAFE_CYGWIN],
[
input_path="$1"
# Check if we need to convert this using DOS-style short mode. If the path
# contains just simple characters, use it. Otherwise (spaces, weird characters),
# take no chances and rewrite it.
# Note: m4 eats our [], so we need to use @<:@ and @:>@ instead.
has_forbidden_chars=`$ECHO "$input_path" | $GREP @<:@^-._/a-zA-Z0-9@:>@`
if test "x$has_forbidden_chars" != x; then
# Now convert it to mixed DOS-style, short mode (no spaces, and / instead of \)
shortmode_path=`$CYGPATH -s -m -a "$input_path"`
path_after_shortmode=`$CYGPATH -u "$shortmode_path"`
if test "x$path_after_shortmode" != "x$input_to_shortpath"; then
# Going to short mode and back again did indeed matter. Since short mode is
# case insensitive, let's make it lowercase to improve readability.
shortmode_path=`$ECHO "$shortmode_path" | $TR 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
# Now convert it back to Unix-style (cygpath)
input_path=`$CYGPATH -u "$shortmode_path"`
new_path="$input_path"
fi
fi
test_cygdrive_prefix=`$ECHO $input_path | $GREP ^/cygdrive/`
if test "x$test_cygdrive_prefix" = x; then
# As a simple fix, exclude /usr/bin since it's not a real path.
if test "x`$ECHO $1 | $GREP ^/usr/bin/`" = x; then
# The path is in a Cygwin special directory (e.g. /home). We need this converted to
# a path prefixed by /cygdrive for fixpath to work.
new_path="$CYGWIN_ROOT_PATH$input_path"
fi
fi
])
# Helper function which possibly converts a path using DOS-style short mode.
# If so, the updated path is stored in $new_path.
# $1: The path to check
AC_DEFUN([UTIL_MAKE_WINDOWS_SPACE_SAFE_MSYS],
[
input_path="$1"
# Check if we need to convert this using DOS-style short mode. If the path
# contains just simple characters, use it. Otherwise (spaces, weird characters),
# take no chances and rewrite it.
# Note: m4 eats our [], so we need to use @<:@ and @:>@ instead.
has_forbidden_chars=`$ECHO "$input_path" | $GREP @<:@^-_/:a-zA-Z0-9@:>@`
if test "x$has_forbidden_chars" != x; then
# Now convert it to mixed DOS-style, short mode (no spaces, and / instead of \)
new_path=`cmd /c "for %A in (\"$input_path\") do @echo %~sA"|$TR \\\\\\\\ / | $TR 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
fi
])
# Helper function which possibly converts a path using DOS-style short mode.
# If so, the updated path is stored in $new_path.
# $1: The path to check
AC_DEFUN([UTIL_MAKE_WINDOWS_SPACE_SAFE_WSL],
[
input_path="$1"
# Check if we need to convert this using DOS-style short mode. If the path
# contains just simple characters, use it. Otherwise (spaces, weird characters),
# take no chances and rewrite it.
# Note: m4 eats our [], so we need to use @<:@ and @:>@ instead.
has_forbidden_chars=`$ECHO "$input_path" | $GREP [[^-_/:a-zA-Z0-9\\.]]`
if test "x$has_forbidden_chars" != x; then
# Now convert it to mixed DOS-style, short mode (no spaces, and / instead of \)
TOPDIR_windows="$TOPDIR"
UTIL_REWRITE_AS_WINDOWS_MIXED_PATH([TOPDIR_windows])
# First convert to Windows path to make input valid for cmd
UTIL_REWRITE_AS_WINDOWS_MIXED_PATH([input_path])
# Reset PATH since it can contain a mix of WSL/linux paths and Windows paths from VS,
# which, in combination with WSLENV, will make the WSL layer complain
old_path="$PATH"
PATH=
new_path=`$CMD /c $TOPDIR_windows/make/scripts/windowsShortName.bat "$input_path" \
| $SED -e 's|\r||g' \
| $TR \\\\\\\\ / | $TR 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
# Rewrite back to unix style
PATH="$old_path"
UTIL_REWRITE_AS_UNIX_PATH([new_path])
fi
])
# FIXME: The UTIL_FIXUP_*_CYGWIN/MSYS is most likely too convoluted
# and could probably be heavily simplified. However, all changes in this
# area tend to need lot of testing in different scenarios, and in lack of
# proper unit testing, cleaning this up has not been deemed worth the effort
# at the moment.
AC_DEFUN([UTIL_FIXUP_PATH_CYGWIN],
[
# Input might be given as Windows format, start by converting to
# unix format.
path="[$]$1"
new_path=`$CYGPATH -u "$path"`
UTIL_ABSOLUTE_PATH(new_path)
# Cygwin tries to hide some aspects of the Windows file system, such that binaries are
# named .exe but called without that suffix. Therefore, "foo" and "foo.exe" are considered
# the same file, most of the time (as in "test -f"). But not when running cygpath -s, then
# "foo.exe" is OK but "foo" is an error.
#
# This test is therefore slightly more accurate than "test -f" to check for file precense.
# It is also a way to make sure we got the proper file name for the real test later on.
test_shortpath=`$CYGPATH -s -m "$new_path" 2> /dev/null`
if test "x$test_shortpath" = x; then
AC_MSG_NOTICE([The path of $1, which resolves as "$path", is invalid.])
AC_MSG_ERROR([Cannot locate the the path of $1])
fi
# Call helper function which possibly converts this using DOS-style short mode.
# If so, the updated path is stored in $new_path.
UTIL_MAKE_WINDOWS_SPACE_SAFE_CYGWIN([$new_path])
if test "x$path" != "x$new_path"; then
$1="$new_path"
AC_MSG_NOTICE([Rewriting $1 to "$new_path"])
fi
])
AC_DEFUN([UTIL_FIXUP_PATH_MSYS],
[
path="[$]$1"
has_colon=`$ECHO $path | $GREP ^.:`
new_path="$path"
if test "x$has_colon" = x; then
# Not in mixed or Windows style, start by that.
new_path=`cmd //c echo $path`
fi
UTIL_ABSOLUTE_PATH(new_path)
UTIL_MAKE_WINDOWS_SPACE_SAFE_MSYS([$new_path])
UTIL_REWRITE_AS_UNIX_PATH(new_path)
if test "x$path" != "x$new_path"; then
$1="$new_path"
AC_MSG_NOTICE([Rewriting $1 to "$new_path"])
fi
# Save the first 10 bytes of this path to the storage, so fixpath can work.
all_fixpath_prefixes=("${all_fixpath_prefixes@<:@@@:>@}" "${new_path:0:10}")
])
AC_DEFUN([UTIL_FIXUP_PATH_WSL],
[
# Input might be given as Windows format, start by converting to
# unix format.
new_path="[$]$1"
UTIL_REWRITE_AS_UNIX_PATH([new_path])
UTIL_ABSOLUTE_PATH(new_path)
# Call helper function which possibly converts this using DOS-style short mode.
# If so, the updated path is stored in $new_path.
UTIL_MAKE_WINDOWS_SPACE_SAFE_WSL([$new_path])
if test "x$path" != "x$new_path"; then
$1="$new_path"
AC_MSG_NOTICE([Rewriting $1 to "$new_path"])
fi
])
AC_DEFUN([UTIL_FIXUP_EXECUTABLE_CYGWIN],
[
# First separate the path from the arguments. This will split at the first
# space.
complete="[$]$1"
path="${complete%% *}"
tmp="$complete EOL"
arguments="${tmp#* }"
# Input might be given as Windows format, start by converting to
# unix format.
new_path=`$CYGPATH -u "$path"`
# Now try to locate executable using which
new_path=`type -p "$new_path" 2> /dev/null`
# bat and cmd files are not always considered executable in cygwin causing which
# to not find them
if test "x$new_path" = x \
&& test "x`$ECHO \"$path\" | $GREP -i -e \"\\.bat$\" -e \"\\.cmd$\"`" != x \
&& test "x`$LS \"$path\" 2>/dev/null`" != x; then
new_path=`$CYGPATH -u "$path"`
fi
if test "x$new_path" = x; then
# Oops. Which didn't find the executable.
# The splitting of arguments from the executable at a space might have been incorrect,
# since paths with space are more likely in Windows. Give it another try with the whole
# argument.
path="$complete"
arguments="EOL"
new_path=`$CYGPATH -u "$path"`
new_path=`type -p "$new_path" 2> /dev/null`
# bat and cmd files are not always considered executable in cygwin causing which
# to not find them
if test "x$new_path" = x \
&& test "x`$ECHO \"$path\" | $GREP -i -e \"\\.bat$\" -e \"\\.cmd$\"`" != x \
&& test "x`$LS \"$path\" 2>/dev/null`" != x; then
new_path=`$CYGPATH -u "$path"`
fi
if test "x$new_path" = x; then
# It's still not found. Now this is an unrecoverable error.
AC_MSG_NOTICE([The path of $1, which resolves as "$complete", is not found.])
has_space=`$ECHO "$complete" | $GREP " "`
if test "x$has_space" != x; then
AC_MSG_NOTICE([You might be mixing spaces in the path and extra arguments, which is not allowed.])
fi
AC_MSG_ERROR([Cannot locate the the path of $1])
fi
fi
# Cygwin tries to hide some aspects of the Windows file system, such that binaries are
# named .exe but called without that suffix. Therefore, "foo" and "foo.exe" are considered
# the same file, most of the time (as in "test -f"). But not when running cygpath -s, then
# "foo.exe" is OK but "foo" is an error.
#
# This test is therefore slightly more accurate than "test -f" to check for file presence.
# It is also a way to make sure we got the proper file name for the real test later on.
test_shortpath=`$CYGPATH -s -m "$new_path" 2> /dev/null`
if test "x$test_shortpath" = x; then
# Short path failed, file does not exist as specified.
# Try adding .exe or .cmd
if test -f "${new_path}.exe"; then
input_to_shortpath="${new_path}.exe"
elif test -f "${new_path}.cmd"; then
input_to_shortpath="${new_path}.cmd"
else
AC_MSG_NOTICE([The path of $1, which resolves as "$new_path", is invalid.])
AC_MSG_NOTICE([Neither "$new_path" nor "$new_path.exe/cmd" can be found])
AC_MSG_ERROR([Cannot locate the the path of $1])
fi
else
input_to_shortpath="$new_path"
fi
# Call helper function which possibly converts this using DOS-style short mode.
# If so, the updated path is stored in $new_path.
new_path="$input_to_shortpath"
UTIL_MAKE_WINDOWS_SPACE_SAFE_CYGWIN([$input_to_shortpath])
# remove trailing .exe if any
new_path="${new_path/%.exe/}"
])
AC_DEFUN([UTIL_FIXUP_EXECUTABLE_MSYS],
[
# First separate the path from the arguments. This will split at the first
# space.
complete="[$]$1"
path="${complete%% *}"
tmp="$complete EOL"
arguments="${tmp#* }"
# Input might be given as Windows format, start by converting to
# unix format.
new_path="$path"
UTIL_REWRITE_AS_UNIX_PATH(new_path)
# Now try to locate executable using which
new_path=`type -p "$new_path" 2> /dev/null`
if test "x$new_path" = x; then
# Oops. Which didn't find the executable.
# The splitting of arguments from the executable at a space might have been incorrect,
# since paths with space are more likely in Windows. Give it another try with the whole
# argument.
path="$complete"
arguments="EOL"
new_path="$path"
UTIL_REWRITE_AS_UNIX_PATH(new_path)
new_path=`type -p "$new_path" 2> /dev/null`
# bat and cmd files are not always considered executable in MSYS causing which
# to not find them
if test "x$new_path" = x \
&& test "x`$ECHO \"$path\" | $GREP -i -e \"\\.bat$\" -e \"\\.cmd$\"`" != x \
&& test "x`$LS \"$path\" 2>/dev/null`" != x; then
new_path="$path"
UTIL_REWRITE_AS_UNIX_PATH(new_path)
fi
if test "x$new_path" = x; then
# It's still not found. Now this is an unrecoverable error.
AC_MSG_NOTICE([The path of $1, which resolves as "$complete", is not found.])
has_space=`$ECHO "$complete" | $GREP " "`
if test "x$has_space" != x; then
AC_MSG_NOTICE([You might be mixing spaces in the path and extra arguments, which is not allowed.])
fi
AC_MSG_ERROR([Cannot locate the the path of $1])
fi
fi
# Now new_path has a complete unix path to the binary
if test "x`$ECHO $new_path | $GREP ^/bin/`" != x; then
# Keep paths in /bin as-is, but remove trailing .exe if any
new_path="${new_path/%.exe/}"
# Do not save /bin paths to all_fixpath_prefixes!
else
# Not in mixed or Windows style, start by that.
new_path=`cmd //c echo $new_path`
UTIL_MAKE_WINDOWS_SPACE_SAFE_MSYS([$new_path])
# Output is in $new_path
UTIL_REWRITE_AS_UNIX_PATH(new_path)
# remove trailing .exe if any
new_path="${new_path/%.exe/}"
# Save the first 10 bytes of this path to the storage, so fixpath can work.
all_fixpath_prefixes=("${all_fixpath_prefixes@<:@@@:>@}" "${new_path:0:10}")
fi
])
AC_DEFUN([UTIL_FIXUP_EXECUTABLE_WSL],
[
# First separate the path from the arguments. This will split at the first
# space.
complete="[$]$1"
path="${complete%% *}"
tmp="$complete EOL"
arguments="${tmp#* }"
# Input might be given as Windows format, start by converting to
# unix format.
new_path="$path"
UTIL_REWRITE_AS_UNIX_PATH([new_path])
# Now try to locate executable using which
new_path_bak="$new_path"
new_path=`type -p "$new_path" 2> /dev/null`
# bat and cmd files are not considered executable in WSL
if test "x$new_path" = x \
&& test "x`$ECHO \"$path\" | $GREP -i -e \"\\.bat$\" -e \"\\.cmd$\"`" != x \
&& test "x`$LS \"$path\" 2>/dev/null`" != x; then
new_path="$new_path_back"
fi
if test "x$new_path" = x; then
# Oops. Which didn't find the executable.
# The splitting of arguments from the executable at a space might have been incorrect,
# since paths with space are more likely in Windows. Give it another try with the whole
# argument.
path="$complete"
arguments="EOL"
new_path="$path"
UTIL_REWRITE_AS_UNIX_PATH([new_path])
new_path_bak="$new_path"
new_path=`type -p "$new_path" 2> /dev/null`
# bat and cmd files are not considered executable in WSL
if test "x$new_path" = x \
&& test "x`$ECHO \"$path\" | $GREP -i -e \"\\.bat$\" -e \"\\.cmd$\"`" != x \
&& test "x`$LS \"$path\" 2>/dev/null`" != x; then
new_path="$new_path_bak"
fi
if test "x$new_path" = x; then
# It's still not found. Now this is an unrecoverable error.
AC_MSG_NOTICE([The path of $1, which resolves as "$complete", is not found.])
has_space=`$ECHO "$complete" | $GREP " "`
if test "x$has_space" != x; then
AC_MSG_NOTICE([You might be mixing spaces in the path and extra arguments, which is not allowed.])
fi
AC_MSG_ERROR([Cannot locate the the path of $1])
fi
fi
# In WSL, suffixes must be present for Windows executables
if test ! -f "$new_path"; then
# Try adding .exe or .cmd
if test -f "${new_path}.exe"; then
input_to_shortpath="${new_path}.exe"
elif test -f "${new_path}.cmd"; then
input_to_shortpath="${new_path}.cmd"
else
AC_MSG_NOTICE([The path of $1, which resolves as "$new_path", is invalid.])
AC_MSG_NOTICE([Neither "$new_path" nor "$new_path.exe/cmd" can be found])
AC_MSG_ERROR([Cannot locate the the path of $1])
fi
else
input_to_shortpath="$new_path"
fi
# Call helper function which possibly converts this using DOS-style short mode.
# If so, the updated path is stored in $new_path.
new_path="$input_to_shortpath"
UTIL_MAKE_WINDOWS_SPACE_SAFE_WSL([$input_to_shortpath])
])

View File

@@ -26,18 +26,18 @@
# Default version, product, and vendor information to use,
# unless overridden by configure
DEFAULT_VERSION_FEATURE=16
DEFAULT_VERSION_FEATURE=17
DEFAULT_VERSION_INTERIM=0
DEFAULT_VERSION_UPDATE=0
DEFAULT_VERSION_PATCH=0
DEFAULT_VERSION_EXTRA1=0
DEFAULT_VERSION_EXTRA2=0
DEFAULT_VERSION_EXTRA3=0
DEFAULT_VERSION_DATE=2021-03-16
DEFAULT_VERSION_CLASSFILE_MAJOR=60 # "`$EXPR $DEFAULT_VERSION_FEATURE + 44`"
DEFAULT_VERSION_DATE=2021-09-14
DEFAULT_VERSION_CLASSFILE_MAJOR=61 # "`$EXPR $DEFAULT_VERSION_FEATURE + 44`"
DEFAULT_VERSION_CLASSFILE_MINOR=0
DEFAULT_ACCEPTABLE_BOOT_VERSIONS="15 16"
DEFAULT_JDK_SOURCE_TARGET_VERSION=16
DEFAULT_ACCEPTABLE_BOOT_VERSIONS="15 16 17"
DEFAULT_JDK_SOURCE_TARGET_VERSION=17
DEFAULT_PROMOTED_VERSION_PRE=ea
LAUNCHER_NAME=openjdk

View File

@@ -177,6 +177,12 @@ define SetupJavaCompilationBody
$$(error Must specify BIN (in $1))
endif
ifneq ($$($1_MODULE), )
$1_MODULE_SUBDIR := /$$($1_MODULE)
endif
$1_SAFE_NAME := $$(strip $$(subst /,_, $1))
ifeq ($$($1_SMALL_JAVA), )
# If unspecified, default to true
$1_SMALL_JAVA := true
@@ -215,18 +221,29 @@ define SetupJavaCompilationBody
ifeq ($$(ENABLE_JAVAC_SERVER)+$$($1_CLASSPATH), true+)
$1_JAVAC := $$(INTERIM_LANGTOOLS_ARGS) -m jdk.compiler.interim/com.sun.tools.sjavac.Main
# How to launch the server. This must use JAVA_DETACH, which is the "big" java
# with an ability to detach from fixpath (on Windows)
# This will be executed by the client, if needed.
$1_JAVAC_SERVER_CMD := $$(JAVA_DETACH) $$($1_JAVA_FLAGS) $$($1_JAVAC)
$1_ESCAPED_CMD := $$(subst $$(SPACE),%20,$$(subst $$(COMMA),%2C,$$(strip $$($1_JAVAC_SERVER_CMD))))
# Create a configuration file with the needed information for the javac
# server to function properly.
$1_JAVAC_SERVER_CONFIG := $$($1_BIN)$$($1_MODULE_SUBDIR)/_the.$$($1_SAFE_NAME)-server.conf
# The port file contains the tcp/ip on which the server listens
# The portfile contains the tcp/ip on which the server listens
# and the cookie necessary to talk to the server.
$1_JAVA_SERVER_FLAGS := --server:portfile=$$(JAVAC_SERVER_DIR)/server.port,sjavac=$$($1_ESCAPED_CMD)
$1_JAVAC_PORT_FILE := $$(call FixPath, $$(JAVAC_SERVER_DIR)/server.port)
# Always use small to launch client
$1_JAVAC_CMD := $$(JAVA_SMALL) $$($1_JAVA_FLAGS) $$($1_JAVAC) $$($1_JAVA_SERVER_FLAGS)
# The servercmd specifies how to launch the server. This will be executed
# by the client, if needed.
$1_JAVAC_SERVER_CMD := $$(call FixPath, $$(JAVA) $$($1_JAVA_FLAGS) $$($1_JAVAC))
$1_CONFIG_VARDEPS := $$($1_JAVAC_PORT_FILE) $$($1_JAVAC_SERVER_CMD)
$1_CONFIG_VARDEPS_FILE := $$(call DependOnVariable, $1_CONFIG_VARDEPS, \
$$($1_BIN)$$($1_MODULE_SUBDIR)/_the.$1.config_vardeps)
$$($1_JAVAC_SERVER_CONFIG): $$($1_CONFIG_VARDEPS_FILE)
$(ECHO) portfile=$$($1_JAVAC_PORT_FILE) > $$@
$(ECHO) servercmd=$$($1_JAVAC_SERVER_CMD) >> $$@
# Always use small java to launch client
$1_JAVAC_CMD := $$(JAVA_SMALL) $$($1_JAVA_FLAGS) $$($1_JAVAC) \
--server:conf=$$($1_JAVAC_SERVER_CONFIG)
else
# No javac server
$1_JAVAC := $$(INTERIM_LANGTOOLS_ARGS) -m jdk.compiler.interim/com.sun.tools.javac.Main
@@ -263,10 +280,6 @@ define SetupJavaCompilationBody
$1_FLAGS += -cp $$(call PathList, $$($1_CLASSPATH))
endif
ifneq ($$($1_MODULE), )
$1_MODULE_SUBDIR := /$$($1_MODULE)
endif
# Make sure the dirs exist, or that one of the EXTRA_FILES, that may not
# exist yet, is in it.
$$(foreach d, $$($1_SRC), \
@@ -331,9 +344,6 @@ define SetupJavaCompilationBody
$$(error No source files found for $1)
endif
else
$1_SAFE_NAME := $$(strip $$(subst /,_, $1))
# All files below META-INF are always copied.
$1_ALL_COPIES := $$(filter $$(addsuffix /META-INF%,$$($1_SRC)),$$($1_ALL_SRCS))
# Find all files to be copied from source to bin.
@@ -442,7 +452,7 @@ define SetupJavaCompilationBody
# Do the actual compilation
$$($1_COMPILE_TARGET): $$($1_SRCS) $$($1_FILELIST) $$($1_DEPENDS) \
$$($1_VARDEPS_FILE) $$($1_EXTRA_DEPS)
$$($1_VARDEPS_FILE) $$($1_EXTRA_DEPS) $$($1_JAVAC_SERVER_CONFIG)
$$(call MakeDir, $$(@D))
$$(call ExecuteWithLog, $$($1_BIN)$$($1_MODULE_SUBDIR)/_the.$$($1_SAFE_NAME)_batch, \
$$($1_JAVAC_CMD) $$($1_FLAGS) \

View File

@@ -77,8 +77,10 @@ ifeq ($(STATIC_LIBS), true)
FindStaticLib =
endif
# Returns the module specific java header dir if it exists.
# Param 1 - module name
GetJavaHeaderDir = \
$(wildcard $(SUPPORT_OUTPUTDIR)/headers/$(strip $1))
$(if $(strip $1),$(wildcard $(SUPPORT_OUTPUTDIR)/headers/$(strip $1)))
# Process a dir description such as "java.base:headers" into a set of proper absolute paths.
ProcessDir = \
@@ -123,15 +125,27 @@ JDK_RCFLAGS=$(RCFLAGS) \
SetupJdkLibrary = $(NamedParamsMacroTemplate)
define SetupJdkLibraryBody
ifeq ($$($1_OUTPUT_DIR), )
$1_OUTPUT_DIR := $$(call FindLibDirForModule, $$(MODULE))
ifneq ($$(MODULE), )
$1_OUTPUT_DIR := $$(call FindLibDirForModule, $$(MODULE))
else
$$(error Must specify OUTPUT_DIR in a MODULE free context)
endif
endif
ifeq ($$($1_OBJECT_DIR), )
$1_OBJECT_DIR := $$(SUPPORT_OUTPUTDIR)/native/$$(MODULE)/lib$$($1_NAME)
ifneq ($$(MODULE), )
$1_OBJECT_DIR := $$(SUPPORT_OUTPUTDIR)/native/$$(MODULE)/lib$$($1_NAME)
else
$$(error Must specify OBJECT_DIR in a MODULE free context)
endif
endif
ifeq ($$($1_SRC), )
$1_SRC := $$(call FindSrcDirsForLib, $$(MODULE), $$($1_NAME))
ifneq ($$(MODULE), )
$1_SRC := $$(call FindSrcDirsForLib, $$(MODULE), $$($1_NAME))
else
$$(error Must specify SRC in a MODULE free context)
endif
else
$1_SRC := $$(foreach dir, $$($1_SRC), $$(call ProcessDir, $$(dir)))
endif
@@ -165,7 +179,8 @@ define SetupJdkLibraryBody
ifneq ($$($1_HEADERS_FROM_SRC), false)
$1_SRC_HEADER_FLAGS := $$(addprefix -I, $$(wildcard $$($1_SRC)))
endif
# Always add the java header dir
# Add the module specific java header dir
$1_SRC_HEADER_FLAGS += $$(addprefix -I, $$(call GetJavaHeaderDir, $$(MODULE)))
ifneq ($$($1_EXTRA_HEADER_DIRS), )
@@ -203,11 +218,19 @@ define SetupJdkExecutableBody
$1_TYPE := EXECUTABLE
ifeq ($$($1_OUTPUT_DIR), )
$1_OUTPUT_DIR := $$(call FindExecutableDirForModule, $$(MODULE))
ifneq ($$(MODULE), )
$1_OUTPUT_DIR := $$(call FindExecutableDirForModule, $$(MODULE))
else
$$(error Must specify OUTPUT_DIR in a MODULE free context)
endif
endif
ifeq ($$($1_OBJECT_DIR), )
$1_OBJECT_DIR := $$(SUPPORT_OUTPUTDIR)/native/$$(MODULE)/$$($1_NAME)
ifneq ($$(MODULE), )
$1_OBJECT_DIR := $$(SUPPORT_OUTPUTDIR)/native/$$(MODULE)/$$($1_NAME)
else
$$(error Must specify OBJECT_DIR in a MODULE free context)
endif
endif
ifeq ($$($1_VERSIONINFO_RESOURCE), )

View File

@@ -64,6 +64,9 @@ define NEWLINE
endef
# Make sure we have a value (could be overridden on command line by caller)
CREATING_BUILDJDK ?= false
# Certain features only work in newer version of GNU Make. The build will still
# function in 3.81, but will be less performant.
ifeq (4.0, $(firstword $(sort 4.0 $(MAKE_VERSION))))
@@ -89,7 +92,7 @@ BUILDTIMESDIR=$(OUTPUTDIR)/make-support/build-times
# Record starting time for build of a sub repository.
define RecordStartTime
$(DATE) '+%Y %m %d %H %M %S' | $(NAWK) '{ print $$1,$$2,$$3,$$4,$$5,$$6,($$4*3600+$$5*60+$$6) }' > $(BUILDTIMESDIR)/build_time_start_$(strip $1) && \
$(DATE) '+%Y %m %d %H %M %S' | $(AWK) '{ print $$1,$$2,$$3,$$4,$$5,$$6,($$4*3600+$$5*60+$$6) }' > $(BUILDTIMESDIR)/build_time_start_$(strip $1) && \
$(DATE) '+%Y-%m-%d %H:%M:%S' > $(BUILDTIMESDIR)/build_time_start_$(strip $1)_human_readable
endef
@@ -97,10 +100,10 @@ endef
# easy to read format. Handles builds that cross midnight. Expects
# that a build will never take 24 hours or more.
define RecordEndTime
$(DATE) '+%Y %m %d %H %M %S' | $(NAWK) '{ print $$1,$$2,$$3,$$4,$$5,$$6,($$4*3600+$$5*60+$$6) }' > $(BUILDTIMESDIR)/build_time_end_$(strip $1)
$(DATE) '+%Y %m %d %H %M %S' | $(AWK) '{ print $$1,$$2,$$3,$$4,$$5,$$6,($$4*3600+$$5*60+$$6) }' > $(BUILDTIMESDIR)/build_time_end_$(strip $1)
$(DATE) '+%Y-%m-%d %H:%M:%S' > $(BUILDTIMESDIR)/build_time_end_$(strip $1)_human_readable
$(ECHO) `$(CAT) $(BUILDTIMESDIR)/build_time_start_$(strip $1)` `$(CAT) $(BUILDTIMESDIR)/build_time_end_$(strip $1)` $1 | \
$(NAWK) '{ F=$$7; T=$$14; if (F > T) { T+=3600*24 }; D=T-F; H=int(D/3600); \
$(AWK) '{ F=$$7; T=$$14; if (F > T) { T+=3600*24 }; D=T-F; H=int(D/3600); \
M=int((D-H*3600)/60); S=D-H*3600-M*60; printf("%02d:%02d:%02d %s\n",H,M,S,$$15); }' \
> $(BUILDTIMESDIR)/build_time_diff_$(strip $1)
endef
@@ -436,37 +439,18 @@ endif
# On Windows, converts a path from cygwin/unix style (e.g. /bin/foo) into
# "mixed mode" (e.g. c:/cygwin/bin/foo). On other platforms, return the path
# unchanged.
# This also converts a colon-separated list of paths to a semicolon-separated
# list.
# This is normally not needed since we use the FIXPATH prefix for command lines,
# but might be needed in certain circumstances.
ifeq ($(call isTargetOs, windows), true)
ifeq ($(call isBuildOsEnv, windows.wsl), true)
FixPath = \
$(shell $(WSLPATH) -m $1)
else
FixPath = \
$(shell $(CYGPATH) -m $1)
endif
FixPath = \
$(strip $(subst \,\\, $(shell $(FIXPATH_BASE) print $(patsubst $(FIXPATH), , $1))))
else
FixPath = \
$1
endif
################################################################################
# FixPathList
#
# On Windows, converts a cygwin/unix style path list (colon-separated) into
# the native format (mixed mode, semicolon-separated). On other platforms,
# return the path list unchanged.
################################################################################
ifeq ($(call isTargetOs, windows), true)
FixPathList = \
$(subst @,$(SPACE),$(subst $(SPACE),;,$(foreach entry,$(subst :,$(SPACE),\
$(subst $(SPACE),@,$(strip $1))),$(call FixPath, $(entry)))))
else
FixPathList = \
$1
endif
################################################################################
# DependOnVariable
#

View File

@@ -26,209 +26,56 @@
ifndef _MODULES_GMK
_MODULES_GMK := 1
################################################################################
#
# BOOT_MODULES are modules defined by the boot loader
# PLATFORM_MODULES are modules defined by the platform loader
# JRE_TOOL_MODULES are tools included in JRE and defined by the application loader
#
# All other modules not declared below are defined by the application loader
# and are not included in JRE.
BOOT_MODULES :=
PLATFORM_MODULES :=
JRE_TOOL_MODULES :=
UPGRADEABLE_MODULES :=
AGGREGATOR_MODULES :=
DOCS_MODULES :=
# Hook to include the corresponding custom file, if present.
$(eval $(call IncludeCustomExtension, common/Modules.gmk))
BOOT_MODULES += \
java.base \
java.datatransfer \
java.desktop \
java.instrument \
java.logging \
java.management \
java.management.rmi \
java.naming \
java.prefs \
java.rmi \
java.security.sasl \
java.xml \
jdk.incubator.foreign \
jdk.incubator.vector \
jdk.internal.vm.ci \
jdk.jfr \
jdk.management \
jdk.management.jfr \
jdk.management.agent \
jdk.net \
jdk.nio.mapmode \
jdk.sctp \
jdk.unsupported \
#
################################################################################
# Setup module sets for classloaders
# to be deprivileged
BOOT_MODULES += \
jdk.naming.rmi \
#
include $(TOPDIR)/make/conf/module-loader-map.conf
# Modules that directly or indirectly requiring upgradeable modules
# should carefully be considered if it should be upgradeable or not.
UPGRADEABLE_MODULES += \
java.compiler \
jdk.aot \
jdk.internal.vm.compiler \
jdk.internal.vm.compiler.management \
#
AGGREGATOR_MODULES += \
java.se \
#
PLATFORM_MODULES += \
$(UPGRADEABLE_MODULES) \
$(AGGREGATOR_MODULES)
#
PLATFORM_MODULES += \
java.net.http \
java.scripting \
java.security.jgss \
java.smartcardio \
java.sql \
java.sql.rowset \
java.transaction.xa \
java.xml.crypto \
jdk.accessibility \
jdk.charsets \
jdk.crypto.cryptoki \
jdk.crypto.ec \
jdk.dynalink \
jdk.httpserver \
jdk.jsobject \
jdk.localedata \
jdk.naming.dns \
jdk.security.auth \
jdk.security.jgss \
jdk.xml.dom \
jdk.zipfs \
#
ifeq ($(call isTargetOs, windows), true)
PLATFORM_MODULES += jdk.crypto.mscapi
endif
JRE_TOOL_MODULES += \
jdk.jdwp.agent \
jdk.incubator.jpackage \
#
# Append platform-specific and upgradeable modules
PLATFORM_MODULES += $(PLATFORM_MODULES_$(OPENJDK_TARGET_OS)) \
$(UPGRADEABLE_PLATFORM_MODULES)
################################################################################
# Setup module sets for docs
# DOCS_MODULES defines the root modules for javadoc generation.
# All of their `require transitive` modules directly and indirectly will be included.
DOCS_MODULES += \
java.se \
java.smartcardio \
jdk.accessibility \
jdk.attach \
jdk.charsets \
jdk.compiler \
jdk.crypto.cryptoki \
jdk.crypto.ec \
jdk.dynalink \
jdk.editpad \
jdk.hotspot.agent \
jdk.httpserver \
jdk.incubator.jpackage \
jdk.incubator.vector \
jdk.jartool \
jdk.javadoc \
jdk.jcmd \
jdk.jconsole \
jdk.jdeps \
jdk.jdi \
jdk.jdwp.agent \
jdk.jfr \
jdk.jlink \
jdk.jsobject \
jdk.jshell \
jdk.jstatd \
jdk.incubator.foreign \
jdk.localedata \
jdk.management \
jdk.management.agent \
jdk.management.jfr \
jdk.naming.dns \
jdk.naming.rmi \
jdk.net \
jdk.nio.mapmode \
jdk.sctp \
jdk.security.auth \
jdk.security.jgss \
jdk.xml.dom \
jdk.zipfs \
#
# These modules are included in the interim image which is used to run profiling
# before building the real images.
INTERIM_IMAGE_MODULES := java.base java.logging
LANGTOOLS_MODULES := \
java.compiler \
jdk.compiler \
jdk.javadoc \
jdk.jdeps \
jdk.jshell \
#
HOTSPOT_MODULES := \
jdk.aot \
jdk.hotspot.agent \
jdk.internal.vm.ci \
jdk.internal.vm.compiler \
jdk.internal.vm.compiler.management \
#
include $(TOPDIR)/make/conf/docs-modules.conf
################################################################################
# Setup module sets needed by the build system
include $(TOPDIR)/make/conf/build-module-sets.conf
################################################################################
# Depending on the configuration, we might need to filter out some modules that
# normally should have been included
# Some platforms don't have the serviceability agent
ifeq ($(INCLUDE_SA), false)
MODULES_FILTER += jdk.hotspot.agent
endif
################################################################################
# Filter out jvmci specific modules if jvmci is disabled
ifeq ($(INCLUDE_JVMCI), false)
MODULES_FILTER += jdk.internal.vm.ci
endif
################################################################################
# Filter out Graal specific modules if Graal is disabled
ifeq ($(INCLUDE_GRAAL), false)
MODULES_FILTER += jdk.internal.vm.compiler
MODULES_FILTER += jdk.internal.vm.compiler.management
endif
################################################################################
# Filter out aot specific modules if aot is disabled
ifeq ($(ENABLE_AOT), false)
MODULES_FILTER += jdk.aot
endif
################################################################################
# jpackage is only on windows, macosx, and linux
ifeq ($(call isTargetOs, windows macosx linux), false)
MODULES_FILTER += jdk.incubator.jpackage
MODULES_FILTER += jdk.jpackage
endif
################################################################################
@@ -338,7 +185,7 @@ $(MODULE_DEPS_MAKEFILE): $(MODULE_INFOS) \
$(RM) $@
$(foreach m, $(MODULE_INFOS), \
( $(PRINTF) "DEPS_$(call GetModuleNameFromModuleInfo, $m) :=" && \
$(NAWK) -v MODULE=$(call GetModuleNameFromModuleInfo, $m) '\
$(AWK) -v MODULE=$(call GetModuleNameFromModuleInfo, $m) '\
BEGIN { if (MODULE != "java.base") printf(" java.base"); } \
/^ *requires/ { sub(/;/, ""); \
sub(/requires /, " "); \
@@ -352,7 +199,7 @@ $(MODULE_DEPS_MAKEFILE): $(MODULE_INFOS) \
printf(" %s", $$0) } \
END { printf("\n") }' $m && \
$(PRINTF) "TRANSITIVE_MODULES_$(call GetModuleNameFromModuleInfo, $m) :=" && \
$(NAWK) -v MODULE=$(call GetModuleNameFromModuleInfo, $m) '\
$(AWK) -v MODULE=$(call GetModuleNameFromModuleInfo, $m) '\
BEGIN { if (MODULE != "java.base") printf(" java.base"); } \
/^ *requires *transitive/ { \
sub(/;/, ""); \
@@ -410,8 +257,7 @@ FindTransitiveIndirectDepsForModules = \
# Upgradeable modules are those that are either defined as upgradeable or that
# require an upradeable module.
FindAllUpgradeableModules = \
$(sort $(filter-out $(MODULES_FILTER), $(UPGRADEABLE_MODULES)))
$(sort $(filter-out $(MODULES_FILTER), $(UPGRADEABLE_PLATFORM_MODULES)))
################################################################################
@@ -467,7 +313,6 @@ endef
# * JDK_MODULES
# * BOOT_MODULES
# * PLATFORM_MODULES
# * JRE_TOOL_MODULES
define ReadImportMetaData
IMPORTED_MODULES := $$(call FindImportedModules)
$$(foreach m, $$(IMPORTED_MODULES), \

View File

@@ -72,10 +72,10 @@ define WriteCompileCommandsFragment
$(call LogInfo, Creating compile commands fragment for $(notdir $3))
$(call MakeDir, $(dir $1))
$(call WriteFile,{ \
"directory": "$(strip $2)"$(COMMA) \
"file": "$(strip $3)"$(COMMA) \
"directory": "$(strip $(call FixPath, $2))"$(COMMA) \
"file": "$(strip $(call FixPath, $3))"$(COMMA) \
"command": "$(strip $(subst $(DQUOTE),\$(DQUOTE),$(subst \,\\,\
$(subst $(FIXPATH),,$4))))" \
$(subst $(FIXPATH),,$(call FixPath, $4)))))" \
}$(COMMA), \
$1)
endef
@@ -175,12 +175,6 @@ $(strip \
)
endef
ifeq ($(call isBuildOsEnv, windows.cygwin), true)
UNIX_PATH_PREFIX := /cygdrive
else ifeq ($(call isBuildOsEnv, windows.msys), true)
UNIX_PATH_PREFIX :=
endif
# This pattern is used to transform the output of the microsoft CL compiler
# into a make syntax dependency file (.d)
WINDOWS_SHOWINCLUDE_SED_PATTERN := \
@@ -188,7 +182,7 @@ WINDOWS_SHOWINCLUDE_SED_PATTERN := \
-e 's|Note: including file: *||' \
-e 's|\r||g' \
-e 's|\\|/|g' \
-e 's|^\([a-zA-Z]\):|$(UNIX_PATH_PREFIX)/\1|g' \
-e 's|^\([a-zA-Z]\):|$(WINENV_PREFIX)/\1|g' \
-e '\|$(TOPDIR)|I !d' \
-e 's|$$$$| \\|g' \
#
@@ -237,10 +231,25 @@ ifeq ($(ALLOW_ABSOLUTE_PATHS_IN_OUTPUT)-$(FILE_MACRO_CFLAGS), false-)
) \
)
# When compiling with relative paths, the deps file comes out with relative
# paths.
# When compiling with relative paths, the deps file may come out with relative
# paths, and that path may start with './'. First remove any leading ./, then
# add WORKSPACE_ROOT to any line not starting with /, while allowing for
# leading spaces. There may also be multiple entries on the same line, so start
# with splitting such lines.
# Non GNU sed (BSD on macosx) cannot substitue in literal \n using regex.
# Instead use a bash escaped literal newline. To avoid having unmatched quotes
# ruin the ability for an editor to properly syntax highlight this file, define
# that newline sequence as a separate variable and add the closing quote behind
# a comment.
sed_newline := \'$$'\n''#'
define fix-deps-file
$(SED) -e 's|^\([ ]*\)|\1$(WORKSPACE_ROOT)|' $1.tmp > $1
$(SED) \
-e 's|\([^ ]\) \{1,\}\([^\\:]\)|\1 \\$(sed_newline) \2|g' \
$1.tmp \
| $(SED) \
-e 's|^\([ ]*\)\./|\1|' \
-e '/^[ ]*[^/ ]/s|^\([ ]*\)|\1$(WORKSPACE_ROOT)/|' \
> $1
endef
else
# By default the MakeCommandRelative macro does nothing.
@@ -527,7 +536,7 @@ define SetupNativeCompilationBody
ifeq ($$($1_TYPE), EXECUTABLE)
$1_PREFIX :=
ifeq ($$($1_SUFFIX), )
$1_SUFFIX := $(EXE_SUFFIX)
$1_SUFFIX := $(EXECUTABLE_SUFFIX)
endif
else
$1_PREFIX := $(LIBRARY_PREFIX)
@@ -805,13 +814,15 @@ define SetupNativeCompilationBody
-include $$($1_PCH_DEPS_TARGETS_FILE)
$1_PCH_COMMAND := $$($1_CC) $$($1_CFLAGS) $$($1_EXTRA_CFLAGS) $$($1_SYSROOT_CFLAGS) \
$$($1_OPT_CFLAGS) -x c++-header -c $(C_FLAG_DEPS) $$($1_PCH_DEPS_FILE)
$$($1_OPT_CFLAGS) -x c++-header -c $(C_FLAG_DEPS) \
$$(addsuffix .tmp, $$($1_PCH_DEPS_FILE))
$$($1_PCH_FILE): $$($1_PRECOMPILED_HEADER) $$($1_COMPILE_VARDEPS_FILE)
$$(call LogInfo, Generating precompiled header)
$$(call MakeDir, $$(@D))
$$(call ExecuteWithLog, $$@, $$(call MakeCommandRelative, \
$$($1_PCH_COMMAND) $$< -o $$@))
$$(call fix-deps-file, $$($1_PCH_DEPS_FILE))
$(SED) $(DEPENDENCY_TARGET_SED_PATTERN) $$($1_PCH_DEPS_FILE) \
> $$($1_PCH_DEPS_TARGETS_FILE)
@@ -1146,6 +1157,9 @@ define SetupNativeCompilationBody
test "$$$$?" = "1" ; \
$$($1_CREATE_DEBUGINFO_CMDS)
$$($1_STRIP_CMD)
ifeq ($(call isBuildOsEnv, windows.wsl2), true)
$$(CHMOD) +x $$($1_TARGET)
endif
else
$$(call ExecuteWithLog, $$($1_OBJECT_DIR)/$$($1_SAFE_NAME)_link, \
$$(if $$($1_LINK_OBJS_RELATIVE), $$(CD) $$(OUTPUTDIR) ; ) \

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2013, 2019, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -177,7 +177,7 @@ define SetupTextFileProcessingBody
$1_INCLUDES_PARTIAL_AWK := $$(subst $$(SPACE);,,$$(subst $$(SPACE)=>$$(SPACE),"$$(RIGHT_PAREN)$$(RIGHT_PAREN) \
{ include$$(LEFT_PAREN)",$$(subst $$(SPACE);$$(SPACE),"$$(RIGHT_PAREN) } \
else if $$(LEFT_PAREN)matches$$(LEFT_PAREN)",$$(strip $$($1_INCLUDES)))))
$1_INCLUDES_COMMAND_LINE := $(NAWK) '$$($1_INCLUDES_HEADER_AWK) \
$1_INCLUDES_COMMAND_LINE := $(AWK) '$$($1_INCLUDES_HEADER_AWK) \
{ if (matches("$$($1_INCLUDES_PARTIAL_AWK)") } else print }'
else
# We don't have any includes, just pipe the file through cat.

View File

@@ -278,7 +278,7 @@ FindExecutableDirForModule = \
# param 1 : A space separated list of classpath entries
# The surrounding strip is needed to keep additional whitespace out
PathList = \
"$(subst $(SPACE),$(PATH_SEP),$(strip $(subst $(DQUOTE),,$1)))"
"$(subst $(SPACE),:,$(strip $(subst $(DQUOTE),,$1)))"
################################################################################
# Check if a specified hotspot variant is being built, or at least one of a

View File

@@ -85,14 +85,16 @@ define SetupCompileProperties
$$(addprefix _SPACE_, $$(PROPJAVAS)))))
# Now setup the rule for the generation of the resource bundles.
$(SUPPORT_OUTPUTDIR)/gensrc/$(MODULE)/_the_props: $$(PROPSOURCES)
PROPS_BASE := $(SUPPORT_OUTPUTDIR)/gensrc/$(MODULE)/_the_props
$$(PROPS_BASE): $$(PROPSOURCES)
$$(call MakeDir, $$(@D) $$(PROPDIRS))
$(FIND) $$(@D) -name "*.java" -a ! -name "*Properties.java" $(FIND_DELETE)
$(ECHO) Compiling $$(words $$(PROPSOURCES)) properties into resource bundles for $(MODULE)
$(TOOL_COMPILEPROPS_CMD) $$(PROPCMDLINE)
$$(call ExecuteWithLog, $$(PROPS_BASE)_exec, \
$(TOOL_COMPILEPROPS_CMD) $$(PROPCMDLINE))
$(TOUCH) $$@
$$(strip $1) += $(SUPPORT_OUTPUTDIR)/gensrc/$(MODULE)/_the_props
$$(strip $1) += $$(PROPS_BASE)
endef
################################################################################

View File

@@ -0,0 +1,52 @@
#
# Copyright (c) 2014, 2020, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
################################################################################
# Module sets needed by the build system
# These modules are included in the interim image which is used to run profiling
# before building the real images.
INTERIM_IMAGE_MODULES= \
java.base \
java.logging \
#
# These targets require buildtools-langtools to process for gensrc
LANGTOOLS_MODULES= \
java.compiler \
jdk.compiler \
jdk.javadoc \
jdk.jdeps \
jdk.jshell \
#
# These models require buildtools-hotspot to process for gensrc
HOTSPOT_MODULES= \
jdk.aot \
jdk.hotspot.agent \
jdk.internal.vm.ci \
jdk.internal.vm.compiler \
jdk.internal.vm.compiler.management \
#

View File

@@ -0,0 +1,72 @@
#
# Copyright (c) 2014, 2020, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
################################################################################
# Module sets needed to build docs.
#
# DOCS_MODULES defines the root modules for javadoc generation.
# All of their `require transitive` modules directly and indirectly will be included.
DOCS_MODULES= \
java.se \
java.smartcardio \
jdk.accessibility \
jdk.attach \
jdk.charsets \
jdk.compiler \
jdk.crypto.cryptoki \
jdk.crypto.ec \
jdk.dynalink \
jdk.editpad \
jdk.hotspot.agent \
jdk.httpserver \
jdk.jpackage \
jdk.incubator.vector \
jdk.jartool \
jdk.javadoc \
jdk.jcmd \
jdk.jconsole \
jdk.jdeps \
jdk.jdi \
jdk.jdwp.agent \
jdk.jfr \
jdk.jlink \
jdk.jsobject \
jdk.jshell \
jdk.jstatd \
jdk.incubator.foreign \
jdk.localedata \
jdk.management \
jdk.management.agent \
jdk.management.jfr \
jdk.naming.dns \
jdk.naming.rmi \
jdk.net \
jdk.nio.mapmode \
jdk.sctp \
jdk.security.auth \
jdk.security.jgss \
jdk.xml.dom \
jdk.zipfs \
#

30
make/conf/javadoc.conf Normal file
View File

@@ -0,0 +1,30 @@
# Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
# URLs
JAVADOC_BASE_URL=https://docs.oracle.com/pls/topic/lookup?ctx=javase$(VERSION_NUMBER)&amp;id=homepage
BUG_SUBMIT_URL=https://bugreport.java.com/bugreport/
COPYRIGHT_URL=legal/copyright.html
LICENSE_URL=https://www.oracle.com/java/javase/terms/license/java$(VERSION_NUMBER)speclicense.html
REDISTRIBUTION_URL=https://www.oracle.com/technetwork/java/redist-137594.html

View File

@@ -240,7 +240,7 @@ var getJibProfilesCommon = function (input, data) {
// List of the main profile names used for iteration
common.main_profile_names = [
"linux-x64", "linux-x86", "macosx-x64",
"windows-x64", "windows-x86",
"windows-x64", "windows-x86", "windows-aarch64",
"linux-aarch64", "linux-arm32", "linux-ppc64le", "linux-s390x"
];
@@ -256,6 +256,13 @@ var getJibProfilesCommon = function (input, data) {
"--disable-jvm-feature-shenandoahgc",
versionArgs(input, common))
};
// Extra settings for release profiles
common.release_profile_base = {
configure_args: [
"--enable-reproducible-build",
"--with-source-date=current",
],
};
// Extra settings for debug profiles
common.debug_suffix = "-debug";
common.debug_profile_base = {
@@ -268,6 +275,12 @@ var getJibProfilesCommon = function (input, data) {
configure_args: ["--with-debug-level=slowdebug"],
labels: "slowdebug"
};
// Extra settings for optimized profiles
common.optimized_suffix = "-optimized";
common.optimized_profile_base = {
configure_args: ["--with-debug-level=optimized"],
labels: "optimized",
};
// Extra settings for openjdk only profiles
common.open_suffix = "-open";
common.open_profile_base = {
@@ -448,6 +461,15 @@ var getJibProfilesProfiles = function (input, common, data) {
configure_args: concat(common.configure_args_32bit),
},
"windows-aarch64": {
target_os: "windows",
target_cpu: "aarch64",
dependencies: ["devkit", "gtest", "build_devkit"],
configure_args: [
"--openjdk-target=aarch64-unknown-cygwin",
],
},
"linux-aarch64": {
target_os: "linux",
target_cpu: "aarch64",
@@ -510,6 +532,13 @@ var getJibProfilesProfiles = function (input, common, data) {
profiles[debugName] = concatObjects(profiles[name],
common.slowdebug_profile_base);
});
// Generate optimized versions of all the main profiles
common.main_profile_names.forEach(function (name) {
var optName = name + common.optimized_suffix;
profiles[optName] = concatObjects(profiles[name],
common.optimized_profile_base);
profiles[optName].default_make_targets = [ "hotspot" ];
});
// Generate testmake profiles for the main profile of each build host
// platform. This profile only runs the makefile tests.
// Ant is needed to run the idea project generator test.
@@ -653,6 +682,10 @@ var getJibProfilesProfiles = function (input, common, data) {
platform: "windows-x86",
jdk_suffix: "zip",
},
"windows-aarch64": {
platform: "windows-aarch64",
jdk_suffix: "zip",
},
"linux-aarch64": {
platform: "linux-aarch64",
},
@@ -797,6 +830,13 @@ var getJibProfilesProfiles = function (input, common, data) {
});
});
// After creating all derived profiles, we can add the release profile base
// to the main profiles
common.main_profile_names.forEach(function (name) {
profiles[name] = concatObjects(profiles[name],
common.release_profile_base);
});
// Artifacts of JCov profiles
[ "linux-aarch64", "linux-x64", "macosx-x64", "windows-x64" ]
.forEach(function (name) {
@@ -987,7 +1027,7 @@ var getJibProfilesDependencies = function (input, common) {
var devkit_platform_revisions = {
linux_x64: "gcc10.2.0-OL6.4+1.0",
macosx_x64: "Xcode11.3.1-MacOSX10.15+1.1",
windows_x64: "VS2019-16.7.2+1.0",
windows_x64: "VS2019-16.7.2+1.1",
linux_aarch64: "gcc10.2.0-OL7.6+1.0",
linux_arm: "gcc8.2.0-Fedora27+1.0",
linux_ppc64le: "gcc8.2.0-Fedora27+1.0",
@@ -997,9 +1037,11 @@ var getJibProfilesDependencies = function (input, common) {
var devkit_platform = (input.target_cpu == "x86"
? input.target_os + "_x64"
: input.target_platform);
if (input.target_platform == "windows_aarch64") {
devkit_platform = "windows_x64";
}
var devkit_cross_prefix = "";
if (!(input.target_os == "windows" && isWsl(input))) {
if (!(input.target_os == "windows")) {
if (input.build_platform != input.target_platform
&& input.build_platform != devkit_platform) {
devkit_cross_prefix = input.build_platform + "-to-";

View File

@@ -0,0 +1,96 @@
#
# Copyright (c) 2014, 2020, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
################################################################################
# BOOT_MODULES are modules defined by the boot loader
# PLATFORM_MODULES are modules defined by the platform loader
#
# All other modules not declared below are defined by the application loader
# and are not included in JRE.
BOOT_MODULES= \
java.base \
java.datatransfer \
java.desktop \
java.instrument \
java.logging \
java.management \
java.management.rmi \
java.naming \
java.prefs \
java.rmi \
java.security.sasl \
java.xml \
jdk.incubator.foreign \
jdk.incubator.vector \
jdk.internal.vm.ci \
jdk.jfr \
jdk.management \
jdk.management.jfr \
jdk.management.agent \
jdk.net \
jdk.nio.mapmode \
jdk.sctp \
jdk.unsupported \
jdk.naming.rmi \
#
# Modules that directly or indirectly requiring upgradeable modules
# should carefully be considered if it should be upgradeable or not.
UPGRADEABLE_PLATFORM_MODULES= \
java.compiler \
jdk.aot \
jdk.internal.vm.compiler \
jdk.internal.vm.compiler.management \
#
PLATFORM_MODULES= \
java.se \
java.net.http \
java.scripting \
java.security.jgss \
java.smartcardio \
java.sql \
java.sql.rowset \
java.transaction.xa \
java.xml.crypto \
jdk.accessibility \
jdk.charsets \
jdk.crypto.cryptoki \
jdk.crypto.ec \
jdk.dynalink \
jdk.httpserver \
jdk.jsobject \
jdk.localedata \
jdk.naming.dns \
jdk.security.auth \
jdk.security.jgss \
jdk.xml.dom \
jdk.zipfs \
#
PLATFORM_MODULES_windows= \
jdk.crypto.mscapi \
#

View File

@@ -1,27 +0,0 @@
Owner: EMAILADDRESS=premium-server@thawte.com, CN=Thawte Premium Server CA, OU=Certification Services Division, O=Thawte Consulting cc, L=Cape Town, ST=Western Cape, C=ZA
Issuer: EMAILADDRESS=premium-server@thawte.com, CN=Thawte Premium Server CA, OU=Certification Services Division, O=Thawte Consulting cc, L=Cape Town, ST=Western Cape, C=ZA
Serial number: 36122296c5e338a520a1d25f4cd70954
Valid from: Thu Aug 01 00:00:00 GMT 1996 until: Fri Jan 01 23:59:59 GMT 2021
Signature algorithm name: SHA1withRSA
Subject Public Key Algorithm: 1024-bit RSA key
Version: 3
-----BEGIN CERTIFICATE-----
MIIDNjCCAp+gAwIBAgIQNhIilsXjOKUgodJfTNcJVDANBgkqhkiG9w0BAQUFADCB
zjELMAkGA1UEBhMCWkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJ
Q2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UE
CxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhh
d3RlIFByZW1pdW0gU2VydmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNl
cnZlckB0aGF3dGUuY29tMB4XDTk2MDgwMTAwMDAwMFoXDTIxMDEwMTIzNTk1OVow
gc4xCzAJBgNVBAYTAlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcT
CUNhcGUgVG93bjEdMBsGA1UEChMUVGhhd3RlIENvbnN1bHRpbmcgY2MxKDAmBgNV
BAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2aXNpb24xITAfBgNVBAMTGFRo
YXd0ZSBQcmVtaXVtIFNlcnZlciBDQTEoMCYGCSqGSIb3DQEJARYZcHJlbWl1bS1z
ZXJ2ZXJAdGhhd3RlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0jY2
aovXwlue2oFBYo847kkEVdbQ7xwblRZH7xhINTpS9CtqBo87L+pW46+GjZ4X9560
ZXUCTe/LCaIhUdib0GfQug2SBhRz1JPLlyoAnFxODLz6FVL88kRu2hFKbgifLy3j
+ao6hnO2RlNYyIkFvYMRuHM/qgeN9EJN50CdHDcCAwEAAaMTMBEwDwYDVR0TAQH/
BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQBlkKyID1bZ5jA01CbH0FDxkt5r1DmI
CSLGpmODA/eZd9iy5Ri4XWPz1HP7bJyZePFLeH0ZJMMrAoT4vCLZiiLXoPxx7JGH
IPG47LHlVYCsPVLIOQ7C8MAFT9aCdYy9X9LcdpoFEsmvcsPcJX6kTY4XpeCHf+Ga
WuFg3GQjPEIuTQ==
-----END CERTIFICATE-----

View File

@@ -1,26 +0,0 @@
Owner: OU=VeriSign Trust Network, OU="(c) 1998 VeriSign, Inc. - For authorized use only", OU=Class 2 Public Primary Certification Authority - G2, O="VeriSign, Inc.", C=US
Issuer: OU=VeriSign Trust Network, OU="(c) 1998 VeriSign, Inc. - For authorized use only", OU=Class 2 Public Primary Certification Authority - G2, O="VeriSign, Inc.", C=US
Serial number: b92f60cc889fa17a4609b85b706c8aaf
Valid from: Mon May 18 00:00:00 GMT 1998 until: Tue Aug 01 23:59:59 GMT 2028
Signature algorithm name: SHA1withRSA
Subject Public Key Algorithm: 1024-bit RSA key
Version: 1
-----BEGIN CERTIFICATE-----
MIIDAzCCAmwCEQC5L2DMiJ+hekYJuFtwbIqvMA0GCSqGSIb3DQEBBQUAMIHBMQsw
CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xPDA6BgNVBAsTM0Ns
YXNzIDIgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBH
MjE6MDgGA1UECxMxKGMpIDE5OTggVmVyaVNpZ24sIEluYy4gLSBGb3IgYXV0aG9y
aXplZCB1c2Ugb25seTEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazAe
Fw05ODA1MTgwMDAwMDBaFw0yODA4MDEyMzU5NTlaMIHBMQswCQYDVQQGEwJVUzEX
MBUGA1UEChMOVmVyaVNpZ24sIEluYy4xPDA6BgNVBAsTM0NsYXNzIDIgUHVibGlj
IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjE6MDgGA1UECxMx
KGMpIDE5OTggVmVyaVNpZ24sIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25s
eTEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazCBnzANBgkqhkiG9w0B
AQEFAAOBjQAwgYkCgYEAp4gBIXQs5xoD8JjhlzwPIQjxnNuX6Zr8wgQGE75fUsjM
HiwSViy4AWkszJkfrbCWrnkE8hM5wXuYuggs6MKEEyyqaekJ9MepAqRCwiNPStjw
DqL7MWzJ5m+ZJwf15vRMeJ5t60aG+rmGyVTyssSv1EYcWskVMP8NbPUtDm3Of3cC
AwEAATANBgkqhkiG9w0BAQUFAAOBgQByLvl/0fFx+8Se9sVeUYpAmLho+Jscg9ji
nb3/7aHmZuovCfTK1+qlK5X2JGCGTUQug6XELaDTrnhpb3LabK4I8GOSN+a7xDAX
rXfMSTWqz9iP0b63GJZHc2pUIjRkLbYWm1lbtFFZOrMLFPQS32eg9K0yZF6xRnIn
jBJ7xUS0rg==
-----END CERTIFICATE-----

View File

@@ -1,21 +0,0 @@
Owner: OU=Class 3 Public Primary Certification Authority, O="VeriSign, Inc.", C=US
Issuer: OU=Class 3 Public Primary Certification Authority, O="VeriSign, Inc.", C=US
Serial number: 3c9131cb1ff6d01b0e9ab8d044bf12be
Valid from: Mon Jan 29 00:00:00 GMT 1996 until: Wed Aug 02 23:59:59 GMT 2028
Signature algorithm name: SHA1withRSA
Subject Public Key Algorithm: 1024-bit RSA key
Version: 1
-----BEGIN CERTIFICATE-----
MIICPDCCAaUCEDyRMcsf9tAbDpq40ES/Er4wDQYJKoZIhvcNAQEFBQAwXzELMAkG
A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz
cyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2
MDEyOTAwMDAwMFoXDTI4MDgwMjIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV
BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmlt
YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN
ADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhE
BarsAx94f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/is
I19wKTakyYbnsZogy1Olhec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0G
CSqGSIb3DQEBBQUAA4GBABByUqkFFBkyCEHwxWsKzH4PIRnN5GfcX6kb5sroc50i
2JhucwNhkcV8sEVAbkSdjbCxlnRhLQ2pRdKkkirWmnWXbj9T/UWZYB2oK0z5XqcJ
2HUw19JlYD1n1khVdWk/kfVIC0dpImmClr7JyDiGSnoscxlIaU5rfGW/D/xwzoiQ
-----END CERTIFICATE-----

View File

@@ -1,26 +0,0 @@
Owner: OU=VeriSign Trust Network, OU="(c) 1998 VeriSign, Inc. - For authorized use only", OU=Class 3 Public Primary Certification Authority - G2, O="VeriSign, Inc.", C=US
Issuer: OU=VeriSign Trust Network, OU="(c) 1998 VeriSign, Inc. - For authorized use only", OU=Class 3 Public Primary Certification Authority - G2, O="VeriSign, Inc.", C=US
Serial number: 7dd9fe07cfa81eb7107967fba78934c6
Valid from: Mon May 18 00:00:00 GMT 1998 until: Tue Aug 01 23:59:59 GMT 2028
Signature algorithm name: SHA1withRSA
Subject Public Key Algorithm: 1024-bit RSA key
Version: 1
-----BEGIN CERTIFICATE-----
MIIDAjCCAmsCEH3Z/gfPqB63EHln+6eJNMYwDQYJKoZIhvcNAQEFBQAwgcExCzAJ
BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xh
c3MgMyBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcy
MTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3Jp
emVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMB4X
DTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVTMRcw
FQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMg
UHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEo
YykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5
MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEB
AQUAA4GNADCBiQKBgQDMXtERXVxp0KvTuWpMmR9ZmDCOFoUgRm1HP9SFIIThbbP4
pO0M8RcPO/mn+SXXwc+EY/J8Y8+iR/LGWzOOZEAEaMGAuWQcRXfH2G71lSk8UOg0
13gfqLptQ5GVj0VXXn7F+8qkBOvqlzdUMG+7AUcyM83cV5tkaWH4mx0ciU9cZwID
AQABMA0GCSqGSIb3DQEBBQUAA4GBAFFNzb5cy5gZnBWyATl4Lk0PZ3BwmcYQWpSk
U01UbSuvDV1Ai2TT1+7eVmGSX6bEHRBhNtMsJzzoKQm5EWR0zLVznxxIqbxhAe7i
F6YM40AIOw7n60RzKprxaZLvcRTDOaxxp5EJb+RxBrO6WVcmeQD2+A2iMzAo1KpY
oJ2daZH9
-----END CERTIFICATE-----

View File

@@ -1,24 +0,0 @@
Owner: CN=Thawte Timestamping CA, OU=Thawte Certification, O=Thawte, L=Durbanville, ST=Western Cape, C=ZA
Issuer: CN=Thawte Timestamping CA, OU=Thawte Certification, O=Thawte, L=Durbanville, ST=Western Cape, C=ZA
Serial number: 67c8e1e8e3be1cbdfc913b8ea6238749
Valid from: Wed Jan 01 00:00:00 GMT 1997 until: Fri Jan 01 23:59:59 GMT 2021
Signature algorithm name: SHA1withRSA
Subject Public Key Algorithm: 1024-bit RSA key
Version: 3
-----BEGIN CERTIFICATE-----
MIICsDCCAhmgAwIBAgIQZ8jh6OO+HL38kTuOpiOHSTANBgkqhkiG9w0BAQUFADCB
izELMAkGA1UEBhMCWkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTEUMBIGA1UEBxML
RHVyYmFudmlsbGUxDzANBgNVBAoTBlRoYXd0ZTEdMBsGA1UECxMUVGhhd3RlIENl
cnRpZmljYXRpb24xHzAdBgNVBAMTFlRoYXd0ZSBUaW1lc3RhbXBpbmcgQ0EwHhcN
OTcwMTAxMDAwMDAwWhcNMjEwMTAxMjM1OTU5WjCBizELMAkGA1UEBhMCWkExFTAT
BgNVBAgTDFdlc3Rlcm4gQ2FwZTEUMBIGA1UEBxMLRHVyYmFudmlsbGUxDzANBgNV
BAoTBlRoYXd0ZTEdMBsGA1UECxMUVGhhd3RlIENlcnRpZmljYXRpb24xHzAdBgNV
BAMTFlRoYXd0ZSBUaW1lc3RhbXBpbmcgQ0EwgZ8wDQYJKoZIhvcNAQEBBQADgY0A
MIGJAoGBANYrWHhhRYZT6jR7UZztsOYuGA7+4F+oJ9O0yeB8WU4WDnNUYMF/9p8u
6TqFJBU820cEY8OexJQaWt9MevPZQx08EHp5JduQ/vBR5zDWQQD9nyjfeb6Uu522
FOMjhdepQeBMpHmwKxqL8vg7ij5FrHGSALSQQZj7X+36ty6K+Ig3AgMBAAGjEzAR
MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAS+mqF4EF+3kKMZ/F
QfRWVKvpwuWXjhj+kckMPiZkyaFMJ2SnvQGTVXFuF0853BvcSTUQOSP/ypvIz2Y/
3Ewa1IEGQlIf4SaxFhe65nByMUToTo1b5NP50OOPJWQx5yr4GIg2GlLFDUE1G2m3
JvUXzMEZXkt8XOKDgJH6L/uatxY=
-----END CERTIFICATE-----

View File

@@ -1,4 +1,4 @@
CLDR - Unicode Common Locale Data Repository
http://cldr.unicode.org
CLDR version installed: 37
CLDR version installed: 38

View File

@@ -185,7 +185,7 @@ For terms of use, see http://www.unicode.org/copyright.html
<type name="ghacc" description="Accra, Ghana" alias="Africa/Accra"/>
<type name="gigib" description="Gibraltar" alias="Europe/Gibraltar"/>
<type name="gldkshvn" description="Danmarkshavn, Greenland" alias="America/Danmarkshavn"/>
<type name="glgoh" description="Nuuk (Godthåb), Greenland" alias="America/Godthab"/>
<type name="glgoh" description="Nuuk (Godthåb), Greenland" alias="America/Godthab America/Nuuk"/>
<type name="globy" description="Ittoqqortoormiit (Scoresbysund), Greenland" alias="America/Scoresbysund"/>
<type name="glthu" description="Qaanaaq (Thule), Greenland" alias="America/Thule"/>
<type name="gmbjl" description="Banjul, Gambia" alias="Africa/Banjul"/>

View File

@@ -46,7 +46,7 @@ $Revision$
<!ATTLIST version number CDATA #REQUIRED >
<!--@MATCH:regex/\$Revision.*\$-->
<!--@METADATA-->
<!ATTLIST version cldrVersion CDATA #FIXED "37" >
<!ATTLIST version cldrVersion CDATA #FIXED "38" >
<!--@MATCH:any-->
<!--@VALUE-->
<!ATTLIST version draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
@@ -483,7 +483,7 @@ $Revision$
<!--@DEPRECATED-->
<!ELEMENT ellipsis ( #PCDATA ) >
<!ATTLIST ellipsis type (initial | medial | final | word-initial | word-medial | word-final) #IMPLIED >
<!ATTLIST ellipsis type (initial | medial | final | word-initial | word-medial | word-final) #REQUIRED >
<!ATTLIST ellipsis alt NMTOKENS #IMPLIED >
<!--@MATCH:literal/variant-->
<!ATTLIST ellipsis draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
@@ -1548,7 +1548,7 @@ $Revision$
<!ELEMENT dateFormatItem ( #PCDATA ) >
<!ATTLIST dateFormatItem id CDATA #REQUIRED >
<!-- TODO rationalize this list -->
<!--@MATCH:literal/Bh, Bhm, Bhms, E, EBhm, EBhms, EEEEd, EHm, EHms, Ed, Ehm, Ehms, Gy, GyM, GyMMM, GyMMMEEEEd, GyMMMEd, GyMMMM, GyMMMMEd, GyMMMMd, GyMMMd, GyMd, H, HHmm, HHmmZ, HHmmss, Hm, HmZ, Hmm, Hms, Hmsv, Hmsvvvv, Hmv, M, MEEEEd, MEd, MMM, MMMEEEEd, MMMEd, MMMM, MMMMEEEEd, MMMMEd, MMMMW, MMMMd, MMMMdd, MMMd, MMMdd, MMd, MMdd, Md, Mdd, UM, UMMM, UMMMd, UMd, d, h, hhmm, hhmmss, hm, hms, hmsv, hmsvvvv, hmv, mmss, ms, y, yM, yMEEEEd, yMEd, yMM, yMMM, yMMMEEEEd, yMMMEd, yMMMM, yMMMMEEEEd, yMMMMEd, yMMMMccccd, yMMMMd, yMMMd, yMMdd, yMd, yQ, yQQQ, yQQQQ, yw, yyyy, yyyyM, yyyyMEEEEd, yyyyMEd, yyyyMM, yyyyMMM, yyyyMMMEEEEd, yyyyMMMEd, yyyyMMMM, yyyyMMMMEd, yyyyMMMMccccd, yyyyMMMMd, yyyyMMMd, yyyyMMdd, yyyyMd, yyyyQQQ, yyyyQQQQ-->
<!--@MATCH:literal/Bh, Bhm, Bhms, E, EBhm, EBhms, EEEEd, EHm, EHms, Ed, Ehm, Ehms, Gy, GyM, GyMMM, GyMMMEEEEd, GyMMMEd, GyMMMM, GyMMMMEd, GyMMMMd, GyMMMd, GyMd, H, HHmm, HHmmZ, HHmmss, Hm, HmZ, Hmm, Hms, Hmsv, Hmsvvvv, Hmv, Hmvvvv, M, MEEEEd, MEd, MMM, MMMEEEEd, MMMEd, MMMM, MMMMEEEEd, MMMMEd, MMMMW, MMMMd, MMMMdd, MMMd, MMMdd, MMd, MMdd, Md, Mdd, UM, UMMM, UMMMd, UMd, d, h, hhmm, hhmmss, hm, hms, hmsv, hmsvvvv, hmv, hmvvvv, mmss, ms, y, yM, yMEEEEd, yMEd, yMM, yMMM, yMMMEEEEd, yMMMEd, yMMMM, yMMMMEEEEd, yMMMMEd, yMMMMccccd, yMMMMd, yMMMd, yMMdd, yMd, yQ, yQQQ, yQQQQ, yw, yyyy, yyyyM, yyyyMEEEEd, yyyyMEd, yyyyMM, yyyyMMM, yyyyMMMEEEEd, yyyyMMMEd, yyyyMMMM, yyyyMMMMEd, yyyyMMMMccccd, yyyyMMMMd, yyyyMMMd, yyyyMMdd, yyyyMd, yyyyQQQ, yyyyQQQQ-->
<!ATTLIST dateFormatItem count (zero | one | two | few | many | other) #IMPLIED >
<!ATTLIST dateFormatItem alt NMTOKENS #IMPLIED >
<!--@MATCH:literal/variant-->
@@ -1648,7 +1648,7 @@ $Revision$
<!--@DEPRECATED-->
<!ELEMENT field ( alias | ( displayName*, relative*, relativeTime*, relativePeriod*, special* ) ) >
<!ATTLIST field type (era | era-short | era-narrow | year | year-short | year-narrow | quarter | quarter-short | quarter-narrow | month | month-short | month-narrow | week | week-short | week-narrow | weekOfMonth | weekOfMonth-short | weekOfMonth-narrow | day | day-short | day-narrow | dayOfYear | dayOfYear-short | dayOfYear-narrow | weekday | weekday-short | weekday-narrow | weekdayOfMonth | weekdayOfMonth-short | weekdayOfMonth-narrow | sun | sun-short | sun-narrow | mon | mon-short | mon-narrow | tue | tue-short | tue-narrow | wed | wed-short | wed-narrow | thu | thu-short | thu-narrow | fri | fri-short | fri-narrow | sat | sat-short | sat-narrow | dayperiod | dayperiod-short | dayperiod-narrow | hour | hour-short | hour-narrow | minute | minute-short | minute-narrow | second | second-short | second-narrow | zone | zone-short | zone-narrow) #IMPLIED >
<!ATTLIST field type (era | era-short | era-narrow | year | year-short | year-narrow | quarter | quarter-short | quarter-narrow | month | month-short | month-narrow | week | week-short | week-narrow | weekOfMonth | weekOfMonth-short | weekOfMonth-narrow | day | day-short | day-narrow | dayOfYear | dayOfYear-short | dayOfYear-narrow | weekday | weekday-short | weekday-narrow | weekdayOfMonth | weekdayOfMonth-short | weekdayOfMonth-narrow | sun | sun-short | sun-narrow | mon | mon-short | mon-narrow | tue | tue-short | tue-narrow | wed | wed-short | wed-narrow | thu | thu-short | thu-narrow | fri | fri-short | fri-narrow | sat | sat-short | sat-narrow | dayperiod | dayperiod-short | dayperiod-narrow | hour | hour-short | hour-narrow | minute | minute-short | minute-narrow | second | second-short | second-narrow | zone | zone-short | zone-narrow) #REQUIRED >
<!ATTLIST field alt NMTOKENS #IMPLIED >
<!--@MATCH:literal/variant-->
<!ATTLIST field draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
@@ -1664,7 +1664,7 @@ $Revision$
<!--@DEPRECATED-->
<!ELEMENT relative ( #PCDATA ) >
<!ATTLIST relative type NMTOKEN #IMPLIED >
<!ATTLIST relative type NMTOKEN #REQUIRED >
<!-- TODO: determine whether to allow 3 -->
<!--@MATCH:range/-2~3-->
<!ATTLIST relative alt NMTOKENS #IMPLIED >
@@ -2015,7 +2015,7 @@ $Revision$
<!ATTLIST minimumGroupingDigits references CDATA #IMPLIED >
<!--@METADATA-->
<!ELEMENT symbols ( alias | ( decimal*, group*, list*, percentSign*, nativeZeroDigit*, patternDigit*, plusSign*, minusSign*, exponential*, superscriptingExponent*, perMille*, infinity*, nan*, currencyDecimal*, currencyGroup*, timeSeparator*, special* ) ) >
<!ELEMENT symbols ( alias | ( decimal*, group*, list*, percentSign*, nativeZeroDigit*, patternDigit*, plusSign*, minusSign*, approximatelySign*, exponential*, superscriptingExponent*, perMille*, infinity*, nan*, currencyDecimal*, currencyGroup*, timeSeparator*, special* ) ) >
<!ATTLIST symbols alt NMTOKENS #IMPLIED >
<!--@MATCH:literal/variant-->
<!ATTLIST symbols draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
@@ -2126,6 +2126,14 @@ $Revision$
<!ATTLIST minusSign numberSystem CDATA #IMPLIED >
<!--@DEPRECATED-->
<!ELEMENT approximatelySign ( #PCDATA ) >
<!ATTLIST approximatelySign alt NMTOKENS #IMPLIED >
<!--@MATCH:literal/variant-->
<!ATTLIST approximatelySign draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
<!--@METADATA-->
<!ATTLIST approximatelySign references CDATA #IMPLIED >
<!--@METADATA-->
<!ELEMENT exponential ( #PCDATA ) >
<!ATTLIST exponential alt NMTOKENS #IMPLIED >
<!--@MATCH:literal/variant-->
@@ -2415,6 +2423,8 @@ $Revision$
<!ELEMENT unitPattern ( #PCDATA ) >
<!ATTLIST unitPattern count (0 | 1 | zero | one | two | few | many | other) #REQUIRED >
<!ATTLIST unitPattern case NMTOKENS #IMPLIED >
<!--@MATCH:literal/ablative, accusative, comitative, dative, ergative, genitive, instrumental, locative, locativecopulative, nominative, oblique, prepositional, sociative, vocative-->
<!ATTLIST unitPattern alt NMTOKENS #IMPLIED >
<!--@MATCH:literal/variant-->
<!ATTLIST unitPattern draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
@@ -2469,7 +2479,7 @@ $Revision$
<!ATTLIST miscPatterns numberSystem CDATA #IMPLIED >
<!--@MATCH:bcp47/nu-->
<!ELEMENT minimalPairs ( alias | ( pluralMinimalPairs*, ordinalMinimalPairs*, special* ) ) >
<!ELEMENT minimalPairs ( alias | ( pluralMinimalPairs*, ordinalMinimalPairs*, caseMinimalPairs*, genderMinimalPairs*, special* ) ) >
<!ATTLIST minimalPairs alt NMTOKENS #IMPLIED >
<!--@MATCH:literal/variant-->
<!ATTLIST minimalPairs draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
@@ -2477,7 +2487,7 @@ $Revision$
<!--@DEPRECATED-->
<!ELEMENT pluralMinimalPairs ( #PCDATA ) >
<!ATTLIST pluralMinimalPairs count NMTOKEN #IMPLIED >
<!ATTLIST pluralMinimalPairs count NMTOKEN #REQUIRED >
<!--@MATCH:literal/few, many, one, other, two, zero-->
<!ATTLIST pluralMinimalPairs alt NMTOKENS #IMPLIED >
<!--@MATCH:literal/variant-->
@@ -2485,13 +2495,29 @@ $Revision$
<!--@METADATA-->
<!ELEMENT ordinalMinimalPairs ( #PCDATA ) >
<!ATTLIST ordinalMinimalPairs ordinal NMTOKEN #IMPLIED >
<!ATTLIST ordinalMinimalPairs ordinal NMTOKEN #REQUIRED >
<!--@MATCH:literal/few, many, one, other, two, zero-->
<!ATTLIST ordinalMinimalPairs alt NMTOKENS #IMPLIED >
<!--@MATCH:literal/variant-->
<!ATTLIST ordinalMinimalPairs draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
<!--@METADATA-->
<!ELEMENT caseMinimalPairs ( #PCDATA ) >
<!ATTLIST caseMinimalPairs case NMTOKEN #REQUIRED >
<!--@MATCH:literal/ablative, accusative, comitative, dative, ergative, genitive, instrumental, locative, locativecopulative, nominative, oblique, prepositional, sociative, vocative-->
<!ATTLIST caseMinimalPairs alt NMTOKENS #IMPLIED >
<!--@MATCH:literal/variant-->
<!ATTLIST caseMinimalPairs draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
<!--@METADATA-->
<!ELEMENT genderMinimalPairs ( #PCDATA ) >
<!ATTLIST genderMinimalPairs gender NMTOKEN #REQUIRED >
<!--@MATCH:literal/animate, common, feminine, inanimate, masculine, neuter, personal-->
<!ATTLIST genderMinimalPairs alt NMTOKENS #IMPLIED >
<!--@MATCH:literal/variant-->
<!ATTLIST genderMinimalPairs draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
<!--@METADATA-->
<!-- ######################################################### -->
<!ELEMENT units ( alias | ( unit*, unitLength*, durationUnit*, special* ) ) >
@@ -2506,7 +2532,7 @@ $Revision$
<!--@VALUE-->
<!--@DEPRECATED-->
<!ELEMENT unit ( alias | ( displayName*, unitPattern*, perUnitPattern*, special* ) ) >
<!ELEMENT unit ( alias | ( gender*, displayName*, unitPattern*, perUnitPattern*, special* ) ) >
<!ATTLIST unit type NMTOKEN #REQUIRED >
<!--@MATCH:validity/unit-->
<!ATTLIST unit alt NMTOKENS #IMPLIED >
@@ -2520,6 +2546,12 @@ $Revision$
<!--@VALUE-->
<!--@DEPRECATED-->
<!ELEMENT gender ( #PCDATA ) >
<!ATTLIST gender alt NMTOKENS #IMPLIED >
<!--@MATCH:literal/animate, common, feminine, inanimate, masculine, neuter, personal-->
<!ATTLIST gender draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
<!--@METADATA-->
<!ELEMENT perUnitPattern ( #PCDATA ) >
<!ATTLIST perUnitPattern alt NMTOKENS #IMPLIED >
<!--@MATCH:literal/variant-->
@@ -2543,7 +2575,7 @@ $Revision$
<!ELEMENT compoundUnit ( alias | ( compoundUnitPattern1*, compoundUnitPattern*, unitPrefixPattern*, special* ) ) >
<!ATTLIST compoundUnit type NMTOKEN #REQUIRED >
<!--@MATCH:or/regex/10p-?[0-9]{1,2}||literal/per, times, power2, power3-->
<!--@MATCH:or/regex/10p-?[0-9]{1,2}||regex/1024p[1-8]||literal/per, times, power2, power3-->
<!ATTLIST compoundUnit alt NMTOKENS #IMPLIED >
<!--@MATCH:literal/variant-->
<!ATTLIST compoundUnit draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
@@ -2557,6 +2589,10 @@ $Revision$
<!ELEMENT compoundUnitPattern1 ( #PCDATA ) >
<!ATTLIST compoundUnitPattern1 count (0 | 1 | zero | one | two | few | many | other) #IMPLIED >
<!ATTLIST compoundUnitPattern1 gender NMTOKENS #IMPLIED >
<!--@MATCH:literal/animate, common, feminine, inanimate, masculine, neuter, personal-->
<!ATTLIST compoundUnitPattern1 case NMTOKENS #IMPLIED >
<!--@MATCH:literal/ablative, accusative, comitative, dative, ergative, genitive, instrumental, locative, locativecopulative, nominative, oblique, prepositional, sociative, vocative-->
<!ATTLIST compoundUnitPattern1 alt NMTOKENS #IMPLIED >
<!--@MATCH:literal/variant-->
<!ATTLIST compoundUnitPattern1 draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
@@ -2565,6 +2601,8 @@ $Revision$
<!--@METADATA-->
<!ELEMENT compoundUnitPattern ( #PCDATA ) >
<!ATTLIST compoundUnitPattern case NMTOKENS #IMPLIED >
<!--@MATCH:literal/ablative, accusative, comitative, dative, ergative, genitive, instrumental, locative, locativecopulative, nominative, oblique, prepositional, sociative, vocative-->
<!ATTLIST compoundUnitPattern alt NMTOKENS #IMPLIED >
<!--@MATCH:literal/variant-->
<!ATTLIST compoundUnitPattern draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
@@ -2949,7 +2987,7 @@ $Revision$
<!ELEMENT characterLabelPattern ( #PCDATA ) >
<!ATTLIST characterLabelPattern type NMTOKEN #REQUIRED >
<!--@MATCH:literal/all, category-list, compatibility, enclosed, extended, historic, miscellaneous, other, scripts, strokes-->
<!--@MATCH:literal/all, category-list, compatibility, enclosed, extended, historic, miscellaneous, other, scripts, strokes, subscript, superscript-->
<!ATTLIST characterLabelPattern count (0 | 1 | zero | one | two | few | many | other) #IMPLIED >
<!-- count only used for certain patterns" -->
<!ATTLIST characterLabelPattern alt NMTOKENS #IMPLIED >
@@ -3050,7 +3088,6 @@ $Revision$
<!--@MATCH:literal/NumberingSystemRules, OrdinalRules, SpelloutRules-->
<!ATTLIST rulesetGrouping draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
<!--@METADATA-->
<!--@DEPRECATED-->
<!ELEMENT ruleset ( alias | ( rbnfrule*, special* ) ) >
<!--@ORDERED-->

View File

@@ -16,7 +16,7 @@ $Revision$
<!ATTLIST version number CDATA #REQUIRED >
<!--@MATCH:regex/\$Revision.*\$-->
<!--@METADATA-->
<!ATTLIST version cldrVersion CDATA #FIXED "37" >
<!ATTLIST version cldrVersion CDATA #FIXED "38" >
<!--@MATCH:version-->
<!--@VALUE-->

View File

@@ -17,7 +17,7 @@ Except as contained in this notice, the name of a copyright holder shall not be
<!ATTLIST version number CDATA #REQUIRED >
<!--@MATCH:any-->
<!--@METADATA-->
<!ATTLIST version cldrVersion CDATA #FIXED "37" >
<!ATTLIST version cldrVersion CDATA #FIXED "38" >
<!--@MATCH:version-->
<!--@VALUE-->
<!ATTLIST version unicodeVersion CDATA #FIXED "13.0.0" >
@@ -653,9 +653,9 @@ Except as contained in this notice, the name of a copyright holder shall not be
<!ELEMENT languageAlias EMPTY >
<!ATTLIST languageAlias type NMTOKEN #REQUIRED >
<!--@MATCH:or/validity/locale||literal/aa_SAAHO, aar, abk, afr, aka, alb, amh, ara, arg, arm, art_lojban, asm, ava, ave, aym, aze, bak, bam, baq, bel, ben, bih, bis, bod, bos, bre, bul, bur, cat, ces, cha, che, chi, chu, chv, cor, cos, cre, cym, cze, dan, deu, div, dut, dzo, ell, eng, epo, est, eus, ewe, fao, fas, fij, fin, fra, fre, fry, ful, geo, ger, gla, gle, glg, glv, gre, grn, guj, hat, hau, hbs, heb, her, hin, hmo, hrv, hun, hye, i_ami, i_bnn, i_hak, i_klingon, i_lux, i_navajo, i_pwn, i_tao, i_tay, i_tsu, ibo, ice, ido, iii, iku, ile, ina, ind, ipk, isl, ita, jav, jpn, kal, kan, kas, kat, kau, kaz, khm, kik, kin, kir, kom, kon, kor, kua, kur, lao, lat, lav, lim, lin, lit, ltz, lub, lug, mac, mah, mal, mao, mar, may, mkd, mlg, mlt, mol, mon, mri, msa, mya, nau, nav, nbl, nde, ndo, nep, nld, nno, no_BOKMAL, no_NYNORSK, no_bok, no_nyn, nob, nor, nya, oci, oji, ori, orm, oss, pan, per, pli, pol, por, pus, que, roh, ron, rum, run, rus, sag, san, scc, scr, sgn_BE_FR, sgn_BE_NL, sgn_CH_DE, sin, slk, slo, slv, sme, smo, sna, snd, som, sot, spa, sqi, srd, srp, ssw, sun, swa, swe, tah, tam, tat, tel, tgk, tgl, tha, tib, tir, ton, tsn, tso, tuk, tur, twi, uig, ukr, urd, uzb, ven, vie, vol, wel, wln, wol, xho, yid, yor, zh_guoyu, zh_hakka, zh_min_nan, zh_xiang, zha, zho, zul, cel-gaulish, i-default, i-enochian, i-mingo, zh-min-->
<!--@MATCH:or/validity/locale||literal/aa_saaho, aar, abk, afr, aka, alb, amh, ara, arg, arm, art_lojban, asm, ava, ave, aym, aze, bak, bam, baq, bel, ben, bih, bis, bod, bos, bre, bul, bur, cat, ces, cha, che, chi, chu, chv, cor, cos, cre, cym, cze, dan, deu, div, dut, dzo, ell, eng, epo, est, eus, ewe, fao, fas, fij, fin, fra, fre, fry, ful, geo, ger, gla, gle, glg, glv, gre, grn, guj, hat, hau, hbs, heb, her, hin, hmo, hrv, hun, hye, i_ami, i_bnn, i_hak, i_klingon, i_lux, i_navajo, i_pwn, i_tao, i_tay, i_tsu, ibo, ice, ido, iii, iku, ile, ina, ind, ipk, isl, ita, jav, jpn, kal, kan, kas, kat, kau, kaz, khm, kik, kin, kir, kom, kon, kor, kua, kur, lao, lat, lav, lim, lin, lit, ltz, lub, lug, mac, mah, mal, mao, mar, may, mkd, mlg, mlt, mol, mon, mri, msa, mya, nau, nav, nbl, nde, ndo, nep, nld, nno, no_bokmal, no_nynorsk, no_bok, no_nyn, nob, nor, nya, oci, oji, ori, orm, oss, pan, per, pli, pol, por, pus, que, roh, ron, rum, run, rus, sag, san, scc, scr, sgn_BE_FR, sgn_BE_NL, sgn_CH_DE, sin, slk, slo, slv, sme, smo, sna, snd, som, sot, spa, sqi, srd, srp, ssw, sun, swa, swe, tah, tam, tat, tel, tgk, tgl, tha, tib, tir, ton, tsn, tso, tuk, tur, twi, uig, ukr, urd, uzb, ven, vie, vol, wel, wln, wol, xho, yid, yor, zh_guoyu, zh_hakka, zh_min_nan, zh_xiang, zha, zho, zul, cel_gaulish, i_default, i_enochian, i_mingo, und_aaland, und_bokmal, und_hakka, und_lojban, und_nynorsk, und_saaho, und_xiang, zh_min, en_GB_oed, zh_cmn, zh_cmn_Hans, zh_cmn_Hant, zh_gan, zh_wuu, zh_yue-->
<!ATTLIST languageAlias replacement NMTOKEN #REQUIRED >
<!--@MATCH:or/validity/locale||literal/en-x-i-default, nan-x-zh-min, see-x-i-mingo, und-x-i-enochian, xtg-x-cel-gaulish-->
<!--@MATCH:or/validity/locale||literal/en_x_i_default, nan_x_zh_min, see_x_i_mingo, und_x_i_enochian, xtg_x_cel_gaulish-->
<!--@VALUE-->
<!ATTLIST languageAlias reason (deprecated | overlong | macrolanguage | legacy | bibliographic) #IMPLIED >
<!--@VALUE-->
@@ -689,7 +689,7 @@ Except as contained in this notice, the name of a copyright holder shall not be
<!ELEMENT variantAlias EMPTY >
<!ATTLIST variantAlias type NMTOKEN #REQUIRED >
<!--@MATCH:or/validity/variant||literal/AALAND, POLYTONI-->
<!--@MATCH:or/validity/variant||literal/aaland, polytoni-->
<!ATTLIST variantAlias replacement NMTOKEN #REQUIRED >
<!--@MATCH:or/validity/variant||validity/region||literal/hy, hyw-->
<!--@VALUE-->
@@ -1230,25 +1230,59 @@ Except as contained in this notice, the name of a copyright holder shall not be
<!-- # Grammatical Features -->
<!ELEMENT grammaticalData ( grammaticalFeatures* ) >
<!ELEMENT grammaticalData ( grammaticalFeatures*, grammaticalDerivations* ) >
<!ELEMENT grammaticalFeatures ( grammaticalCase?, grammaticalGender?, grammaticalDefiniteness? ) >
<!ELEMENT grammaticalFeatures ( grammaticalCase*, grammaticalGender*, grammaticalDefiniteness* ) >
<!ATTLIST grammaticalFeatures targets NMTOKENS #REQUIRED >
<!--@MATCH:set/literal/nominal-->
<!ATTLIST grammaticalFeatures locales NMTOKENS #REQUIRED >
<!--@MATCH:set/validity/language-->
<!ELEMENT grammaticalCase EMPTY >
<!ATTLIST grammaticalCase values NMTOKENS #REQUIRED >
<!ATTLIST grammaticalCase scope NMTOKENS #IMPLIED >
<!--@MATCH:set/literal/units-->
<!ATTLIST grammaticalCase values NMTOKENS #IMPLIED >
<!--@MATCH:set/literal/ablative, accusative, comitative, dative, ergative, genitive, instrumental, locative, locativecopulative, nominative, oblique, partitive, prepositional, sociative, vocative-->
<!--@VALUE-->
<!ELEMENT grammaticalGender EMPTY >
<!ATTLIST grammaticalGender values NMTOKENS #REQUIRED >
<!ATTLIST grammaticalGender scope NMTOKENS #IMPLIED >
<!--@MATCH:set/literal/units-->
<!ATTLIST grammaticalGender values NMTOKENS #IMPLIED >
<!--@MATCH:set/literal/animate, common, feminine, inanimate, masculine, neuter, personal-->
<!--@VALUE-->
<!ELEMENT grammaticalDefiniteness EMPTY >
<!ATTLIST grammaticalDefiniteness values NMTOKENS #REQUIRED >
<!ATTLIST grammaticalDefiniteness scope NMTOKENS #IMPLIED >
<!--@MATCH:set/literal/units-->
<!ATTLIST grammaticalDefiniteness values NMTOKENS #IMPLIED >
<!--@MATCH:set/literal/definite, indefinite, unspecified, construct-->
<!--@VALUE-->
<!ELEMENT grammaticalDerivations ( deriveCompound*, deriveComponent* ) >
<!ATTLIST grammaticalDerivations locales NMTOKENS #REQUIRED >
<!--@MATCH:set/validity/locale-->
<!ELEMENT deriveCompound EMPTY >
<!ATTLIST deriveCompound feature NMTOKENS #REQUIRED >
<!--@MATCH:set/literal/gender-->
<!ATTLIST deriveCompound structure NMTOKENS #REQUIRED >
<!--@MATCH:set/literal/per, times, power, prefix-->
<!ATTLIST deriveCompound value NMTOKEN #REQUIRED >
<!-- TODO: add @MATCH function for locale's gender categories and use here -->
<!--@MATCH:set/literal/0, 1-->
<!--@VALUE-->
<!ELEMENT deriveComponent EMPTY >
<!ATTLIST deriveComponent feature NMTOKENS #REQUIRED >
<!--@MATCH:set/literal/plural, case-->
<!ATTLIST deriveComponent structure NMTOKENS #REQUIRED >
<!--@MATCH:set/literal/per, times, power, prefix-->
<!ATTLIST deriveComponent value0 NMTOKEN #REQUIRED >
<!-- TODO: add @MATCH function for locale's plural/case categories and use here -->
<!--@MATCH:set/literal/compound, zero, one, two, few, many, other, accusative, nominative-->
<!--@VALUE-->
<!ATTLIST deriveComponent value1 NMTOKEN #REQUIRED >
<!-- TODO: add @MATCH function for locale's plural/case categories and use here -->
<!--@MATCH:set/literal/compound, zero, one, two, few, many, other, accusative, nominative-->
<!--@VALUE-->

View File

@@ -79,6 +79,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<language type="chr">Cherokees</language>
<language type="chy">Cheyennees</language>
<language type="ckb">Sorani</language>
<language type="ckb" alt="variant">Koerdies Sorani</language>
<language type="co">Korsikaans</language>
<language type="cop">Kopties</language>
<language type="crs">Seselwa Franskreools</language>
@@ -169,7 +170,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<language type="io">Ido</language>
<language type="is">Yslands</language>
<language type="it">Italiaans</language>
<language type="iu">Inuïties</language>
<language type="iu">Inoektitoet</language>
<language type="ja">Japannees</language>
<language type="jbo">Lojban</language>
<language type="jgo">Ngomba</language>
@@ -562,11 +563,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<territory type="CG" alt="variant">Kongo (Republiek die)</territory>
<territory type="CH">Switserland</territory>
<territory type="CI">Ivoorkus</territory>
<territory type="CI" alt="variant">Cote dIvoire</territory>
<territory type="CK">Cookeilande</territory>
<territory type="CL">Chili</territory>
<territory type="CM">Kameroen</territory>
<territory type="CN">Sjina</territory>
<territory type="CN">China</territory>
<territory type="CO">Colombië</territory>
<territory type="CP">Clippertoneiland</territory>
<territory type="CR">Costa Rica</territory>
@@ -621,7 +621,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<territory type="GU">Guam</territory>
<territory type="GW">Guinee-Bissau</territory>
<territory type="GY">Guyana</territory>
<territory type="HK">Hongkong SAS Sjina</territory>
<territory type="HK">Hongkong SAS China</territory>
<territory type="HK" alt="short">Hongkong</territory>
<territory type="HM">Heardeiland en McDonaldeilande</territory>
<territory type="HN">Honduras</territory>
@@ -676,7 +676,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<territory type="ML">Mali</territory>
<territory type="MM">Mianmar (Birma)</territory>
<territory type="MN">Mongolië</territory>
<territory type="MO">Macau SAS Sjina</territory>
<territory type="MO">Macau SAS China</territory>
<territory type="MO" alt="short">Macau</territory>
<territory type="MP">Noord-Mariane-eilande</territory>
<territory type="MQ">Martinique</territory>
@@ -712,7 +712,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<territory type="PM">Sint Pierre en Miquelon</territory>
<territory type="PN">Pitcairneilande</territory>
<territory type="PR">Puerto Rico</territory>
<territory type="PS">Palestynse gebiede</territory>
<territory type="PS">Palestynse Grondgebiede</territory>
<territory type="PS" alt="short">Palestina</territory>
<territory type="PT">Portugal</territory>
<territory type="PW">Palau</territory>
@@ -732,7 +732,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<territory type="SG">Singapoer</territory>
<territory type="SH">Sint Helena</territory>
<territory type="SI">Slowenië</territory>
<territory type="SJ">Svalbard en Jan Mayen</territory>
<territory type="SJ">Spitsbergen en Jan Mayen</territory>
<territory type="SK">Slowakye</territory>
<territory type="SL">Sierra Leone</territory>
<territory type="SM">San Marino</territory>
@@ -3315,9 +3315,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<zone type="Europe/Kaliningrad">
<exemplarCity>Kaliningrad</exemplarCity>
</zone>
<zone type="Europe/Simferopol">
<exemplarCity>Simferopol</exemplarCity>
</zone>
<zone type="Europe/Moscow">
<exemplarCity>Moskou</exemplarCity>
</zone>
@@ -3361,7 +3358,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<exemplarCity>Krasnojarsk</exemplarCity>
</zone>
<zone type="Asia/Irkutsk">
<exemplarCity>Irkutsk</exemplarCity>
<exemplarCity>Irkoetsk</exemplarCity>
</zone>
<zone type="Asia/Chita">
<exemplarCity>Chita</exemplarCity>
@@ -3513,6 +3510,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<zone type="Europe/Kiev">
<exemplarCity>Kiëf</exemplarCity>
</zone>
<zone type="Europe/Simferopol">
<exemplarCity>Simferopol</exemplarCity>
</zone>
<zone type="Europe/Zaporozhye">
<exemplarCity>Zaporozhye</exemplarCity>
</zone>
@@ -3851,7 +3851,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
</metazone>
<metazone type="Bolivia">
<long>
<standard>Bolivia-tyd</standard>
<standard>Bolivië-tyd</standard>
</long>
</metazone>
<metazone type="Brasilia">
@@ -4062,7 +4062,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
</metazone>
<metazone type="Guyana">
<long>
<standard>Guyana-tyd</standard>
<standard>Guiana-tyd</standard>
</long>
</metazone>
<metazone type="Hawaii_Aleutian">
@@ -4125,9 +4125,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
</metazone>
<metazone type="Irkutsk">
<long>
<generic>Irkutsk-tyd</generic>
<standard>Irkutsk-standaardtyd</standard>
<daylight>Irkutsk-somertyd</daylight>
<generic>Irkoetsk-tyd</generic>
<standard>Irkoetsk-standaardtyd</standard>
<daylight>Irkoetsk-somertyd</daylight>
</long>
</metazone>
<metazone type="Israel">
@@ -4312,9 +4312,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
</metazone>
<metazone type="Norfolk">
<long>
<generic draft="contributed">Norfolkeiland-tyd</generic>
<standard draft="contributed">Norfolkeiland-standaardtyd</standard>
<daylight draft="contributed">Norfolkeiland-dagligtyd</daylight>
<generic>Norfolkeiland-tyd</generic>
<standard>Norfolkeiland-standaardtyd</standard>
<daylight>Norfolkeiland-dagligtyd</daylight>
</long>
</metazone>
<metazone type="Noronha">
@@ -6150,7 +6150,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<displayName>sekondes</displayName>
<unitPattern count="one">{0} sekonde</unitPattern>
<unitPattern count="other">{0} sekondes</unitPattern>
<perUnitPattern>{0}/s</perUnitPattern>
<perUnitPattern>{0} per sekonde</perUnitPattern>
</unit>
<unit type="duration-millisecond">
<displayName>millisekondes</displayName>
@@ -6271,19 +6271,19 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="other">{0} pieksels</unitPattern>
</unit>
<unit type="graphics-megapixel">
<displayName draft="provisional">megapieksels</displayName>
<unitPattern count="one" draft="provisional">{0} megapieksel</unitPattern>
<unitPattern count="other" draft="provisional">{0} megapieksels</unitPattern>
<displayName>megapieksels</displayName>
<unitPattern count="one">{0} megapieksel</unitPattern>
<unitPattern count="other">{0} megapieksels</unitPattern>
</unit>
<unit type="graphics-pixel-per-centimeter">
<displayName draft="provisional">pieksel per sentimeter</displayName>
<unitPattern count="one" draft="provisional">{0} pieksel per sentimeter</unitPattern>
<unitPattern count="other" draft="provisional">{0} pieksels per sentimeter</unitPattern>
<displayName>pieksels per sentimeter</displayName>
<unitPattern count="one">{0} pieksel per sentimeter</unitPattern>
<unitPattern count="other">{0} pieksels per sentimeter</unitPattern>
</unit>
<unit type="graphics-pixel-per-inch">
<displayName draft="provisional">pieksels per duim</displayName>
<unitPattern count="one" draft="provisional">{0} pieksel per duim</unitPattern>
<unitPattern count="other" draft="provisional">{0} pieksels per duim</unitPattern>
<displayName>pieksels per duim</displayName>
<unitPattern count="one">{0} pieksel per duim</unitPattern>
<unitPattern count="other">{0} pieksels per duim</unitPattern>
</unit>
<unit type="graphics-dot-per-centimeter">
<displayName>stippels per sentimeter</displayName>
@@ -6295,6 +6295,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} stippel per duim</unitPattern>
<unitPattern count="other">{0} stippels per duim</unitPattern>
</unit>
<unit type="graphics-dot">
<displayName>stippel</displayName>
<unitPattern count="one">{0}stippel</unitPattern>
<unitPattern count="other">{0}stippel</unitPattern>
</unit>
<unit type="length-earth-radius">
<displayName>aardstraal</displayName>
<unitPattern count="one">{0} aardstraal</unitPattern>
<unitPattern count="other">{0} aardstraal</unitPattern>
</unit>
<unit type="length-kilometer">
<displayName>kilometer</displayName>
<unitPattern count="one">{0} kilometer</unitPattern>
@@ -6375,6 +6385,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} astronomiese eenheid</unitPattern>
<unitPattern count="other">{0} astronomiese eenhede</unitPattern>
</unit>
<unit type="length-furlong">
<displayName>furlongs</displayName>
<unitPattern count="one">{0} furlong</unitPattern>
<unitPattern count="other">{0} furlongs</unitPattern>
</unit>
<unit type="length-fathom">
<unitPattern count="one">{0} vaam</unitPattern>
<unitPattern count="other">{0} vaam</unitPattern>
</unit>
<unit type="length-nautical-mile">
<displayName>seemyl</displayName>
<unitPattern count="one">{0} seemyl</unitPattern>
@@ -6400,6 +6419,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} lux</unitPattern>
<unitPattern count="other">{0} lux</unitPattern>
</unit>
<unit type="light-candela">
<displayName>kandela</displayName>
<unitPattern count="one">{0} kandela</unitPattern>
<unitPattern count="other">{0} kandela</unitPattern>
</unit>
<unit type="light-lumen">
<displayName>lumen</displayName>
<unitPattern count="one">{0} lumen</unitPattern>
<unitPattern count="other">{0} lumen</unitPattern>
</unit>
<unit type="light-solar-luminosity">
<displayName>sonligsterkte</displayName>
<unitPattern count="one">{0} sonligsterkte</unitPattern>
@@ -6437,6 +6466,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} VSA-ton</unitPattern>
<unitPattern count="other">{0} VSA-ton</unitPattern>
</unit>
<unit type="mass-stone">
<displayName>stone</displayName>
<unitPattern count="one">{0} stone</unitPattern>
<unitPattern count="other">{0} stone</unitPattern>
</unit>
<unit type="mass-pound">
<displayName>pond</displayName>
<unitPattern count="one">{0} pond</unitPattern>
@@ -6474,6 +6508,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} sonmassa</unitPattern>
<unitPattern count="other">{0} sonmassas</unitPattern>
</unit>
<unit type="mass-grain">
<displayName>korrelgewig</displayName>
<unitPattern count="one">{0} korrelgewig</unitPattern>
<unitPattern count="other">{0} korrelgewig</unitPattern>
</unit>
<unit type="power-gigawatt">
<displayName>gigawatt</displayName>
<unitPattern count="one">{0} gigawatt</unitPattern>
@@ -6566,8 +6605,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
</unit>
<unit type="temperature-generic">
<displayName>°</displayName>
<unitPattern count="one">{0}°</unitPattern>
<unitPattern count="other">{0}°</unitPattern>
<unitPattern count="one">{0} graad</unitPattern>
<unitPattern count="other">{0} graad</unitPattern>
</unit>
<unit type="temperature-celsius">
<displayName>grade Celsius</displayName>
@@ -6586,7 +6625,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
</unit>
<unit type="torque-pound-force-foot">
<displayName>pondvoet</displayName>
<unitPattern count="one">{0} pondvoet</unitPattern>
<unitPattern count="one">{0} pondvoetkrag</unitPattern>
<unitPattern count="other">{0} pondvoet</unitPattern>
</unit>
<unit type="torque-newton-meter">
@@ -6677,6 +6716,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} acre-voet</unitPattern>
<unitPattern count="other">{0} acre-voet</unitPattern>
</unit>
<unit type="volume-bushel">
<unitPattern count="one">{0} skepel</unitPattern>
<unitPattern count="other">{0} skepel</unitPattern>
</unit>
<unit type="volume-gallon">
<displayName>gelling</displayName>
<unitPattern count="one">{0} gelling</unitPattern>
@@ -6729,6 +6772,41 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} vat</unitPattern>
<unitPattern count="other">{0} vate</unitPattern>
</unit>
<unit type="volume-dessert-spoon">
<displayName>dessertlepel</displayName>
<unitPattern count="one">{0} dstlpl.</unitPattern>
<unitPattern count="other">{0} dessertlepel</unitPattern>
</unit>
<unit type="volume-dessert-spoon-imperial">
<displayName>Engelse dessertlepel</displayName>
<unitPattern count="one">{0} Engelse dessertlepel</unitPattern>
<unitPattern count="other">{0} Engelse dessertlepel</unitPattern>
</unit>
<unit type="volume-drop">
<displayName>druppel</displayName>
<unitPattern count="one">{0} druppel</unitPattern>
<unitPattern count="other">{0} druppels</unitPattern>
</unit>
<unit type="volume-dram">
<displayName>dragme</displayName>
<unitPattern count="one">{0} dragme</unitPattern>
<unitPattern count="other">{0} dragme</unitPattern>
</unit>
<unit type="volume-jigger">
<displayName>sopie</displayName>
<unitPattern count="one">{0} sopie</unitPattern>
<unitPattern count="other">{0} sopies</unitPattern>
</unit>
<unit type="volume-pinch">
<displayName>knypie</displayName>
<unitPattern count="one">{0} knypie</unitPattern>
<unitPattern count="other">{0} knypie</unitPattern>
</unit>
<unit type="volume-quart-imperial">
<displayName>kwartgelling</displayName>
<unitPattern count="one">{0} Engelse kwartgelling</unitPattern>
<unitPattern count="other">{0} Engelse kwartgelling</unitPattern>
</unit>
<coordinateUnit>
<displayName>kompasrigting</displayName>
<coordinateUnitPattern type="east">{0} oos</coordinateUnitPattern>
@@ -7002,7 +7080,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<perUnitPattern>{0}/s.</perUnitPattern>
</unit>
<unit type="duration-millisecond">
<displayName>millisekondes</displayName>
<displayName>millisek.</displayName>
<unitPattern count="one">{0} ms.</unitPattern>
<unitPattern count="other">{0} ms</unitPattern>
</unit>
@@ -7146,6 +7224,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} stip./dm.</unitPattern>
<unitPattern count="other">{0} stip./dm.</unitPattern>
</unit>
<unit type="graphics-dot">
<displayName>stip.</displayName>
<unitPattern count="one">{0} stip.</unitPattern>
<unitPattern count="other">{0} stip.</unitPattern>
</unit>
<unit type="length-kilometer">
<displayName>km</displayName>
<unitPattern count="one">{0} km</unitPattern>
@@ -7226,6 +7309,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} AE</unitPattern>
<unitPattern count="other">{0} AE</unitPattern>
</unit>
<unit type="length-furlong">
<displayName>furlongs</displayName>
<unitPattern count="one">{0} fur.</unitPattern>
<unitPattern count="other">{0} fur.</unitPattern>
</unit>
<unit type="length-fathom">
<displayName>vaam</displayName>
<unitPattern count="one">{0} vaam</unitPattern>
<unitPattern count="other">{0} vaam</unitPattern>
</unit>
<unit type="length-nautical-mile">
<displayName>sm.</displayName>
<unitPattern count="one">{0} sm.</unitPattern>
@@ -7288,6 +7381,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} VSA-t.</unitPattern>
<unitPattern count="other">{0} VSA-t.</unitPattern>
</unit>
<unit type="mass-stone">
<displayName>stone</displayName>
<unitPattern count="one" draft="provisional">{0} st</unitPattern>
<unitPattern count="other" draft="provisional">{0} st</unitPattern>
</unit>
<unit type="mass-pound">
<displayName>pond</displayName>
<unitPattern count="one">{0} lb.</unitPattern>
@@ -7325,6 +7423,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} M☉</unitPattern>
<unitPattern count="other">{0} M☉</unitPattern>
</unit>
<unit type="mass-grain">
<displayName>korrelgewig</displayName>
<unitPattern count="one">{0} korrelgewig</unitPattern>
<unitPattern count="other">{0} korrelgewig</unitPattern>
</unit>
<unit type="power-gigawatt">
<displayName>GW</displayName>
<unitPattern count="one">{0} GW</unitPattern>
@@ -7537,6 +7640,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} acre-vt.</unitPattern>
<unitPattern count="other">{0} acre-vt.</unitPattern>
</unit>
<unit type="volume-bushel">
<displayName draft="provisional">skepel</displayName>
<unitPattern count="one">{0} skepel</unitPattern>
<unitPattern count="other">{0} skepel</unitPattern>
</unit>
<unit type="volume-gallon">
<displayName>gell.</displayName>
<unitPattern count="one">{0} gell.</unitPattern>
@@ -7589,6 +7697,41 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} bbl</unitPattern>
<unitPattern count="other">{0} bbl</unitPattern>
</unit>
<unit type="volume-dessert-spoon">
<displayName>dstlpl.</displayName>
<unitPattern count="one">{0} dstlpl.</unitPattern>
<unitPattern count="other">{0} dstlpl.</unitPattern>
</unit>
<unit type="volume-dessert-spoon-imperial">
<displayName>dstlpl. Eng.</displayName>
<unitPattern count="one">{0} dstlpl. Eng.</unitPattern>
<unitPattern count="other">{0} dstlpl. Eng.</unitPattern>
</unit>
<unit type="volume-drop">
<displayName>druppel</displayName>
<unitPattern count="one">{0} druppel</unitPattern>
<unitPattern count="other">{0} druppels</unitPattern>
</unit>
<unit type="volume-dram">
<displayName>dragme vloeistof</displayName>
<unitPattern count="one">{0} dr. vl.</unitPattern>
<unitPattern count="other">{0} dr. vl.</unitPattern>
</unit>
<unit type="volume-jigger">
<displayName>sopie</displayName>
<unitPattern count="one">{0} sopie</unitPattern>
<unitPattern count="other">{0} sopies</unitPattern>
</unit>
<unit type="volume-pinch">
<displayName>knypie</displayName>
<unitPattern count="one">{0} knypie</unitPattern>
<unitPattern count="other">{0} knypie</unitPattern>
</unit>
<unit type="volume-quart-imperial">
<displayName>kwart Eng.</displayName>
<unitPattern count="one">{0} kwart Eng.</unitPattern>
<unitPattern count="other">{0} kwart Eng.</unitPattern>
</unit>
<coordinateUnit>
<displayName>rigting</displayName>
<coordinateUnitPattern type="east">{0} O</coordinateUnitPattern>
@@ -7821,10 +7964,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
</coordinateUnit>
</unitLength>
<durationUnit type="hm">
<durationUnitPattern>h:mm</durationUnitPattern>
<durationUnitPattern>hh:mm</durationUnitPattern>
</durationUnit>
<durationUnit type="hms">
<durationUnitPattern>h:mm:ss</durationUnitPattern>
<durationUnitPattern>hh:mm:ss</durationUnitPattern>
</durationUnit>
<durationUnit type="ms">
<durationUnitPattern>mm:ss</durationUnitPattern>
@@ -7886,6 +8029,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<characterLabelPattern type="scripts">skrifte {0}</characterLabelPattern>
<characterLabelPattern type="strokes" count="one">{0} haal</characterLabelPattern>
<characterLabelPattern type="strokes" count="other">{0} hale</characterLabelPattern>
<characterLabelPattern type="subscript">onderskrif {0}</characterLabelPattern>
<characterLabelPattern type="superscript">boskrif {0}</characterLabelPattern>
<characterLabel type="activities">aktiwiteit</characterLabel>
<characterLabel type="african_scripts">Afrika-skrif</characterLabel>
<characterLabel type="american_scripts">Amerikaanse skrif</characterLabel>

View File

@@ -481,7 +481,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<language type="yi">ይዲሽኛ</language>
<language type="yo">ዮሩባዊኛ</language>
<language type="yue">ካንቶኒዝ</language>
<language type="yue" alt="menu" draft="contributed">ቻይና፤ ካንቶንኛ</language>
<language type="yue" alt="menu">ቻይና፤ ካንቶንኛ</language>
<language type="za">ዡዋንግኛ</language>
<language type="zbl">ብሊስይምቦልስ</language>
<language type="zgh">መደበኛ የሞሮኮ ታማዚግት</language>
@@ -645,7 +645,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<territory type="CD" alt="variant">ኮንጎ (የዲሞክራቲክ ሪፐብሊክ ኮንጎ)</territory>
<territory type="CF">ማዕከላዊ አፍሪካ ሪፑብሊክ</territory>
<territory type="CG">ኮንጎ ብራዛቪል</territory>
<territory type="CG" alt="variant">ኮንጎ (ሪብሊክ)</territory>
<territory type="CG" alt="variant">ኮንጎ (ሪብሊክ)</territory>
<territory type="CH">ስዊዘርላንድ</territory>
<territory type="CI">ኮት ዲቯር</territory>
<territory type="CI" alt="variant">አይቮሪኮስት</territory>
@@ -762,8 +762,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<territory type="ML">ማሊ</territory>
<territory type="MM">ማይናማር(በርማ)</territory>
<territory type="MN">ሞንጎሊያ</territory>
<territory type="MO">ማካ ልዩ የአስተዳደር ክልል ቻይና</territory>
<territory type="MO" alt="short">ማካ</territory>
<territory type="MO">ማካ ልዩ የአስተዳደር ክልል ቻይና</territory>
<territory type="MO" alt="short">ማካ</territory>
<territory type="MP">የሰሜናዊ ማሪያና ደሴቶች</territory>
<territory type="MQ">ማርቲኒክ</territory>
<territory type="MR">ሞሪቴኒያ</territory>
@@ -796,7 +796,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<territory type="PK">ፓኪስታን</territory>
<territory type="PL">ፖላንድ</territory>
<territory type="PM">ቅዱስ ፒዬር እና ሚኩኤሎን</territory>
<territory type="PN">ፒትካኢርን አይስላንድ</territory>
<territory type="PN">ፒትካኢርን ደሴቶች</territory>
<territory type="PR">ፖርታ ሪኮ</territory>
<territory type="PS">የፍልስጤም ግዛት</territory>
<territory type="PS" alt="short">ፍልስጥኤም</territory>
@@ -2139,6 +2139,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<dateFormatItem id="MMMEd">E፣ MMM d</dateFormatItem>
<dateFormatItem id="MMMMd">MMMM d</dateFormatItem>
<dateFormatItem id="MMMMEd">E፣ MMMM d</dateFormatItem>
<dateFormatItem id="MMMMW" count="one">ሳምንት W የ MMMM</dateFormatItem>
<dateFormatItem id="MMMMW" count="other">ሳምንት W የ MMMM</dateFormatItem>
<dateFormatItem id="ms">mm:ss</dateFormatItem>
<dateFormatItem id="y">y</dateFormatItem>
<dateFormatItem id="yM">M/y</dateFormatItem>
@@ -3928,9 +3930,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<zone type="Europe/Kaliningrad">
<exemplarCity>ካሊኒንግራድ</exemplarCity>
</zone>
<zone type="Europe/Simferopol">
<exemplarCity>ሲምፈሮፖል</exemplarCity>
</zone>
<zone type="Europe/Moscow">
<exemplarCity>ሞስኮ</exemplarCity>
</zone>
@@ -4126,6 +4125,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<zone type="Europe/Kiev">
<exemplarCity>ኪየቭ</exemplarCity>
</zone>
<zone type="Europe/Simferopol">
<exemplarCity>ሲምፈሮፖል</exemplarCity>
</zone>
<zone type="Europe/Zaporozhye">
<exemplarCity>ዛፖሮዚይ</exemplarCity>
</zone>
@@ -5241,12 +5243,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<pattern type="10000" count="other">00 </pattern>
<pattern type="100000" count="one">000 </pattern>
<pattern type="100000" count="other">000 </pattern>
<pattern type="1000000" count="one">0 ሜትር</pattern>
<pattern type="1000000" count="other">0 ሜትር</pattern>
<pattern type="10000000" count="one">00 ሜትር</pattern>
<pattern type="10000000" count="other">00 ሜትር</pattern>
<pattern type="100000000" count="one">000</pattern>
<pattern type="100000000" count="other">000</pattern>
<pattern type="1000000" count="one">0 </pattern>
<pattern type="1000000" count="other">0 </pattern>
<pattern type="10000000" count="one">00 </pattern>
<pattern type="10000000" count="other">00 </pattern>
<pattern type="100000000" count="one">000 ሚ</pattern>
<pattern type="100000000" count="other">000 ሚ</pattern>
<pattern type="1000000000" count="one">0 </pattern>
<pattern type="1000000000" count="other">0 </pattern>
<pattern type="10000000000" count="one">00 </pattern>
@@ -5293,12 +5295,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<pattern type="10000" count="other">¤00 </pattern>
<pattern type="100000" count="one">¤000 </pattern>
<pattern type="100000" count="other">¤000 </pattern>
<pattern type="1000000" count="one">¤0 ሜትር</pattern>
<pattern type="1000000" count="other">¤0 ሜትር</pattern>
<pattern type="10000000" count="one">¤00 ሜትር</pattern>
<pattern type="10000000" count="other">¤00 ሜትር</pattern>
<pattern type="100000000" count="one">¤000 ሜትር</pattern>
<pattern type="100000000" count="other">¤000 ሜትር</pattern>
<pattern type="1000000" count="one">¤0 </pattern>
<pattern type="1000000" count="other">¤0 </pattern>
<pattern type="10000000" count="one">¤00 </pattern>
<pattern type="10000000" count="other">¤00 </pattern>
<pattern type="100000000" count="one">¤000 </pattern>
<pattern type="100000000" count="other">¤000 </pattern>
<pattern type="1000000000" count="one">¤0 </pattern>
<pattern type="1000000000" count="other">¤0 </pattern>
<pattern type="10000000000" count="one">¤00 </pattern>
@@ -6461,9 +6463,38 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<compoundUnit type="10p6">
<unitPrefixPattern>ሜጋ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p9">
<unitPrefixPattern>ጊጋ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p1">
<unitPrefixPattern draft="contributed">{0} ኪቢ</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p2">
<unitPrefixPattern draft="contributed">{0} ሜቢ</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p3">
<unitPrefixPattern draft="contributed">{0} ጊቢ</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p4">
<unitPrefixPattern draft="contributed">{0} ቴቢ</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p5">
<unitPrefixPattern draft="contributed">{0} ፔቢ</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p7">
<unitPrefixPattern draft="contributed">{0} ዜቢ</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="per">
<compoundUnitPattern>{0} በ{1}</compoundUnitPattern>
</compoundUnit>
<compoundUnit type="power2">
<compoundUnitPattern1 count="one">ስኩየር {0}</compoundUnitPattern1>
<compoundUnitPattern1 count="other">ስኩየር {0}</compoundUnitPattern1>
</compoundUnit>
<compoundUnit type="power3">
<compoundUnitPattern1 count="one">ኪዩቢክ {0}</compoundUnitPattern1>
<compoundUnitPattern1 count="other">ኪዩቢክ {0}</compoundUnitPattern1>
</compoundUnit>
<unit type="acceleration-g-force">
<displayName>ጂ-ኃይል</displayName>
<unitPattern count="one">{0} ጂ-ኃይል</unitPattern>
@@ -6806,6 +6837,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} Hz</unitPattern>
<unitPattern count="other">{0} Hz</unitPattern>
</unit>
<unit type="graphics-em">
<displayName>ታይፖግራፊክ em</displayName>
</unit>
<unit type="graphics-pixel">
<displayName draft="contributed">ፒክስል</displayName>
<unitPattern count="one" draft="contributed">{0} ፒክስል</unitPattern>
@@ -6836,6 +6870,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one" draft="contributed">{0} ነበኢ</unitPattern>
<unitPattern count="other" draft="contributed">{0} ነበኢ</unitPattern>
</unit>
<unit type="graphics-dot">
<displayName draft="contributed">ነቁጥ</displayName>
<unitPattern count="one" draft="contributed">{0} ነቁጥ</unitPattern>
<unitPattern count="other" draft="contributed">{0} ነቁጥ</unitPattern>
</unit>
<unit type="length-kilometer">
<displayName>ኪሎሜትር</displayName>
<unitPattern count="one">{0} ኪሎሜትር</unitPattern>
@@ -6916,6 +6955,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} au</unitPattern>
<unitPattern count="other">{0} au</unitPattern>
</unit>
<unit type="length-furlong">
<displayName draft="contributed">ፈሎን</displayName>
<unitPattern count="one" draft="contributed">{0} ፈሎን</unitPattern>
<unitPattern count="other" draft="contributed">{0} ፈሎን</unitPattern>
</unit>
<unit type="length-fathom">
<displayName draft="contributed">ተዳክሞዎች</displayName>
<unitPattern count="one" draft="contributed">{0} ተዳክሞ</unitPattern>
<unitPattern count="other" draft="contributed">{0} ተዳክሞዎች</unitPattern>
</unit>
<unit type="length-nautical-mile">
<displayName>nmi</displayName>
<unitPattern count="one">{0} nmi</unitPattern>
@@ -6931,11 +6980,26 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} ነጥብ</unitPattern>
<unitPattern count="other">{0} ነጥብ</unitPattern>
</unit>
<unit type="length-solar-radius">
<displayName>ሶላር ራዲ</displayName>
<unitPattern count="one">{0} ሶላር ዳዲየስ</unitPattern>
<unitPattern count="other">{0} ሶላር ራዲ</unitPattern>
</unit>
<unit type="light-lux">
<displayName>lx</displayName>
<unitPattern count="one">{0} lx</unitPattern>
<unitPattern count="other">{0} lx</unitPattern>
</unit>
<unit type="light-candela">
<displayName draft="contributed">ካንዴላ</displayName>
<unitPattern count="one" draft="contributed">{0} ካንዴላ</unitPattern>
<unitPattern count="other" draft="contributed">{0} ካንዴላ</unitPattern>
</unit>
<unit type="light-lumen">
<displayName draft="contributed">ቱቦ ቀዳዳ</displayName>
<unitPattern count="one" draft="contributed">{0} ቱቦ ቀዳዳ</unitPattern>
<unitPattern count="other" draft="contributed">{0} ቱቦ ቀዳዳ</unitPattern>
</unit>
<unit type="mass-metric-ton">
<displayName>t</displayName>
<unitPattern count="one">{0} t</unitPattern>
@@ -6968,6 +7032,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-stone">
<displayName draft="contributed">ድንጋይ</displayName>
<unitPattern count="one" draft="contributed">{0} ድንጋይ</unitPattern>
<unitPattern count="other" draft="contributed">{0} ድንጋይ</unitPattern>
</unit>
<unit type="mass-pound">
<displayName>ፓውንድ</displayName>
<unitPattern count="one">{0} ፓውንድ</unitPattern>
@@ -6990,6 +7059,26 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} CD</unitPattern>
<unitPattern count="other">{0} CD</unitPattern>
</unit>
<unit type="mass-dalton">
<displayName>ዳተንስ</displayName>
<unitPattern count="one">{0} ዳተንስ</unitPattern>
<unitPattern count="other">{0} ዳተንስ</unitPattern>
</unit>
<unit type="mass-earth-mass">
<displayName>ኤርዝማስስ</displayName>
<unitPattern count="one">{0} ኤርዝማስስ</unitPattern>
<unitPattern count="other">{0} ኤርዝማስስ</unitPattern>
</unit>
<unit type="mass-solar-mass">
<displayName>ሶላር ማስስ</displayName>
<unitPattern count="one">{0} ሶላር ማስስ</unitPattern>
<unitPattern count="other">{0} ሶላር ማስስ</unitPattern>
</unit>
<unit type="mass-grain">
<displayName draft="contributed">ጥራ ጥሬ</displayName>
<unitPattern count="one" draft="contributed">{0} ጥራ ጥሬ</unitPattern>
<unitPattern count="other" draft="contributed">{0} ጥራ ጥሬ</unitPattern>
</unit>
<unit type="power-gigawatt">
<displayName>GW</displayName>
<unitPattern count="one">{0} GW</unitPattern>
@@ -7198,6 +7287,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="volume-bushel">
<displayName draft="contributed">ዳውላ</displayName>
<unitPattern count="one" draft="contributed">{0} ዳውላ</unitPattern>
<unitPattern count="other" draft="contributed">{0} ዳውላ</unitPattern>
</unit>
<unit type="volume-gallon">
<displayName>gal</displayName>
<unitPattern count="one">{0} gal</unitPattern>
@@ -7230,6 +7324,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} fl oz</unitPattern>
<unitPattern count="other">{0} fl oz</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>tbsp</displayName>
<unitPattern count="one">{0} tbsp</unitPattern>
@@ -7245,6 +7344,41 @@ 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-dessert-spoon">
<displayName draft="contributed">የመምድረ በዳ ማንኪያ</displayName>
<unitPattern count="one" draft="contributed">{0} የመምድረ በዳ ማንኪያ</unitPattern>
<unitPattern count="other" draft="contributed">{0} የመምድረ በዳ ማንኪያ</unitPattern>
</unit>
<unit type="volume-dessert-spoon-imperial">
<displayName draft="contributed">የምድረ በዳ ማንኪያ</displayName>
<unitPattern count="one" draft="contributed">{0} የምድረ በዳ ማንኪያ</unitPattern>
<unitPattern count="other" draft="contributed">{0} የምድረ በዳ ማንኪያ</unitPattern>
</unit>
<unit type="volume-drop">
<displayName draft="contributed">ጠብታ</displayName>
<unitPattern count="one" draft="contributed">{0} ጠብታ</unitPattern>
<unitPattern count="other" draft="contributed">{0} ጠብታ</unitPattern>
</unit>
<unit type="volume-dram">
<displayName draft="contributed">የክብደት መለኪያ</displayName>
<unitPattern count="one" draft="contributed">{0} የክብደት መለኪያ</unitPattern>
<unitPattern count="other" draft="contributed">{0} የክብደት መለኪያ</unitPattern>
</unit>
<unit type="volume-jigger">
<displayName draft="contributed">ሙጃሌ</displayName>
<unitPattern count="one" draft="contributed">{0} ሙጃሌ</unitPattern>
<unitPattern count="other" draft="contributed">{0} ሙጃሌ</unitPattern>
</unit>
<unit type="volume-pinch">
<displayName draft="contributed">ቁንጥ</displayName>
<unitPattern count="one" draft="contributed">{0} ቁንጥ</unitPattern>
<unitPattern count="other" draft="contributed">{0} ቁንጥ</unitPattern>
</unit>
<unit type="volume-quart-imperial">
<displayName draft="contributed">የፈሳሽ መለኪያ</displayName>
<unitPattern count="one" draft="contributed">{0} የፈሳሽ መለኪያ</unitPattern>
<unitPattern count="other" draft="contributed">{0} የፈሳሽ መለኪያ</unitPattern>
</unit>
<coordinateUnit>
<displayName>ዓቢይ አቅጣጫ</displayName>
<coordinateUnitPattern type="east">{0}ምስ</coordinateUnitPattern>
@@ -7296,6 +7430,24 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<compoundUnit type="10p6">
<unitPrefixPattern>ሜ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p1">
<unitPrefixPattern draft="contributed">{0} ኪቢ</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p2">
<unitPrefixPattern draft="contributed">{0} ሜቢ</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p3">
<unitPrefixPattern draft="contributed">{0} ጊቢ</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p4">
<unitPrefixPattern draft="contributed">{0} ቴቢ</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p5">
<unitPrefixPattern draft="contributed">{0} ፔቢ</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p7">
<unitPrefixPattern draft="contributed">{0} ዜቢ</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="per">
<compoundUnitPattern>{0}/{1}</compoundUnitPattern>
</compoundUnit>
@@ -7671,6 +7823,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one" draft="contributed">{0} ነበኢ</unitPattern>
<unitPattern count="other" draft="contributed">{0} ነበኢ</unitPattern>
</unit>
<unit type="graphics-dot">
<displayName draft="contributed">ነቁጥ</displayName>
<unitPattern count="one" draft="contributed">{0} ነቁጥ</unitPattern>
<unitPattern count="other" draft="contributed">{0} ነቁጥ</unitPattern>
</unit>
<unit type="length-kilometer">
<displayName>ኪሎሜትር</displayName>
<unitPattern count="one">{0} ኪሜ</unitPattern>
@@ -7751,6 +7908,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} au</unitPattern>
<unitPattern count="other">{0} au</unitPattern>
</unit>
<unit type="length-furlong">
<displayName draft="contributed">ፈሎን</displayName>
<unitPattern count="one" draft="contributed">{0} ፈሎን</unitPattern>
<unitPattern count="other" draft="contributed">{0} ፈሎን</unitPattern>
</unit>
<unit type="length-fathom">
<displayName draft="contributed">ተዳክሞዎች</displayName>
<unitPattern count="one" draft="contributed">{0} ተዳክሞ</unitPattern>
<unitPattern count="other" draft="contributed">{0} ተዳክሞ</unitPattern>
</unit>
<unit type="length-nautical-mile">
<displayName>nmi</displayName>
<unitPattern count="one">{0} nmi</unitPattern>
@@ -7766,11 +7933,24 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} ነጥብ</unitPattern>
<unitPattern count="other">{0} ነጥብ</unitPattern>
</unit>
<unit type="length-solar-radius">
<displayName>ሶላር ራዲ</displayName>
</unit>
<unit type="light-lux">
<displayName>lx</displayName>
<unitPattern count="one">{0} lx</unitPattern>
<unitPattern count="other">{0} lx</unitPattern>
</unit>
<unit type="light-candela">
<displayName draft="contributed">ካንዴላ</displayName>
<unitPattern count="one" draft="contributed">{0} ካንዴላ</unitPattern>
<unitPattern count="other" draft="contributed">{0} ካንዴላ</unitPattern>
</unit>
<unit type="light-lumen">
<displayName draft="contributed">ቱቦ ቀዳዳ</displayName>
<unitPattern count="one" draft="contributed">{0} ቱቦ ቀዳዳ</unitPattern>
<unitPattern count="other" draft="contributed">{0} ቱቦ ቀዳዳ</unitPattern>
</unit>
<unit type="mass-metric-ton">
<displayName>t</displayName>
<unitPattern count="one">{0} t</unitPattern>
@@ -7803,6 +7983,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-stone">
<displayName draft="contributed">ድንጋይ</displayName>
<unitPattern count="one" draft="contributed">{0} ድንጋይ</unitPattern>
<unitPattern count="other" draft="contributed">{0} ድንጋይ</unitPattern>
</unit>
<unit type="mass-pound">
<displayName>ፓውንድ</displayName>
<unitPattern count="one">{0} ፓውንድ</unitPattern>
@@ -7825,6 +8010,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} CD</unitPattern>
<unitPattern count="other">{0} CD</unitPattern>
</unit>
<unit type="mass-dalton">
<displayName>ዳተንስ</displayName>
</unit>
<unit type="mass-earth-mass">
<displayName>ኤርዝማስስ</displayName>
</unit>
<unit type="mass-solar-mass">
<displayName>ሶላር ማስስ</displayName>
</unit>
<unit type="mass-grain">
<displayName draft="contributed">ጥራ ጥሬ</displayName>
<unitPattern count="one" draft="contributed">{0} ጥራ ጥሬ</unitPattern>
<unitPattern count="other" draft="contributed">{0} ጥራ ጥሬ</unitPattern>
</unit>
<unit type="power-gigawatt">
<displayName>GW</displayName>
<unitPattern count="one">{0} GW</unitPattern>
@@ -8033,6 +8232,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="volume-bushel">
<displayName draft="contributed">ዳውላ</displayName>
<unitPattern count="one" draft="contributed">{0} ዳውላ</unitPattern>
<unitPattern count="other" draft="contributed">{0} ዳውላ</unitPattern>
</unit>
<unit type="volume-gallon">
<displayName>gal</displayName>
<unitPattern count="one">{0} gal</unitPattern>
@@ -8080,6 +8284,41 @@ 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-dessert-spoon">
<displayName draft="contributed">የመምድረ በዳ ማንኪያ</displayName>
<unitPattern count="one" draft="contributed">{0} የመምድረ በዳ ማንኪያ</unitPattern>
<unitPattern count="other" draft="contributed">{0} የመምድረ በዳ ማንኪያ</unitPattern>
</unit>
<unit type="volume-dessert-spoon-imperial">
<displayName draft="contributed">የምድረ በዳ ማንኪያ</displayName>
<unitPattern count="one" draft="contributed">{0} የምድረ በዳ ማንኪያ</unitPattern>
<unitPattern count="other" draft="contributed">{0} የምድረ በዳ ማንኪያ</unitPattern>
</unit>
<unit type="volume-drop">
<displayName draft="contributed">ጠብታ</displayName>
<unitPattern count="one" draft="contributed">{0} ጠብታ</unitPattern>
<unitPattern count="other" draft="contributed">{0} ጠብታ</unitPattern>
</unit>
<unit type="volume-dram">
<displayName draft="contributed">የክብደት መለኪያ</displayName>
<unitPattern count="one" draft="contributed">{0} የክብደት መለኪያ</unitPattern>
<unitPattern count="other" draft="contributed">{0} የክብደት መለኪያ</unitPattern>
</unit>
<unit type="volume-jigger">
<displayName draft="contributed">ሙጃሌ</displayName>
<unitPattern count="one" draft="contributed">{0} ሙጃሌ</unitPattern>
<unitPattern count="other" draft="contributed">{0} ሙጃሌ</unitPattern>
</unit>
<unit type="volume-pinch">
<displayName draft="contributed">ቁንጥ</displayName>
<unitPattern count="one" draft="contributed">{0} ቁንጥ</unitPattern>
<unitPattern count="other" draft="contributed">{0} ቁንጥ</unitPattern>
</unit>
<unit type="volume-quart-imperial">
<displayName draft="contributed">የፈሳሽ መለኪያ</displayName>
<unitPattern count="one" draft="contributed">{0} የፈሳሽ መለኪያ</unitPattern>
<unitPattern count="other" draft="contributed">{0} የፈሳሽ መለኪያ</unitPattern>
</unit>
<coordinateUnit>
<displayName>አቅጣጫ</displayName>
<coordinateUnitPattern type="east">{0}ምስ</coordinateUnitPattern>
@@ -8131,6 +8370,24 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<compoundUnit type="10p6">
<unitPrefixPattern>ሜ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p1">
<unitPrefixPattern draft="contributed">{0} ኪቢ</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p2">
<unitPrefixPattern draft="contributed">{0} ሜቢ</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p3">
<unitPrefixPattern draft="contributed">{0} ጊቢ</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p4">
<unitPrefixPattern draft="contributed">{0} ቴቢ</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p5">
<unitPrefixPattern draft="contributed">{0} ፔቢ</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p7">
<unitPrefixPattern draft="contributed">{0} ዜቢ</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="per">
<compoundUnitPattern>{0}/{1}</compoundUnitPattern>
</compoundUnit>
@@ -8376,9 +8633,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<listPattern type="or">
<listPatternPart type="start">{0}፣ {1}</listPatternPart>
<listPatternPart type="middle">{0}፣ {1}</listPatternPart>
<listPatternPart type="end">{0} ወይም {1}</listPatternPart>
<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="standard-narrow">
<listPatternPart type="start">{0}, {1}</listPatternPart>
</listPattern>
@@ -8425,6 +8685,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<characterLabelPattern type="scripts">ስክሪፕቶች — {0}</characterLabelPattern>
<characterLabelPattern type="strokes" count="one">{0} ምች</characterLabelPattern>
<characterLabelPattern type="strokes" count="other">{0} ምች</characterLabelPattern>
<characterLabelPattern type="subscript">ግርጌ ምልክት {0}</characterLabelPattern>
<characterLabelPattern type="superscript">ራስጌ ምልክት {0}</characterLabelPattern>
<characterLabel type="activities">እንቅስቃሴዎች</characterLabel>
<characterLabel type="african_scripts">የአፍሪካ ስክሪፕቶች</characterLabel>
<characterLabel type="american_scripts">የአሜሪካ ስክሪፕቶች</characterLabel>

View File

@@ -1099,9 +1099,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<type key="lb" type="strict">نمط فصل السطور: متقارب</type>
<type key="m0" type="bgn">بي جي إن</type>
<type key="m0" type="ungegn">يو إن جي إي جي إن</type>
<type key="ms" type="metric">نظام متري</type>
<type key="ms" type="uksystem">نظام المملكة المتحدة</type>
<type key="ms" type="ussystem">نظام الولايات المتحدة</type>
<type key="ms" type="metric">النظام المتري</type>
<type key="ms" type="uksystem">نظام القياس البريطاني</type>
<type key="ms" type="ussystem">نظام القياس الأمريكي</type>
<type key="numbers" type="arab">الأرقام العربية الهندية</type>
<type key="numbers" type="arabext">الأرقام العربية الهندية الممتدة</type>
<type key="numbers" type="armn">الأرقام الأرمينية</type>
@@ -1145,7 +1145,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
</types>
<measurementSystemNames>
<measurementSystemName type="metric">النظام المتري</measurementSystemName>
<measurementSystemName type="UK">المملكة المتحدة</measurementSystemName>
<measurementSystemName type="UK">النظام البريطاني</measurementSystemName>
<measurementSystemName type="US">النظام الأمريكي</measurementSystemName>
</measurementSystemNames>
<codePatterns>
@@ -1349,22 +1349,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<dateTimeFormats>
<dateTimeFormatLength type="full">
<dateTimeFormat>
<pattern>{1} {0}</pattern>
<pattern>{1} في {0}</pattern>
</dateTimeFormat>
</dateTimeFormatLength>
<dateTimeFormatLength type="long">
<dateTimeFormat>
<pattern>{1} {0}</pattern>
<pattern>{1} في {0}</pattern>
</dateTimeFormat>
</dateTimeFormatLength>
<dateTimeFormatLength type="medium">
<dateTimeFormat>
<pattern>{1} {0}</pattern>
<pattern>{1} في {0}</pattern>
</dateTimeFormat>
</dateTimeFormatLength>
<dateTimeFormatLength type="short">
<dateTimeFormat>
<pattern>{1} {0}</pattern>
<pattern>{1} في {0}</pattern>
</dateTimeFormat>
</dateTimeFormatLength>
<availableFormats>
@@ -1392,7 +1392,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<dateFormatItem id="Hms">HH:mm:ss</dateFormatItem>
<dateFormatItem id="M">L</dateFormatItem>
<dateFormatItem id="Md">d/M</dateFormatItem>
<dateFormatItem id="MEd">E، d/M</dateFormatItem>
<dateFormatItem id="MEd">E، d/M</dateFormatItem>
<dateFormatItem id="MMM">LLL</dateFormatItem>
<dateFormatItem id="MMMd">d MMM</dateFormatItem>
<dateFormatItem id="MMMEd">E، d MMM</dateFormatItem>
@@ -1415,6 +1415,44 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<intervalFormatItem id="d">
<greatestDifference id="d">dd</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="Gy">
<greatestDifference id="G">y G y G</greatestDifference>
<greatestDifference id="y">yy G</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="GyM">
<greatestDifference id="G">MM-y GGGG MM-y GGGG</greatestDifference>
<greatestDifference id="M">MM-y MM-y GGGG</greatestDifference>
<greatestDifference id="y">MM-y MM-y GGGG</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="GyMd">
<greatestDifference id="d">dd-MM-y dd-MM-y GGGG</greatestDifference>
<greatestDifference id="G">dd-MM-y GGGG dd-MM-y GGGG</greatestDifference>
<greatestDifference id="M">dd-MM-y dd-MM-y GGGG</greatestDifference>
<greatestDifference id="y">dd-MM-y dd-MM-y GGGG</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="GyMEd">
<greatestDifference id="d">E, dd-MM-y E, dd-MM-y GGGG</greatestDifference>
<greatestDifference id="G">E, dd-MM-y GGGG E, dd-MM-y GGGG</greatestDifference>
<greatestDifference id="M">E, dd-MM-y E, dd-MM-y GGGG</greatestDifference>
<greatestDifference id="y">E, dd-MM-y E,dd-MM-y GGGG</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="GyMMM">
<greatestDifference id="G">MMM y G MMM y G</greatestDifference>
<greatestDifference id="M">MMM MMM y G</greatestDifference>
<greatestDifference id="y">MMM y MMM y G</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="GyMMMd">
<greatestDifference id="d">dd MMM y G</greatestDifference>
<greatestDifference id="G">d MMM y G d MMM y G</greatestDifference>
<greatestDifference id="M">d MMM d MMM y G</greatestDifference>
<greatestDifference id="y">d MMM y d MMM y G</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="GyMMMEd">
<greatestDifference id="d">E, d MMM E, d MMM y G</greatestDifference>
<greatestDifference id="G">E, d MMM y G E, d MMM y G</greatestDifference>
<greatestDifference id="M">E, d MMM E, d MMM y G</greatestDifference>
<greatestDifference id="y">E, d MMM y E, d MMM y G</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="h">
<greatestDifference id="a">h a h a</greatestDifference>
<greatestDifference id="h">hh a</greatestDifference>
@@ -1451,8 +1489,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<greatestDifference id="M">MM</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="Md">
<greatestDifference id="d">M/d M/d</greatestDifference>
<greatestDifference id="M">M/d M/d</greatestDifference>
<greatestDifference id="d">d-M d-M</greatestDifference>
<greatestDifference id="M">d-M d-M</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="MEd">
<greatestDifference id="d">E، d/M E، d/M</greatestDifference>
@@ -1462,7 +1500,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<greatestDifference id="M">MMMMMM</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="MMMd">
<greatestDifference id="d">MMM dd</greatestDifference>
<greatestDifference id="d">dd MMM</greatestDifference>
<greatestDifference id="M">d MMM d MMM</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="MMMEd">
@@ -1731,7 +1769,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<dayPeriod type="afternoon1">ظهرًا</dayPeriod>
<dayPeriod type="afternoon2">بعد الظهر</dayPeriod>
<dayPeriod type="evening1">مساءً</dayPeriod>
<dayPeriod type="night1">منتصف الليل</dayPeriod>
<dayPeriod type="night1">في المساء</dayPeriod>
<dayPeriod type="night2">ليلاً</dayPeriod>
</dayPeriodWidth>
<dayPeriodWidth type="narrow">
@@ -1748,12 +1786,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<dayPeriodWidth type="wide">
<dayPeriod type="am">ص</dayPeriod>
<dayPeriod type="pm">م</dayPeriod>
<dayPeriod type="morning1">فجرًا</dayPeriod>
<dayPeriod type="morning1">في الصباح</dayPeriod>
<dayPeriod type="morning2">صباحًا</dayPeriod>
<dayPeriod type="afternoon1">ظهرًا</dayPeriod>
<dayPeriod type="afternoon2">بعد الظهر</dayPeriod>
<dayPeriod type="evening1">مساءً</dayPeriod>
<dayPeriod type="night1">منتصف الليل</dayPeriod>
<dayPeriod type="night1">في المساء</dayPeriod>
<dayPeriod type="night2">ليلاً</dayPeriod>
</dayPeriodWidth>
</dayPeriodContext>
@@ -1854,22 +1892,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<dateTimeFormats>
<dateTimeFormatLength type="full">
<dateTimeFormat>
<pattern>{1} {0}</pattern>
<pattern>{1} في {0}</pattern>
</dateTimeFormat>
</dateTimeFormatLength>
<dateTimeFormatLength type="long">
<dateTimeFormat>
<pattern>{1} {0}</pattern>
<pattern>{1} في {0}</pattern>
</dateTimeFormat>
</dateTimeFormatLength>
<dateTimeFormatLength type="medium">
<dateTimeFormat>
<pattern>{1} {0}</pattern>
<pattern>{1}, {0}</pattern>
</dateTimeFormat>
</dateTimeFormatLength>
<dateTimeFormatLength type="short">
<dateTimeFormat>
<pattern>{1} {0}</pattern>
<pattern>{1}, {0}</pattern>
</dateTimeFormat>
</dateTimeFormatLength>
<availableFormats>
@@ -1901,7 +1939,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<dateFormatItem id="Hmv">HH:mm v</dateFormatItem>
<dateFormatItem id="M">L</dateFormatItem>
<dateFormatItem id="Md">d/M</dateFormatItem>
<dateFormatItem id="MEd">E، d/M</dateFormatItem>
<dateFormatItem id="MEd">E، d/M</dateFormatItem>
<dateFormatItem id="MMdd">dd/MM</dateFormatItem>
<dateFormatItem id="MMM">LLL</dateFormatItem>
<dateFormatItem id="MMMd">d MMM</dateFormatItem>
@@ -1941,6 +1979,44 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<intervalFormatItem id="d">
<greatestDifference id="d">dd</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="Gy">
<greatestDifference id="G">y G y G</greatestDifference>
<greatestDifference id="y">y y G</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="GyM">
<greatestDifference id="G">MM-y GGGG MM-y GGGG</greatestDifference>
<greatestDifference id="M">MM-y MM-y GGGG</greatestDifference>
<greatestDifference id="y">MM-y MM-y GGGG</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="GyMd">
<greatestDifference id="d">d-MM-y d-MM-y GGGG</greatestDifference>
<greatestDifference id="G">dd-MM-y GGGG dd-MM-y GGGG</greatestDifference>
<greatestDifference id="M">dd-MM-y dd-MM-y GGGG</greatestDifference>
<greatestDifference id="y">dd-MM-y dd-MM-y GGGG</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="GyMEd">
<greatestDifference id="d">E, dd-MM-y E, dd-MM-y GGGG</greatestDifference>
<greatestDifference id="G">E, dd-MM-y GGGG E, dd-MM-y GGGG</greatestDifference>
<greatestDifference id="M">E, dd-MM-y E, dd-MM-y GGGG</greatestDifference>
<greatestDifference id="y">E, dd-MM-y E, dd-MM-y GGGG</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="GyMMM">
<greatestDifference id="G">MMM y G MMM y G</greatestDifference>
<greatestDifference id="M">MMM MMM y G</greatestDifference>
<greatestDifference id="y">MMM y MMM y G</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="GyMMMd">
<greatestDifference id="d">dd MMM y G</greatestDifference>
<greatestDifference id="G">d MMM y G d MMM y G</greatestDifference>
<greatestDifference id="M">d MMM d MMM y G</greatestDifference>
<greatestDifference id="y">d MMM y d MMM y G</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="GyMMMEd">
<greatestDifference id="d">E, d MMM E, d MMM y G</greatestDifference>
<greatestDifference id="G">E, d MMM y G E, d MMM y G</greatestDifference>
<greatestDifference id="M">E, d MMM E, d MMM y G</greatestDifference>
<greatestDifference id="y">E, d MMM y E, d MMM y G</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="h">
<greatestDifference id="a">h a h a</greatestDifference>
<greatestDifference id="h">hh a</greatestDifference>
@@ -1977,7 +2053,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<greatestDifference id="M">MM</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="Md">
<greatestDifference id="d">M/d M/d</greatestDifference>
<greatestDifference id="d">d-M d-M</greatestDifference>
<greatestDifference id="M">M/d M/d</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="MEd">
@@ -2279,7 +2355,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<dateFormatItem id="Hms">HH:mm:ss</dateFormatItem>
<dateFormatItem id="M">L</dateFormatItem>
<dateFormatItem id="Md">d/M</dateFormatItem>
<dateFormatItem id="MEd">E، d/M</dateFormatItem>
<dateFormatItem id="MEd">E، d/M</dateFormatItem>
<dateFormatItem id="MMM">LLL</dateFormatItem>
<dateFormatItem id="MMMd">d MMM</dateFormatItem>
<dateFormatItem id="MMMEd">E، d MMM</dateFormatItem>
@@ -4208,7 +4284,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<exemplarCity>جامايكا</exemplarCity>
</zone>
<zone type="Asia/Amman">
<exemplarCity>عمان</exemplarCity>
<exemplarCity>عمّان</exemplarCity>
</zone>
<zone type="Asia/Tokyo">
<exemplarCity>طوكيو</exemplarCity>
@@ -4531,9 +4607,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<zone type="Europe/Kaliningrad">
<exemplarCity>كالينجراد</exemplarCity>
</zone>
<zone type="Europe/Simferopol">
<exemplarCity>سيمفروبول</exemplarCity>
</zone>
<zone type="Europe/Moscow">
<exemplarCity>موسكو</exemplarCity>
</zone>
@@ -4729,6 +4802,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<zone type="Europe/Kiev">
<exemplarCity>كييف</exemplarCity>
</zone>
<zone type="Europe/Simferopol">
<exemplarCity>سيمفروبول</exemplarCity>
</zone>
<zone type="Europe/Zaporozhye">
<exemplarCity>زابوروزي</exemplarCity>
</zone>
@@ -5522,9 +5598,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
</metazone>
<metazone type="Norfolk">
<long>
<generic draft="contributed">توقيت جزيرة نورفولك</generic>
<standard draft="contributed">توقيت جزيرة نورفولك الرسمي</standard>
<daylight draft="contributed">توقيت جزيرة نورفولك الصيفي</daylight>
<generic>توقيت جزيرة نورفولك</generic>
<standard>توقيت جزيرة نورفولك الرسمي</standard>
<daylight>توقيت جزيرة نورفولك الصيفي</daylight>
</long>
</metazone>
<metazone type="Noronha">
@@ -6048,78 +6124,78 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
</currencyFormatLength>
<currencyFormatLength type="short">
<currencyFormat type="standard">
<pattern type="1000" count="zero">¤ 0 ألف</pattern>
<pattern type="1000" count="one">¤ 0 ألف</pattern>
<pattern type="1000" count="two">¤ 0 ألف</pattern>
<pattern type="1000" count="few">¤ 0 ألف</pattern>
<pattern type="1000" count="many">¤ 0 ألف</pattern>
<pattern type="1000" count="other">¤ 0 ألف</pattern>
<pattern type="10000" count="zero">¤ 00 ألف</pattern>
<pattern type="10000" count="one">¤ 00 ألف</pattern>
<pattern type="10000" count="two">¤ 00 ألف</pattern>
<pattern type="10000" count="few">¤ 00 ألف</pattern>
<pattern type="10000" count="many">¤ 00 ألف</pattern>
<pattern type="10000" count="other">¤ 00 ألف</pattern>
<pattern type="100000" count="zero">¤ 000 ألف</pattern>
<pattern type="100000" count="one">¤ 000 ألف</pattern>
<pattern type="100000" count="two">¤ 000 ألف</pattern>
<pattern type="100000" count="few">¤ 000 ألف</pattern>
<pattern type="100000" count="many">¤ 000 ألف</pattern>
<pattern type="100000" count="other">¤ 000 ألف</pattern>
<pattern type="1000000" count="zero">¤ 0 مليون</pattern>
<pattern type="1000000" count="one">¤ 0 مليون</pattern>
<pattern type="1000000" count="two">¤ 0 مليون</pattern>
<pattern type="1000000" count="few">¤ 0 مليون</pattern>
<pattern type="1000000" count="many">¤ 0 مليون</pattern>
<pattern type="1000000" count="other">¤ 0 مليون</pattern>
<pattern type="10000000" count="zero">¤ 00 مليون</pattern>
<pattern type="10000000" count="one">¤ 00 مليون</pattern>
<pattern type="10000000" count="two">¤ 00 مليون</pattern>
<pattern type="10000000" count="few">¤ 00 مليون</pattern>
<pattern type="10000000" count="many">¤ 00 مليون</pattern>
<pattern type="10000000" count="other">¤ 00 مليون</pattern>
<pattern type="100000000" count="zero">¤ 000 مليون</pattern>
<pattern type="100000000" count="one">¤ 000 مليون</pattern>
<pattern type="100000000" count="two">¤ 000 مليون</pattern>
<pattern type="100000000" count="few">¤ 000 مليون</pattern>
<pattern type="100000000" count="many">¤ 000 مليون</pattern>
<pattern type="100000000" count="other">¤ 000 مليون</pattern>
<pattern type="1000000000" count="zero">¤ 0 مليار</pattern>
<pattern type="1000000000" count="one">¤ 0 مليار</pattern>
<pattern type="1000000000" count="two">¤ 0 مليار</pattern>
<pattern type="1000000000" count="few">¤ 0 مليار</pattern>
<pattern type="1000000000" count="many">¤ 0 مليار</pattern>
<pattern type="1000000000" count="other">¤ 0 مليار</pattern>
<pattern type="10000000000" count="zero">¤ 00 مليار</pattern>
<pattern type="10000000000" count="one">¤ 00 مليار</pattern>
<pattern type="10000000000" count="two">¤ 00 مليار</pattern>
<pattern type="10000000000" count="few">¤ 00 مليار</pattern>
<pattern type="10000000000" count="many">¤ 00 مليار</pattern>
<pattern type="10000000000" count="other">¤ 00 مليار</pattern>
<pattern type="100000000000" count="zero">¤ 000 مليار</pattern>
<pattern type="100000000000" count="one">¤ 000 مليار</pattern>
<pattern type="100000000000" count="two">¤ 000 مليار</pattern>
<pattern type="100000000000" count="few">¤ 000 مليار</pattern>
<pattern type="100000000000" count="many">¤ 000 مليار</pattern>
<pattern type="100000000000" count="other">¤ 000 مليار</pattern>
<pattern type="1000000000000" count="zero">¤ 0 ترليون</pattern>
<pattern type="1000000000000" count="one">¤ 0 ترليون</pattern>
<pattern type="1000000000000" count="two">¤ 0 ترليون</pattern>
<pattern type="1000000000000" count="few">¤ 0 ترليون</pattern>
<pattern type="1000000000000" count="many">¤ 0 ترليون</pattern>
<pattern type="1000000000000" count="other">¤ 0 ترليون</pattern>
<pattern type="10000000000000" count="zero">¤ 00 ترليون</pattern>
<pattern type="10000000000000" count="one">¤ 00 ترليون</pattern>
<pattern type="10000000000000" count="two">¤ 00 ترليون</pattern>
<pattern type="10000000000000" count="few">¤ 00 ترليون</pattern>
<pattern type="10000000000000" count="many">¤ 00 ترليون</pattern>
<pattern type="10000000000000" count="other">¤ 00 ترليون</pattern>
<pattern type="100000000000000" count="zero">¤ 000 ترليون</pattern>
<pattern type="100000000000000" count="one">¤ 000 ترليون</pattern>
<pattern type="100000000000000" count="two">¤ 000 ترليون</pattern>
<pattern type="100000000000000" count="few">¤ 000 ترليون</pattern>
<pattern type="100000000000000" count="many">¤ 000 ترليون</pattern>
<pattern type="100000000000000" count="other">¤ 000 ترليون</pattern>
<pattern type="1000" count="zero">0 ألف ¤</pattern>
<pattern type="1000" count="one">0 ألف ¤</pattern>
<pattern type="1000" count="two">0 ألف ¤</pattern>
<pattern type="1000" count="few">0 ألف ¤</pattern>
<pattern type="1000" count="many">0 ألف ¤</pattern>
<pattern type="1000" count="other">0 ألف ¤</pattern>
<pattern type="10000" count="zero">00 ألف ¤</pattern>
<pattern type="10000" count="one">00 ألف ¤</pattern>
<pattern type="10000" count="two">00 ألف ¤</pattern>
<pattern type="10000" count="few">00 ألف ¤</pattern>
<pattern type="10000" count="many">00 ألف ¤</pattern>
<pattern type="10000" count="other">00 ألف ¤</pattern>
<pattern type="100000" count="zero">000 ألف ¤</pattern>
<pattern type="100000" count="one">000 ألف ¤</pattern>
<pattern type="100000" count="two">000 ألف ¤</pattern>
<pattern type="100000" count="few">000 ألف ¤</pattern>
<pattern type="100000" count="many">000 ألف ¤</pattern>
<pattern type="100000" count="other">000 ألف ¤</pattern>
<pattern type="1000000" count="zero">0 مليون ¤</pattern>
<pattern type="1000000" count="one">0 مليون ¤</pattern>
<pattern type="1000000" count="two">0 مليون ¤</pattern>
<pattern type="1000000" count="few">0 مليون ¤</pattern>
<pattern type="1000000" count="many">0 مليون ¤</pattern>
<pattern type="1000000" count="other">0 مليون ¤</pattern>
<pattern type="10000000" count="zero">00 مليون ¤</pattern>
<pattern type="10000000" count="one">00 مليون ¤</pattern>
<pattern type="10000000" count="two">00 مليون ¤</pattern>
<pattern type="10000000" count="few">00 مليون ¤</pattern>
<pattern type="10000000" count="many">00 مليون ¤</pattern>
<pattern type="10000000" count="other">00 مليون ¤</pattern>
<pattern type="100000000" count="zero">000 مليون ¤</pattern>
<pattern type="100000000" count="one">000 مليون ¤</pattern>
<pattern type="100000000" count="two">000 مليون ¤</pattern>
<pattern type="100000000" count="few">000 مليون ¤</pattern>
<pattern type="100000000" count="many">000 مليون ¤</pattern>
<pattern type="100000000" count="other">000 مليون ¤</pattern>
<pattern type="1000000000" count="zero">0 مليار ¤</pattern>
<pattern type="1000000000" count="one">0 مليار ¤</pattern>
<pattern type="1000000000" count="two">0 مليار ¤</pattern>
<pattern type="1000000000" count="few">0 مليار ¤</pattern>
<pattern type="1000000000" count="many">0 مليار ¤</pattern>
<pattern type="1000000000" count="other">0 مليار ¤</pattern>
<pattern type="10000000000" count="zero">00 مليار ¤</pattern>
<pattern type="10000000000" count="one">00 مليار ¤</pattern>
<pattern type="10000000000" count="two">00 مليار ¤</pattern>
<pattern type="10000000000" count="few">00 مليار ¤</pattern>
<pattern type="10000000000" count="many">00 مليار ¤</pattern>
<pattern type="10000000000" count="other">00 مليار ¤</pattern>
<pattern type="100000000000" count="zero">000 مليار ¤</pattern>
<pattern type="100000000000" count="one">000 مليار ¤</pattern>
<pattern type="100000000000" count="two">000 مليار ¤</pattern>
<pattern type="100000000000" count="few">000 مليار ¤</pattern>
<pattern type="100000000000" count="many">000 مليار ¤</pattern>
<pattern type="100000000000" count="other">000 مليار ¤</pattern>
<pattern type="1000000000000" count="zero">0 ترليون ¤</pattern>
<pattern type="1000000000000" count="one">0 ترليون ¤</pattern>
<pattern type="1000000000000" count="two">0 ترليون ¤</pattern>
<pattern type="1000000000000" count="few">0 ترليون ¤</pattern>
<pattern type="1000000000000" count="many">0 ترليون ¤</pattern>
<pattern type="1000000000000" count="other">0 ترليون ¤</pattern>
<pattern type="10000000000000" count="zero">00 ترليون ¤</pattern>
<pattern type="10000000000000" count="one">00 ترليون ¤</pattern>
<pattern type="10000000000000" count="two">00 ترليون ¤</pattern>
<pattern type="10000000000000" count="few">00 ترليون ¤</pattern>
<pattern type="10000000000000" count="many">00 ترليون ¤</pattern>
<pattern type="10000000000000" count="other">00 ترليون ¤</pattern>
<pattern type="100000000000000" count="zero">000 ترليون ¤</pattern>
<pattern type="100000000000000" count="one">000 ترليون ¤</pattern>
<pattern type="100000000000000" count="two">000 ترليون ¤</pattern>
<pattern type="100000000000000" count="few">000 ترليون ¤</pattern>
<pattern type="100000000000000" count="many">000 ترليون ¤</pattern>
<pattern type="100000000000000" count="other">000 ترليون ¤</pattern>
</currencyFormat>
</currencyFormatLength>
<unitPattern count="zero">{0} {1}</unitPattern>
@@ -8484,25 +8560,47 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<compoundUnit type="10p24">
<unitPrefixPattern>يوتا{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p1">
<unitPrefixPattern>كيبي{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p2">
<unitPrefixPattern>ميبي{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p3">
<unitPrefixPattern>غيبي{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p4">
<unitPrefixPattern>تيبي{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p5">
<unitPrefixPattern>بيبي{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p6">
<unitPrefixPattern>إكسبي{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p7">
<unitPrefixPattern>زيبي{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p8">
<unitPrefixPattern>يوبي{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="per">
<compoundUnitPattern>{0} لكل {1}</compoundUnitPattern>
</compoundUnit>
<compoundUnit type="power2">
<compoundUnitPattern1>{0} مربّع</compoundUnitPattern1>
<compoundUnitPattern1 count="zero">{0}²</compoundUnitPattern1>
<compoundUnitPattern1 count="zero">{0} مربّع</compoundUnitPattern1>
<compoundUnitPattern1 count="one">{0} مربّع</compoundUnitPattern1>
<compoundUnitPattern1 count="two">{0}²</compoundUnitPattern1>
<compoundUnitPattern1 count="few">{0}²</compoundUnitPattern1>
<compoundUnitPattern1 count="many">{0}²</compoundUnitPattern1>
<compoundUnitPattern1 count="two">{0} مربّعان</compoundUnitPattern1>
<compoundUnitPattern1 count="few">{0} مربّعة</compoundUnitPattern1>
<compoundUnitPattern1 count="many">{0} مربّعًا</compoundUnitPattern1>
<compoundUnitPattern1 count="other">{0} مربّع</compoundUnitPattern1>
</compoundUnit>
<compoundUnit type="power3">
<compoundUnitPattern1>{0} مكعّب</compoundUnitPattern1>
<compoundUnitPattern1 count="zero">{0}³</compoundUnitPattern1>
<compoundUnitPattern1 count="zero">{0} مكعّب</compoundUnitPattern1>
<compoundUnitPattern1 count="one">{0} مكعّب</compoundUnitPattern1>
<compoundUnitPattern1 count="two">{0}³</compoundUnitPattern1>
<compoundUnitPattern1 count="few">{0}³</compoundUnitPattern1>
<compoundUnitPattern1 count="many">{0}³</compoundUnitPattern1>
<compoundUnitPattern1 count="two">{0} مكعّبان</compoundUnitPattern1>
<compoundUnitPattern1 count="few">{0} مكعّبة</compoundUnitPattern1>
<compoundUnitPattern1 count="many">{0} مكعبًا</compoundUnitPattern1>
<compoundUnitPattern1 count="other">{0} مكعّب</compoundUnitPattern1>
</compoundUnit>
<unit type="acceleration-g-force">
@@ -9210,6 +9308,24 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="many">{0} نقطة لكل بوصة</unitPattern>
<unitPattern count="other">{0} نقطة لكل بوصة</unitPattern>
</unit>
<unit type="graphics-dot">
<displayName>بكسل</displayName>
<unitPattern count="zero">{0} بكسل</unitPattern>
<unitPattern count="one">{0} بكسل</unitPattern>
<unitPattern count="two">{0} بكسل</unitPattern>
<unitPattern count="few">{0} بكسل</unitPattern>
<unitPattern count="many">{0} بكسل</unitPattern>
<unitPattern count="other">{0} بكسل</unitPattern>
</unit>
<unit type="length-earth-radius">
<displayName>نصف قطر أرضي</displayName>
<unitPattern count="zero">{0} نصف قطر أرضي</unitPattern>
<unitPattern count="one">{0} نصف قطر أرضي</unitPattern>
<unitPattern count="two">{0} نصف قطر أرضي</unitPattern>
<unitPattern count="few">{0} نصف قطر أرضي</unitPattern>
<unitPattern count="many">{0} نصف قطر أرضي</unitPattern>
<unitPattern count="other">{0} نصف قطر أرضي</unitPattern>
</unit>
<unit type="length-kilometer">
<displayName>كيلومتر</displayName>
<unitPattern count="zero">{0} كيلومتر</unitPattern>
@@ -9350,6 +9466,24 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="many">{0} وحدة فلكية</unitPattern>
<unitPattern count="other">{0} وحدة فلكية</unitPattern>
</unit>
<unit type="length-furlong">
<displayName>فرلنغ</displayName>
<unitPattern count="zero">{0} فرلنغ</unitPattern>
<unitPattern count="one">{0} فرلنغ</unitPattern>
<unitPattern count="two">{0} فرلنغ</unitPattern>
<unitPattern count="few">{0} فرلنغ</unitPattern>
<unitPattern count="many">{0} فرلنغ</unitPattern>
<unitPattern count="other">{0} فرلنغ</unitPattern>
</unit>
<unit type="length-fathom">
<displayName>قامة</displayName>
<unitPattern count="zero">{0} قامة</unitPattern>
<unitPattern count="one">{0} قامة</unitPattern>
<unitPattern count="two">{0} قامة</unitPattern>
<unitPattern count="few">{0} قامة</unitPattern>
<unitPattern count="many">{0} قامة</unitPattern>
<unitPattern count="other">{0} قامة</unitPattern>
</unit>
<unit type="length-nautical-mile">
<displayName>ميل بحري</displayName>
<unitPattern count="zero">{0} ميل بحري</unitPattern>
@@ -9395,6 +9529,24 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="many">{0} لكس</unitPattern>
<unitPattern count="other">{0} لكس</unitPattern>
</unit>
<unit type="light-candela">
<displayName>شمعة</displayName>
<unitPattern count="zero">{0} شمعة</unitPattern>
<unitPattern count="one">{0} شمعة</unitPattern>
<unitPattern count="two">{0} شمعة</unitPattern>
<unitPattern count="few">{0} شمعة</unitPattern>
<unitPattern count="many">{0} شمعة</unitPattern>
<unitPattern count="other">{0} شمعة</unitPattern>
</unit>
<unit type="light-lumen">
<displayName>لومن</displayName>
<unitPattern count="zero">{0} لومن</unitPattern>
<unitPattern count="one">{0} لومن</unitPattern>
<unitPattern count="two">{0} لومن</unitPattern>
<unitPattern count="few">{0} لومن</unitPattern>
<unitPattern count="many">{0} لومن</unitPattern>
<unitPattern count="other">{0} لومن</unitPattern>
</unit>
<unit type="light-solar-luminosity">
<displayName>ضياء شمسي</displayName>
<unitPattern count="zero">{0} ضياء شمسي</unitPattern>
@@ -9460,12 +9612,21 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="many">{0} طنًا</unitPattern>
<unitPattern count="other">{0} طن</unitPattern>
</unit>
<unit type="mass-stone">
<displayName>ستون</displayName>
<unitPattern count="zero">{0} ستون</unitPattern>
<unitPattern count="one">{0} ستون</unitPattern>
<unitPattern count="two">{0} ستون</unitPattern>
<unitPattern count="few">{0} ستون</unitPattern>
<unitPattern count="many">{0} ستون</unitPattern>
<unitPattern count="other">{0} ستون</unitPattern>
</unit>
<unit type="mass-pound">
<displayName>رطل</displayName>
<unitPattern count="zero">{0} رطل</unitPattern>
<unitPattern count="one">{0} رطل</unitPattern>
<unitPattern count="two">رطلان</unitPattern>
<unitPattern count="few">{0} أرطل</unitPattern>
<unitPattern count="few">{0} رطل</unitPattern>
<unitPattern count="many">{0} رطلًا</unitPattern>
<unitPattern count="other">{0} رطل</unitPattern>
<perUnitPattern>{0}/رطل</perUnitPattern>
@@ -9525,6 +9686,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="many">{0} كتلة شمسية</unitPattern>
<unitPattern count="other">{0} كتلة شمسية</unitPattern>
</unit>
<unit type="mass-grain">
<displayName>قمحة</displayName>
<unitPattern count="zero">{0} قمحة</unitPattern>
<unitPattern count="one">{0} قمحة</unitPattern>
<unitPattern count="two">{0} قمحة</unitPattern>
<unitPattern count="few">{0} قمحة</unitPattern>
<unitPattern count="many">{0} قمحة</unitPattern>
<unitPattern count="other">{0} قمحة</unitPattern>
</unit>
<unit type="power-gigawatt">
<displayName>غيغا واط</displayName>
<unitPattern count="zero">{0} غيغا واط</unitPattern>
@@ -9906,6 +10076,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="many">{0} فدان قدم</unitPattern>
<unitPattern count="other">{0} فدان قدم</unitPattern>
</unit>
<unit type="volume-bushel">
<displayName>بوشل</displayName>
<unitPattern count="zero">{0} بوشل</unitPattern>
<unitPattern count="one">{0} بوشل</unitPattern>
<unitPattern count="two">{0} بوشل</unitPattern>
<unitPattern count="few">{0} بوشل</unitPattern>
<unitPattern count="many">{0} بوشل</unitPattern>
<unitPattern count="other">{0} بوشل</unitPattern>
</unit>
<unit type="volume-gallon">
<displayName>غالون</displayName>
<unitPattern count="zero">{0} غالون</unitPattern>
@@ -9998,6 +10177,69 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="many">{0} برميلًا</unitPattern>
<unitPattern count="other">{0} برميل</unitPattern>
</unit>
<unit type="volume-dessert-spoon">
<displayName>ملعقة حلو</displayName>
<unitPattern count="zero">{0} ملعقة حلو</unitPattern>
<unitPattern count="one">{0} ملعقة حلو</unitPattern>
<unitPattern count="two">{0} ملعقة حلو</unitPattern>
<unitPattern count="few">{0} ملعقة حلو</unitPattern>
<unitPattern count="many">{0} ملعقة حلو</unitPattern>
<unitPattern count="other">{0} ملعقة حلو</unitPattern>
</unit>
<unit type="volume-dessert-spoon-imperial">
<displayName>ملعقة حلو إمبراطوري</displayName>
<unitPattern count="zero">{0} ملعقة حلو إمبراطوري</unitPattern>
<unitPattern count="one">{0} ملعقة حلو إمبراطوري</unitPattern>
<unitPattern count="two">{0} ملعقة حلو إمبراطوري</unitPattern>
<unitPattern count="few">{0} ملعقة حلو إمبراطوري</unitPattern>
<unitPattern count="many">{0} ملعقة حلو إمبراطوري</unitPattern>
<unitPattern count="other">{0} ملعقة حلو إمبراطوري</unitPattern>
</unit>
<unit type="volume-drop">
<displayName>قطرة</displayName>
<unitPattern count="zero">{0} قطرة</unitPattern>
<unitPattern count="one">{0} قطرة</unitPattern>
<unitPattern count="two">قطرتان</unitPattern>
<unitPattern count="few">{0} قطرات</unitPattern>
<unitPattern count="many">{0} قطرة</unitPattern>
<unitPattern count="other">{0} قطرة</unitPattern>
</unit>
<unit type="volume-dram">
<displayName>درهم سائل</displayName>
<unitPattern count="zero">{0} درهم سائل</unitPattern>
<unitPattern count="one">{0} درهم</unitPattern>
<unitPattern count="two">{0} درهم سائل</unitPattern>
<unitPattern count="few">{0} درهم سائل</unitPattern>
<unitPattern count="many">{0} درهم سائل</unitPattern>
<unitPattern count="other">{0} درهم</unitPattern>
</unit>
<unit type="volume-jigger">
<displayName>قدح</displayName>
<unitPattern count="zero">{0} قدح</unitPattern>
<unitPattern count="one">{0} قدح</unitPattern>
<unitPattern count="two">{0} قدح</unitPattern>
<unitPattern count="few">{0} أقداح</unitPattern>
<unitPattern count="many">{0} قدح</unitPattern>
<unitPattern count="other">{0} قدح</unitPattern>
</unit>
<unit type="volume-pinch">
<displayName>رشّة</displayName>
<unitPattern count="zero">{0} رشّة</unitPattern>
<unitPattern count="one">{0} رشّة</unitPattern>
<unitPattern count="two">{0} رشّة</unitPattern>
<unitPattern count="few">{0} رشّات</unitPattern>
<unitPattern count="many">{0} رشّة</unitPattern>
<unitPattern count="other">{0} رشّة</unitPattern>
</unit>
<unit type="volume-quart-imperial">
<displayName>ربع غالون إمبراطوري</displayName>
<unitPattern count="zero">{0} ربع غالون إمبراطوري</unitPattern>
<unitPattern count="one">{0} ربع غالون إمبراطوري</unitPattern>
<unitPattern count="two">{0} ربع غالون إمبراطوري</unitPattern>
<unitPattern count="few">{0} ربع غالون إمبراطوري</unitPattern>
<unitPattern count="many">{0} ربع غالون إمبراطوري</unitPattern>
<unitPattern count="other">{0} ربع غالون إمبراطوري</unitPattern>
</unit>
<coordinateUnit>
<displayName>اتجاه أساسي</displayName>
<coordinateUnitPattern type="east">{0} شرقًا</coordinateUnitPattern>
@@ -10067,6 +10309,30 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<compoundUnit type="10p24">
<unitPrefixPattern>يو{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p1">
<unitPrefixPattern>كيبي{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p2">
<unitPrefixPattern>ميبي{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p3">
<unitPrefixPattern>غيبي{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p4">
<unitPrefixPattern>تيبي{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p5">
<unitPrefixPattern>بيبي{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p6">
<unitPrefixPattern>إكسبي{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p7">
<unitPrefixPattern>زيبي{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p8">
<unitPrefixPattern>يوبي{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="per">
<compoundUnitPattern>{0}/{1}</compoundUnitPattern>
</compoundUnit>
@@ -10761,10 +11027,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="other">{0} بكسل/بوصة</unitPattern>
</unit>
<unit type="graphics-dot-per-centimeter">
<displayName>نقطة لكل سنتيمتر</displayName>
<displayName>نقطة/سم</displayName>
<unitPattern count="zero">{0} نقطة/سم</unitPattern>
<unitPattern count="one">{0} نقطة/سم</unitPattern>
<unitPattern count="two">نقطتان/سم</unitPattern>
<unitPattern count="two">{0} نقطة/سم</unitPattern>
<unitPattern count="few">{0} نقاط/سم</unitPattern>
<unitPattern count="many">{0} نقطة/سم</unitPattern>
<unitPattern count="other">{0} نقطة/سم</unitPattern>
@@ -10773,11 +11039,29 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<displayName>نقطة لكل بوصة</displayName>
<unitPattern count="zero">{0} نقطة/بوصة</unitPattern>
<unitPattern count="one">{0} نقطة/بوصة</unitPattern>
<unitPattern count="two">نقطتان/بوصة</unitPattern>
<unitPattern count="two">{0} نقطة/بوصة</unitPattern>
<unitPattern count="few">{0} نقاط/بوصة</unitPattern>
<unitPattern count="many">{0} نقطة/بوصة</unitPattern>
<unitPattern count="other">{0} نقطة/بوصة</unitPattern>
</unit>
<unit type="graphics-dot">
<displayName>بكسل</displayName>
<unitPattern count="zero">{0} بكسل</unitPattern>
<unitPattern count="one">{0} بكسل</unitPattern>
<unitPattern count="two">{0} بكسل</unitPattern>
<unitPattern count="few">{0} بكسل</unitPattern>
<unitPattern count="many">{0} بكسل</unitPattern>
<unitPattern count="other">{0} بكسل</unitPattern>
</unit>
<unit type="length-earth-radius">
<displayName>نق أرضي</displayName>
<unitPattern count="zero">{0} نق أرضي</unitPattern>
<unitPattern count="one">{0} نق أرضي</unitPattern>
<unitPattern count="two">{0} نق أرضي</unitPattern>
<unitPattern count="few">{0} نق أرضي</unitPattern>
<unitPattern count="many">{0} نق أرضي</unitPattern>
<unitPattern count="other">{0} نق أرضي</unitPattern>
</unit>
<unit type="length-kilometer">
<displayName>كم</displayName>
<unitPattern count="zero">{0} كم</unitPattern>
@@ -10918,6 +11202,24 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="many">{0} و.ف.</unitPattern>
<unitPattern count="other">{0} و.ف.</unitPattern>
</unit>
<unit type="length-furlong">
<displayName>فرلنغ</displayName>
<unitPattern count="zero">{0} فرلنغ</unitPattern>
<unitPattern count="one">{0} فرلنغ</unitPattern>
<unitPattern count="two">{0} فرلنغ</unitPattern>
<unitPattern count="few">{0} فرلنغ</unitPattern>
<unitPattern count="many">{0} فرلنغ</unitPattern>
<unitPattern count="other">{0} فرلنغ</unitPattern>
</unit>
<unit type="length-fathom">
<displayName>قامة</displayName>
<unitPattern count="zero">{0} قامة</unitPattern>
<unitPattern count="one">{0} قامة</unitPattern>
<unitPattern count="two">{0} قامة</unitPattern>
<unitPattern count="few">{0} قامة</unitPattern>
<unitPattern count="many">{0} قامة</unitPattern>
<unitPattern count="other">{0} قامة</unitPattern>
</unit>
<unit type="length-nautical-mile">
<displayName>ميل بحري</displayName>
<unitPattern count="zero">{0} ميل بحري</unitPattern>
@@ -10963,6 +11265,24 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="many">{0} لكس</unitPattern>
<unitPattern count="other">{0} لكس</unitPattern>
</unit>
<unit type="light-candela">
<displayName>شمعة</displayName>
<unitPattern count="zero">{0} شمعة</unitPattern>
<unitPattern count="one">{0} شمعة</unitPattern>
<unitPattern count="two">{0} شمعة</unitPattern>
<unitPattern count="few">{0} شمعة</unitPattern>
<unitPattern count="many">{0} شمعة</unitPattern>
<unitPattern count="other">{0} شمعة</unitPattern>
</unit>
<unit type="light-lumen">
<displayName>لومن</displayName>
<unitPattern count="zero">{0} لومن</unitPattern>
<unitPattern count="one">{0} لومن</unitPattern>
<unitPattern count="two">{0} لومن</unitPattern>
<unitPattern count="few">{0} لومن</unitPattern>
<unitPattern count="many">{0} لومن</unitPattern>
<unitPattern count="other">{0} لومن</unitPattern>
</unit>
<unit type="light-solar-luminosity">
<displayName>ضياء شمسي</displayName>
<unitPattern count="zero">{0} ضياء شمسي</unitPattern>
@@ -11028,6 +11348,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="many">{0} طن</unitPattern>
<unitPattern count="other">{0} طن</unitPattern>
</unit>
<unit type="mass-stone">
<displayName>ستون</displayName>
<unitPattern count="zero">{0} ستون</unitPattern>
<unitPattern count="one">{0} ستون</unitPattern>
<unitPattern count="two">{0} ستون</unitPattern>
<unitPattern count="few">{0} ستون</unitPattern>
<unitPattern count="many">{0} ستون</unitPattern>
<unitPattern count="other">{0} ستون</unitPattern>
</unit>
<unit type="mass-pound">
<displayName>رطل</displayName>
<unitPattern count="zero">{0} رطل</unitPattern>
@@ -11093,6 +11422,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="many">{0} كتلة شمسية</unitPattern>
<unitPattern count="other">{0} كتلة شمسية</unitPattern>
</unit>
<unit type="mass-grain">
<displayName>قمحة</displayName>
<unitPattern count="zero">{0} قمحة</unitPattern>
<unitPattern count="one">{0} قمحة</unitPattern>
<unitPattern count="two">{0} قمحة</unitPattern>
<unitPattern count="few">{0} قمحة</unitPattern>
<unitPattern count="many">{0} قمحة</unitPattern>
<unitPattern count="other">{0} قمحة</unitPattern>
</unit>
<unit type="power-gigawatt">
<displayName>غ واط</displayName>
<unitPattern count="zero">{0} غ واط</unitPattern>
@@ -11474,6 +11812,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="many">{0} فدان قدم</unitPattern>
<unitPattern count="other">{0} فدان قدم</unitPattern>
</unit>
<unit type="volume-bushel">
<displayName>بوشل</displayName>
<unitPattern count="zero">{0} بوشل</unitPattern>
<unitPattern count="one">{0} بوشل</unitPattern>
<unitPattern count="two">{0} بوشل</unitPattern>
<unitPattern count="few">{0} بوشل</unitPattern>
<unitPattern count="many">{0} بوشل</unitPattern>
<unitPattern count="other">{0} بوشل</unitPattern>
</unit>
<unit type="volume-gallon">
<displayName>غالون</displayName>
<unitPattern count="zero">{0} غالون</unitPattern>
@@ -11560,6 +11907,69 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="many">{0} برميلًا</unitPattern>
<unitPattern count="other">{0} برميل</unitPattern>
</unit>
<unit type="volume-dessert-spoon">
<displayName>ملعقة ح.</displayName>
<unitPattern count="zero">{0} ملعقة ح.</unitPattern>
<unitPattern count="one">{0} ملعقة ح.</unitPattern>
<unitPattern count="two">{0} ملعقة ح.</unitPattern>
<unitPattern count="few">{0} ملعقة ح.</unitPattern>
<unitPattern count="many">{0} ملعقة ح.</unitPattern>
<unitPattern count="other">{0} ملعقة ح.</unitPattern>
</unit>
<unit type="volume-dessert-spoon-imperial">
<displayName>ملعقة حلو إمبراطوري</displayName>
<unitPattern count="zero">{0} ملعقة ح. إمبراطوري</unitPattern>
<unitPattern count="one">{0} ملعقة ح. إمبراطوري</unitPattern>
<unitPattern count="two">{0} ملعقة ح. إمبراطوري</unitPattern>
<unitPattern count="few">{0} ملعقة ح. إمبراطوري</unitPattern>
<unitPattern count="many">{0} ملعقة ح. إمبراطوري</unitPattern>
<unitPattern count="other">{0} ملعقة ح. إمبراطوري</unitPattern>
</unit>
<unit type="volume-drop">
<displayName>قطرة</displayName>
<unitPattern count="zero">{0} قطرة</unitPattern>
<unitPattern count="one">{0} قطرة</unitPattern>
<unitPattern count="two">{0} قطرة</unitPattern>
<unitPattern count="few">{0} قطرة</unitPattern>
<unitPattern count="many">{0} قطرة</unitPattern>
<unitPattern count="other">{0} قطرة</unitPattern>
</unit>
<unit type="volume-dram">
<displayName>درهم سائل</displayName>
<unitPattern count="zero">{0} درهم سائل</unitPattern>
<unitPattern count="one">{0} درهم سائل</unitPattern>
<unitPattern count="two">{0} درهم سائل</unitPattern>
<unitPattern count="few">{0} درهم سائل</unitPattern>
<unitPattern count="many">{0} درهم سائل</unitPattern>
<unitPattern count="other">{0} درهم سائل</unitPattern>
</unit>
<unit type="volume-jigger">
<displayName>قدح</displayName>
<unitPattern count="zero">{0} قدح</unitPattern>
<unitPattern count="one">{0} قدح</unitPattern>
<unitPattern count="two">{0} قدح</unitPattern>
<unitPattern count="few">{0} أقداح</unitPattern>
<unitPattern count="many">{0} قدح</unitPattern>
<unitPattern count="other">{0} قدح</unitPattern>
</unit>
<unit type="volume-pinch">
<displayName>رشّة</displayName>
<unitPattern count="zero">{0} رشّة</unitPattern>
<unitPattern count="one">{0} رشّة</unitPattern>
<unitPattern count="two">{0} رشّة</unitPattern>
<unitPattern count="few">{0} رشّة</unitPattern>
<unitPattern count="many">{0} رشّة</unitPattern>
<unitPattern count="other">{0} رشّة</unitPattern>
</unit>
<unit type="volume-quart-imperial">
<displayName>ربع غالون إمبراطوري</displayName>
<unitPattern count="zero">{0} ربع غالون إمبراطوري</unitPattern>
<unitPattern count="one">{0} ربع غالون إمبراطوري</unitPattern>
<unitPattern count="two">{0} ربع غالون إمبراطوري</unitPattern>
<unitPattern count="few">{0} ربع غالون إمبراطوري</unitPattern>
<unitPattern count="many">{0} ربع غالون إمبراطوري</unitPattern>
<unitPattern count="other">{0} ربع غالون إمبراطوري</unitPattern>
</unit>
<coordinateUnit>
<displayName>اتجاه</displayName>
<coordinateUnitPattern type="east">{0} شرق</coordinateUnitPattern>
@@ -11629,6 +12039,30 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<compoundUnit type="10p24">
<unitPrefixPattern>يو{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p1">
<unitPrefixPattern>كيبي{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p2">
<unitPrefixPattern>ميبي{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p3">
<unitPrefixPattern>غيبي{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p4">
<unitPrefixPattern>تيبي{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p5">
<unitPrefixPattern>بيبي{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p6">
<unitPrefixPattern>إكسبي{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p7">
<unitPrefixPattern>زيبي{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p8">
<unitPrefixPattern>يوبي{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="per">
<compoundUnitPattern>{0}/{1}</compoundUnitPattern>
</compoundUnit>
@@ -11745,8 +12179,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="zero">{0} شهر</unitPattern>
<unitPattern count="one">شهر</unitPattern>
<unitPattern count="two">شهران</unitPattern>
<unitPattern count="few">{0} شهر</unitPattern>
<unitPattern count="many">{0} شهر</unitPattern>
<unitPattern count="few">{0} أشهر</unitPattern>
<unitPattern count="many">{0} شهرًا</unitPattern>
<unitPattern count="other">{0} شهر</unitPattern>
<perUnitPattern draft="contributed">{0}/ش</perUnitPattern>
</unit>
@@ -12125,6 +12559,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<characterLabelPattern type="strokes" count="few">{0} ضغطات</characterLabelPattern>
<characterLabelPattern type="strokes" count="many">{0} ضغطة</characterLabelPattern>
<characterLabelPattern type="strokes" count="other">{0} ضغطة</characterLabelPattern>
<characterLabelPattern type="subscript">نظام الكتابة تحت السطر {0}</characterLabelPattern>
<characterLabelPattern type="superscript">نظام الكتابة فوق السطر {0}</characterLabelPattern>
<characterLabel type="activities">أنشطة</characterLabel>
<characterLabel type="african_scripts">أنظمة كتابة إفريقية</characterLabel>
<characterLabel type="american_scripts">أنظمة كتابة أمريكية</characterLabel>

View File

@@ -43,7 +43,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<dayPeriod type="afternoon1">ظهرًا</dayPeriod>
<dayPeriod type="afternoon2">بعد الظهر</dayPeriod>
<dayPeriod type="evening1">مساءً</dayPeriod>
<dayPeriod type="night1">منتصف الليل</dayPeriod>
<dayPeriod type="night1">في المساء</dayPeriod>
<dayPeriod type="night2">ل</dayPeriod>
</dayPeriodWidth>
</dayPeriodContext>

View File

@@ -71,7 +71,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<dayPeriod type="afternoon1">ظهرًا</dayPeriod>
<dayPeriod type="afternoon2">بعد الظهر</dayPeriod>
<dayPeriod type="evening1">مساءً</dayPeriod>
<dayPeriod type="night1">منتصف الليل</dayPeriod>
<dayPeriod type="night1">في المساء</dayPeriod>
<dayPeriod type="night2">ل</dayPeriod>
</dayPeriodWidth>
</dayPeriodContext>

View File

@@ -3206,9 +3206,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<zone type="Europe/Kaliningrad">
<exemplarCity>কালিনিনগ্ৰাড</exemplarCity>
</zone>
<zone type="Europe/Simferopol">
<exemplarCity>ছিম্ফেৰোপোল</exemplarCity>
</zone>
<zone type="Europe/Moscow">
<exemplarCity>মস্কো</exemplarCity>
</zone>
@@ -3404,6 +3401,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<zone type="Europe/Kiev">
<exemplarCity>কিভ</exemplarCity>
</zone>
<zone type="Europe/Simferopol">
<exemplarCity>ছিম্ফেৰোপোল</exemplarCity>
</zone>
<zone type="Europe/Zaporozhye">
<exemplarCity>জাপোৰোজাই</exemplarCity>
</zone>
@@ -4178,9 +4178,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
</metazone>
<metazone type="Norfolk">
<long>
<generic draft="contributed">ন’ৰফ’ক দ্বীপৰ সময়</generic>
<standard draft="contributed">ন’ৰফ’ক দ্বীপৰ মান সময়</standard>
<daylight draft="contributed">ন’ৰফ’ক দ্বীপৰ সময় গ্ৰীষ্মকালীন সময়</daylight>
<generic>ন’ৰফ’ক দ্বীপৰ সময়</generic>
<standard>ন’ৰফ’ক দ্বীপৰ মান্য সময়</standard>
<daylight>ন’ৰফ’ক দ্বীপৰ গ্ৰীষ্মকালীন সময়</daylight>
</long>
</metazone>
<metazone type="Noronha">
@@ -5681,7 +5681,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<minimalPairs>
<pluralMinimalPairs count="one">আপোনালৈ {0} টা বাৰ্তা আহিছে;আপুনিসেইটোপঢ়িব বিচাৰেনে?</pluralMinimalPairs>
<pluralMinimalPairs count="other">{0} দিন</pluralMinimalPairs>
<ordinalMinimalPairs ordinal="other" draft="contributed">সোঁফালে {0}ৰ্থ পাক লওক৷</ordinalMinimalPairs>
<ordinalMinimalPairs ordinal="other">সোঁফালে {0}ৰ্থ পাক লওক৷</ordinalMinimalPairs>
</minimalPairs>
</numbers>
<units>
@@ -5746,6 +5746,30 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<compoundUnit type="10p24">
<unitPrefixPattern>য়োটা{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p1">
<unitPrefixPattern>কিবি{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p2">
<unitPrefixPattern>মেবি{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p3">
<unitPrefixPattern>গিবি{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p4">
<unitPrefixPattern>টেবি{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p5">
<unitPrefixPattern>পেবি{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p6">
<unitPrefixPattern>এক্সবি{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p7">
<unitPrefixPattern>জেবি{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p8">
<unitPrefixPattern>য়োবে{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="per">
<compoundUnitPattern>প্ৰতি {1}ত {0}</compoundUnitPattern>
</compoundUnit>
@@ -6126,6 +6150,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="length-earth-radius">
<displayName>পৃথিৱীৰ ব্যাসাৰ্ধ</displayName>
<unitPattern count="one">{0} পৃথিৱীৰ ব্যাসাৰ্ধ</unitPattern>
<unitPattern count="other">{0} পৃথিৱীৰ ব্যাসাৰ্ধ</unitPattern>
</unit>
<unit type="length-kilometer">
<displayName>কিলোমিটাৰ</displayName>
<unitPattern count="one">{0} কিলোমিটাৰ</unitPattern>
@@ -6206,6 +6235,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} জ্যোতিৰ্বিজ্ঞান একক</unitPattern>
<unitPattern count="other">{0} জ্যোতিৰ্বিজ্ঞান একক</unitPattern>
</unit>
<unit type="length-furlong">
<displayName>ফাৰ্লং</displayName>
<unitPattern count="one">{0} ফাৰ্লং</unitPattern>
<unitPattern count="other">{0} ফাৰ্লং</unitPattern>
</unit>
<unit type="length-fathom">
<displayName>ফাথম</displayName>
<unitPattern count="one">{0} ফাথম</unitPattern>
<unitPattern count="other">{0} ফাথম</unitPattern>
</unit>
<unit type="length-nautical-mile">
<displayName>ন’টিকেল মাইল</displayName>
<unitPattern count="one">{0} ন’টিকেল মাইল</unitPattern>
@@ -6231,6 +6270,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} লাক্স</unitPattern>
<unitPattern count="other">{0} লাক্স</unitPattern>
</unit>
<unit type="light-candela">
<displayName>কেণ্ডেলা</displayName>
<unitPattern count="one">{0} কেণ্ডেলা</unitPattern>
<unitPattern count="other">{0} কেণ্ডেলা</unitPattern>
</unit>
<unit type="light-lumen">
<displayName>লুমেন</displayName>
<unitPattern count="one">{0} লুমেন</unitPattern>
<unitPattern count="other">{0} লুমেন</unitPattern>
</unit>
<unit type="light-solar-luminosity">
<displayName>ছ’লাৰ লুমিন’ছিটী</displayName>
<unitPattern count="one">{0} ছ’লাৰ লুমিন’ছিটী</unitPattern>
@@ -6268,6 +6317,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-stone">
<displayName>ষ্ট’ন</displayName>
<unitPattern count="one">{0} ষ্ট'ন</unitPattern>
<unitPattern count="other">{0} ষ্ট'ন</unitPattern>
</unit>
<unit type="mass-pound">
<displayName>পাউণ্ড</displayName>
<unitPattern count="one">{0} পাউণ্ড</unitPattern>
@@ -6305,6 +6359,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-grain">
<displayName>গ্ৰেইন</displayName>
<unitPattern count="one">{0} গ্ৰেইন</unitPattern>
<unitPattern count="other">{0} গ্ৰেইন</unitPattern>
</unit>
<unit type="power-gigawatt">
<displayName>গিগাৱাট</displayName>
<unitPattern count="one">{0} গিগাৱাট</unitPattern>
@@ -6341,9 +6400,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="other">{0} মিলিমিটাৰ মাৰ্কিউৰী</unitPattern>
</unit>
<unit type="pressure-pound-force-per-square-inch">
<displayName>প্ৰতি বৰ্গ ইঞ্চি পাউণ্ড</displayName>
<unitPattern count="one">{0} প্ৰতি বৰ্গ ইঞ্চি পাউণ্ড</unitPattern>
<unitPattern count="other">{0} প্ৰতি বৰ্গ ইঞ্চি পাউণ্ড</unitPattern>
<displayName>প্ৰতি বৰ্গ ইঞ্চি পাউণ্ড</displayName>
<unitPattern count="one">{0} প্ৰতি বৰ্গ ইঞ্চি পাউণ্ড</unitPattern>
<unitPattern count="other">{0} প্ৰতি বৰ্গ ইঞ্চি পাউণ্ড</unitPattern>
</unit>
<unit type="pressure-inch-ofhg">
<displayName>ইঞ্চি মাৰ্কিউৰী</displayName>
@@ -6508,6 +6567,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="volume-bushel">
<displayName>বুশ্বেল</displayName>
<unitPattern count="one">{0} বুশ্লেল</unitPattern>
<unitPattern count="other">{0} বুশ্বেল</unitPattern>
</unit>
<unit type="volume-gallon">
<displayName>গেলন</displayName>
<unitPattern count="one">{0} গেলন</unitPattern>
@@ -6560,6 +6624,41 @@ 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-dessert-spoon">
<displayName>ডেজাৰ্ট চামুচ</displayName>
<unitPattern count="one">{0} ডেজাৰ্ট চামুচ</unitPattern>
<unitPattern count="other">{0} ডেজাৰ্ট চামুচ</unitPattern>
</unit>
<unit type="volume-dessert-spoon-imperial">
<displayName>ইম্পেৰিয়েল ডেজাৰ্ট চামুচ</displayName>
<unitPattern count="one">{0} ইম্পেৰিয়েল ডেজাৰ্ট চামুচ</unitPattern>
<unitPattern count="other">{0} ইম্পেৰিয়েল ডেজাৰ্ট চামুচ</unitPattern>
</unit>
<unit type="volume-drop">
<displayName>ড্ৰপ</displayName>
<unitPattern count="one">{0} ড্ৰপ</unitPattern>
<unitPattern count="other">{0} ড্ৰপ</unitPattern>
</unit>
<unit type="volume-dram">
<displayName>ড্ৰাম</displayName>
<unitPattern count="one">{0} ড্ৰাম</unitPattern>
<unitPattern count="other">{0} ড্ৰাম</unitPattern>
</unit>
<unit type="volume-jigger">
<displayName>জিগাৰ</displayName>
<unitPattern count="one">{0} জিগাৰ</unitPattern>
<unitPattern count="other">{0} জিগাৰ</unitPattern>
</unit>
<unit type="volume-pinch">
<displayName>পিঞ্চ</displayName>
<unitPattern count="one">{0} পিঞ্চ</unitPattern>
<unitPattern count="other">{0} পিঞ্চ</unitPattern>
</unit>
<unit type="volume-quart-imperial">
<displayName>ইম্পেৰিয়েল কুৱাৰ্ট</displayName>
<unitPattern count="one">{0} ইম্পেৰিয়েল কুৱাৰ্ট</unitPattern>
<unitPattern count="other">{0} ইম্পেৰিয়েল কুৱাৰ্ট</unitPattern>
</unit>
<coordinateUnit>
<displayName>প্ৰধান দিক্-নিৰ্দেশনা</displayName>
<coordinateUnitPattern type="east">{0} পূব</coordinateUnitPattern>
@@ -6626,6 +6725,30 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<compoundUnit type="10p24">
<unitPrefixPattern>য়ো.{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p1">
<unitPrefixPattern>কি{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p2">
<unitPrefixPattern>মি{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p3">
<unitPrefixPattern>গিঃ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p4">
<unitPrefixPattern>টেঃ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p5">
<unitPrefixPattern>পেঃ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p6">
<unitPrefixPattern>এক্স{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p7">
<unitPrefixPattern>জেঃ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p8">
<unitPrefixPattern>য়োঃ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="per">
<compoundUnitPattern>{0}/{1}</compoundUnitPattern>
</compoundUnit>
@@ -7076,6 +7199,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} জ্যোঃ এঃ</unitPattern>
<unitPattern count="other">{0} জ্যোঃ এঃ</unitPattern>
</unit>
<unit type="length-furlong">
<displayName>ফাৰ্লং</displayName>
<unitPattern count="one">{0} ফাৰ্লং</unitPattern>
<unitPattern count="other">{0} ফাৰ্লং</unitPattern>
</unit>
<unit type="length-fathom">
<displayName>ফাথম</displayName>
<unitPattern count="one">{0} ফাথম</unitPattern>
<unitPattern count="other">{0} ফাথম</unitPattern>
</unit>
<unit type="length-nautical-mile">
<displayName>ন’টিঃ মাঃ</displayName>
<unitPattern count="one">{0} ন’টিঃ মাঃ</unitPattern>
@@ -7138,6 +7271,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-stone">
<displayName>ষ্ট’ন</displayName>
<unitPattern count="one">{0} ষ্ট'ন</unitPattern>
<unitPattern count="other">{0} ষ্ট'ন</unitPattern>
</unit>
<unit type="mass-pound">
<displayName>পাউণ্ড</displayName>
<unitPattern count="one">{0} পাউণ্ড</unitPattern>
@@ -7175,6 +7313,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} M☉</unitPattern>
<unitPattern count="other">{0} M☉</unitPattern>
</unit>
<unit type="mass-grain">
<displayName>গ্ৰেইন</displayName>
<unitPattern count="one">{0} গ্ৰেইন</unitPattern>
<unitPattern count="other">{0} গ্ৰেইন</unitPattern>
</unit>
<unit type="power-gigawatt">
<displayName>গিঃ ৱাঃ</displayName>
<unitPattern count="one">{0} গিঃ ৱাঃ</unitPattern>
@@ -7378,6 +7521,9 @@ 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-bushel">
<displayName>বুশ্বেল</displayName>
</unit>
<unit type="volume-gallon">
<displayName>গেলন</displayName>
<unitPattern count="one">{0} গেলন</unitPattern>
@@ -7430,6 +7576,26 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} bbl</unitPattern>
<unitPattern count="other">{0} bbl</unitPattern>
</unit>
<unit type="volume-drop">
<displayName>ড্ৰপ</displayName>
<unitPattern count="one">{0} ড্ৰপ</unitPattern>
<unitPattern count="other">{0} ড্ৰপ</unitPattern>
</unit>
<unit type="volume-dram">
<displayName>ড্ৰাম তৰল পদাৰ্থ</displayName>
<unitPattern count="one">{0} ড্ৰাম তৰল পদাৰ্থ</unitPattern>
<unitPattern count="other">{0} ড্ৰাম তৰল পদাৰ্থ</unitPattern>
</unit>
<unit type="volume-jigger">
<displayName>জিগাৰ</displayName>
<unitPattern count="one">{0} জিগাৰ</unitPattern>
<unitPattern count="other">{0} জিগাৰ</unitPattern>
</unit>
<unit type="volume-pinch">
<displayName>পিঞ্চ</displayName>
<unitPattern count="one">{0} পিঞ্চ</unitPattern>
<unitPattern count="other">{0} পিঞ্চ</unitPattern>
</unit>
<coordinateUnit>
<displayName>দিক্-নিৰ্দেশনা</displayName>
<coordinateUnitPattern type="east">{0} পূঃ</coordinateUnitPattern>
@@ -7499,6 +7665,30 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<compoundUnit type="10p24">
<unitPrefixPattern>য়োটা{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p1">
<unitPrefixPattern>কি{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p2">
<unitPrefixPattern>মি{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p3">
<unitPrefixPattern>গি{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p4">
<unitPrefixPattern>টে{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p5">
<unitPrefixPattern>পে{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p6">
<unitPrefixPattern>এক্স{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p7">
<unitPrefixPattern>জে{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p8">
<unitPrefixPattern>য়ো{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="per">
<compoundUnitPattern>{0}/{1}</compoundUnitPattern>
</compoundUnit>
@@ -7654,8 +7844,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
</listPatterns>
<posix>
<messages>
<yesstr>yes:y</yesstr>
<nostr>no:n</nostr>
<yesstr>হয়</yesstr>
<nostr>নহয়</nostr>
</messages>
</posix>
<characterLabels>
@@ -7670,6 +7860,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<characterLabelPattern type="scripts">লিপি — {0}</characterLabelPattern>
<characterLabelPattern type="strokes" count="one">{0} ষ্ট্ৰ’ক</characterLabelPattern>
<characterLabelPattern type="strokes" count="other">{0} ষ্ট্ৰ’ক</characterLabelPattern>
<characterLabelPattern type="subscript">ছাবস্ক্ৰিপ্ট {0}</characterLabelPattern>
<characterLabelPattern type="superscript">ছুপাৰস্ক্ৰিপ্ট {0}</characterLabelPattern>
<characterLabel type="activities">ক্ৰিয়া-কলাপ</characterLabel>
<characterLabel type="african_scripts">আফ্ৰিকান স্ক্ৰিপ্ট</characterLabel>
<characterLabel type="american_scripts">আমেৰিকান স্ক্ৰিপ্ট</characterLabel>

View File

@@ -5672,9 +5672,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<zone type="Europe/Kaliningrad">
<exemplarCity>Kaliningráu</exemplarCity>
</zone>
<zone type="Europe/Simferopol">
<exemplarCity>Simferopol</exemplarCity>
</zone>
<zone type="Europe/Moscow">
<exemplarCity>Moscú</exemplarCity>
</zone>
@@ -5867,6 +5864,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<zone type="Europe/Kiev">
<exemplarCity>Kiev</exemplarCity>
</zone>
<zone type="Europe/Simferopol">
<exemplarCity>Simferopol</exemplarCity>
</zone>
<zone type="Europe/Zaporozhye">
<exemplarCity>Zaporozhye</exemplarCity>
</zone>

View File

@@ -97,6 +97,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<language type="chr">çeroki</language>
<language type="chy">çeyen</language>
<language type="ckb">Mərkəzi kürdcə</language>
<language type="ckb" alt="menu">Kürdcə, mərkəzi</language>
<language type="ckb" alt="variant">Kürdcə, sorani</language>
<language type="co">korsika</language>
<language type="cop">kopt</language>
<language type="cr">kri</language>
@@ -1402,16 +1404,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
</monthWidth>
<monthWidth type="wide">
<month type="1">yanvar</month>
<month type="2">Fevral</month>
<month type="2">fevral</month>
<month type="3">mart</month>
<month type="4">Aprel</month>
<month type="5">May</month>
<month type="6">İyun</month>
<month type="7">İyul</month>
<month type="8">Avqust</month>
<month type="9">Sentyabr</month>
<month type="10">Oktyabr</month>
<month type="11">Noyabr</month>
<month type="4">aprel</month>
<month type="5">may</month>
<month type="6">iyun</month>
<month type="7">iyul</month>
<month type="8">avqust</month>
<month type="9">sentyabr</month>
<month type="10">oktyabr</month>
<month type="11">noyabr</month>
<month type="12">dekabr</month>
</monthWidth>
</monthContext>
@@ -3523,9 +3525,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<zone type="Europe/Kaliningrad">
<exemplarCity>Kalininqrad</exemplarCity>
</zone>
<zone type="Europe/Simferopol">
<exemplarCity>Simferopol</exemplarCity>
</zone>
<zone type="Europe/Moscow">
<exemplarCity>Moskva</exemplarCity>
</zone>
@@ -3721,6 +3720,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<zone type="Europe/Kiev">
<exemplarCity>Kiyev</exemplarCity>
</zone>
<zone type="Europe/Simferopol">
<exemplarCity>Simferopol</exemplarCity>
</zone>
<zone type="Europe/Zaporozhye">
<exemplarCity>Zaporojye</exemplarCity>
</zone>
@@ -4492,9 +4494,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
</metazone>
<metazone type="Norfolk">
<long>
<generic draft="contributed">Norfolk Adası Vaxtı</generic>
<standard draft="contributed">Norfolk Adası Standart Vaxtı</standard>
<daylight draft="contributed">Norfolk Adası Yay Vaxtı</daylight>
<generic>Norfolk Adası Vaxtı</generic>
<standard>Norfolk Adası Standart Vaxtı</standard>
<daylight>Norfolk Adası Yay Vaxtı</daylight>
</long>
</metazone>
<metazone type="Noronha">
@@ -4774,6 +4776,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<percentSign>%</percentSign>
<plusSign draft="contributed">+</plusSign>
<minusSign draft="contributed">-</minusSign>
<approximatelySign>~</approximatelySign>
<exponential>E</exponential>
<superscriptingExponent>×</superscriptingExponent>
<perMille></perMille>
@@ -6579,6 +6582,30 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<compoundUnit type="10p24">
<unitPrefixPattern>yotta{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p1">
<unitPrefixPattern>kibi{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p2">
<unitPrefixPattern>mebi{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p3">
<unitPrefixPattern>gibi{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p4">
<unitPrefixPattern>tebi{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p5">
<unitPrefixPattern>pebi{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p6">
<unitPrefixPattern>eksbi{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p7">
<unitPrefixPattern>zebi{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p8">
<unitPrefixPattern>yobe{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="per">
<compoundUnitPattern>{0}/{1}</compoundUnitPattern>
</compoundUnit>
@@ -6598,9 +6625,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="other">{0} g qüvvəsi</unitPattern>
</unit>
<unit type="acceleration-meter-per-square-second">
<displayName>metr saniyə kvadratı</displayName>
<unitPattern count="one">{0} metr saniyə kvadratı</unitPattern>
<unitPattern count="other">{0} metr saniyə kvadratı</unitPattern>
<displayName>metr kvadrat saniyə</displayName>
<unitPattern count="one">{0} metr kvadrat saniyə</unitPattern>
<unitPattern count="other">{0} metr kvadrat saniyə</unitPattern>
</unit>
<unit type="angle-revolution">
<displayName>dövrə</displayName>
@@ -6699,8 +6726,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
</unit>
<unit type="concentr-permillion">
<displayName>milyonda hissəcik</displayName>
<unitPattern count="one">milyonda {0} hissəcik</unitPattern>
<unitPattern count="other">milyonda {0} hissəcik</unitPattern>
<unitPattern count="one">{0} milyonda hissəcik</unitPattern>
<unitPattern count="other">{0} milyonda hissəcik</unitPattern>
</unit>
<unit type="concentr-percent">
<displayName>faiz</displayName>
@@ -6987,6 +7014,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} nöqtə / düym</unitPattern>
<unitPattern count="other">{0} nöqtə / düym</unitPattern>
</unit>
<unit type="graphics-dot">
<displayName>dot nöqtə</displayName>
</unit>
<unit type="length-earth-radius">
<displayName>yer radiusu</displayName>
<unitPattern count="one">{0} yer radiusu</unitPattern>
<unitPattern count="other">{0} yer radiusu</unitPattern>
</unit>
<unit type="length-kilometer">
<displayName>kilometr</displayName>
<unitPattern count="one">{0} kilometr</unitPattern>
@@ -7067,6 +7102,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} astronomik vahid</unitPattern>
<unitPattern count="other">{0} astronomik vahid</unitPattern>
</unit>
<unit type="length-furlong">
<displayName>farlonq</displayName>
<unitPattern count="one">{0} farlonq</unitPattern>
<unitPattern count="other">{0} farlonq</unitPattern>
</unit>
<unit type="length-fathom">
<displayName>fatom</displayName>
<unitPattern count="one">{0} fatom</unitPattern>
<unitPattern count="other">{0} fatom</unitPattern>
</unit>
<unit type="length-nautical-mile">
<displayName>nmi</displayName>
<unitPattern count="one">{0} nmi</unitPattern>
@@ -7092,6 +7137,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} lüks</unitPattern>
<unitPattern count="other">{0} lüks</unitPattern>
</unit>
<unit type="light-candela">
<displayName>kandela</displayName>
<unitPattern count="one">{0} kandela</unitPattern>
<unitPattern count="other">{0} kandela</unitPattern>
</unit>
<unit type="light-lumen">
<displayName>lümen</displayName>
<unitPattern count="one">{0} lümen</unitPattern>
<unitPattern count="other">{0} lümen</unitPattern>
</unit>
<unit type="light-solar-luminosity">
<displayName>gün işığı</displayName>
<unitPattern count="one">{0} gün işığı</unitPattern>
@@ -7171,6 +7226,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} günəş kütləsi</unitPattern>
<unitPattern count="other">{0} günəş kütləsi</unitPattern>
</unit>
<unit type="mass-grain">
<displayName>qranul</displayName>
<unitPattern count="one">{0} qranul</unitPattern>
<unitPattern count="other">{0} qranul</unitPattern>
</unit>
<unit type="power-gigawatt">
<displayName>giqavatt</displayName>
<unitPattern count="one">{0} giqavatt</unitPattern>
@@ -7379,6 +7439,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} akr-fut</unitPattern>
<unitPattern count="other">{0} akr-fut</unitPattern>
</unit>
<unit type="volume-bushel">
<displayName>buşel</displayName>
<unitPattern count="one">{0} buşel</unitPattern>
<unitPattern count="other">{0} buşel</unitPattern>
</unit>
<unit type="volume-gallon">
<displayName>qallon</displayName>
<unitPattern count="one">{0} qallon</unitPattern>
@@ -7429,6 +7494,36 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unit type="volume-barrel">
<displayName>barrel</displayName>
</unit>
<unit type="volume-dessert-spoon">
<displayName>dessert qaşığı</displayName>
<unitPattern count="one">{0} dessert qaşığı</unitPattern>
<unitPattern count="other">{0} dessert qaşığı</unitPattern>
</unit>
<unit type="volume-dessert-spoon-imperial">
<displayName>İmp. dessert qaşığı</displayName>
<unitPattern count="one">{0} İmp. dessert qaşığı</unitPattern>
<unitPattern count="other">{0} İmp. dessert qaşığı</unitPattern>
</unit>
<unit type="volume-drop">
<displayName>damcı</displayName>
<unitPattern count="one">{0} damcı</unitPattern>
<unitPattern count="other">{0} damcı</unitPattern>
</unit>
<unit type="volume-dram">
<displayName>dram</displayName>
<unitPattern count="one">{0} dram</unitPattern>
<unitPattern count="other">{0} dram</unitPattern>
</unit>
<unit type="volume-pinch">
<displayName>çimdik</displayName>
<unitPattern count="one">{0} çimdik</unitPattern>
<unitPattern count="other">{0} çimdik</unitPattern>
</unit>
<unit type="volume-quart-imperial">
<displayName>İmp. kvarta</displayName>
<unitPattern count="one">{0} İmp. kvarta</unitPattern>
<unitPattern count="other">{0} İmp. kvarta</unitPattern>
</unit>
<coordinateUnit>
<displayName>kardinal istiqamət</displayName>
<coordinateUnitPattern type="east">{0}E</coordinateUnitPattern>
@@ -7447,6 +7542,30 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<compoundUnit type="10p-3">
<unitPrefixPattern>m{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p1">
<unitPrefixPattern>ki{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p2">
<unitPrefixPattern>mi{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p3">
<unitPrefixPattern>gi{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p4">
<unitPrefixPattern>ti{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p5">
<unitPrefixPattern>pi{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p6">
<unitPrefixPattern>ei{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p7">
<unitPrefixPattern>zi{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p8">
<unitPrefixPattern>yi{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="per">
<compoundUnitPattern>{0}/{1}</compoundUnitPattern>
</compoundUnit>
@@ -7459,7 +7578,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="other">{0} G</unitPattern>
</unit>
<unit type="acceleration-meter-per-square-second">
<displayName>m/s²</displayName>
<displayName>metr/s²</displayName>
<unitPattern count="one">{0} m/s²</unitPattern>
<unitPattern count="other">{0} m/s²</unitPattern>
</unit>
@@ -7842,6 +7961,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} dpi</unitPattern>
<unitPattern count="other">{0} dpi</unitPattern>
</unit>
<unit type="length-earth-radius">
<displayName>yer radiusu</displayName>
<unitPattern count="one">{0} R⊕</unitPattern>
<unitPattern count="other">{0} R⊕</unitPattern>
</unit>
<unit type="length-kilometer">
<displayName>kilometr</displayName>
<unitPattern count="one">{0} km</unitPattern>
@@ -7922,6 +8046,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} av</unitPattern>
<unitPattern count="other">{0} av</unitPattern>
</unit>
<unit type="length-furlong">
<displayName>farlonq</displayName>
<unitPattern count="one">{0} farlonq</unitPattern>
<unitPattern count="other">{0} farlonq</unitPattern>
</unit>
<unit type="length-fathom">
<displayName>fatom</displayName>
<unitPattern count="one">{0} fth</unitPattern>
<unitPattern count="other">{0} fth</unitPattern>
</unit>
<unit type="length-nautical-mile">
<displayName>nmi</displayName>
<unitPattern count="one">{0} nmi</unitPattern>
@@ -7945,6 +8079,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} lx</unitPattern>
<unitPattern count="other">{0} lx</unitPattern>
</unit>
<unit type="light-candela">
<displayName>kd</displayName>
<unitPattern count="one">{0} kd</unitPattern>
<unitPattern count="other">{0} kd</unitPattern>
</unit>
<unit type="light-lumen">
<displayName>lm</displayName>
<unitPattern count="one">{0} lm</unitPattern>
<unitPattern count="other">{0} lm</unitPattern>
</unit>
<unit type="light-solar-luminosity">
<displayName>gün işığı</displayName>
</unit>
@@ -8016,6 +8160,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unit type="mass-solar-mass">
<displayName>günəş kütləsi</displayName>
</unit>
<unit type="mass-grain">
<displayName>qranul</displayName>
<unitPattern count="one">{0} qranul</unitPattern>
<unitPattern count="other">{0} qranul</unitPattern>
</unit>
<unit type="power-gigawatt">
<displayName>GW</displayName>
<unitPattern count="one">{0} GW</unitPattern>
@@ -8058,8 +8207,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
</unit>
<unit type="pressure-inch-ofhg">
<displayName>civə düymü</displayName>
<unitPattern count="one">{0} inHg</unitPattern>
<unitPattern count="other">{0} inHg</unitPattern>
<unitPattern count="one">{0} civə düymü</unitPattern>
<unitPattern count="other">{0} civə düymü</unitPattern>
</unit>
<unit type="pressure-millibar">
<displayName>millibar</displayName>
@@ -8204,6 +8353,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} ac ft</unitPattern>
<unitPattern count="other">{0} ac ft</unitPattern>
</unit>
<unit type="volume-bushel">
<displayName>buşel</displayName>
<unitPattern count="one">{0} buşel</unitPattern>
<unitPattern count="other">{0} buşel</unitPattern>
</unit>
<unit type="volume-gallon">
<displayName>qal</displayName>
<unitPattern count="one">{0} qal</unitPattern>
@@ -8251,6 +8405,36 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} çyqş</unitPattern>
<unitPattern count="other">{0} çyqş</unitPattern>
</unit>
<unit type="volume-dessert-spoon">
<displayName>des.qaş.</displayName>
<unitPattern count="one">{0} des.qaş.</unitPattern>
<unitPattern count="other">{0} des.qaş.</unitPattern>
</unit>
<unit type="volume-dessert-spoon-imperial">
<displayName>des.qaş. İmp.</displayName>
<unitPattern count="one">{0} des.qaş. İmp</unitPattern>
<unitPattern count="other">{0} des.qaş. İmp.</unitPattern>
</unit>
<unit type="volume-drop">
<displayName>damcı</displayName>
<unitPattern count="one">{0} damcı</unitPattern>
<unitPattern count="other">{0} damcı</unitPattern>
</unit>
<unit type="volume-dram">
<displayName draft="provisional">dram</displayName>
<unitPattern count="one" draft="provisional">{0} dram</unitPattern>
<unitPattern count="other" draft="provisional">{0} dram</unitPattern>
</unit>
<unit type="volume-pinch">
<displayName>çimdik</displayName>
<unitPattern count="one">{0} çimdik</unitPattern>
<unitPattern count="other">{0} çimdik</unitPattern>
</unit>
<unit type="volume-quart-imperial">
<displayName>kvarta İmp.</displayName>
<unitPattern count="one">{0} kvarta İmp.</unitPattern>
<unitPattern count="other">{0} kvarta İmp.</unitPattern>
</unit>
<coordinateUnit>
<displayName>istiqamət</displayName>
<coordinateUnitPattern type="east">{0}E</coordinateUnitPattern>
@@ -8269,6 +8453,30 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<compoundUnit type="10p-3">
<unitPrefixPattern>m{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p1">
<unitPrefixPattern>ki{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p2">
<unitPrefixPattern>mi{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p3">
<unitPrefixPattern>gi{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p4">
<unitPrefixPattern>ti{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p5">
<unitPrefixPattern>pi{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p6">
<unitPrefixPattern>ei{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p7">
<unitPrefixPattern>zi{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p8">
<unitPrefixPattern>yi{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="per">
<compoundUnitPattern>{0}/{1}</compoundUnitPattern>
</compoundUnit>
@@ -8570,6 +8778,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<characterLabelPattern type="scripts">Yazılar — {0}</characterLabelPattern>
<characterLabelPattern type="strokes" count="one">{0} Vurğu</characterLabelPattern>
<characterLabelPattern type="strokes" count="other">{0} Vurğu</characterLabelPattern>
<characterLabelPattern type="subscript">indeks {0}</characterLabelPattern>
<characterLabelPattern type="superscript">üst indeks {0}</characterLabelPattern>
<characterLabel type="activities">Aktivitələr</characterLabel>
<characterLabel type="african_scripts">Afrika Yazıları</characterLabel>
<characterLabel type="american_scripts">Amerika Yazıları</characterLabel>

View File

@@ -81,6 +81,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<language type="chr">чэрокі</language>
<language type="chy">шэйен</language>
<language type="ckb">цэнтральнакурдская</language>
<language type="ckb" alt="menu">курдская, сарані</language>
<language type="ckb" alt="variant">сарані</language>
<language type="co">карсіканская</language>
<language type="cop">копцкая</language>
<language type="crs">сэсэльва</language>
@@ -792,7 +794,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<territory type="WF">Уоліс і Футуна</territory>
<territory type="WS">Самоа</territory>
<territory type="XA">Псеўдаакцэнты</territory>
<territory type="XB">Псеўда-Bidi</territory>
<territory type="XB">псеўдадвухнапрамкавы</territory>
<territory type="XK">Косава</territory>
<territory type="YE">Емен</territory>
<territory type="YT">Маёта</territory>
@@ -889,7 +891,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<characters>
<exemplarCharacters>[а б в г д {дж} {дз} е ё ж з і й к л м н о п р с т у ў ф х ц ч ш ы ь э ю я]</exemplarCharacters>
<exemplarCharacters type="auxiliary">[{а\u0301} {е\u0301} {ё\u0301} {і\u0301} {о\u0301} {у\u0301} {ы\u0301} {э\u0301} {ю\u0301} {я\u0301}]</exemplarCharacters>
<exemplarCharacters type="index" draft="contributed">[А Б В Г Д Е Ж З І Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Ы Э Ю Я]</exemplarCharacters>
<exemplarCharacters type="index" draft="contributed">[А Б В Г Д Е Ё Ж З І Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Ы Ь Э Ю Я]</exemplarCharacters>
<exemplarCharacters type="numbers">[  \- , % ‰ + 0 1 2 3 4 5 6 7 8 9]</exemplarCharacters>
<exemplarCharacters type="punctuation">[\- , ; \: ! ? . « » ( ) \[ \] \{ \}]</exemplarCharacters>
<ellipsis type="final">{0}…</ellipsis>
@@ -3482,9 +3484,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<zone type="Europe/Kaliningrad">
<exemplarCity>Калінінград</exemplarCity>
</zone>
<zone type="Europe/Simferopol">
<exemplarCity>Сімферопаль</exemplarCity>
</zone>
<zone type="Europe/Moscow">
<exemplarCity>Масква</exemplarCity>
</zone>
@@ -3680,6 +3679,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<zone type="Europe/Kiev">
<exemplarCity>Кіеў</exemplarCity>
</zone>
<zone type="Europe/Simferopol">
<exemplarCity>Сімферопаль</exemplarCity>
</zone>
<zone type="Europe/Zaporozhye">
<exemplarCity>Запарожжа</exemplarCity>
</zone>
@@ -4451,9 +4453,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
</metazone>
<metazone type="Norfolk">
<long>
<generic draft="contributed">Час вострава Норфалк</generic>
<standard draft="contributed">Стандартны час вострава Норфалк</standard>
<daylight draft="contributed">Летні час вострава Норфалк</daylight>
<generic>Час вострава Норфалк</generic>
<standard>Стандартны час вострава Норфалк</standard>
<daylight>Летні час вострава Норфалк</daylight>
</long>
</metazone>
<metazone type="Noronha">
@@ -4725,6 +4727,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<percentSign>%</percentSign>
<plusSign draft="contributed">+</plusSign>
<minusSign draft="contributed">-</minusSign>
<approximatelySign></approximatelySign>
<exponential>E</exponential>
<superscriptingExponent>×</superscriptingExponent>
<perMille></perMille>
@@ -6377,21 +6380,43 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<compoundUnit type="10p24">
<unitPrefixPattern>ёта{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p1">
<unitPrefixPattern>кібі{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p2">
<unitPrefixPattern>мебі{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p3">
<unitPrefixPattern>гібі{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p4">
<unitPrefixPattern>тэбі{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p5">
<unitPrefixPattern>пебі{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p6">
<unitPrefixPattern>эксбі{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p7">
<unitPrefixPattern>зэбі{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p8">
<unitPrefixPattern>ёбі{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="per">
<compoundUnitPattern>{0}/{1}</compoundUnitPattern>
</compoundUnit>
<compoundUnit type="power2">
<compoundUnitPattern1>квадратныя {0}</compoundUnitPattern1>
<compoundUnitPattern1 count="one">квадратны {0}</compoundUnitPattern1>
<compoundUnitPattern1 count="few">квадратныя {0}</compoundUnitPattern1>
<compoundUnitPattern1 count="many">квадратных {0}</compoundUnitPattern1>
<compoundUnitPattern1 count="other">кв. {0}</compoundUnitPattern1>
</compoundUnit>
<compoundUnit type="power3">
<compoundUnitPattern1>кубічныя {0}</compoundUnitPattern1>
<compoundUnitPattern1 count="one">кубічны {0}</compoundUnitPattern1>
<compoundUnitPattern1 count="few">{0}³</compoundUnitPattern1>
<compoundUnitPattern1 count="many">{0}³</compoundUnitPattern1>
<compoundUnitPattern1 count="one">куб. {0}</compoundUnitPattern1>
<compoundUnitPattern1 count="few">куб. {0}</compoundUnitPattern1>
<compoundUnitPattern1 count="many">куб. {0}</compoundUnitPattern1>
<compoundUnitPattern1 count="other">куб. {0}</compoundUnitPattern1>
</compoundUnit>
<unit type="acceleration-g-force">
@@ -6540,7 +6565,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="other">{0} мілімоля на літр</unitPattern>
</unit>
<unit type="concentr-permillion">
<displayName>частак на мільён</displayName>
<displayName>часткі на мільён</displayName>
<unitPattern count="one">{0} частка на мільён</unitPattern>
<unitPattern count="few">{0} часткі на мільён</unitPattern>
<unitPattern count="many">{0} частак на мільён</unitPattern>
@@ -6952,6 +6977,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="many">{0} кропак на цалю</unitPattern>
<unitPattern count="other">{0} кропкі на цалю</unitPattern>
</unit>
<unit type="graphics-dot">
<displayName>кропкі</displayName>
<unitPattern count="one">{0} кропка</unitPattern>
<unitPattern count="few">{0} кропкі</unitPattern>
<unitPattern count="many">{0} кропак</unitPattern>
<unitPattern count="other">{0} кропкі</unitPattern>
</unit>
<unit type="length-earth-radius">
<displayName>радыус Зямлі</displayName>
<unitPattern count="one">{0} радыус Зямлі</unitPattern>
<unitPattern count="few">{0} R⊕</unitPattern>
<unitPattern count="many">{0} R⊕</unitPattern>
<unitPattern count="other">{0} радыуса Зямлі</unitPattern>
</unit>
<unit type="length-kilometer">
<displayName>кіламетры</displayName>
<unitPattern count="one">{0} кіламетр</unitPattern>
@@ -7062,6 +7101,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="many">{0} астранамічных адзінак</unitPattern>
<unitPattern count="other">{0} астранамічнай адзінкі</unitPattern>
</unit>
<unit type="length-furlong">
<displayName>фурлонгі</displayName>
<unitPattern count="one">{0} фурлонг</unitPattern>
<unitPattern count="few">{0} фурлонгі</unitPattern>
<unitPattern count="many">{0} фурлонгаў</unitPattern>
<unitPattern count="other">{0} фурлонга</unitPattern>
</unit>
<unit type="length-fathom">
<displayName>фатамы</displayName>
<unitPattern count="one">{0} фатам</unitPattern>
<unitPattern count="few">{0} фатамы</unitPattern>
<unitPattern count="many">{0} фатамаў</unitPattern>
<unitPattern count="other">{0} фатама</unitPattern>
</unit>
<unit type="length-nautical-mile">
<displayName>марскія мілі</displayName>
<unitPattern count="one">{0} марская міля</unitPattern>
@@ -7097,6 +7150,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="many">{0} люксаў</unitPattern>
<unitPattern count="other">{0} люкса</unitPattern>
</unit>
<unit type="light-candela">
<displayName>кандэла</displayName>
<unitPattern count="one">{0} кандэла</unitPattern>
<unitPattern count="few">{0} кандэлы</unitPattern>
<unitPattern count="many">{0} кандэл</unitPattern>
<unitPattern count="other">{0} кандэлы</unitPattern>
</unit>
<unit type="light-lumen">
<displayName>люмен</displayName>
<unitPattern count="one">{0} люмен</unitPattern>
<unitPattern count="few">{0} люмены</unitPattern>
<unitPattern count="many">{0} люменаў</unitPattern>
<unitPattern count="other">{0} люмена</unitPattern>
</unit>
<unit type="light-solar-luminosity">
<displayName>сонечныя свяцільнасці</displayName>
<unitPattern count="one">{0} сонечная свяцільнасць</unitPattern>
@@ -7148,6 +7215,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="many">{0} амерыканскіх тон</unitPattern>
<unitPattern count="other">{0} амерыканскай тоны</unitPattern>
</unit>
<unit type="mass-stone">
<displayName>стоны</displayName>
<unitPattern count="one">{0} стоўн</unitPattern>
<unitPattern count="few">{0} стоны</unitPattern>
<unitPattern count="many">{0} стонаў</unitPattern>
<unitPattern count="other">{0} стона</unitPattern>
</unit>
<unit type="mass-pound">
<displayName>фунты</displayName>
<unitPattern count="one">{0} фунт</unitPattern>
@@ -7199,6 +7273,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="many">{0} мас Сонца</unitPattern>
<unitPattern count="other">{0} масы Сонца</unitPattern>
</unit>
<unit type="mass-grain">
<displayName>граны</displayName>
<unitPattern count="one">{0} гран</unitPattern>
<unitPattern count="few">{0} граны</unitPattern>
<unitPattern count="many">{0} гранаў</unitPattern>
<unitPattern count="other">{0} грана</unitPattern>
</unit>
<unit type="power-gigawatt">
<displayName>гігаваты</displayName>
<unitPattern count="one">{0} гігават</unitPattern>
@@ -7496,6 +7577,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="many">{0} акр-футаў</unitPattern>
<unitPattern count="other">{0} акр-фута</unitPattern>
</unit>
<unit type="volume-bushel">
<displayName>бушалі</displayName>
<unitPattern count="one">{0} бушаль</unitPattern>
<unitPattern count="few">{0} бушалі</unitPattern>
<unitPattern count="many">{0} бушаляў</unitPattern>
<unitPattern count="other">{0} бушаля</unitPattern>
</unit>
<unit type="volume-gallon">
<displayName>галоны</displayName>
<unitPattern count="one">{0} галон</unitPattern>
@@ -7568,6 +7656,55 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="many">{0} барэляў</unitPattern>
<unitPattern count="other">{0} барэля</unitPattern>
</unit>
<unit type="volume-dessert-spoon">
<displayName>дэсертная лыжка</displayName>
<unitPattern count="one">{0} дэсертная лыжка</unitPattern>
<unitPattern count="few">{0} дэсертныя лыжкі</unitPattern>
<unitPattern count="many">{0} дэсертных лыжак</unitPattern>
<unitPattern count="other">{0} дэсертнай лыжкі</unitPattern>
</unit>
<unit type="volume-dessert-spoon-imperial">
<displayName>брытанская дэсертная лыжка</displayName>
<unitPattern count="one">{0} брытанская дэсертная лыжка</unitPattern>
<unitPattern count="few">{0} брыт. дэс. л.</unitPattern>
<unitPattern count="many">{0} брыт. дэс. л.</unitPattern>
<unitPattern count="other">{0} брытанскай дэсертнай лыжкі</unitPattern>
</unit>
<unit type="volume-drop">
<displayName>кропля</displayName>
<unitPattern count="one">{0} кропля</unitPattern>
<unitPattern count="few">{0} кроплі</unitPattern>
<unitPattern count="many">{0} кропляў</unitPattern>
<unitPattern count="other">{0} кроплі</unitPattern>
</unit>
<unit type="volume-dram">
<displayName>драхма</displayName>
<unitPattern count="one">{0} драхма</unitPattern>
<unitPattern count="few">{0} вад. драхмы</unitPattern>
<unitPattern count="many">{0} вад. драхмаў</unitPattern>
<unitPattern count="other">{0} вад. драхмы</unitPattern>
</unit>
<unit type="volume-jigger">
<displayName>джыгер</displayName>
<unitPattern count="one">{0} джыгер</unitPattern>
<unitPattern count="few">{0} джыгеры</unitPattern>
<unitPattern count="many">{0} джыгераў</unitPattern>
<unitPattern count="other">{0} джыгера</unitPattern>
</unit>
<unit type="volume-pinch">
<displayName>дробка</displayName>
<unitPattern count="one">{0} дробка</unitPattern>
<unitPattern count="few">{0} дробкі</unitPattern>
<unitPattern count="many">{0} дробак</unitPattern>
<unitPattern count="other">{0} дробкі</unitPattern>
</unit>
<unit type="volume-quart-imperial">
<displayName>брыт. кварта</displayName>
<unitPattern count="one">{0} брыт. кварта</unitPattern>
<unitPattern count="few">{0} брыт. кварты</unitPattern>
<unitPattern count="many">{0} брыт. кварт</unitPattern>
<unitPattern count="other">{0} брыт. кварты</unitPattern>
</unit>
<coordinateUnit>
<displayName>кірунак свету</displayName>
<coordinateUnitPattern type="east">{0} усходняй даўгаты</coordinateUnitPattern>
@@ -7637,6 +7774,30 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<compoundUnit type="10p24">
<unitPrefixPattern>Ё{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p1">
<unitPrefixPattern>Кі{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p2">
<unitPrefixPattern>Мі{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p3">
<unitPrefixPattern>Гі{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p4">
<unitPrefixPattern>Ті{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p5">
<unitPrefixPattern>Пі{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p6">
<unitPrefixPattern>Эі{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p7">
<unitPrefixPattern>Зі{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p8">
<unitPrefixPattern>Ёі{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="per">
<compoundUnitPattern>{0}/{1}</compoundUnitPattern>
</compoundUnit>
@@ -7866,7 +8027,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="other">{0} мілі/імп. галон</unitPattern>
</unit>
<unit type="digital-petabyte">
<displayName>ПБайт</displayName>
<displayName>ПБ</displayName>
<unitPattern count="one">{0} ПБ</unitPattern>
<unitPattern count="few">{0} ПБ</unitPattern>
<unitPattern count="many">{0} ПБ</unitPattern>
@@ -7929,14 +8090,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="other">{0} кбіт</unitPattern>
</unit>
<unit type="digital-byte">
<displayName>байты</displayName>
<displayName>байт</displayName>
<unitPattern count="one">{0} байт</unitPattern>
<unitPattern count="few">{0} байты</unitPattern>
<unitPattern count="many">{0} байт</unitPattern>
<unitPattern count="other">{0} байта</unitPattern>
</unit>
<unit type="digital-bit">
<displayName>біты</displayName>
<displayName>біт</displayName>
<unitPattern count="one">{0} біт</unitPattern>
<unitPattern count="few">{0} біты</unitPattern>
<unitPattern count="many">{0} біт</unitPattern>
@@ -8215,6 +8376,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="many">{0} dpi</unitPattern>
<unitPattern count="other">{0} dpi</unitPattern>
</unit>
<unit type="graphics-dot">
<displayName>кр</displayName>
<unitPattern count="one">{0} кр</unitPattern>
<unitPattern count="few">{0} кр</unitPattern>
<unitPattern count="many">{0} кр</unitPattern>
<unitPattern count="other">{0} кр</unitPattern>
</unit>
<unit type="length-kilometer">
<displayName>км</displayName>
<unitPattern count="one">{0} км</unitPattern>
@@ -8325,6 +8493,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="many">{0} а. а.</unitPattern>
<unitPattern count="other">{0} а. а.</unitPattern>
</unit>
<unit type="length-furlong">
<displayName>фурлонгі</displayName>
<unitPattern count="one">{0} фур.</unitPattern>
<unitPattern count="few">{0} фур.</unitPattern>
<unitPattern count="many">{0} фур.</unitPattern>
<unitPattern count="other">{0} фур.</unitPattern>
</unit>
<unit type="length-fathom">
<displayName>фатамы</displayName>
<unitPattern count="one">{0} фат.</unitPattern>
<unitPattern count="few">{0} фат.</unitPattern>
<unitPattern count="many">{0} фат.</unitPattern>
<unitPattern count="other">{0} фат.</unitPattern>
</unit>
<unit type="length-nautical-mile">
<displayName>мар. мілі</displayName>
<unitPattern count="one">{0} мар. міля</unitPattern>
@@ -8360,6 +8542,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="many">{0} лк</unitPattern>
<unitPattern count="other">{0} лк</unitPattern>
</unit>
<unit type="light-candela">
<displayName>кд</displayName>
<unitPattern count="one">{0} кд</unitPattern>
<unitPattern count="few">{0} кд</unitPattern>
<unitPattern count="many">{0} кд</unitPattern>
<unitPattern count="other">{0} кд</unitPattern>
</unit>
<unit type="light-lumen">
<displayName>лм</displayName>
<unitPattern count="one">{0} лм</unitPattern>
<unitPattern count="few">{0} лм</unitPattern>
<unitPattern count="many">{0} лм</unitPattern>
<unitPattern count="other">{0} лм</unitPattern>
</unit>
<unit type="light-solar-luminosity">
<displayName>L☉</displayName>
<unitPattern count="one">{0} L☉</unitPattern>
@@ -8411,6 +8607,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="many">{0} амер. т</unitPattern>
<unitPattern count="other">{0} амер. т</unitPattern>
</unit>
<unit type="mass-stone">
<displayName>стоны</displayName>
<unitPattern count="one">{0} стон</unitPattern>
<unitPattern count="few">{0} стоны</unitPattern>
<unitPattern count="many">{0} стонаў</unitPattern>
<unitPattern count="other">{0} стона</unitPattern>
</unit>
<unit type="mass-pound">
<displayName>фунты</displayName>
<unitPattern count="one">{0} фунт</unitPattern>
@@ -8462,6 +8665,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="many">{0} M☉</unitPattern>
<unitPattern count="other">{0} M☉</unitPattern>
</unit>
<unit type="mass-grain">
<displayName>гран</displayName>
<unitPattern count="one">{0} гран</unitPattern>
<unitPattern count="few">{0} граны</unitPattern>
<unitPattern count="many">{0} гранаў</unitPattern>
<unitPattern count="other">{0} грана</unitPattern>
</unit>
<unit type="power-gigawatt">
<displayName>ГВт</displayName>
<unitPattern count="one">{0} ГВт</unitPattern>
@@ -8759,6 +8969,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="many">{0} акр-футаў</unitPattern>
<unitPattern count="other">{0} акр-фута</unitPattern>
</unit>
<unit type="volume-bushel">
<displayName>бушалі</displayName>
<unitPattern count="one">{0} буш.</unitPattern>
<unitPattern count="few">{0} буш.</unitPattern>
<unitPattern count="many">{0} буш.</unitPattern>
<unitPattern count="other">{0} буш.</unitPattern>
</unit>
<unit type="volume-gallon">
<displayName>гал</displayName>
<unitPattern count="one">{0} гал</unitPattern>
@@ -8831,6 +9048,55 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="many">{0} барэляў</unitPattern>
<unitPattern count="other">{0} барэля</unitPattern>
</unit>
<unit type="volume-dessert-spoon">
<displayName>дэс. л.</displayName>
<unitPattern count="one">{0} дэс. л.</unitPattern>
<unitPattern count="few">{0} дэс. л.</unitPattern>
<unitPattern count="many">{0} дэс. л.</unitPattern>
<unitPattern count="other">{0} дэс. л.</unitPattern>
</unit>
<unit type="volume-dessert-spoon-imperial">
<displayName>брыт. дэс. л.</displayName>
<unitPattern count="one">{0} брыт. дэс. л.</unitPattern>
<unitPattern count="few">{0} брыт. дэс. л.</unitPattern>
<unitPattern count="many">{0} брыт. дэс. л.</unitPattern>
<unitPattern count="other">{0} брыт. дэс. л.</unitPattern>
</unit>
<unit type="volume-drop">
<displayName>кропля</displayName>
<unitPattern count="one">{0} кропля</unitPattern>
<unitPattern count="few">{0} кроплі</unitPattern>
<unitPattern count="many">{0} кропель</unitPattern>
<unitPattern count="other">{0} кроплі</unitPattern>
</unit>
<unit type="volume-dram">
<displayName>вад. драхма</displayName>
<unitPattern count="one">{0} вад. драхма</unitPattern>
<unitPattern count="few">{0} вад. драхмы</unitPattern>
<unitPattern count="many">{0} вад. драхмаў</unitPattern>
<unitPattern count="other">{0} вад. драхмы</unitPattern>
</unit>
<unit type="volume-jigger">
<displayName>джыгер</displayName>
<unitPattern count="one">{0} джыгер</unitPattern>
<unitPattern count="few">{0} джыгеры</unitPattern>
<unitPattern count="many">{0} джыгераў</unitPattern>
<unitPattern count="other">{0} джыгера</unitPattern>
</unit>
<unit type="volume-pinch">
<displayName>дробка</displayName>
<unitPattern count="one">{0} дробка</unitPattern>
<unitPattern count="few">{0} дробкі</unitPattern>
<unitPattern count="many">{0} дробак</unitPattern>
<unitPattern count="other">{0} дробкі</unitPattern>
</unit>
<unit type="volume-quart-imperial">
<displayName>брыт. кварта</displayName>
<unitPattern count="one">{0} брыт. кварта</unitPattern>
<unitPattern count="few">{0} брыт. кварты</unitPattern>
<unitPattern count="many">{0} брыт. кварт</unitPattern>
<unitPattern count="other">{0} брыт. кварты</unitPattern>
</unit>
<coordinateUnit>
<displayName>кірунак</displayName>
<coordinateUnitPattern type="east">{0} усх. д.</coordinateUnitPattern>
@@ -8900,6 +9166,30 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<compoundUnit type="10p24">
<unitPrefixPattern>Ё{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p1">
<unitPrefixPattern>Кі{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p2">
<unitPrefixPattern>Мі{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p3">
<unitPrefixPattern>Гі{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p4">
<unitPrefixPattern>Ті{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p5">
<unitPrefixPattern>Пі{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p6">
<unitPrefixPattern>Эі{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p7">
<unitPrefixPattern>Зі{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p8">
<unitPrefixPattern>Ёі{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="per">
<compoundUnitPattern>{0}/{1}</compoundUnitPattern>
</compoundUnit>
@@ -9122,6 +9412,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<characterLabelPattern type="strokes" count="few">{0} штрыхі</characterLabelPattern>
<characterLabelPattern type="strokes" count="many">{0} штрыхоў</characterLabelPattern>
<characterLabelPattern type="strokes" count="other">{0} штрыха</characterLabelPattern>
<characterLabelPattern type="subscript">{0} - ніжні індэкс</characterLabelPattern>
<characterLabelPattern type="superscript">{0} - верхні індэкс</characterLabelPattern>
<characterLabel type="activities">Віды дзейнасці</characterLabel>
<characterLabel type="african_scripts">Афрыканскія пісьмы</characterLabel>
<characterLabel type="american_scripts">Амерыканскія пісьмы</characterLabel>

View File

@@ -96,6 +96,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<language type="chr">черокски</language>
<language type="chy">шайенски</language>
<language type="ckb">кюрдски (централен)</language>
<language type="ckb" alt="variant">кюрдски (Сорани)</language>
<language type="co">корсикански</language>
<language type="cop">коптски</language>
<language type="cr">крии</language>
@@ -133,9 +134,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<language type="el">гръцки</language>
<language type="elx">еламитски</language>
<language type="en">английски</language>
<language type="en_GB">английски (Обединено кралство)</language>
<language type="en_AU">австралийски английски</language>
<language type="en_CA">канадски английски</language>
<language type="en_GB">британски английски</language>
<language type="en_GB" alt="short">английски (UK)</language>
<language type="en_US">английски (САЩ)</language>
<language type="en_US">американски английски</language>
<language type="en_US" alt="short">английски (US)</language>
<language type="enm">средновековен английски</language>
<language type="eo">есперанто</language>
@@ -397,7 +400,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<language type="rwk">рва</language>
<language type="sa">санскрит</language>
<language type="sad">сандаве</language>
<language type="sah">сакха</language>
<language type="sah">саха</language>
<language type="sam">самаритански арамейски</language>
<language type="saq">самбуру</language>
<language type="sas">сасак</language>
@@ -486,7 +489,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<language type="uga">угаритски</language>
<language type="uk">украински</language>
<language type="umb">умбунду</language>
<language type="und">неопределен</language>
<language type="und">непознат език</language>
<language type="ur">урду</language>
<language type="uz">узбекски</language>
<language type="vai">ваи</language>
@@ -503,7 +506,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<language type="wbp">валпири</language>
<language type="wo">волоф</language>
<language type="xal">калмик</language>
<language type="xh">ксоса</language>
<language type="xh">кхоса</language>
<language type="xog">сога</language>
<language type="yao">яо</language>
<language type="yap">япезе</language>
@@ -512,6 +515,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<language type="yi">идиш</language>
<language type="yo">йоруба</language>
<language type="yue">кантонски</language>
<language type="yue" alt="menu">китайски, кантонски</language>
<language type="za">зуанг</language>
<language type="zap">запотек</language>
<language type="zbl">блис символи</language>
@@ -925,7 +929,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<territory type="TH">Тайланд</territory>
<territory type="TJ">Таджикистан</territory>
<territory type="TK">Токелау</territory>
<territory type="TL">Източен Тимор</territory>
<territory type="TL">Тимор Лесте</territory>
<territory type="TL" alt="variant">Източен Тимор</territory>
<territory type="TM">Туркменистан</territory>
<territory type="TN">Тунис</territory>
<territory type="TO">Тонга</territory>
@@ -1136,7 +1141,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<exemplarCharacters type="auxiliary">[{а\u0300} ѐ ё ѝ {о\u0300} {у\u0300} {ъ\u0300} ы ѣ э {ю\u0300} {я\u0300} ѫ]</exemplarCharacters>
<exemplarCharacters type="index" draft="contributed">[А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ю Я]</exemplarCharacters>
<exemplarCharacters type="numbers">[  \- , % ‰ + 0 1 2 3 4 5 6 7 8 9]</exemplarCharacters>
<exemplarCharacters type="punctuation">[\- — , ; \: ! ? . … ' &quot; “ „ ( ) \[ \] § * / ″ №]</exemplarCharacters>
<exemplarCharacters type="punctuation">[\- — , ; \: ! ? . … ' &quot; “ „ ( ) \[ \] § @ * / ″ №]</exemplarCharacters>
<ellipsis type="final">{0}…</ellipsis>
<ellipsis type="initial">…{0}</ellipsis>
<ellipsis type="medial">{0}… {1}</ellipsis>
@@ -1217,12 +1222,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<dateFormatItem id="GyMMMM">MMMM y 'г'. G</dateFormatItem>
<dateFormatItem id="GyMMMMd">d MMMM y 'г'. G</dateFormatItem>
<dateFormatItem id="GyMMMMEd">E, d MMMM y 'г'. G</dateFormatItem>
<dateFormatItem id="h">h a</dateFormatItem>
<dateFormatItem id="H">HH</dateFormatItem>
<dateFormatItem id="h">h 'ч'. a</dateFormatItem>
<dateFormatItem id="H">HH 'ч'.</dateFormatItem>
<dateFormatItem id="hm">h:mm 'ч'. a</dateFormatItem>
<dateFormatItem id="Hm">HH:mm</dateFormatItem>
<dateFormatItem id="Hm">HH:mm 'ч'.</dateFormatItem>
<dateFormatItem id="hms">h:mm:ss 'ч'. a</dateFormatItem>
<dateFormatItem id="Hms">HH:mm:ss</dateFormatItem>
<dateFormatItem id="Hms">HH:mm:ss 'ч'.</dateFormatItem>
<dateFormatItem id="M">M</dateFormatItem>
<dateFormatItem id="Md">d.MM</dateFormatItem>
<dateFormatItem id="MEd">E, d.MM</dateFormatItem>
@@ -1727,22 +1732,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<timeFormats>
<timeFormatLength type="full">
<timeFormat>
<pattern>H:mm:ss zzzz</pattern>
<pattern>H:mm:ss 'ч'. zzzz</pattern>
</timeFormat>
</timeFormatLength>
<timeFormatLength type="long">
<timeFormat>
<pattern>H:mm:ss z</pattern>
<pattern>H:mm:ss 'ч'. z</pattern>
</timeFormat>
</timeFormatLength>
<timeFormatLength type="medium">
<timeFormat>
<pattern>H:mm:ss</pattern>
<pattern>H:mm:ss 'ч'.</pattern>
</timeFormat>
</timeFormatLength>
<timeFormatLength type="short">
<timeFormat>
<pattern>H:mm</pattern>
<pattern>H:mm 'ч'.</pattern>
</timeFormat>
</timeFormatLength>
</timeFormats>
@@ -1768,18 +1773,18 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
</dateTimeFormat>
</dateTimeFormatLength>
<availableFormats>
<dateFormatItem id="Bh">h B</dateFormatItem>
<dateFormatItem id="Bhm">h:mm B</dateFormatItem>
<dateFormatItem id="Bhms">h:mm:ss B</dateFormatItem>
<dateFormatItem id="Bh">h 'ч'. B</dateFormatItem>
<dateFormatItem id="Bhm">h:mm 'ч'. B</dateFormatItem>
<dateFormatItem id="Bhms">h:mm:ss 'ч'. B</dateFormatItem>
<dateFormatItem id="d">d</dateFormatItem>
<dateFormatItem id="E">ccc</dateFormatItem>
<dateFormatItem id="EBhm">E, h:mm B</dateFormatItem>
<dateFormatItem id="EBhms">E, h:mm:ss B</dateFormatItem>
<dateFormatItem id="EBhm">E, h:mm 'ч'. B</dateFormatItem>
<dateFormatItem id="EBhms">E, h:mm:ss 'ч'. B</dateFormatItem>
<dateFormatItem id="Ed">E, d</dateFormatItem>
<dateFormatItem id="Ehm">E, h:mm a</dateFormatItem>
<dateFormatItem id="EHm">E, HH:mm</dateFormatItem>
<dateFormatItem id="Ehms">E, h:mm:ss a</dateFormatItem>
<dateFormatItem id="EHms">E, H:mm:ss</dateFormatItem>
<dateFormatItem id="Ehm">E, h:mm 'ч'. a</dateFormatItem>
<dateFormatItem id="EHm">E, HH:mm 'ч'.</dateFormatItem>
<dateFormatItem id="Ehms">E, h:mm:ss 'ч'. a</dateFormatItem>
<dateFormatItem id="EHms">E, HH:mm:ss 'ч'.</dateFormatItem>
<dateFormatItem id="Gy">y 'г'. G</dateFormatItem>
<dateFormatItem id="GyMMM">MM.y 'г'. G</dateFormatItem>
<dateFormatItem id="GyMMMd">d.MM.y 'г'. G</dateFormatItem>
@@ -1787,16 +1792,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<dateFormatItem id="GyMMMM">MMMM y 'г'. G</dateFormatItem>
<dateFormatItem id="GyMMMMd">d MMMM y 'г'. G</dateFormatItem>
<dateFormatItem id="GyMMMMEd">E, d MMMM y 'г'. G</dateFormatItem>
<dateFormatItem id="h">h a</dateFormatItem>
<dateFormatItem id="H">H</dateFormatItem>
<dateFormatItem id="hm">h:mm a</dateFormatItem>
<dateFormatItem id="Hm">H:mm</dateFormatItem>
<dateFormatItem id="hms">h:mm:ss a</dateFormatItem>
<dateFormatItem id="Hms">H:mm:ss</dateFormatItem>
<dateFormatItem id="hmsv">h:mm:ss a v</dateFormatItem>
<dateFormatItem id="Hmsv">HH:mm:ss v</dateFormatItem>
<dateFormatItem id="hmv">h:mm a v</dateFormatItem>
<dateFormatItem id="Hmv">HH:mm v</dateFormatItem>
<dateFormatItem id="h">h 'ч'. a</dateFormatItem>
<dateFormatItem id="H">HH 'ч'.</dateFormatItem>
<dateFormatItem id="hm">h:mm 'ч'. a</dateFormatItem>
<dateFormatItem id="Hm">HH:mm 'ч'.</dateFormatItem>
<dateFormatItem id="hms">h:mm:ss 'ч'. a</dateFormatItem>
<dateFormatItem id="Hms">HH:mm:ss 'ч'.</dateFormatItem>
<dateFormatItem id="hmsv">h:mm:ss 'ч'. a v</dateFormatItem>
<dateFormatItem id="Hmsv">HH:mm:ss 'ч'. v</dateFormatItem>
<dateFormatItem id="hmv">h:mm 'ч'. a v</dateFormatItem>
<dateFormatItem id="Hmv">HH:mm 'ч'. v</dateFormatItem>
<dateFormatItem id="M">L</dateFormatItem>
<dateFormatItem id="Md">d.MM</dateFormatItem>
<dateFormatItem id="MEd">E, d.MM</dateFormatItem>
@@ -1879,36 +1884,36 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<greatestDifference id="y">E, d MMM y E, d MMM y G</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="h">
<greatestDifference id="a">h a h a</greatestDifference>
<greatestDifference id="h">h h a</greatestDifference>
<greatestDifference id="a">h 'ч'. a h 'ч'. a</greatestDifference>
<greatestDifference id="h">h 'ч'. h 'ч'. a</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="H">
<greatestDifference id="H">H H</greatestDifference>
<greatestDifference id="H">H H 'ч'.</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="hm">
<greatestDifference id="a">h:mm a h:mm a</greatestDifference>
<greatestDifference id="h">h:mm h:mm a</greatestDifference>
<greatestDifference id="m">h:mm h:mm a</greatestDifference>
<greatestDifference id="a">h:mm 'ч'. a h:mm 'ч'. a</greatestDifference>
<greatestDifference id="h">h:mm 'ч'. h:mm 'ч'. a</greatestDifference>
<greatestDifference id="m">h:mm 'ч'. h:mm 'ч'. a</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="Hm">
<greatestDifference id="H">H:mm H:mm</greatestDifference>
<greatestDifference id="m">H:mm H:mm</greatestDifference>
<greatestDifference id="H">H:mm 'ч'. H:mm 'ч'.</greatestDifference>
<greatestDifference id="m">H:mm 'ч'. H:mm 'ч'.</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="hmv">
<greatestDifference id="a">h:mm a h:mm a v</greatestDifference>
<greatestDifference id="h">h:mm a h:mm a v</greatestDifference>
<greatestDifference id="m">h:mm a h:mm a v</greatestDifference>
<greatestDifference id="a">h:mm 'ч'. a h:mm 'ч'. a v</greatestDifference>
<greatestDifference id="h">h:mm 'ч'. a h:mm 'ч'. a v</greatestDifference>
<greatestDifference id="m">h:mm 'ч'. a h:mm 'ч'. a v</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="Hmv">
<greatestDifference id="H">H:mm H:mm v</greatestDifference>
<greatestDifference id="m">H:mm H:mm v</greatestDifference>
<greatestDifference id="H">H:mm 'ч'. H:mm 'ч'. v</greatestDifference>
<greatestDifference id="m">H:mm 'ч'. H:mm 'ч'. v</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="hv">
<greatestDifference id="a">h a h a v</greatestDifference>
<greatestDifference id="h">h h a v</greatestDifference>
<greatestDifference id="a">h 'ч'. a h 'ч'. a v</greatestDifference>
<greatestDifference id="h">h 'ч'. h 'ч'. a v</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="Hv">
<greatestDifference id="H">H H v</greatestDifference>
<greatestDifference id="H">H H 'ч'. v</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="M">
<greatestDifference id="M">M M</greatestDifference>
@@ -2428,12 +2433,12 @@ 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>
<relativeTimePattern count="one">пр. {0} вт</relativeTimePattern>
<relativeTimePattern count="other">пр. {0} вт</relativeTimePattern>
</relativeTime>
</field>
<field type="wed">
@@ -2718,7 +2723,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<gmtFormat>Гринуич{0}</gmtFormat>
<gmtZeroFormat>Гринуич</gmtZeroFormat>
<regionFormat>{0}</regionFormat>
<regionFormat type="daylight">{0}, лятно часово време</regionFormat>
<regionFormat type="daylight">{0} лятно часово време</regionFormat>
<regionFormat type="standard">{0} стандартно време</regionFormat>
<fallbackFormat>{1} ({0})</fallbackFormat>
<zone type="America/Santa_Isabel">
@@ -2733,7 +2738,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
</long>
</zone>
<zone type="Etc/Unknown">
<exemplarCity>неизвестен</exemplarCity>
<exemplarCity>неизвестен град</exemplarCity>
</zone>
<zone type="Europe/Andorra">
<exemplarCity>Андора</exemplarCity>
@@ -3668,9 +3673,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<zone type="Europe/Kaliningrad">
<exemplarCity>Калининград</exemplarCity>
</zone>
<zone type="Europe/Simferopol">
<exemplarCity>Симферопол</exemplarCity>
</zone>
<zone type="Europe/Moscow">
<exemplarCity>Москва</exemplarCity>
</zone>
@@ -3866,6 +3868,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<zone type="Europe/Kiev">
<exemplarCity>Киев</exemplarCity>
</zone>
<zone type="Europe/Simferopol">
<exemplarCity>Симферопол</exemplarCity>
</zone>
<zone type="Europe/Zaporozhye">
<exemplarCity>Запорожие</exemplarCity>
</zone>
@@ -4651,9 +4656,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
</metazone>
<metazone type="Norfolk">
<long>
<generic draft="contributed">Норфолкско време</generic>
<standard draft="contributed">Норфолкско стандартно време</standard>
<daylight draft="contributed">Норфолкско лятно часово време</daylight>
<generic>Норфолкско време</generic>
<standard>Норфолкско стандартно време</standard>
<daylight>Норфолкско лятно часово време</daylight>
</long>
</metazone>
<metazone type="Noronha">
@@ -5079,6 +5084,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<displayName count="one">афганистански афган</displayName>
<displayName count="other">афганистански афгана</displayName>
<symbol draft="contributed">AFN</symbol>
<symbol alt="narrow" draft="contributed">Af</symbol>
</currency>
<currency type="ALL">
<displayName>Албански лек</displayName>
@@ -5091,6 +5097,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<displayName count="one">арменски драм</displayName>
<displayName count="other">арменски драма</displayName>
<symbol draft="contributed">AMD</symbol>
<symbol alt="narrow" draft="contributed">AMD</symbol>
</currency>
<currency type="ANG">
<displayName>Антилски гулден</displayName>
@@ -5165,6 +5172,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<displayName count="one">азербайджански манат</displayName>
<displayName count="other">азербайджански маната</displayName>
<symbol draft="contributed">AZN</symbol>
<symbol alt="narrow" draft="contributed">AZN</symbol>
</currency>
<currency type="BAD">
<displayName>Босна и Херцеговина-динар</displayName>
@@ -5369,9 +5377,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<symbol alt="narrow" draft="contributed">CLP</symbol>
</currency>
<currency type="CNH">
<displayName>Китайски ренминби юан (offshore)</displayName>
<displayName count="one">китайски ренминби юан (offshore)</displayName>
<displayName count="other">китайски ренминби юан (offshore)</displayName>
<displayName>Китайски юан (офшорен)</displayName>
<displayName count="one">китайски юан (офшорен)</displayName>
<displayName count="other">китайски юана (офшорни)</displayName>
<symbol draft="contributed">CNH</symbol>
</currency>
<currency type="CNY">
@@ -5529,9 +5537,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<symbol alt="narrow" draft="contributed">FJD</symbol>
</currency>
<currency type="FKP">
<displayName>Фолклендска лира</displayName>
<displayName count="one">фолклендска лира</displayName>
<displayName count="other">фолклендски лири</displayName>
<displayName>Фолкландска лира</displayName>
<displayName count="one">фолкландска лира</displayName>
<displayName count="other">фолкландски лири</displayName>
<symbol draft="contributed">FKP</symbol>
<symbol alt="narrow" draft="contributed">FKP</symbol>
</currency>
@@ -5568,6 +5576,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<displayName count="one">ганайско седи</displayName>
<displayName count="other">ганайски седи</displayName>
<symbol draft="contributed">GHS</symbol>
<symbol alt="narrow" draft="contributed">GHS</symbol>
</currency>
<currency type="GIP">
<displayName>Гибралтарска лира</displayName>
@@ -5870,9 +5879,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<displayName count="other">марокански франка</displayName>
</currency>
<currency type="MDL">
<displayName>Молдовско леу</displayName>
<displayName count="one">молдовско леу</displayName>
<displayName count="other">молдовски леу</displayName>
<displayName>Молдовска лея</displayName>
<displayName count="one">молдовска лея</displayName>
<displayName count="other">молдовски леи</displayName>
<symbol draft="contributed">MDL</symbol>
</currency>
<currency type="MGA">
@@ -5897,9 +5906,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<displayName>Малийски франк</displayName>
</currency>
<currency type="MMK">
<displayName>Мианмарски кият</displayName>
<displayName count="one">мианмарски кият</displayName>
<displayName count="other">мианмарски кията</displayName>
<displayName>Мианмарски киат</displayName>
<displayName count="one">мианмарски киат</displayName>
<displayName count="other">мианмарски киата</displayName>
<symbol draft="contributed">MMK</symbol>
<symbol alt="narrow" draft="contributed">K</symbol>
</currency>
@@ -5947,9 +5956,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<symbol draft="contributed">MVR</symbol>
</currency>
<currency type="MWK">
<displayName>Малавийска квача</displayName>
<displayName count="one">малавийска квача</displayName>
<displayName count="other">малавийски квачи</displayName>
<displayName>Малавийска куача</displayName>
<displayName count="one">малавийска куача</displayName>
<displayName count="other">малавийски куачи</displayName>
<symbol draft="contributed">MWK</symbol>
</currency>
<currency type="MXN">
@@ -6371,9 +6380,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<symbol draft="contributed">TZS</symbol>
</currency>
<currency type="UAH">
<displayName>Украинска хривня</displayName>
<displayName count="one">украинска хривня</displayName>
<displayName count="other">украински хривни</displayName>
<displayName>Украинска гривня</displayName>
<displayName count="one">украинска гривня</displayName>
<displayName count="other">украински гривни</displayName>
<symbol draft="contributed">UAH</symbol>
<symbol alt="narrow" draft="contributed">UAH</symbol>
</currency>
@@ -6675,6 +6684,30 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<compoundUnit type="10p24">
<unitPrefixPattern>йота{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p1">
<unitPrefixPattern>киби{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p2">
<unitPrefixPattern>меби{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p3">
<unitPrefixPattern>гиби{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p4">
<unitPrefixPattern>теби{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p5">
<unitPrefixPattern>пеби{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p6">
<unitPrefixPattern>ексби{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p7">
<unitPrefixPattern>зеби{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p8">
<unitPrefixPattern>йоби{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="per">
<compoundUnitPattern>{0} на {1}</compoundUnitPattern>
</compoundUnit>
@@ -6829,14 +6862,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="other">{0} литра на 100 километра</unitPattern>
</unit>
<unit type="consumption-mile-per-gallon">
<displayName>мили с един галон</displayName>
<unitPattern count="one">{0} миля с един галон</unitPattern>
<unitPattern count="other">{0} мили с един галон</unitPattern>
<displayName>мили на галон</displayName>
<unitPattern count="one">{0} миля на галон</unitPattern>
<unitPattern count="other">{0} мили на галон</unitPattern>
</unit>
<unit type="consumption-mile-per-gallon-imperial">
<displayName>мили с един британски галон</displayName>
<unitPattern count="one">{0} миля с един британски галон</unitPattern>
<unitPattern count="other">{0} мили с един британски галон</unitPattern>
<displayName>мили на имперски галон</displayName>
<unitPattern count="one">{0} миля на имперски галон</unitPattern>
<unitPattern count="other">{0} мили на имперски галон</unitPattern>
</unit>
<unit type="digital-petabyte">
<displayName>петабайти</displayName>
@@ -7088,6 +7121,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} точка на инч</unitPattern>
<unitPattern count="other">{0} точки на инч</unitPattern>
</unit>
<unit type="graphics-dot">
<displayName>точка</displayName>
<unitPattern count="one">{0} точка</unitPattern>
<unitPattern count="other">{0} точки</unitPattern>
</unit>
<unit type="length-earth-radius">
<displayName>земен радиус</displayName>
<unitPattern count="one">{0} земен радиус</unitPattern>
<unitPattern count="other">{0} земни радиуса</unitPattern>
</unit>
<unit type="length-kilometer">
<displayName>километри</displayName>
<unitPattern count="one">{0} километър</unitPattern>
@@ -7168,6 +7211,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} астрономическа единица</unitPattern>
<unitPattern count="other">{0} астрономически единици</unitPattern>
</unit>
<unit type="length-furlong">
<displayName>фърлонги</displayName>
<unitPattern count="one">{0} фърлонг</unitPattern>
<unitPattern count="other">{0} фърлонга</unitPattern>
</unit>
<unit type="length-fathom">
<displayName>фатоми</displayName>
<unitPattern count="one">{0} фатом</unitPattern>
<unitPattern count="other">{0} фатома</unitPattern>
</unit>
<unit type="length-nautical-mile">
<displayName>морски мили</displayName>
<unitPattern count="one">{0} морска миля</unitPattern>
@@ -7193,15 +7246,25 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} лукс</unitPattern>
<unitPattern count="other">{0} лукса</unitPattern>
</unit>
<unit type="light-candela">
<displayName>кандела</displayName>
<unitPattern count="one">{0} кандела</unitPattern>
<unitPattern count="other">{0} кандели</unitPattern>
</unit>
<unit type="light-lumen">
<displayName>лумен</displayName>
<unitPattern count="one">{0} лумен</unitPattern>
<unitPattern count="other">{0} лумена</unitPattern>
</unit>
<unit type="light-solar-luminosity">
<displayName>слънчеви светимости</displayName>
<unitPattern count="one">слънчева светимост</unitPattern>
<unitPattern count="other">{0} слънчеви светимости</unitPattern>
</unit>
<unit type="mass-metric-ton">
<displayName>тонове</displayName>
<unitPattern count="one">{0} тон</unitPattern>
<unitPattern count="other">{0} тона</unitPattern>
<displayName>метрични тонове</displayName>
<unitPattern count="one">{0} метричен тон</unitPattern>
<unitPattern count="other">{0} метрични тона</unitPattern>
</unit>
<unit type="mass-kilogram">
<displayName>килограми</displayName>
@@ -7230,6 +7293,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-stone">
<displayName>стоунове</displayName>
<unitPattern count="one">{0} стоун</unitPattern>
<unitPattern count="other">{0} стоуна</unitPattern>
</unit>
<unit type="mass-pound">
<displayName>фунтове</displayName>
<unitPattern count="one">{0} фунт</unitPattern>
@@ -7267,6 +7335,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-grain">
<displayName>гран</displayName>
<unitPattern count="one">{0} гран</unitPattern>
<unitPattern count="other">{0} грана</unitPattern>
</unit>
<unit type="power-gigawatt">
<displayName>гигавати</displayName>
<unitPattern count="one">{0} гигават</unitPattern>
@@ -7388,9 +7461,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="other">{0} келвина</unitPattern>
</unit>
<unit type="torque-pound-force-foot">
<displayName>фунт-футове</displayName>
<unitPattern count="one">{0} фунт-фут</unitPattern>
<unitPattern count="other">{0} фунт-фута</unitPattern>
<displayName>паунд-футове</displayName>
<unitPattern count="one">{0} паунд-фут сила</unitPattern>
<unitPattern count="other">{0} паунд-фута</unitPattern>
</unit>
<unit type="torque-newton-meter">
<displayName>нютон-метър</displayName>
@@ -7480,9 +7553,14 @@ 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-bushel">
<displayName>бушели</displayName>
<unitPattern count="one">{0} бушел</unitPattern>
<unitPattern count="other">{0} бушела</unitPattern>
</unit>
<unit type="volume-gallon">
<displayName>галони</displayName>
<unitPattern count="one">{0} галона</unitPattern>
<unitPattern count="one">{0} галон</unitPattern>
<unitPattern count="other">{0} галона</unitPattern>
<perUnitPattern>{0} на галон</perUnitPattern>
</unit>
@@ -7513,9 +7591,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="other">{0} течни унции</unitPattern>
</unit>
<unit type="volume-fluid-ounce-imperial">
<displayName>Британски течни унции</displayName>
<unitPattern count="one">{0} британска течна унция</unitPattern>
<unitPattern count="other">{0} британски течни унции</unitPattern>
<displayName>имперски течни унции</displayName>
<unitPattern count="one">{0} имперска течна унция</unitPattern>
<unitPattern count="other">{0} имперски течни унции</unitPattern>
</unit>
<unit type="volume-tablespoon">
<displayName>супени лъжици</displayName>
@@ -7532,6 +7610,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="volume-dessert-spoon">
<displayName>десертна лъжица</displayName>
<unitPattern count="one">{0} десертна лъжица</unitPattern>
<unitPattern count="other">{0} десертни лъжици</unitPattern>
</unit>
<unit type="volume-drop">
<displayName>капка</displayName>
<unitPattern count="one">{0} капка</unitPattern>
<unitPattern count="other">{0} капки</unitPattern>
</unit>
<unit type="volume-dram">
<displayName>драм</displayName>
<unitPattern count="one">{0} драм</unitPattern>
<unitPattern count="other">{0} драма</unitPattern>
</unit>
<unit type="volume-jigger">
<displayName>джигър</displayName>
<unitPattern count="one">{0} джигър</unitPattern>
<unitPattern count="other">{0} джигъра</unitPattern>
</unit>
<unit type="volume-pinch">
<displayName>щипка</displayName>
<unitPattern count="one">{0} щипка</unitPattern>
<unitPattern count="other">{0} щипки</unitPattern>
</unit>
<unit type="volume-quart-imperial">
<displayName>имперска кварта</displayName>
<unitPattern count="one">{0} имперска кварта</unitPattern>
<unitPattern count="other">{0} имперски кварти</unitPattern>
</unit>
<coordinateUnit>
<displayName>основна посока</displayName>
<coordinateUnitPattern type="east">{0}И</coordinateUnitPattern>
@@ -7601,6 +7709,30 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<compoundUnit type="10p24">
<unitPrefixPattern>Й{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p1">
<unitPrefixPattern>Ki{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p2">
<unitPrefixPattern>Mi{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p3">
<unitPrefixPattern>Gi{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p4">
<unitPrefixPattern>Ti{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p5">
<unitPrefixPattern>Pi{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p6">
<unitPrefixPattern>Ei{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p7">
<unitPrefixPattern>Zi{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p8">
<unitPrefixPattern>Yi{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="per">
<compoundUnitPattern>{0}/{1}</compoundUnitPattern>
</compoundUnit>
@@ -7816,6 +7948,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="duration-decade">
<displayName>декада</displayName>
<unitPattern count="one">{0} декада</unitPattern>
<unitPattern count="other">{0} декади</unitPattern>
</unit>
<unit type="duration-year">
<displayName>години</displayName>
<unitPattern count="one">{0} год.</unitPattern>
@@ -7968,6 +8105,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unit type="graphics-em">
<displayName>ем</displayName>
</unit>
<unit type="graphics-dot">
<displayName>точка</displayName>
<unitPattern count="one">{0} точка</unitPattern>
<unitPattern count="other">{0} точки</unitPattern>
</unit>
<unit type="length-earth-radius">
<displayName>R⊕</displayName>
<unitPattern count="one">{0} R⊕</unitPattern>
<unitPattern count="other">{0} R⊕</unitPattern>
</unit>
<unit type="length-kilometer">
<displayName>km</displayName>
<unitPattern count="one">{0} km</unitPattern>
@@ -8007,7 +8154,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="other">{0} nm</unitPattern>
</unit>
<unit type="length-picometer">
<displayName>пикометри</displayName>
<unitPattern count="one">{0} pm</unitPattern>
<unitPattern count="other">{0} pm</unitPattern>
</unit>
@@ -8042,6 +8188,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} AU</unitPattern>
<unitPattern count="other">{0} AU</unitPattern>
</unit>
<unit type="length-furlong">
<displayName draft="provisional">fur</displayName>
<unitPattern count="one">{0} fur</unitPattern>
<unitPattern count="other">{0} fur</unitPattern>
</unit>
<unit type="length-fathom">
<displayName draft="provisional">fth</displayName>
<unitPattern count="one">{0} fth</unitPattern>
<unitPattern count="other">{0} fth</unitPattern>
</unit>
<unit type="length-nautical-mile">
<displayName>nmi</displayName>
<unitPattern count="one">{0} nmi</unitPattern>
@@ -8066,6 +8222,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} lx</unitPattern>
<unitPattern count="other">{0} lx</unitPattern>
</unit>
<unit type="light-candela">
<displayName>cd</displayName>
<unitPattern count="one">{0} cd</unitPattern>
<unitPattern count="other">{0} cd</unitPattern>
</unit>
<unit type="light-lumen">
<displayName>lm</displayName>
<unitPattern count="one">{0} lm</unitPattern>
<unitPattern count="other">{0} lm</unitPattern>
</unit>
<unit type="light-solar-luminosity">
<unitPattern count="one">{0} L☉</unitPattern>
<unitPattern count="other">{0} L☉</unitPattern>
@@ -8100,6 +8266,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} tn</unitPattern>
<unitPattern count="other">{0} tn</unitPattern>
</unit>
<unit type="mass-stone">
<unitPattern count="one">{0} st</unitPattern>
<unitPattern count="other">{0} st</unitPattern>
</unit>
<unit type="mass-pound">
<unitPattern count="one">{0} lb</unitPattern>
<unitPattern count="other">{0} lb</unitPattern>
@@ -8133,6 +8303,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} M☉</unitPattern>
<unitPattern count="other">{0} M☉</unitPattern>
</unit>
<unit type="mass-grain">
<displayName>гран</displayName>
<unitPattern count="one">{0} гран</unitPattern>
<unitPattern count="other">{0} грана</unitPattern>
</unit>
<unit type="power-gigawatt">
<displayName>GW</displayName>
<unitPattern count="one">{0} GW</unitPattern>
@@ -8331,6 +8506,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} ac ft</unitPattern>
<unitPattern count="other">{0} ac ft</unitPattern>
</unit>
<unit type="volume-bushel">
<displayName>бушели</displayName>
<unitPattern count="one">{0} bu</unitPattern>
<unitPattern count="other">{0} bu</unitPattern>
</unit>
<unit type="volume-gallon">
<unitPattern count="one">{0} gal US</unitPattern>
<unitPattern count="other">{0} gal US</unitPattern>
@@ -8338,7 +8518,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unit type="volume-gallon-imperial">
<displayName>имп. галон</displayName>
<unitPattern count="one">{0} имп. галон</unitPattern>
<unitPattern count="other">{0} имп. гал.</unitPattern>
<unitPattern count="other">{0} имп. галона</unitPattern>
<perUnitPattern>{0}/имп. галон</perUnitPattern>
</unit>
<unit type="volume-quart">
@@ -8378,6 +8558,41 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} bbl</unitPattern>
<unitPattern count="other">{0} bbl</unitPattern>
</unit>
<unit type="volume-dessert-spoon">
<displayName>дес. лъжица</displayName>
<unitPattern count="one">{0} дес. лъжица</unitPattern>
<unitPattern count="other">{0} дес. лъжици</unitPattern>
</unit>
<unit type="volume-dessert-spoon-imperial">
<displayName>брит. дес. лъжица</displayName>
<unitPattern count="one">{0} брит. дес. лъжица</unitPattern>
<unitPattern count="other">{0} брит. дес. лъжици</unitPattern>
</unit>
<unit type="volume-drop">
<displayName>капка</displayName>
<unitPattern count="one">{0} капка</unitPattern>
<unitPattern count="other">{0} капки</unitPattern>
</unit>
<unit type="volume-dram">
<displayName>течен драм</displayName>
<unitPattern count="one">{0} теч. драм</unitPattern>
<unitPattern count="other">{0} теч. драма</unitPattern>
</unit>
<unit type="volume-jigger">
<displayName>джигър</displayName>
<unitPattern count="one">{0} джигър</unitPattern>
<unitPattern count="other">{0} джигъра</unitPattern>
</unit>
<unit type="volume-pinch">
<displayName>щипка</displayName>
<unitPattern count="one">{0} щипка</unitPattern>
<unitPattern count="other">{0} щипки</unitPattern>
</unit>
<unit type="volume-quart-imperial">
<displayName>имп. кварта</displayName>
<unitPattern count="one">{0} имп. кварта</unitPattern>
<unitPattern count="other">{0} имп. кварти</unitPattern>
</unit>
<coordinateUnit>
<displayName>посока</displayName>
<coordinateUnitPattern type="east">{0}И</coordinateUnitPattern>
@@ -8447,6 +8662,30 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<compoundUnit type="10p24">
<unitPrefixPattern>Й{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p1">
<unitPrefixPattern>Ki{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p2">
<unitPrefixPattern>Mi{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p3">
<unitPrefixPattern>Gi{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p4">
<unitPrefixPattern>Ti{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p5">
<unitPrefixPattern>Pi{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p6">
<unitPrefixPattern>Ei{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p7">
<unitPrefixPattern>Zi{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p8">
<unitPrefixPattern>Yi{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="per">
<compoundUnitPattern>{0}/{1}</compoundUnitPattern>
</compoundUnit>
@@ -8743,6 +8982,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<characterLabelPattern type="scripts">{0} писмени знаци</characterLabelPattern>
<characterLabelPattern type="strokes" count="one">{0} черта</characterLabelPattern>
<characterLabelPattern type="strokes" count="other">{0} черти</characterLabelPattern>
<characterLabelPattern type="subscript">долен индекс {0}</characterLabelPattern>
<characterLabelPattern type="superscript">горен индекс {0}</characterLabelPattern>
<characterLabel type="activities">Дейности</characterLabel>
<characterLabel type="african_scripts">Африкански писмени знаци</characterLabel>
<characterLabel type="american_scripts">Американски писмени знаци</characterLabel>
@@ -8839,7 +9080,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<styleName type="ital" subtype="1">курсив</styleName>
<styleName type="opsz" subtype="8">надпис</styleName>
<styleName type="opsz" subtype="12">текст</styleName>
<styleName type="opsz" subtype="18">titling</styleName>
<styleName type="opsz" subtype="18">заглавен</styleName>
<styleName type="opsz" subtype="72">едър шрифт</styleName>
<styleName type="opsz" subtype="144">плакат</styleName>
<styleName type="slnt" subtype="-12">обратно наклонен</styleName>

View File

@@ -96,6 +96,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<language type="chr">চেরোকী</language>
<language type="chy">শাইয়েন</language>
<language type="ckb">মধ্য কুর্দিশ</language>
<language type="ckb" alt="variant">কুর্দিশ, সোরানি</language>
<language type="co">কর্সিকান</language>
<language type="cop">কপটিক</language>
<language type="cr">ক্রি</language>
@@ -352,7 +353,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<language type="nl">ওলন্দাজ</language>
<language type="nl_BE">ফ্লেমিশ</language>
<language type="nmg">কোয়াসিও</language>
<language type="nn">নরওয়েজয়ান নিনর্স্ক</language>
<language type="nn">নরওয়েজিয়ান নিনর্স্ক</language>
<language type="nnh">নিঙ্গেম্বুন</language>
<language type="no">নরওয়েজীয়</language>
<language type="nog">নোগাই</language>
@@ -876,7 +877,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<territory type="ML">মালি</territory>
<territory type="MM">মায়ানমার (বার্মা)</territory>
<territory type="MN">মঙ্গোলিয়া</territory>
<territory type="MO">ম্যাকাও এসএআর চীনা</territory>
<territory type="MO">ম্যাকাও এসএআর চীনা চীনা (ম্যাকাও এসএআর চীনা) চীনা (ঐতিহ্যবাহী, ম্যাকাও এসএআর চীনা) অঞ্চল: ম্যাকাও এসএআর চীন</territory>
<territory type="MO" alt="short">ম্যাকাও</territory>
<territory type="MP">উত্তরাঞ্চলীয় মারিয়ানা দ্বীপপুঞ্জ</territory>
<territory type="MQ">মার্টিনিক</territory>
@@ -2632,18 +2633,18 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<month type="12">জ্বিলহজ্জ</month>
</monthWidth>
<monthWidth type="narrow">
<month type="1" draft="contributed"></month>
<month type="2" draft="contributed"></month>
<month type="3" draft="contributed"></month>
<month type="4" draft="contributed"></month>
<month type="5" draft="contributed"></month>
<month type="6" draft="contributed"></month>
<month type="7" draft="contributed"></month>
<month type="8" draft="contributed"></month>
<month type="9" draft="contributed"></month>
<month type="10" draft="contributed">১০</month>
<month type="11" draft="contributed">১১</month>
<month type="12" draft="contributed">১২</month>
<month type="1"></month>
<month type="2"></month>
<month type="3"></month>
<month type="4"></month>
<month type="5"></month>
<month type="6"></month>
<month type="7"></month>
<month type="8"></month>
<month type="9"></month>
<month type="10">১০</month>
<month type="11">১১</month>
<month type="12">১২</month>
</monthWidth>
<monthWidth type="wide">
<month type="1">মহররম</month>
@@ -2707,13 +2708,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
</months>
<eras>
<eraNames>
<era type="0" draft="contributed">যুগ</era>
<era type="0">যুগ</era>
</eraNames>
<eraAbbr>
<era type="0">যুগ</era>
</eraAbbr>
<eraNarrow>
<era type="0" draft="contributed">যুগ</era>
<era type="0">যুগ</era>
</eraNarrow>
</eras>
</calendar>
@@ -3144,7 +3145,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<relativeTimePattern count="other">{0} সোমবারেতে</relativeTimePattern>
</relativeTime>
<relativeTime type="past">
<relativeTimePattern count="one">{0} সোমবারেত</relativeTimePattern>
<relativeTimePattern count="one">{0} সোমবার আগ</relativeTimePattern>
<relativeTimePattern count="other">{0} সোমবার আগে</relativeTimePattern>
</relativeTime>
</field>
@@ -4445,9 +4446,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<zone type="Europe/Kaliningrad">
<exemplarCity>কালিনিঙগ্রাড</exemplarCity>
</zone>
<zone type="Europe/Simferopol">
<exemplarCity>সিমফেরোপোল</exemplarCity>
</zone>
<zone type="Europe/Moscow">
<exemplarCity>মস্কো</exemplarCity>
</zone>
@@ -4643,6 +4641,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<zone type="Europe/Kiev">
<exemplarCity>কিয়েভ</exemplarCity>
</zone>
<zone type="Europe/Simferopol">
<exemplarCity>সিমফেরোপোল</exemplarCity>
</zone>
<zone type="Europe/Zaporozhye">
<exemplarCity>জেপোরোজাইয়াই</exemplarCity>
</zone>
@@ -4795,9 +4796,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
</zone>
<metazone type="Acre">
<long>
<generic draft="provisional">একর সময়</generic>
<standard draft="provisional">একর মানক সময়</standard>
<daylight draft="provisional">একর গ্রীষ্মকাল সময়</daylight>
<generic>একর সময়</generic>
<standard>একর মানক সময়</standard>
<daylight>একর গ্রীষ্মকাল সময়</daylight>
</long>
</metazone>
<metazone type="Afghanistan">
@@ -5124,7 +5125,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
</metazone>
<metazone type="Europe_Further_Eastern">
<long>
<standard>অতিরিক্ত-পূর্ব ইউরোপীয় সময়</standard>
<standard>প্রান্তীয় পূর্ব ইউরোপীয় সময়</standard>
</long>
</metazone>
<metazone type="Europe_Western">
@@ -5476,9 +5477,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
</metazone>
<metazone type="Norfolk">
<long>
<generic draft="contributed">নরফোক দ্বীপ সময়</generic>
<standard draft="contributed">নরফোক দ্বীপ মানক সময়</standard>
<daylight draft="contributed">নরফোক দ্বীপ দিবালোক সময়</daylight>
<generic>নরফোক দ্বীপ সময়</generic>
<standard>নরফোক দ্বীপ মানক সময়</standard>
<daylight>নরফোক দ্বীপ দিবালোক সময়</daylight>
</long>
</metazone>
<metazone type="Noronha">
@@ -5849,8 +5850,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<pattern type="1000000000" count="other">000 কো</pattern>
<pattern type="10000000000" count="one">00 শত কো</pattern>
<pattern type="10000000000" count="other">00শত কো</pattern>
<pattern type="100000000000" count="one">00000 কো</pattern>
<pattern type="100000000000" count="other">00000 কো</pattern>
<pattern type="100000000000" count="one">000কো</pattern>
<pattern type="100000000000" count="other">000কো</pattern>
<pattern type="1000000000000" count="one">0 লা'.'কো'.'</pattern>
<pattern type="1000000000000" count="other">0 লা'.'কো'.'</pattern>
<pattern type="10000000000000" count="one">00 লা'.'কো'.'</pattern>
@@ -7420,6 +7421,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<compoundUnit type="10p24">
<unitPrefixPattern>ইয়োট্টা{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p1">
<unitPrefixPattern>{0}কিবি</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="per">
<compoundUnitPattern>{1} প্রতি {0}</compoundUnitPattern>
</compoundUnit>
@@ -7899,14 +7903,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="other">{0} জ্যোতির্বিজ্ঞান একক</unitPattern>
</unit>
<unit type="length-furlong">
<displayName draft="contributed">ফার্লং</displayName>
<unitPattern count="one" draft="contributed">{0} ফার্লং</unitPattern>
<unitPattern count="other" draft="contributed">{0} ফার্লং</unitPattern>
<displayName>ফার্লং</displayName>
<unitPattern count="one">{0} ফার্লং</unitPattern>
<unitPattern count="other">{0} ফার্লং</unitPattern>
</unit>
<unit type="length-fathom">
<displayName draft="contributed">fm</displayName>
<unitPattern count="one" draft="contributed">{0} fth</unitPattern>
<unitPattern count="other" draft="contributed">{0} fth</unitPattern>
<displayName>fm</displayName>
<unitPattern count="one">{0} fth</unitPattern>
<unitPattern count="other">{0} fth</unitPattern>
</unit>
<unit type="length-nautical-mile">
<displayName>নটিক্যাল মাইল</displayName>
@@ -7933,6 +7937,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} লাক্স</unitPattern>
<unitPattern count="other">{0} লাক্স</unitPattern>
</unit>
<unit type="light-candela">
<displayName>ক্যান্ডেলা</displayName>
<unitPattern count="one">{0} ক্যান্ডেলা</unitPattern>
<unitPattern count="other">{0} ক্যান্ডেলা</unitPattern>
</unit>
<unit type="light-lumen">
<displayName>লুমেন</displayName>
<unitPattern count="one">{0} লুমেন</unitPattern>
<unitPattern count="other">{0} লুমেন</unitPattern>
</unit>
<unit type="mass-metric-ton">
<displayName>মেট্রিক টন</displayName>
<unitPattern count="one">{0} মেট্রিক টন</unitPattern>
@@ -7966,9 +7980,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="other">{0} টন</unitPattern>
</unit>
<unit type="mass-stone">
<displayName draft="contributed">st</displayName>
<unitPattern count="one" draft="contributed">{0} st</unitPattern>
<unitPattern count="other" draft="contributed">{0} st</unitPattern>
<displayName>st</displayName>
<unitPattern count="one">{0} st</unitPattern>
<unitPattern count="other">{0} st</unitPattern>
</unit>
<unit type="mass-pound">
<displayName>পাউন্ড</displayName>
@@ -8117,6 +8131,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="torque-pound-force-foot">
<displayName>পাউন্ড-ফিট</displayName>
<unitPattern count="one">{0} lbf⋅ft</unitPattern>
<unitPattern count="other">{0} পাউন্ড-ফিট</unitPattern>
</unit>
<unit type="torque-newton-meter">
<displayName>নিউটন-একক</displayName>
<unitPattern count="one">{0} নিউটন-একক</unitPattern>
@@ -8256,6 +8275,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="volume-pinch">
<displayName>চিমটে</displayName>
<unitPattern count="one">{0} চিমটে</unitPattern>
<unitPattern count="other">{0} চিমটে</unitPattern>
</unit>
<coordinateUnit>
<displayName>প্রধান দিকনির্দেশ</displayName>
<coordinateUnitPattern type="east">{0} পূর্ব</coordinateUnitPattern>
@@ -8325,6 +8349,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<compoundUnit type="10p24">
<unitPrefixPattern>ইঃ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p1">
<unitPrefixPattern>{0}কি</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="per">
<compoundUnitPattern>{0}/{1}</compoundUnitPattern>
</compoundUnit>
@@ -8464,9 +8491,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="other">{0} L/km</unitPattern>
</unit>
<unit type="consumption-liter-per-100-kilometer">
<displayName>L/100km</displayName>
<unitPattern count="one">{0} L/100km</unitPattern>
<unitPattern count="other">{0} L/100km</unitPattern>
<displayName>লি/100কিমি</displayName>
<unitPattern count="one">{0} লি/100কিমি</unitPattern>
<unitPattern count="other">{0} লি/100কিমি</unitPattern>
</unit>
<unit type="consumption-mile-per-gallon">
<displayName>মাইল/গ্যালন</displayName>
@@ -8771,14 +8798,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="other">{0} au</unitPattern>
</unit>
<unit type="length-furlong">
<displayName draft="contributed">ফার্লং</displayName>
<unitPattern count="one" draft="contributed">{0} ফার্লং</unitPattern>
<unitPattern count="other" draft="contributed">{0} ফার্লং</unitPattern>
<displayName>ফার্লং</displayName>
<unitPattern count="one">{0} ফার্লং</unitPattern>
<unitPattern count="other">{0} ফার্লং</unitPattern>
</unit>
<unit type="length-fathom">
<displayName draft="contributed">fm</displayName>
<unitPattern count="one" draft="contributed">{0} fth</unitPattern>
<unitPattern count="other" draft="contributed">{0} fth</unitPattern>
<displayName>fm</displayName>
<unitPattern count="one">{0} fth</unitPattern>
<unitPattern count="other">{0} fth</unitPattern>
</unit>
<unit type="length-nautical-mile">
<displayName>nmi</displayName>
@@ -8836,9 +8863,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="other">{0} tn</unitPattern>
</unit>
<unit type="mass-stone">
<displayName draft="contributed">st</displayName>
<unitPattern count="one" draft="contributed">{0} st</unitPattern>
<unitPattern count="other" draft="contributed">{0} st</unitPattern>
<displayName>st</displayName>
<unitPattern count="one">{0} st</unitPattern>
<unitPattern count="other">{0} st</unitPattern>
</unit>
<unit type="mass-pound">
<displayName>পাউন্ড</displayName>
@@ -9101,6 +9128,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unit type="volume-barrel">
<displayName>ব্যারেল</displayName>
</unit>
<unit type="volume-pinch">
<displayName>চিমটে</displayName>
<unitPattern count="one">{0} চিমটে</unitPattern>
<unitPattern count="other">{0} চিমটে</unitPattern>
</unit>
<coordinateUnit>
<displayName>দিকনির্দেশ</displayName>
<coordinateUnitPattern type="east">{0}পূ</coordinateUnitPattern>
@@ -9170,6 +9202,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<compoundUnit type="10p24">
<unitPrefixPattern>ই{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p1">
<unitPrefixPattern>{0}কি</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p3">
<unitPrefixPattern>Gi{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="per">
<compoundUnitPattern>{0}/{1}</compoundUnitPattern>
</compoundUnit>
@@ -9235,9 +9273,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="other">{0}%</unitPattern>
</unit>
<unit type="consumption-liter-per-100-kilometer">
<displayName>L/100km</displayName>
<unitPattern count="one">{0} L/100km</unitPattern>
<unitPattern count="other">{0} L/100km</unitPattern>
<displayName>লি/100কিমি</displayName>
<unitPattern count="one">{0} লি/100কিমি</unitPattern>
<unitPattern count="other">{0} লি/100কিমি</unitPattern>
</unit>
<unit type="duration-century">
<displayName draft="contributed">শতক</displayName>
@@ -9632,6 +9670,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<characterLabelPattern type="scripts">লিপি — {0}</characterLabelPattern>
<characterLabelPattern type="strokes" count="one">{0} স্ট্রোক</characterLabelPattern>
<characterLabelPattern type="strokes" count="other">{0} স্ট্রোক</characterLabelPattern>
<characterLabelPattern type="subscript">সাবস্ক্রিপ্ট {0}</characterLabelPattern>
<characterLabelPattern type="superscript">সুপারস্ক্রিপ্ট {0}</characterLabelPattern>
<characterLabel type="activities">কার্যকলাপ</characterLabel>
<characterLabel type="african_scripts">আফ্রিকান লিপি</characterLabel>
<characterLabel type="american_scripts">আমেরিকান লিপি</characterLabel>

View File

@@ -103,6 +103,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<language type="chr">cherokee</language>
<language type="chy">cheyenne</language>
<language type="ckb">kurdeg sorani</language>
<language type="ckb" alt="menu">kurdeg kreiz</language>
<language type="co">korseg</language>
<language type="cop">kopteg</language>
<language type="cr">kri</language>
@@ -157,6 +158,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<language type="eu">euskareg</language>
<language type="ewo">ewondo</language>
<language type="fa">perseg</language>
<language type="fa_AF">dareg</language>
<language type="fan">fang</language>
<language type="fat">fanti</language>
<language type="ff">fula</language>
@@ -552,7 +554,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<language type="yue" alt="menu">sinaeg, kantoneg</language>
<language type="za">zhuang</language>
<language type="zap">zapoteg</language>
<language type="zbl">Bliss</language>
<language type="zbl">arouezioù Bliss</language>
<language type="zea">zelandeg</language>
<language type="zen">zenaga</language>
<language type="zgh">tamacheg Maroko standart</language>
@@ -993,6 +995,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<variant type="BISKE">rannyezh San Giorgio/Bila</variant>
<variant type="BOHORIC">lizherenneg Bohorič</variant>
<variant type="BOONT">boontling</variant>
<variant type="BORNHOLM">rannyezh Bornholm</variant>
<variant type="CISAUP">kizalpeg</variant>
<variant type="COLB1945">emglev 1945 war reizhskrivadur portugaleg Brazil</variant>
<variant type="CORNU">saozneg Kerne-Veur</variant>
@@ -1077,6 +1080,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<key type="collation">doare rummañ</key>
<key type="currency">moneiz</key>
<key type="hc">kelcʼhiad eurioù</key>
<key type="lb">stil torr linenn</key>
<key type="ms">reizhiad vuzuliañ</key>
<key type="numbers">niveroù</key>
</keys>
@@ -1099,6 +1103,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<type key="calendar" type="japanese">deiziadur japanat</type>
<type key="calendar" type="persian">deiziadur persek</type>
<type key="calendar" type="roc">deiziadur Republik Sina</type>
<type key="cf" type="account">furmad unanenn jediñ</type>
<type key="cf" type="standard">furmad moneiz standart</type>
<type key="collation" type="big5han">urzh rummañ sinaek hengounel - Big5</type>
<type key="collation" type="dictionary">urzh rummañ ar geriadur</type>
@@ -1119,6 +1124,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<type key="hc" type="h12">reizhiad 12 eurvezh (112)</type>
<type key="hc" type="h23">reizhiad 24 eurvezh (023)</type>
<type key="hc" type="h24">reizhiad 24 eurvezh (124)</type>
<type key="lb" type="loose">stil torr linenn lezober</type>
<type key="lb" type="normal">stil torr linenn boas</type>
<type key="lb" type="strict">stil torr linenn strizh</type>
<type key="ms" type="metric">reizhiad vetrek</type>
<type key="ms" type="uksystem">reizhiad vuzuliañ RU</type>
<type key="ms" type="ussystem">reizhiad vuzuliañ SU</type>
@@ -1193,7 +1201,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
</codePatterns>
</localeDisplayNames>
<characters>
<exemplarCharacters>[a b {ch} {cʼh} d e ê f g h i j k l m n ñ o p r s t u ù v w x y z]</exemplarCharacters>
<exemplarCharacters>[a b {cʼh} {ch} d e ê f g h i j k l m n ñ o p r s t u ù v w x y z]</exemplarCharacters>
<exemplarCharacters type="auxiliary">[á à ă â å ä ã ā æ c ç é è ĕ ë ē í ì ĭ î ï ī ó ò ŏ ô ö ø ō œ q ú ŭ û ü ū ÿ]</exemplarCharacters>
<exemplarCharacters type="index">[A B C D E F G H I J K L M N O P R S T U V W X Y Z]</exemplarCharacters>
<exemplarCharacters type="numbers">[  \- , % ‰ + 0 1 2 3 4 5 6 7 8 9]</exemplarCharacters>
@@ -1424,18 +1432,18 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<months>
<monthContext type="format">
<monthWidth type="abbreviated">
<month type="1">kentañ miz</month>
<month type="2">eil miz</month>
<month type="3">trede miz</month>
<month type="4">pevare miz</month>
<month type="5">pempvet miz</month>
<month type="6">cʼhwecʼhvet miz</month>
<month type="7">seizhvet miz</month>
<month type="8">eizhvet miz</month>
<month type="9">navet miz</month>
<month type="10">dekvet miz</month>
<month type="11">unnekvet miz</month>
<month type="12">daouzekvet miz</month>
<month type="1">miz 1</month>
<month type="2">miz 2</month>
<month type="3">miz 3</month>
<month type="4">miz 4</month>
<month type="5">miz 5</month>
<month type="6">miz 6</month>
<month type="7">miz 7</month>
<month type="8">miz 8</month>
<month type="9">miz 9</month>
<month type="10">miz 10</month>
<month type="11">miz 11</month>
<month type="12">miz 12</month>
</monthWidth>
<monthWidth type="narrow">
<month type="1">1</month>
@@ -1468,18 +1476,18 @@ CLDR data files are interpreted according to the LDML specification (http://unic
</monthContext>
<monthContext type="stand-alone">
<monthWidth type="abbreviated">
<month type="1">kentañ miz</month>
<month type="2">eil miz</month>
<month type="3">trede miz</month>
<month type="4">pevare miz</month>
<month type="5">pempvet miz</month>
<month type="6">cʼhwecʼhvet miz</month>
<month type="7">seizhvet miz</month>
<month type="8">eizhvet miz</month>
<month type="9">navet miz</month>
<month type="10">dekvet miz</month>
<month type="11">unnekvet miz</month>
<month type="12">daouzekvet miz</month>
<month type="1">miz 1</month>
<month type="2">miz 2</month>
<month type="3">miz 3</month>
<month type="4">miz 4</month>
<month type="5">miz 5</month>
<month type="6">miz 6</month>
<month type="7">miz 7</month>
<month type="8">miz 8</month>
<month type="9">miz 9</month>
<month type="10">miz 10</month>
<month type="11">miz 11</month>
<month type="12">miz 12</month>
</monthWidth>
<monthWidth type="narrow">
<month type="1">1</month>
@@ -6777,6 +6785,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
</field>
<field type="minute">
<displayName>munut</displayName>
<relative type="0">ar munut-mañ</relative>
<relativeTime type="future">
<relativeTimePattern count="one">a-benn {0} munut</relativeTimePattern>
<relativeTimePattern count="two">a-benn {0} vunut</relativeTimePattern>
@@ -8012,6 +8021,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<daylight>eur hañv Europa ar Reter</daylight>
</long>
</metazone>
<metazone type="Europe_Further_Eastern">
<long>
<standard>eur Kaliningrad</standard>
</long>
</metazone>
<metazone type="Europe_Western">
<long>
<generic>eur Europa ar Cʼhornôg</generic>
@@ -8099,6 +8113,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<standard>eur Guyana</standard>
</long>
</metazone>
<metazone type="Hawaii_Aleutian">
<long>
<generic>eur Hawaii hag an Aleouted</generic>
<standard>eur cʼhoañv Hawaii hag an Aleouted</standard>
<daylight>eur hañv Hawaii hag an Aleouted</daylight>
</long>
</metazone>
<metazone type="Hong_Kong">
<long>
<generic>eur Hong Kong</generic>
@@ -8215,6 +8236,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<standard>eur Line Islands</standard>
</long>
</metazone>
<metazone type="Lord_Howe">
<long>
<generic>eur Lord Howe</generic>
<standard>eur cʼhoañv Lord Howe</standard>
<daylight>eur hañv Lord Howe</daylight>
</long>
</metazone>
<metazone type="Macau">
<long>
<generic>eur Macau</generic>
@@ -8273,6 +8301,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<daylight>eur hañv Gwalarn Mecʼhiko</daylight>
</long>
</metazone>
<metazone type="Mexico_Pacific">
<long>
<generic>eur an Habask mecʼhikan</generic>
<standard>eur cʼhoañv an Habask mecʼhikan</standard>
<daylight>eur hañv an Habask mecʼhikan</daylight>
</long>
</metazone>
<metazone type="Mongolia">
<long>
<generic>eur Ulaanbaatar</generic>
@@ -8330,9 +8365,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic
</metazone>
<metazone type="Norfolk">
<long>
<generic draft="contributed">eur Enez Norfolk</generic>
<standard draft="contributed">eur cʼhoañv Enez Norfolk</standard>
<daylight draft="contributed">eur hañv Enez Norfolk</daylight>
<generic>eur Enez Norfolk</generic>
<standard>eur cʼhoañv Enez Norfolk</standard>
<daylight>eur hañv Enez Norfolk</daylight>
</long>
</metazone>
<metazone type="Noronha">
@@ -8342,6 +8377,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<daylight>eur hañv Fernando de Noronha</daylight>
</long>
</metazone>
<metazone type="North_Mariana">
<long>
<standard>eur Mariana an Norzh</standard>
</long>
</metazone>
<metazone type="Novosibirsk">
<long>
<generic>eur Novosibirsk</generic>
@@ -8411,6 +8451,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<standard>eur Pitcairn</standard>
</long>
</metazone>
<metazone type="Ponape">
<long>
<standard>eur Pohnpei</standard>
</long>
</metazone>
<metazone type="Pyongyang">
<long>
<standard>eur Pʼyongyang</standard>
@@ -8600,6 +8645,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<percentSign>٪؜</percentSign>
<plusSign>؜+</plusSign>
<minusSign>؜-</minusSign>
<approximatelySign>~</approximatelySign>
<exponential>اس</exponential>
<superscriptingExponent>×</superscriptingExponent>
<perMille>؉</perMille>
@@ -8682,6 +8728,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<percentSign>%</percentSign>
<plusSign>+</plusSign>
<minusSign>-</minusSign>
<approximatelySign>~</approximatelySign>
<exponential>E</exponential>
<superscriptingExponent>×</superscriptingExponent>
<perMille></perMille>
@@ -9524,6 +9571,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<displayName count="other">peso Chile</displayName>
<symbol draft="contributed">CLP</symbol>
</currency>
<currency type="CNH">
<displayName>yuan Sina (diavaez)</displayName>
<displayName count="one">yuan Sina (diavaez)</displayName>
<displayName count="two">yuan Sina (diavaez)</displayName>
<displayName count="few">yuan Sina (diavaez)</displayName>
<displayName count="many">a yuanoù Sina (diavaez)</displayName>
<displayName count="other">yuan Sina (diavaez)</displayName>
</currency>
<currency type="CNX">
<displayName>dollar Bank poblel Sina</displayName>
<displayName count="one">dollar Bank poblel Sina</displayName>
@@ -11451,6 +11506,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<displayName count="other">unanenn voneiz amprouiñ</displayName>
<symbol draft="contributed">XTS</symbol>
</currency>
<currency type="XUA">
<displayName>unanenn jediñ BAD</displayName>
<displayName count="one">unanenn jediñ BAD</displayName>
<displayName count="two">unanenn jediñ BAD</displayName>
<displayName count="few">unanenn jediñ BAD</displayName>
<displayName count="many">a unanennoù jediñ BAD</displayName>
<displayName count="other">unanenn jediñ BAD</displayName>
</currency>
<currency type="XXX">
<displayName>moneiz dianav</displayName>
<displayName count="one">(moneiz dianav)</displayName>
@@ -11583,17 +11646,123 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<pluralMinimalPairs count="few">{0} cʼhi-error</pluralMinimalPairs>
<pluralMinimalPairs count="many">{0} a chas</pluralMinimalPairs>
<pluralMinimalPairs count="other">{0} ki</pluralMinimalPairs>
<ordinalMinimalPairs ordinal="other" draft="contributed">{0}vet</ordinalMinimalPairs>
<ordinalMinimalPairs ordinal="other">{0}vet</ordinalMinimalPairs>
</minimalPairs>
</numbers>
<units>
<unitLength type="long">
<compoundUnit type="10p-1">
<unitPrefixPattern>deki{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-2">
<unitPrefixPattern>kenti{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-3">
<unitPrefixPattern>mili{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
<unitPrefixPattern>mikro{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>nano{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-12">
<unitPrefixPattern>piko{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-15">
<unitPrefixPattern>femto{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-18">
<unitPrefixPattern>ato{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-21">
<unitPrefixPattern>zepto{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-24">
<unitPrefixPattern>yokto{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p1">
<unitPrefixPattern>deka{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p2">
<unitPrefixPattern>hekto{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p3">
<unitPrefixPattern>kilo{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p6">
<unitPrefixPattern>mega{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p9">
<unitPrefixPattern>giga{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p12">
<unitPrefixPattern>tera{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p15">
<unitPrefixPattern>peta{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p18">
<unitPrefixPattern>eksa{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p21">
<unitPrefixPattern>zeta{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p24">
<unitPrefixPattern>yota{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p1">
<unitPrefixPattern>kibi{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p2">
<unitPrefixPattern>mebi{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p3">
<unitPrefixPattern>gibi{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p4">
<unitPrefixPattern>tebi{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p5">
<unitPrefixPattern>pebi{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p6">
<unitPrefixPattern>eksbi{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p7">
<unitPrefixPattern>zebi{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p8">
<unitPrefixPattern>yobe{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="per">
<compoundUnitPattern>{0} dre {1}</compoundUnitPattern>
</compoundUnit>
<compoundUnit type="power2">
<compoundUnitPattern1 count="one">{0} karrez</compoundUnitPattern1>
<compoundUnitPattern1 count="two">{0} karrez</compoundUnitPattern1>
<compoundUnitPattern1 count="few">{0} karrez</compoundUnitPattern1>
<compoundUnitPattern1 count="many">{0} karrez</compoundUnitPattern1>
<compoundUnitPattern1 count="other">{0} karrez</compoundUnitPattern1>
</compoundUnit>
<compoundUnit type="power3">
<compoundUnitPattern1 count="one">{0} diñs</compoundUnitPattern1>
<compoundUnitPattern1 count="two">{0} diñs</compoundUnitPattern1>
<compoundUnitPattern1 count="few">{0} diñs</compoundUnitPattern1>
<compoundUnitPattern1 count="many">{0} diñs</compoundUnitPattern1>
<compoundUnitPattern1 count="other">{0} diñs</compoundUnitPattern1>
</compoundUnit>
<compoundUnit type="times">
<compoundUnitPattern>{0}-{1}</compoundUnitPattern>
</compoundUnit>
<unit type="acceleration-g-force">
<displayName>buanadur g</displayName>
<unitPattern count="one">{0} buanadur g</unitPattern>
<unitPattern count="two">{0} vuanadur g</unitPattern>
<unitPattern count="few">{0} buanadur g</unitPattern>
<unitPattern count="many">{0} a vuanadurioù g</unitPattern>
<unitPattern count="other">{0} buanadur g</unitPattern>
</unit>
<unit type="acceleration-meter-per-square-second">
<displayName>metroù dre eilenn garrez</displayName>
<unitPattern count="one">{0} metr dre eilenn garrez</unitPattern>
@@ -12134,6 +12303,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<unitPattern count="many">{0} a hertzoù</unitPattern>
<unitPattern count="other">{0} hertz</unitPattern>
</unit>
<unit type="graphics-em">
<displayName>esaouenn em</displayName>
<unitPattern count="one">{0} esaouenn em</unitPattern>
<unitPattern count="two">{0} esaouenn em</unitPattern>
<unitPattern count="few">{0} esaouenn em</unitPattern>
<unitPattern count="many">{0} a esaouennoù em</unitPattern>
<unitPattern count="other">{0} esaouenn em</unitPattern>
</unit>
<unit type="graphics-pixel">
<displayName>pikselioù</displayName>
<unitPattern count="one">{0} piksel</unitPattern>
@@ -12182,6 +12359,22 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<unitPattern count="many">{0} a bikoù dre veutad</unitPattern>
<unitPattern count="other">{0} pik dre veutad</unitPattern>
</unit>
<unit type="graphics-dot">
<displayName>pik</displayName>
<unitPattern count="one">{0} pik</unitPattern>
<unitPattern count="two">{0} bik</unitPattern>
<unitPattern count="few">{0} fik</unitPattern>
<unitPattern count="many">{0} a bikoù</unitPattern>
<unitPattern count="other">{0} pik</unitPattern>
</unit>
<unit type="length-earth-radius">
<displayName>skin douar</displayName>
<unitPattern count="one">{0} skin douar</unitPattern>
<unitPattern count="two">{0} skin douar</unitPattern>
<unitPattern count="few">{0} skin douar</unitPattern>
<unitPattern count="many">{0} a skinoù douar</unitPattern>
<unitPattern count="other">{0} skin douar</unitPattern>
</unit>
<unit type="length-kilometer">
<displayName>kilometroù</displayName>
<unitPattern count="one">{0} c'hilometr</unitPattern>
@@ -12363,6 +12556,22 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<unitPattern count="many">{0} a luksoù</unitPattern>
<unitPattern count="other">{0} luks</unitPattern>
</unit>
<unit type="light-candela">
<displayName>kandelaoù</displayName>
<unitPattern count="one">{0} c'handela</unitPattern>
<unitPattern count="two">{0} gandela</unitPattern>
<unitPattern count="few">{0} c'handela</unitPattern>
<unitPattern count="many">{0} a gandelaoù</unitPattern>
<unitPattern count="other">{0} kandela</unitPattern>
</unit>
<unit type="light-lumen">
<displayName>lumenoù</displayName>
<unitPattern count="one">{0} lumen</unitPattern>
<unitPattern count="two">{0} lumen</unitPattern>
<unitPattern count="few">{0} lumen</unitPattern>
<unitPattern count="many">{0} a lumenoù</unitPattern>
<unitPattern count="other">{0} lumen</unitPattern>
</unit>
<unit type="mass-metric-ton">
<displayName>tonennoù metrek</displayName>
<unitPattern count="one">{0} donenn vetrek</unitPattern>
@@ -12479,6 +12688,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<unitPattern count="many">{0} a dolzadoù heol</unitPattern>
<unitPattern count="other">{0} tolzad heol</unitPattern>
</unit>
<unit type="mass-grain">
<unitPattern count="one">{0} greunad</unitPattern>
<unitPattern count="two">{0} c'hreunad</unitPattern>
<unitPattern count="few">{0} greunad</unitPattern>
<unitPattern count="many">{0} a c'hreunadoù</unitPattern>
<unitPattern count="other">{0} greunad</unitPattern>
</unit>
<unit type="power-gigawatt">
<displayName>gigawattoù</displayName>
<unitPattern count="one">{0} gigawatt</unitPattern>
@@ -12527,6 +12743,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<unitPattern count="many">{0} a varc'hadoù nerzh</unitPattern>
<unitPattern count="other">{0} marc'had nerzh</unitPattern>
</unit>
<unit type="pressure-millimeter-ofhg">
<displayName>milimetradoù merkur</displayName>
<unitPattern count="one">{0} milimetrad merkur</unitPattern>
<unitPattern count="two">{0} vilimetrad merkur</unitPattern>
<unitPattern count="few">{0} milimetrad merkur</unitPattern>
<unitPattern count="many">{0} a vilimetradoù merkur</unitPattern>
<unitPattern count="other">{0} milimetrad merkur</unitPattern>
</unit>
<unit type="pressure-pound-force-per-square-inch">
<displayName>lurioù dre veutad karrez</displayName>
<unitPattern count="one">{0} lur dre veutad karrez</unitPattern>
@@ -12535,6 +12759,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<unitPattern count="many">{0} a lurioù dre veutad karrez</unitPattern>
<unitPattern count="other">{0} lur dre veutad karrez</unitPattern>
</unit>
<unit type="pressure-inch-ofhg">
<displayName>meutadoù merkur</displayName>
<unitPattern count="one">{0} meutad merkur</unitPattern>
<unitPattern count="two">{0} veutad merkur</unitPattern>
<unitPattern count="few">{0} meutad merkur</unitPattern>
<unitPattern count="many">{0} a veutadoù merkur</unitPattern>
<unitPattern count="other">{0} meutad merkur</unitPattern>
</unit>
<unit type="pressure-bar">
<displayName>baroù</displayName>
<unitPattern count="one">{0} bar</unitPattern>
@@ -12551,6 +12783,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<unitPattern count="many">{0} a vilibaroù</unitPattern>
<unitPattern count="other">{0} milibar</unitPattern>
</unit>
<unit type="pressure-atmosphere">
<displayName>atmosfer</displayName>
<unitPattern count="one">{0} atmosfer</unitPattern>
<unitPattern count="two">{0} atmosfer</unitPattern>
<unitPattern count="few">{0} atmosfer</unitPattern>
<unitPattern count="many">{0} a atmosferoù</unitPattern>
<unitPattern count="other">{0} atmosfer</unitPattern>
</unit>
<unit type="pressure-pascal">
<displayName>paskaloù</displayName>
<unitPattern count="one">{0} paskal</unitPattern>
@@ -12876,7 +13116,64 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<unitPattern count="many">{0} a varilhoù</unitPattern>
<unitPattern count="other">{0} barilh</unitPattern>
</unit>
<unit type="volume-dessert-spoon">
<displayName>loaiad dibenn-pred</displayName>
<unitPattern count="one">{0} loaiad dibenn-pred</unitPattern>
<unitPattern count="two">{0} loaiad dibenn-pred</unitPattern>
<unitPattern count="few">{0} loaiad dibenn-pred</unitPattern>
<unitPattern count="many">{0} a loaiadoù dibenn-pred</unitPattern>
<unitPattern count="other">{0} loaiad dibenn-pred</unitPattern>
</unit>
<unit type="volume-dessert-spoon-imperial">
<displayName>loaiad dibenn-pred impalaerel</displayName>
<unitPattern count="one">{0} loaiad dibenn-pred impalaerel</unitPattern>
<unitPattern count="two">{0} loaiad dibenn-pred impalaerel</unitPattern>
<unitPattern count="few">{0} loaiad dibenn-pred impalaerel</unitPattern>
<unitPattern count="many">{0} a loaiadoù dibenn-pred impalaerel</unitPattern>
<unitPattern count="other">{0} loaiad dibenn-pred impalaerel</unitPattern>
</unit>
<unit type="volume-drop">
<displayName>takenn</displayName>
<unitPattern count="one">{0} dakenn</unitPattern>
<unitPattern count="two">{0} dakenn</unitPattern>
<unitPattern count="few">{0} zakenn</unitPattern>
<unitPattern count="many">{0} a dakennoù</unitPattern>
<unitPattern count="other">{0} takenn</unitPattern>
</unit>
<unit type="volume-dram">
<displayName>drakm liñvel</displayName>
<unitPattern count="one">{0} drakm liñvel</unitPattern>
<unitPattern count="two">{0} zrakm liñvel</unitPattern>
<unitPattern count="few">{0} drakm liñvel</unitPattern>
<unitPattern count="many">{0} a zrakmoù liñvel</unitPattern>
<unitPattern count="other">{0} drakm liñvel</unitPattern>
</unit>
<unit type="volume-jigger">
<displayName>shot</displayName>
<unitPattern count="one">{0} shot</unitPattern>
<unitPattern count="two">{0} shot</unitPattern>
<unitPattern count="few">{0} shot</unitPattern>
<unitPattern count="many">{0} a shotoù</unitPattern>
<unitPattern count="other">{0} shot</unitPattern>
</unit>
<unit type="volume-pinch">
<displayName>piñsad</displayName>
<unitPattern count="one">{0} piñsad</unitPattern>
<unitPattern count="two">{0} biñsad</unitPattern>
<unitPattern count="few">{0} fiñsad</unitPattern>
<unitPattern count="many">{0} a biñsadoù</unitPattern>
<unitPattern count="other">{0} piñsad</unitPattern>
</unit>
<unit type="volume-quart-imperial">
<displayName>kardoù impalaerel</displayName>
<unitPattern count="one">{0} c'hard impalaerel</unitPattern>
<unitPattern count="two">{0} gard impalaerel</unitPattern>
<unitPattern count="few">{0} c'hard impalaerel</unitPattern>
<unitPattern count="many">{0} a gardoù impalaerel</unitPattern>
<unitPattern count="other">{0} kard impalaerel</unitPattern>
</unit>
<coordinateUnit>
<displayName>durcʼhadur</displayName>
<coordinateUnitPattern type="east">{0} Reter</coordinateUnitPattern>
<coordinateUnitPattern type="north">{0} Norzh</coordinateUnitPattern>
<coordinateUnitPattern type="south">{0} Su</coordinateUnitPattern>
@@ -13443,6 +13740,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<unitPattern count="many">{0} pdm</unitPattern>
<unitPattern count="other">{0} pdm</unitPattern>
</unit>
<unit type="graphics-dot">
<displayName>pik</displayName>
<unitPattern count="one">{0} pik</unitPattern>
<unitPattern count="two">{0} pik</unitPattern>
<unitPattern count="few">{0} pik</unitPattern>
<unitPattern count="many">{0} pik</unitPattern>
<unitPattern count="other">{0} pik</unitPattern>
</unit>
<unit type="length-kilometer">
<displayName>km</displayName>
<unitPattern count="one">{0} km</unitPattern>
@@ -13686,6 +13991,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<unitPattern count="many">{0} CD</unitPattern>
<unitPattern count="other">{0} CD</unitPattern>
</unit>
<unit type="mass-grain">
<displayName>gr</displayName>
<unitPattern count="one">{0} gr</unitPattern>
<unitPattern count="two">{0} gr</unitPattern>
<unitPattern count="few">{0} gr</unitPattern>
<unitPattern count="many">{0} gr</unitPattern>
<unitPattern count="other">{0} gr</unitPattern>
</unit>
<unit type="power-gigawatt">
<displayName>GW</displayName>
<unitPattern count="one">{0} GW</unitPattern>
@@ -14027,7 +14340,64 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<unitPattern count="many">{0} l.-g.</unitPattern>
<unitPattern count="other">{0} l.-g.</unitPattern>
</unit>
<unit type="volume-dessert-spoon">
<displayName>l.d.-b.</displayName>
<unitPattern count="one">{0} l.d.-b.</unitPattern>
<unitPattern count="two">{0} l.d.-b.</unitPattern>
<unitPattern count="few">{0} l.d.-b.</unitPattern>
<unitPattern count="many">{0} l.d.-b.</unitPattern>
<unitPattern count="other">{0} l.d.-b.</unitPattern>
</unit>
<unit type="volume-dessert-spoon-imperial">
<displayName>l.d.-b. imp.</displayName>
<unitPattern count="one">{0} l.d.-b. imp.</unitPattern>
<unitPattern count="two">{0} l.d.-b. imp.</unitPattern>
<unitPattern count="few">{0} l.d.-b. imp.</unitPattern>
<unitPattern count="many">{0} l.d.-b. imp.</unitPattern>
<unitPattern count="other">{0} l.d.-b. imp.</unitPattern>
</unit>
<unit type="volume-drop">
<displayName>gt</displayName>
<unitPattern count="one">{0} gt</unitPattern>
<unitPattern count="two">{0} gt</unitPattern>
<unitPattern count="few">{0} gt</unitPattern>
<unitPattern count="many">{0} gt</unitPattern>
<unitPattern count="other">{0} gt</unitPattern>
</unit>
<unit type="volume-dram">
<displayName>fl dr</displayName>
<unitPattern count="one">{0} fl dr</unitPattern>
<unitPattern count="two">{0} fl dr</unitPattern>
<unitPattern count="few">{0} fl dr</unitPattern>
<unitPattern count="many">{0} fl dr</unitPattern>
<unitPattern count="other">{0} fl dr</unitPattern>
</unit>
<unit type="volume-jigger">
<displayName>shot</displayName>
<unitPattern count="one">{0} shot</unitPattern>
<unitPattern count="two">{0} shot</unitPattern>
<unitPattern count="few">{0} shot</unitPattern>
<unitPattern count="many">{0} shot</unitPattern>
<unitPattern count="other">{0} shot</unitPattern>
</unit>
<unit type="volume-pinch">
<displayName>piñs</displayName>
<unitPattern count="one">{0} piñs</unitPattern>
<unitPattern count="two">{0} piñs</unitPattern>
<unitPattern count="few">{0} piñs</unitPattern>
<unitPattern count="many">{0} piñs</unitPattern>
<unitPattern count="other">{0} piñs</unitPattern>
</unit>
<unit type="volume-quart-imperial">
<displayName>qt Imp.</displayName>
<unitPattern count="one">{0} qt Imp.</unitPattern>
<unitPattern count="two">{0} qt Imp.</unitPattern>
<unitPattern count="few">{0} qt Imp.</unitPattern>
<unitPattern count="many">{0} qt Imp.</unitPattern>
<unitPattern count="other">{0} qt Imp.</unitPattern>
</unit>
<coordinateUnit>
<displayName>durcʼhadur</displayName>
<coordinateUnitPattern type="east">{0} R</coordinateUnitPattern>
<coordinateUnitPattern type="north">{0} N</coordinateUnitPattern>
<coordinateUnitPattern type="south">{0} S</coordinateUnitPattern>
@@ -14202,6 +14572,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<unitPattern count="many">{0}mmol/l</unitPattern>
<unitPattern count="other">{0}mmol/l</unitPattern>
</unit>
<unit type="concentr-permillion">
<unitPattern count="one">{0}ppm</unitPattern>
<unitPattern count="two">{0}ppm</unitPattern>
<unitPattern count="few">{0}ppm</unitPattern>
<unitPattern count="many">{0}ppm</unitPattern>
<unitPattern count="other">{0}ppm</unitPattern>
</unit>
<unit type="concentr-percent">
<unitPattern count="one">{0}%</unitPattern>
<unitPattern count="two">{0}%</unitPattern>
@@ -14635,6 +15012,21 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<unitPattern count="many">{0}pdm</unitPattern>
<unitPattern count="other">{0}pdm</unitPattern>
</unit>
<unit type="graphics-dot">
<displayName>pik</displayName>
<unitPattern count="one">{0}pik</unitPattern>
<unitPattern count="two">{0}pik</unitPattern>
<unitPattern count="few">{0}pik</unitPattern>
<unitPattern count="many">{0}pik</unitPattern>
<unitPattern count="other">{0}pik</unitPattern>
</unit>
<unit type="length-earth-radius">
<unitPattern count="one">{0}R⊕</unitPattern>
<unitPattern count="two">{0}R⊕</unitPattern>
<unitPattern count="few">{0}R⊕</unitPattern>
<unitPattern count="many">{0}R⊕</unitPattern>
<unitPattern count="other">{0}R⊕</unitPattern>
</unit>
<unit type="length-kilometer">
<displayName>km</displayName>
<unitPattern count="one">{0}km</unitPattern>
@@ -14813,6 +15205,20 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<unitPattern count="many">{0}lx</unitPattern>
<unitPattern count="other">{0}lx</unitPattern>
</unit>
<unit type="light-candela">
<unitPattern count="one">{0}cd</unitPattern>
<unitPattern count="two">{0}cd</unitPattern>
<unitPattern count="few">{0}cd</unitPattern>
<unitPattern count="many">{0}cd</unitPattern>
<unitPattern count="other">{0}cd</unitPattern>
</unit>
<unit type="light-lumen">
<unitPattern count="one">{0}lm</unitPattern>
<unitPattern count="two">{0}lm</unitPattern>
<unitPattern count="few">{0}lm</unitPattern>
<unitPattern count="many">{0}lm</unitPattern>
<unitPattern count="other">{0}lm</unitPattern>
</unit>
<unit type="light-solar-luminosity">
<unitPattern count="one">{0}L☉</unitPattern>
<unitPattern count="two">{0}L☉</unitPattern>
@@ -14931,6 +15337,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<unitPattern count="many">{0}M☉</unitPattern>
<unitPattern count="other">{0}M☉</unitPattern>
</unit>
<unit type="mass-grain">
<displayName>gr</displayName>
<unitPattern count="one">{0}gr</unitPattern>
<unitPattern count="two">{0}gr</unitPattern>
<unitPattern count="few">{0}gr</unitPattern>
<unitPattern count="many">{0}gr</unitPattern>
<unitPattern count="other">{0}gr</unitPattern>
</unit>
<unit type="power-gigawatt">
<unitPattern count="one">{0}GW</unitPattern>
<unitPattern count="two">{0}GW</unitPattern>
@@ -15344,7 +15758,64 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<unitPattern count="many">{0}bbl</unitPattern>
<unitPattern count="other">{0}bbl</unitPattern>
</unit>
<unit type="volume-dessert-spoon">
<displayName>l.d.-b.</displayName>
<unitPattern count="one">{0}l.d.-b.</unitPattern>
<unitPattern count="two">{0}l.d.-b.</unitPattern>
<unitPattern count="few">{0}l.d.-b.</unitPattern>
<unitPattern count="many">{0}l.d.-b.</unitPattern>
<unitPattern count="other">{0}l.d.-b.</unitPattern>
</unit>
<unit type="volume-dessert-spoon-imperial">
<displayName>ldb Imp</displayName>
<unitPattern count="one">{0}ldb Imp</unitPattern>
<unitPattern count="two">{0}ldb Imp</unitPattern>
<unitPattern count="few">{0}ldb Imp</unitPattern>
<unitPattern count="many">{0}ldb Imp</unitPattern>
<unitPattern count="other">{0}ldb Imp</unitPattern>
</unit>
<unit type="volume-drop">
<displayName>gt</displayName>
<unitPattern count="one">{0}gt</unitPattern>
<unitPattern count="two">{0}gt</unitPattern>
<unitPattern count="few">{0}gt</unitPattern>
<unitPattern count="many">{0}gt</unitPattern>
<unitPattern count="other">{0}gt</unitPattern>
</unit>
<unit type="volume-dram">
<displayName>fl dr</displayName>
<unitPattern count="one">{0}fl dr</unitPattern>
<unitPattern count="two">{0}fl dr</unitPattern>
<unitPattern count="few">{0}fl dr</unitPattern>
<unitPattern count="many">{0}fl dr</unitPattern>
<unitPattern count="other">{0}fl dr</unitPattern>
</unit>
<unit type="volume-jigger">
<displayName>shot</displayName>
<unitPattern count="one">{0}shot</unitPattern>
<unitPattern count="two">{0}shot</unitPattern>
<unitPattern count="few">{0}shot</unitPattern>
<unitPattern count="many">{0}shot</unitPattern>
<unitPattern count="other">{0}shot</unitPattern>
</unit>
<unit type="volume-pinch">
<displayName>piñs</displayName>
<unitPattern count="one">{0}piñs</unitPattern>
<unitPattern count="two">{0}piñs</unitPattern>
<unitPattern count="few">{0}piñs</unitPattern>
<unitPattern count="many">{0}piñs</unitPattern>
<unitPattern count="other">{0}piñs</unitPattern>
</unit>
<unit type="volume-quart-imperial">
<displayName>qt Imp.</displayName>
<unitPattern count="one">{0}qt Imp.</unitPattern>
<unitPattern count="two">{0}qt Imp.</unitPattern>
<unitPattern count="few">{0}qt Imp.</unitPattern>
<unitPattern count="many">{0}qt Imp.</unitPattern>
<unitPattern count="other">{0}qt Imp.</unitPattern>
</unit>
<coordinateUnit>
<displayName>durcʼhadur</displayName>
<coordinateUnitPattern type="east">{0}R</coordinateUnitPattern>
<coordinateUnitPattern type="north">{0}N</coordinateUnitPattern>
<coordinateUnitPattern type="south">{0}S</coordinateUnitPattern>
@@ -15410,12 +15881,22 @@ CLDR data files are interpreted according to the LDML specification (http://unic
</messages>
</posix>
<characterLabels>
<characterLabelPattern type="all">{0} — holl</characterLabelPattern>
<characterLabelPattern type="category-list">{0} : {1}</characterLabelPattern>
<characterLabelPattern type="compatibility">{0} — kenglotusted</characterLabelPattern>
<characterLabelPattern type="enclosed">{0} — kelcʼhiet</characterLabelPattern>
<characterLabelPattern type="extended">{0} — astennet</characterLabelPattern>
<characterLabelPattern type="historic">{0} — istorel</characterLabelPattern>
<characterLabelPattern type="miscellaneous">{0} — liesseurt</characterLabelPattern>
<characterLabelPattern type="other">{0} — all</characterLabelPattern>
<characterLabelPattern type="scripts">skriturioù — {0}</characterLabelPattern>
<characterLabelPattern type="strokes" count="one">{0} linenn</characterLabelPattern>
<characterLabelPattern type="strokes" count="two">{0} linenn</characterLabelPattern>
<characterLabelPattern type="strokes" count="few">{0} linenn</characterLabelPattern>
<characterLabelPattern type="strokes" count="many">{0} a linennoù</characterLabelPattern>
<characterLabelPattern type="strokes" count="other">{0} linenn</characterLabelPattern>
<characterLabelPattern type="subscript">isskridad {0}</characterLabelPattern>
<characterLabelPattern type="superscript">usskridad {0}</characterLabelPattern>
<characterLabel type="activities">obererezh</characterLabel>
<characterLabel type="african_scripts">skritur Afrika</characterLabel>
<characterLabel type="american_scripts">skritur Amerika</characterLabel>
@@ -15423,40 +15904,68 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<characterLabel type="animals_nature">loened pe natur</characterLabel>
<characterLabel type="arrows">biroù</characterLabel>
<characterLabel type="body">korf</characterLabel>
<characterLabel type="box_drawing">rizennoù</characterLabel>
<characterLabel type="braille">skritur Braille</characterLabel>
<characterLabel type="building">savadur</characterLabel>
<characterLabel type="bullets_stars">krug pe steredenn</characterLabel>
<characterLabel type="consonantal_jamo">kensonennoù jamo</characterLabel>
<characterLabel type="currency_symbols">arouez moneiz</characterLabel>
<characterLabel type="dash_connector">barrennig pe kennasker</characterLabel>
<characterLabel type="digits">sifr</characterLabel>
<characterLabel type="dingbats">arouez Dingbat</characterLabel>
<characterLabel type="divination_symbols">arouez divinouriezh</characterLabel>
<characterLabel type="east_asian_scripts">skriturioù Azia ar Reter</characterLabel>
<characterLabel type="european_scripts">skritur europat</characterLabel>
<characterLabel type="female">benel</characterLabel>
<characterLabel type="flag">banniel</characterLabel>
<characterLabel type="flags">bannieloù</characterLabel>
<characterLabel type="food_drink">boued hag evaj</characterLabel>
<characterLabel type="format">furmad</characterLabel>
<characterLabel type="format_whitespace">furmad hag esaouennoù</characterLabel>
<characterLabel type="han_characters">arouezennoù han</characterLabel>
<characterLabel type="han_radicals">gwrizienn han</characterLabel>
<characterLabel type="hanja">arouezenn hanja</characterLabel>
<characterLabel type="hanzi_simplified">arouezennoù han (eeunaet)</characterLabel>
<characterLabel type="hanzi_traditional">arouezennoù han (hengounel)</characterLabel>
<characterLabel type="heart">kalon</characterLabel>
<characterLabel type="historic_scripts">skritur istorel</characterLabel>
<characterLabel type="male">gourel</characterLabel>
<characterLabel type="math_symbols">arouez matematikel</characterLabel>
<characterLabel type="middle_eastern_scripts">skriturioù Reter-Kreiz</characterLabel>
<characterLabel type="miscellaneous">liesseurt</characterLabel>
<characterLabel type="modern_scripts">skritur modern</characterLabel>
<characterLabel type="modifier">kemmañ</characterLabel>
<characterLabel type="nature">natur</characterLabel>
<characterLabel type="numbers">niveroù</characterLabel>
<characterLabel type="objects">tra</characterLabel>
<characterLabel type="other">all</characterLabel>
<characterLabel type="person">den</characterLabel>
<characterLabel type="phonetic_alphabet">lizherenneg soniadel</characterLabel>
<characterLabel type="pictographs">piktogramm</characterLabel>
<characterLabel type="place">lecʼh</characterLabel>
<characterLabel type="plant">plant</characterLabel>
<characterLabel type="punctuation">poentadur</characterLabel>
<characterLabel type="sign_standard_symbols">sin pe arouez</characterLabel>
<characterLabel type="small_form_variant">adstummoù bihan</characterLabel>
<characterLabel type="smiley">fromlun</characterLabel>
<characterLabel type="smileys_people">fromlun pe den</characterLabel>
<characterLabel type="south_asian_scripts">skriturioù Azia ar Su</characterLabel>
<characterLabel type="southeast_asian_scripts">skriturioù Azia ar Gevred</characterLabel>
<characterLabel type="sport">sport</characterLabel>
<characterLabel type="symbols">arouez</characterLabel>
<characterLabel type="technical_symbols">arouez teknikel</characterLabel>
<characterLabel type="travel">beaj</characterLabel>
<characterLabel type="travel_places">beaj ha lecʼhioù</characterLabel>
<characterLabel type="travel_places">beaj pe lecʼh</characterLabel>
<characterLabel type="variant_forms">adstumm</characterLabel>
<characterLabel type="vocalic_jamo">bogalennoù jamo</characterLabel>
<characterLabel type="weather">amzer</characterLabel>
<characterLabel type="western_asian_scripts">skriturioù Azia ar Cʼhonôg</characterLabel>
<characterLabel type="whitespace">esaouenn</characterLabel>
</characterLabels>
<typographicNames>
<axisName type="ital">italek</axisName>
<axisName type="opsz">korf optikel</axisName>
<axisName type="slnt">stouadur</axisName>
<axisName type="wdth">ledander</axisName>
<axisName type="wght">tevder</axisName>
<styleName type="ital" subtype="1">red</styleName>
@@ -15465,7 +15974,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<styleName type="opsz" subtype="18">titlañ</styleName>
<styleName type="opsz" subtype="72">diskwel</styleName>
<styleName type="opsz" subtype="144">skritell</styleName>
<styleName type="slnt" subtype="-12">kilstouet</styleName>
<styleName type="slnt" subtype="0">a-serzh</styleName>
<styleName type="slnt" subtype="12">stouet</styleName>
<featureName type="afrc">kevrennoù</featureName>
<featureName type="ordn">niveroù petvediñ</featureName>
<featureName type="smcp">pennlizherennoù bihan</featureName>
<featureName type="zero">teskad goullo</featureName>

View File

@@ -2047,9 +2047,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<zone type="Europe/Kaliningrad">
<exemplarCity>कालिलीनग्राड</exemplarCity>
</zone>
<zone type="Europe/Simferopol">
<exemplarCity>सिम्फेरोपोल</exemplarCity>
</zone>
<zone type="Europe/Moscow">
<exemplarCity>मॉस्को</exemplarCity>
</zone>
@@ -2194,6 +2191,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<zone type="Europe/Kiev">
<exemplarCity>कीव</exemplarCity>
</zone>
<zone type="Europe/Simferopol">
<exemplarCity>सिम्फेरोपोल</exemplarCity>
</zone>
<zone type="Europe/Zaporozhye">
<exemplarCity>झापरोझ्य</exemplarCity>
</zone>

File diff suppressed because it is too large Load Diff

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