mirror of
https://github.com/JetBrains/JetBrainsRuntime.git
synced 2025-12-09 02:49:40 +01:00
Compare commits
564 Commits
jb17.0.6-b
...
jb17.0.8-b
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7ba046a156 | ||
|
|
e861712bea | ||
|
|
6f2f19e722 | ||
|
|
4e76175851 | ||
|
|
f011d26954 | ||
|
|
067e2c62c4 | ||
|
|
f1a420b206 | ||
|
|
3ad32534fe | ||
|
|
b4cfa9a6a1 | ||
|
|
7a5e9e0339 | ||
|
|
a3a6a062f8 | ||
|
|
b4b19c9c89 | ||
|
|
6cd47d5ba9 | ||
|
|
ac99bb6ee3 | ||
|
|
4f010280b6 | ||
|
|
8e55072f29 | ||
|
|
af469d0f5a | ||
|
|
a435bf557f | ||
|
|
109a5a1e7c | ||
|
|
6514695e5b | ||
|
|
645b1f00ea | ||
|
|
caeda299bf | ||
|
|
c011d20d59 | ||
|
|
f826a974f0 | ||
|
|
50cbcf90fd | ||
|
|
a62c2cf297 | ||
|
|
7eb91cfbd7 | ||
|
|
f88071c8d9 | ||
|
|
0ae395bb50 | ||
|
|
912e20a9d3 | ||
|
|
735c9b1d60 | ||
|
|
fdf9368f83 | ||
|
|
82ddad690c | ||
|
|
e68148daea | ||
|
|
3c8d6b1bea | ||
|
|
77c9100a53 | ||
|
|
c2117edf82 | ||
|
|
f549be550b | ||
|
|
6a0d02b33e | ||
|
|
1a243cbdd4 | ||
|
|
3988526c25 | ||
|
|
9384d4ed10 | ||
|
|
0a474dc859 | ||
|
|
71432ce15b | ||
|
|
6e4c8dc082 | ||
|
|
c59a2ee398 | ||
|
|
d1e1cfea52 | ||
|
|
d2b940e5b2 | ||
|
|
a4db19bd62 | ||
|
|
21838d035f | ||
|
|
3586b74821 | ||
|
|
f12d205a72 | ||
|
|
dce0f07dd6 | ||
|
|
44b0960e51 | ||
|
|
97f5c5d9a9 | ||
|
|
7fdebe0aba | ||
|
|
5bc3878fbc | ||
|
|
92b2b70e08 | ||
|
|
73cad0a7be | ||
|
|
54e8ec9cc0 | ||
|
|
0e916db5ee | ||
|
|
075eee455f | ||
|
|
7e2f94c91f | ||
|
|
f3ad8ce483 | ||
|
|
5051a280d7 | ||
|
|
554de9298a | ||
|
|
d58c7e2416 | ||
|
|
31b0feb1ef | ||
|
|
88daae5b6a | ||
|
|
4746b4260f | ||
|
|
cb72db3a48 | ||
|
|
50efe6d821 | ||
|
|
09f89aa192 | ||
|
|
8d160e91d0 | ||
|
|
7d9f5330c3 | ||
|
|
66a00ab911 | ||
|
|
7ddf5e3532 | ||
|
|
55c80b1d18 | ||
|
|
caf87ab345 | ||
|
|
4ed4559256 | ||
|
|
d2c81a7de0 | ||
|
|
1a01ef95f5 | ||
|
|
d908229023 | ||
|
|
bcc3d4b373 | ||
|
|
a46b191abc | ||
|
|
7b9dfada86 | ||
|
|
88c03c2166 | ||
|
|
9909bde9f6 | ||
|
|
c641b18d61 | ||
|
|
0502c843ce | ||
|
|
afe4d826f0 | ||
|
|
9af5ec6db0 | ||
|
|
c149bff710 | ||
|
|
d7e0b0873f | ||
|
|
9db43aed24 | ||
|
|
6212570509 | ||
|
|
98a4704448 | ||
|
|
f45434b60b | ||
|
|
f21b08dc14 | ||
|
|
a129b899eb | ||
|
|
c693444c91 | ||
|
|
3bcfdad24b | ||
|
|
d74bddbf52 | ||
|
|
da8187c618 | ||
|
|
34a9b20139 | ||
|
|
256ddef413 | ||
|
|
94f275b084 | ||
|
|
5da74d1d8f | ||
|
|
912f129cf7 | ||
|
|
72d70c63d3 | ||
|
|
552d442bc0 | ||
|
|
a68d284910 | ||
|
|
a511096129 | ||
|
|
e31b7d1ff2 | ||
|
|
e16d0ceb45 | ||
|
|
3c2cd38b32 | ||
|
|
81002724de | ||
|
|
0b48a73e62 | ||
|
|
bae4ce550a | ||
|
|
0fa19b7177 | ||
|
|
7f2f49f12a | ||
|
|
3804b82d6b | ||
|
|
cb73ec982d | ||
|
|
480fdc7f30 | ||
|
|
784cef6826 | ||
|
|
c195c415b8 | ||
|
|
f8ef78382d | ||
|
|
5388dcf611 | ||
|
|
0dd0e8b40f | ||
|
|
b8f5ed026b | ||
|
|
63479998e3 | ||
|
|
2234417d3b | ||
|
|
b7cbf486eb | ||
|
|
0e387a45d3 | ||
|
|
468ce2c9eb | ||
|
|
7075d0d785 | ||
|
|
d6107bc8e7 | ||
|
|
b7b14ce36c | ||
|
|
55ad383a13 | ||
|
|
9dcc493683 | ||
|
|
8d5ef9d938 | ||
|
|
b246b394d7 | ||
|
|
ae74b4933e | ||
|
|
626d4e2e47 | ||
|
|
2d1699f8ec | ||
|
|
b17d874b4d | ||
|
|
f5b1b7f999 | ||
|
|
909af5be46 | ||
|
|
d325a62c46 | ||
|
|
8a28dfd28e | ||
|
|
e563aa74f3 | ||
|
|
56fdf88e8a | ||
|
|
fa481bed5e | ||
|
|
8bacccb4da | ||
|
|
da1d6f3acf | ||
|
|
fdc23a96c3 | ||
|
|
0e68aff288 | ||
|
|
cb2da35151 | ||
|
|
bc8ca432c5 | ||
|
|
9555b1043d | ||
|
|
64bbc69476 | ||
|
|
f47bb0b324 | ||
|
|
f15d48558c | ||
|
|
f4992570d0 | ||
|
|
3c06052b09 | ||
|
|
649803df7e | ||
|
|
823d9b0e88 | ||
|
|
74e2d20b57 | ||
|
|
05b61d2ab9 | ||
|
|
ed822ac285 | ||
|
|
f8ea6c9331 | ||
|
|
1f0c564bcb | ||
|
|
f2f2db8236 | ||
|
|
d45d91c7ce | ||
|
|
c90b6899e2 | ||
|
|
2ee968b9d9 | ||
|
|
036fe2e7fd | ||
|
|
ee13c52118 | ||
|
|
b2c97200f4 | ||
|
|
070b037306 | ||
|
|
fa2a359245 | ||
|
|
1fe0dd5b50 | ||
|
|
731ed02fef | ||
|
|
7c420c8c5f | ||
|
|
893cc4537a | ||
|
|
dbbb55de86 | ||
|
|
22abe3272e | ||
|
|
a8669849c9 | ||
|
|
4fa2317aaa | ||
|
|
b23fb48384 | ||
|
|
175f3a2e3b | ||
|
|
f132881f29 | ||
|
|
ae59792000 | ||
|
|
77dcf04580 | ||
|
|
209c44faa2 | ||
|
|
066dbcbb7e | ||
|
|
2cfca521e8 | ||
|
|
8d19648c96 | ||
|
|
4ea4c810b6 | ||
|
|
a0e33fd5d1 | ||
|
|
28746d6124 | ||
|
|
bd9136978e | ||
|
|
496e7a545b | ||
|
|
a80b946148 | ||
|
|
cc8e82817b | ||
|
|
101b44c281 | ||
|
|
0ea456001a | ||
|
|
fc278cf7dd | ||
|
|
d4a5ee319d | ||
|
|
df9d061819 | ||
|
|
320a02fd3c | ||
|
|
2dbad060cb | ||
|
|
9d6cb36161 | ||
|
|
38bcd2ba63 | ||
|
|
8efe8917ca | ||
|
|
a4a6e0a6c8 | ||
|
|
df534dd672 | ||
|
|
6298a9d861 | ||
|
|
967210f131 | ||
|
|
ec80533eae | ||
|
|
87c753ee01 | ||
|
|
37467684d4 | ||
|
|
01e230a9d8 | ||
|
|
54928df298 | ||
|
|
d86b0671a9 | ||
|
|
b8dcdcde67 | ||
|
|
ec605cbf20 | ||
|
|
8126139d6a | ||
|
|
994168c829 | ||
|
|
7098b2a081 | ||
|
|
ba68026993 | ||
|
|
e4e9a016e0 | ||
|
|
924d8258fc | ||
|
|
45b0c16363 | ||
|
|
eb438186f4 | ||
|
|
695598f50a | ||
|
|
576d818e54 | ||
|
|
fb12990a98 | ||
|
|
7814b100f3 | ||
|
|
5ef38ed8fa | ||
|
|
503ff435f3 | ||
|
|
9e2b36f851 | ||
|
|
ffd4d15a97 | ||
|
|
024bf7ea1a | ||
|
|
f07fcaa150 | ||
|
|
19ad2c2e41 | ||
|
|
dec2a4ea61 | ||
|
|
c4b0af93c9 | ||
|
|
fa3071a8bb | ||
|
|
934219ee41 | ||
|
|
95f5df40c1 | ||
|
|
b9af936110 | ||
|
|
a015cccddc | ||
|
|
228529b24f | ||
|
|
d05a3770f0 | ||
|
|
d2eb357bcc | ||
|
|
8730ade05b | ||
|
|
b69f01fa9b | ||
|
|
e9ae158f79 | ||
|
|
c803113d4b | ||
|
|
7fef5c3f09 | ||
|
|
d8a57d0f7b | ||
|
|
25a4e749ad | ||
|
|
cba981df4b | ||
|
|
c229e13d3c | ||
|
|
7b2806d3fa | ||
|
|
a61c48d9f7 | ||
|
|
494235b0ca | ||
|
|
78bf69d7a8 | ||
|
|
df5b1f9100 | ||
|
|
d3d6de0551 | ||
|
|
868bb8da72 | ||
|
|
47845c22e1 | ||
|
|
e805830832 | ||
|
|
34d7fab3ca | ||
|
|
a7252d53ed | ||
|
|
6b6d32529d | ||
|
|
756792c03e | ||
|
|
2ac8a86475 | ||
|
|
4959205a1f | ||
|
|
ac97530bd0 | ||
|
|
30aa7f033a | ||
|
|
df1fdb86db | ||
|
|
772f1d5b6d | ||
|
|
a7afa5c2e9 | ||
|
|
900625970e | ||
|
|
d0692a98f2 | ||
|
|
5d59973f1e | ||
|
|
496485fce6 | ||
|
|
6f614aade2 | ||
|
|
f9b8bd6daa | ||
|
|
8fc1c93ec6 | ||
|
|
52f38235fe | ||
|
|
34fdbbf6bd | ||
|
|
1a147cb908 | ||
|
|
66cf0de971 | ||
|
|
310542c500 | ||
|
|
3c9b76b51f | ||
|
|
8b35b260ae | ||
|
|
63aae7da49 | ||
|
|
18995093dc | ||
|
|
e2613ebd40 | ||
|
|
4171612b70 | ||
|
|
d6bcd7f41f | ||
|
|
6332555187 | ||
|
|
f2c60fa302 | ||
|
|
d655c3a940 | ||
|
|
3f51662b74 | ||
|
|
923551fa2b | ||
|
|
2462aad3e8 | ||
|
|
8373821a3f | ||
|
|
70bb937db3 | ||
|
|
ae215fe8e8 | ||
|
|
25fa75dc87 | ||
|
|
1dca113b39 | ||
|
|
0a76322a79 | ||
|
|
b88ea4667d | ||
|
|
de2c623007 | ||
|
|
6c8b2fbec8 | ||
|
|
68fe4c31c4 | ||
|
|
f0162cda25 | ||
|
|
64dc8f17c2 | ||
|
|
e0c0d316d9 | ||
|
|
0de40cda7c | ||
|
|
90984b3309 | ||
|
|
7a31688f2c | ||
|
|
3a6778fa06 | ||
|
|
fae1b1ee46 | ||
|
|
b13ddad0e0 | ||
|
|
021733d4b8 | ||
|
|
02f7771288 | ||
|
|
18abd53ce6 | ||
|
|
f054e01c3a | ||
|
|
21265896a8 | ||
|
|
70767fc3c4 | ||
|
|
0151a0e1c6 | ||
|
|
5eae54e3a1 | ||
|
|
d5ed027ce7 | ||
|
|
4a2b947b91 | ||
|
|
e13b2f029b | ||
|
|
a015d43872 | ||
|
|
0337c7906f | ||
|
|
53bc836b44 | ||
|
|
76d36c0d99 | ||
|
|
8e9efd3df3 | ||
|
|
066bc464d0 | ||
|
|
ef44768e0b | ||
|
|
4583ca7e27 | ||
|
|
f6bc44b1e4 | ||
|
|
3c335c155f | ||
|
|
a84e3fa3d9 | ||
|
|
160757aa9d | ||
|
|
c222614261 | ||
|
|
75e929e395 | ||
|
|
bc92df8dca | ||
|
|
e2e5dc76fd | ||
|
|
c70077b8fc | ||
|
|
9c9562ee02 | ||
|
|
72f1a2c993 | ||
|
|
81b4281e92 | ||
|
|
d0abe6db1a | ||
|
|
a0f9ab9efc | ||
|
|
1502e7f7ce | ||
|
|
6554c72f6b | ||
|
|
b25c18220b | ||
|
|
0e0077c7d9 | ||
|
|
5de6ce7c6a | ||
|
|
42c95806c7 | ||
|
|
8ad886bdf9 | ||
|
|
db710e4bd4 | ||
|
|
f662daffbe | ||
|
|
ffb2a09fa5 | ||
|
|
1dd897755a | ||
|
|
bb9e11570d | ||
|
|
b27e7941fc | ||
|
|
701d831ae0 | ||
|
|
6b5b96bd55 | ||
|
|
15f32a9080 | ||
|
|
8dd1056831 | ||
|
|
14a8c0d05d | ||
|
|
99d49ce7c4 | ||
|
|
66bfd52996 | ||
|
|
3e6a9d540a | ||
|
|
4cc6061658 | ||
|
|
6929c3d910 | ||
|
|
37ceb1d373 | ||
|
|
c1e8c0dd10 | ||
|
|
ac56d16938 | ||
|
|
52cf5b885b | ||
|
|
f9b6827972 | ||
|
|
ac7bea4752 | ||
|
|
717434b0a0 | ||
|
|
94254edef0 | ||
|
|
c6ba480936 | ||
|
|
12bf663cba | ||
|
|
83dfbf1f13 | ||
|
|
b5df6520d8 | ||
|
|
e4684919ec | ||
|
|
9df8194d81 | ||
|
|
13810be7ab | ||
|
|
9806d6ee46 | ||
|
|
028fd89fc6 | ||
|
|
292d82d7f5 | ||
|
|
f053c18fcd | ||
|
|
c1f734abf0 | ||
|
|
a100a42741 | ||
|
|
2313c7cfc4 | ||
|
|
b71afabb37 | ||
|
|
f07f5e07cd | ||
|
|
618629caba | ||
|
|
0d0a6bcd90 | ||
|
|
2dc3ac6c2a | ||
|
|
9fad79410a | ||
|
|
2120f98cd5 | ||
|
|
b4823f0e26 | ||
|
|
a1f10594e9 | ||
|
|
417d1d9979 | ||
|
|
eabbe2d51f | ||
|
|
0464692a3c | ||
|
|
f726d0ca57 | ||
|
|
ed87aa09ce | ||
|
|
a6b5fcf668 | ||
|
|
8f0a5b9dbd | ||
|
|
1d2e293fc4 | ||
|
|
07641a8987 | ||
|
|
a839e213b8 | ||
|
|
aba45b52f1 | ||
|
|
b055fc7fd2 | ||
|
|
17465e0178 | ||
|
|
7860669056 | ||
|
|
76d1e413e8 | ||
|
|
97162686f7 | ||
|
|
a0239b6422 | ||
|
|
074d8403ff | ||
|
|
f4e3595bf5 | ||
|
|
09ad9ee0bf | ||
|
|
e59085dfd2 | ||
|
|
db8cbd07bf | ||
|
|
eb43ebd80d | ||
|
|
f41fd2eab4 | ||
|
|
f42620ce24 | ||
|
|
c4e3948186 | ||
|
|
c99a576581 | ||
|
|
75af5747bf | ||
|
|
e67c1b511c | ||
|
|
77251da4af | ||
|
|
1cfdcfea83 | ||
|
|
34d53bb77b | ||
|
|
5baa1245a1 | ||
|
|
d372290e1d | ||
|
|
4b8988e2fd | ||
|
|
e7b39759c1 | ||
|
|
851d9e20d4 | ||
|
|
5ed9af5b57 | ||
|
|
8e8be6dc8b | ||
|
|
f55f2b4afa | ||
|
|
84aa45f0c5 | ||
|
|
437233f643 | ||
|
|
56c78acb51 | ||
|
|
2176c971e5 | ||
|
|
2b4493a45d | ||
|
|
5dcf1b2aea | ||
|
|
6bee3f9eec | ||
|
|
1149d8f8bd | ||
|
|
f977d5b993 | ||
|
|
d0524425a2 | ||
|
|
56dc620484 | ||
|
|
98c3fc3000 | ||
|
|
8ef13c5034 | ||
|
|
d74b6fe091 | ||
|
|
fb5aa3063d | ||
|
|
3ad087ddaa | ||
|
|
68f83592c1 | ||
|
|
7ee50572e2 | ||
|
|
ec72b673d1 | ||
|
|
7911d3d3ff | ||
|
|
80aee1087f | ||
|
|
2a5920b517 | ||
|
|
beb0848e2c | ||
|
|
e058ce1f0a | ||
|
|
fa4499517c | ||
|
|
b08e24ca46 | ||
|
|
0469c792de | ||
|
|
c87e00ec73 | ||
|
|
f0c10fb393 | ||
|
|
e7b1e5db38 | ||
|
|
c8af6e78c4 | ||
|
|
45c9dea79c | ||
|
|
47e0eed693 | ||
|
|
2b80ff9a55 | ||
|
|
ac37cea2b5 | ||
|
|
09a31ac954 | ||
|
|
d4b75401cc | ||
|
|
20cd244401 | ||
|
|
ee54e291a8 | ||
|
|
c54b498058 | ||
|
|
97120af230 | ||
|
|
b987dcb41f | ||
|
|
ab57b3e1b1 | ||
|
|
c2fdeaf9ce | ||
|
|
d4c0b04169 | ||
|
|
09ddf661b7 | ||
|
|
19b3fd283d | ||
|
|
9b26a3bd5e | ||
|
|
15a3620e7d | ||
|
|
2f4fb61ef0 | ||
|
|
0fe0531f09 | ||
|
|
1000476b18 | ||
|
|
43bad30026 | ||
|
|
fdea5d44fb | ||
|
|
438d248e61 | ||
|
|
a06e1b752f | ||
|
|
a103c4fa4c | ||
|
|
91291fa460 | ||
|
|
6d3bf3ff85 | ||
|
|
6d41078bef | ||
|
|
ed605fcedc | ||
|
|
fbd5be5bc7 | ||
|
|
aae3943681 | ||
|
|
8ef6207bca | ||
|
|
4074102222 | ||
|
|
340f644e50 | ||
|
|
de7911cd93 | ||
|
|
86e74f6413 | ||
|
|
444a9bb87f | ||
|
|
781c40d66c | ||
|
|
6981f7b010 | ||
|
|
45f2354759 | ||
|
|
31937aef18 | ||
|
|
0316fc5c0b | ||
|
|
6a20c49d91 | ||
|
|
b4e5759db8 | ||
|
|
01c67b6671 | ||
|
|
bbf143b9e2 | ||
|
|
dc2c9dff56 | ||
|
|
2c45589b97 | ||
|
|
940d18be5a | ||
|
|
6dfff5881a | ||
|
|
14efb05bc5 | ||
|
|
6c590bd8df | ||
|
|
7071647f61 | ||
|
|
172514a2ce | ||
|
|
a6023fa92c | ||
|
|
78bd65c9ab | ||
|
|
fd99763c05 | ||
|
|
0e9ee41fe7 | ||
|
|
468f97e2c1 | ||
|
|
88faed720b | ||
|
|
c8efacbdf2 | ||
|
|
ef2ff1cc91 | ||
|
|
cd924a15b5 | ||
|
|
d31cd8c115 | ||
|
|
5746ed2ce1 | ||
|
|
e4c0e8649f | ||
|
|
acde759572 | ||
|
|
c1870bc0da | ||
|
|
2a2843b2c3 | ||
|
|
66c04a301f | ||
|
|
5d61c1b261 | ||
|
|
24775c16fb | ||
|
|
c9d7f9fc1c | ||
|
|
2182376910 | ||
|
|
2474e4aac4 | ||
|
|
699acf0baa |
16
.github/workflows/build-windows.yml
vendored
16
.github/workflows/build-windows.yml
vendored
@@ -92,12 +92,26 @@ jobs:
|
||||
id: gtest
|
||||
uses: ./.github/actions/get-gtest
|
||||
|
||||
- name: 'Check toolchain installed'
|
||||
id: toolchain-check
|
||||
run: |
|
||||
set +e
|
||||
'/c/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/vc/auxiliary/build/vcvars64.bat' -vcvars_ver=${{ inputs.msvc-toolset-version }}
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "Toolchain is already installed"
|
||||
echo "toolchain-installed=true" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "Toolchain is not yet installed"
|
||||
echo "toolchain-installed=false" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
- name: 'Install toolchain and dependencies'
|
||||
run: |
|
||||
# Run Visual Studio Installer
|
||||
'/c/Program Files (x86)/Microsoft Visual Studio/Installer/vs_installer.exe' \
|
||||
modify --quiet --installPath 'C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise' \
|
||||
modify --quiet --installPath 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise' \
|
||||
--add Microsoft.VisualStudio.Component.VC.${{ inputs.msvc-toolset-version }}.${{ inputs.msvc-toolset-architecture }}
|
||||
if: steps.toolchain-check.outputs.toolchain-installed != 'true'
|
||||
|
||||
- name: 'Configure'
|
||||
run: >
|
||||
|
||||
2
.github/workflows/main.yml
vendored
2
.github/workflows/main.yml
vendored
@@ -223,7 +223,7 @@ jobs:
|
||||
uses: ./.github/workflows/build-windows.yml
|
||||
with:
|
||||
platform: windows-x64
|
||||
msvc-toolset-version: '14.25'
|
||||
msvc-toolset-version: '14.29'
|
||||
msvc-toolset-architecture: 'x86.x64'
|
||||
if: needs.select.outputs.windows-x64 == 'true'
|
||||
|
||||
|
||||
2
.gitignore
vendored
2
.gitignore
vendored
@@ -18,5 +18,7 @@ NashornProfile.txt
|
||||
/src/utils/LogCompilation/target/
|
||||
/.project/
|
||||
/.settings/
|
||||
/compile_commands.json
|
||||
/.cache
|
||||
*.class
|
||||
.idea/workspace.xml
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
[general]
|
||||
project=jdk-updates
|
||||
jbs=JDK
|
||||
version=17.0.6
|
||||
version=17.0.8
|
||||
|
||||
[checks]
|
||||
error=author,committer,reviewers,merge,issues,executable,symlink,message,hg-tag,whitespace,problemlists
|
||||
|
||||
@@ -128,6 +128,15 @@ install_jib() {
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
# Want to check the filetype using file, to see if we got served a HTML error page.
|
||||
# This is sensitive to the filename containing a specific string, but good enough.
|
||||
file "${installed_jib_script}.gz" | grep "gzip compressed data" > /dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Warning: ${installed_jib_script}.gz is not a gzip file."
|
||||
echo "If you are behind a proxy you may need to configure exceptions using no_proxy."
|
||||
echo "The download URL was: ${jib_url}"
|
||||
exit 1
|
||||
fi
|
||||
echo "Extracting JIB bootstrap script"
|
||||
rm -f "${installed_jib_script}"
|
||||
gunzip "${installed_jib_script}.gz"
|
||||
|
||||
@@ -240,26 +240,26 @@
|
||||
<table>
|
||||
<thead>
|
||||
<tr class="header">
|
||||
<th style="text-align: left;">Operating system</th>
|
||||
<th style="text-align: left;">Supported toolchain</th>
|
||||
<th>Operating system</th>
|
||||
<th>Supported toolchain</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="odd">
|
||||
<td style="text-align: left;">Linux</td>
|
||||
<td style="text-align: left;">gcc, clang</td>
|
||||
<td>Linux</td>
|
||||
<td>gcc, clang</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td style="text-align: left;">macOS</td>
|
||||
<td style="text-align: left;">Apple Xcode (using clang)</td>
|
||||
<td>macOS</td>
|
||||
<td>Apple Xcode (using clang)</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td style="text-align: left;">AIX</td>
|
||||
<td style="text-align: left;">IBM XL C/C++</td>
|
||||
<td>AIX</td>
|
||||
<td>IBM XL C/C++</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td style="text-align: left;">Windows</td>
|
||||
<td style="text-align: left;">Microsoft Visual Studio</td>
|
||||
<td>Windows</td>
|
||||
<td>Microsoft Visual Studio</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -267,41 +267,45 @@
|
||||
<table>
|
||||
<thead>
|
||||
<tr class="header">
|
||||
<th style="text-align: left;">Operating system</th>
|
||||
<th style="text-align: left;">Toolchain version</th>
|
||||
<th>Operating system</th>
|
||||
<th>Toolchain version</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="odd">
|
||||
<td style="text-align: left;">Linux</td>
|
||||
<td style="text-align: left;">gcc 10.2.0</td>
|
||||
<td>Linux</td>
|
||||
<td>gcc 11.2.0</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td style="text-align: left;">macOS</td>
|
||||
<td style="text-align: left;">Apple Xcode 10.1 (using clang 10.0.0)</td>
|
||||
<td>macOS</td>
|
||||
<td>Apple Xcode 10.1 (using clang 10.0.0)</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td style="text-align: left;">Windows</td>
|
||||
<td style="text-align: left;">Microsoft Visual Studio 2022 update 17.1.0</td>
|
||||
<td>Windows</td>
|
||||
<td>Microsoft Visual Studio 2022 update 17.1.0</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>All compilers are expected to be able to compile to the C99 language standard, as some C99 features are used in the source code. Microsoft Visual Studio doesn't fully support C99 so in practice shared code is limited to using C99 features that it does support.</p>
|
||||
<h3 id="gcc">gcc</h3>
|
||||
<p>The minimum accepted version of gcc is 5.0. Older versions will generate a warning by <code>configure</code> and are unlikely to work.</p>
|
||||
<p>The JDK is currently known to be able to compile with at least version 10.2 of gcc.</p>
|
||||
<p>The JDK is currently known to be able to compile with at least version 11.2 of gcc.</p>
|
||||
<p>In general, any version between these two should be usable.</p>
|
||||
<h3 id="clang">clang</h3>
|
||||
<p>The minimum accepted version of clang is 3.5. Older versions will not be accepted by <code>configure</code>.</p>
|
||||
<p>To use clang instead of gcc on Linux, use <code>--with-toolchain-type=clang</code>.</p>
|
||||
<h3 id="apple-xcode">Apple Xcode</h3>
|
||||
<p>The oldest supported version of Xcode is 8.</p>
|
||||
<p>You will need the Xcode command lines developers tools to be able to build the JDK. (Actually, <em>only</em> the command lines tools are needed, not the IDE.) The simplest way to install these is to run:</p>
|
||||
<p>You will need the Xcode command line developer tools to be able to build the JDK. (Actually, <em>only</em> the command line tools are needed, not the IDE.) The simplest way to install these is to run:</p>
|
||||
<pre><code>xcode-select --install</code></pre>
|
||||
<p>It is advisable to keep an older version of Xcode for building the JDK when updating Xcode. This <a href="http://iosdevelopertips.com/xcode/install-multiple-versions-of-xcode.html">blog page</a> has good suggestions on managing multiple Xcode versions. To use a specific version of Xcode, use <code>xcode-select -s</code> before running <code>configure</code>, or use <code>--with-toolchain-path</code> to point to the version of Xcode to use, e.g. <code>configure --with-toolchain-path=/Applications/Xcode8.app/Contents/Developer/usr/bin</code></p>
|
||||
<p>When updating Xcode, it is advisable to keep an older version for building the JDK. To use a specific version of Xcode you have multiple options:</p>
|
||||
<ul>
|
||||
<li>Use <code>xcode-select -s</code> before running <code>configure</code>, e.g. <code>xcode-select -s /Applications/Xcode13.1.app</code>. The drawback is that the setting is system wide and you may have to revert it after an OpenJDK build.</li>
|
||||
<li>Use configure option <code>--with-xcode-path</code>, e.g. <code>configure --with-xcode-path=/Applications/Xcode13.1.app</code> This allows using a specific Xcode version for an OpenJDK build, independently of the active Xcode version by <code>xcode-select</code>.</li>
|
||||
</ul>
|
||||
<p>If you have recently (inadvertently) updated your OS and/or Xcode version, and the JDK can no longer be built, please see the section on <a href="#problems-with-the-build-environment">Problems with the Build Environment</a>, and <a href="#getting-help">Getting Help</a> to find out if there are any recent, non-merged patches available for this update.</p>
|
||||
<h3 id="microsoft-visual-studio">Microsoft Visual Studio</h3>
|
||||
<p>For aarch64 machines running Windows the minimum accepted version is Visual Studio 2019 (16.8 or higher). For all other platforms the minimum accepted version of Visual Studio is 2017. Older versions will not be accepted by <code>configure</code> and will not work. For all platforms the maximum accepted version of Visual Studio is 2019.</p>
|
||||
<p>The minimum accepted version of Visual Studio is 2017. Older versions will not be accepted by <code>configure</code> and will not work. The maximum accepted version of Visual Studio is 2019.</p>
|
||||
<p>If you have multiple versions of Visual Studio installed, <code>configure</code> will by default pick the latest. You can request a specific version to be used by setting <code>--with-toolchain-version</code>, e.g. <code>--with-toolchain-version=2017</code>.</p>
|
||||
<p>If you have Visual Studio installed but <code>configure</code> fails to detect it, it may be because of <a href="#spaces-in-path">spaces in path</a>.</p>
|
||||
<h3 id="ibm-xl-cc">IBM XL C/C++</h3>
|
||||
@@ -510,7 +514,7 @@
|
||||
</ul>
|
||||
<h2 id="running-tests">Running Tests</h2>
|
||||
<p>Most of the JDK tests are using the <a href="http://openjdk.java.net/jtreg">JTReg</a> test framework. Make sure that your configuration knows where to find your installation of JTReg. If this is not picked up automatically, use the <code>--with-jtreg=<path to jtreg home></code> option to point to the JTReg framework. Note that this option should point to the JTReg home, i.e. the top directory, containing <code>lib/jtreg.jar</code> etc.</p>
|
||||
<p>The <a href="https://wiki.openjdk.java.net/display/Adoption">Adoption Group</a> provides recent builds of jtreg <a href="https://ci.adoptopenjdk.net/view/Dependencies/job/dependency_pipeline/lastSuccessfulBuild/artifact/jtreg/">here</a>. Download the latest <code>.tar.gz</code> file, unpack it, and point <code>--with-jtreg</code> to the <code>jtreg</code> directory that you just unpacked.</p>
|
||||
<p>The <a href="https://wiki.openjdk.java.net/display/Adoption">Adoption Group</a> provides recent builds of jtreg <a href="https://ci.adoptium.net/view/Dependencies/job/dependency_pipeline/lastSuccessfulBuild/artifact/jtreg/">here</a>. Download the latest <code>.tar.gz</code> file, unpack it, and point <code>--with-jtreg</code> to the <code>jtreg</code> directory that you just unpacked.</p>
|
||||
<p>Building of Hotspot Gtest suite requires the source code of Google Test framework. The top directory, which contains both <code>googletest</code> and <code>googlemock</code> directories, should be specified via <code>--with-gtest</code>. The supported version of Google Test is 1.8.1, whose source code can be obtained:</p>
|
||||
<ul>
|
||||
<li>by downloading and unpacking the source bundle from <a href="https://github.com/google/googletest/releases/tag/release-1.8.1">here</a></li>
|
||||
|
||||
@@ -305,12 +305,12 @@ be able to run on the target platform. In theory, toolchain and operating
|
||||
system should be independent factors, but in practice there's more or less a
|
||||
one-to-one correlation between target operating system and toolchain.
|
||||
|
||||
Operating system Supported toolchain
|
||||
------------------ -------------------------
|
||||
Linux gcc, clang
|
||||
macOS Apple Xcode (using clang)
|
||||
AIX IBM XL C/C++
|
||||
Windows Microsoft Visual Studio
|
||||
| Operating system | Supported toolchain |
|
||||
| ------------------ | ------------------------- |
|
||||
| Linux | gcc, clang |
|
||||
| macOS | Apple Xcode (using clang) |
|
||||
| AIX | IBM XL C/C++ |
|
||||
| Windows | Microsoft Visual Studio |
|
||||
|
||||
Please see the individual sections on the toolchains for version
|
||||
recommendations. As a reference, these versions of the toolchains are used, at
|
||||
@@ -319,11 +319,11 @@ possible to compile the JDK with both older and newer versions, but the closer
|
||||
you stay to this list, the more likely you are to compile successfully without
|
||||
issues.
|
||||
|
||||
Operating system Toolchain version
|
||||
------------------ -------------------------------------------------------
|
||||
Linux gcc 10.2.0
|
||||
macOS Apple Xcode 10.1 (using clang 10.0.0)
|
||||
Windows Microsoft Visual Studio 2022 update 17.1.0
|
||||
| Operating system | Toolchain version |
|
||||
| ------------------ | ------------------------------------------ |
|
||||
| Linux | gcc 11.2.0 |
|
||||
| macOS | Apple Xcode 10.1 (using clang 10.0.0) |
|
||||
| Windows | Microsoft Visual Studio 2022 update 17.1.0 |
|
||||
|
||||
All compilers are expected to be able to compile to the C99 language standard,
|
||||
as some C99 features are used in the source code. Microsoft Visual Studio
|
||||
@@ -335,7 +335,7 @@ features that it does support.
|
||||
The minimum accepted version of gcc is 5.0. Older versions will generate a warning
|
||||
by `configure` and are unlikely to work.
|
||||
|
||||
The JDK is currently known to be able to compile with at least version 10.2 of
|
||||
The JDK is currently known to be able to compile with at least version 11.2 of
|
||||
gcc.
|
||||
|
||||
In general, any version between these two should be usable.
|
||||
@@ -351,20 +351,20 @@ To use clang instead of gcc on Linux, use `--with-toolchain-type=clang`.
|
||||
|
||||
The oldest supported version of Xcode is 8.
|
||||
|
||||
You will need the Xcode command lines developers tools to be able to build
|
||||
the JDK. (Actually, *only* the command lines tools are needed, not the IDE.)
|
||||
You will need the Xcode command line developer tools to be able to build
|
||||
the JDK. (Actually, *only* the command line tools are needed, not the IDE.)
|
||||
The simplest way to install these is to run:
|
||||
```
|
||||
xcode-select --install
|
||||
```
|
||||
|
||||
It is advisable to keep an older version of Xcode for building the JDK when
|
||||
updating Xcode. This [blog page](
|
||||
http://iosdevelopertips.com/xcode/install-multiple-versions-of-xcode.html) has
|
||||
good suggestions on managing multiple Xcode versions. To use a specific version
|
||||
of Xcode, use `xcode-select -s` before running `configure`, or use
|
||||
`--with-toolchain-path` to point to the version of Xcode to use, e.g.
|
||||
`configure --with-toolchain-path=/Applications/Xcode8.app/Contents/Developer/usr/bin`
|
||||
When updating Xcode, it is advisable to keep an older version for building the JDK.
|
||||
To use a specific version of Xcode you have multiple options:
|
||||
|
||||
* Use `xcode-select -s` before running `configure`, e.g. `xcode-select -s /Applications/Xcode13.1.app`. The drawback is that the setting
|
||||
is system wide and you may have to revert it after an OpenJDK build.
|
||||
* Use configure option `--with-xcode-path`, e.g. `configure --with-xcode-path=/Applications/Xcode13.1.app`
|
||||
This allows using a specific Xcode version for an OpenJDK build, independently of the active Xcode version by `xcode-select`.
|
||||
|
||||
If you have recently (inadvertently) updated your OS and/or Xcode version, and
|
||||
the JDK can no longer be built, please see the section on [Problems with the
|
||||
@@ -848,7 +848,7 @@ containing `lib/jtreg.jar` etc.
|
||||
|
||||
The [Adoption Group](https://wiki.openjdk.java.net/display/Adoption) provides
|
||||
recent builds of jtreg [here](
|
||||
https://ci.adoptopenjdk.net/view/Dependencies/job/dependency_pipeline/lastSuccessfulBuild/artifact/jtreg/).
|
||||
https://ci.adoptium.net/view/Dependencies/job/dependency_pipeline/lastSuccessfulBuild/artifact/jtreg/).
|
||||
Download the latest `.tar.gz` file, unpack it, and point `--with-jtreg` to the
|
||||
`jtreg` directory that you just unpacked.
|
||||
|
||||
|
||||
@@ -242,14 +242,39 @@ $ make test JTREG="VM_OPTIONS=-Duser.language=en -Duser.country=US" TE
|
||||
JTREG="JAVA_OPTIONS=-Dtest.nss.lib.paths=/path/to/your/latest/NSS-libs"</code></pre>
|
||||
<p>For more notes about the PKCS11 tests, please refer to test/jdk/sun/security/pkcs11/README.</p>
|
||||
<h3 id="client-ui-tests">Client UI Tests</h3>
|
||||
<h4 id="system-key-shortcuts">System key shortcuts</h4>
|
||||
<p>Some Client UI tests use key sequences which may be reserved by the operating system. Usually that causes the test failure. So it is highly recommended to disable system key shortcuts prior testing. The steps to access and disable system key shortcuts for various platforms are provided below.</p>
|
||||
<h4 id="macos">MacOS</h4>
|
||||
<h5 id="macos">MacOS</h5>
|
||||
<p>Choose Apple menu; System Preferences, click Keyboard, then click Shortcuts; select or deselect desired shortcut.</p>
|
||||
<p>For example, test/jdk/javax/swing/TooltipManager/JMenuItemToolTipKeyBindingsTest/JMenuItemToolTipKeyBindingsTest.java fails on MacOS because it uses <code>CTRL + F1</code> key sequence to show or hide tooltip message but the key combination is reserved by the operating system. To run the test correctly the default global key shortcut should be disabled using the steps described above, and then deselect "Turn keyboard access on or off" option which is responsible for <code>CTRL + F1</code> combination.</p>
|
||||
<h4 id="linux">Linux</h4>
|
||||
<h5 id="linux">Linux</h5>
|
||||
<p>Open the Activities overview and start typing Settings; Choose Settings, click Devices, then click Keyboard; set or override desired shortcut.</p>
|
||||
<h4 id="windows">Windows</h4>
|
||||
<h5 id="windows">Windows</h5>
|
||||
<p>Type <code>gpedit</code> in the Search and then click Edit group policy; navigate to User Configuration -> Administrative Templates -> Windows Components -> File Explorer; in the right-side pane look for "Turn off Windows key hotkeys" and double click on it; enable or disable hotkeys.</p>
|
||||
<p>Note: restart is required to make the settings take effect.</p>
|
||||
<h4 id="robot-api">Robot API</h4>
|
||||
<p>Most automated Client UI tests use <code>Robot</code> API to control
|
||||
the UI. Usually, the default operating system settings need to be
|
||||
adjusted for Robot to work correctly. The detailed steps how to access
|
||||
and update these settings for different platforms are provided
|
||||
below.</p>
|
||||
<h5 id="macos-1">macOS</h5>
|
||||
<p><code>Robot</code> is not permitted to control your Mac by default
|
||||
since macOS 10.15. To allow it, choose Apple menu -> System Settings,
|
||||
click Privacy & Security; then click Accessibility and ensure the
|
||||
following apps are allowed to control your computer: <em>Java</em> and
|
||||
<em>Terminal</em>. If the tests are run from an IDE, the IDE should be
|
||||
granted this permission too.</p>
|
||||
<h5 id="windows-1">Windows</h5>
|
||||
<p>On Windows if Cygwin terminal is used to run the tests, there is a
|
||||
delay in focus transfer. Usually it causes automated UI test failure. To
|
||||
disable the delay, type <code>regedit</code> in the Search and then
|
||||
select Registry Editor; navigate to the following key:
|
||||
<code>HKEY_CURRENT_USER\Control Panel\Desktop</code>; make sure the
|
||||
<code>ForegroundLockTimeout</code> value is set to 0.</p>
|
||||
<p>Additional information about Client UI tests configuration for
|
||||
various operating systems can be obtained at <a
|
||||
href="https://wiki.openjdk.org/display/ClientLibs/Automated+client+GUI+testing+system+set+up+requirements">Automated
|
||||
client GUI testing system set up requirements</a></p>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -546,12 +546,14 @@ test/jdk/sun/security/pkcs11/README.
|
||||
|
||||
### Client UI Tests
|
||||
|
||||
#### System key shortcuts
|
||||
|
||||
Some Client UI tests use key sequences which may be reserved by the operating
|
||||
system. Usually that causes the test failure. So it is highly recommended to
|
||||
disable system key shortcuts prior testing. The steps to access and disable
|
||||
system key shortcuts for various platforms are provided below.
|
||||
|
||||
#### MacOS
|
||||
##### macOS
|
||||
|
||||
Choose Apple menu; System Preferences, click Keyboard, then click Shortcuts;
|
||||
select or deselect desired shortcut.
|
||||
@@ -564,12 +566,12 @@ test correctly the default global key shortcut should be disabled using the
|
||||
steps described above, and then deselect "Turn keyboard access on or off"
|
||||
option which is responsible for `CTRL + F1` combination.
|
||||
|
||||
#### Linux
|
||||
##### Linux
|
||||
|
||||
Open the Activities overview and start typing Settings; Choose Settings, click
|
||||
Devices, then click Keyboard; set or override desired shortcut.
|
||||
|
||||
#### Windows
|
||||
##### Windows
|
||||
|
||||
Type `gpedit` in the Search and then click Edit group policy; navigate to User
|
||||
Configuration -> Administrative Templates -> Windows Components -> File
|
||||
@@ -578,6 +580,33 @@ double click on it; enable or disable hotkeys.
|
||||
|
||||
Note: restart is required to make the settings take effect.
|
||||
|
||||
#### Robot API
|
||||
|
||||
Most automated Client UI tests use `Robot` API to control the UI. Usually,
|
||||
the default operating system settings need to be adjusted for Robot
|
||||
to work correctly. The detailed steps how to access and update these settings
|
||||
for different platforms are provided below.
|
||||
|
||||
##### macOS
|
||||
|
||||
`Robot` is not permitted to control your Mac by default since
|
||||
macOS 10.15. To allow it, choose Apple menu -> System Settings, click
|
||||
Privacy & Security; then click Accessibility and ensure the following apps are
|
||||
allowed to control your computer: *Java* and *Terminal*. If the tests are run
|
||||
from an IDE, the IDE should be granted this permission too.
|
||||
|
||||
##### Windows
|
||||
|
||||
On Windows if Cygwin terminal is used to run the tests, there is a delay in
|
||||
focus transfer. Usually it causes automated UI test failure. To disable the
|
||||
delay, type `regedit` in the Search and then select Registry Editor; navigate
|
||||
to the following key: `HKEY_CURRENT_USER\Control Panel\Desktop`; make sure
|
||||
the `ForegroundLockTimeout` value is set to 0.
|
||||
|
||||
Additional information about Client UI tests configuration for various operating
|
||||
systems can be obtained at [Automated client GUI testing system set up
|
||||
requirements](https://wiki.openjdk.org/display/ClientLibs/Automated+client+GUI+testing+system+set+up+requirements)
|
||||
|
||||
---
|
||||
# Override some definitions in the global css file that are not optimal for
|
||||
# this document.
|
||||
|
||||
@@ -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 16
|
||||
RUN wget https://cdn.azul.com/zulu/bin/zulu16.28.11-ca-jdk16.0.0-linux_x64.tar.gz \
|
||||
-O - | tar xz -C /
|
||||
RUN mv /zulu16.28.11-ca-jdk16.0.0-linux_x64 /jdk16.0.0
|
||||
ENV PATH /opt/rh/devtoolset-8/root/usr/bin:$PATH
|
||||
RUN mkdir .git
|
||||
RUN git config user.email "teamcity@jetbrains.com"
|
||||
RUN git config user.name "builduser"
|
||||
@@ -5,44 +5,42 @@
|
||||
# image creation reproducible.
|
||||
# NB: this also means there may be no security-related fixes there, need to
|
||||
# move the version to the next manually.
|
||||
FROM arm64v8/ubuntu:focal-20211006
|
||||
|
||||
# jetbrains/runtime:jbr17env_aarch64
|
||||
FROM arm64v8/centos:7
|
||||
|
||||
# Install the necessary build tools
|
||||
RUN export DEBIAN_FRONTEND=noninteractive \
|
||||
export DEBCONF_NONINTERACTIVE_SEEN=true && \
|
||||
echo 'tzdata tzdata/Areas select Etc' | debconf-set-selections; \
|
||||
echo 'tzdata tzdata/Zones/Etc select UTC' | debconf-set-selections; \
|
||||
apt-get update -qy && \
|
||||
apt-get install -qy \
|
||||
autoconf \
|
||||
build-essential \
|
||||
bzip2 \
|
||||
file \
|
||||
g++-10=10.3.0-1ubuntu1~20.04 \
|
||||
gcc-10=10.3.0-1ubuntu1~20.04 \
|
||||
git \
|
||||
libasound2-dev \
|
||||
libcups2-dev \
|
||||
libfontconfig1-dev \
|
||||
libx11-dev \
|
||||
libxext-dev \
|
||||
libxrandr-dev \
|
||||
libxrender-dev \
|
||||
libxt-dev \
|
||||
libxtst-dev \
|
||||
make \
|
||||
rsync \
|
||||
tar \
|
||||
unzip \
|
||||
zip && \
|
||||
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100 --slave /usr/bin/g++ g++ /usr/bin/g++-10 && \
|
||||
apt-get clean -qy && \
|
||||
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||
RUN yum -y update; \
|
||||
yum -y install centos-release-scl; \
|
||||
yum -y install devtoolset-10-10.1-0.el7; \
|
||||
yum -y install \
|
||||
alsa-lib-devel-1.1.8-1.el7.aarch64 \
|
||||
autoconf-2.69-11.el7.noarch \
|
||||
automake-1.13.4-3.el7.noarch \
|
||||
bzip2-1.0.6-13.el7.aarch64 \
|
||||
cups-devel-1.6.3-51.el7.aarch64 \
|
||||
file-5.11-37.el7.aarch64 \
|
||||
fontconfig-devel-2.13.0-4.3.el7.aarch64 \
|
||||
freetype-devel-2.8-14.el7_9.1.aarch64 \
|
||||
giflib-devel-4.1.6-9.el7.aarch64 \
|
||||
git-1.8.3.1-24.el7_9.aarch64 \
|
||||
libtool-2.4.2-22.el7_3.aarch64 \
|
||||
libXi-devel-1.7.9-1.el7.aarch64 \
|
||||
libXrandr-devel-1.5.1-2.el7.aarch64 \
|
||||
libXrender-devel-0.9.10-1.el7.aarch64 \
|
||||
libXt-devel-1.1.5-3.el7.aarch64 \
|
||||
libXtst-devel-1.2.3-1.el7.aarch64 \
|
||||
make-3.82-24.el7.aarch64 \
|
||||
rsync-3.1.2-12.el7_9.aarch64 \
|
||||
tar-1.26-35.el7.aarch64 \
|
||||
unzip-6.0-24.el7_9.aarch64 \
|
||||
wayland-devel-1.15.0-1.el7 \
|
||||
zip-3.0-11.el7.aarch64; \
|
||||
yum -y clean all
|
||||
|
||||
# Set up boot JDK for building
|
||||
COPY boot_jdk.tar.gz /jdk17/
|
||||
RUN cd /jdk17 && tar --strip-components=1 -xzf boot_jdk.tar.gz && rm /jdk17/boot_jdk.tar.gz
|
||||
ENV BOOT_JDK=/jdk17
|
||||
ENV PATH="/opt/rh/devtoolset-10/root/usr/bin:${PATH}"
|
||||
ENV LD_LIBRARY_PATH="/opt/rh/devtoolset-10/root/usr/lib64:/opt/rh/devtoolset-10/root/usr/lib:/opt/rh/devtoolset-10/root/usr/lib64/dyninst:/opt/rh/devtoolset-10/root/usr/lib/dyninst:/opt/rh/devtoolset-10/root/usr/lib64:/opt/rh/devtoolset-10/root/usr/lib"
|
||||
ENV PKG_CONFIG_PATH="/opt/rh/devtoolset-10/root/usr/lib64/pkgconfig"
|
||||
|
||||
RUN git config --global user.email "teamcity@jetbrains.com" && \
|
||||
git config --global user.name "builduser"
|
||||
|
||||
36
jb/project/docker/Dockerfile.x86_64
Normal file
36
jb/project/docker/Dockerfile.x86_64
Normal file
@@ -0,0 +1,36 @@
|
||||
# jetbrains/runtime:jbr17env_x86_64
|
||||
FROM centos:7
|
||||
RUN yum -y install centos-release-scl; \
|
||||
yum -y install devtoolset-10-10.1-0.el7; \
|
||||
yum -y install \
|
||||
alsa-lib-devel-1.1.8-1.el7 \
|
||||
autoconf-2.69-11.el7 \
|
||||
automake-1.13.4-3.el7 \
|
||||
bzip2-1.0.6-13.el7 \
|
||||
cups-devel-1.6.3-51.el7 \
|
||||
file-5.11-37.el7 \
|
||||
fontconfig-devel-2.13.0-4.3.el7 \
|
||||
freetype-devel-2.8-14.el7_9.1 \
|
||||
giflib-devel-4.1.6-9.el7 \
|
||||
git-1.8.3.1-24.el7_9 \
|
||||
libtool-2.4.2-22.el7_3 \
|
||||
libXi-devel-1.7.9-1.el7 \
|
||||
libXrandr-devel-1.5.1-2.el7 \
|
||||
libXrender-devel-0.9.10-1.el7 \
|
||||
libXt-devel-1.1.5-3.el7 \
|
||||
libXtst-devel-1.2.3-1.el7 \
|
||||
make-3.82-24.el7 \
|
||||
tar-1.26-35.el7 \
|
||||
unzip-6.0-24.el7_9 \
|
||||
wayland-devel-1.15.0-1.el7 \
|
||||
wget-1.14-18.el7_6.1 \
|
||||
which-2.20-7.el7 \
|
||||
zip-3.0-11.el7
|
||||
|
||||
RUN mkdir .git && \
|
||||
git config user.email "teamcity@jetbrains.com" && \
|
||||
git config user.name "builduser"
|
||||
|
||||
ENV LD_LIBRARY_PATH="/opt/rh/devtoolset-10/root/usr/lib64:/opt/rh/devtoolset-10/root/usr/lib:/opt/rh/devtoolset-10/root/usr/lib64/dyninst:/opt/rh/devtoolset-10/root/usr/lib/dyninst:/opt/rh/devtoolset-10/root/usr/lib64:/opt/rh/devtoolset-10/root/usr/lib"
|
||||
ENV PATH="/opt/rh/devtoolset-10/root/usr/bin::${PATH}"
|
||||
ENV PKG_CONFIG_PATH="/opt/rh/devtoolset-10/root/usr/lib64/pkgconfig"
|
||||
@@ -135,6 +135,7 @@ if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ]; then
|
||||
cp $JCEF_PATH/jmods/* $JSDK_MODS_DIR # $JSDK/jmods is not changed
|
||||
|
||||
jbr_name_postfix="_${bundle_type}"
|
||||
cat $JCEF_PATH/jcef.version >> $JSDK/release
|
||||
else
|
||||
jbr_name_postfix=""
|
||||
fi
|
||||
|
||||
@@ -134,6 +134,7 @@ if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ]; then
|
||||
cp $JCEF_PATH/jmods/* $JSDK_MODS_DIR # $JSDK/jmods is not changed
|
||||
|
||||
jbr_name_postfix="_${bundle_type}"
|
||||
cat $JCEF_PATH/jcef.version >> $JSDK/release
|
||||
else
|
||||
jbr_name_postfix=""
|
||||
fi
|
||||
|
||||
47
jb/project/tools/mac/scripts/codesign.sh
Executable file
47
jb/project/tools/mac/scripts/codesign.sh
Executable file
@@ -0,0 +1,47 @@
|
||||
#!/bin/bash
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" >/dev/null && pwd)"
|
||||
|
||||
source "$SCRIPT_DIR/jetsign-common.sh" || exit 1
|
||||
|
||||
function isMacOsBinary() {
|
||||
file "$1" | grep -q 'Mach-O'
|
||||
}
|
||||
|
||||
function isSigned() {
|
||||
codesign --verify "$1" >/dev/null 2>&1 && ! grep -q Signature=adhoc < <(codesign --display --verbose "$1" 2>&1)
|
||||
}
|
||||
|
||||
# last argument is a path to be signed
|
||||
pathToBeSigned="$(pwd)/${*: -1}"
|
||||
jetSignArgs=("${@:1:$#-1}")
|
||||
if [[ ! -f "$pathToBeSigned" ]]; then
|
||||
echo "$pathToBeSigned is missing or not a file"
|
||||
exit 1
|
||||
elif isSigned "$pathToBeSigned" && ! isForced "${jetSignArgs[@]}" ; then
|
||||
echo "Already signed: $pathToBeSigned"
|
||||
elif [[ "$JETSIGN_CLIENT" == "null" ]]; then
|
||||
echo "JetSign client is missing, cannot proceed with signing"
|
||||
exit 1
|
||||
elif ! isMacOsBinary "$pathToBeSigned" && [[ "$pathToBeSigned" != *.sit ]] && [[ "$pathToBeSigned" != *.tar.gz ]]; then
|
||||
echo "$pathToBeSigned won't be signed, assumed not to be a macOS executable"
|
||||
else
|
||||
if isMacOsBinary "$pathToBeSigned" && ! isSigned "$pathToBeSigned" ; then
|
||||
echo "Unsigned macOS binary: $pathToBeSigned"
|
||||
fi
|
||||
workDir=$(dirname "$pathToBeSigned")
|
||||
pathSigned="$workDir/signed/${pathToBeSigned##*/}"
|
||||
jetSignExtensions=$(jetSignExtensions "${jetSignArgs[@]}")
|
||||
contentType=$(jetSignContentType "$pathToBeSigned")
|
||||
(
|
||||
cd "$workDir" || exit 1
|
||||
"$JETSIGN_CLIENT" -log-format text -denoted-content-type "$contentType" -extensions "$jetSignExtensions" "$pathToBeSigned"
|
||||
# SRE-1223 (Codesign removes execute bits in executable files) workaround
|
||||
chmod "$(stat -f %A "$pathToBeSigned")" "$pathSigned"
|
||||
if isMacOsBinary "$pathSigned"; then
|
||||
isSigned "$pathSigned"
|
||||
fi
|
||||
rm "$pathToBeSigned"
|
||||
mv "$pathSigned" "$pathToBeSigned"
|
||||
rm -rf "$workDir/signed"
|
||||
)
|
||||
fi
|
||||
63
jb/project/tools/mac/scripts/jetsign-common.sh
Executable file
63
jb/project/tools/mac/scripts/jetsign-common.sh
Executable file
@@ -0,0 +1,63 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
function isForced() {
|
||||
for arg in "$@"; do
|
||||
if [[ "$arg" == --force ]]; then
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
function jetSignExtensions() {
|
||||
args=("$@")
|
||||
((lastElementIndex=${#args[@]}-1))
|
||||
for index in "${!args[@]}"; do
|
||||
arg=${args[$index]}
|
||||
case "$arg" in
|
||||
--sign | -s)
|
||||
echo -n 'mac_codesign_identity='
|
||||
continue
|
||||
;;
|
||||
--entitlements)
|
||||
echo -n 'mac_codesign_entitlements='
|
||||
continue
|
||||
;;
|
||||
--options=runtime)
|
||||
echo -n 'mac_codesign_options=runtime'
|
||||
;;
|
||||
--force)
|
||||
echo -n 'mac_codesign_force=true'
|
||||
;;
|
||||
--timestamp | --verbose | -v)
|
||||
continue
|
||||
;;
|
||||
*)
|
||||
echo -n "$arg"
|
||||
;;
|
||||
esac
|
||||
if [[ $index != "$lastElementIndex" ]]; then
|
||||
echo -n ","
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# See jetbrains.sign.util.FileUtil.contentType
|
||||
function jetSignContentType() {
|
||||
case "${1##*/}" in
|
||||
*.sit)
|
||||
echo -n 'application/x-mac-app-zip'
|
||||
;;
|
||||
*.tar.gz)
|
||||
echo -n 'application/x-mac-app-targz'
|
||||
;;
|
||||
*.pkg)
|
||||
echo -n 'application/x-mac-pkg'
|
||||
;;
|
||||
*)
|
||||
echo -n 'application/x-mac-app-bin'
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
@@ -101,6 +101,10 @@ function create_image_bundle {
|
||||
zip_native_debug_symbols $IMAGES_DIR/jdk-bundle/jdk-$JBSDK_VERSION.jdk "${JBR}_diz"
|
||||
fi
|
||||
|
||||
if [ "$bundle_type" == "jcef" ]; then
|
||||
cat $JCEF_PATH/jcef.version >> "$JRE_CONTENTS/Home/release"
|
||||
fi
|
||||
|
||||
cp -R "$JSDK"/../MacOS "$JRE_CONTENTS"
|
||||
cp "$JSDK"/../Info.plist "$JRE_CONTENTS"
|
||||
|
||||
|
||||
@@ -1,21 +1,17 @@
|
||||
#!/bin/bash
|
||||
|
||||
#immediately exit script with an error if a command fails
|
||||
set -euo pipefail
|
||||
set -x
|
||||
[[ "${SCRIPT_VERBOSE:-}" == "1" ]] && set -x
|
||||
|
||||
APP_DIRECTORY=$1
|
||||
APPL_USER=$2
|
||||
APPL_PASSWORD=$3
|
||||
APP_NAME=$4
|
||||
BUNDLE_ID=$5
|
||||
FAKE_ROOT="${6:-fake-root}"
|
||||
APP_PATH=$1
|
||||
|
||||
if [[ -z "$APP_DIRECTORY" ]] || [[ -z "$APPL_USER" ]] || [[ -z "$APPL_PASSWORD" ]]; then
|
||||
echo "Usage: $0 AppDirectory Username Password"
|
||||
if [[ -z "$APP_PATH" ]]; then
|
||||
echo "Usage: $0 AppPath"
|
||||
exit 1
|
||||
fi
|
||||
if [[ ! -d "$APP_DIRECTORY" ]]; then
|
||||
echo "AppDirectory '$APP_DIRECTORY' does not exist or not a directory"
|
||||
if [[ ! -f "$APP_PATH" ]]; then
|
||||
echo "AppName '$APP_PATH' does not exist or not a file"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -23,99 +19,22 @@ 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
|
||||
}
|
||||
# check required parameters
|
||||
: "${APPLE_ISSUER_ID}"
|
||||
: "${APPLE_KEY_ID}"
|
||||
: "${APPLE_PRIVATE_KEY}"
|
||||
|
||||
#immediately exit script with an error if a command fails
|
||||
set -euo pipefail
|
||||
# shellcheck disable=SC2064
|
||||
trap "rm -f \"$PWD/tmp_key\"" INT EXIT RETURN
|
||||
echo -n "${APPLE_PRIVATE_KEY}" > tmp_key
|
||||
|
||||
#file="$APP_NAME.zip"
|
||||
log "Notarizing $APP_PATH..."
|
||||
xcrun notarytool submit --key tmp_key --key-id "${APPLE_KEY_ID}" --issuer "${APPLE_ISSUER_ID}" "$APP_PATH" 2>&1 | tee "notarytool.submit.out"
|
||||
REQUEST_ID="$(grep -e " id: " "notarytool.submit.out" | grep -oE '([0-9a-f-]{36})'| head -n1)"
|
||||
|
||||
#log "Zipping $file..."
|
||||
#rm -rf "$file"
|
||||
#ditto -c -k --sequesterRsrc --keepParent "$APP_DIRECTORY" "$file"
|
||||
xcrun notarytool wait "$REQUEST_ID" --key tmp_key --key-id "${APPLE_KEY_ID}" --issuer "${APPLE_ISSUER_ID}" --timeout 6h ||:
|
||||
xcrun notarytool log "$REQUEST_ID" --key tmp_key --key-id "${APPLE_KEY_ID}" --issuer "${APPLE_ISSUER_ID}" developer_log.json ||:
|
||||
xcrun notarytool info "$REQUEST_ID" --key tmp_key --key-id "${APPLE_KEY_ID}" --issuer "${APPLE_ISSUER_ID}"
|
||||
|
||||
log "Notarizing $APP_NAME..."
|
||||
rm -rf "altool.init.out" "altool.check.out"
|
||||
altool-upload "$APP_NAME"
|
||||
|
||||
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
|
||||
log "Notarizing finished"
|
||||
|
||||
41
jb/project/tools/mac/scripts/productsign.sh
Executable file
41
jb/project/tools/mac/scripts/productsign.sh
Executable file
@@ -0,0 +1,41 @@
|
||||
#!/bin/bash
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" >/dev/null && pwd)"
|
||||
|
||||
source "$SCRIPT_DIR/jetsign-common.sh" || exit 1
|
||||
|
||||
function isSigned() {
|
||||
pkgutil --check-signature "$1" >/dev/null 2>&1 && grep -q "signed by a developer certificate" < <(pkgutil --check-signature "$1" 2>&1)
|
||||
}
|
||||
|
||||
# second last argument is a path to be signed
|
||||
pathToBeSigned="$(pwd)/${*:(-2):1}"
|
||||
# last argument is a path to signed file
|
||||
pathOut="$(pwd)/${*:(-1)}"
|
||||
jetSignArgs=("${@:1:$#-2}")
|
||||
if [[ ! -f "$pathToBeSigned" ]]; then
|
||||
echo "$pathToBeSigned is missing or not a file"
|
||||
exit 1
|
||||
elif isSigned "$pathToBeSigned" && ! isForced "${jetSignArgs[@]}" ; then
|
||||
echo "Already signed: $pathToBeSigned"
|
||||
elif [[ "$JETSIGN_CLIENT" == "null" ]]; then
|
||||
echo "JetSign client is missing, cannot proceed with signing"
|
||||
exit 1
|
||||
elif [[ "$pathToBeSigned" != *.pkg ]]; then
|
||||
echo "$pathToBeSigned won't be signed, assumed not to be a macOS package"
|
||||
else
|
||||
if ! isSigned "$pathToBeSigned" ; then
|
||||
echo "Unsigned macOS package: $pathToBeSigned"
|
||||
fi
|
||||
workDir=$(dirname "$pathToBeSigned")
|
||||
pathSigned="$workDir/signed/${pathToBeSigned##*/}"
|
||||
jetSignExtensions=$(jetSignExtensions "${jetSignArgs[@]}")
|
||||
contentType=$(jetSignContentType "$pathToBeSigned")
|
||||
(
|
||||
cd "$workDir" || exit 1
|
||||
"$JETSIGN_CLIENT" -log-format text -denoted-content-type "$contentType" -extensions "$jetSignExtensions" "$pathToBeSigned"
|
||||
isSigned "$pathSigned"
|
||||
rm -f "$pathOut"
|
||||
mv "$pathSigned" "$pathOut"
|
||||
rm -rf "$workDir/signed"
|
||||
)
|
||||
fi
|
||||
@@ -1,18 +1,33 @@
|
||||
#!/bin/bash
|
||||
|
||||
#immediately exit script with an error if a command fails
|
||||
set -euo pipefail
|
||||
set -x
|
||||
[[ "${SCRIPT_VERBOSE:-}" == "1" ]] && set -x
|
||||
|
||||
if [[ $# -lt 5 ]]; then
|
||||
echo "Usage: $0 AppDirectory AppName BundleId CertificateID InstallerCertificateID"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
APPLICATION_PATH=$1
|
||||
APP_NAME=$2
|
||||
PKG_NAME=$2
|
||||
BUNDLE_ID=$3
|
||||
JB_DEVELOPER_CERT=$4
|
||||
JB_INSTALLER_CERT=$5
|
||||
|
||||
if [[ -z "$APPLICATION_PATH" ]] || [[ -z "$JB_DEVELOPER_CERT" ]]; then
|
||||
echo "Usage: $0 AppDirectory CertificateID"
|
||||
exit 1
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" >/dev/null && pwd)"
|
||||
|
||||
# Use JetBrains sign utility if it's available
|
||||
if [[ "${JETSIGN_CLIENT:=}" == "null" ]] || [[ "$JETSIGN_CLIENT" == "" ]]; then
|
||||
JB_SIGN=false
|
||||
SIGN_UTILITY="codesign"
|
||||
PRODUCTSIGN_UTILITY="productsign"
|
||||
else
|
||||
JB_SIGN=true
|
||||
SIGN_UTILITY="$SCRIPT_DIR/codesign.sh"
|
||||
PRODUCTSIGN_UTILITY="$SCRIPT_DIR/productsign.sh"
|
||||
fi
|
||||
|
||||
if [[ ! -d "$APPLICATION_PATH" ]]; then
|
||||
echo "AppDirectory '$APPLICATION_PATH' does not exist or not a directory"
|
||||
exit 1
|
||||
@@ -22,9 +37,6 @@ 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 "$APPLICATION_PATH" -name '*.cstemp' -exec rm '{}' \;
|
||||
|
||||
@@ -37,13 +49,13 @@ for f in \
|
||||
if [ -d "$APPLICATION_PATH/$f" ]; then
|
||||
find "$APPLICATION_PATH/$f" \
|
||||
-type f \( -name "*.jnilib" -o -name "*.dylib" -o -name "*.so" -o -name "*.tbd" -o -name "*.node" -o -perm +111 \) \
|
||||
-exec codesign --timestamp \
|
||||
-exec "$SIGN_UTILITY" --timestamp \
|
||||
-v -s "$JB_DEVELOPER_CERT" --options=runtime --force \
|
||||
--entitlements entitlements.xml {} \;
|
||||
--entitlements "$SCRIPT_DIR/entitlements.xml" {} \;
|
||||
fi
|
||||
done
|
||||
|
||||
log "Signing libraries in jars in $PWD"
|
||||
log "Signing libraries in jars in $APPLICATION_PATH"
|
||||
|
||||
# todo: add set -euo pipefail; into the inner sh -c
|
||||
# `-e` prevents `grep -q && printf` loginc
|
||||
@@ -61,10 +73,10 @@ find "$APPLICATION_PATH" -name '*.jar' \
|
||||
|
||||
find jarfolder \
|
||||
-type f \( -name "*.jnilib" -o -name "*.dylib" -o -name "*.so" -o -name "*.tbd" -o -name "jattach" \) \
|
||||
-exec codesign --timestamp \
|
||||
-exec "$SIGN_UTILITY" --timestamp \
|
||||
--force \
|
||||
-v -s "$JB_DEVELOPER_CERT" --options=runtime \
|
||||
--entitlements entitlements.xml {} \;
|
||||
--entitlements "$SCRIPT_DIR/entitlements.xml" {} \;
|
||||
|
||||
(cd jarfolder; zip -q -r -o -0 ../jar.jar .)
|
||||
mv jar.jar "$file"
|
||||
@@ -73,44 +85,77 @@ find "$APPLICATION_PATH" -name '*.jar' \
|
||||
rm -rf jarfolder jar.jar
|
||||
|
||||
log "Signing other files..."
|
||||
# shellcheck disable=SC2043
|
||||
for f in \
|
||||
"Contents/Home/bin"; do
|
||||
if [ -d "$APPLICATION_PATH/$f" ]; then
|
||||
find "$APPLICATION_PATH/$f" \
|
||||
-type f \( -name "*.jnilib" -o -name "*.dylib" -o -name "*.so" -o -name "*.tbd" -o -perm +111 \) \
|
||||
-exec codesign --timestamp \
|
||||
-exec "$SIGN_UTILITY" --timestamp \
|
||||
-v -s "$JB_DEVELOPER_CERT" --options=runtime --force \
|
||||
--entitlements entitlements.xml {} \;
|
||||
--entitlements "$SCRIPT_DIR/entitlements.xml" {} \;
|
||||
fi
|
||||
done
|
||||
|
||||
#log "Signing executable..."
|
||||
#codesign --timestamp \
|
||||
# -v -s "$JB_DEVELOPER_CERT" --options=runtime \
|
||||
# --force \
|
||||
# --entitlements entitlements.xml "$APPLICATION_PATH/Contents/MacOS/idea"
|
||||
log "Signing whole frameworks..."
|
||||
# shellcheck disable=SC2043
|
||||
if [ "$JB_SIGN" = true ]; then for f in \
|
||||
"Contents/Home/Frameworks" "Contents/Frameworks"; do
|
||||
if [ -d "$APPLICATION_PATH/$f" ]; then
|
||||
find "$APPLICATION_PATH/$f" \( -name '*.framework' -o -name '*.app' \) -maxdepth 1 | while read -r line
|
||||
do
|
||||
log "Signing '$line':"
|
||||
tar -pczf tmp-to-sign.tar.gz -C "$(dirname "$line")" "$(basename "$line")"
|
||||
"$SIGN_UTILITY" --timestamp \
|
||||
-v -s "$JB_DEVELOPER_CERT" --options=runtime \
|
||||
--force \
|
||||
--entitlements "$SCRIPT_DIR/entitlements.xml" tmp-to-sign.tar.gz
|
||||
rm -rf "$line"
|
||||
tar -xzf tmp-to-sign.tar.gz --directory "$(dirname "$line")"
|
||||
rm -f tmp-to-sign.tar.gz
|
||||
done
|
||||
fi
|
||||
done; fi
|
||||
|
||||
log "Checking framework signatures..."
|
||||
for f in \
|
||||
"Contents/Home/Frameworks" "Contents/Frameworks"; do
|
||||
if [ -d "$APPLICATION_PATH/$f" ]; then
|
||||
find "$APPLICATION_PATH/$f" -name '*.framework' -maxdepth 1 | while read -r line
|
||||
do
|
||||
log "Checking '$line':"
|
||||
codesign --verify --deep --strict --verbose=4 "$line"
|
||||
done
|
||||
fi
|
||||
done
|
||||
|
||||
log "Signing whole app..."
|
||||
codesign --timestamp \
|
||||
-v -s "$JB_DEVELOPER_CERT" --options=runtime \
|
||||
--force \
|
||||
--entitlements entitlements.xml "$APPLICATION_PATH"
|
||||
if [ "$JB_SIGN" = true ]; then
|
||||
tar -pczf tmp-to-sign.tar.gz --exclude='man' -C "$(dirname "$APPLICATION_PATH")" "$(basename "$APPLICATION_PATH")"
|
||||
"$SIGN_UTILITY" --timestamp \
|
||||
-v -s "$JB_DEVELOPER_CERT" --options=runtime \
|
||||
--force \
|
||||
--entitlements "$SCRIPT_DIR/entitlements.xml" tmp-to-sign.tar.gz
|
||||
rm -rf "$APPLICATION_PATH"
|
||||
tar -xzf tmp-to-sign.tar.gz --directory "$(dirname "$APPLICATION_PATH")"
|
||||
rm -f tmp-to-sign.tar.gz
|
||||
else
|
||||
"$SIGN_UTILITY" --timestamp \
|
||||
-v -s "$JB_DEVELOPER_CERT" --options=runtime \
|
||||
--force \
|
||||
--entitlements "$SCRIPT_DIR/entitlements.xml" "$APPLICATION_PATH"
|
||||
fi
|
||||
|
||||
BUILD_NAME=$(echo $APPLICATION_PATH | awk -F"/" '{ print $2 }')
|
||||
BUILD_NAME="$(basename "$APPLICATION_PATH")"
|
||||
|
||||
log "Creating $APP_NAME.pkg..."
|
||||
rm -rf "$APP_NAME.pkg"
|
||||
log "Creating $PKG_NAME..."
|
||||
rm -rf "$PKG_NAME"
|
||||
|
||||
mkdir -p unsigned
|
||||
pkgbuild --identifier $BUNDLE_ID --root $APPLICATION_PATH \
|
||||
--install-location /Library/Java/JavaVirtualMachines/${BUILD_NAME} unsigned/${APP_NAME}.pkg
|
||||
productsign --timestamp --sign "$JB_INSTALLER_CERT" unsigned/${APP_NAME}.pkg ${APP_NAME}.pkg
|
||||
|
||||
#log "Signing whole app..."
|
||||
#codesign --timestamp \
|
||||
# -v -s "$JB_DEVELOPER_CERT" --options=runtime \
|
||||
# --force \
|
||||
# --entitlements entitlements.xml $APP_NAME.pkg
|
||||
--install-location /Library/Java/JavaVirtualMachines/${BUILD_NAME} unsigned/${PKG_NAME}
|
||||
log "Signing $PKG_NAME..."
|
||||
"$PRODUCTSIGN_UTILITY" --timestamp --sign "$JB_INSTALLER_CERT" unsigned/${PKG_NAME} ${PKG_NAME}
|
||||
|
||||
log "Verifying java is not broken"
|
||||
find "$APPLICATION_PATH" \
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
#immediately exit script with an error if a command fails
|
||||
set -euo pipefail
|
||||
set -x
|
||||
[[ "${SCRIPT_VERBOSE:-}" == "1" ]] && set -x
|
||||
|
||||
export COPY_EXTENDED_ATTRIBUTES_DISABLE=true
|
||||
export COPYFILE_DISABLE=true
|
||||
@@ -17,7 +17,7 @@ JB_INSTALLER_CERT=$6
|
||||
NOTARIZE=$7
|
||||
BUNDLE_ID=$8
|
||||
|
||||
cd "$(dirname "$0")"
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" >/dev/null && pwd)"
|
||||
|
||||
function log() {
|
||||
echo "$(date '+[%H:%M:%S]') $*"
|
||||
@@ -44,7 +44,8 @@ fi
|
||||
|
||||
log "$INPUT_FILE extracted and removed"
|
||||
|
||||
APP_NAME=$(echo ${INPUT_FILE} | awk -F".tar" '{ print $1 }')
|
||||
APP_NAME=$(basename "$INPUT_FILE" | awk -F".tar" '{ print $1 }')
|
||||
PKG_NAME="$APP_NAME.pkg"
|
||||
APPLICATION_PATH=$EXPLODED/$(ls $EXPLODED)
|
||||
|
||||
find "$APPLICATION_PATH/Contents/Home/bin" \
|
||||
@@ -73,16 +74,18 @@ if [[ $non_plist -gt 0 ]]; then
|
||||
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"
|
||||
if [[ "${JETSIGN_CLIENT:=}" == "null" ]] || [[ "$JETSIGN_CLIENT" == "" ]]; then
|
||||
log "Unlocking keychain..."
|
||||
# Make sure *.p12 is imported into local KeyChain
|
||||
security unlock-keychain -p "$PASSWORD" "/Users/$USERNAME/Library/Keychains/login.keychain"
|
||||
fi
|
||||
|
||||
attempt=1
|
||||
limit=3
|
||||
set +e
|
||||
while [[ $attempt -le $limit ]]; do
|
||||
log "Signing (attempt $attempt) $APPLICATION_PATH ..."
|
||||
./sign.sh "$APPLICATION_PATH" "$APP_NAME" "$BUNDLE_ID" "$CODESIGN_STRING" "$JB_INSTALLER_CERT"
|
||||
"$SCRIPT_DIR/sign.sh" "$APPLICATION_PATH" "$PKG_NAME" "$BUNDLE_ID" "$CODESIGN_STRING" "$JB_INSTALLER_CERT"
|
||||
ec=$?
|
||||
if [[ $ec -ne 0 ]]; then
|
||||
((attempt += 1))
|
||||
@@ -104,19 +107,10 @@ set -e
|
||||
|
||||
if [ "$NOTARIZE" = "yes" ]; then
|
||||
log "Notarizing..."
|
||||
# shellcheck disable=SC1090
|
||||
source "$HOME/.notarize_token"
|
||||
# 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.pkg" "$BUNDLE_ID" "$FAKE_ROOT"
|
||||
rm -rf "$FAKE_ROOT"
|
||||
|
||||
set +e
|
||||
"$SCRIPT_DIR/notarize.sh" "$PKG_NAME"
|
||||
log "Stapling..."
|
||||
xcrun stapler staple "$APPLICATION_PATH"
|
||||
xcrun stapler staple "$APPLICATION_PATH" ||:
|
||||
xcrun stapler staple "$PKG_NAME" ||:
|
||||
else
|
||||
log "Notarization disabled"
|
||||
log "Stapling disabled"
|
||||
@@ -129,7 +123,11 @@ log "Zipping $BUILD_NAME to $INPUT_FILE ..."
|
||||
if test -d $BACKUP_JMODS/jmods; then
|
||||
mv $BACKUP_JMODS/jmods $APPLICATION_PATH/Contents/Home
|
||||
fi
|
||||
mv $APPLICATION_PATH $EXPLODED/$BUILD_NAME
|
||||
if [[ "$APPLICATION_PATH" != "$EXPLODED/$BUILD_NAME" ]]; then
|
||||
mv $APPLICATION_PATH $EXPLODED/$BUILD_NAME
|
||||
else
|
||||
echo "No move, source == destination: $APPLICATION_PATH"
|
||||
fi
|
||||
|
||||
tar -pczvf $INPUT_FILE --exclude='man' -C $EXPLODED $BUILD_NAME
|
||||
log "Finished zipping"
|
||||
|
||||
@@ -126,6 +126,7 @@ if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ]; then
|
||||
cp $JCEF_PATH/jmods/* ${JSDK_MODS_DIR} # $JSDK/jmods is not unchanged
|
||||
|
||||
jbr_name_postfix="_${bundle_type}"
|
||||
cat $JCEF_PATH/jcef.version >> $JSDK/release
|
||||
else
|
||||
jbr_name_postfix=""
|
||||
fi
|
||||
|
||||
@@ -117,6 +117,7 @@ if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ]; then
|
||||
cp $JCEF_PATH/jmods/* ${JSDK_MODS_DIR} # $JSDK/jmods is not unchanged
|
||||
|
||||
jbr_name_postfix="_${bundle_type}"
|
||||
cat $JCEF_PATH/jcef.version >> $JSDK/release
|
||||
else
|
||||
jbr_name_postfix=""
|
||||
fi
|
||||
|
||||
@@ -42,7 +42,7 @@ JBR_API_GENSRC_FILES := $(foreach f, $(call FindFiles, $(JBR_API_SRC_DIR)), \
|
||||
$(JBR_API_GENSRC_DIR)/$(call RelativePath, $f, $(JBR_API_SRC_DIR)))
|
||||
|
||||
ifeq ($(JBR_API_JBR_VERSION),)
|
||||
JBR_API_JBR_VERSION := <DEVELOPMENT>
|
||||
JBR_API_JBR_VERSION := DEVELOPMENT
|
||||
JBR_API_FAIL_ON_HASH_MISMATCH := false
|
||||
else
|
||||
.PHONY: $(JBR_API_VERSION_PROPERTIES)
|
||||
@@ -90,4 +90,4 @@ ifneq ($(JBR_API_CONF_FILE),)
|
||||
$(ECHO) "SOURCES_JAR=$(JBR_API_OUTPUT_DIR)/jbr-api-sources.jar" >> $(JBR_API_CONF_FILE)
|
||||
jbr-api: $(JBR_API_CONF_FILE)
|
||||
.PHONY: $(JBR_API_CONF_FILE)
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -51,6 +51,7 @@ define create-info-file
|
||||
$(if $(VENDOR_VERSION_STRING), \
|
||||
$(call info-file-item, "IMPLEMENTOR_VERSION", "$(VENDOR_VERSION_STRING)"))
|
||||
$(call info-file-item, "JAVA_VERSION_DATE", "$(VERSION_DATE)")
|
||||
$(call info-file-item, "JAVA_RUNTIME_VERSION", "$(VERSION_STRING)")
|
||||
$(call info-file-item, "OS_NAME", "$(RELEASE_FILE_OS_NAME)")
|
||||
$(call info-file-item, "OS_ARCH", "$(RELEASE_FILE_OS_ARCH)")
|
||||
$(call info-file-item, "LIBC", "$(RELEASE_FILE_LIBC)")
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2014, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2014, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@@ -31,6 +31,7 @@ include JavaCompilation.gmk
|
||||
include Modules.gmk
|
||||
|
||||
SRC_ZIP_WORK_DIR := $(SUPPORT_OUTPUTDIR)/src
|
||||
$(if $(filter $(TOPDIR)/%, $(SUPPORT_OUTPUTDIR)), $(eval SRC_ZIP_BASE := $(TOPDIR)), $(eval SRC_ZIP_BASE := $(SUPPORT_OUTPUTDIR)))
|
||||
|
||||
# Hook to include the corresponding custom file, if present.
|
||||
$(eval $(call IncludeCustomExtension, ZipSource.gmk))
|
||||
@@ -45,10 +46,10 @@ ALL_MODULES := $(FindAllModules)
|
||||
# again to create src.zip.
|
||||
$(foreach m, $(ALL_MODULES), \
|
||||
$(foreach d, $(call FindModuleSrcDirs, $m), \
|
||||
$(eval $d_TARGET := $(SRC_ZIP_WORK_DIR)/$(patsubst $(TOPDIR)/%,%,$d)/$m) \
|
||||
$(eval $d_TARGET := $(SRC_ZIP_WORK_DIR)/$(patsubst $(TOPDIR)/%,%,$(patsubst $(SUPPORT_OUTPUTDIR)/%,%,$d))/$m) \
|
||||
$(if $(SRC_GENERATED), , \
|
||||
$(eval $$($d_TARGET): $d ; \
|
||||
$$(if $(filter $(TOPDIR)/%, $d), $$(link-file-relative), $$(link-file-absolute)) \
|
||||
$$(if $(filter $(SRC_ZIP_BASE)/%, $d), $$(link-file-relative), $$(link-file-absolute)) \
|
||||
) \
|
||||
) \
|
||||
$(eval SRC_ZIP_SRCS += $$($d_TARGET)) \
|
||||
|
||||
@@ -55,6 +55,7 @@ AC_DEFUN([BASIC_CHECK_LEFTOVER_OVERRIDDEN],
|
||||
|
||||
###############################################################################
|
||||
# Setup basic configuration paths, and platform-specific stuff related to PATHs.
|
||||
# Make sure to only use tools set up in BASIC_SETUP_FUNDAMENTAL_TOOLS.
|
||||
AC_DEFUN_ONCE([BASIC_SETUP_PATHS],
|
||||
[
|
||||
# Save the current directory this script was started from
|
||||
@@ -212,6 +213,18 @@ AC_DEFUN_ONCE([BASIC_SETUP_DEVKIT],
|
||||
[UTIL_PREPEND_TO_PATH([TOOLCHAIN_PATH],$with_toolchain_path)]
|
||||
)
|
||||
|
||||
AC_ARG_WITH([xcode-path], [AS_HELP_STRING([--with-xcode-path],
|
||||
[set up toolchain on Mac OS using a path to an Xcode installation])])
|
||||
|
||||
if test "x$with_xcode_path" != x; then
|
||||
if test "x$OPENJDK_BUILD_OS" = "xmacosx"; then
|
||||
UTIL_PREPEND_TO_PATH([TOOLCHAIN_PATH],
|
||||
$with_xcode_path/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin:$with_xcode_path/Contents/Developer/usr/bin)
|
||||
else
|
||||
AC_MSG_WARN([Option --with-xcode-path is only valid on Mac OS, ignoring.])
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_ARG_WITH([extra-path], [AS_HELP_STRING([--with-extra-path],
|
||||
[prepend these directories to the default path])],
|
||||
[UTIL_PREPEND_TO_PATH([EXTRA_PATH],$with_extra_path)]
|
||||
@@ -222,7 +235,7 @@ AC_DEFUN_ONCE([BASIC_SETUP_DEVKIT],
|
||||
# If not, detect if Xcode is installed by running xcodebuild -version
|
||||
# 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
|
||||
if test "x$DEVKIT_ROOT" != x || test "x$TOOLCHAIN_PATH" != x || /usr/bin/xcodebuild -version >/dev/null 2>&1; then
|
||||
# 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
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
#
|
||||
|
||||
###############################################################################
|
||||
# Setup the most fundamental tools that relies on not much else to set up,
|
||||
# but is used by much of the early bootstrap code.
|
||||
# Setup the most fundamental tools, used for setting up build platform and
|
||||
# path handling.
|
||||
AC_DEFUN_ONCE([BASIC_SETUP_FUNDAMENTAL_TOOLS],
|
||||
[
|
||||
# Bootstrapping: These tools are needed by UTIL_LOOKUP_PROGS
|
||||
@@ -37,7 +37,28 @@ AC_DEFUN_ONCE([BASIC_SETUP_FUNDAMENTAL_TOOLS],
|
||||
UTIL_CHECK_NONEMPTY(FILE)
|
||||
AC_PATH_PROGS(LDD, ldd)
|
||||
|
||||
# First are all the fundamental required tools.
|
||||
# Required tools
|
||||
UTIL_REQUIRE_PROGS(ECHO, echo)
|
||||
UTIL_REQUIRE_PROGS(TR, tr)
|
||||
UTIL_REQUIRE_PROGS(UNAME, uname)
|
||||
UTIL_REQUIRE_PROGS(WC, wc)
|
||||
|
||||
# Required tools with some special treatment
|
||||
UTIL_REQUIRE_SPECIAL(GREP, [AC_PROG_GREP])
|
||||
UTIL_REQUIRE_SPECIAL(EGREP, [AC_PROG_EGREP])
|
||||
UTIL_REQUIRE_SPECIAL(SED, [AC_PROG_SED])
|
||||
|
||||
# Tools only needed on some platforms
|
||||
UTIL_LOOKUP_PROGS(PATHTOOL, cygpath wslpath)
|
||||
UTIL_LOOKUP_PROGS(CMD, cmd.exe, $PATH:/cygdrive/c/windows/system32:/mnt/c/windows/system32:/c/windows/system32)
|
||||
])
|
||||
|
||||
###############################################################################
|
||||
# Setup further tools that should be resolved early but after setting up
|
||||
# build platform and path handling.
|
||||
AC_DEFUN_ONCE([BASIC_SETUP_TOOLS],
|
||||
[
|
||||
# Required tools
|
||||
UTIL_REQUIRE_PROGS(BASH, bash)
|
||||
UTIL_REQUIRE_PROGS(CAT, cat)
|
||||
UTIL_REQUIRE_PROGS(CHMOD, chmod)
|
||||
@@ -45,7 +66,6 @@ AC_DEFUN_ONCE([BASIC_SETUP_FUNDAMENTAL_TOOLS],
|
||||
UTIL_REQUIRE_PROGS(CUT, cut)
|
||||
UTIL_REQUIRE_PROGS(DATE, date)
|
||||
UTIL_REQUIRE_PROGS(DIFF, gdiff diff)
|
||||
UTIL_REQUIRE_PROGS(ECHO, echo)
|
||||
UTIL_REQUIRE_PROGS(EXPR, expr)
|
||||
UTIL_REQUIRE_PROGS(FIND, find)
|
||||
UTIL_REQUIRE_PROGS(GUNZIP, gunzip)
|
||||
@@ -67,26 +87,18 @@ AC_DEFUN_ONCE([BASIC_SETUP_FUNDAMENTAL_TOOLS],
|
||||
UTIL_REQUIRE_PROGS(TAR, gtar tar)
|
||||
UTIL_REQUIRE_PROGS(TEE, tee)
|
||||
UTIL_REQUIRE_PROGS(TOUCH, touch)
|
||||
UTIL_REQUIRE_PROGS(TR, tr)
|
||||
UTIL_REQUIRE_PROGS(UNAME, uname)
|
||||
UTIL_REQUIRE_PROGS(WC, wc)
|
||||
UTIL_REQUIRE_PROGS(XARGS, xargs)
|
||||
|
||||
# Then required tools that require some special treatment.
|
||||
UTIL_REQUIRE_SPECIAL(GREP, [AC_PROG_GREP])
|
||||
UTIL_REQUIRE_SPECIAL(EGREP, [AC_PROG_EGREP])
|
||||
# Required tools with some special treatment
|
||||
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)
|
||||
# Tools only needed on some platforms
|
||||
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)
|
||||
@@ -161,7 +173,7 @@ AC_DEFUN([BASIC_CHECK_MAKE_OUTPUT_SYNC],
|
||||
[
|
||||
# Check if make supports the output sync option and if so, setup using it.
|
||||
UTIL_ARG_WITH(NAME: output-sync, TYPE: literal,
|
||||
VALID_VALUES: [none recurse line target], DEFAULT: recurse,
|
||||
VALID_VALUES: [none recurse line target], DEFAULT: none,
|
||||
OPTIONAL: true, ENABLED_DEFAULT: true,
|
||||
ENABLED_RESULT: OUTPUT_SYNC_SUPPORTED,
|
||||
CHECKING_MSG: [for make --output-sync value],
|
||||
|
||||
65
make/autoconf/build-aux/config.guess
vendored
65
make/autoconf/build-aux/config.guess
vendored
@@ -29,7 +29,40 @@
|
||||
# and fix the broken property, if needed.
|
||||
|
||||
DIR=`dirname $0`
|
||||
OUT=`. $DIR/autoconf-config.guess`
|
||||
OUT=`. $DIR/autoconf-config.guess 2> /dev/null`
|
||||
|
||||
# Handle some cases that autoconf-config.guess is not capable of
|
||||
if [ "x$OUT" = x ]; then
|
||||
if [ `uname -s` = Linux ]; then
|
||||
# Test and fix little endian MIPS.
|
||||
if [ `uname -m` = mipsel ]; then
|
||||
OUT=mipsel-unknown-linux-gnu
|
||||
elif [ `uname -m` = mips64el ]; then
|
||||
OUT=mips64el-unknown-linux-gnu
|
||||
# Test and fix little endian PowerPC64.
|
||||
elif [ `uname -m` = ppc64le ]; then
|
||||
OUT=powerpc64le-unknown-linux-gnu
|
||||
# Test and fix LoongArch64.
|
||||
elif [ `uname -m` = loongarch64 ]; then
|
||||
OUT=loongarch64-unknown-linux-gnu
|
||||
# Test and fix RISC-V.
|
||||
elif [ `uname -m` = riscv64 ]; then
|
||||
OUT=riscv64-unknown-linux-gnu
|
||||
fi
|
||||
# Test and fix cygwin machine arch .x86_64
|
||||
elif [[ `uname -s` = CYGWIN* ]]; then
|
||||
if [ `uname -m` = ".x86_64" ]; then
|
||||
OUT=x86_64-unknown-cygwin
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "x$OUT" = x ]; then
|
||||
# Run autoconf-config.guess again to get the error message.
|
||||
. $DIR/autoconf-config.guess > /dev/null
|
||||
else
|
||||
printf "guessed by custom config.guess... " >&2
|
||||
fi
|
||||
fi
|
||||
|
||||
# Detect C library.
|
||||
# Use '-gnu' suffix on systems that use glibc.
|
||||
@@ -81,36 +114,6 @@ if test $? = 0; then
|
||||
OUT=powerpc$KERNEL_BITMODE`echo $OUT | sed -e 's/[^-]*//'`
|
||||
fi
|
||||
|
||||
# Test and fix little endian PowerPC64.
|
||||
# TODO: should be handled by autoconf-config.guess.
|
||||
if [ "x$OUT" = x ]; then
|
||||
if [ `uname -m` = ppc64le ]; then
|
||||
if [ `uname -s` = Linux ]; then
|
||||
OUT=powerpc64le-unknown-linux-gnu
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Test and fix little endian MIPS.
|
||||
if [ "x$OUT" = x ]; then
|
||||
if [ `uname -s` = Linux ]; then
|
||||
if [ `uname -m` = mipsel ]; then
|
||||
OUT=mipsel-unknown-linux-gnu
|
||||
elif [ `uname -m` = mips64el ]; then
|
||||
OUT=mips64el-unknown-linux-gnu
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Test and fix LoongArch64.
|
||||
if [ "x$OUT" = x ]; then
|
||||
if [ `uname -s` = Linux ]; then
|
||||
if [ `uname -m` = loongarch64 ]; then
|
||||
OUT=loongarch64-unknown-linux-gnu
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Test and fix cpu on macos-aarch64, uname -p reports arm, buildsys expects aarch64
|
||||
echo $OUT | grep arm-apple-darwin > /dev/null 2> /dev/null
|
||||
if test $? != 0; then
|
||||
|
||||
@@ -86,6 +86,7 @@ PLATFORM_SETUP_OPENJDK_BUILD_AND_TARGET
|
||||
|
||||
# Continue setting up basic stuff. Most remaining code require fundamental tools.
|
||||
BASIC_SETUP_PATHS
|
||||
BASIC_SETUP_TOOLS
|
||||
|
||||
# Check if it's a pure open build or if custom sources are to be used.
|
||||
JDKOPT_SETUP_OPEN_OR_CUSTOM
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@@ -188,6 +188,10 @@ AC_DEFUN([FLAGS_SETUP_WARNINGS],
|
||||
WARNINGS_ENABLE_ALL_CXXFLAGS="$WARNINGS_ENABLE_ALL_CFLAGS $WARNINGS_ENABLE_ADDITIONAL_CXX"
|
||||
|
||||
DISABLED_WARNINGS="unused-parameter unused"
|
||||
# gcc10/11 on ppc generate lots of abi warnings about layout of aggregates containing vectors
|
||||
if test "x$OPENJDK_TARGET_CPU_ARCH" = "xppc"; then
|
||||
DISABLED_WARNINGS="$DISABLED_WARNINGS psabi"
|
||||
fi
|
||||
;;
|
||||
|
||||
clang)
|
||||
@@ -641,7 +645,7 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
|
||||
STATIC_LIBS_CFLAGS="-DSTATIC_BUILD=1"
|
||||
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||
STATIC_LIBS_CFLAGS="$STATIC_LIBS_CFLAGS -ffunction-sections -fdata-sections \
|
||||
-DJNIEXPORT='__attribute__((visibility(\"hidden\")))'"
|
||||
-DJNIEXPORT='__attribute__((visibility(\"default\")))'"
|
||||
else
|
||||
STATIC_LIBS_CFLAGS="$STATIC_LIBS_CFLAGS -DJNIEXPORT="
|
||||
fi
|
||||
|
||||
@@ -489,14 +489,14 @@ UTIL_DEFUN_NAMED([FLAGS_CXX_COMPILER_CHECK_ARGUMENTS],
|
||||
UTIL_DEFUN_NAMED([FLAGS_COMPILER_CHECK_ARGUMENTS],
|
||||
[*ARGUMENT IF_TRUE IF_FALSE PREFIX], [$@],
|
||||
[
|
||||
FLAGS_C_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [ARG_ARGUMENT],
|
||||
FLAGS_C_COMPILER_CHECK_ARGUMENTS(ARGUMENT: ARG_ARGUMENT,
|
||||
IF_TRUE: [C_COMP_SUPPORTS="yes"],
|
||||
IF_FALSE: [C_COMP_SUPPORTS="no"],
|
||||
PREFIX: [ARG_PREFIX])
|
||||
FLAGS_CXX_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [ARG_ARGUMENT],
|
||||
PREFIX: ARG_PREFIX)
|
||||
FLAGS_CXX_COMPILER_CHECK_ARGUMENTS(ARGUMENT: ARG_ARGUMENT,
|
||||
IF_TRUE: [CXX_COMP_SUPPORTS="yes"],
|
||||
IF_FALSE: [CXX_COMP_SUPPORTS="no"],
|
||||
PREFIX: [ARG_PREFIX])
|
||||
PREFIX: ARG_PREFIX)
|
||||
|
||||
AC_MSG_CHECKING([if both ARG_PREFIX[CC] and ARG_PREFIX[CXX] support "ARG_ARGUMENT"])
|
||||
supports=no
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@@ -812,7 +812,7 @@ AC_DEFUN([JDKOPT_CHECK_CODESIGN_PARAMS],
|
||||
$RM "$CODESIGN_TESTFILE"
|
||||
$TOUCH "$CODESIGN_TESTFILE"
|
||||
CODESIGN_SUCCESS=false
|
||||
$CODESIGN $PARAMS "$CODESIGN_TESTFILE" 2>&AS_MESSAGE_LOG_FD \
|
||||
eval \"$CODESIGN\" $PARAMS \"$CODESIGN_TESTFILE\" 2>&AS_MESSAGE_LOG_FD \
|
||||
>&AS_MESSAGE_LOG_FD && CODESIGN_SUCCESS=true
|
||||
$RM "$CODESIGN_TESTFILE"
|
||||
AC_MSG_CHECKING([$MESSAGE])
|
||||
@@ -825,7 +825,7 @@ AC_DEFUN([JDKOPT_CHECK_CODESIGN_PARAMS],
|
||||
|
||||
AC_DEFUN([JDKOPT_CHECK_CODESIGN_HARDENED],
|
||||
[
|
||||
JDKOPT_CHECK_CODESIGN_PARAMS([-s "$MACOSX_CODESIGN_IDENTITY" --option runtime],
|
||||
JDKOPT_CHECK_CODESIGN_PARAMS([-s \"$MACOSX_CODESIGN_IDENTITY\" --option runtime],
|
||||
[if codesign with hardened runtime is possible])
|
||||
])
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@@ -248,8 +248,11 @@ AC_DEFUN_ONCE([JVM_FEATURES_CHECK_CDS],
|
||||
AC_DEFUN_ONCE([JVM_FEATURES_CHECK_DTRACE],
|
||||
[
|
||||
JVM_FEATURES_CHECK_AVAILABILITY(dtrace, [
|
||||
AC_MSG_CHECKING([for dtrace tool])
|
||||
if test "x$DTRACE" != "x" && test -x "$DTRACE"; then
|
||||
AC_MSG_CHECKING([for dtrace tool and platform support])
|
||||
if test "x$OPENJDK_TARGET_CPU_ARCH" = "xppc"; then
|
||||
AC_MSG_RESULT([no, $OPENJDK_TARGET_CPU_ARCH])
|
||||
AVAILABLE=false
|
||||
elif test "x$DTRACE" != "x" && test -x "$DTRACE"; then
|
||||
AC_MSG_RESULT([$DTRACE])
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@@ -96,24 +96,29 @@ AC_DEFUN_ONCE([LIB_SETUP_X11],
|
||||
OLD_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS $SYSROOT_CFLAGS $X_CFLAGS"
|
||||
|
||||
HEADERS_TO_CHECK="X11/extensions/shape.h X11/extensions/Xrender.h X11/extensions/XTest.h X11/Intrinsic.h"
|
||||
# There is no Xrandr extension on AIX
|
||||
if test "x$OPENJDK_TARGET_OS" = xaix; then
|
||||
# There is no Xrandr extension on AIX. Code is duplicated to avoid autoconf
|
||||
# 2.71+ warning "AC_CHECK_HEADERS: you should use literals"
|
||||
X_CFLAGS="$X_CFLAGS -DNO_XRANDR"
|
||||
AC_CHECK_HEADERS([X11/extensions/shape.h X11/extensions/Xrender.h X11/extensions/XTest.h X11/Intrinsic.h],
|
||||
[X11_HEADERS_OK=yes],
|
||||
[X11_HEADERS_OK=no; break],
|
||||
[
|
||||
# include <X11/Xlib.h>
|
||||
# include <X11/Xutil.h>
|
||||
]
|
||||
)
|
||||
else
|
||||
HEADERS_TO_CHECK="$HEADERS_TO_CHECK X11/extensions/Xrandr.h"
|
||||
AC_CHECK_HEADERS([X11/extensions/shape.h X11/extensions/Xrender.h X11/extensions/XTest.h X11/Intrinsic.h X11/extensions/Xrandr.h],
|
||||
[X11_HEADERS_OK=yes],
|
||||
[X11_HEADERS_OK=no; break],
|
||||
[
|
||||
# include <X11/Xlib.h>
|
||||
# include <X11/Xutil.h>
|
||||
]
|
||||
)
|
||||
fi
|
||||
|
||||
# Need to include Xlib.h and Xutil.h to avoid "present but cannot be compiled" warnings on Solaris 10
|
||||
AC_CHECK_HEADERS([$HEADERS_TO_CHECK],
|
||||
[X11_HEADERS_OK=yes],
|
||||
[X11_HEADERS_OK=no; break],
|
||||
[
|
||||
# include <X11/Xlib.h>
|
||||
# include <X11/Xutil.h>
|
||||
]
|
||||
)
|
||||
|
||||
if test "x$X11_HEADERS_OK" = xno; then
|
||||
HELP_MSG_MISSING_DEPENDENCY([x11])
|
||||
AC_MSG_ERROR([Could not find all X11 headers (shape.h Xrender.h Xrandr.h XTest.h Intrinsic.h). $HELP_MSG])
|
||||
|
||||
@@ -167,7 +167,7 @@ AC_DEFUN_ONCE([LIB_SETUP_LIBRARIES],
|
||||
|
||||
if test "x$OPENJDK_TARGET_OS" = xwindows; then
|
||||
BASIC_JVM_LIBS="$BASIC_JVM_LIBS kernel32.lib user32.lib gdi32.lib winspool.lib \
|
||||
comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib \
|
||||
comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib powrprof.lib uuid.lib \
|
||||
wsock32.lib winmm.lib version.lib psapi.lib"
|
||||
fi
|
||||
|
||||
|
||||
@@ -632,6 +632,7 @@ AC_DEFUN([PLATFORM_SET_MODULE_TARGET_OS_VALUES],
|
||||
])
|
||||
|
||||
#%%% Build and target systems %%%
|
||||
# Make sure to only use tools set up in BASIC_SETUP_FUNDAMENTAL_TOOLS.
|
||||
AC_DEFUN_ONCE([PLATFORM_SETUP_OPENJDK_BUILD_AND_TARGET],
|
||||
[
|
||||
# Figure out the build and target systems. # Note that in autoconf terminology, "build" is obvious, but "target"
|
||||
@@ -718,7 +719,7 @@ AC_DEFUN_ONCE([PLATFORM_SETUP_OPENJDK_TARGET_ENDIANNESS],
|
||||
[
|
||||
###############################################################################
|
||||
#
|
||||
# Is the target little of big endian?
|
||||
# Is the target little or big endian?
|
||||
#
|
||||
AC_C_BIGENDIAN([ENDIAN="big"],[ENDIAN="little"],[ENDIAN="unknown"],[ENDIAN="universal_endianness"])
|
||||
|
||||
|
||||
@@ -52,7 +52,7 @@ m4_include([util_paths.m4])
|
||||
AC_DEFUN([UTIL_DEFUN_NAMED],
|
||||
[
|
||||
AC_DEFUN($1, [
|
||||
m4_foreach(arg, m4_split(m4_normalize($2)), [
|
||||
m4_foreach([arg], m4_split(m4_normalize($2)), [
|
||||
m4_if(m4_bregexp(arg, [^\*]), -1,
|
||||
[
|
||||
m4_set_add(legal_named_args, arg)
|
||||
@@ -64,13 +64,18 @@ AC_DEFUN([UTIL_DEFUN_NAMED],
|
||||
)
|
||||
])
|
||||
|
||||
m4_foreach([arg], [$3], [
|
||||
m4_if(m4_bregexp(arg, [: ]), -1, m4_define([arg], m4_bpatsubst(arg, [:], [: ])))
|
||||
m4_define(arg_name, m4_substr(arg, 0, m4_bregexp(arg, [: ])))
|
||||
# Delicate quoting and unquoting sequence to ensure the actual value is passed along unchanged
|
||||
# For details on how this works, see https://git.openjdk.org/jdk/pull/11458#discussion_r1038173051
|
||||
# WARNING: Proceed at the risk of your own sanity, getting this to work has made me completely
|
||||
# incapable of feeling love or any other positive emotion
|
||||
# ~Julian
|
||||
m4_foreach([arg], m4_dquote(m4_dquote_elt($3)), [
|
||||
m4_if(m4_index(arg, [: ]), -1, [m4_define([arg], m4_dquote(m4_bpatsubst(m4_dquote(arg), [:], [: ])))])
|
||||
m4_define(arg_name, m4_substr(arg, 0, m4_index(arg, [: ])))
|
||||
m4_set_contains(legal_named_args, arg_name, [],[AC_MSG_ERROR([Internal error: m4_if(arg_name, , arg, arg_name) is not a valid named argument to [$1]. Valid arguments are 'm4_set_contents(defined_args, [ ]) m4_set_contents(legal_named_args, [ ])'.])])
|
||||
m4_set_remove(required_named_args, arg_name)
|
||||
m4_set_remove(legal_named_args, arg_name)
|
||||
m4_pushdef([ARG_][]arg_name, m4_bpatsubst(m4_substr(arg, m4_incr(m4_incr(m4_bregexp(arg, [: ])))), [^\s*], []))
|
||||
m4_pushdef([ARG_][]arg_name, m4_bpatsubst(m4_bpatsubst(m4_dquote(m4_dquote(arg)), arg_name[: ]), [^\s*]))
|
||||
m4_set_add(defined_args, arg_name)
|
||||
m4_undefine([arg_name])
|
||||
])
|
||||
@@ -376,18 +381,18 @@ UTIL_DEFUN_NAMED([UTIL_ARG_ENABLE],
|
||||
m4_define(ARG_GIVEN, m4_translit(ARG_NAME, [a-z-], [A-Z_])[_GIVEN])
|
||||
|
||||
# If DESC is not specified, set it to a generic description.
|
||||
m4_define([ARG_DESC], m4_if(ARG_DESC, , [Enable the ARG_NAME feature], m4_normalize(ARG_DESC)))
|
||||
m4_define([ARG_DESC], m4_if(m4_quote(ARG_DESC), , [[Enable the ARG_NAME feature]], [m4_normalize(ARG_DESC)]))
|
||||
|
||||
# If CHECKING_MSG is not specified, set it to a generic description.
|
||||
m4_define([ARG_CHECKING_MSG], m4_if(ARG_CHECKING_MSG, , [for --enable-ARG_NAME], m4_normalize(ARG_CHECKING_MSG)))
|
||||
m4_define([ARG_CHECKING_MSG], m4_if(m4_quote(ARG_CHECKING_MSG), , [[for --enable-ARG_NAME]], [m4_normalize(ARG_CHECKING_MSG)]))
|
||||
|
||||
# If the code blocks are not given, set them to the empty statements to avoid
|
||||
# tripping up bash.
|
||||
m4_define([ARG_CHECK_AVAILABLE], m4_if(ARG_CHECK_AVAILABLE, , :, ARG_CHECK_AVAILABLE))
|
||||
m4_define([ARG_IF_GIVEN], m4_if(ARG_IF_GIVEN, , :, ARG_IF_GIVEN))
|
||||
m4_define([ARG_IF_NOT_GIVEN], m4_if(ARG_IF_NOT_GIVEN, , :, ARG_IF_NOT_GIVEN))
|
||||
m4_define([ARG_IF_ENABLED], m4_if(ARG_IF_ENABLED, , :, ARG_IF_ENABLED))
|
||||
m4_define([ARG_IF_DISABLED], m4_if(ARG_IF_DISABLED, , :, ARG_IF_DISABLED))
|
||||
m4_if(ARG_CHECK_AVAILABLE, , [m4_define([ARG_CHECK_AVAILABLE], [:])])
|
||||
m4_if(ARG_IF_GIVEN, , [m4_define([ARG_IF_GIVEN], [:])])
|
||||
m4_if(ARG_IF_NOT_GIVEN, , [m4_define([ARG_IF_NOT_GIVEN], [:])])
|
||||
m4_if(ARG_IF_ENABLED, , [m4_define([ARG_IF_ENABLED], [:])])
|
||||
m4_if(ARG_IF_DISABLED, , [m4_define([ARG_IF_DISABLED], [:])])
|
||||
|
||||
##########################
|
||||
# Part 2: Set up autoconf shell code
|
||||
@@ -650,21 +655,21 @@ UTIL_DEFUN_NAMED([UTIL_ARG_WITH],
|
||||
m4_define(ARG_GIVEN, m4_translit(ARG_NAME, [a-z-], [A-Z_])[_GIVEN])
|
||||
|
||||
# If DESC is not specified, set it to a generic description.
|
||||
m4_define([ARG_DESC], m4_if(ARG_DESC, , [Give a value for the ARG_NAME feature], m4_normalize(ARG_DESC)))
|
||||
m4_define([ARG_DESC], m4_if(m4_quote(ARG_DESC), , [[Give a value for the ARG_NAME feature]], [m4_normalize(ARG_DESC)]))
|
||||
|
||||
# If CHECKING_MSG is not specified, set it to a generic description.
|
||||
m4_define([ARG_CHECKING_MSG], m4_if(ARG_CHECKING_MSG, , [for --with-ARG_NAME], m4_normalize(ARG_CHECKING_MSG)))
|
||||
m4_define([ARG_CHECKING_MSG], m4_if(m4_quote(ARG_CHECKING_MSG), , [[for --with-ARG_NAME]], [m4_normalize(ARG_CHECKING_MSG)]))
|
||||
|
||||
m4_define([ARG_HAS_AUTO_BLOCK], m4_if(ARG_IF_AUTO, , false, true))
|
||||
|
||||
# If the code blocks are not given, set them to the empty statements to avoid
|
||||
# tripping up bash.
|
||||
m4_define([ARG_CHECK_AVAILABLE], m4_if(ARG_CHECK_AVAILABLE, , :, ARG_CHECK_AVAILABLE))
|
||||
m4_define([ARG_CHECK_VALUE], m4_if(ARG_CHECK_VALUE, , :, ARG_CHECK_VALUE))
|
||||
m4_define([ARG_CHECK_FOR_FILES], m4_if(ARG_CHECK_FOR_FILES, , :, ARG_CHECK_FOR_FILES))
|
||||
m4_define([ARG_IF_AUTO], m4_if(ARG_IF_AUTO, , :, ARG_IF_AUTO))
|
||||
m4_define([ARG_IF_GIVEN], m4_if(ARG_IF_GIVEN, , :, ARG_IF_GIVEN))
|
||||
m4_define([ARG_IF_NOT_GIVEN], m4_if(ARG_IF_NOT_GIVEN, , :, ARG_IF_NOT_GIVEN))
|
||||
m4_if(ARG_CHECK_AVAILABLE, , [m4_define([ARG_CHECK_AVAILABLE], [:])])
|
||||
m4_if(ARG_CHECK_VALUE, , [m4_define([ARG_CHECK_VALUE], [:])])
|
||||
m4_if(ARG_CHECK_FOR_FILES, , [m4_define([ARG_CHECK_FOR_FILES], [:])])
|
||||
m4_if(ARG_IF_AUTO, , [m4_define([ARG_IF_AUTO], [:])])
|
||||
m4_if(ARG_IF_GIVEN, , [m4_define([ARG_IF_GIVEN], [:])])
|
||||
m4_if(ARG_IF_NOT_GIVEN, , [m4_define([ARG_IF_NOT_GIVEN], [:])])
|
||||
|
||||
##########################
|
||||
# Part 2: Set up autoconf shell code
|
||||
@@ -702,7 +707,6 @@ UTIL_DEFUN_NAMED([UTIL_ARG_WITH],
|
||||
ARG_CHECK_AVAILABLE
|
||||
|
||||
# Check if the option should be turned on
|
||||
echo check msg:ARG_CHECKING_MSG:
|
||||
AC_MSG_CHECKING(ARG_CHECKING_MSG)
|
||||
|
||||
if test x$AVAILABLE = xfalse; then
|
||||
|
||||
@@ -307,17 +307,36 @@ endef
|
||||
# There are two versions, either creating a relative or an absolute link. Be
|
||||
# careful when using this on Windows since the symlink created is only valid in
|
||||
# the unix emulation environment.
|
||||
define link-file-relative
|
||||
# In msys2 we use mklink /J because its ln would perform a deep copy of the target.
|
||||
# This inhibits performance and can lead to issues with long paths. With mklink /J
|
||||
# relative linking does not work, so we handle the link as absolute path.
|
||||
ifeq ($(OPENJDK_BUILD_OS_ENV), windows.msys2)
|
||||
define link-file-relative
|
||||
$(call MakeTargetDir)
|
||||
$(RM) '$(call DecodeSpace, $@)'
|
||||
cmd //c "mklink /J $(call FixPath, $(call DecodeSpace, $@)) $(call FixPath, $(call DecodeSpace, $<))"
|
||||
endef
|
||||
else
|
||||
define link-file-relative
|
||||
$(call MakeTargetDir)
|
||||
$(RM) '$(call DecodeSpace, $@)'
|
||||
$(LN) -s '$(call DecodeSpace, $(call RelativePath, $<, $(@D)))' '$(call DecodeSpace, $@)'
|
||||
endef
|
||||
endef
|
||||
endif
|
||||
|
||||
define link-file-absolute
|
||||
ifeq ($(OPENJDK_BUILD_OS_ENV), windows.msys2)
|
||||
define link-file-absolute
|
||||
$(call MakeTargetDir)
|
||||
$(RM) '$(call DecodeSpace, $@)'
|
||||
cmd //c "mklink /J $(call FixPath, $(call DecodeSpace, $@)) $(call FixPath, $(call DecodeSpace, $<))"
|
||||
endef
|
||||
else
|
||||
define link-file-absolute
|
||||
$(call MakeTargetDir)
|
||||
$(RM) '$(call DecodeSpace, $@)'
|
||||
$(LN) -s '$(call DecodeSpace, $<)' '$(call DecodeSpace, $@)'
|
||||
endef
|
||||
endef
|
||||
endif
|
||||
|
||||
################################################################################
|
||||
|
||||
|
||||
@@ -343,10 +343,15 @@ define SetupCompileNativeFileBody
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(DISABLE_WARNING_PREFIX), )
|
||||
$1_WARNINGS_FLAGS := $$(addprefix $(DISABLE_WARNING_PREFIX), \
|
||||
$$($$($1_BASE)_DISABLED_WARNINGS_$(TOOLCHAIN_TYPE)_$$($1_FILENAME)))
|
||||
endif
|
||||
|
||||
$1_BASE_CFLAGS := $$($$($1_BASE)_CFLAGS) $$($$($1_BASE)_EXTRA_CFLAGS) \
|
||||
$$($$($1_BASE)_SYSROOT_CFLAGS)
|
||||
$$($$($1_BASE)_SYSROOT_CFLAGS) $$($1_WARNINGS_FLAGS)
|
||||
$1_BASE_CXXFLAGS := $$($$($1_BASE)_CXXFLAGS) $$($$($1_BASE)_EXTRA_CXXFLAGS) \
|
||||
$$($$($1_BASE)_SYSROOT_CFLAGS) $$($1_EXTRA_CXXFLAGS)
|
||||
$$($$($1_BASE)_SYSROOT_CFLAGS) $$($1_EXTRA_CXXFLAGS) $$($1_WARNINGS_FLAGS)
|
||||
$1_BASE_ASFLAGS := $$($$($1_BASE)_ASFLAGS) $$($$($1_BASE)_EXTRA_ASFLAGS)
|
||||
|
||||
ifneq ($$(filter %.c, $$($1_FILENAME)), )
|
||||
|
||||
@@ -26,16 +26,16 @@
|
||||
# Versions and download locations for dependencies used by GitHub Actions (GHA)
|
||||
|
||||
GTEST_VERSION=1.8.1
|
||||
JTREG_VERSION=6.1+2
|
||||
JTREG_VERSION=6.1+3
|
||||
|
||||
LINUX_X64_BOOT_JDK_EXT=tar.gz
|
||||
LINUX_X64_BOOT_JDK_URL=https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.2%2B8/OpenJDK17U-jdk_x64_linux_hotspot_17.0.2_8.tar.gz
|
||||
LINUX_X64_BOOT_JDK_SHA256=288f34e3ba8a4838605636485d0365ce23e57d5f2f68997ac4c2e4c01967cd48
|
||||
LINUX_X64_BOOT_JDK_URL=https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.6%2B10/OpenJDK17U-jdk_x64_linux_hotspot_17.0.6_10.tar.gz
|
||||
LINUX_X64_BOOT_JDK_SHA256=a0b1b9dd809d51a438f5fa08918f9aca7b2135721097f0858cf29f77a35d4289
|
||||
|
||||
WINDOWS_X64_BOOT_JDK_EXT=zip
|
||||
WINDOWS_X64_BOOT_JDK_URL=https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.2%2B8/OpenJDK17U-jdk_x64_windows_hotspot_17.0.2_8.zip
|
||||
WINDOWS_X64_BOOT_JDK_SHA256=d083479ca927dce2f586f779373d895e8bf668c632505740279390384edf03fa
|
||||
WINDOWS_X64_BOOT_JDK_URL=https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.6%2B10/OpenJDK17U-jdk_x64_windows_hotspot_17.0.6_10.zip
|
||||
WINDOWS_X64_BOOT_JDK_SHA256=d544c4f00d414a1484c0a5c1758544f30f308c4df33f9a28bd4a404215d0d444
|
||||
|
||||
MACOS_X64_BOOT_JDK_EXT=tar.gz
|
||||
MACOS_X64_BOOT_JDK_URL=https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.2%2B8/OpenJDK17U-jdk_x64_mac_hotspot_17.0.2_8.tar.gz
|
||||
MACOS_X64_BOOT_JDK_SHA256=3630e21a571b7180876bf08f85d0aac0bdbb3267b2ae9bd242f4933b21f9be32
|
||||
MACOS_X64_BOOT_JDK_URL=https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.6%2B10/OpenJDK17U-jdk_x64_mac_hotspot_17.0.6_10.tar.gz
|
||||
MACOS_X64_BOOT_JDK_SHA256=faa2927584cf2bd0a35d2ac727b9f22725e23b2b24abfb3b2ac7140f4d65fbb4
|
||||
|
||||
@@ -67,6 +67,7 @@
|
||||
* input.build_osenv
|
||||
* input.build_osenv_cpu
|
||||
* input.build_osenv_platform
|
||||
* input.build_osenv_version
|
||||
*
|
||||
* For more complex nested attributes, there is a method "get":
|
||||
*
|
||||
@@ -1047,10 +1048,10 @@ var getJibProfilesProfiles = function (input, common, data) {
|
||||
var getJibProfilesDependencies = function (input, common) {
|
||||
|
||||
var devkit_platform_revisions = {
|
||||
linux_x64: "gcc10.3.0-OL6.4+1.0",
|
||||
linux_x64: "gcc11.2.0-OL6.4+1.0",
|
||||
macosx: "Xcode12.4+1.0",
|
||||
windows_x64: "VS2022-17.1.0+1.0",
|
||||
linux_aarch64: "gcc10.3.0-OL7.6+1.0",
|
||||
linux_aarch64: "gcc11.2.0-OL7.6+1.0",
|
||||
linux_arm: "gcc8.2.0-Fedora27+1.0",
|
||||
linux_ppc64le: "gcc8.2.0-Fedora27+1.0",
|
||||
linux_s390x: "gcc8.2.0-Fedora27+1.0"
|
||||
@@ -1098,9 +1099,23 @@ var getJibProfilesDependencies = function (input, common) {
|
||||
environment_path: common.boot_jdk_home + "/bin"
|
||||
}
|
||||
|
||||
var makeBinDir = (input.build_os == "windows"
|
||||
? input.get("gnumake", "install_path") + "/cygwin/bin"
|
||||
: input.get("gnumake", "install_path") + "/bin");
|
||||
var makeRevision = "4.0+1.0";
|
||||
var makeBinSubDir = "/bin";
|
||||
var makeModule = "gnumake-" + input.build_platform;
|
||||
if (input.build_os == "windows") {
|
||||
makeModule = "gnumake-" + input.build_osenv_platform;
|
||||
if (input.build_osenv == "cygwin") {
|
||||
var versionArray = input.build_osenv_version.split(/\./);
|
||||
var majorVer = parseInt(versionArray[0]);
|
||||
var minorVer = parseInt(versionArray[1]);
|
||||
if (majorVer > 3 || (majorVer == 3 && minorVer >= 3)) {
|
||||
makeRevision = "4.3+1.0";
|
||||
} else {
|
||||
makeBinSubDir = "/cygwin/bin";
|
||||
}
|
||||
}
|
||||
}
|
||||
var makeBinDir = input.get("gnumake", "install_path") + makeBinSubDir;
|
||||
|
||||
var dependencies = {
|
||||
boot_jdk: boot_jdk,
|
||||
@@ -1172,18 +1187,12 @@ var getJibProfilesDependencies = function (input, common) {
|
||||
gnumake: {
|
||||
organization: common.organization,
|
||||
ext: "tar.gz",
|
||||
revision: "4.0+1.0",
|
||||
|
||||
module: (input.build_os == "windows"
|
||||
? "gnumake-" + input.build_osenv_platform
|
||||
: "gnumake-" + input.build_platform),
|
||||
|
||||
revision: makeRevision,
|
||||
module: makeModule,
|
||||
configure_args: "MAKE=" + makeBinDir + "/make",
|
||||
|
||||
environment: {
|
||||
"MAKE": makeBinDir + "/make"
|
||||
},
|
||||
|
||||
environment_path: makeBinDir
|
||||
},
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@@ -28,12 +28,12 @@
|
||||
|
||||
DEFAULT_VERSION_FEATURE=17
|
||||
DEFAULT_VERSION_INTERIM=0
|
||||
DEFAULT_VERSION_UPDATE=6
|
||||
DEFAULT_VERSION_UPDATE=8
|
||||
DEFAULT_VERSION_PATCH=0
|
||||
DEFAULT_VERSION_EXTRA1=0
|
||||
DEFAULT_VERSION_EXTRA2=0
|
||||
DEFAULT_VERSION_EXTRA3=0
|
||||
DEFAULT_VERSION_DATE=2023-01-17
|
||||
DEFAULT_VERSION_DATE=2023-07-18
|
||||
DEFAULT_VERSION_CLASSFILE_MAJOR=61 # "`$EXPR $DEFAULT_VERSION_FEATURE + 44`"
|
||||
DEFAULT_VERSION_CLASSFILE_MINOR=0
|
||||
DEFAULT_VERSION_DOCS_API_SINCE=11
|
||||
|
||||
29
make/data/cacerts/certignaca
Normal file
29
make/data/cacerts/certignaca
Normal file
@@ -0,0 +1,29 @@
|
||||
Owner: CN=Certigna, O=Dhimyotis, C=FR
|
||||
Issuer: CN=Certigna, O=Dhimyotis, C=FR
|
||||
Serial number: fedce3010fc948ff
|
||||
Valid from: Fri Jun 29 15:13:05 GMT 2007 until: Tue Jun 29 15:13:05 GMT 2027
|
||||
Signature algorithm name: SHA1withRSA
|
||||
Subject Public Key Algorithm: 2048-bit RSA key
|
||||
Version: 3
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNV
|
||||
BAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4X
|
||||
DTA3MDYyOTE1MTMwNVoXDTI3MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQ
|
||||
BgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwIQ2VydGlnbmEwggEiMA0GCSqGSIb3
|
||||
DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7qXOEm7RFHYeGifBZ4
|
||||
QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyHGxny
|
||||
gQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbw
|
||||
zBfsV1/pogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q
|
||||
130yGLMLLGq/jj8UEYkgDncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2
|
||||
JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKfIrjxwo1p3Po6WAbfAgMBAAGjgbwwgbkw
|
||||
DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQtCRZvgHyUtVF9lo53BEw
|
||||
ZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJBgNVBAYT
|
||||
AkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzj
|
||||
AQ/JSP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG
|
||||
9w0BAQUFAAOCAQEAhQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8h
|
||||
bV6lUmPOEvjvKtpv6zf+EwLHyzs+ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFnc
|
||||
fca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1kluPBS1xp81HlDQwY9qcEQCYsuu
|
||||
HWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY1gkIl2PlwS6w
|
||||
t0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw
|
||||
WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg==
|
||||
-----END CERTIFICATE-----
|
||||
38
make/data/cacerts/gtsrootcar1
Normal file
38
make/data/cacerts/gtsrootcar1
Normal file
@@ -0,0 +1,38 @@
|
||||
Owner: CN=GTS Root R1, O=Google Trust Services LLC, C=US
|
||||
Issuer: CN=GTS Root R1, O=Google Trust Services LLC, C=US
|
||||
Serial number: 203e5936f31b01349886ba217
|
||||
Valid from: Wed Jun 22 00:00:00 GMT 2016 until: Sun Jun 22 00:00:00 GMT 2036
|
||||
Signature algorithm name: SHA384withRSA
|
||||
Subject Public Key Algorithm: 4096-bit RSA key
|
||||
Version: 3
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIFVzCCAz+gAwIBAgINAgPlk28xsBNJiGuiFzANBgkqhkiG9w0BAQwFADBHMQsw
|
||||
CQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU
|
||||
MBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAw
|
||||
MDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZp
|
||||
Y2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIiMA0GCSqGSIb3DQEBAQUA
|
||||
A4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx9vaMf/vo
|
||||
27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vXmX7w
|
||||
Cl7raKb0xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7zUjw
|
||||
TcLCeoiKu7rPWRnWr4+wB7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0Pfybl
|
||||
qAj+lug8aJRT7oM6iCsVlgmy4HqMLnXWnOunVmSPlk9orj2XwoSPwLxAwAtcvfaH
|
||||
szVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly4cpk9+aCEI3oncKKiPo4Zor8
|
||||
Y/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr06zqkUspzBmk
|
||||
MiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOORc92
|
||||
wO1AK/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYWk70p
|
||||
aDPvOmbsB4om3xPXV2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+DVrN
|
||||
VjzRlwW5y0vtOUucxD/SVRNuJLDWcfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgFlQID
|
||||
AQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E
|
||||
FgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEMBQADggIBAJ+qQibb
|
||||
C5u+/x6Wki4+omVKapi6Ist9wTrYggoGxval3sBOh2Z5ofmmWJyq+bXmYOfg6LEe
|
||||
QkEzCzc9zolwFcq1JKjPa7XSQCGYzyI0zzvFIoTgxQ6KfF2I5DUkzps+GlQebtuy
|
||||
h6f88/qBVRRiClmpIgUxPoLW7ttXNLwzldMXG+gnoot7TiYaelpkttGsN/H9oPM4
|
||||
7HLwEXWdyzRSjeZ2axfG34arJ45JK3VmgRAhpuo+9K4l/3wV3s6MJT/KYnAK9y8J
|
||||
ZgfIPxz88NtFMN9iiMG1D53Dn0reWVlHxYciNuaCp+0KueIHoI17eko8cdLiA6Ef
|
||||
MgfdG+RCzgwARWGAtQsgWSl4vflVy2PFPEz0tv/bal8xa5meLMFrUKTX5hgUvYU/
|
||||
Z6tGn6D/Qqc6f1zLXbBwHSs09dR2CQzreExZBfMzQsNhFRAbd03OIozUhfJFfbdT
|
||||
6u9AWpQKXCBfTkBdYiJ23//OYb2MI3jSNwLgjt7RETeJ9r/tSQdirpLsQBqvFAnZ
|
||||
0E6yove+7u7Y/9waLd64NnHi/Hm3lCXRSHNboTXns5lndcEZOitHTtNCjv0xyBZm
|
||||
2tIMPNuzjsmhDYAPexZ3FL//2wmUspO8IFgV6dtxQ/PeEMMA3KgqlbbC1j+Qa3bb
|
||||
bP6MvPJwNQzcmRk13NfIRmPVNnGuV/u3gm3c
|
||||
-----END CERTIFICATE-----
|
||||
38
make/data/cacerts/gtsrootcar2
Normal file
38
make/data/cacerts/gtsrootcar2
Normal file
@@ -0,0 +1,38 @@
|
||||
Owner: CN=GTS Root R2, O=Google Trust Services LLC, C=US
|
||||
Issuer: CN=GTS Root R2, O=Google Trust Services LLC, C=US
|
||||
Serial number: 203e5aec58d04251aab1125aa
|
||||
Valid from: Wed Jun 22 00:00:00 GMT 2016 until: Sun Jun 22 00:00:00 GMT 2036
|
||||
Signature algorithm name: SHA384withRSA
|
||||
Subject Public Key Algorithm: 4096-bit RSA key
|
||||
Version: 3
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIFVzCCAz+gAwIBAgINAgPlrsWNBCUaqxElqjANBgkqhkiG9w0BAQwFADBHMQsw
|
||||
CQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU
|
||||
MBIGA1UEAxMLR1RTIFJvb3QgUjIwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAw
|
||||
MDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZp
|
||||
Y2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwggIiMA0GCSqGSIb3DQEBAQUA
|
||||
A4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTukk3LvCvpt
|
||||
nfbwhYBboUhSnznFt+4orO/LdmgUud+tAWyZH8QiHZ/+cnfgLFuv5AS/T3KgGjSY
|
||||
6Dlo7JUle3ah5mm5hRm9iYz+re026nO8/4Piy33B0s5Ks40FnotJk9/BW9BuXvAu
|
||||
MC6C/Pq8tBcKSOWIm8Wba96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOdre7k
|
||||
RXuJVfeKH2JShBKzwkCX44ofR5GmdFrS+LFjKBC4swm4VndAoiaYecb+3yXuPuWg
|
||||
f9RhD1FLPD+M2uFwdNjCaKH5wQzpoeJ/u1U8dgbuak7MkogwTZq9TwtImoS1mKPV
|
||||
+3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscszcTJGr61K8Yzo
|
||||
dDqs5xoic4DSMPclQsciOzsSrZYuxsN2B6ogtzVJV+mSSeh2FnIxZyuWfoqjx5RW
|
||||
Ir9qS34BIbIjMt/kmkRtWVtd9QCgHJvGeJeNkP+byKq0rxFROV7Z+2et1VsRnTKa
|
||||
G73VululycslaVNVJ1zgyjbLiGH7HrfQy+4W+9OmTN6SpdTi3/UGVN4unUu0kzCq
|
||||
gc7dGtxRcw1PcOnlthYhGXmy5okLdWTK1au8CcEYof/UVKGFPP0UJAOyh9OktwID
|
||||
AQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E
|
||||
FgQUu//KjiOfT5nK2+JopqUVJxce2Q4wDQYJKoZIhvcNAQEMBQADggIBAB/Kzt3H
|
||||
vqGf2SdMC9wXmBFqiN495nFWcrKeGk6c1SuYJF2ba3uwM4IJvd8lRuqYnrYb/oM8
|
||||
0mJhwQTtzuDFycgTE1XnqGOtjHsB/ncw4c5omwX4Eu55MaBBRTUoCnGkJE+M3DyC
|
||||
B19m3H0Q/gxhswWV7uGugQ+o+MePTagjAiZrHYNSVc61LwDKgEDg4XSsYPWHgJ2u
|
||||
NmSRXbBoGOqKYcl3qJfEycel/FVL8/B/uWU9J2jQzGv6U53hkRrJXRqWbTKH7QMg
|
||||
yALOWr7Z6v2yTcQvG99fevX4i8buMTolUVVnjWQye+mew4K6Ki3pHrTgSAai/Gev
|
||||
HyICc/sgCq+dVEuhzf9gR7A/Xe8bVr2XIZYtCtFenTgCR2y59PYjJbigapordwj6
|
||||
xLEokCZYCDzifqrXPW+6MYgKBesntaFJ7qBFVHvmJ2WZICGoo7z7GJa7Um8M7YNR
|
||||
TOlZ4iBgxcJlkoKM8xAfDoqXvneCbT+PHV28SSe9zE8P4c52hgQjxcCMElv924Sg
|
||||
JPFI/2R80L5cFtHvma3AH/vLrrw4IgYmZNralw4/KBVEqE8AyvCazM90arQ+POuV
|
||||
7LXTWtiBmelDGDfrs7vRWGJB82bSj6p4lVQgw1oudCvV0b4YacCs1aTPObpRhANl
|
||||
6WLAYv7YTVWW4tAR+kg0Eeye7QUd5MjWHYbL
|
||||
-----END CERTIFICATE-----
|
||||
20
make/data/cacerts/gtsrootecccar3
Normal file
20
make/data/cacerts/gtsrootecccar3
Normal file
@@ -0,0 +1,20 @@
|
||||
Owner: CN=GTS Root R3, O=Google Trust Services LLC, C=US
|
||||
Issuer: CN=GTS Root R3, O=Google Trust Services LLC, C=US
|
||||
Serial number: 203e5b882eb20f825276d3d66
|
||||
Valid from: Wed Jun 22 00:00:00 GMT 2016 until: Sun Jun 22 00:00:00 GMT 2036
|
||||
Signature algorithm name: SHA384withECDSA
|
||||
Subject Public Key Algorithm: 384-bit EC (secp384r1) key
|
||||
Version: 3
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICCTCCAY6gAwIBAgINAgPluILrIPglJ209ZjAKBggqhkjOPQQDAzBHMQswCQYD
|
||||
VQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIG
|
||||
A1UEAxMLR1RTIFJvb3QgUjMwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAw
|
||||
WjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2Vz
|
||||
IExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcqhkjOPQIBBgUrgQQAIgNi
|
||||
AAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUURout736G
|
||||
jOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2ADDL2
|
||||
4CejQjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW
|
||||
BBTB8Sa6oC2uhYHP0/EqEr24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEA9uEglRR7
|
||||
VKOQFhG/hMjqb2sXnh5GmCCbn9MN2azTL818+FsuVbu/3ZL3pAzcMeGiAjEA/Jdm
|
||||
ZuVDFhOD3cffL74UOO0BzrEXGhF16b0DjyZ+hOXJYKaV11RZt+cRLInUue4X
|
||||
-----END CERTIFICATE-----
|
||||
20
make/data/cacerts/gtsrootecccar4
Normal file
20
make/data/cacerts/gtsrootecccar4
Normal file
@@ -0,0 +1,20 @@
|
||||
Owner: CN=GTS Root R4, O=Google Trust Services LLC, C=US
|
||||
Issuer: CN=GTS Root R4, O=Google Trust Services LLC, C=US
|
||||
Serial number: 203e5c068ef631a9c72905052
|
||||
Valid from: Wed Jun 22 00:00:00 GMT 2016 until: Sun Jun 22 00:00:00 GMT 2036
|
||||
Signature algorithm name: SHA384withECDSA
|
||||
Subject Public Key Algorithm: 384-bit EC (secp384r1) key
|
||||
Version: 3
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICCTCCAY6gAwIBAgINAgPlwGjvYxqccpBQUjAKBggqhkjOPQQDAzBHMQswCQYD
|
||||
VQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIG
|
||||
A1UEAxMLR1RTIFJvb3QgUjQwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAw
|
||||
WjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2Vz
|
||||
IExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcqhkjOPQIBBgUrgQQAIgNi
|
||||
AATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa6zzuhXyi
|
||||
QHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/lxKvR
|
||||
HYqjQjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW
|
||||
BBSATNbrdP9JNqPV2Py1PsVq8JQdjDAKBggqhkjOPQQDAwNpADBmAjEA6ED/g94D
|
||||
9J+uHXqnLrmvT/aDHQ4thQEd0dlq7A/Cr8deVl5c1RxYIigL9zC2L7F8AjEA8GE8
|
||||
p/SgguMh1YQdc4acLa/KNJvxn7kjNuK8YAOdgLOaVsjh4rsUecrNIdSUtUlD
|
||||
-----END CERTIFICATE-----
|
||||
22
make/data/cacerts/microsoftecc2017
Normal file
22
make/data/cacerts/microsoftecc2017
Normal file
@@ -0,0 +1,22 @@
|
||||
Owner: CN=Microsoft ECC Root Certificate Authority 2017, O=Microsoft Corporation, C=US
|
||||
Issuer: CN=Microsoft ECC Root Certificate Authority 2017, O=Microsoft Corporation, C=US
|
||||
Serial number: 66f23daf87de8bb14aea0c573101c2ec
|
||||
Valid from: Wed Dec 18 23:06:45 GMT 2019 until: Fri Jul 18 23:16:04 GMT 2042
|
||||
Signature algorithm name: SHA384withECDSA
|
||||
Subject Public Key Algorithm: 384-bit EC (secp384r1) key
|
||||
Version: 3
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICWTCCAd+gAwIBAgIQZvI9r4fei7FK6gxXMQHC7DAKBggqhkjOPQQDAzBlMQsw
|
||||
CQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYD
|
||||
VQQDEy1NaWNyb3NvZnQgRUNDIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIw
|
||||
MTcwHhcNMTkxMjE4MjMwNjQ1WhcNNDIwNzE4MjMxNjA0WjBlMQswCQYDVQQGEwJV
|
||||
UzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1NaWNy
|
||||
b3NvZnQgRUNDIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwdjAQBgcq
|
||||
hkjOPQIBBgUrgQQAIgNiAATUvD0CQnVBEyPNgASGAlEvaqiBYgtlzPbKnR5vSmZR
|
||||
ogPZnZH6thaxjG7efM3beaYvzrvOcS/lpaso7GMEZpn4+vKTEAXhgShC48Zo9OYb
|
||||
hGBKia/teQ87zvH2RPUBeMCjVDBSMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8E
|
||||
BTADAQH/MB0GA1UdDgQWBBTIy5lycFIM+Oa+sgRXKSrPQhDtNTAQBgkrBgEEAYI3
|
||||
FQEEAwIBADAKBggqhkjOPQQDAwNoADBlAjBY8k3qDPlfXu5gKcs68tvWMoQZP3zV
|
||||
L8KxzJOuULsJMsbG7X7JNpQS5GiFBqIb0C8CMQCZ6Ra0DvpWSNSkMBaReNtUjGUB
|
||||
iudQZsIxtzm6uBoiB078a1QWIP8rtedMDE2mT3M=
|
||||
-----END CERTIFICATE-----
|
||||
40
make/data/cacerts/microsoftrsa2017
Normal file
40
make/data/cacerts/microsoftrsa2017
Normal file
@@ -0,0 +1,40 @@
|
||||
Owner: CN=Microsoft RSA Root Certificate Authority 2017, O=Microsoft Corporation, C=US
|
||||
Issuer: CN=Microsoft RSA Root Certificate Authority 2017, O=Microsoft Corporation, C=US
|
||||
Serial number: 1ed397095fd8b4b347701eaabe7f45b3
|
||||
Valid from: Wed Dec 18 22:51:22 GMT 2019 until: Fri Jul 18 23:00:23 GMT 2042
|
||||
Signature algorithm name: SHA384withRSA
|
||||
Subject Public Key Algorithm: 4096-bit RSA key
|
||||
Version: 3
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIFqDCCA5CgAwIBAgIQHtOXCV/YtLNHcB6qvn9FszANBgkqhkiG9w0BAQwFADBl
|
||||
MQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYw
|
||||
NAYDVQQDEy1NaWNyb3NvZnQgUlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
|
||||
IDIwMTcwHhcNMTkxMjE4MjI1MTIyWhcNNDIwNzE4MjMwMDIzWjBlMQswCQYDVQQG
|
||||
EwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1N
|
||||
aWNyb3NvZnQgUlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwggIi
|
||||
MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKW76UM4wplZEWCpW9R2LBifOZ
|
||||
Nt9GkMml7Xhqb0eRaPgnZ1AzHaGm++DlQ6OEAlcBXZxIQIJTELy/xztokLaCLeX0
|
||||
ZdDMbRnMlfl7rEqUrQ7eS0MdhweSE5CAg2Q1OQT85elss7YfUJQ4ZVBcF0a5toW1
|
||||
HLUX6NZFndiyJrDKxHBKrmCk3bPZ7Pw71VdyvD/IybLeS2v4I2wDwAW9lcfNcztm
|
||||
gGTjGqwu+UcF8ga2m3P1eDNbx6H7JyqhtJqRjJHTOoI+dkC0zVJhUXAoP8XFWvLJ
|
||||
jEm7FFtNyP9nTUwSlq31/niol4fX/V4ggNyhSyL71Imtus5Hl0dVe49FyGcohJUc
|
||||
aDDv70ngNXtk55iwlNpNhTs+VcQor1fznhPbRiefHqJeRIOkpcrVE7NLP8TjwuaG
|
||||
YaRSMLl6IE9vDzhTyzMMEyuP1pq9KsgtsRx9S1HKR9FIJ3Jdh+vVReZIZZ2vUpC6
|
||||
W6IYZVcSn2i51BVrlMRpIpj0M+Dt+VGOQVDJNE92kKz8OMHY4Xu54+OU4UZpyw4K
|
||||
UGsTuqwPN1q3ErWQgR5WrlcihtnJ0tHXUeOrO8ZV/R4O03QK0dqq6mm4lyiPSMQH
|
||||
+FJDOvTKVTUssKZqwJz58oHhEmrARdlns87/I6KJClTUFLkqqNfs+avNJVgyeY+Q
|
||||
W5g5xAgGwax/Dj0ApQIDAQABo1QwUjAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/
|
||||
BAUwAwEB/zAdBgNVHQ4EFgQUCctZf4aycI8awznjwNnpv7tNsiMwEAYJKwYBBAGC
|
||||
NxUBBAMCAQAwDQYJKoZIhvcNAQEMBQADggIBAKyvPl3CEZaJjqPnktaXFbgToqZC
|
||||
LgLNFgVZJ8og6Lq46BrsTaiXVq5lQ7GPAJtSzVXNUzltYkyLDVt8LkS/gxCP81OC
|
||||
gMNPOsduET/m4xaRhPtthH80dK2Jp86519efhGSSvpWhrQlTM93uCupKUY5vVau6
|
||||
tZRGrox/2KJQJWVggEbbMwSubLWYdFQl3JPk+ONVFT24bcMKpBLBaYVu32TxU5nh
|
||||
SnUgnZUP5NbcA/FZGOhHibJXWpS2qdgXKxdJ5XbLwVaZOjex/2kskZGT4d9Mozd2
|
||||
TaGf+G0eHdP67Pv0RR0Tbc/3WeUiJ3IrhvNXuzDtJE3cfVa7o7P4NHmJweDyAmH3
|
||||
pvwPuxwXC65B2Xy9J6P9LjrRk5Sxcx0ki69bIImtt2dmefU6xqaWM/5TkshGsRGR
|
||||
xpl/j8nWZjEgQRCHLQzWwa80mMpkg/sTV9HB8Dx6jKXB/ZUhoHHBk2dxEuqPiApp
|
||||
GWSZI1b7rCoucL5mxAyE7+WL85MB+GqQk2dLsmijtWKP6T+MejteD+eMuMZ87zf9
|
||||
dOLITzNy4ZQ5bb0Sr74MTnB8G2+NszKTc0QWbej09+CVgI+WXTik9KveCjCHk9hN
|
||||
AHFiRSdLOkKEW39lt2c0Ui2cFmuqqNh7o0JMcccMyj6D5KbvtwEwXlGjefVwaaZB
|
||||
RA+GsCyRxj3qrg+E
|
||||
-----END CERTIFICATE-----
|
||||
38
make/data/cacerts/twcaglobalrootca
Normal file
38
make/data/cacerts/twcaglobalrootca
Normal file
@@ -0,0 +1,38 @@
|
||||
Owner: CN=TWCA Global Root CA, OU=Root CA, O=TAIWAN-CA, C=TW
|
||||
Issuer: CN=TWCA Global Root CA, OU=Root CA, O=TAIWAN-CA, C=TW
|
||||
Serial number: cbe
|
||||
Valid from: Wed Jun 27 06:28:33 GMT 2012 until: Tue Dec 31 15:59:59 GMT 2030
|
||||
Signature algorithm name: SHA256withRSA
|
||||
Subject Public Key Algorithm: 4096-bit RSA key
|
||||
Version: 3
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIFQTCCAymgAwIBAgICDL4wDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVFcx
|
||||
EjAQBgNVBAoTCVRBSVdBTi1DQTEQMA4GA1UECxMHUm9vdCBDQTEcMBoGA1UEAxMT
|
||||
VFdDQSBHbG9iYWwgUm9vdCBDQTAeFw0xMjA2MjcwNjI4MzNaFw0zMDEyMzExNTU5
|
||||
NTlaMFExCzAJBgNVBAYTAlRXMRIwEAYDVQQKEwlUQUlXQU4tQ0ExEDAOBgNVBAsT
|
||||
B1Jvb3QgQ0ExHDAaBgNVBAMTE1RXQ0EgR2xvYmFsIFJvb3QgQ0EwggIiMA0GCSqG
|
||||
SIb3DQEBAQUAA4ICDwAwggIKAoICAQCwBdvI64zEbooh745NnHEKH1Jw7W2CnJfF
|
||||
10xORUnLQEK1EjRsGcJ0pDFfhQKX7EMzClPSnIyOt7h52yvVavKOZsTuKwEHktSz
|
||||
0ALfUPZVr2YOy+BHYC8rMjk1Ujoog/h7FsYYuGLWRyWRzvAZEk2tY/XTP3VfKfCh
|
||||
MBwqoJimFb3u/Rk28OKRQ4/6ytYQJ0lM793B8YVwm8rqqFpD/G2Gb3PpN0Wp8DbH
|
||||
zIh1HrtsBv+baz4X7GGqcXzGHaL3SekVtTzWoWH1EfcFbx39Eb7QMAfCKbAJTibc
|
||||
46KokWofwpFFiFzlmLhxpRUZyXx1EcxwdE8tmx2RRP1WKKD+u4ZqyPpcC1jcxkt2
|
||||
yKsi2XMPpfRaAok/T54igu6idFMqPVMnaR1sjjIsZAAmY2E2TqNGtz99sy2sbZCi
|
||||
laLOz9qC5wc0GZbpuCGqKX6mOL6OKUohZnkfs8O1CWfe1tQHRvMq2uYiN2DLgbYP
|
||||
oA/pyJV/v1WRBXrPPRXAb94JlAGD1zQbzECl8LibZ9WYkTunhHiVJqRaCPgrdLQA
|
||||
BDzfuBSO6N+pjWxnkjMdwLfS7JLIvgm/LCkFbwJrnu+8vyq8W8BQj0FwcYeyTbcE
|
||||
qYSjMq+u7msXi7Kx/mzhkIyIqJdIzshNy/MGz19qCkKxHh53L46g5pIOBvwFItIm
|
||||
4TFRfTLcDwIDAQABoyMwITAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
|
||||
/zANBgkqhkiG9w0BAQsFAAOCAgEAXzSBdu+WHdXltdkCY4QWwa6gcFGn90xHNcgL
|
||||
1yg9iXHZqjNB6hQbbCEAwGxCGX6faVsgQt+i0trEfJdLjbDorMjupWkEmQqSpqsn
|
||||
LhpNgb+E1HAerUf+/UqdM+DyucRFCCEK2mlpc3INvjT+lIutwx4116KD7+U4x6WF
|
||||
H6vPNOw/KP4M8VeGTslV9xzU2KV9Bnpv1d8Q34FOIWWxtuEXeZVFBs5fzNxGiWNo
|
||||
RI2T9GRwoD2dKAXDOXC4Ynsg/eTb6QihuJ49CcdP+yz4k3ZB3lLg4VfSnQO8d57+
|
||||
nile98FRYB/e2guyLXW3Q0iT5/Z5xoRdgFlglPx4mI88k1HtQJAH32RjJMtOcQWh
|
||||
15QaiDLxInQirqWm2BJpTGCjAu4r7NRjkgtevi92a6O2JryPA9gK8kxkRr05YuWW
|
||||
6zRjESjMlfGt7+/cgFhI6Uu46mWs6fyAtbXIRfmswZ/ZuepiiI7E8UuDEq3mi4TW
|
||||
nsLrgxifarsbJGAzcMzs9zLzXNl5fe+epP7JI8Mk7hWSsT2RTyaGvWZzJBPqpK5j
|
||||
wa19hAM8EHiGG3njxPPyBJUgriOCxLM6AGK/5jYk4Ve6xx6QddVfP5VhK8E7zeWz
|
||||
aGHQRiapIVJpLesux+t3zqY6tQMzT3bR51xUAV3LePTJDL/PEo4XLSNolOer/qmy
|
||||
KwbQBM0=
|
||||
-----END CERTIFICATE-----
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2000, 2023, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@@ -477,6 +477,11 @@ charset x-IBM874 IBM874
|
||||
alias ibm-874
|
||||
alias 874
|
||||
|
||||
# alias for GB18030 is generated at runtime
|
||||
charset GB18030 GB18030
|
||||
package sun.nio.cs
|
||||
type source
|
||||
|
||||
########################################################
|
||||
#
|
||||
# charsets provided by ExtendedCharsets provider.
|
||||
@@ -564,11 +569,6 @@ charset GBK GBK # Simplified Chinese
|
||||
alias windows-936
|
||||
alias CP936
|
||||
|
||||
charset GB18030 GB18030
|
||||
package sun.nio.cs.ext
|
||||
type template
|
||||
alias gb18030-2000
|
||||
|
||||
charset GB2312 EUC_CN
|
||||
package sun.nio.cs.ext
|
||||
type dbcs
|
||||
|
||||
@@ -7,7 +7,6 @@ Big5_HKSCS
|
||||
EUC_CN
|
||||
EUC_KR
|
||||
GBK
|
||||
GB18030
|
||||
IBM856
|
||||
IBM921
|
||||
IBM922
|
||||
|
||||
@@ -11,7 +11,6 @@ EUC_JP_LINUX
|
||||
EUC_JP_Open
|
||||
EUC_TW
|
||||
GBK
|
||||
GB18030
|
||||
ISO_8859_11
|
||||
ISO_8859_3
|
||||
ISO_8859_6
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
#
|
||||
# generate these charsets into sun.nio.cs
|
||||
#
|
||||
Big5
|
||||
Big5_Solaris
|
||||
Big5_HKSCS # always together with Big5
|
||||
EUC_CN
|
||||
EUC_KR
|
||||
EUC_JP
|
||||
EUC_JP_LINUX
|
||||
EUC_JP_Open
|
||||
EUC_TW
|
||||
GBK
|
||||
GB18030
|
||||
ISO_8859_11
|
||||
ISO_8859_3
|
||||
ISO_8859_6
|
||||
ISO_8859_8
|
||||
Johab
|
||||
PCK
|
||||
TIS_620
|
||||
JIS_X_0201
|
||||
JIS_X_0208
|
||||
JIS_X_0212
|
||||
JIS_X_0208_Solaris
|
||||
JIS_X_0212_Solaris
|
||||
@@ -2,7 +2,6 @@
|
||||
# generate these charsets into sun.nio.cs
|
||||
#
|
||||
GBK
|
||||
GB18030
|
||||
Johab
|
||||
MS1255
|
||||
MS1256
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2000, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2000, 2023, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@@ -32,7 +32,7 @@ formatVersion=3
|
||||
# Version of the currency code information in this class.
|
||||
# It is a serial number that accompanies with each amendment.
|
||||
|
||||
dataVersion=174
|
||||
dataVersion=175
|
||||
|
||||
# List of all valid ISO 4217 currency codes.
|
||||
# To ensure compatibility, do not remove codes.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
File-Date: 2021-05-11
|
||||
File-Date: 2022-08-08
|
||||
%%
|
||||
Type: language
|
||||
Subtag: aa
|
||||
@@ -2146,9 +2146,16 @@ Added: 2009-07-29
|
||||
Macrolanguage: ar
|
||||
%%
|
||||
Type: language
|
||||
Subtag: ajs
|
||||
Description: Algerian Jewish Sign Language
|
||||
Added: 2022-02-25
|
||||
%%
|
||||
Type: language
|
||||
Subtag: ajt
|
||||
Description: Judeo-Tunisian Arabic
|
||||
Added: 2009-07-29
|
||||
Deprecated: 2022-02-25
|
||||
Preferred-Value: aeb
|
||||
Macrolanguage: jrb
|
||||
%%
|
||||
Type: language
|
||||
@@ -5772,6 +5779,11 @@ Added: 2009-07-29
|
||||
Deprecated: 2020-03-28
|
||||
%%
|
||||
Type: language
|
||||
Subtag: bpc
|
||||
Description: Mbuk
|
||||
Added: 2022-02-25
|
||||
%%
|
||||
Type: language
|
||||
Subtag: bpd
|
||||
Description: Banda-Banda
|
||||
Added: 2009-07-29
|
||||
@@ -6016,6 +6028,7 @@ Added: 2005-10-16
|
||||
%%
|
||||
Type: language
|
||||
Subtag: brb
|
||||
Description: Brao
|
||||
Description: Lave
|
||||
Added: 2009-07-29
|
||||
%%
|
||||
@@ -8155,6 +8168,11 @@ Added: 2020-03-28
|
||||
Macrolanguage: zh
|
||||
%%
|
||||
Type: language
|
||||
Subtag: cnq
|
||||
Description: Chung
|
||||
Added: 2022-02-25
|
||||
%%
|
||||
Type: language
|
||||
Subtag: cnr
|
||||
Description: Montenegrin
|
||||
Added: 2018-01-23
|
||||
@@ -8757,6 +8775,8 @@ Subtag: cug
|
||||
Description: Chungmboko
|
||||
Description: Cung
|
||||
Added: 2009-07-29
|
||||
Deprecated: 2022-02-25
|
||||
Comments: see bpc, cnq
|
||||
%%
|
||||
Type: language
|
||||
Subtag: cuh
|
||||
@@ -10176,6 +10196,11 @@ Description: Tadaksahak
|
||||
Added: 2009-07-29
|
||||
%%
|
||||
Type: language
|
||||
Subtag: dsz
|
||||
Description: Mardin Sign Language
|
||||
Added: 2022-02-25
|
||||
%%
|
||||
Type: language
|
||||
Subtag: dta
|
||||
Description: Daur
|
||||
Added: 2009-07-29
|
||||
@@ -10602,6 +10627,11 @@ Description: Emilian
|
||||
Added: 2009-07-29
|
||||
%%
|
||||
Type: language
|
||||
Subtag: egm
|
||||
Description: Benamanga
|
||||
Added: 2022-02-25
|
||||
%%
|
||||
Type: language
|
||||
Subtag: ego
|
||||
Description: Eggon
|
||||
Added: 2009-07-29
|
||||
@@ -10913,7 +10943,7 @@ Added: 2009-07-29
|
||||
%%
|
||||
Type: language
|
||||
Subtag: env
|
||||
Description: Enwan (Edu State)
|
||||
Description: Enwan (Edo State)
|
||||
Added: 2009-07-29
|
||||
%%
|
||||
Type: language
|
||||
@@ -11329,6 +11359,7 @@ Added: 2009-07-29
|
||||
Type: language
|
||||
Subtag: fit
|
||||
Description: Tornedalen Finnish
|
||||
Description: Meänkieli
|
||||
Added: 2009-07-29
|
||||
%%
|
||||
Type: language
|
||||
@@ -12838,6 +12869,11 @@ Description: Gavar
|
||||
Added: 2009-07-29
|
||||
%%
|
||||
Type: language
|
||||
Subtag: gov
|
||||
Description: Goo
|
||||
Added: 2022-02-25
|
||||
%%
|
||||
Type: language
|
||||
Subtag: gow
|
||||
Description: Gorowa
|
||||
Added: 2009-07-29
|
||||
@@ -14941,6 +14977,11 @@ Description: Marsian
|
||||
Added: 2009-07-29
|
||||
%%
|
||||
Type: language
|
||||
Subtag: imt
|
||||
Description: Imotong
|
||||
Added: 2022-02-25
|
||||
%%
|
||||
Type: language
|
||||
Subtag: imy
|
||||
Description: Milyan
|
||||
Added: 2009-07-29
|
||||
@@ -19458,6 +19499,8 @@ Type: language
|
||||
Subtag: lak
|
||||
Description: Laka (Nigeria)
|
||||
Added: 2009-07-29
|
||||
Deprecated: 2022-02-25
|
||||
Preferred-Value: ksp
|
||||
%%
|
||||
Type: language
|
||||
Subtag: lal
|
||||
@@ -19953,6 +19996,11 @@ Description: Opuuo
|
||||
Added: 2009-07-29
|
||||
%%
|
||||
Type: language
|
||||
Subtag: lgo
|
||||
Description: Lango (South Sudan)
|
||||
Added: 2022-02-25
|
||||
%%
|
||||
Type: language
|
||||
Subtag: lgq
|
||||
Description: Logba
|
||||
Added: 2009-07-29
|
||||
@@ -20552,6 +20600,8 @@ Type: language
|
||||
Subtag: lno
|
||||
Description: Lango (South Sudan)
|
||||
Added: 2009-07-29
|
||||
Deprecated: 2022-02-25
|
||||
Comments: see imt, lgo, lqr, oie
|
||||
%%
|
||||
Type: language
|
||||
Subtag: lns
|
||||
@@ -20724,6 +20774,11 @@ Description: Lopit
|
||||
Added: 2009-07-29
|
||||
%%
|
||||
Type: language
|
||||
Subtag: lqr
|
||||
Description: Logir
|
||||
Added: 2022-02-25
|
||||
%%
|
||||
Type: language
|
||||
Subtag: lra
|
||||
Description: Rara Bakati'
|
||||
Added: 2009-07-29
|
||||
@@ -20809,6 +20864,12 @@ Description: Langue des Signes Burundaise
|
||||
Added: 2021-02-20
|
||||
%%
|
||||
Type: language
|
||||
Subtag: lsc
|
||||
Description: Albarradas Sign Language
|
||||
Description: Lengua de señas Albarradas
|
||||
Added: 2022-02-25
|
||||
%%
|
||||
Type: language
|
||||
Subtag: lsd
|
||||
Description: Lishana Deni
|
||||
Added: 2009-07-29
|
||||
@@ -20883,6 +20944,13 @@ Description: Sivia Sign Language
|
||||
Added: 2019-04-16
|
||||
%%
|
||||
Type: language
|
||||
Subtag: lsw
|
||||
Description: Seychelles Sign Language
|
||||
Description: Lalang Siny Seselwa
|
||||
Description: Langue des Signes Seychelloise
|
||||
Added: 2022-02-25
|
||||
%%
|
||||
Type: language
|
||||
Subtag: lsy
|
||||
Description: Mauritian Sign Language
|
||||
Added: 2010-03-11
|
||||
@@ -26779,6 +26847,11 @@ Description: Nawaru
|
||||
Added: 2009-07-29
|
||||
%%
|
||||
Type: language
|
||||
Subtag: nww
|
||||
Description: Ndwewe
|
||||
Added: 2022-02-25
|
||||
%%
|
||||
Type: language
|
||||
Subtag: nwx
|
||||
Description: Middle Newar
|
||||
Added: 2009-07-29
|
||||
@@ -27201,6 +27274,11 @@ Description: Oirata
|
||||
Added: 2009-07-29
|
||||
%%
|
||||
Type: language
|
||||
Subtag: oie
|
||||
Description: Okolie
|
||||
Added: 2022-02-25
|
||||
%%
|
||||
Type: language
|
||||
Subtag: oin
|
||||
Description: Inebu One
|
||||
Added: 2009-07-29
|
||||
@@ -28472,6 +28550,11 @@ Added: 2005-10-16
|
||||
Scope: collection
|
||||
%%
|
||||
Type: language
|
||||
Subtag: phj
|
||||
Description: Pahari
|
||||
Added: 2022-02-25
|
||||
%%
|
||||
Type: language
|
||||
Subtag: phk
|
||||
Description: Phake
|
||||
Added: 2009-07-29
|
||||
@@ -28572,6 +28655,7 @@ Type: language
|
||||
Subtag: pii
|
||||
Description: Pini
|
||||
Added: 2009-07-29
|
||||
Deprecated: 2022-02-25
|
||||
%%
|
||||
Type: language
|
||||
Subtag: pij
|
||||
@@ -29419,6 +29503,7 @@ Added: 2009-07-29
|
||||
%%
|
||||
Type: language
|
||||
Subtag: psc
|
||||
Description: Iranian Sign Language
|
||||
Description: Persian Sign Language
|
||||
Added: 2009-07-29
|
||||
%%
|
||||
@@ -29772,7 +29857,13 @@ Description: Pyen
|
||||
Added: 2009-07-29
|
||||
%%
|
||||
Type: language
|
||||
Subtag: pzh
|
||||
Description: Pazeh
|
||||
Added: 2022-02-25
|
||||
%%
|
||||
Type: language
|
||||
Subtag: pzn
|
||||
Description: Jejara Naga
|
||||
Description: Para Naga
|
||||
Added: 2009-07-29
|
||||
%%
|
||||
@@ -30394,6 +30485,11 @@ Description: Riang (India)
|
||||
Added: 2009-07-29
|
||||
%%
|
||||
Type: language
|
||||
Subtag: rib
|
||||
Description: Bribri Sign Language
|
||||
Added: 2022-02-25
|
||||
%%
|
||||
Type: language
|
||||
Subtag: rie
|
||||
Description: Rien
|
||||
Added: 2009-07-29
|
||||
@@ -30627,6 +30723,11 @@ Added: 2009-07-29
|
||||
Deprecated: 2016-05-30
|
||||
%%
|
||||
Type: language
|
||||
Subtag: rnb
|
||||
Description: Brunca Sign Language
|
||||
Added: 2022-02-25
|
||||
%%
|
||||
Type: language
|
||||
Subtag: rnd
|
||||
Description: Ruund
|
||||
Added: 2009-07-29
|
||||
@@ -30770,6 +30871,12 @@ Added: 2009-07-29
|
||||
Deprecated: 2017-02-23
|
||||
%%
|
||||
Type: language
|
||||
Subtag: rsk
|
||||
Description: Ruthenian
|
||||
Description: Rusyn
|
||||
Added: 2022-02-25
|
||||
%%
|
||||
Type: language
|
||||
Subtag: rsl
|
||||
Description: Russian Sign Language
|
||||
Added: 2009-07-29
|
||||
@@ -30780,6 +30887,11 @@ Description: Miriwoong Sign Language
|
||||
Added: 2016-05-30
|
||||
%%
|
||||
Type: language
|
||||
Subtag: rsn
|
||||
Description: Rwandan Sign Language
|
||||
Added: 2022-02-25
|
||||
%%
|
||||
Type: language
|
||||
Subtag: rtc
|
||||
Description: Rungtu Chin
|
||||
Added: 2012-08-12
|
||||
@@ -32276,6 +32388,8 @@ Type: language
|
||||
Subtag: smd
|
||||
Description: Sama
|
||||
Added: 2009-07-29
|
||||
Deprecated: 2022-02-25
|
||||
Preferred-Value: kmb
|
||||
%%
|
||||
Type: language
|
||||
Subtag: smf
|
||||
@@ -32382,6 +32496,8 @@ Type: language
|
||||
Subtag: snb
|
||||
Description: Sebuyau
|
||||
Added: 2009-07-29
|
||||
Deprecated: 2022-02-25
|
||||
Preferred-Value: iba
|
||||
%%
|
||||
Type: language
|
||||
Subtag: snc
|
||||
@@ -35199,6 +35315,11 @@ Description: Tojolabal
|
||||
Added: 2009-07-29
|
||||
%%
|
||||
Type: language
|
||||
Subtag: tok
|
||||
Description: Toki Pona
|
||||
Added: 2022-02-25
|
||||
%%
|
||||
Type: language
|
||||
Subtag: tol
|
||||
Description: Tolowa
|
||||
Added: 2009-07-29
|
||||
@@ -35541,6 +35662,8 @@ Added: 2009-07-29
|
||||
%%
|
||||
Type: language
|
||||
Subtag: trv
|
||||
Description: Sediq
|
||||
Description: Seediq
|
||||
Description: Taroko
|
||||
Added: 2009-07-29
|
||||
%%
|
||||
@@ -36432,6 +36555,11 @@ Description: Ughele
|
||||
Added: 2009-07-29
|
||||
%%
|
||||
Type: language
|
||||
Subtag: ugh
|
||||
Description: Kubachi
|
||||
Added: 2022-02-25
|
||||
%%
|
||||
Type: language
|
||||
Subtag: ugn
|
||||
Description: Ugandan Sign Language
|
||||
Added: 2009-07-29
|
||||
@@ -36742,6 +36870,11 @@ Deprecated: 2015-02-12
|
||||
Preferred-Value: ema
|
||||
%%
|
||||
Type: language
|
||||
Subtag: uon
|
||||
Description: Kulon
|
||||
Added: 2022-02-25
|
||||
%%
|
||||
Type: language
|
||||
Subtag: upi
|
||||
Description: Umeda
|
||||
Added: 2009-07-29
|
||||
@@ -36944,6 +37077,8 @@ Type: language
|
||||
Subtag: uun
|
||||
Description: Kulon-Pazeh
|
||||
Added: 2009-07-29
|
||||
Deprecated: 2022-02-25
|
||||
Comments: see pzh, uon
|
||||
%%
|
||||
Type: language
|
||||
Subtag: uur
|
||||
@@ -37714,6 +37849,11 @@ Description: Wadikali
|
||||
Added: 2013-09-10
|
||||
%%
|
||||
Type: language
|
||||
Subtag: wdt
|
||||
Description: Wendat
|
||||
Added: 2022-02-25
|
||||
%%
|
||||
Type: language
|
||||
Subtag: wdu
|
||||
Description: Wadjigu
|
||||
Added: 2009-07-29
|
||||
@@ -38348,6 +38488,7 @@ Type: language
|
||||
Subtag: wrd
|
||||
Description: Warduji
|
||||
Added: 2009-07-29
|
||||
Deprecated: 2022-02-25
|
||||
%%
|
||||
Type: language
|
||||
Subtag: wrg
|
||||
@@ -38613,6 +38754,8 @@ Type: language
|
||||
Subtag: wya
|
||||
Description: Wyandot
|
||||
Added: 2009-07-29
|
||||
Deprecated: 2022-02-25
|
||||
Comments: see wdt, wyn
|
||||
%%
|
||||
Type: language
|
||||
Subtag: wyb
|
||||
@@ -38630,6 +38773,11 @@ Description: Wymysorys
|
||||
Added: 2009-07-29
|
||||
%%
|
||||
Type: language
|
||||
Subtag: wyn
|
||||
Description: Wyandot
|
||||
Added: 2022-02-25
|
||||
%%
|
||||
Type: language
|
||||
Subtag: wyr
|
||||
Description: Wayoró
|
||||
Added: 2009-07-29
|
||||
@@ -38936,6 +39084,11 @@ Description: Kwandu
|
||||
Added: 2017-02-23
|
||||
%%
|
||||
Type: language
|
||||
Subtag: xdq
|
||||
Description: Kaitag
|
||||
Added: 2022-02-25
|
||||
%%
|
||||
Type: language
|
||||
Subtag: xdy
|
||||
Description: Malayic Dayak
|
||||
Added: 2009-07-29
|
||||
@@ -39079,6 +39232,11 @@ Added: 2009-07-29
|
||||
Macrolanguage: lah
|
||||
%%
|
||||
Type: language
|
||||
Subtag: xhm
|
||||
Description: Middle Khmer (1400 to 1850 CE)
|
||||
Added: 2022-02-25
|
||||
%%
|
||||
Type: language
|
||||
Subtag: xhr
|
||||
Description: Hernican
|
||||
Added: 2009-07-29
|
||||
@@ -39215,6 +39373,7 @@ Added: 2009-07-29
|
||||
%%
|
||||
Type: language
|
||||
Subtag: xkk
|
||||
Description: Kachok
|
||||
Description: Kaco'
|
||||
Added: 2009-07-29
|
||||
%%
|
||||
@@ -39469,6 +39628,7 @@ Macrolanguage: mg
|
||||
%%
|
||||
Type: language
|
||||
Subtag: xmx
|
||||
Description: Salawati
|
||||
Description: Maden
|
||||
Added: 2009-07-29
|
||||
%%
|
||||
@@ -41728,6 +41888,12 @@ Added: 2009-07-29
|
||||
Macrolanguage: zap
|
||||
%%
|
||||
Type: language
|
||||
Subtag: zcd
|
||||
Description: Las Delicias Zapotec
|
||||
Added: 2022-02-25
|
||||
Macrolanguage: zap
|
||||
%%
|
||||
Type: language
|
||||
Subtag: zch
|
||||
Description: Central Hongshuihe Zhuang
|
||||
Added: 2009-07-29
|
||||
@@ -42700,6 +42866,13 @@ Prefix: ar
|
||||
Macrolanguage: ar
|
||||
%%
|
||||
Type: extlang
|
||||
Subtag: ajs
|
||||
Description: Algerian Jewish Sign Language
|
||||
Added: 2022-02-25
|
||||
Preferred-Value: ajs
|
||||
Prefix: sgn
|
||||
%%
|
||||
Type: extlang
|
||||
Subtag: apc
|
||||
Description: North Levantine Arabic
|
||||
Added: 2009-07-29
|
||||
@@ -43104,6 +43277,13 @@ Preferred-Value: dsl
|
||||
Prefix: sgn
|
||||
%%
|
||||
Type: extlang
|
||||
Subtag: dsz
|
||||
Description: Mardin Sign Language
|
||||
Added: 2022-02-25
|
||||
Preferred-Value: dsz
|
||||
Prefix: sgn
|
||||
%%
|
||||
Type: extlang
|
||||
Subtag: dup
|
||||
Description: Duano
|
||||
Added: 2009-07-29
|
||||
@@ -43538,6 +43718,14 @@ Preferred-Value: lsb
|
||||
Prefix: sgn
|
||||
%%
|
||||
Type: extlang
|
||||
Subtag: lsc
|
||||
Description: Albarradas Sign Language
|
||||
Description: Lengua de señas Albarradas
|
||||
Added: 2022-02-25
|
||||
Preferred-Value: lsc
|
||||
Prefix: sgn
|
||||
%%
|
||||
Type: extlang
|
||||
Subtag: lsg
|
||||
Description: Lyons Sign Language
|
||||
Added: 2009-07-29
|
||||
@@ -43589,6 +43777,15 @@ Preferred-Value: lsv
|
||||
Prefix: sgn
|
||||
%%
|
||||
Type: extlang
|
||||
Subtag: lsw
|
||||
Description: Seychelles Sign Language
|
||||
Description: Lalang Siny Seselwa
|
||||
Description: Langue des Signes Seychelloise
|
||||
Added: 2022-02-25
|
||||
Preferred-Value: lsw
|
||||
Prefix: sgn
|
||||
%%
|
||||
Type: extlang
|
||||
Subtag: lsy
|
||||
Description: Mauritian Sign Language
|
||||
Added: 2010-03-11
|
||||
@@ -43880,6 +44077,7 @@ Prefix: sgn
|
||||
%%
|
||||
Type: extlang
|
||||
Subtag: psc
|
||||
Description: Iranian Sign Language
|
||||
Description: Persian Sign Language
|
||||
Added: 2009-07-29
|
||||
Preferred-Value: psc
|
||||
@@ -43944,6 +44142,13 @@ Preferred-Value: pys
|
||||
Prefix: sgn
|
||||
%%
|
||||
Type: extlang
|
||||
Subtag: rib
|
||||
Description: Bribri Sign Language
|
||||
Added: 2022-02-25
|
||||
Preferred-Value: rib
|
||||
Prefix: sgn
|
||||
%%
|
||||
Type: extlang
|
||||
Subtag: rms
|
||||
Description: Romanian Sign Language
|
||||
Added: 2009-07-29
|
||||
@@ -43951,6 +44156,13 @@ Preferred-Value: rms
|
||||
Prefix: sgn
|
||||
%%
|
||||
Type: extlang
|
||||
Subtag: rnb
|
||||
Description: Brunca Sign Language
|
||||
Added: 2022-02-25
|
||||
Preferred-Value: rnb
|
||||
Prefix: sgn
|
||||
%%
|
||||
Type: extlang
|
||||
Subtag: rsi
|
||||
Description: Rennellese Sign Language
|
||||
Added: 2009-07-29
|
||||
@@ -43973,6 +44185,13 @@ Preferred-Value: rsm
|
||||
Prefix: sgn
|
||||
%%
|
||||
Type: extlang
|
||||
Subtag: rsn
|
||||
Description: Rwandan Sign Language
|
||||
Added: 2022-02-25
|
||||
Preferred-Value: rsn
|
||||
Prefix: sgn
|
||||
%%
|
||||
Type: extlang
|
||||
Subtag: sdl
|
||||
Description: Saudi Arabian Sign Language
|
||||
Added: 2009-07-29
|
||||
@@ -44793,6 +45012,11 @@ Description: Katakana
|
||||
Added: 2005-10-16
|
||||
%%
|
||||
Type: script
|
||||
Subtag: Kawi
|
||||
Description: Kawi
|
||||
Added: 2021-12-24
|
||||
%%
|
||||
Type: script
|
||||
Subtag: Khar
|
||||
Description: Kharoshthi
|
||||
Added: 2005-10-16
|
||||
@@ -45012,6 +45236,11 @@ Description: Burmese
|
||||
Added: 2005-10-16
|
||||
%%
|
||||
Type: script
|
||||
Subtag: Nagm
|
||||
Description: Nag Mundari
|
||||
Added: 2021-12-24
|
||||
%%
|
||||
Type: script
|
||||
Subtag: Nand
|
||||
Description: Nandinagari
|
||||
Added: 2018-10-28
|
||||
@@ -45290,6 +45519,11 @@ Description: Sundanese
|
||||
Added: 2006-07-21
|
||||
%%
|
||||
Type: script
|
||||
Subtag: Sunu
|
||||
Description: Sunuwar
|
||||
Added: 2021-12-24
|
||||
%%
|
||||
Type: script
|
||||
Subtag: Sylo
|
||||
Description: Syloti Nagri
|
||||
Added: 2005-10-16
|
||||
@@ -46736,6 +46970,7 @@ Preferred-Value: TL
|
||||
%%
|
||||
Type: region
|
||||
Subtag: TR
|
||||
Description: Türkiye
|
||||
Description: Turkey
|
||||
Added: 2005-10-16
|
||||
%%
|
||||
@@ -47357,6 +47592,12 @@ Added: 2010-10-23
|
||||
Comments: Indicates that the content is transcribed according to X-SAMPA
|
||||
%%
|
||||
Type: variant
|
||||
Subtag: gallo
|
||||
Description: Gallo
|
||||
Added: 2021-08-05
|
||||
Prefix: fr
|
||||
%%
|
||||
Type: variant
|
||||
Subtag: gascon
|
||||
Description: Gascon
|
||||
Added: 2018-04-22
|
||||
@@ -47526,6 +47767,19 @@ Comments: The dialect of Lipovaz/Lipovec is one of the minor local
|
||||
dialects of Resian
|
||||
%%
|
||||
Type: variant
|
||||
Subtag: ltg1929
|
||||
Description: The Latgalian language orthography codified in 1929
|
||||
Added: 2022-08-05
|
||||
Prefix: ltg
|
||||
%%
|
||||
Type: variant
|
||||
Subtag: ltg2007
|
||||
Description: The Latgalian language orthography codified in the language
|
||||
law in 2007
|
||||
Added: 2022-06-23
|
||||
Prefix: ltg
|
||||
%%
|
||||
Type: variant
|
||||
Subtag: luna1918
|
||||
Description: Post-1917 Russian orthography
|
||||
Added: 2010-10-10
|
||||
@@ -47779,6 +48033,13 @@ Comments: Sutsilvan is one of the five traditional written standards or
|
||||
"idioms" of the Romansh language.
|
||||
%%
|
||||
Type: variant
|
||||
Subtag: synnejyl
|
||||
Description: Synnejysk
|
||||
Description: South Jutish
|
||||
Added: 2021-07-17
|
||||
Prefix: da
|
||||
%%
|
||||
Type: variant
|
||||
Subtag: tarask
|
||||
Description: Belarusian in Taraskievica orthography
|
||||
Added: 2007-04-27
|
||||
|
||||
@@ -21,4 +21,4 @@
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
tzdata2022g
|
||||
tzdata2023c
|
||||
|
||||
@@ -344,6 +344,14 @@ Rule Egypt 2007 only - Sep Thu>=1 24:00 0 -
|
||||
# From Mina Samuel (2016-07-04):
|
||||
# Egyptian government took the decision to cancel the DST,
|
||||
|
||||
# From Ahmad ElDardiry (2023-03-01):
|
||||
# Egypt officially announced today that daylight savings will be
|
||||
# applied from last Friday of April to last Thursday of October.
|
||||
# From Paul Eggert (2023-03-01):
|
||||
# Assume transitions are at 00:00 and 24:00 respectively.
|
||||
# From Amir Adib (2023-03-07):
|
||||
# https://www.facebook.com/EgyptianCabinet/posts/638829614954129/
|
||||
|
||||
Rule Egypt 2008 only - Aug lastThu 24:00 0 -
|
||||
Rule Egypt 2009 only - Aug 20 24:00 0 -
|
||||
Rule Egypt 2010 only - Aug 10 24:00 0 -
|
||||
@@ -353,6 +361,8 @@ Rule Egypt 2014 only - May 15 24:00 1:00 S
|
||||
Rule Egypt 2014 only - Jun 26 24:00 0 -
|
||||
Rule Egypt 2014 only - Jul 31 24:00 1:00 S
|
||||
Rule Egypt 2014 only - Sep lastThu 24:00 0 -
|
||||
Rule Egypt 2023 max - Apr lastFri 0:00 1:00 S
|
||||
Rule Egypt 2023 max - Oct lastThu 24:00 0 -
|
||||
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
#STDOFF 2:05:08.9
|
||||
@@ -452,7 +462,7 @@ Zone Africa/Nairobi 2:27:16 - LMT 1908 May
|
||||
# President William R. Tolbert, Jr., July 23, 1971-July 31, 1972.
|
||||
# Monrovia: Executive Mansion.
|
||||
#
|
||||
# Use the abbreviation "MMT" before 1972, as the more-accurate numeric
|
||||
# Use the abbreviation "MMT" before 1972, as the more accurate numeric
|
||||
# abbreviation "-004430" would be one byte over the POSIX limit.
|
||||
#
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
@@ -589,8 +599,8 @@ Zone Africa/Tripoli 0:52:44 - LMT 1920
|
||||
# DST the coming summer...
|
||||
#
|
||||
# Some sources, in French:
|
||||
# http://www.defimedia.info/news/946/Rashid-Beebeejaun-:-%C2%AB-L%E2%80%99heure-d%E2%80%99%C3%A9t%C3%A9-ne-sera-pas-appliqu%C3%A9e-cette-ann%C3%A9e-%C2%BB
|
||||
# http://lexpress.mu/Story/3398~Beebeejaun---Les-objectifs-d-%C3%A9conomie-d-%C3%A9nergie-de-l-heure-d-%C3%A9t%C3%A9-ont-%C3%A9t%C3%A9-atteints-
|
||||
# http://www.defimedia.info/news/946/Rashid-Beebeejaun-:-«-L%E2%80%99heure-d%E2%80%99été-ne-sera-pas-appliquée-cette-année-»
|
||||
# http://lexpress.mu/Story/3398~Beebeejaun---Les-objectifs-d-économie-d-énergie-de-l-heure-d-été-ont-été-atteints-
|
||||
#
|
||||
# Our wrap-up:
|
||||
# https://www.timeanddate.com/news/time/mauritius-dst-will-not-repeat.html
|
||||
@@ -721,7 +731,7 @@ Zone Indian/Mauritius 3:50:00 - LMT 1907 # Port Louis
|
||||
# More articles in the press
|
||||
# https://www.yabiladi.com/articles/details/5058/secret-l-heure-d-ete-maroc-leve.html
|
||||
# http://www.lematin.ma/Actualite/Express/Article.asp?id=148923
|
||||
# http://www.lavieeco.com/actualite/Le-Maroc-passe-sur-GMT%2B1-a-partir-de-dim
|
||||
# http://www.lavieeco.com/actualite/Le-Maroc-passe-sur-GMT+1-a-partir-de-dim
|
||||
|
||||
# From Petr Machata (2011-03-30):
|
||||
# They have it written in English here:
|
||||
@@ -736,7 +746,7 @@ Zone Indian/Mauritius 3:50:00 - LMT 1907 # Port Louis
|
||||
# According to Infomédiaire web site from Morocco (infomediaire.ma),
|
||||
# on March 9, 2012, (in French) Heure légale:
|
||||
# Le Maroc adopte officiellement l'heure d'été
|
||||
# http://www.infomediaire.ma/news/maroc/heure-l%C3%A9gale-le-maroc-adopte-officiellement-lheure-d%C3%A9t%C3%A9
|
||||
# http://www.infomediaire.ma/news/maroc/heure-légale-le-maroc-adopte-officiellement-lheure-dété
|
||||
# Governing Council adopted draft decree, that Morocco DST starts on
|
||||
# the last Sunday of March (March 25, 2012) and ends on
|
||||
# last Sunday of September (September 30, 2012)
|
||||
@@ -860,19 +870,28 @@ Zone Indian/Mauritius 3:50:00 - LMT 1907 # Port Louis
|
||||
# Friday or Saturday (and so the 2 days off are on a weekend), the next time
|
||||
# shift will be the next weekend.
|
||||
#
|
||||
# From Paul Eggert (2020-05-31):
|
||||
# From Milamber (2021-03-31, 2022-03-10):
|
||||
# https://www.mmsp.gov.ma/fr/actualites.aspx?id=2076
|
||||
# https://www.ecoactu.ma/horaires-administration-ramadan-gmtheure-gmt-a-partir-de-dimanche-27-mars/
|
||||
#
|
||||
# From Milamber (2023-03-14, 2023-03-15):
|
||||
# The return to legal GMT time will take place this Sunday, March 19 at 3 a.m.
|
||||
# ... the return to GMT+1 will be made on Sunday April 23, 2023 at 2 a.m.
|
||||
# https://www.mmsp.gov.ma/fr/actualites/passage-à-l%E2%80%99heure-gmt-à-partir-du-dimanche-19-mars-2023
|
||||
#
|
||||
# From Paul Eggert (2023-03-14):
|
||||
# For now, guess that in the future Morocco will fall back at 03:00
|
||||
# the last Sunday before Ramadan, and spring forward at 02:00 the
|
||||
# first Sunday after two days after Ramadan. To implement this,
|
||||
# first Sunday after one day after Ramadan. To implement this,
|
||||
# transition dates and times for 2019 through 2087 were determined by
|
||||
# running the following program under GNU Emacs 26.3. (This algorithm
|
||||
# running the following program under GNU Emacs 28.2. (This algorithm
|
||||
# also produces the correct transition dates for 2016 through 2018,
|
||||
# though the times differ due to Morocco's time zone change in 2018.)
|
||||
# (let ((islamic-year 1440))
|
||||
# (require 'cal-islam)
|
||||
# (while (< islamic-year 1511)
|
||||
# (let ((a (calendar-islamic-to-absolute (list 9 1 islamic-year)))
|
||||
# (b (+ 2 (calendar-islamic-to-absolute (list 10 1 islamic-year))))
|
||||
# (b (+ 1 (calendar-islamic-to-absolute (list 10 1 islamic-year))))
|
||||
# (sunday 0))
|
||||
# (while (/= sunday (mod (setq a (1- a)) 7)))
|
||||
# (while (/= sunday (mod b 7))
|
||||
@@ -886,10 +905,6 @@ Zone Indian/Mauritius 3:50:00 - LMT 1907 # Port Louis
|
||||
# (car (cdr (cdr a))) (calendar-month-name (car a) t) (car (cdr a))
|
||||
# (car (cdr (cdr b))) (calendar-month-name (car b) t) (car (cdr b)))))
|
||||
# (setq islamic-year (+ 1 islamic-year))))
|
||||
#
|
||||
# From Milamber (2021-03-31, 2022-03-10), confirming these predictions:
|
||||
# https://www.mmsp.gov.ma/fr/actualites.aspx?id=2076
|
||||
# https://www.ecoactu.ma/horaires-administration-ramadan-gmtheure-gmt-a-partir-de-dimanche-27-mars/
|
||||
|
||||
# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
|
||||
Rule Morocco 1939 only - Sep 12 0:00 1:00 -
|
||||
@@ -942,7 +957,7 @@ Rule Morocco 2021 only - May 16 2:00 0 -
|
||||
Rule Morocco 2022 only - Mar 27 3:00 -1:00 -
|
||||
Rule Morocco 2022 only - May 8 2:00 0 -
|
||||
Rule Morocco 2023 only - Mar 19 3:00 -1:00 -
|
||||
Rule Morocco 2023 only - Apr 30 2:00 0 -
|
||||
Rule Morocco 2023 only - Apr 23 2:00 0 -
|
||||
Rule Morocco 2024 only - Mar 10 3:00 -1:00 -
|
||||
Rule Morocco 2024 only - Apr 14 2:00 0 -
|
||||
Rule Morocco 2025 only - Feb 23 3:00 -1:00 -
|
||||
@@ -958,7 +973,7 @@ Rule Morocco 2029 only - Feb 18 2:00 0 -
|
||||
Rule Morocco 2029 only - Dec 30 3:00 -1:00 -
|
||||
Rule Morocco 2030 only - Feb 10 2:00 0 -
|
||||
Rule Morocco 2030 only - Dec 22 3:00 -1:00 -
|
||||
Rule Morocco 2031 only - Feb 2 2:00 0 -
|
||||
Rule Morocco 2031 only - Jan 26 2:00 0 -
|
||||
Rule Morocco 2031 only - Dec 14 3:00 -1:00 -
|
||||
Rule Morocco 2032 only - Jan 18 2:00 0 -
|
||||
Rule Morocco 2032 only - Nov 28 3:00 -1:00 -
|
||||
@@ -974,7 +989,7 @@ Rule Morocco 2036 only - Nov 23 2:00 0 -
|
||||
Rule Morocco 2037 only - Oct 4 3:00 -1:00 -
|
||||
Rule Morocco 2037 only - Nov 15 2:00 0 -
|
||||
Rule Morocco 2038 only - Sep 26 3:00 -1:00 -
|
||||
Rule Morocco 2038 only - Nov 7 2:00 0 -
|
||||
Rule Morocco 2038 only - Oct 31 2:00 0 -
|
||||
Rule Morocco 2039 only - Sep 18 3:00 -1:00 -
|
||||
Rule Morocco 2039 only - Oct 23 2:00 0 -
|
||||
Rule Morocco 2040 only - Sep 2 3:00 -1:00 -
|
||||
@@ -990,7 +1005,7 @@ Rule Morocco 2044 only - Aug 28 2:00 0 -
|
||||
Rule Morocco 2045 only - Jul 9 3:00 -1:00 -
|
||||
Rule Morocco 2045 only - Aug 20 2:00 0 -
|
||||
Rule Morocco 2046 only - Jul 1 3:00 -1:00 -
|
||||
Rule Morocco 2046 only - Aug 12 2:00 0 -
|
||||
Rule Morocco 2046 only - Aug 5 2:00 0 -
|
||||
Rule Morocco 2047 only - Jun 23 3:00 -1:00 -
|
||||
Rule Morocco 2047 only - Jul 28 2:00 0 -
|
||||
Rule Morocco 2048 only - Jun 7 3:00 -1:00 -
|
||||
@@ -1006,7 +1021,7 @@ Rule Morocco 2052 only - Jun 2 2:00 0 -
|
||||
Rule Morocco 2053 only - Apr 13 3:00 -1:00 -
|
||||
Rule Morocco 2053 only - May 25 2:00 0 -
|
||||
Rule Morocco 2054 only - Apr 5 3:00 -1:00 -
|
||||
Rule Morocco 2054 only - May 17 2:00 0 -
|
||||
Rule Morocco 2054 only - May 10 2:00 0 -
|
||||
Rule Morocco 2055 only - Mar 28 3:00 -1:00 -
|
||||
Rule Morocco 2055 only - May 2 2:00 0 -
|
||||
Rule Morocco 2056 only - Mar 12 3:00 -1:00 -
|
||||
@@ -1022,7 +1037,7 @@ Rule Morocco 2060 only - Mar 7 2:00 0 -
|
||||
Rule Morocco 2061 only - Jan 16 3:00 -1:00 -
|
||||
Rule Morocco 2061 only - Feb 27 2:00 0 -
|
||||
Rule Morocco 2062 only - Jan 8 3:00 -1:00 -
|
||||
Rule Morocco 2062 only - Feb 19 2:00 0 -
|
||||
Rule Morocco 2062 only - Feb 12 2:00 0 -
|
||||
Rule Morocco 2062 only - Dec 31 3:00 -1:00 -
|
||||
Rule Morocco 2063 only - Feb 4 2:00 0 -
|
||||
Rule Morocco 2063 only - Dec 16 3:00 -1:00 -
|
||||
@@ -1038,7 +1053,7 @@ Rule Morocco 2067 only - Dec 11 2:00 0 -
|
||||
Rule Morocco 2068 only - Oct 21 3:00 -1:00 -
|
||||
Rule Morocco 2068 only - Dec 2 2:00 0 -
|
||||
Rule Morocco 2069 only - Oct 13 3:00 -1:00 -
|
||||
Rule Morocco 2069 only - Nov 24 2:00 0 -
|
||||
Rule Morocco 2069 only - Nov 17 2:00 0 -
|
||||
Rule Morocco 2070 only - Oct 5 3:00 -1:00 -
|
||||
Rule Morocco 2070 only - Nov 9 2:00 0 -
|
||||
Rule Morocco 2071 only - Sep 20 3:00 -1:00 -
|
||||
@@ -1054,7 +1069,7 @@ Rule Morocco 2075 only - Sep 15 2:00 0 -
|
||||
Rule Morocco 2076 only - Jul 26 3:00 -1:00 -
|
||||
Rule Morocco 2076 only - Sep 6 2:00 0 -
|
||||
Rule Morocco 2077 only - Jul 18 3:00 -1:00 -
|
||||
Rule Morocco 2077 only - Aug 29 2:00 0 -
|
||||
Rule Morocco 2077 only - Aug 22 2:00 0 -
|
||||
Rule Morocco 2078 only - Jul 10 3:00 -1:00 -
|
||||
Rule Morocco 2078 only - Aug 14 2:00 0 -
|
||||
Rule Morocco 2079 only - Jun 25 3:00 -1:00 -
|
||||
@@ -1064,13 +1079,13 @@ Rule Morocco 2080 only - Jul 21 2:00 0 -
|
||||
Rule Morocco 2081 only - Jun 1 3:00 -1:00 -
|
||||
Rule Morocco 2081 only - Jul 13 2:00 0 -
|
||||
Rule Morocco 2082 only - May 24 3:00 -1:00 -
|
||||
Rule Morocco 2082 only - Jul 5 2:00 0 -
|
||||
Rule Morocco 2082 only - Jun 28 2:00 0 -
|
||||
Rule Morocco 2083 only - May 16 3:00 -1:00 -
|
||||
Rule Morocco 2083 only - Jun 20 2:00 0 -
|
||||
Rule Morocco 2084 only - Apr 30 3:00 -1:00 -
|
||||
Rule Morocco 2084 only - Jun 11 2:00 0 -
|
||||
Rule Morocco 2085 only - Apr 22 3:00 -1:00 -
|
||||
Rule Morocco 2085 only - Jun 3 2:00 0 -
|
||||
Rule Morocco 2085 only - May 27 2:00 0 -
|
||||
Rule Morocco 2086 only - Apr 14 3:00 -1:00 -
|
||||
Rule Morocco 2086 only - May 19 2:00 0 -
|
||||
Rule Morocco 2087 only - Mar 30 3:00 -1:00 -
|
||||
@@ -1213,15 +1228,15 @@ Zone Africa/Windhoek 1:08:24 - LMT 1892 Feb 8
|
||||
# From P Chan (2020-12-03):
|
||||
# GMT was adopted as the standard time of Lagos on 1905-07-01.
|
||||
# Lagos Weekly Record, 1905-06-24, p 3
|
||||
# http://ddsnext.crl.edu/titles/31558#?c=0&m=668&s=0&cv=2&r=0&xywh=1446%2C5221%2C1931%2C1235
|
||||
# http://ddsnext.crl.edu/titles/31558#?c=0&m=668&s=0&cv=2&r=0&xywh=1446,5221,1931,1235
|
||||
# says "It is officially notified that on and after the 1st of July 1905
|
||||
# Greenwich Mean Solar Time will be adopted thought the Colony and
|
||||
# Greenwich Mean Solar Time will be adopted throughout the Colony and
|
||||
# Protectorate, and that it will be necessary to put all clocks 13 minutes and
|
||||
# 35 seconds back, recording local mean time."
|
||||
#
|
||||
# It seemed that Lagos returned to LMT on 1908-07-01.
|
||||
# [The Lagos Standard], 1908-07-01, p 5
|
||||
# http://ddsnext.crl.edu/titles/31556#?c=0&m=78&s=0&cv=4&r=0&xywh=-92%2C3590%2C3944%2C2523
|
||||
# http://ddsnext.crl.edu/titles/31556#?c=0&m=78&s=0&cv=4&r=0&xywh=-92,3590,3944,2523
|
||||
# says "Scarcely have the people become accustomed to this new time, when
|
||||
# another official notice has now appeared announcing that from and after the
|
||||
# 1st July next, return will be made to local mean time."
|
||||
@@ -1233,7 +1248,7 @@ Zone Africa/Windhoek 1:08:24 - LMT 1892 Feb 8
|
||||
# https://libsysdigi.library.illinois.edu/ilharvest/Africana/Books2011-05/3064634/3064634_1914/3064634_1914_opt.pdf#page=27
|
||||
# "On January 1st [1914], a universal standard time for Nigeria was adopted,
|
||||
# viz., half an hour fast on Greenwich mean time, corresponding to the meridian
|
||||
# 7 [degrees] 30' E. long."
|
||||
# 7° 30' E. long."
|
||||
# Lloyd's Register of Shipping (1915) says "Hitherto the time observed in Lagos
|
||||
# was the local mean time. On 1st January, 1914, standard time for the whole of
|
||||
# Nigeria was introduced ... Lagos time has been advanced about 16 minutes
|
||||
@@ -1251,7 +1266,7 @@ Zone Africa/Windhoek 1:08:24 - LMT 1892 Feb 8
|
||||
# The Lagos Weekly Record, 1919-09-20, p 3 details discussion on the first
|
||||
# reading of this Bill by the Legislative Council of the Colony of Nigeria on
|
||||
# Thursday 1919-08-28:
|
||||
# http://ddsnext.crl.edu/titles/31558?terms&item_id=303484#?m=1118&c=1&s=0&cv=2&r=0&xywh=1261%2C3408%2C2994%2C1915
|
||||
# http://ddsnext.crl.edu/titles/31558?terms&item_id=303484#?m=1118&c=1&s=0&cv=2&r=0&xywh=1261,3408,2994,1915
|
||||
# "The proposal is that the Globe should be divided into twelve zones East and
|
||||
# West of Greenwich, of one hour each, Nigeria falling into the zone with a
|
||||
# standard of one hour fast on Greenwich Mean Time. Nigeria standard time is
|
||||
|
||||
@@ -315,7 +315,7 @@ Zone Antarctica/Rothera 0 - -00 1976 Dec 1
|
||||
# but that he found it more convenient to keep GMT+12
|
||||
# as supplies for the station were coming from McMurdo Sound,
|
||||
# which was on GMT+12 because New Zealand was on GMT+12 all year
|
||||
# at that time (1957). (Source: Siple's book 90 Degrees South.)
|
||||
# at that time (1957). (Source: Siple's book 90° South.)
|
||||
#
|
||||
# From Susan Smith
|
||||
# http://www.cybertours.com/whs/pole10.html
|
||||
|
||||
@@ -2714,6 +2714,40 @@ Zone Asia/Pyongyang 8:23:00 - LMT 1908 Apr 1
|
||||
|
||||
|
||||
# Lebanon
|
||||
#
|
||||
# From Saadallah Itani (2023-03-23):
|
||||
# Lebanon ... announced today delay of Spring forward from March 25 to April 20.
|
||||
#
|
||||
# From Paul Eggert (2023-03-27):
|
||||
# This announcement was by the Lebanese caretaker prime minister Najib Mikati.
|
||||
# https://www.mtv.com.lb/en/News/Local/1352516/lebanon-postpones-daylight-saving-time-adoption
|
||||
# A video was later leaked to the media of parliament speaker Nabih Berri
|
||||
# asking Mikati to postpone DST to aid observance of Ramadan, Mikati objecting
|
||||
# that this would cause problems such as scheduling airline flights, to which
|
||||
# Berri interjected, "What flights?"
|
||||
#
|
||||
# The change was controversial and led to a partly-sectarian divide.
|
||||
# Many Lebanese institutions, including the education ministry, the Maronite
|
||||
# church, and two news channels LCBI and MTV, ignored the announcement and
|
||||
# went ahead with the long-scheduled spring-forward on March 25/26, some
|
||||
# arguing that the prime minister had not followed the law because the change
|
||||
# had not been approved by the cabinet. Google went with the announcement;
|
||||
# Apple ignored it. At least one bank followed the announcement for its doors,
|
||||
# but ignored the announcement in internal computer systems.
|
||||
# Beirut international airport listed two times for each departure.
|
||||
# Dan Azzi wrote "My view is that this whole thing is a Dumb and Dumber movie."
|
||||
# Eventually the prime minister backed down, said the cabinet had decided to
|
||||
# stick with its 1998 decision, and that DST would begin midnight March 29/30.
|
||||
# https://www.nna-leb.gov.lb/en/miscellaneous/604093/lebanon-has-two-times-of-day-amid-daylight-savings
|
||||
# https://www.cnbc.com/2023/03/27/lebanon-in-two-different-time-zones-as-government-disagrees-on-daylight-savings.html
|
||||
#
|
||||
# Although we could model the chaos with two Zones, that would likely cause
|
||||
# more trouble than it would cure. Since so many manual clocks and
|
||||
# computer-based timestamps ignored the announcement, stick with official
|
||||
# cabinet resolutions in the data while recording the prime minister's
|
||||
# announcement as a comment. This is how we treated a similar situation in
|
||||
# Rio de Janeiro in spring 1993.
|
||||
#
|
||||
# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
|
||||
Rule Lebanon 1920 only - Mar 28 0:00 1:00 S
|
||||
Rule Lebanon 1920 only - Oct 25 0:00 0 -
|
||||
@@ -2739,6 +2773,10 @@ Rule Lebanon 1992 only - Oct 4 0:00 0 -
|
||||
Rule Lebanon 1993 max - Mar lastSun 0:00 1:00 S
|
||||
Rule Lebanon 1993 1998 - Sep lastSun 0:00 0 -
|
||||
Rule Lebanon 1999 max - Oct lastSun 0:00 0 -
|
||||
# This one-time rule, announced by the prime minister first for April 21
|
||||
# then for March 30, is commented out for reasons described above.
|
||||
#Rule Lebanon 2023 only - Mar 30 0:00 1:00 S
|
||||
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone Asia/Beirut 2:22:00 - LMT 1880
|
||||
2:00 Lebanon EE%sT
|
||||
@@ -2977,7 +3015,7 @@ Zone Asia/Kathmandu 5:41:16 - LMT 1920
|
||||
# 9pm and moving clocks forward by one hour for the next three months. ...."
|
||||
#
|
||||
# http://www.worldtimezone.com/dst_news/dst_news_pakistan01.html
|
||||
# http://www.dailytimes.com.pk/default.asp?page=2008%5C05%5C15%5Cstory_15-5-2008_pg1_4
|
||||
# http://www.dailytimes.com.pk/default.asp?page=2008\05\15\story_15-5-2008_pg1_4
|
||||
|
||||
# From Arthur David Olson (2008-05-19):
|
||||
# XXX--midnight transitions is a guess; 2008 only is a guess.
|
||||
@@ -3300,7 +3338,7 @@ Zone Asia/Karachi 4:28:12 - LMT 1907
|
||||
# Some of many sources in Arabic:
|
||||
# http://www.samanews.com/index.php?act=Show&id=122638
|
||||
#
|
||||
# http://safa.ps/details/news/74352/%D8%A8%D8%AF%D8%A1-%D8%A7%D9%84%D8%AA%D9%88%D9%82%D9%8A%D8%AA-%D8%A7%D9%84%D8%B5%D9%8A%D9%81%D9%8A-%D8%A8%D8%A7%D9%84%D8%B6%D9%81%D8%A9-%D9%88%D8%BA%D8%B2%D8%A9-%D9%84%D9%8A%D9%84%D8%A9-%D8%A7%D9%84%D8%AC%D9%85%D8%B9%D8%A9.html
|
||||
# http://safa.ps/details/news/74352/بدء-التوقيت-الصيفي-بالضفة-وغزة-ليلة-الجمعة.html
|
||||
#
|
||||
# Our brief summary:
|
||||
# https://www.timeanddate.com/news/time/gaza-west-bank-dst-2012.html
|
||||
@@ -3310,7 +3348,7 @@ Zone Asia/Karachi 4:28:12 - LMT 1907
|
||||
# time from midnight on Friday, March 29, 2013" (translated).
|
||||
# [These are in Arabic and are for Gaza and for Ramallah, respectively.]
|
||||
# http://www.samanews.com/index.php?act=Show&id=154120
|
||||
# http://safa.ps/details/news/99844/%D8%B1%D8%A7%D9%85-%D8%A7%D9%84%D9%84%D9%87-%D8%A8%D8%AF%D8%A1-%D8%A7%D9%84%D8%AA%D9%88%D9%82%D9%8A%D8%AA-%D8%A7%D9%84%D8%B5%D9%8A%D9%81%D9%8A-29-%D8%A7%D9%84%D8%AC%D8%A7%D8%B1%D9%8A.html
|
||||
# http://safa.ps/details/news/99844/رام-الله-بدء-التوقيت-الصيفي-29-الجاري.html
|
||||
|
||||
# From Steffen Thorsen (2013-09-24):
|
||||
# The Gaza and West Bank are ending DST Thursday at midnight
|
||||
@@ -3408,9 +3446,41 @@ Zone Asia/Karachi 4:28:12 - LMT 1907
|
||||
# (2022-08-31): ... the Saturday before the last Sunday in March and October
|
||||
# at 2:00 AM ,for the years from 2023 to 2026.
|
||||
# (2022-09-05): https://mtit.pna.ps/Site/New/1453
|
||||
|
||||
# From Heba Hamad (2023-03-22):
|
||||
# ... summer time will begin in Palestine from Saturday 04-29-2023,
|
||||
# 02:00 AM by 60 minutes forward.
|
||||
#
|
||||
# From Paul Eggert (2022-08-31):
|
||||
# For now, assume that this rule will also be used after 2026.
|
||||
# From Paul Eggert (2023-03-22):
|
||||
# For now, guess that spring and fall transitions will normally
|
||||
# continue to use 2022's rules, that during DST Palestine will switch
|
||||
# to standard time at 02:00 the last Saturday before Ramadan and back
|
||||
# to DST at 02:00 the first Saturday after Ramadan, and that
|
||||
# if the normal spring-forward or fall-back transition occurs during
|
||||
# Ramadan the former is delayed and the latter advanced.
|
||||
# To implement this, I predicted Ramadan-oriented transition dates for
|
||||
# 2023 through 2086 by running the following program under GNU Emacs 28.2,
|
||||
# with the results integrated by hand into the table below.
|
||||
# Predictions after 2086 are approximated without Ramadan.
|
||||
#
|
||||
# (let ((islamic-year 1444))
|
||||
# (require 'cal-islam)
|
||||
# (while (< islamic-year 1510)
|
||||
# (let ((a (calendar-islamic-to-absolute (list 9 1 islamic-year)))
|
||||
# (b (+ 1 (calendar-islamic-to-absolute (list 10 1 islamic-year))))
|
||||
# (saturday 6))
|
||||
# (while (/= saturday (mod (setq a (1- a)) 7)))
|
||||
# (while (/= saturday (mod b 7))
|
||||
# (setq b (1+ b)))
|
||||
# (setq a (calendar-gregorian-from-absolute a))
|
||||
# (setq b (calendar-gregorian-from-absolute b))
|
||||
# (insert
|
||||
# (format
|
||||
# (concat "Rule Palestine\t%d\tonly\t-\t%s\t%2d\t2:00\t0\t-\n"
|
||||
# "Rule Palestine\t%d\tonly\t-\t%s\t%2d\t2:00\t1:00\tS\n")
|
||||
# (car (cdr (cdr a))) (calendar-month-name (car a) t) (car (cdr a))
|
||||
# (car (cdr (cdr b))) (calendar-month-name (car b) t) (car (cdr b)))))
|
||||
# (setq islamic-year (+ 1 islamic-year))))
|
||||
|
||||
# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
|
||||
Rule EgyptAsia 1957 only - May 10 0:00 1:00 S
|
||||
@@ -3450,8 +3520,86 @@ Rule Palestine 2020 2021 - Mar Sat<=30 0:00 1:00 S
|
||||
Rule Palestine 2020 only - Oct 24 1:00 0 -
|
||||
Rule Palestine 2021 only - Oct 29 1:00 0 -
|
||||
Rule Palestine 2022 only - Mar 27 0:00 1:00 S
|
||||
Rule Palestine 2022 max - Oct Sat<=30 2:00 0 -
|
||||
Rule Palestine 2023 max - Mar Sat<=30 2:00 1:00 S
|
||||
Rule Palestine 2022 2035 - Oct Sat<=30 2:00 0 -
|
||||
Rule Palestine 2023 only - Apr 29 2:00 1:00 S
|
||||
Rule Palestine 2024 only - Apr 13 2:00 1:00 S
|
||||
Rule Palestine 2025 only - Apr 5 2:00 1:00 S
|
||||
Rule Palestine 2026 2054 - Mar Sat<=30 2:00 1:00 S
|
||||
Rule Palestine 2036 only - Oct 18 2:00 0 -
|
||||
Rule Palestine 2037 only - Oct 10 2:00 0 -
|
||||
Rule Palestine 2038 only - Sep 25 2:00 0 -
|
||||
Rule Palestine 2039 only - Sep 17 2:00 0 -
|
||||
Rule Palestine 2039 only - Oct 22 2:00 1:00 S
|
||||
Rule Palestine 2039 2067 - Oct Sat<=30 2:00 0 -
|
||||
Rule Palestine 2040 only - Sep 1 2:00 0 -
|
||||
Rule Palestine 2040 only - Oct 13 2:00 1:00 S
|
||||
Rule Palestine 2041 only - Aug 24 2:00 0 -
|
||||
Rule Palestine 2041 only - Sep 28 2:00 1:00 S
|
||||
Rule Palestine 2042 only - Aug 16 2:00 0 -
|
||||
Rule Palestine 2042 only - Sep 20 2:00 1:00 S
|
||||
Rule Palestine 2043 only - Aug 1 2:00 0 -
|
||||
Rule Palestine 2043 only - Sep 12 2:00 1:00 S
|
||||
Rule Palestine 2044 only - Jul 23 2:00 0 -
|
||||
Rule Palestine 2044 only - Aug 27 2:00 1:00 S
|
||||
Rule Palestine 2045 only - Jul 15 2:00 0 -
|
||||
Rule Palestine 2045 only - Aug 19 2:00 1:00 S
|
||||
Rule Palestine 2046 only - Jun 30 2:00 0 -
|
||||
Rule Palestine 2046 only - Aug 11 2:00 1:00 S
|
||||
Rule Palestine 2047 only - Jun 22 2:00 0 -
|
||||
Rule Palestine 2047 only - Jul 27 2:00 1:00 S
|
||||
Rule Palestine 2048 only - Jun 6 2:00 0 -
|
||||
Rule Palestine 2048 only - Jul 18 2:00 1:00 S
|
||||
Rule Palestine 2049 only - May 29 2:00 0 -
|
||||
Rule Palestine 2049 only - Jul 3 2:00 1:00 S
|
||||
Rule Palestine 2050 only - May 21 2:00 0 -
|
||||
Rule Palestine 2050 only - Jun 25 2:00 1:00 S
|
||||
Rule Palestine 2051 only - May 6 2:00 0 -
|
||||
Rule Palestine 2051 only - Jun 17 2:00 1:00 S
|
||||
Rule Palestine 2052 only - Apr 27 2:00 0 -
|
||||
Rule Palestine 2052 only - Jun 1 2:00 1:00 S
|
||||
Rule Palestine 2053 only - Apr 12 2:00 0 -
|
||||
Rule Palestine 2053 only - May 24 2:00 1:00 S
|
||||
Rule Palestine 2054 only - Apr 4 2:00 0 -
|
||||
Rule Palestine 2054 only - May 16 2:00 1:00 S
|
||||
Rule Palestine 2055 only - May 1 2:00 1:00 S
|
||||
Rule Palestine 2056 only - Apr 22 2:00 1:00 S
|
||||
Rule Palestine 2057 only - Apr 7 2:00 1:00 S
|
||||
Rule Palestine 2058 max - Mar Sat<=30 2:00 1:00 S
|
||||
Rule Palestine 2068 only - Oct 20 2:00 0 -
|
||||
Rule Palestine 2069 only - Oct 12 2:00 0 -
|
||||
Rule Palestine 2070 only - Oct 4 2:00 0 -
|
||||
Rule Palestine 2071 only - Sep 19 2:00 0 -
|
||||
Rule Palestine 2072 only - Sep 10 2:00 0 -
|
||||
Rule Palestine 2072 only - Oct 15 2:00 1:00 S
|
||||
Rule Palestine 2073 only - Sep 2 2:00 0 -
|
||||
Rule Palestine 2073 only - Oct 7 2:00 1:00 S
|
||||
Rule Palestine 2074 only - Aug 18 2:00 0 -
|
||||
Rule Palestine 2074 only - Sep 29 2:00 1:00 S
|
||||
Rule Palestine 2075 only - Aug 10 2:00 0 -
|
||||
Rule Palestine 2075 only - Sep 14 2:00 1:00 S
|
||||
Rule Palestine 2075 max - Oct Sat<=30 2:00 0 -
|
||||
Rule Palestine 2076 only - Jul 25 2:00 0 -
|
||||
Rule Palestine 2076 only - Sep 5 2:00 1:00 S
|
||||
Rule Palestine 2077 only - Jul 17 2:00 0 -
|
||||
Rule Palestine 2077 only - Aug 28 2:00 1:00 S
|
||||
Rule Palestine 2078 only - Jul 9 2:00 0 -
|
||||
Rule Palestine 2078 only - Aug 13 2:00 1:00 S
|
||||
Rule Palestine 2079 only - Jun 24 2:00 0 -
|
||||
Rule Palestine 2079 only - Aug 5 2:00 1:00 S
|
||||
Rule Palestine 2080 only - Jun 15 2:00 0 -
|
||||
Rule Palestine 2080 only - Jul 20 2:00 1:00 S
|
||||
Rule Palestine 2081 only - Jun 7 2:00 0 -
|
||||
Rule Palestine 2081 only - Jul 12 2:00 1:00 S
|
||||
Rule Palestine 2082 only - May 23 2:00 0 -
|
||||
Rule Palestine 2082 only - Jul 4 2:00 1:00 S
|
||||
Rule Palestine 2083 only - May 15 2:00 0 -
|
||||
Rule Palestine 2083 only - Jun 19 2:00 1:00 S
|
||||
Rule Palestine 2084 only - Apr 29 2:00 0 -
|
||||
Rule Palestine 2084 only - Jun 10 2:00 1:00 S
|
||||
Rule Palestine 2085 only - Apr 21 2:00 0 -
|
||||
Rule Palestine 2085 only - Jun 2 2:00 1:00 S
|
||||
Rule Palestine 2086 only - Apr 13 2:00 0 -
|
||||
Rule Palestine 2086 only - May 18 2:00 1:00 S
|
||||
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone Asia/Gaza 2:17:52 - LMT 1900 Oct
|
||||
@@ -3655,7 +3803,7 @@ Zone Asia/Singapore 6:55:25 - LMT 1901 Jan 1
|
||||
# standard time is SLST.
|
||||
#
|
||||
# From Paul Eggert (2016-10-18):
|
||||
# "SLST" seems to be reasonably recent and rarely-used outside time
|
||||
# "SLST" seems to be reasonably recent and rarely used outside time
|
||||
# zone nerd sources. I searched Google News and found three uses of
|
||||
# it in the International Business Times of India in February and
|
||||
# March of this year when discussing cricket match times, but nothing
|
||||
|
||||
@@ -346,7 +346,7 @@ Zone Antarctica/Macquarie 0 - -00 1899 Nov
|
||||
|
||||
# From Steffen Thorsen (2013-01-10):
|
||||
# Fiji will end DST on 2014-01-19 02:00:
|
||||
# http://www.fiji.gov.fj/Media-Center/Press-Releases/DAYLIGHT-SAVINGS-TO-END-THIS-MONTH-%281%29.aspx
|
||||
# http://www.fiji.gov.fj/Media-Center/Press-Releases/DAYLIGHT-SAVINGS-TO-END-THIS-MONTH-(1).aspx
|
||||
|
||||
# From Ken Rylander (2014-10-20):
|
||||
# DST will start Nov. 2 this year.
|
||||
@@ -746,7 +746,7 @@ Zone Pacific/Pago_Pago 12:37:12 - LMT 1892 Jul 5
|
||||
#
|
||||
# Samoa's Daylight Saving Time Act 2009 is available here, but does not
|
||||
# contain any dates:
|
||||
# http://www.parliament.gov.ws/documents/acts/Daylight%20Saving%20Act%20%202009%20%28English%29%20-%20Final%207-7-091.pdf
|
||||
# http://www.parliament.gov.ws/documents/acts/Daylight%20Saving%20Act%20%202009%20(English)%20-%20Final%207-7-091.pdf
|
||||
|
||||
# From Laupue Raymond Hughes (2010-10-07):
|
||||
# Please see
|
||||
@@ -1831,7 +1831,7 @@ Zone Pacific/Efate 11:13:16 - LMT 1912 Jan 13 # Vila
|
||||
# period. It would probably be reasonable to assume Guam use GMT+9 during
|
||||
# that period of time like the surrounding area.
|
||||
|
||||
# From Paul Eggert (2018-11-18):
|
||||
# From Paul Eggert (2023-01-23):
|
||||
# Howse writes (p 153) "The Spaniards, on the other hand, reached the
|
||||
# Philippines and the Ladrones from America," and implies that the Ladrones
|
||||
# (now called the Marianas) kept American date for quite some time.
|
||||
@@ -1844,7 +1844,7 @@ Zone Pacific/Efate 11:13:16 - LMT 1912 Jan 13 # Vila
|
||||
# they did as that avoids the need for a separate zone due to our 1970 cutoff.
|
||||
#
|
||||
# US Public Law 106-564 (2000-12-23) made UT +10 the official standard time,
|
||||
# under the name "Chamorro Standard Time". There is no official abbreviation,
|
||||
# under the name "Chamorro standard time". There is no official abbreviation,
|
||||
# but Congressman Robert A. Underwood, author of the bill that became law,
|
||||
# wrote in a press release (2000-12-27) that he will seek the use of "ChST".
|
||||
|
||||
@@ -2222,24 +2222,18 @@ Zone Pacific/Efate 11:13:16 - LMT 1912 Jan 13 # Vila
|
||||
# an international standard, there are some places on the high seas where the
|
||||
# correct date is ambiguous.
|
||||
|
||||
# From Wikipedia <https://en.wikipedia.org/wiki/Time_zone> (2005-08-31):
|
||||
# Before 1920, all ships kept local apparent time on the high seas by setting
|
||||
# their clocks at night or at the morning sight so that, given the ship's
|
||||
# speed and direction, it would be 12 o'clock when the Sun crossed the ship's
|
||||
# meridian (12 o'clock = local apparent noon). During 1917, at the
|
||||
# Anglo-French Conference on Time-keeping at Sea, it was recommended that all
|
||||
# ships, both military and civilian, should adopt hourly standard time zones
|
||||
# on the high seas. Whenever a ship was within the territorial waters of any
|
||||
# nation it would use that nation's standard time. The captain was permitted
|
||||
# to change his ship's clocks at a time of his choice following his ship's
|
||||
# entry into another zone time - he often chose midnight. These zones were
|
||||
# adopted by all major fleets between 1920 and 1925 but not by many
|
||||
# independent merchant ships until World War II.
|
||||
# From Wikipedia <https://en.wikipedia.org/wiki/Nautical_time> (2023-01-23):
|
||||
# The nautical time zone system is analogous to the terrestrial time zone
|
||||
# system for use on high seas. Under the system time changes are required for
|
||||
# changes of longitude in one-hour steps. The one-hour step corresponds to a
|
||||
# time zone width of 15° longitude. The 15° gore that is offset from GMT or
|
||||
# UT1 (not UTC) by twelve hours is bisected by the nautical date line into two
|
||||
# 7°30' gores that differ from GMT by ±12 hours. A nautical date line is
|
||||
# implied but not explicitly drawn on time zone maps. It follows the 180th
|
||||
# meridian except where it is interrupted by territorial waters adjacent to
|
||||
# land, forming gaps: it is a pole-to-pole dashed line.
|
||||
|
||||
# From Paul Eggert, using references suggested by Oscar van Vlijmen
|
||||
# (2005-03-20):
|
||||
#
|
||||
# The American Practical Navigator (2002)
|
||||
# http://pollux.nss.nima.mil/pubs/pubs_j_apn_sections.html?rid=187
|
||||
# talks only about the 180-degree meridian with respect to ships in
|
||||
# international waters; it ignores the international date line.
|
||||
# From Paul Eggert (2023-01-23):
|
||||
# The American Practical Navigator <https://msi.nga.mil/Publications/APN>,
|
||||
# 2019 edition, merely says that the International Date Line
|
||||
# "coincides with the 180th meridian over most of its length."
|
||||
|
||||
@@ -297,6 +297,7 @@ Link America/Argentina/Cordoba America/Rosario
|
||||
Link America/Tijuana America/Santa_Isabel
|
||||
Link America/Denver America/Shiprock
|
||||
Link America/Toronto America/Thunder_Bay
|
||||
Link America/Edmonton America/Yellowknife
|
||||
Link Pacific/Auckland Antarctica/South_Pole
|
||||
Link Asia/Shanghai Asia/Chongqing
|
||||
Link Asia/Shanghai Asia/Harbin
|
||||
|
||||
@@ -540,9 +540,7 @@ Zone Europe/London -0:01:15 - LMT 1847 Dec 1
|
||||
# other form with a traditional approximation for Irish timestamps
|
||||
# after 1971-10-31 02:00 UTC; although this approximation has tm_isdst
|
||||
# flags that are reversed, its UTC offsets are correct and this often
|
||||
# suffices. This source file currently uses only nonnegative SAVE
|
||||
# values, but this is intended to change and downstream code should
|
||||
# not rely on it.
|
||||
# suffices....
|
||||
#
|
||||
# The following is like GB-Eire and EU, except with standard time in
|
||||
# summer and negative daylight saving time in winter. It is for when
|
||||
@@ -1136,19 +1134,18 @@ Zone Atlantic/Faroe -0:27:04 - LMT 1908 Jan 11 # Tórshavn
|
||||
#
|
||||
# From Jürgen Appel (2022-11-25):
|
||||
# https://ina.gl/samlinger/oversigt-over-samlinger/samling/dagsordener/dagsorden.aspx?lang=da&day=24-11-2022
|
||||
# If I understand this correctly, from the next planned switch to
|
||||
# summer time, Greenland will permanently stay at that time, i.e. no
|
||||
# switch back to winter time in 2023 will occur.
|
||||
#
|
||||
# From Paul Eggert (2022-11-28):
|
||||
# The official document in Danish
|
||||
# https://naalakkersuisut.gl/-/media/naalakkersuisut/filer/kundgoerelser/2022/11/2511/31_da_inatsisartutlov-om-tidens-bestemmelse.pdf?la=da&hash=A33597D8A38CC7038465241119EF34F3
|
||||
# says standard time for Greenland is -02, that Naalakkersuisut can lay down
|
||||
# rules for DST and can require some areas to use a different time zone,
|
||||
# and that this all takes effect 2023-03-25 22:00. The abovementioned
|
||||
# "bekymringer" URL says the intent is no transition March 25, that
|
||||
# Greenland will not go back to winter time in fall 2023, and that
|
||||
# only America/Nuuk is affected (though further changes may occur).
|
||||
# From Thomas M. Steenholdt (2022-12-02):
|
||||
# - The bill to move America/Nuuk from UTC-03 to UTC-02 passed.
|
||||
# - The bill to stop observing DST did not (Greenland will stop observing DST
|
||||
# when EU does).
|
||||
# Details on the implementation are here (section 6):
|
||||
# https://ina.gl/dvd/EM%202022/pdf/media/2553529/pkt17_em2022_tidens_bestemmelse_bem_da.pdf
|
||||
# This is how the change will be implemented:
|
||||
# 1. The shift *to* DST in 2023 happens as normal.
|
||||
# 2. The shift *from* DST in 2023 happens as normal, but coincides with the
|
||||
# shift to UTC-02 normaltime (people will not change their clocks here).
|
||||
# 3. After this, DST is still observed, but as -02/-01 instead of -03/-02.
|
||||
|
||||
# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
|
||||
Rule Thule 1991 1992 - Mar lastSun 2:00 1:00 D
|
||||
@@ -1172,8 +1169,8 @@ Zone America/Scoresbysund -1:27:52 - LMT 1916 Jul 28 # Ittoqqortoormiit
|
||||
-1:00 EU -01/+00
|
||||
Zone America/Nuuk -3:26:56 - LMT 1916 Jul 28 # Godthåb
|
||||
-3:00 - -03 1980 Apr 6 2:00
|
||||
-3:00 EU -03/-02 2023 Mar 25 22:00
|
||||
-2:00 - -02
|
||||
-3:00 EU -03/-02 2023 Oct 29 1:00u
|
||||
-2:00 EU -02/-01
|
||||
Zone America/Thule -4:35:08 - LMT 1916 Jul 28 # Pituffik
|
||||
-4:00 Thule A%sT
|
||||
|
||||
@@ -1509,9 +1506,9 @@ Zone Europe/Paris 0:09:21 - LMT 1891 Mar 16
|
||||
Rule Germany 1946 only - Apr 14 2:00s 1:00 S
|
||||
Rule Germany 1946 only - Oct 7 2:00s 0 -
|
||||
Rule Germany 1947 1949 - Oct Sun>=1 2:00s 0 -
|
||||
# http://www.ptb.de/de/org/4/44/441/salt.htm says the following transition
|
||||
# occurred at 3:00 MEZ, not the 2:00 MEZ given in Shanks & Pottenger.
|
||||
# Go with the PTB.
|
||||
# https://www.ptb.de/cms/en/ptb/fachabteilungen/abt4/fb-44/ag-441/realisation-of-legal-time-in-germany/dst-and-midsummer-dst-in-germany-until-1979.html
|
||||
# says the following transition occurred at 3:00 MEZ, not the 2:00 MEZ
|
||||
# given in Shanks & Pottenger. Go with the PTB.
|
||||
Rule Germany 1947 only - Apr 6 3:00s 1:00 S
|
||||
Rule Germany 1947 only - May 11 2:00s 2:00 M
|
||||
Rule Germany 1947 only - Jun 29 3:00 1:00 S
|
||||
@@ -2272,7 +2269,7 @@ Zone Europe/Bucharest 1:44:24 - LMT 1891 Oct
|
||||
# the State Duma has approved ... the draft bill on returning to
|
||||
# winter time standard and return Russia 11 time zones. The new
|
||||
# regulations will come into effect on October 26, 2014 at 02:00 ...
|
||||
# http://asozd2.duma.gov.ru/main.nsf/%28Spravka%29?OpenAgent&RN=431985-6&02
|
||||
# http://asozd2.duma.gov.ru/main.nsf/(Spravka)?OpenAgent&RN=431985-6&02
|
||||
# Here is a link where we put together table (based on approved Bill N
|
||||
# 431985-6) with proposed 11 Russian time zones and corresponding
|
||||
# areas/cities/administrative centers in the Russian Federation (in English):
|
||||
@@ -2682,13 +2679,13 @@ Zone Europe/Volgograd 2:57:40 - LMT 1920 Jan 3
|
||||
3:00 - +03 1930 Jun 21
|
||||
4:00 - +04 1961 Nov 11
|
||||
4:00 Russia +04/+05 1988 Mar 27 2:00s
|
||||
3:00 Russia +03/+04 1991 Mar 31 2:00s
|
||||
3:00 Russia MSK/MSD 1991 Mar 31 2:00s
|
||||
4:00 - +04 1992 Mar 29 2:00s
|
||||
3:00 Russia +03/+04 2011 Mar 27 2:00s
|
||||
4:00 - +04 2014 Oct 26 2:00s
|
||||
3:00 - +03 2018 Oct 28 2:00s
|
||||
3:00 Russia MSK/MSD 2011 Mar 27 2:00s
|
||||
4:00 - MSK 2014 Oct 26 2:00s
|
||||
3:00 - MSK 2018 Oct 28 2:00s
|
||||
4:00 - +04 2020 Dec 27 2:00s
|
||||
3:00 - +03
|
||||
3:00 - MSK
|
||||
|
||||
# From Paul Eggert (2016-11-11):
|
||||
# Europe/Saratov covers:
|
||||
@@ -2719,11 +2716,11 @@ Zone Europe/Saratov 3:04:18 - LMT 1919 Jul 1 0:00u
|
||||
Zone Europe/Kirov 3:18:48 - LMT 1919 Jul 1 0:00u
|
||||
3:00 - +03 1930 Jun 21
|
||||
4:00 Russia +04/+05 1989 Mar 26 2:00s
|
||||
3:00 Russia +03/+04 1991 Mar 31 2:00s
|
||||
3:00 Russia MSK/MSD 1991 Mar 31 2:00s
|
||||
4:00 - +04 1992 Mar 29 2:00s
|
||||
3:00 Russia +03/+04 2011 Mar 27 2:00s
|
||||
4:00 - +04 2014 Oct 26 2:00s
|
||||
3:00 - +03
|
||||
3:00 Russia MSK/MSD 2011 Mar 27 2:00s
|
||||
4:00 - MSK 2014 Oct 26 2:00s
|
||||
3:00 - MSK
|
||||
|
||||
# From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2001-08-25):
|
||||
# Europe/Samara covers...
|
||||
|
||||
@@ -261,7 +261,7 @@ SY Syria
|
||||
SZ Eswatini (Swaziland)
|
||||
TC Turks & Caicos Is
|
||||
TD Chad
|
||||
TF French Southern Territories
|
||||
TF French S. Terr.
|
||||
TG Togo
|
||||
TH Thailand
|
||||
TJ Tajikistan
|
||||
|
||||
@@ -95,11 +95,11 @@ Leap 2016 Dec 31 23:59:60 + S
|
||||
# Any additional leap seconds will come after this.
|
||||
# This Expires line is commented out for now,
|
||||
# so that pre-2020a zic implementations do not reject this file.
|
||||
#Expires 2023 Jun 28 00:00:00
|
||||
#Expires 2023 Dec 28 00:00:00
|
||||
|
||||
# POSIX timestamps for the data in this file:
|
||||
#updated 1467936000 (2016-07-08 00:00:00 UTC)
|
||||
#expires 1687910400 (2023-06-28 00:00:00 UTC)
|
||||
#expires 1703721600 (2023-12-28 00:00:00 UTC)
|
||||
|
||||
# Updated through IERS Bulletin C64
|
||||
# File expires on: 28 June 2023
|
||||
# Updated through IERS Bulletin C65
|
||||
# File expires on: 28 December 2023
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
#
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@@ -299,9 +298,10 @@ Zone PST8PDT -8:00 US P%sT
|
||||
# -10 Standard Alaska Time (AST) Alaska-Hawaii standard time (AHST)
|
||||
# -11 (unofficial) Nome (NST) Bering standard time (BST)
|
||||
#
|
||||
# From Paul Eggert (2000-01-08), following a heads-up from Rives McDow:
|
||||
# Public law 106-564 (2000-12-23) introduced ... "Chamorro Standard Time"
|
||||
# From Paul Eggert (2023-01-23), from a 2001-01-08 heads-up from Rives McDow:
|
||||
# Public law 106-564 (2000-12-23) introduced "Chamorro standard time"
|
||||
# for time in Guam and the Northern Marianas. See the file "australasia".
|
||||
# Also see 15 U.S.C. §263 <https://www.law.cornell.edu/uscode/text/15/263>.
|
||||
#
|
||||
# From Paul Eggert (2015-04-17):
|
||||
# HST and HDT are standardized abbreviations for Hawaii-Aleutian
|
||||
@@ -618,7 +618,7 @@ Zone America/Los_Angeles -7:52:58 - LMT 1883 Nov 18 20:00u
|
||||
# local times of other Alaskan locations so that they change simultaneously.
|
||||
|
||||
# From Paul Eggert (2014-07-18):
|
||||
# One opinion of the early-1980s turmoil in Alaska over time zones and
|
||||
# One opinion of the early 1980s turmoil in Alaska over time zones and
|
||||
# daylight saving time appeared as graffiti on a Juneau airport wall:
|
||||
# "Welcome to Juneau. Please turn your watch back to the 19th century."
|
||||
# See: Turner W. Alaska's four time zones now two. NY Times 1983-11-01.
|
||||
@@ -690,6 +690,10 @@ Zone America/Los_Angeles -7:52:58 - LMT 1883 Nov 18 20:00u
|
||||
# So they won't be waiting for Alaska to join them on 2019-03-10, but will
|
||||
# rather change their clocks twice in seven weeks.
|
||||
|
||||
# From Paul Eggert (2023-01-23):
|
||||
# America/Adak is for the Aleutian Islands that are part of Alaska
|
||||
# and are west of 169.5° W.
|
||||
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone America/Juneau 15:02:19 - LMT 1867 Oct 19 15:33:32
|
||||
-8:57:41 - LMT 1900 Aug 20 12:00
|
||||
@@ -2148,10 +2152,6 @@ Zone America/Fort_Nelson -8:10:47 - LMT 1884
|
||||
# Nunavut ... moved ... to incorporate the whole territory into one time zone.
|
||||
# Nunavut moves to single time zone Oct. 31
|
||||
# http://www.nunatsiaq.com/nunavut/nvt90903_13.html
|
||||
#
|
||||
# From Antoine Leca (1999-09-06):
|
||||
# We then need to create a new timezone for the Kitikmeot region of Nunavut
|
||||
# to differentiate it from the Yellowknife region.
|
||||
|
||||
# From Paul Eggert (1999-09-20):
|
||||
# Basic Facts: The New Territory
|
||||
@@ -2345,9 +2345,6 @@ Zone America/Cambridge_Bay 0 - -00 1920 # trading post est.?
|
||||
-5:00 - EST 2000 Nov 5 0:00
|
||||
-6:00 - CST 2001 Apr 1 3:00
|
||||
-7:00 Canada M%sT
|
||||
Zone America/Yellowknife 0 - -00 1935 # Yellowknife founded?
|
||||
-7:00 NT_YK M%sT 1980
|
||||
-7:00 Canada M%sT
|
||||
Zone America/Inuvik 0 - -00 1953 # Inuvik founded
|
||||
-8:00 NT_YK P%sT 1979 Apr lastSun 2:00
|
||||
-7:00 NT_YK M%sT 1980
|
||||
@@ -2584,7 +2581,7 @@ Zone America/Dawson -9:17:40 - LMT 1900 Aug 20
|
||||
# and in addition changes all of Chihuahua to -06 with no DST.
|
||||
|
||||
# From Heitor David Pinto (2022-11-28):
|
||||
# Now the northern municipalities want to have the same time zone as the
|
||||
# Now the northern [municipios] want to have the same time zone as the
|
||||
# respective neighboring cities in the US, for example Juárez in UTC-7 with
|
||||
# DST, matching El Paso, and Ojinaga in UTC-6 with DST, matching Presidio....
|
||||
# the president authorized the publication of the decree for November 29,
|
||||
@@ -2621,7 +2618,7 @@ Zone America/Merida -5:58:28 - LMT 1922 Jan 1 6:00u
|
||||
-5:00 - EST 1982 Dec 2
|
||||
-6:00 Mexico C%sT
|
||||
# Coahuila, Nuevo León, Tamaulipas (near US border)
|
||||
# This includes the following municipalities:
|
||||
# This includes the following municipios:
|
||||
# in Coahuila: Acuña, Allende, Guerrero, Hidalgo, Jiménez, Morelos, Nava,
|
||||
# Ocampo, Piedras Negras, Villa Unión, Zaragoza
|
||||
# in Nuevo León: Anáhuac
|
||||
@@ -2647,8 +2644,8 @@ Zone America/Mexico_City -6:36:36 - LMT 1922 Jan 1 7:00u
|
||||
-6:00 - CST 2002 Feb 20
|
||||
-6:00 Mexico C%sT
|
||||
# Chihuahua (near US border - western side)
|
||||
# This includes the municipalities of Janos, Ascensión, Juárez, Guadalupe,
|
||||
# and Práxedis G Guerrero.
|
||||
# This includes the municipios of Janos, Ascensión, Juárez, Guadalupe, and
|
||||
# Práxedis G Guerrero.
|
||||
# http://gaceta.diputados.gob.mx/PDF/65/2a022/nov/20221124-VII.pdf
|
||||
Zone America/Ciudad_Juarez -7:05:56 - LMT 1922 Jan 1 7:00u
|
||||
-7:00 - MST 1927 Jun 10 23:00
|
||||
@@ -2662,7 +2659,8 @@ Zone America/Ciudad_Juarez -7:05:56 - LMT 1922 Jan 1 7:00u
|
||||
-6:00 - CST 2022 Nov 30 0:00
|
||||
-7:00 US M%sT
|
||||
# Chihuahua (near US border - eastern side)
|
||||
# The municipalities of Coyame del Sotol, Ojinaga, and Manuel Benavides.
|
||||
# This includes the municipios of Coyame del Sotol, Ojinaga, and Manuel
|
||||
# Benavides.
|
||||
# http://gaceta.diputados.gob.mx/PDF/65/2a022/nov/20221124-VII.pdf
|
||||
Zone America/Ojinaga -6:57:40 - LMT 1922 Jan 1 7:00u
|
||||
-7:00 - MST 1927 Jun 10 23:00
|
||||
@@ -3083,7 +3081,7 @@ Zone America/Costa_Rica -5:36:13 - LMT 1890 # San José
|
||||
#
|
||||
# He supplied these references:
|
||||
#
|
||||
# http://www.prensalatina.com.mx/article.asp?ID=%7B4CC32C1B-A9F7-42FB-8A07-8631AFC923AF%7D&language=ES
|
||||
# http://www.prensalatina.com.mx/article.asp?ID={4CC32C1B-A9F7-42FB-8A07-8631AFC923AF}&language=ES
|
||||
# http://actualidad.terra.es/sociedad/articulo/cuba_llama_ahorrar_energia_cambio_1957044.htm
|
||||
#
|
||||
# From Alex Krivenyshev (2007-10-25):
|
||||
|
||||
@@ -231,7 +231,7 @@ Rule Arg 2008 only - Oct Sun>=15 0:00 1:00 -
|
||||
# Hora de verano para la República Argentina
|
||||
# http://buenasiembra.com.ar/esoterismo/astrologia/hora-de-verano-de-la-republica-argentina-27.html
|
||||
# says that standard time in Argentina from 1894-10-31
|
||||
# to 1920-05-01 was -4:16:48.25. Go with this more-precise value
|
||||
# to 1920-05-01 was -4:16:48.25. Go with this more precise value
|
||||
# over Shanks & Pottenger. It is upward compatible with Milne, who
|
||||
# says Córdoba time was -4:16:48.2.
|
||||
|
||||
|
||||
@@ -144,9 +144,8 @@ CA +744144-0944945 America/Resolute Central - NU (Resolute)
|
||||
CA +624900-0920459 America/Rankin_Inlet Central - NU (central)
|
||||
CA +5024-10439 America/Regina CST - SK (most areas)
|
||||
CA +5017-10750 America/Swift_Current CST - SK (midwest)
|
||||
CA +5333-11328 America/Edmonton Mountain - AB; BC (E); SK (W)
|
||||
CA +5333-11328 America/Edmonton Mountain - AB; BC (E); NT (E); SK (W)
|
||||
CA +690650-1050310 America/Cambridge_Bay Mountain - NU (west)
|
||||
CA +6227-11421 America/Yellowknife Mountain - NT (central)
|
||||
CA +682059-1334300 America/Inuvik Mountain - NT (west)
|
||||
CA +4906-11631 America/Creston MST - BC (Creston)
|
||||
CA +5546-12014 America/Dawson_Creek MST - BC (Dawson Cr, Ft St John)
|
||||
@@ -162,7 +161,7 @@ CG -0416+01517 Africa/Brazzaville
|
||||
CH +4723+00832 Europe/Zurich
|
||||
CI +0519-00402 Africa/Abidjan
|
||||
CK -2114-15946 Pacific/Rarotonga
|
||||
CL -3327-07040 America/Santiago Chile (most areas)
|
||||
CL -3327-07040 America/Santiago most of Chile
|
||||
CL -5309-07055 America/Punta_Arenas Region of Magallanes
|
||||
CL -2709-10926 Pacific/Easter Easter Island
|
||||
CM +0403+00942 Africa/Douala
|
||||
@@ -174,10 +173,10 @@ CU +2308-08222 America/Havana
|
||||
CV +1455-02331 Atlantic/Cape_Verde
|
||||
CW +1211-06900 America/Curacao
|
||||
CX -1025+10543 Indian/Christmas
|
||||
CY +3510+03322 Asia/Nicosia Cyprus (most areas)
|
||||
CY +3510+03322 Asia/Nicosia most of Cyprus
|
||||
CY +3507+03357 Asia/Famagusta Northern Cyprus
|
||||
CZ +5005+01426 Europe/Prague
|
||||
DE +5230+01322 Europe/Berlin Germany (most areas)
|
||||
DE +5230+01322 Europe/Berlin most of Germany
|
||||
DE +4742+00841 Europe/Busingen Busingen
|
||||
DJ +1136+04309 Africa/Djibouti
|
||||
DK +5540+01235 Europe/Copenhagen
|
||||
@@ -210,7 +209,7 @@ GF +0456-05220 America/Cayenne
|
||||
GG +492717-0023210 Europe/Guernsey
|
||||
GH +0533-00013 Africa/Accra
|
||||
GI +3608-00521 Europe/Gibraltar
|
||||
GL +6411-05144 America/Nuuk Greenland (most areas)
|
||||
GL +6411-05144 America/Nuuk most of Greenland
|
||||
GL +7646-01840 America/Danmarkshavn National Park (east coast)
|
||||
GL +7029-02158 America/Scoresbysund Scoresbysund/Ittoqqortoormiit
|
||||
GL +7634-06847 America/Thule Thule/Pituffik
|
||||
@@ -258,7 +257,7 @@ KP +3901+12545 Asia/Pyongyang
|
||||
KR +3733+12658 Asia/Seoul
|
||||
KW +2920+04759 Asia/Kuwait
|
||||
KY +1918-08123 America/Cayman
|
||||
KZ +4315+07657 Asia/Almaty Kazakhstan (most areas)
|
||||
KZ +4315+07657 Asia/Almaty most of Kazakhstan
|
||||
KZ +4448+06528 Asia/Qyzylorda Qyzylorda/Kyzylorda/Kzyl-Orda
|
||||
KZ +5312+06337 Asia/Qostanay Qostanay/Kostanay/Kustanay
|
||||
KZ +5017+05710 Asia/Aqtobe Aqtobe/Aktobe
|
||||
@@ -282,12 +281,12 @@ MD +4700+02850 Europe/Chisinau
|
||||
ME +4226+01916 Europe/Podgorica
|
||||
MF +1804-06305 America/Marigot
|
||||
MG -1855+04731 Indian/Antananarivo
|
||||
MH +0709+17112 Pacific/Majuro Marshall Islands (most areas)
|
||||
MH +0709+17112 Pacific/Majuro most of Marshall Islands
|
||||
MH +0905+16720 Pacific/Kwajalein Kwajalein
|
||||
MK +4159+02126 Europe/Skopje
|
||||
ML +1239-00800 Africa/Bamako
|
||||
MM +1647+09610 Asia/Yangon
|
||||
MN +4755+10653 Asia/Ulaanbaatar Mongolia (most areas)
|
||||
MN +4755+10653 Asia/Ulaanbaatar most of Mongolia
|
||||
MN +4801+09139 Asia/Hovd Bayan-Olgiy, Govi-Altai, Hovd, Uvs, Zavkhan
|
||||
MN +4804+11430 Asia/Choibalsan Dornod, Sukhbaatar
|
||||
MO +221150+1133230 Asia/Macau
|
||||
@@ -325,7 +324,7 @@ NO +5955+01045 Europe/Oslo
|
||||
NP +2743+08519 Asia/Kathmandu
|
||||
NR -0031+16655 Pacific/Nauru
|
||||
NU -1901-16955 Pacific/Niue
|
||||
NZ -3652+17446 Pacific/Auckland New Zealand (most areas)
|
||||
NZ -3652+17446 Pacific/Auckland most of New Zealand
|
||||
NZ -4357-17633 Pacific/Chatham Chatham Islands
|
||||
OM +2336+05835 Asia/Muscat
|
||||
PA +0858-07932 America/Panama
|
||||
@@ -333,7 +332,7 @@ PE -1203-07703 America/Lima
|
||||
PF -1732-14934 Pacific/Tahiti Society Islands
|
||||
PF -0900-13930 Pacific/Marquesas Marquesas Islands
|
||||
PF -2308-13457 Pacific/Gambier Gambier Islands
|
||||
PG -0930+14710 Pacific/Port_Moresby Papua New Guinea (most areas)
|
||||
PG -0930+14710 Pacific/Port_Moresby most of Papua New Guinea
|
||||
PG -0613+15534 Pacific/Bougainville Bougainville
|
||||
PH +1435+12100 Asia/Manila
|
||||
PK +2452+06703 Asia/Karachi
|
||||
@@ -379,7 +378,7 @@ RU +4310+13156 Asia/Vladivostok MSK+07 - Amur River
|
||||
RU +643337+1431336 Asia/Ust-Nera MSK+07 - Oymyakonsky
|
||||
RU +5934+15048 Asia/Magadan MSK+08 - Magadan
|
||||
RU +4658+14242 Asia/Sakhalin MSK+08 - Sakhalin Island
|
||||
RU +6728+15343 Asia/Srednekolymsk MSK+08 - Sakha (E); North Kuril Is
|
||||
RU +6728+15343 Asia/Srednekolymsk MSK+08 - Sakha (E); N Kuril Is
|
||||
RU +5301+15839 Asia/Kamchatka MSK+09 - Kamchatka
|
||||
RU +6445+17729 Asia/Anadyr MSK+09 - Bering Sea
|
||||
RW -0157+03004 Africa/Kigali
|
||||
@@ -420,7 +419,7 @@ TT +1039-06131 America/Port_of_Spain
|
||||
TV -0831+17913 Pacific/Funafuti
|
||||
TW +2503+12130 Asia/Taipei
|
||||
TZ -0648+03917 Africa/Dar_es_Salaam
|
||||
UA +5026+03031 Europe/Kyiv Ukraine (most areas)
|
||||
UA +5026+03031 Europe/Kyiv most of Ukraine
|
||||
UG +0019+03225 Africa/Kampala
|
||||
UM +2813-17722 Pacific/Midway Midway Islands
|
||||
UM +1917+16637 Pacific/Wake Wake Island
|
||||
@@ -443,7 +442,7 @@ US +465042-1012439 America/North_Dakota/New_Salem Central - ND (Morton rural)
|
||||
US +471551-1014640 America/North_Dakota/Beulah Central - ND (Mercer)
|
||||
US +394421-1045903 America/Denver Mountain (most areas)
|
||||
US +433649-1161209 America/Boise Mountain - ID (south); OR (east)
|
||||
US +332654-1120424 America/Phoenix MST - Arizona (except Navajo)
|
||||
US +332654-1120424 America/Phoenix MST - AZ (except Navajo)
|
||||
US +340308-1181434 America/Los_Angeles Pacific
|
||||
US +611305-1495401 America/Anchorage Alaska (most areas)
|
||||
US +581807-1342511 America/Juneau Alaska - Juneau area
|
||||
@@ -451,7 +450,7 @@ US +571035-1351807 America/Sitka Alaska - Sitka area
|
||||
US +550737-1313435 America/Metlakatla Alaska - Annette Island
|
||||
US +593249-1394338 America/Yakutat Alaska - Yakutat
|
||||
US +643004-1652423 America/Nome Alaska (west)
|
||||
US +515248-1763929 America/Adak Aleutian Islands
|
||||
US +515248-1763929 America/Adak Alaska - western Aleutians
|
||||
US +211825-1575130 Pacific/Honolulu Hawaii
|
||||
UY -345433-0561245 America/Montevideo
|
||||
UZ +3940+06648 Asia/Samarkand Uzbekistan (west)
|
||||
|
||||
@@ -87,8 +87,17 @@ endif
|
||||
# Define external dependencies
|
||||
|
||||
# Latest that could be made to work.
|
||||
GCC_VER := 10.3.0
|
||||
ifeq ($(GCC_VER), 10.3.0)
|
||||
GCC_VER := 11.2.0
|
||||
ifeq ($(GCC_VER), 11.2.0)
|
||||
gcc_ver := gcc-11.2.0
|
||||
binutils_ver := binutils-2.37
|
||||
ccache_ver := ccache-3.7.12
|
||||
mpfr_ver := mpfr-4.1.0
|
||||
gmp_ver := gmp-6.2.1
|
||||
mpc_ver := mpc-1.2.1
|
||||
gdb_ver := gdb-11.1
|
||||
REQUIRED_MIN_MAKE_MAJOR_VERSION := 4
|
||||
else ifeq ($(GCC_VER), 10.3.0)
|
||||
gcc_ver := gcc-10.3.0
|
||||
binutils_ver := binutils-2.36.1
|
||||
ccache_ver := ccache-3.7.11
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2016, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2016, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@@ -49,7 +49,7 @@ $(eval $(call SetupJdkLibrary, BUILD_GTEST_LIBGTEST, \
|
||||
$(GTEST_FRAMEWORK_SRC)/googletest/src \
|
||||
$(GTEST_FRAMEWORK_SRC)/googlemock/src, \
|
||||
INCLUDE_FILES := gtest-all.cc gmock-all.cc, \
|
||||
DISABLED_WARNINGS_gcc := undef unused-result format-nonliteral, \
|
||||
DISABLED_WARNINGS_gcc := undef unused-result format-nonliteral maybe-uninitialized, \
|
||||
DISABLED_WARNINGS_clang := undef unused-result format-nonliteral, \
|
||||
CFLAGS := $(JVM_CFLAGS) \
|
||||
-I$(GTEST_FRAMEWORK_SRC)/googletest \
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2016, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2016, 2023, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@@ -41,10 +41,22 @@ ifeq ($(call isTargetOs, windows), true)
|
||||
$(foreach v, $(JVM_VARIANTS), \
|
||||
$(eval $(call SetupCopyFiles, COPY_GTEST_MSVCR_$v, \
|
||||
DEST := $(TEST_IMAGE_DIR)/hotspot/gtest/$v, \
|
||||
FILES := $(MSVCR_DLL) $(VCRUNTIME_1_DLL) $(MSVCP_DLL), \
|
||||
FILES := $(MSVCR_DLL), \
|
||||
FLATTEN := true, \
|
||||
)) \
|
||||
$(eval TARGETS += $$(COPY_GTEST_MSVCR_$v)) \
|
||||
$(eval $(call SetupCopyFiles, COPY_GTEST_VCRUNTIME_1_$v, \
|
||||
DEST := $(TEST_IMAGE_DIR)/hotspot/gtest/$v, \
|
||||
FILES := $(VCRUNTIME_1_DLL), \
|
||||
FLATTEN := true, \
|
||||
)) \
|
||||
$(eval TARGETS += $$(COPY_GTEST_VCRUNTIME_1_$v)) \
|
||||
$(eval $(call SetupCopyFiles, COPY_GTEST_MSVCP_$v, \
|
||||
DEST := $(TEST_IMAGE_DIR)/hotspot/gtest/$v, \
|
||||
FILES := $(MSVCP_DLL), \
|
||||
FLATTEN := true, \
|
||||
)) \
|
||||
$(eval TARGETS += $$(COPY_GTEST_MSVCP_$v)) \
|
||||
$(if $(call equals, $(COPY_DEBUG_SYMBOLS), true), \
|
||||
$(eval $(call SetupCopyFiles, COPY_GTEST_PDB_$v, \
|
||||
SRC := $(HOTSPOT_OUTPUTDIR)/variant-$v/libjvm/gtest, \
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@@ -50,18 +50,19 @@ public class SPI {
|
||||
out.println(line);
|
||||
} else {
|
||||
charsets.values()
|
||||
.stream()
|
||||
.filter(cs -> cs.pkgName.equals("sun.nio.cs.ext") &&
|
||||
!cs.isInternal &&
|
||||
(cs.os == null || cs.os.equals(os)))
|
||||
.forEach( cs -> {
|
||||
out.printf(" charset(\"%s\", \"%s\",%n", cs.csName, cs.clzName);
|
||||
out.printf(" new String[] {%n");
|
||||
for (String alias : cs.aliases) {
|
||||
out.printf(" \"%s\",%n", alias);
|
||||
}
|
||||
out.printf(" });%n%n");
|
||||
});
|
||||
.stream()
|
||||
.filter(cs -> cs.pkgName.equals("sun.nio.cs.ext") &&
|
||||
!cs.isInternal &&
|
||||
(cs.os == null || cs.os.equals(os)))
|
||||
.forEach( cs -> {
|
||||
out.printf(" charset(\"%s\", \"%s\",%n", cs.csName, cs.clzName);
|
||||
out.printf(" new String[] {%n");
|
||||
for (String alias : cs.aliases) {
|
||||
out.printf(" \"%s\",%n",
|
||||
alias);
|
||||
}
|
||||
out.printf(" });%n%n");
|
||||
});
|
||||
}
|
||||
}
|
||||
} else if (type.startsWith("stdcs")) { // StandardCharsets.java
|
||||
@@ -93,8 +94,15 @@ public class SPI {
|
||||
.filter(cs -> cs.pkgName.equals("sun.nio.cs"))
|
||||
.forEach( cs -> {
|
||||
if (cs.aliases == null || cs.aliases.length == 0) {
|
||||
out.printf(" static String[] aliases_%s() { return null; }%n%n",
|
||||
cs.clzName);
|
||||
if (cs.csName.equals("GB18030")) {
|
||||
out.printf(" static String[] aliases_GB18030() { return new String[] {%n");
|
||||
out.printf(" GB18030.IS_2000 ? \"gb18030-2000\" : \"gb18030-2022\"%n");
|
||||
out.printf(" };%n");
|
||||
out.printf(" }%n%n");
|
||||
} else {
|
||||
out.printf(" static String[] aliases_%s() { return null; }%n%n",
|
||||
cs.clzName);
|
||||
}
|
||||
} else {
|
||||
boolean methodEnd = true;
|
||||
// non-final for SJIS and MS932 to support sun.nio.cs.map
|
||||
|
||||
@@ -197,9 +197,7 @@ class Bundle {
|
||||
// parentsMap contains resources from id's parents.
|
||||
Map<String, Object> parentsMap = new HashMap<>();
|
||||
for (int i = cldrBundles.length - 1; i > index; i--) {
|
||||
if (!("no".equals(cldrBundles[i]) || cldrBundles[i].startsWith("no_"))) {
|
||||
parentsMap.putAll(CLDRConverter.getCLDRBundle(cldrBundles[i]));
|
||||
}
|
||||
parentsMap.putAll(CLDRConverter.getCLDRBundle(cldrBundles[i]));
|
||||
}
|
||||
// Duplicate myMap as parentsMap for "root" so that the
|
||||
// fallback works. This is a hack, though.
|
||||
|
||||
@@ -49,6 +49,7 @@ $(eval $(call SetupNativeCompilation, BUILD_LIBFDLIBM, \
|
||||
CFLAGS_windows_debug := -DLOGGING, \
|
||||
CFLAGS_aix := -qfloat=nomaf, \
|
||||
DISABLED_WARNINGS_gcc := sign-compare misleading-indentation array-bounds, \
|
||||
DISABLED_WARNINGS_gcc_k_rem_pio2.c := maybe-uninitialized, \
|
||||
DISABLED_WARNINGS_clang := sign-compare misleading-indentation, \
|
||||
DISABLED_WARNINGS_microsoft := 4146 4244 4018, \
|
||||
ARFLAGS := $(ARFLAGS), \
|
||||
|
||||
@@ -481,7 +481,7 @@ else
|
||||
$(BUILD_LIBFREETYPE_CFLAGS), \
|
||||
EXTRA_HEADER_DIRS := $(BUILD_LIBFREETYPE_HEADER_DIRS), \
|
||||
DISABLED_WARNINGS_microsoft := 4018 4267 4244 4312 4819, \
|
||||
DISABLED_WARNINGS_gcc := implicit-fallthrough cast-function-type bad-function-cast, \
|
||||
DISABLED_WARNINGS_gcc := implicit-fallthrough cast-function-type bad-function-cast dangling-pointer stringop-overflow, \
|
||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
||||
))
|
||||
@@ -504,7 +504,7 @@ else
|
||||
-DHB_NO_PRAGMA_GCC_DIAGNOSTIC
|
||||
endif
|
||||
ifeq ($(call isTargetOs, linux macosx), true)
|
||||
HARFBUZZ_CFLAGS += -DHAVE_INTEL_ATOMIC_PRIMITIVES
|
||||
HARFBUZZ_CFLAGS += -DHAVE_INTEL_ATOMIC_PRIMITIVES -DHB_NO_VISIBILITY
|
||||
endif
|
||||
|
||||
# Early re-canonizing has to be disabled to workaround an internal XlC compiler error
|
||||
@@ -517,8 +517,9 @@ else
|
||||
LIBFONTMANAGER_EXCLUDE_FILES += libharfbuzz/hb-ft.cc
|
||||
|
||||
HARFBUZZ_DISABLED_WARNINGS_gcc := type-limits missing-field-initializers strict-aliasing
|
||||
# noexcept-type required for GCC 7 builds. Not required for GCC 8+.
|
||||
HARFBUZZ_DISABLED_WARNINGS_CXX_gcc := reorder delete-non-virtual-dtor strict-overflow \
|
||||
maybe-uninitialized class-memaccess unused-result extra
|
||||
maybe-uninitialized class-memaccess unused-result extra use-after-free noexcept-type
|
||||
HARFBUZZ_DISABLED_WARNINGS_clang := unused-value incompatible-pointer-types \
|
||||
tautological-constant-out-of-range-compare int-to-pointer-cast \
|
||||
undef missing-field-initializers range-loop-analysis \
|
||||
|
||||
@@ -26,13 +26,5 @@
|
||||
# -parameters provides method's parameters information in class file,
|
||||
# JVMCI compilers make use of that information for various sanity checks.
|
||||
# Don't use Indy strings concatenation to have good JVMCI startup performance.
|
||||
# The exports are needed since JVMCI is dynamically exported (see
|
||||
# jdk.vm.ci.services.internal.ReflectionAccessJDK::openJVMCITo).
|
||||
|
||||
JAVAC_FLAGS += -parameters -XDstringConcat=inline
|
||||
|
||||
## WORKAROUND jdk.internal.vm.ci source structure issue
|
||||
JVMCI_MODULESOURCEPATH := $(MODULESOURCEPATH) \
|
||||
$(subst /$(MODULE)/,/*/, $(filter-out %processor/src, \
|
||||
$(wildcard $(TOPDIR)/src/$(MODULE)/share/classes/*/src)))
|
||||
MODULESOURCEPATH := $(call PathList, $(JVMCI_MODULESOURCEPATH))
|
||||
|
||||
@@ -871,7 +871,7 @@ BUILD_HOTSPOT_JTREG_EXECUTABLES_LIBS_exesigtest := -ljvm
|
||||
|
||||
ifeq ($(call isTargetOs, windows), true)
|
||||
BUILD_HOTSPOT_JTREG_EXECUTABLES_CFLAGS_exeFPRegs := -MT
|
||||
BUILD_HOTSPOT_JTREG_EXCLUDE += exesigtest.c libterminatedThread.c libTestJNI.c
|
||||
BUILD_HOTSPOT_JTREG_EXCLUDE += exesigtest.c libterminatedThread.c libTestJNI.c libnativeStack.c
|
||||
BUILD_HOTSPOT_JTREG_LIBRARIES_LIBS_libatExit := jvm.lib
|
||||
else
|
||||
BUILD_HOTSPOT_JTREG_LIBRARIES_LIBS_libbootclssearch_agent += -lpthread
|
||||
@@ -1508,6 +1508,7 @@ else
|
||||
BUILD_HOTSPOT_JTREG_LIBRARIES_LIBS_libgetphase002 += -lpthread
|
||||
BUILD_HOTSPOT_JTREG_LIBRARIES_LIBS_libterminatedThread += -lpthread
|
||||
BUILD_HOTSPOT_JTREG_LIBRARIES_LIBS_libatExit += -ljvm
|
||||
BUILD_HOTSPOT_JTREG_LIBRARIES_LIBS_libnativeStack += -lpthread
|
||||
endif
|
||||
|
||||
# This evaluation is expensive and should only be done if this target was
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
<target name="compile" depends="init"
|
||||
description="compile the source " >
|
||||
<!-- Compile the java code from ${src} into ${build} -->
|
||||
<javac debug="off" source="1.7" target="1.7" srcdir="${src}" destdir="${build}"/>
|
||||
<javac debug="off" source="17" target="17" srcdir="${src}" destdir="${build}"/>
|
||||
</target>
|
||||
|
||||
<target name="run" depends="dist"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2002, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
@@ -40,11 +40,11 @@
|
||||
|
||||
package j2dbench;
|
||||
|
||||
import java.util.Vector;
|
||||
import java.util.Hashtable;
|
||||
import java.util.Enumeration;
|
||||
import java.io.PrintWriter;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Vector;
|
||||
|
||||
public class Result {
|
||||
public static final int RATE_UNKNOWN = 0;
|
||||
@@ -243,7 +243,7 @@ public class Result {
|
||||
int repsPerRun;
|
||||
int unitsPerRep;
|
||||
Vector times;
|
||||
Hashtable modifiers;
|
||||
LinkedHashMap modifiers;
|
||||
Throwable error;
|
||||
|
||||
public Result(Test test) {
|
||||
@@ -277,7 +277,7 @@ public class Result {
|
||||
this.error = t;
|
||||
}
|
||||
|
||||
public void setModifiers(Hashtable modifiers) {
|
||||
public void setModifiers(LinkedHashMap modifiers) {
|
||||
this.modifiers = modifiers;
|
||||
}
|
||||
|
||||
@@ -297,7 +297,7 @@ public class Result {
|
||||
return ((long) getRepsPerRun()) * ((long) getUnitsPerRep());
|
||||
}
|
||||
|
||||
public Hashtable getModifiers() {
|
||||
public LinkedHashMap getModifiers() {
|
||||
return modifiers;
|
||||
}
|
||||
|
||||
@@ -423,11 +423,11 @@ public class Result {
|
||||
System.out.println(test+" averaged "+getAverageString());
|
||||
}
|
||||
if (true) {
|
||||
Enumeration enum_ = modifiers.keys();
|
||||
Iterator iter_ = modifiers.keySet().iterator();
|
||||
System.out.print(" with");
|
||||
String sep = " ";
|
||||
while (enum_.hasMoreElements()) {
|
||||
Modifier mod = (Modifier) enum_.nextElement();
|
||||
while (iter_.hasNext()) {
|
||||
Modifier mod = (Modifier) iter_.next();
|
||||
Object v = modifiers.get(mod);
|
||||
System.out.print(sep);
|
||||
System.out.print(mod.getAbbreviatedModifierDescription(v));
|
||||
@@ -442,9 +442,9 @@ public class Result {
|
||||
"num-reps=\""+getRepsPerRun()+"\" "+
|
||||
"num-units=\""+getUnitsPerRep()+"\" "+
|
||||
"name=\""+test.getTreeName()+"\">");
|
||||
Enumeration enum_ = modifiers.keys();
|
||||
while (enum_.hasMoreElements()) {
|
||||
Modifier mod = (Modifier) enum_.nextElement();
|
||||
Iterator iter_ = modifiers.keySet().iterator();
|
||||
while (iter_.hasNext()) {
|
||||
Modifier mod = (Modifier) iter_.next();
|
||||
Object v = modifiers.get(mod);
|
||||
String val = mod.getModifierValueName(v);
|
||||
pw.println(" <option "+
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2002, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
@@ -40,15 +40,15 @@
|
||||
|
||||
package j2dbench;
|
||||
|
||||
import java.awt.AlphaComposite;
|
||||
import java.awt.Canvas;
|
||||
import java.awt.Image;
|
||||
import java.awt.Color;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.Graphics;
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.AlphaComposite;
|
||||
import java.awt.Color;
|
||||
import java.awt.Image;
|
||||
import java.awt.Toolkit;
|
||||
import java.util.Hashtable;
|
||||
import java.util.LinkedHashMap;
|
||||
|
||||
import j2dbench.tests.GraphicsTests;
|
||||
|
||||
@@ -105,12 +105,12 @@ public class TestEnvironment implements Node.Visitor {
|
||||
Image srcImage;
|
||||
boolean stopped;
|
||||
ResultSet results;
|
||||
Hashtable modifiers;
|
||||
LinkedHashMap modifiers;
|
||||
Timer timer;
|
||||
|
||||
public TestEnvironment() {
|
||||
results = new ResultSet();
|
||||
modifiers = new Hashtable();
|
||||
modifiers = new LinkedHashMap();
|
||||
timer = Timer.getImpl();
|
||||
}
|
||||
|
||||
@@ -246,8 +246,8 @@ public class TestEnvironment implements Node.Visitor {
|
||||
modifiers.remove(o);
|
||||
}
|
||||
|
||||
public Hashtable getModifiers() {
|
||||
return (Hashtable) modifiers.clone();
|
||||
public LinkedHashMap getModifiers() {
|
||||
return (LinkedHashMap) modifiers.clone();
|
||||
}
|
||||
|
||||
public void record(Result result) {
|
||||
|
||||
@@ -3440,7 +3440,8 @@ encode %{
|
||||
__ mov_metadata(dst_reg, (Metadata*)con);
|
||||
} else {
|
||||
assert(rtype == relocInfo::none, "unexpected reloc type");
|
||||
if (con < (address)(uintptr_t)os::vm_page_size()) {
|
||||
if (! __ is_valid_AArch64_address(con) ||
|
||||
con < (address)(uintptr_t)os::vm_page_size()) {
|
||||
__ mov(dst_reg, con);
|
||||
} else {
|
||||
uint64_t offset;
|
||||
@@ -3916,7 +3917,7 @@ encode %{
|
||||
|
||||
// Handle existing monitor.
|
||||
__ ldr(tmp, Address(oop, oopDesc::mark_offset_in_bytes()));
|
||||
__ tbnz(disp_hdr, exact_log2(markWord::monitor_value), object_has_monitor);
|
||||
__ tbnz(tmp, exact_log2(markWord::monitor_value), object_has_monitor);
|
||||
|
||||
// Check if it is still a light weight lock, this is is true if we
|
||||
// see the stack address of the basicLock in the markWord of the
|
||||
@@ -4922,7 +4923,7 @@ operand iRegP()
|
||||
match(iRegP_R0);
|
||||
//match(iRegP_R2);
|
||||
//match(iRegP_R4);
|
||||
//match(iRegP_R5);
|
||||
match(iRegP_R5);
|
||||
match(thread_RegP);
|
||||
op_cost(0);
|
||||
format %{ %}
|
||||
@@ -8645,6 +8646,7 @@ instruct membar_release() %{
|
||||
|
||||
instruct membar_storestore() %{
|
||||
match(MemBarStoreStore);
|
||||
match(StoreStoreFence);
|
||||
ins_cost(VOLATILE_REF_COST);
|
||||
|
||||
format %{ "MEMBAR-store-store" %}
|
||||
@@ -17027,16 +17029,17 @@ instruct string_compress(iRegP_R2 src, iRegP_R1 dst, iRegI_R3 len,
|
||||
iRegI_R0 result, rFlagsReg cr)
|
||||
%{
|
||||
match(Set result (StrCompressedCopy src (Binary dst len)));
|
||||
effect(TEMP tmp1, TEMP tmp2, TEMP tmp3, TEMP tmp4, USE_KILL src, USE_KILL dst, USE_KILL len, KILL cr);
|
||||
effect(TEMP tmp1, TEMP tmp2, TEMP tmp3, TEMP tmp4,
|
||||
USE_KILL src, USE_KILL dst, USE len, KILL cr);
|
||||
|
||||
format %{ "String Compress $src,$dst -> $result // KILL R1, R2, R3, R4" %}
|
||||
format %{ "String Compress $src,$dst,$len -> $result // KILL $src,$dst" %}
|
||||
ins_encode %{
|
||||
__ char_array_compress($src$$Register, $dst$$Register, $len$$Register,
|
||||
$result$$Register,
|
||||
$tmp1$$FloatRegister, $tmp2$$FloatRegister,
|
||||
$tmp3$$FloatRegister, $tmp4$$FloatRegister,
|
||||
$result$$Register);
|
||||
$tmp3$$FloatRegister, $tmp4$$FloatRegister);
|
||||
%}
|
||||
ins_pipe( pipe_slow );
|
||||
ins_pipe(pipe_slow);
|
||||
%}
|
||||
|
||||
// fast byte[] to char[] inflation
|
||||
@@ -17061,22 +17064,43 @@ instruct string_inflate(Universe dummy, iRegP_R0 src, iRegP_R1 dst, iRegI_R2 len
|
||||
|
||||
// encode char[] to byte[] in ISO_8859_1
|
||||
instruct encode_iso_array(iRegP_R2 src, iRegP_R1 dst, iRegI_R3 len,
|
||||
vRegD_V0 Vtmp1, vRegD_V1 Vtmp2,
|
||||
vRegD_V2 Vtmp3, vRegD_V3 Vtmp4,
|
||||
vRegD_V0 vtmp0, vRegD_V1 vtmp1,
|
||||
vRegD_V2 vtmp2, vRegD_V3 vtmp3,
|
||||
iRegI_R0 result, rFlagsReg cr)
|
||||
%{
|
||||
predicate(!((EncodeISOArrayNode*)n)->is_ascii());
|
||||
match(Set result (EncodeISOArray src (Binary dst len)));
|
||||
effect(USE_KILL src, USE_KILL dst, USE_KILL len,
|
||||
KILL Vtmp1, KILL Vtmp2, KILL Vtmp3, KILL Vtmp4, KILL cr);
|
||||
effect(USE_KILL src, USE_KILL dst, USE len,
|
||||
KILL vtmp0, KILL vtmp1, KILL vtmp2, KILL vtmp3, KILL cr);
|
||||
|
||||
format %{ "Encode array $src,$dst,$len -> $result" %}
|
||||
format %{ "Encode ISO array $src,$dst,$len -> $result" %}
|
||||
ins_encode %{
|
||||
__ encode_iso_array($src$$Register, $dst$$Register, $len$$Register,
|
||||
$result$$Register, $Vtmp1$$FloatRegister, $Vtmp2$$FloatRegister,
|
||||
$Vtmp3$$FloatRegister, $Vtmp4$$FloatRegister);
|
||||
$result$$Register, false,
|
||||
$vtmp0$$FloatRegister, $vtmp1$$FloatRegister,
|
||||
$vtmp2$$FloatRegister, $vtmp3$$FloatRegister);
|
||||
%}
|
||||
ins_pipe( pipe_class_memory );
|
||||
ins_pipe(pipe_class_memory);
|
||||
%}
|
||||
|
||||
instruct encode_ascii_array(iRegP_R2 src, iRegP_R1 dst, iRegI_R3 len,
|
||||
vRegD_V0 vtmp0, vRegD_V1 vtmp1,
|
||||
vRegD_V2 vtmp2, vRegD_V3 vtmp3,
|
||||
iRegI_R0 result, rFlagsReg cr)
|
||||
%{
|
||||
predicate(((EncodeISOArrayNode*)n)->is_ascii());
|
||||
match(Set result (EncodeISOArray src (Binary dst len)));
|
||||
effect(USE_KILL src, USE_KILL dst, USE len,
|
||||
KILL vtmp0, KILL vtmp1, KILL vtmp2, KILL vtmp3, KILL cr);
|
||||
|
||||
format %{ "Encode ASCII array $src,$dst,$len -> $result" %}
|
||||
ins_encode %{
|
||||
__ encode_iso_array($src$$Register, $dst$$Register, $len$$Register,
|
||||
$result$$Register, true,
|
||||
$vtmp0$$FloatRegister, $vtmp1$$FloatRegister,
|
||||
$vtmp2$$FloatRegister, $vtmp3$$FloatRegister);
|
||||
%}
|
||||
ins_pipe(pipe_class_memory);
|
||||
%}
|
||||
|
||||
// ============================================================================
|
||||
|
||||
@@ -2448,6 +2448,12 @@ public:
|
||||
INSN(cnt, 0, 0b100000010110, 0); // accepted arrangements: T8B, T16B
|
||||
INSN(uaddlp, 1, 0b100000001010, 2); // accepted arrangements: T8B, T16B, T4H, T8H, T2S, T4S
|
||||
INSN(uaddlv, 1, 0b110000001110, 1); // accepted arrangements: T8B, T16B, T4H, T8H, T4S
|
||||
// Zero compare.
|
||||
INSN(cmeq, 0, 0b100000100110, 3); // accepted arrangements: T8B, T16B, T4H, T8H, T2S, T4S, T2D
|
||||
INSN(cmge, 1, 0b100000100010, 3); // accepted arrangements: T8B, T16B, T4H, T8H, T2S, T4S, T2D
|
||||
INSN(cmgt, 0, 0b100000100010, 3); // accepted arrangements: T8B, T16B, T4H, T8H, T2S, T4S, T2D
|
||||
INSN(cmle, 1, 0b100000100110, 3); // accepted arrangements: T8B, T16B, T4H, T8H, T2S, T4S, T2D
|
||||
INSN(cmlt, 0, 0b100000101010, 3); // accepted arrangements: T8B, T16B, T4H, T8H, T2S, T4S, T2D
|
||||
|
||||
#undef INSN
|
||||
|
||||
|
||||
@@ -37,6 +37,8 @@ typedef uint64_t (*aarch64_atomic_stub_t)(volatile void *ptr, uint64_t arg1, uin
|
||||
// Pointers to stubs
|
||||
extern aarch64_atomic_stub_t aarch64_atomic_fetch_add_4_impl;
|
||||
extern aarch64_atomic_stub_t aarch64_atomic_fetch_add_8_impl;
|
||||
extern aarch64_atomic_stub_t aarch64_atomic_fetch_add_4_relaxed_impl;
|
||||
extern aarch64_atomic_stub_t aarch64_atomic_fetch_add_8_relaxed_impl;
|
||||
extern aarch64_atomic_stub_t aarch64_atomic_xchg_4_impl;
|
||||
extern aarch64_atomic_stub_t aarch64_atomic_xchg_8_impl;
|
||||
extern aarch64_atomic_stub_t aarch64_atomic_cmpxchg_1_impl;
|
||||
|
||||
@@ -138,21 +138,21 @@ void CodeInstaller::pd_relocate_JavaMethod(CodeBuffer &cbuf, JVMCIObject hotspot
|
||||
assert(method == NULL || !method->is_static(), "cannot call static method with invokeinterface");
|
||||
NativeCall* call = nativeCall_at(_instructions->start() + pc_offset);
|
||||
_instructions->relocate(call->instruction_address(), virtual_call_Relocation::spec(_invoke_mark_pc));
|
||||
call->trampoline_jump(cbuf, SharedRuntime::get_resolve_virtual_call_stub());
|
||||
call->trampoline_jump(cbuf, SharedRuntime::get_resolve_virtual_call_stub(), JVMCI_CHECK);
|
||||
break;
|
||||
}
|
||||
case INVOKESTATIC: {
|
||||
assert(method == NULL || method->is_static(), "cannot call non-static method with invokestatic");
|
||||
NativeCall* call = nativeCall_at(_instructions->start() + pc_offset);
|
||||
_instructions->relocate(call->instruction_address(), relocInfo::static_call_type);
|
||||
call->trampoline_jump(cbuf, SharedRuntime::get_resolve_static_call_stub());
|
||||
call->trampoline_jump(cbuf, SharedRuntime::get_resolve_static_call_stub(), JVMCI_CHECK);
|
||||
break;
|
||||
}
|
||||
case INVOKESPECIAL: {
|
||||
assert(method == NULL || !method->is_static(), "cannot call static method with invokespecial");
|
||||
NativeCall* call = nativeCall_at(_instructions->start() + pc_offset);
|
||||
_instructions->relocate(call->instruction_address(), relocInfo::opt_virtual_call_type);
|
||||
call->trampoline_jump(cbuf, SharedRuntime::get_resolve_opt_virtual_call_stub());
|
||||
call->trampoline_jump(cbuf, SharedRuntime::get_resolve_opt_virtual_call_stub(), JVMCI_CHECK);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
|
||||
@@ -5031,112 +5031,119 @@ void MacroAssembler::fill_words(Register base, Register cnt, Register value)
|
||||
bind(fini);
|
||||
}
|
||||
|
||||
// Intrinsic for sun/nio/cs/ISO_8859_1$Encoder.implEncodeISOArray and
|
||||
// java/lang/StringUTF16.compress.
|
||||
// Intrinsic for
|
||||
//
|
||||
// - sun/nio/cs/ISO_8859_1$Encoder.implEncodeISOArray
|
||||
// return the number of characters copied.
|
||||
// - java/lang/StringUTF16.compress
|
||||
// return zero (0) if copy fails, otherwise 'len'.
|
||||
//
|
||||
// This version always returns the number of characters copied, and does not
|
||||
// clobber the 'len' register. A successful copy will complete with the post-
|
||||
// condition: 'res' == 'len', while an unsuccessful copy will exit with the
|
||||
// post-condition: 0 <= 'res' < 'len'.
|
||||
//
|
||||
// NOTE: Attempts to use 'ld2' (and 'umaxv' in the ISO part) has proven to
|
||||
// degrade performance (on Ampere Altra - Neoverse N1), to an extent
|
||||
// beyond the acceptable, even though the footprint would be smaller.
|
||||
// Using 'umaxv' in the ASCII-case comes with a small penalty but does
|
||||
// avoid additional bloat.
|
||||
//
|
||||
void MacroAssembler::encode_iso_array(Register src, Register dst,
|
||||
Register len, Register result,
|
||||
FloatRegister Vtmp1, FloatRegister Vtmp2,
|
||||
FloatRegister Vtmp3, FloatRegister Vtmp4)
|
||||
Register len, Register res, bool ascii,
|
||||
FloatRegister vtmp0, FloatRegister vtmp1,
|
||||
FloatRegister vtmp2, FloatRegister vtmp3)
|
||||
{
|
||||
Label DONE, SET_RESULT, NEXT_32, NEXT_32_PRFM, LOOP_8, NEXT_8, LOOP_1, NEXT_1,
|
||||
NEXT_32_START, NEXT_32_PRFM_START;
|
||||
Register tmp1 = rscratch1, tmp2 = rscratch2;
|
||||
Register cnt = res;
|
||||
Register max = rscratch1;
|
||||
Register chk = rscratch2;
|
||||
|
||||
mov(result, len); // Save initial len
|
||||
prfm(Address(src), PLDL1STRM);
|
||||
movw(cnt, len);
|
||||
|
||||
cmp(len, (u1)8); // handle shortest strings first
|
||||
br(LT, LOOP_1);
|
||||
cmp(len, (u1)32);
|
||||
br(LT, NEXT_8);
|
||||
// The following code uses the SIMD 'uzp1' and 'uzp2' instructions
|
||||
// to convert chars to bytes
|
||||
if (SoftwarePrefetchHintDistance >= 0) {
|
||||
ld1(Vtmp1, Vtmp2, Vtmp3, Vtmp4, T8H, src);
|
||||
subs(tmp2, len, SoftwarePrefetchHintDistance/2 + 16);
|
||||
br(LE, NEXT_32_START);
|
||||
b(NEXT_32_PRFM_START);
|
||||
BIND(NEXT_32_PRFM);
|
||||
ld1(Vtmp1, Vtmp2, Vtmp3, Vtmp4, T8H, src);
|
||||
BIND(NEXT_32_PRFM_START);
|
||||
prfm(Address(src, SoftwarePrefetchHintDistance));
|
||||
orr(v4, T16B, Vtmp1, Vtmp2);
|
||||
orr(v5, T16B, Vtmp3, Vtmp4);
|
||||
uzp1(Vtmp1, T16B, Vtmp1, Vtmp2);
|
||||
uzp1(Vtmp3, T16B, Vtmp3, Vtmp4);
|
||||
uzp2(v5, T16B, v4, v5); // high bytes
|
||||
umov(tmp2, v5, D, 1);
|
||||
fmovd(tmp1, v5);
|
||||
orr(tmp1, tmp1, tmp2);
|
||||
cbnz(tmp1, LOOP_8);
|
||||
stpq(Vtmp1, Vtmp3, dst);
|
||||
sub(len, len, 32);
|
||||
add(dst, dst, 32);
|
||||
add(src, src, 64);
|
||||
subs(tmp2, len, SoftwarePrefetchHintDistance/2 + 16);
|
||||
br(GE, NEXT_32_PRFM);
|
||||
cmp(len, (u1)32);
|
||||
br(LT, LOOP_8);
|
||||
BIND(NEXT_32);
|
||||
ld1(Vtmp1, Vtmp2, Vtmp3, Vtmp4, T8H, src);
|
||||
BIND(NEXT_32_START);
|
||||
} else {
|
||||
BIND(NEXT_32);
|
||||
ld1(Vtmp1, Vtmp2, Vtmp3, Vtmp4, T8H, src);
|
||||
}
|
||||
prfm(Address(src, SoftwarePrefetchHintDistance));
|
||||
uzp1(v4, T16B, Vtmp1, Vtmp2);
|
||||
uzp1(v5, T16B, Vtmp3, Vtmp4);
|
||||
orr(Vtmp1, T16B, Vtmp1, Vtmp2);
|
||||
orr(Vtmp3, T16B, Vtmp3, Vtmp4);
|
||||
uzp2(Vtmp1, T16B, Vtmp1, Vtmp3); // high bytes
|
||||
umov(tmp2, Vtmp1, D, 1);
|
||||
fmovd(tmp1, Vtmp1);
|
||||
orr(tmp1, tmp1, tmp2);
|
||||
cbnz(tmp1, LOOP_8);
|
||||
stpq(v4, v5, dst);
|
||||
sub(len, len, 32);
|
||||
add(dst, dst, 32);
|
||||
add(src, src, 64);
|
||||
cmp(len, (u1)32);
|
||||
br(GE, NEXT_32);
|
||||
cbz(len, DONE);
|
||||
#define ASCII(insn) do { if (ascii) { insn; } } while (0)
|
||||
|
||||
BIND(LOOP_8);
|
||||
cmp(len, (u1)8);
|
||||
br(LT, LOOP_1);
|
||||
BIND(NEXT_8);
|
||||
ld1(Vtmp1, T8H, src);
|
||||
uzp1(Vtmp2, T16B, Vtmp1, Vtmp1); // low bytes
|
||||
uzp2(Vtmp3, T16B, Vtmp1, Vtmp1); // high bytes
|
||||
fmovd(tmp1, Vtmp3);
|
||||
cbnz(tmp1, NEXT_1);
|
||||
strd(Vtmp2, dst);
|
||||
Label LOOP_32, DONE_32, FAIL_32;
|
||||
|
||||
sub(len, len, 8);
|
||||
add(dst, dst, 8);
|
||||
add(src, src, 16);
|
||||
cmp(len, (u1)8);
|
||||
br(GE, NEXT_8);
|
||||
BIND(LOOP_32);
|
||||
{
|
||||
cmpw(cnt, 32);
|
||||
br(LT, DONE_32);
|
||||
ld1(vtmp0, vtmp1, vtmp2, vtmp3, T8H, Address(post(src, 64)));
|
||||
// Extract lower bytes.
|
||||
FloatRegister vlo0 = v4;
|
||||
FloatRegister vlo1 = v5;
|
||||
uzp1(vlo0, T16B, vtmp0, vtmp1);
|
||||
uzp1(vlo1, T16B, vtmp2, vtmp3);
|
||||
// Merge bits...
|
||||
orr(vtmp0, T16B, vtmp0, vtmp1);
|
||||
orr(vtmp2, T16B, vtmp2, vtmp3);
|
||||
// Extract merged upper bytes.
|
||||
FloatRegister vhix = vtmp0;
|
||||
uzp2(vhix, T16B, vtmp0, vtmp2);
|
||||
// ISO-check on hi-parts (all zero).
|
||||
// ASCII-check on lo-parts (no sign).
|
||||
FloatRegister vlox = vtmp1; // Merge lower bytes.
|
||||
ASCII(orr(vlox, T16B, vlo0, vlo1));
|
||||
umov(chk, vhix, D, 1); ASCII(cmlt(vlox, T16B, vlox));
|
||||
fmovd(max, vhix); ASCII(umaxv(vlox, T16B, vlox));
|
||||
orr(chk, chk, max); ASCII(umov(max, vlox, B, 0));
|
||||
ASCII(orr(chk, chk, max));
|
||||
cbnz(chk, FAIL_32);
|
||||
subw(cnt, cnt, 32);
|
||||
st1(vlo0, vlo1, T16B, Address(post(dst, 32)));
|
||||
b(LOOP_32);
|
||||
}
|
||||
BIND(FAIL_32);
|
||||
sub(src, src, 64);
|
||||
BIND(DONE_32);
|
||||
|
||||
BIND(LOOP_1);
|
||||
Label LOOP_8, SKIP_8;
|
||||
|
||||
cbz(len, DONE);
|
||||
BIND(NEXT_1);
|
||||
ldrh(tmp1, Address(post(src, 2)));
|
||||
tst(tmp1, 0xff00);
|
||||
br(NE, SET_RESULT);
|
||||
strb(tmp1, Address(post(dst, 1)));
|
||||
subs(len, len, 1);
|
||||
br(GT, NEXT_1);
|
||||
BIND(LOOP_8);
|
||||
{
|
||||
cmpw(cnt, 8);
|
||||
br(LT, SKIP_8);
|
||||
FloatRegister vhi = vtmp0;
|
||||
FloatRegister vlo = vtmp1;
|
||||
ld1(vtmp3, T8H, src);
|
||||
uzp1(vlo, T16B, vtmp3, vtmp3);
|
||||
uzp2(vhi, T16B, vtmp3, vtmp3);
|
||||
// ISO-check on hi-parts (all zero).
|
||||
// ASCII-check on lo-parts (no sign).
|
||||
ASCII(cmlt(vtmp2, T16B, vlo));
|
||||
fmovd(chk, vhi); ASCII(umaxv(vtmp2, T16B, vtmp2));
|
||||
ASCII(umov(max, vtmp2, B, 0));
|
||||
ASCII(orr(chk, chk, max));
|
||||
cbnz(chk, SKIP_8);
|
||||
|
||||
BIND(SET_RESULT);
|
||||
sub(result, result, len); // Return index where we stopped
|
||||
// Return len == 0 if we processed all
|
||||
// characters
|
||||
BIND(DONE);
|
||||
strd(vlo, Address(post(dst, 8)));
|
||||
subw(cnt, cnt, 8);
|
||||
add(src, src, 16);
|
||||
b(LOOP_8);
|
||||
}
|
||||
BIND(SKIP_8);
|
||||
|
||||
#undef ASCII
|
||||
|
||||
Label LOOP, DONE;
|
||||
|
||||
cbz(cnt, DONE);
|
||||
BIND(LOOP);
|
||||
{
|
||||
Register chr = rscratch1;
|
||||
ldrh(chr, Address(post(src, 2)));
|
||||
tst(chr, ascii ? 0xff80 : 0xff00);
|
||||
br(NE, DONE);
|
||||
strb(chr, Address(post(dst, 1)));
|
||||
subs(cnt, cnt, 1);
|
||||
br(GT, LOOP);
|
||||
}
|
||||
BIND(DONE);
|
||||
// Return index where we stopped.
|
||||
subw(res, len, cnt);
|
||||
}
|
||||
|
||||
|
||||
// Inflate byte[] array to char[].
|
||||
address MacroAssembler::byte_array_inflate(Register src, Register dst, Register len,
|
||||
FloatRegister vtmp1, FloatRegister vtmp2,
|
||||
@@ -5244,13 +5251,13 @@ address MacroAssembler::byte_array_inflate(Register src, Register dst, Register
|
||||
|
||||
// Compress char[] array to byte[].
|
||||
void MacroAssembler::char_array_compress(Register src, Register dst, Register len,
|
||||
FloatRegister tmp1Reg, FloatRegister tmp2Reg,
|
||||
FloatRegister tmp3Reg, FloatRegister tmp4Reg,
|
||||
Register result) {
|
||||
encode_iso_array(src, dst, len, result,
|
||||
tmp1Reg, tmp2Reg, tmp3Reg, tmp4Reg);
|
||||
cmp(len, zr);
|
||||
csel(result, result, zr, EQ);
|
||||
Register res,
|
||||
FloatRegister tmp0, FloatRegister tmp1,
|
||||
FloatRegister tmp2, FloatRegister tmp3) {
|
||||
encode_iso_array(src, dst, len, res, false, tmp0, tmp1, tmp2, tmp3);
|
||||
// Adjust result: res == len ? len : 0
|
||||
cmp(len, res);
|
||||
csel(res, res, zr, EQ);
|
||||
}
|
||||
|
||||
// get_thread() can be called anywhere inside generated code so we
|
||||
|
||||
@@ -1273,14 +1273,15 @@ public:
|
||||
FloatRegister vtmp3, Register tmp4);
|
||||
|
||||
void char_array_compress(Register src, Register dst, Register len,
|
||||
FloatRegister tmp1Reg, FloatRegister tmp2Reg,
|
||||
FloatRegister tmp3Reg, FloatRegister tmp4Reg,
|
||||
Register result);
|
||||
Register res,
|
||||
FloatRegister vtmp0, FloatRegister vtmp1,
|
||||
FloatRegister vtmp2, FloatRegister vtmp3);
|
||||
|
||||
void encode_iso_array(Register src, Register dst,
|
||||
Register len, Register result,
|
||||
FloatRegister Vtmp1, FloatRegister Vtmp2,
|
||||
FloatRegister Vtmp3, FloatRegister Vtmp4);
|
||||
Register len, Register res, bool ascii,
|
||||
FloatRegister vtmp0, FloatRegister vtmp1,
|
||||
FloatRegister vtmp2, FloatRegister vtmp3);
|
||||
|
||||
void fast_log(FloatRegister vtmp0, FloatRegister vtmp1, FloatRegister vtmp2,
|
||||
FloatRegister vtmp3, FloatRegister vtmp4, FloatRegister vtmp5,
|
||||
FloatRegister tmpC1, FloatRegister tmpC2, FloatRegister tmpC3,
|
||||
|
||||
@@ -156,6 +156,6 @@
|
||||
}
|
||||
|
||||
// Implements a variant of EncodeISOArrayNode that encode ASCII only
|
||||
static const bool supports_encode_ascii_array = false;
|
||||
static const bool supports_encode_ascii_array = true;
|
||||
|
||||
#endif // CPU_AARCH64_MATCHER_AARCH64_HPP
|
||||
|
||||
@@ -39,6 +39,9 @@
|
||||
#ifdef COMPILER1
|
||||
#include "c1/c1_Runtime1.hpp"
|
||||
#endif
|
||||
#if INCLUDE_JVMCI
|
||||
#include "jvmci/jvmciEnv.hpp"
|
||||
#endif
|
||||
|
||||
void NativeCall::verify() {
|
||||
assert(NativeCall::is_call_at((address)this), "unexpected code at call site");
|
||||
@@ -524,23 +527,26 @@ void NativeCallTrampolineStub::set_destination(address new_destination) {
|
||||
OrderAccess::release();
|
||||
}
|
||||
|
||||
#if INCLUDE_JVMCI
|
||||
// Generate a trampoline for a branch to dest. If there's no need for a
|
||||
// trampoline, simply patch the call directly to dest.
|
||||
address NativeCall::trampoline_jump(CodeBuffer &cbuf, address dest) {
|
||||
void NativeCall::trampoline_jump(CodeBuffer &cbuf, address dest, JVMCI_TRAPS) {
|
||||
MacroAssembler a(&cbuf);
|
||||
address stub = NULL;
|
||||
|
||||
if (a.far_branches()
|
||||
&& ! is_NativeCallTrampolineStub_at(instruction_address() + displacement())) {
|
||||
stub = a.emit_trampoline_stub(instruction_address() - cbuf.insts()->start(), dest);
|
||||
}
|
||||
|
||||
if (stub == NULL) {
|
||||
// If we generated no stub, patch this call directly to dest.
|
||||
// This will happen if we don't need far branches or if there
|
||||
// already was a trampoline.
|
||||
if (!a.far_branches()) {
|
||||
// If not using far branches, patch this call directly to dest.
|
||||
set_destination(dest);
|
||||
} else if (!is_NativeCallTrampolineStub_at(instruction_address() + displacement())) {
|
||||
// If we want far branches and there isn't a trampoline stub, emit one.
|
||||
address stub = a.emit_trampoline_stub(instruction_address() - cbuf.insts()->start(), dest);
|
||||
if (stub == nullptr) {
|
||||
JVMCI_ERROR("could not emit trampoline stub - code cache is full");
|
||||
}
|
||||
// The relocation created while emitting the stub will ensure this
|
||||
// call instruction is subsequently patched to call the stub.
|
||||
} else {
|
||||
// Not sure how this can be happen but be defensive
|
||||
JVMCI_ERROR("single-use stub should not exist");
|
||||
}
|
||||
|
||||
return stub;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -29,6 +29,11 @@
|
||||
#include "asm/assembler.hpp"
|
||||
#include "runtime/icache.hpp"
|
||||
#include "runtime/os.hpp"
|
||||
#include "runtime/os.hpp"
|
||||
#if INCLUDE_JVMCI
|
||||
#include "jvmci/jvmciExceptions.hpp"
|
||||
#endif
|
||||
|
||||
|
||||
// We have interfaces for the following instructions:
|
||||
// - NativeInstruction
|
||||
@@ -251,7 +256,9 @@ public:
|
||||
void set_destination_mt_safe(address dest, bool assert_lock = true);
|
||||
|
||||
address get_trampoline();
|
||||
address trampoline_jump(CodeBuffer &cbuf, address dest);
|
||||
#if INCLUDE_JVMCI
|
||||
void trampoline_jump(CodeBuffer &cbuf, address dest, JVMCI_TRAPS);
|
||||
#endif
|
||||
};
|
||||
|
||||
inline NativeCall* nativeCall_at(address address) {
|
||||
|
||||
@@ -2359,10 +2359,9 @@ void SharedRuntime::generate_deopt_blob() {
|
||||
|
||||
Label retaddr;
|
||||
__ set_last_Java_frame(sp, noreg, retaddr, rscratch1);
|
||||
#ifdef ASSERT0
|
||||
#ifdef ASSERT
|
||||
{ Label L;
|
||||
__ ldr(rscratch1, Address(rthread,
|
||||
JavaThread::last_Java_fp_offset()));
|
||||
__ ldr(rscratch1, Address(rthread, JavaThread::last_Java_fp_offset()));
|
||||
__ cbz(rscratch1, L);
|
||||
__ stop("SharedRuntime::generate_deopt_blob: last_Java_fp not cleared");
|
||||
__ bind(L);
|
||||
|
||||
@@ -2964,6 +2964,22 @@ class StubGenerator: public StubCodeGenerator {
|
||||
return start;
|
||||
}
|
||||
|
||||
// Big-endian 128-bit + 64-bit -> 128-bit addition.
|
||||
// Inputs: 128-bits. in is preserved.
|
||||
// The least-significant 64-bit word is in the upper dword of the vector
|
||||
// inc (the 64-bit increment) is preserved. Its lower dword must be zero
|
||||
// Output: result
|
||||
void be_add_128_64(FloatRegister result, FloatRegister in,
|
||||
FloatRegister inc, FloatRegister tmp) {
|
||||
assert_different_registers(result, tmp, inc);
|
||||
|
||||
__ addv(result, __ T2D, in, inc); // Add inc to the least-significant dword of input
|
||||
__ cmhi(tmp, __ T2D, inc, result); // Check for result overflowing
|
||||
__ ins(tmp, __ D, tmp, 0, 1); // Move LSD of comparison result to MSD
|
||||
__ ins(tmp, __ D, inc, 1, 0); // Move 0 to LSD of comparison result
|
||||
__ subv(result, __ T2D, result, tmp); // Subtract -1 from MSD if there was an overflow
|
||||
}
|
||||
|
||||
// CTR AES crypt.
|
||||
// Arguments:
|
||||
//
|
||||
@@ -3073,13 +3089,16 @@ class StubGenerator: public StubCodeGenerator {
|
||||
// Setup the counter
|
||||
__ movi(v4, __ T4S, 0);
|
||||
__ movi(v5, __ T4S, 1);
|
||||
__ ins(v4, __ S, v5, 3, 3); // v4 contains { 0, 0, 0, 1 }
|
||||
__ ins(v4, __ S, v5, 2, 2); // v4 contains { 0, 1 }
|
||||
|
||||
__ ld1(v0, __ T16B, counter); // Load the counter into v0
|
||||
__ rev32(v16, __ T16B, v0);
|
||||
__ addv(v16, __ T4S, v16, v4);
|
||||
__ rev32(v16, __ T16B, v16);
|
||||
__ st1(v16, __ T16B, counter); // Save the incremented counter back
|
||||
// 128-bit big-endian increment
|
||||
__ ld1(v0, __ T16B, counter);
|
||||
__ rev64(v16, __ T16B, v0);
|
||||
be_add_128_64(v16, v16, v4, /*tmp*/v5);
|
||||
__ rev64(v16, __ T16B, v16);
|
||||
__ st1(v16, __ T16B, counter);
|
||||
// Previous counter value is in v0
|
||||
// v4 contains { 0, 1 }
|
||||
|
||||
{
|
||||
// We have fewer than bulk_width blocks of data left. Encrypt
|
||||
@@ -3111,9 +3130,9 @@ class StubGenerator: public StubCodeGenerator {
|
||||
|
||||
// Increment the counter, store it back
|
||||
__ orr(v0, __ T16B, v16, v16);
|
||||
__ rev32(v16, __ T16B, v16);
|
||||
__ addv(v16, __ T4S, v16, v4);
|
||||
__ rev32(v16, __ T16B, v16);
|
||||
__ rev64(v16, __ T16B, v16);
|
||||
be_add_128_64(v16, v16, v4, /*tmp*/v5);
|
||||
__ rev64(v16, __ T16B, v16);
|
||||
__ st1(v16, __ T16B, counter); // Save the incremented counter back
|
||||
|
||||
__ b(inner_loop);
|
||||
@@ -3161,7 +3180,7 @@ class StubGenerator: public StubCodeGenerator {
|
||||
// Keys should already be loaded into the correct registers
|
||||
|
||||
__ ld1(v0, __ T16B, counter); // v0 contains the first counter
|
||||
__ rev32(v16, __ T16B, v0); // v16 contains byte-reversed counter
|
||||
__ rev64(v16, __ T16B, v0); // v16 contains byte-reversed counter
|
||||
|
||||
// AES/CTR loop
|
||||
{
|
||||
@@ -3171,11 +3190,11 @@ class StubGenerator: public StubCodeGenerator {
|
||||
// Setup the counters
|
||||
__ movi(v8, __ T4S, 0);
|
||||
__ movi(v9, __ T4S, 1);
|
||||
__ ins(v8, __ S, v9, 3, 3); // v8 contains { 0, 0, 0, 1 }
|
||||
__ ins(v8, __ S, v9, 2, 2); // v8 contains { 0, 1 }
|
||||
|
||||
for (FloatRegister f = v0; f < v0 + bulk_width; f++) {
|
||||
__ rev32(f, __ T16B, v16);
|
||||
__ addv(v16, __ T4S, v16, v8);
|
||||
__ rev64(f, __ T16B, v16);
|
||||
be_add_128_64(v16, v16, v8, /*tmp*/v9);
|
||||
}
|
||||
|
||||
__ ld1(v8, v9, v10, v11, __ T16B, __ post(in, 4 * 16));
|
||||
@@ -3203,7 +3222,7 @@ class StubGenerator: public StubCodeGenerator {
|
||||
}
|
||||
|
||||
// Save the counter back where it goes
|
||||
__ rev32(v16, __ T16B, v16);
|
||||
__ rev64(v16, __ T16B, v16);
|
||||
__ st1(v16, __ T16B, counter);
|
||||
|
||||
__ pop(saved_regs, sp);
|
||||
@@ -6481,10 +6500,16 @@ class StubGenerator: public StubCodeGenerator {
|
||||
__ ret(lr);
|
||||
}
|
||||
|
||||
void gen_ldaddal_entry(Assembler::operand_size size) {
|
||||
void gen_ldadd_entry(Assembler::operand_size size, atomic_memory_order order) {
|
||||
Register prev = r2, addr = c_rarg0, incr = c_rarg1;
|
||||
__ ldaddal(size, incr, prev, addr);
|
||||
__ membar(Assembler::StoreStore|Assembler::StoreLoad);
|
||||
// If not relaxed, then default to conservative. Relaxed is the only
|
||||
// case we use enough to be worth specializing.
|
||||
if (order == memory_order_relaxed) {
|
||||
__ ldadd(size, incr, prev, addr);
|
||||
} else {
|
||||
__ ldaddal(size, incr, prev, addr);
|
||||
__ membar(Assembler::StoreStore|Assembler::StoreLoad);
|
||||
}
|
||||
if (size == Assembler::xword) {
|
||||
__ mov(r0, prev);
|
||||
} else {
|
||||
@@ -6514,12 +6539,21 @@ class StubGenerator: public StubCodeGenerator {
|
||||
StubCodeMark mark(this, "StubRoutines", "atomic entry points");
|
||||
address first_entry = __ pc();
|
||||
|
||||
// All memory_order_conservative
|
||||
// ADD, memory_order_conservative
|
||||
AtomicStubMark mark_fetch_add_4(_masm, &aarch64_atomic_fetch_add_4_impl);
|
||||
gen_ldaddal_entry(Assembler::word);
|
||||
gen_ldadd_entry(Assembler::word, memory_order_conservative);
|
||||
AtomicStubMark mark_fetch_add_8(_masm, &aarch64_atomic_fetch_add_8_impl);
|
||||
gen_ldaddal_entry(Assembler::xword);
|
||||
gen_ldadd_entry(Assembler::xword, memory_order_conservative);
|
||||
|
||||
// ADD, memory_order_relaxed
|
||||
AtomicStubMark mark_fetch_add_4_relaxed
|
||||
(_masm, &aarch64_atomic_fetch_add_4_relaxed_impl);
|
||||
gen_ldadd_entry(MacroAssembler::word, memory_order_relaxed);
|
||||
AtomicStubMark mark_fetch_add_8_relaxed
|
||||
(_masm, &aarch64_atomic_fetch_add_8_relaxed_impl);
|
||||
gen_ldadd_entry(MacroAssembler::xword, memory_order_relaxed);
|
||||
|
||||
// XCHG, memory_order_conservative
|
||||
AtomicStubMark mark_xchg_4(_masm, &aarch64_atomic_xchg_4_impl);
|
||||
gen_swpal_entry(Assembler::word);
|
||||
AtomicStubMark mark_xchg_8_impl(_masm, &aarch64_atomic_xchg_8_impl);
|
||||
@@ -7730,6 +7764,8 @@ void StubGenerator_generate(CodeBuffer* code, bool all) {
|
||||
|
||||
DEFAULT_ATOMIC_OP(fetch_add, 4, )
|
||||
DEFAULT_ATOMIC_OP(fetch_add, 8, )
|
||||
DEFAULT_ATOMIC_OP(fetch_add, 4, _relaxed)
|
||||
DEFAULT_ATOMIC_OP(fetch_add, 8, _relaxed)
|
||||
DEFAULT_ATOMIC_OP(xchg, 4, )
|
||||
DEFAULT_ATOMIC_OP(xchg, 8, )
|
||||
DEFAULT_ATOMIC_OP(cmpxchg, 1, )
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2023, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2015, 2020, Red Hat Inc. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
@@ -131,7 +131,7 @@ void VM_Version::initialize() {
|
||||
// Enable vendor specific features
|
||||
|
||||
// Ampere eMAG
|
||||
if (_cpu == CPU_AMCC && (_model == 0) && (_variant == 0x3)) {
|
||||
if (_cpu == CPU_AMCC && (_model == CPU_MODEL_EMAG) && (_variant == 0x3)) {
|
||||
if (FLAG_IS_DEFAULT(AvoidUnalignedAccesses)) {
|
||||
FLAG_SET_DEFAULT(AvoidUnalignedAccesses, true);
|
||||
}
|
||||
@@ -143,6 +143,13 @@ void VM_Version::initialize() {
|
||||
}
|
||||
}
|
||||
|
||||
// Ampere CPUs: Ampere-1 and Ampere-1A
|
||||
if (_cpu == CPU_AMPERE && ((_model == CPU_MODEL_AMPERE_1) || (_model == CPU_MODEL_AMPERE_1A))) {
|
||||
if (FLAG_IS_DEFAULT(UseSIMDForMemoryOps)) {
|
||||
FLAG_SET_DEFAULT(UseSIMDForMemoryOps, true);
|
||||
}
|
||||
}
|
||||
|
||||
// ThunderX
|
||||
if (_cpu == CPU_CAVIUM && (_model == 0xA1)) {
|
||||
guarantee(_variant != 0, "Pre-release hardware no longer supported.");
|
||||
@@ -197,8 +204,10 @@ void VM_Version::initialize() {
|
||||
}
|
||||
}
|
||||
|
||||
// Neoverse N1
|
||||
if (_cpu == CPU_ARM && (_model == 0xd0c || _model2 == 0xd0c)) {
|
||||
// Neoverse N1, N2 and V1
|
||||
if (_cpu == CPU_ARM && ((_model == 0xd0c || _model2 == 0xd0c)
|
||||
|| (_model == 0xd49 || _model2 == 0xd49)
|
||||
|| (_model == 0xd40 || _model2 == 0xd40))) {
|
||||
if (FLAG_IS_DEFAULT(UseSIMDForMemoryOps)) {
|
||||
FLAG_SET_DEFAULT(UseSIMDForMemoryOps, true);
|
||||
}
|
||||
@@ -479,5 +488,57 @@ void VM_Version::initialize() {
|
||||
|
||||
_spin_wait = get_spin_wait_desc();
|
||||
|
||||
check_virtualizations();
|
||||
|
||||
UNSUPPORTED_OPTION(CriticalJNINatives);
|
||||
}
|
||||
|
||||
#if defined(LINUX)
|
||||
static bool check_info_file(const char* fpath,
|
||||
const char* virt1, VirtualizationType vt1,
|
||||
const char* virt2, VirtualizationType vt2) {
|
||||
char line[500];
|
||||
FILE* fp = os::fopen(fpath, "r");
|
||||
if (fp == nullptr) {
|
||||
return false;
|
||||
}
|
||||
while (fgets(line, sizeof(line), fp) != nullptr) {
|
||||
if (strcasestr(line, virt1) != 0) {
|
||||
Abstract_VM_Version::_detected_virtualization = vt1;
|
||||
fclose(fp);
|
||||
return true;
|
||||
}
|
||||
if (virt2 != NULL && strcasestr(line, virt2) != 0) {
|
||||
Abstract_VM_Version::_detected_virtualization = vt2;
|
||||
fclose(fp);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
fclose(fp);
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
void VM_Version::check_virtualizations() {
|
||||
#if defined(LINUX)
|
||||
const char* pname_file = "/sys/devices/virtual/dmi/id/product_name";
|
||||
const char* tname_file = "/sys/hypervisor/type";
|
||||
if (check_info_file(pname_file, "KVM", KVM, "VMWare", VMWare)) {
|
||||
return;
|
||||
}
|
||||
check_info_file(tname_file, "Xen", XenPVHVM, NULL, NoDetectedVirtualization);
|
||||
#endif
|
||||
}
|
||||
|
||||
void VM_Version::print_platform_virtualization_info(outputStream* st) {
|
||||
#if defined(LINUX)
|
||||
VirtualizationType vrt = VM_Version::get_detected_virtualization();
|
||||
if (vrt == KVM) {
|
||||
st->print_cr("KVM virtualization detected");
|
||||
} else if (vrt == VMWare) {
|
||||
st->print_cr("VMWare virtualization detected");
|
||||
} else if (vrt == XenPVHVM) {
|
||||
st->print_cr("Xen virtualization detected");
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2023, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2014, 2020, Red Hat Inc. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
@@ -60,6 +60,9 @@ protected:
|
||||
public:
|
||||
// Initialization
|
||||
static void initialize();
|
||||
static void check_virtualizations();
|
||||
|
||||
static void print_platform_virtualization_info(outputStream*);
|
||||
|
||||
// Asserts
|
||||
static void assert_is_initialized() {
|
||||
@@ -99,6 +102,14 @@ public:
|
||||
CPU_APPLE = 'a',
|
||||
};
|
||||
|
||||
enum Ampere_CPU_Model {
|
||||
CPU_MODEL_EMAG = 0x0, /* CPU implementer is CPU_AMCC */
|
||||
CPU_MODEL_ALTRA = 0xd0c, /* CPU implementer is CPU_ARM, Neoverse N1 */
|
||||
CPU_MODEL_ALTRAMAX = 0xd0c, /* CPU implementer is CPU_ARM, Neoverse N1 */
|
||||
CPU_MODEL_AMPERE_1 = 0xac3, /* CPU implementer is CPU_AMPERE */
|
||||
CPU_MODEL_AMPERE_1A = 0xac4 /* CPU implementer is CPU_AMPERE */
|
||||
};
|
||||
|
||||
enum Feature_Flag {
|
||||
#define CPU_FEATURE_FLAGS(decl) \
|
||||
decl(FP, "fp", 0) \
|
||||
|
||||
@@ -4511,6 +4511,7 @@ instruct storeF( memoryF mem, regF src) %{
|
||||
// pattern-match out unnecessary membars
|
||||
instruct membar_storestore() %{
|
||||
match(MemBarStoreStore);
|
||||
match(StoreStoreFence);
|
||||
ins_cost(4*MEMORY_REF_COST);
|
||||
|
||||
size(4);
|
||||
|
||||
@@ -160,7 +160,7 @@ void C2_MacroAssembler::fast_unlock(Register Roop, Register Rbox, Register Rscra
|
||||
// Restore the object header
|
||||
bool allow_fallthrough_on_failure = true;
|
||||
bool one_shot = true;
|
||||
cas_for_lock_release(Rmark, Rbox, Roop, Rscratch, done, allow_fallthrough_on_failure, one_shot);
|
||||
cas_for_lock_release(Rbox, Rmark, Roop, Rscratch, done, allow_fallthrough_on_failure, one_shot);
|
||||
|
||||
bind(done);
|
||||
}
|
||||
|
||||
@@ -828,7 +828,6 @@ int LIR_Assembler::load(Register base, int offset, LIR_Opr to_reg, BasicType typ
|
||||
} else {
|
||||
__ ld(to_reg->as_register(), offset, base);
|
||||
}
|
||||
__ verify_oop(to_reg->as_register(), FILE_AND_LINE);
|
||||
break;
|
||||
}
|
||||
case T_FLOAT: __ lfs(to_reg->as_float_reg(), offset, base); break;
|
||||
@@ -859,7 +858,6 @@ int LIR_Assembler::load(Register base, Register disp, LIR_Opr to_reg, BasicType
|
||||
} else {
|
||||
__ ldx(to_reg->as_register(), base, disp);
|
||||
}
|
||||
__ verify_oop(to_reg->as_register(), FILE_AND_LINE);
|
||||
break;
|
||||
}
|
||||
case T_FLOAT: __ lfsx(to_reg->as_float_reg() , base, disp); break;
|
||||
|
||||
@@ -7152,6 +7152,7 @@ instruct membar_release() %{
|
||||
|
||||
instruct membar_storestore() %{
|
||||
match(MemBarStoreStore);
|
||||
match(StoreStoreFence);
|
||||
ins_cost(4*MEMORY_REF_COST);
|
||||
|
||||
format %{ "MEMBAR-store-store" %}
|
||||
|
||||
@@ -5048,6 +5048,7 @@ instruct membar_CPUOrder() %{
|
||||
|
||||
instruct membar_storestore() %{
|
||||
match(MemBarStoreStore);
|
||||
match(StoreStoreFence);
|
||||
ins_cost(0);
|
||||
size(0);
|
||||
format %{ "MEMBAR-storestore (empty)" %}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user