mirror of
https://github.com/JetBrains/JetBrainsRuntime.git
synced 2026-01-03 23:21:39 +01:00
Compare commits
418 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dea9484eac | ||
|
|
d728494f82 | ||
|
|
de919cc050 | ||
|
|
420aa78847 | ||
|
|
bb5aaad31f | ||
|
|
e06fc3ca97 | ||
|
|
1cd36c4c48 | ||
|
|
b66a03cdb9 | ||
|
|
e33aaf4114 | ||
|
|
560c3a0274 | ||
|
|
ae1f9d3c4d | ||
|
|
6c36e6ac98 | ||
|
|
6ba1b438cc | ||
|
|
563b2cca0e | ||
|
|
b46c99c9ca | ||
|
|
333b56ebf5 | ||
|
|
b339932323 | ||
|
|
20e2651c58 | ||
|
|
b99211af7b | ||
|
|
3ed5412a11 | ||
|
|
3518340a13 | ||
|
|
8ffe20fe4d | ||
|
|
b2a144adeb | ||
|
|
6911b6b03e | ||
|
|
331813009d | ||
|
|
d9549b011c | ||
|
|
3cc128d1a8 | ||
|
|
59c93d8775 | ||
|
|
43ebbe3cd1 | ||
|
|
6c898a14b5 | ||
|
|
411cda99c3 | ||
|
|
e1d756d6f7 | ||
|
|
25cf9ac4ce | ||
|
|
eeafae198b | ||
|
|
801302de36 | ||
|
|
9194a7c685 | ||
|
|
791934a178 | ||
|
|
62aec8f216 | ||
|
|
1890f6ba9c | ||
|
|
cb0dc40bf6 | ||
|
|
5076d06f6e | ||
|
|
365ec06712 | ||
|
|
c9d5e563d4 | ||
|
|
a1d06b1d77 | ||
|
|
44ac7af0e3 | ||
|
|
bf60bac237 | ||
|
|
7d70a51103 | ||
|
|
fda68f7190 | ||
|
|
041fd94b99 | ||
|
|
6a27b700fc | ||
|
|
378fe10d0d | ||
|
|
669c8de4ef | ||
|
|
dc97f0f168 | ||
|
|
3044925f72 | ||
|
|
29675e5a00 | ||
|
|
4fd13199de | ||
|
|
7f1f1a6719 | ||
|
|
74d361c545 | ||
|
|
34f37b3963 | ||
|
|
0dfd7dacc7 | ||
|
|
8959b5995a | ||
|
|
f3019b15eb | ||
|
|
a3c8aacff7 | ||
|
|
048516911b | ||
|
|
886ac4412b | ||
|
|
013159573e | ||
|
|
a2636cc3e1 | ||
|
|
370fa4907e | ||
|
|
a8a5398a73 | ||
|
|
dd5fe27a4a | ||
|
|
f97259db92 | ||
|
|
85e9f79872 | ||
|
|
0f3c31a3b9 | ||
|
|
8f2878e594 | ||
|
|
deec4ef7de | ||
|
|
8b1d01fc70 | ||
|
|
967aa09e11 | ||
|
|
65913a221f | ||
|
|
48c002a284 | ||
|
|
2a296bbc78 | ||
|
|
9870d8ef4d | ||
|
|
bff19286c7 | ||
|
|
775356f3fd | ||
|
|
f73822cee7 | ||
|
|
0dfa31707f | ||
|
|
1498b9334e | ||
|
|
11a42eac3b | ||
|
|
b12b7a782d | ||
|
|
bf073b92b8 | ||
|
|
3581ea9642 | ||
|
|
819527e89c | ||
|
|
ba490e3929 | ||
|
|
2106e41512 | ||
|
|
0132135649 | ||
|
|
98d182d08d | ||
|
|
24b94bdc74 | ||
|
|
e4364b9750 | ||
|
|
41ca4a9b39 | ||
|
|
a9c8185af1 | ||
|
|
08ba4ac23c | ||
|
|
c3df79ecd5 | ||
|
|
03546676f3 | ||
|
|
6d241a1ee0 | ||
|
|
155a0a011c | ||
|
|
3a80cb8cfe | ||
|
|
a586f7ae99 | ||
|
|
918bbb11ad | ||
|
|
8e8ea4e8ec | ||
|
|
f0507dd31e | ||
|
|
1d8db24840 | ||
|
|
f8edc202b3 | ||
|
|
da42ba9e06 | ||
|
|
f093e9c907 | ||
|
|
eb7fa10648 | ||
|
|
d3f80d3afb | ||
|
|
9ff7278659 | ||
|
|
8fd954b02c | ||
|
|
9ad36a6f74 | ||
|
|
d9862d3dfd | ||
|
|
5fa3bbc4ff | ||
|
|
ccc919223b | ||
|
|
0bf00422d0 | ||
|
|
d03e82eb75 | ||
|
|
72e380d38e | ||
|
|
b564b141ad | ||
|
|
c969bad52c | ||
|
|
2a95be6b43 | ||
|
|
98644b2a65 | ||
|
|
0255a8c8d4 | ||
|
|
774716490b | ||
|
|
65aed3da9e | ||
|
|
57795ecde8 | ||
|
|
c8cf075cb3 | ||
|
|
e225c02b82 | ||
|
|
11c5d43c69 | ||
|
|
61f3af72f2 | ||
|
|
022ee6b0fa | ||
|
|
f846c423a5 | ||
|
|
36d49c4c91 | ||
|
|
4f87564627 | ||
|
|
bb6c938633 | ||
|
|
543ad7dd7c | ||
|
|
b24e01e140 | ||
|
|
931ea246e6 | ||
|
|
2d9f81291b | ||
|
|
f1c536525a | ||
|
|
2c9e122bd3 | ||
|
|
5427951622 | ||
|
|
7fca7751b2 | ||
|
|
6e69147d23 | ||
|
|
c346e83bf9 | ||
|
|
9c985dab45 | ||
|
|
0e446541f6 | ||
|
|
5ff6ccfd71 | ||
|
|
1aa5cdc10c | ||
|
|
a3b84bda36 | ||
|
|
839d9e164f | ||
|
|
29dac34044 | ||
|
|
eed1dd3ff8 | ||
|
|
c3b64b48a7 | ||
|
|
250063c6cc | ||
|
|
b6e4f2dd75 | ||
|
|
ac3ddd1d84 | ||
|
|
9963e5e1a1 | ||
|
|
b73332a217 | ||
|
|
93d9ebcf56 | ||
|
|
e997785923 | ||
|
|
1ee7498755 | ||
|
|
acff9e97e2 | ||
|
|
265507c9fa | ||
|
|
92e5a559c5 | ||
|
|
9719944d90 | ||
|
|
4c048965b4 | ||
|
|
0acdc83e01 | ||
|
|
6511ca719e | ||
|
|
0883e8b369 | ||
|
|
d3a8b20b7c | ||
|
|
11a7493c34 | ||
|
|
677fa0f42f | ||
|
|
86474c987d | ||
|
|
6b8282c0c1 | ||
|
|
7a31d2b46b | ||
|
|
bb413cfa9d | ||
|
|
cd86d48558 | ||
|
|
5081959e3a | ||
|
|
a1bf1ec45c | ||
|
|
5a9e3a0a99 | ||
|
|
19e85a4845 | ||
|
|
47f84981be | ||
|
|
2ab8aab2cd | ||
|
|
c4a4018d26 | ||
|
|
2abce206ea | ||
|
|
a5491386c4 | ||
|
|
d333ac0597 | ||
|
|
82dcda446d | ||
|
|
9138745987 | ||
|
|
ac985d44c0 | ||
|
|
ae1de2dab8 | ||
|
|
4694158608 | ||
|
|
cd97f77105 | ||
|
|
ecc4bb6dff | ||
|
|
ba61d4cfe3 | ||
|
|
63e3f9d57f | ||
|
|
580112750b | ||
|
|
1eb3cf25e9 | ||
|
|
56886f8e9b | ||
|
|
3f7456426d | ||
|
|
a1d50335b9 | ||
|
|
01bdc184f2 | ||
|
|
f4220cfca5 | ||
|
|
fb662c5608 | ||
|
|
3cca881c85 | ||
|
|
a677d7d46a | ||
|
|
3f3bc693be | ||
|
|
05f8f1052f | ||
|
|
af57e81123 | ||
|
|
346c1576bd | ||
|
|
62bb0b3b70 | ||
|
|
2c2b019680 | ||
|
|
c3bfaf3ba3 | ||
|
|
2bbb559d51 | ||
|
|
ebb5793591 | ||
|
|
752e174614 | ||
|
|
2e0c50bdc8 | ||
|
|
6dab7f43f4 | ||
|
|
62e5a6fe37 | ||
|
|
8ce32ca98e | ||
|
|
9759d3de95 | ||
|
|
8ce25cb6ad | ||
|
|
63b9e7761f | ||
|
|
c91ff14797 | ||
|
|
806e4a4de7 | ||
|
|
b645c959c2 | ||
|
|
bd64e8fd45 | ||
|
|
a3260f8a05 | ||
|
|
52da4d2ed8 | ||
|
|
3720034060 | ||
|
|
cdf3c8b04b | ||
|
|
6110d85c54 | ||
|
|
083048f558 | ||
|
|
6e0657a8fb | ||
|
|
35dcb3478b | ||
|
|
77c0c8ebdd | ||
|
|
f0d5863d34 | ||
|
|
8a9c6f72fc | ||
|
|
60b075ea41 | ||
|
|
3c4a89e58b | ||
|
|
9b6d017078 | ||
|
|
fa17df11fe | ||
|
|
eff20d66e3 | ||
|
|
9792005b32 | ||
|
|
ec6d62f693 | ||
|
|
d9190b96d6 | ||
|
|
3447001ac4 | ||
|
|
bb039a94bb | ||
|
|
3e05c73ad8 | ||
|
|
d7187b5027 | ||
|
|
c0d3301366 | ||
|
|
416a07d875 | ||
|
|
c8cdf1f304 | ||
|
|
19301d907f | ||
|
|
281c300157 | ||
|
|
a96f0e5b94 | ||
|
|
85d37b1ef2 | ||
|
|
65601a43e8 | ||
|
|
c9bb64abb1 | ||
|
|
2d7c92ee51 | ||
|
|
345d99c35e | ||
|
|
eeb090ea41 | ||
|
|
38a05ea5d6 | ||
|
|
bb40328f04 | ||
|
|
9830761834 | ||
|
|
5536c5f8d4 | ||
|
|
c4d2c25be8 | ||
|
|
ecdb9f7c51 | ||
|
|
fd4876decf | ||
|
|
126909a073 | ||
|
|
fcddc2c1d8 | ||
|
|
34c3af8dc3 | ||
|
|
e7225937dd | ||
|
|
313fdc3e8c | ||
|
|
6e92ce09a4 | ||
|
|
a3a275be24 | ||
|
|
55db306019 | ||
|
|
cac18d4430 | ||
|
|
d603c68f36 | ||
|
|
6df13593bc | ||
|
|
5095eddff2 | ||
|
|
125e180667 | ||
|
|
e64e6a422d | ||
|
|
40ae2c10c1 | ||
|
|
b92dfd9c9f | ||
|
|
c2d01ebaa0 | ||
|
|
2048e52bd2 | ||
|
|
1aa0958166 | ||
|
|
df9c0aa50d | ||
|
|
336169feb4 | ||
|
|
f08cf4309f | ||
|
|
1f79ef9776 | ||
|
|
a4123ed08b | ||
|
|
bab9089637 | ||
|
|
66281c1825 | ||
|
|
d803f98671 | ||
|
|
773486269b | ||
|
|
aac30c7b78 | ||
|
|
53ab847096 | ||
|
|
47efafc6d6 | ||
|
|
c2b50b20ee | ||
|
|
4f6ac9296d | ||
|
|
e56e22156e | ||
|
|
2a5d7c1736 | ||
|
|
1596f68d08 | ||
|
|
1dbbc5abd8 | ||
|
|
eef44fd2a6 | ||
|
|
1077256b80 | ||
|
|
9d12550cfd | ||
|
|
48326ac97e | ||
|
|
4bedf95bca | ||
|
|
56e8b0175b | ||
|
|
cd6c698a9b | ||
|
|
c4358780f7 | ||
|
|
701386abfa | ||
|
|
05e4fccbc3 | ||
|
|
49521e1dea | ||
|
|
c4e29c995e | ||
|
|
cb9991ab13 | ||
|
|
ba12b0ca84 | ||
|
|
567d672778 | ||
|
|
4bcdde5640 | ||
|
|
7382411d21 | ||
|
|
e0fd16558b | ||
|
|
873dff8219 | ||
|
|
77b059599a | ||
|
|
1cf9ee5562 | ||
|
|
3efa91acf0 | ||
|
|
f0fe579e26 | ||
|
|
4584fe083d | ||
|
|
0e6a4d4c8d | ||
|
|
8281097b79 | ||
|
|
40c17e0444 | ||
|
|
f7887449eb | ||
|
|
fe27a44e4a | ||
|
|
813b6ce3b0 | ||
|
|
4123906183 | ||
|
|
4f0f59e64c | ||
|
|
c37547ef48 | ||
|
|
fd4676dd46 | ||
|
|
6d6159bbfd | ||
|
|
42128b128a | ||
|
|
46e8d8ef0c | ||
|
|
5d259c42e9 | ||
|
|
2feddbec82 | ||
|
|
2fae599ddd | ||
|
|
b4dbe998ab | ||
|
|
ad96229e5c | ||
|
|
78fb4c098b | ||
|
|
931cc4aafa | ||
|
|
17cb7de818 | ||
|
|
bd0fbb5308 | ||
|
|
fb1aaba397 | ||
|
|
aaa330e3f2 | ||
|
|
4761b95f43 | ||
|
|
f9918ac34d | ||
|
|
384c826916 | ||
|
|
185848a872 | ||
|
|
61bee883d4 | ||
|
|
083275d811 | ||
|
|
e89008a7b8 | ||
|
|
f71c89ad58 | ||
|
|
8d90454dc3 | ||
|
|
b933660cf1 | ||
|
|
deba3971ae | ||
|
|
2a7cca8a0f | ||
|
|
0a3f4b206d | ||
|
|
4849e51926 | ||
|
|
8c11cf39c1 | ||
|
|
1f54c05b84 | ||
|
|
8b19b3c82a | ||
|
|
401b1425f1 | ||
|
|
41fa771f2b | ||
|
|
dc113de54f | ||
|
|
08b744e53a | ||
|
|
0c3d8e4621 | ||
|
|
7995574c09 | ||
|
|
f62c5bbfa0 | ||
|
|
3e3a0dc115 | ||
|
|
f0174a1953 | ||
|
|
c9ce3791c3 | ||
|
|
85df918997 | ||
|
|
170632e125 | ||
|
|
5584b07116 | ||
|
|
a627c2d4a9 | ||
|
|
3a55a1baac | ||
|
|
06099a9a7f | ||
|
|
de6e0d17b4 | ||
|
|
f242258e24 | ||
|
|
63d0497d5a | ||
|
|
3a5a610476 | ||
|
|
12034dcf61 | ||
|
|
693d317c0c | ||
|
|
adae4463a6 | ||
|
|
0fc0ffdc51 | ||
|
|
77ff89d894 | ||
|
|
ad48dbfa30 | ||
|
|
f9ac251a4b | ||
|
|
4327ffa958 | ||
|
|
6995ce47fd | ||
|
|
adc0f3819c | ||
|
|
61a1b70d73 | ||
|
|
cfa9789515 | ||
|
|
8b4a98752c | ||
|
|
91d7ab5f2a | ||
|
|
6a7ec14ac0 | ||
|
|
8fe28b4696 | ||
|
|
02bc54f864 | ||
|
|
234e705134 | ||
|
|
f18d8cbd48 | ||
|
|
41067d714a |
2
.github/actions/config/action.yml
vendored
2
.github/actions/config/action.yml
vendored
@@ -42,5 +42,5 @@ runs:
|
||||
run: |
|
||||
# Extract value from configuration file
|
||||
value="$(grep -h ${{ inputs.var }}= make/conf/github-actions.conf | cut -d '=' -f 2-)"
|
||||
echo "::set-output name=value::$value"
|
||||
echo "value=$value" >> $GITHUB_OUTPUT
|
||||
shell: bash
|
||||
|
||||
2
.github/actions/do-build/action.yml
vendored
2
.github/actions/do-build/action.yml
vendored
@@ -61,7 +61,7 @@ runs:
|
||||
$build_dir/make-support/failure-summary.log \
|
||||
$build_dir/make-support/failure-logs/* \
|
||||
failure-logs/ 2> /dev/null || true
|
||||
echo '::set-output name=failure::true'
|
||||
echo 'failure=true' >> $GITHUB_OUTPUT
|
||||
fi
|
||||
shell: bash
|
||||
|
||||
|
||||
4
.github/actions/get-bootjdk/action.yml
vendored
4
.github/actions/get-bootjdk/action.yml
vendored
@@ -42,7 +42,7 @@ runs:
|
||||
run: |
|
||||
# Convert platform name to upper case
|
||||
platform_prefix="$(echo ${{ inputs.platform }} | tr [a-z-] [A-Z_])"
|
||||
echo "::set-output name=value::$platform_prefix"
|
||||
echo "value=$platform_prefix" >> $GITHUB_OUTPUT
|
||||
shell: bash
|
||||
|
||||
- name: 'Get URL configuration'
|
||||
@@ -105,5 +105,5 @@ runs:
|
||||
id: path-name
|
||||
run: |
|
||||
# Export the path
|
||||
echo '::set-output name=path::bootjdk/jdk'
|
||||
echo 'path=bootjdk/jdk' >> $GITHUB_OUTPUT
|
||||
shell: bash
|
||||
|
||||
6
.github/actions/get-bundles/action.yml
vendored
6
.github/actions/get-bundles/action.yml
vendored
@@ -103,7 +103,7 @@ runs:
|
||||
tests_dir="$(cygpath $tests_dir)"
|
||||
fi
|
||||
|
||||
echo "::set-output name=jdk::$jdk_dir"
|
||||
echo "::set-output name=symbols::$symbols_dir"
|
||||
echo "::set-output name=tests::$tests_dir"
|
||||
echo "jdk=$jdk_dir" >> $GITHUB_OUTPUT
|
||||
echo "symbols=$symbols_dir" >> $GITHUB_OUTPUT
|
||||
echo "tests=$tests_dir" >> $GITHUB_OUTPUT
|
||||
shell: bash
|
||||
|
||||
2
.github/actions/get-gtest/action.yml
vendored
2
.github/actions/get-gtest/action.yml
vendored
@@ -50,5 +50,5 @@ runs:
|
||||
id: path-name
|
||||
run: |
|
||||
# Export the path
|
||||
echo '::set-output name=path::gtest'
|
||||
echo 'path=gtest' >> $GITHUB_OUTPUT
|
||||
shell: bash
|
||||
|
||||
2
.github/actions/get-jtreg/action.yml
vendored
2
.github/actions/get-jtreg/action.yml
vendored
@@ -68,5 +68,5 @@ runs:
|
||||
id: path-name
|
||||
run: |
|
||||
# Export the path
|
||||
echo '::set-output name=path::jtreg/installed'
|
||||
echo 'path=jtreg/installed' >> $GITHUB_OUTPUT
|
||||
shell: bash
|
||||
|
||||
4
.github/actions/upload-bundles/action.yml
vendored
4
.github/actions/upload-bundles/action.yml
vendored
@@ -62,9 +62,9 @@ runs:
|
||||
fi
|
||||
|
||||
if [[ "$jdk_bundle_zip$jdk_bundle_tar_gz$symbols_bundle$tests_bundle" != "" ]]; then
|
||||
echo '::set-output name=bundles-found::true'
|
||||
echo 'bundles-found=true' >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo '::set-output name=bundles-found::false'
|
||||
echo 'bundles-found=false' >> $GITHUB_OUTPUT
|
||||
fi
|
||||
shell: bash
|
||||
|
||||
|
||||
7
.github/scripts/gen-test-summary.sh
vendored
7
.github/scripts/gen-test-summary.sh
vendored
@@ -25,6 +25,7 @@
|
||||
#
|
||||
|
||||
GITHUB_STEP_SUMMARY="$1"
|
||||
GITHUB_OUTPUT="$2"
|
||||
|
||||
test_suite_name=$(cat build/run-test-prebuilt/test-support/test-last-ids.txt)
|
||||
results_dir=build/run-test-prebuilt/test-results/$test_suite_name/text
|
||||
@@ -41,12 +42,12 @@ error_count=$(echo $errors | wc -w || true)
|
||||
|
||||
if [[ "$failures" = "" && "$errors" = "" ]]; then
|
||||
# We know something went wrong, but not what
|
||||
echo '::set-output name=error-message::Unspecified test suite failure. Please see log for job for details.'
|
||||
echo 'error-message=Unspecified test suite failure. Please see log for job for details.' >> $GITHUB_OUTPUT
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo '::set-output name=failure::true'
|
||||
echo "::set-output name=error-message::Test run reported $failure_count test failure(s) and $error_count error(s). See summary for details."
|
||||
echo 'failure=true' >> $GITHUB_OUTPUT
|
||||
echo "error-message=Test run reported $failure_count test failure(s) and $error_count error(s). See summary for details." >> $GITHUB_OUTPUT
|
||||
|
||||
echo '### :boom: Test failures summary' >> $GITHUB_STEP_SUMMARY
|
||||
|
||||
|
||||
2
.github/workflows/build-linux.yml
vendored
2
.github/workflows/build-linux.yml
vendored
@@ -89,7 +89,7 @@ jobs:
|
||||
run: |
|
||||
# Set a proper suffix for packages if using a different architecture
|
||||
if [[ '${{ inputs.apt-architecture }}' != '' ]]; then
|
||||
echo '::set-output name=suffix:::${{ inputs.apt-architecture }}'
|
||||
echo 'suffix=:${{ inputs.apt-architecture }}' >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
# Upgrading apt to solve libc6 installation bugs, see JDK-8260460.
|
||||
|
||||
16
.github/workflows/main.yml
vendored
16
.github/workflows/main.yml
vendored
@@ -104,14 +104,14 @@ jobs:
|
||||
echo 'false'
|
||||
}
|
||||
|
||||
echo "::set-output name=linux-x64::$(check_platform linux-x64 linux x64)"
|
||||
echo "::set-output name=linux-x86::$(check_platform linux-x86 linux x86)"
|
||||
echo "::set-output name=linux-x64-variants::$(check_platform linux-x64-variants variants)"
|
||||
echo "::set-output name=linux-cross-compile::$(check_platform linux-cross-compile cross-compile)"
|
||||
echo "::set-output name=macos-x64::$(check_platform macos-x64 macos x64)"
|
||||
echo "::set-output name=macos-aarch64::$(check_platform macos-aarch64 macos aarch64)"
|
||||
echo "::set-output name=windows-x64::$(check_platform windows-x64 windows x64)"
|
||||
echo "::set-output name=windows-aarch64::$(check_platform windows-aarch64 windows aarch64)"
|
||||
echo "linux-x64=$(check_platform linux-x64 linux x64)" >> $GITHUB_OUTPUT
|
||||
echo "linux-x86=$(check_platform linux-x86 linux x86)" >> $GITHUB_OUTPUT
|
||||
echo "linux-x64-variants=$(check_platform linux-x64-variants variants)" >> $GITHUB_OUTPUT
|
||||
echo "linux-cross-compile=$(check_platform linux-cross-compile cross-compile)" >> $GITHUB_OUTPUT
|
||||
echo "macos-x64=$(check_platform macos-x64 macos x64)" >> $GITHUB_OUTPUT
|
||||
echo "macos-aarch64=$(check_platform macos-aarch64 macos aarch64)" >> $GITHUB_OUTPUT
|
||||
echo "windows-x64=$(check_platform windows-x64 windows x64)" >> $GITHUB_OUTPUT
|
||||
echo "windows-aarch64=$(check_platform windows-aarch64 windows aarch64)" >> $GITHUB_OUTPUT
|
||||
|
||||
###
|
||||
### Build jobs
|
||||
|
||||
8
.github/workflows/test.yml
vendored
8
.github/workflows/test.yml
vendored
@@ -138,9 +138,9 @@ jobs:
|
||||
# We need a minimal PATH on Windows
|
||||
# Set PATH to "", so just GITHUB_PATH is included
|
||||
if [[ '${{ runner.os }}' == 'Windows' ]]; then
|
||||
echo "::set-output name=value::"
|
||||
echo "value=" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "::set-output name=value::$PATH"
|
||||
echo "value=$PATH" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
- name: 'Run tests'
|
||||
@@ -154,7 +154,7 @@ jobs:
|
||||
SYMBOLS_IMAGE_DIR=${{ steps.bundles.outputs.symbols-path }}
|
||||
TEST_IMAGE_DIR=${{ steps.bundles.outputs.tests-path }}
|
||||
JTREG='JAVA_OPTIONS=-XX:-CreateCoredumpOnCrash;VERBOSE=fail,error,time;KEYWORDS=!headful'
|
||||
&& bash ./.github/scripts/gen-test-summary.sh "$GITHUB_STEP_SUMMARY"
|
||||
&& bash ./.github/scripts/gen-test-summary.sh "$GITHUB_STEP_SUMMARY" "$GITHUB_OUTPUT"
|
||||
env:
|
||||
PATH: ${{ steps.path.outputs.value }}
|
||||
|
||||
@@ -187,7 +187,7 @@ jobs:
|
||||
fi
|
||||
|
||||
artifact_name="results-${{ inputs.platform }}-$(echo ${{ matrix.test-name }} | tr '/ ' '__')"
|
||||
echo "::set-output name=artifact-name::$artifact_name"
|
||||
echo "artifact-name=$artifact_name" >> $GITHUB_OUTPUT
|
||||
if: always()
|
||||
|
||||
- name: 'Upload test results'
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
[general]
|
||||
project=jdk-updates
|
||||
jbs=JDK
|
||||
version=17.0.5
|
||||
version=17.0.6
|
||||
|
||||
[checks]
|
||||
error=author,committer,reviewers,merge,issues,executable,symlink,message,hg-tag,whitespace,problemlists
|
||||
|
||||
40
README.md
40
README.md
@@ -3,20 +3,21 @@
|
||||
# Welcome to JetBrains Runtime!
|
||||
|
||||
JetBrains Runtime is a fork of [OpenJDK](https://github.com/openjdk/jdk) available for Windows, Mac OS X, and Linux.
|
||||
It includes a number enhancements in font rendering, HiDPI support, ligatures, performance improvements, and bugfixes.
|
||||
It includes a number of enhancements in font rendering, ligatures, HiDPI support, windowing/focus subsystems, performance improvements, and bugfixes.
|
||||
|
||||
## Releases
|
||||
Download the latest releases of JetBrains Runtime to use with JetBrains IDEs. The full list
|
||||
can be found on the [releases page](https://github.com/JetBrains/JetBrainsRuntime/releases).
|
||||
|
||||
| IDE Version | Latest JBR | Date Released |
|
||||
| --- | --- | --- |
|
||||
| 2022.3 | [17.0.5-b653.14](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-17.0.5b653.14)| 15-Nov-2022 |
|
||||
| 2022.2 | [17.0.5-b469.71](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-17.0.5b469.71)| 14-Nov-2022 |
|
||||
| IDE Version | Latest JBR | Date Released |
|
||||
| --- |--------------------------------------------------------------------------------------------------------|---------------|
|
||||
| 2023.1 | [17.0.6-b829.1](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-17.0.6b829.1) | 14-Feb-2023 |
|
||||
| 2022.3 | [17.0.5-b653.25](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-17.0.5b653.25) | 10-Jan-2023 |
|
||||
| 2022.2 | [17.0.5-b469.71](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-17.0.5b469.71) | 14-Nov-2022 |
|
||||
|
||||
|
||||
## Contents
|
||||
- [Welcome to JetBrains Runtime](#jetbrains-runtime)
|
||||
- [Welcome to JetBrains Runtime](#welcome-to-jetbrains-runtime)
|
||||
- [Products Built on JetBrains Runtime](#products-built-on-jetbrains-runtime)
|
||||
- [Getting Sources](#getting-sources)
|
||||
- [macOS, Linux](#macos-linux)
|
||||
@@ -41,6 +42,7 @@ can be found on the [releases page](https://github.com/JetBrains/JetBrainsRuntim
|
||||
* [PyCharm](https://www.jetbrains.com/pycharm/). The Python IDE from JetBrains.
|
||||
* [Rider](https://www.jetbrains.com/rider/). The cross-platform .NET IDE from JetBrains.
|
||||
* [RubyMine](https://www.jetbrains.com/ruby/). The Ruby and Rails IDE from JetBrains.
|
||||
* [Toolbox App](https://www.jetbrains.com/toolbox-app/). JetBrains IDE manager.
|
||||
* [WebStorm](https://www.jetbrains.com/webstorm/). The JavaScript IDE from JetBrains.
|
||||
* [YourKit](https://www.yourkit.com/). Java and .NET profilers.
|
||||
|
||||
@@ -78,7 +80,7 @@ Run these commands in the new container:
|
||||
```
|
||||
$ docker run -v `pwd`../../../../:/JetBrainsRuntime -it 942ea9900054
|
||||
# cd /JetBrainsRuntime
|
||||
# git checkout master17
|
||||
# git checkout jbr17
|
||||
# sh ./configure
|
||||
# make images CONF=linux-x86_64-normal-server-release
|
||||
```
|
||||
@@ -87,13 +89,13 @@ $ docker run -v `pwd`../../../../:/JetBrainsRuntime -it 942ea9900054
|
||||
Install the necessary tools, libraries, and headers with:
|
||||
```
|
||||
$ sudo apt-get install autoconf make build-essential libx11-dev libxext-dev libxrender-dev libxtst-dev \
|
||||
libxt-dev libxrandr-dev libcups2-dev libfontconfig1-dev libasound2-dev \
|
||||
libxt-dev libxrandr-dev libcups2-dev libfontconfig1-dev libasound2-dev libspeechd-dev \
|
||||
java-16-amazon-corretto-jdk
|
||||
```
|
||||
Then run the following:
|
||||
```
|
||||
$ cd JetBrainsRuntime
|
||||
$ git checkout master17
|
||||
$ git checkout jbr17
|
||||
$ sh ./configure
|
||||
$ make images
|
||||
```
|
||||
@@ -121,21 +123,33 @@ The first command sets up environment variables, the second starts a Cygwin shel
|
||||
In the Cygwin shell:
|
||||
```
|
||||
$ cd JetBrainsRuntime
|
||||
$ git checkout master17
|
||||
$ git checkout jbr17
|
||||
$ bash configure --with-toolchain-version=2019
|
||||
$ make images
|
||||
```
|
||||
This will build the release configuration under `./build/windows-x86_64-server-release/`.
|
||||
|
||||
#### Enable optional NVDA screen reader support
|
||||
If you want to add support of a11y announcing via [NVDA screen reader](https://www.nvaccess.org/about-nvda/),
|
||||
you will need to bundle the NVDA Controller Client library.
|
||||
You can do it with the following steps:
|
||||
1. Download the NVDA Controller Client library. You can find the link in its official README [here](https://github.com/nvaccess/nvda/blob/master/extras/controllerClient/readme.md)
|
||||
2. Pass the path to the unpacked package to `configure` via an additional flag `--with-nvdacontrollerclient=<path>`.
|
||||
The build system will search the required library files under `<path>/<target-arch>`.
|
||||
|
||||
#### Disable optional JAWS screen reader support
|
||||
JBR is built with built-in support of JAWS screen reader.
|
||||
If you want to disable it, run `configure` with the additional flag `--disable-jaws-client`.
|
||||
|
||||
### macOS
|
||||
Install the following:
|
||||
* Xcode command line developer tools and `autoconf` via [Homebrew](getDpiInfo).
|
||||
* Xcode command line developer tools and `autoconf` via [Homebrew](https://brew.sh/).
|
||||
* Java 16 (for instance, from [AdoptOpenJDK](https://adoptopenjdk.net/installation.html?variant=openjdk16&jvmVariant=hotspot#)).
|
||||
|
||||
From the command line:
|
||||
```
|
||||
$ cd JetBrainsRuntime
|
||||
$ git checkout master17
|
||||
$ git checkout jbr17
|
||||
$ sh ./configure
|
||||
$ make images
|
||||
```
|
||||
@@ -171,7 +185,7 @@ We are happy to receive your pull requests!
|
||||
Before you submit one, please sign our [Contributor License Agreement (CLA)](https://www.jetbrains.com/agreements/cla/).
|
||||
|
||||
## Resources
|
||||
* [JetBrains Runtime on github](https://github.com/JetBrains/JetBrainsRuntime).
|
||||
* [JetBrains Runtime on GitHub](https://github.com/JetBrains/JetBrainsRuntime).
|
||||
* [OpenJDK build instructions](https://openjdk.java.net/groups/build/doc/building.html).
|
||||
* [OpenJDK test instructions](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openjdk/jdk/master/doc/building.html#running-tests).
|
||||
* [How to develop OpenJDK with CLion](https://blog.jetbrains.com/clion/2020/03/openjdk-with-clion/).
|
||||
|
||||
@@ -70,6 +70,9 @@
|
||||
<li><a href="#make-control-variables">Make Control Variables</a></li>
|
||||
</ul></li>
|
||||
<li><a href="#running-tests">Running Tests</a></li>
|
||||
<li><a href="#signing">Signing</a><ul>
|
||||
<li><a href="#macos-1">macOS</a></li>
|
||||
</ul></li>
|
||||
<li><a href="#cross-compiling">Cross-compiling</a><ul>
|
||||
<li><a href="#cross-compiling-the-easy-way-with-openjdk-devkits">Cross compiling the easy way with OpenJDK devkits</a></li>
|
||||
<li><a href="#boot-jdk-and-build-jdk">Boot JDK and Build JDK</a></li>
|
||||
@@ -489,7 +492,7 @@
|
||||
<li><code>CONF</code> and <code>CONF_NAME</code> - Selecting the configuration(s) to use. See <a href="#using-multiple-configurations">Using Multiple Configurations</a></li>
|
||||
</ul>
|
||||
<h4 id="test-make-control-variables">Test Make Control Variables</h4>
|
||||
<p>These make control variables only make sense when running tests. Please see <a href="testing.html">Testing the JDK</a> for details.</p>
|
||||
<p>These make control variables only make sense when running tests. Please see <strong>Testing the JDK</strong> (<a href="testing.html">html</a>, <a href="testing.md">markdown</a>) for details.</p>
|
||||
<ul>
|
||||
<li><code>TEST</code></li>
|
||||
<li><code>TEST_JOBS</code></li>
|
||||
@@ -515,7 +518,13 @@
|
||||
</ul>
|
||||
<p>To execute the most basic tests (tier 1), use:</p>
|
||||
<pre><code>make run-test-tier1</code></pre>
|
||||
<p>For more details on how to run tests, please see the <a href="testing.html">Testing the JDK</a> document.</p>
|
||||
<p>For more details on how to run tests, please see <strong>Testing the JDK</strong> (<a href="testing.html">html</a>, <a href="testing.md">markdown</a>).</p>
|
||||
<h2 id="signing">Signing</h2>
|
||||
<h3 id="macos-1">macOS</h3>
|
||||
<p>Modern versions of macOS require applications to be signed and notarizied before distribution. See Apple's documentation for more background on what this means and how it works. To help support this, the JDK build can be configured to automatically sign all native binaries, and the JDK bundle, with all the options needed for successful notarization, as well as all the entitlements required by the JDK. To enable <code>hardened</code> signing, use configure parameter <code>--with-macosx-codesign=hardened</code> and configure the signing identity you wish to use with <code>--with-macosx-codesign-identity=<identity></code>. The identity refers to a signing identity from Apple that needs to be preinstalled on the build host.</p>
|
||||
<p>When not signing for distribution with the hardened option, the JDK build will still attempt to perform <code>adhoc</code> signing to add the special entitlement <code>com.apple.security.get-task-allow</code> to each binary. This entitlement is required to be able to dump core files from a process. Note that adding this entitlement makes the build invalid for notarization, so it is only added when signing in <code>debug</code> mode. To explicitly enable this kind of adhoc signing, use configure parameter <code>--with-macosx-codesign=debug</code>. It will be enabled by default in most cases.</p>
|
||||
<p>It's also possible to completely disable any explicit codesign operations done by the JDK build using the configure parameter <code>--without-macosx-codesign</code>. The exact behavior then depends on the architecture. For macOS on x64, it (at least at the time of this writing) results in completely unsigned binaries that should still work fine for development and debugging purposes. On aarch64, the Xcode linker will apply a default "adhoc" signing, without any entitlements. Such a build does not allow dumping core files.</p>
|
||||
<p>The default mode "auto" will try for <code>hardened</code> signing if the debug level is <code>release</code> and either the default identity or the specified identity is valid. If hardened isn't possible, then <code>debug</code> signing is chosen if it works. If nothing works, the codesign build step is disabled.</p>
|
||||
<h2 id="cross-compiling">Cross-compiling</h2>
|
||||
<p>Cross-compiling means using one platform (the <em>build</em> platform) to generate output that can ran on another platform (the <em>target</em> platform).</p>
|
||||
<p>The typical reason for cross-compiling is that the build is performed on a more powerful desktop computer, but the resulting binaries will be able to run on a different, typically low-performing system. Most of the complications that arise when building for embedded is due to this separation of <em>build</em> and <em>target</em> systems.</p>
|
||||
|
||||
@@ -818,7 +818,7 @@ configuration, as opposed to the "configure time" configuration.
|
||||
#### Test Make Control Variables
|
||||
|
||||
These make control variables only make sense when running tests. Please see
|
||||
[Testing the JDK](testing.html) for details.
|
||||
**Testing the JDK** ([html](testing.html), [markdown](testing.md)) for details.
|
||||
|
||||
* `TEST`
|
||||
* `TEST_JOBS`
|
||||
@@ -865,8 +865,44 @@ To execute the most basic tests (tier 1), use:
|
||||
make run-test-tier1
|
||||
```
|
||||
|
||||
For more details on how to run tests, please see the [Testing
|
||||
the JDK](testing.html) document.
|
||||
For more details on how to run tests, please see **Testing the JDK**
|
||||
([html](testing.html), [markdown](testing.md)).
|
||||
|
||||
## Signing
|
||||
|
||||
### macOS
|
||||
|
||||
Modern versions of macOS require applications to be signed and notarizied before
|
||||
distribution. See Apple's documentation for more background on what this means
|
||||
and how it works. To help support this, the JDK build can be configured to
|
||||
automatically sign all native binaries, and the JDK bundle, with all the options
|
||||
needed for successful notarization, as well as all the entitlements required by
|
||||
the JDK. To enable `hardened` signing, use configure parameter
|
||||
`--with-macosx-codesign=hardened` and configure the signing identity you wish to
|
||||
use with `--with-macosx-codesign-identity=<identity>`. The identity refers to a
|
||||
signing identity from Apple that needs to be preinstalled on the build host.
|
||||
|
||||
When not signing for distribution with the hardened option, the JDK build will
|
||||
still attempt to perform `adhoc` signing to add the special entitlement
|
||||
`com.apple.security.get-task-allow` to each binary. This entitlement is required
|
||||
to be able to dump core files from a process. Note that adding this entitlement
|
||||
makes the build invalid for notarization, so it is only added when signing in
|
||||
`debug` mode. To explicitly enable this kind of adhoc signing, use configure
|
||||
parameter `--with-macosx-codesign=debug`. It will be enabled by default in most
|
||||
cases.
|
||||
|
||||
It's also possible to completely disable any explicit codesign operations done
|
||||
by the JDK build using the configure parameter `--without-macosx-codesign`.
|
||||
The exact behavior then depends on the architecture. For macOS on x64, it (at
|
||||
least at the time of this writing) results in completely unsigned binaries that
|
||||
should still work fine for development and debugging purposes. On aarch64, the
|
||||
Xcode linker will apply a default "adhoc" signing, without any entitlements.
|
||||
Such a build does not allow dumping core files.
|
||||
|
||||
The default mode "auto" will try for `hardened` signing if the debug level is
|
||||
`release` and either the default identity or the specified identity is valid.
|
||||
If hardened isn't possible, then `debug` signing is chosen if it works. If
|
||||
nothing works, the codesign build step is disabled.
|
||||
|
||||
## Cross-compiling
|
||||
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
<component name="CopyrightManager">
|
||||
<settings default="JetBrains" />
|
||||
</component>
|
||||
@@ -1,9 +0,0 @@
|
||||
<component name="CopyrightManager">
|
||||
<copyright>
|
||||
<option name="notice" value="Copyright 2000-&#36;today.year JetBrains s.r.o. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License." />
|
||||
<option name="keyword" value="Copyright" />
|
||||
<option name="allowReplaceKeyword" value="JetBrains" />
|
||||
<option name="myName" value="JetBrains" />
|
||||
<option name="myLocal" value="true" />
|
||||
</copyright>
|
||||
</component>
|
||||
@@ -1,3 +0,0 @@
|
||||
<component name="CopyrightManager">
|
||||
<settings default="JetBrains" />
|
||||
</component>
|
||||
@@ -154,7 +154,8 @@ if [ $do_maketest -eq 1 ]; then
|
||||
JBRSDK_TEST=${JBRSDK_BUNDLE}-${JBSDK_VERSION}-linux-${libc_type_suffix}test-aarch64-b${build_number}
|
||||
echo Creating "$JBRSDK_TEST" ...
|
||||
[ $do_reset_changes -eq 1 ] && git checkout HEAD jb/project/tools/common/modules.list src/java.desktop/share/classes/module-info.java
|
||||
make test-image CONF=$RELEASE_NAME || do_exit $?
|
||||
make test-image jbr-api CONF=$RELEASE_NAME JBR_API_JBR_VERSION=TEST || do_exit $?
|
||||
cp "build/${RELEASE_NAME}/jbr-api/jbr-api.jar" "${IMAGES_DIR}/test"
|
||||
tar -pcf "$JBRSDK_TEST".tar -C $IMAGES_DIR --exclude='test/jdk/demos' test || do_exit $?
|
||||
[ -f "$JBRSDK_TEST.tar.gz" ] && rm "$JBRSDK_TEST.tar.gz"
|
||||
gzip "$JBRSDK_TEST".tar || do_exit $?
|
||||
|
||||
@@ -153,7 +153,8 @@ if [ $do_maketest -eq 1 ]; then
|
||||
JBRSDK_TEST=${JBRSDK_BUNDLE}-${JBSDK_VERSION}-linux-${libc_type_suffix}test-x64-b${build_number}
|
||||
echo Creating "$JBRSDK_TEST" ...
|
||||
[ $do_reset_changes -eq 1 ] && git checkout HEAD jb/project/tools/common/modules.list src/java.desktop/share/classes/module-info.java
|
||||
make test-image CONF=$RELEASE_NAME || do_exit $?
|
||||
make test-image jbr-api CONF=$RELEASE_NAME JBR_API_JBR_VERSION=TEST || do_exit $?
|
||||
cp "build/${RELEASE_NAME}/jbr-api/jbr-api.jar" "${IMAGES_DIR}/test"
|
||||
tar -pcf "$JBRSDK_TEST".tar -C $IMAGES_DIR --exclude='test/jdk/demos' test || do_exit $?
|
||||
[ -f "$JBRSDK_TEST.tar.gz" ] && rm "$JBRSDK_TEST.tar.gz"
|
||||
gzip "$JBRSDK_TEST".tar || do_exit $?
|
||||
|
||||
@@ -134,7 +134,8 @@ if [ $do_maketest -eq 1 ]; then
|
||||
JBRSDK_TEST=${JBRSDK_BUNDLE}-${JBSDK_VERSION}-linux-${libc_type_suffix}test-x86-b${build_number}
|
||||
echo Creating "$JBRSDK_TEST" ...
|
||||
[ $do_reset_changes -eq 1 ] && git checkout HEAD jb/project/tools/common/modules.list src/java.desktop/share/classes/module-info.java
|
||||
make test-image CONF=$RELEASE_NAME || do_exit $?
|
||||
make test-image jbr-api CONF=$RELEASE_NAME JBR_API_JBR_VERSION=TEST || do_exit $?
|
||||
cp "build/${RELEASE_NAME}/jbr-api/jbr-api.jar" "${IMAGES_DIR}/test"
|
||||
tar -pcf "$JBRSDK_TEST".tar -C $IMAGES_DIR --exclude='test/jdk/demos' test || do_exit $?
|
||||
[ -f "$JBRSDK_TEST.tar.gz" ] && rm "$JBRSDK_TEST.tar.gz"
|
||||
gzip "$JBRSDK_TEST".tar || do_exit $?
|
||||
|
||||
@@ -178,7 +178,8 @@ if [ $do_maketest -eq 1 ]; then
|
||||
JBRSDK_TEST=${JBRSDK_BUNDLE}-${JBSDK_VERSION}-osx-test-${architecture}-b${build_number}
|
||||
echo Creating "$JBRSDK_TEST" ...
|
||||
[ $do_reset_changes -eq 1 ] && git checkout HEAD jb/project/tools/common/modules.list src/java.desktop/share/classes/module-info.java
|
||||
make test-image CONF=$RELEASE_NAME || do_exit $?
|
||||
make test-image jbr-api CONF=$RELEASE_NAME JBR_API_JBR_VERSION=TEST || do_exit $?
|
||||
cp "build/${RELEASE_NAME}/jbr-api/jbr-api.jar" "${IMAGES_DIR}/test"
|
||||
[ -f "$JBRSDK_TEST.tar.gz" ] && rm "$JBRSDK_TEST.tar.gz"
|
||||
COPYFILE_DISABLE=1 tar -pczf "$JBRSDK_TEST".tar.gz -C $IMAGES_DIR --exclude='test/jdk/demos' test || do_exit $?
|
||||
fi
|
||||
|
||||
@@ -30,6 +30,7 @@ source jb/project/tools/common/scripts/common.sh
|
||||
|
||||
WORK_DIR=$(pwd)
|
||||
JCEF_PATH=${JCEF_PATH:=$WORK_DIR/jcef_win_aarch64}
|
||||
NVDA_PATH=${NVDA_PATH:=$WORK_DIR/nvda_controllerClient}
|
||||
|
||||
function do_configure {
|
||||
sh ./configure \
|
||||
@@ -45,6 +46,7 @@ function do_configure {
|
||||
--with-toolchain-version=$TOOLCHAIN_VERSION \
|
||||
--with-boot-jdk=$BOOT_JDK \
|
||||
--with-build-jdk=$BUILD_JDK \
|
||||
--with-nvdacontrollerclient=$NVDA_PATH \
|
||||
--disable-ccache \
|
||||
--enable-cds=yes \
|
||||
$STATIC_CONF_ARGS \
|
||||
@@ -73,7 +75,9 @@ function create_image_bundle {
|
||||
sed 's/JBR/JBRSDK/g' $__root_dir/release > release
|
||||
mv release $__root_dir/release
|
||||
cp $IMAGES_DIR/jdk/lib/src.zip $__root_dir/lib
|
||||
cp $IMAGES_DIR/jdk/bin/*.pdb $__root_dir/bin
|
||||
for dir in $(ls -d $IMAGES_DIR/jdk/*); do
|
||||
rsync -amv --include="*/" --include="*.pdb" --exclude="*" $dir $__root_dir
|
||||
done
|
||||
copy_jmods "$__modules" "$__modules_path" "$__root_dir"/jmods
|
||||
fi
|
||||
}
|
||||
@@ -99,13 +103,13 @@ esac
|
||||
if [ -z "${INC_BUILD:-}" ]; then
|
||||
do_configure || do_exit $?
|
||||
if [ $do_maketest -eq 1 ]; then
|
||||
make LOG=info CONF=$RELEASE_NAME clean images test-image || do_exit $?
|
||||
make LOG=info CONF=$RELEASE_NAME clean images test-image jbr-api JBR_API_JBR_VERSION=TEST || do_exit $?
|
||||
else
|
||||
make LOG=info CONF=$RELEASE_NAME clean images || do_exit $?
|
||||
fi
|
||||
else
|
||||
if [ $do_maketest -eq 1 ]; then
|
||||
make LOG=info CONF=$RELEASE_NAME images test-image || do_exit $?
|
||||
make LOG=info CONF=$RELEASE_NAME images test-image jbr-api JBR_API_JBR_VERSION=TEST || do_exit $?
|
||||
else
|
||||
make LOG=info CONF=$RELEASE_NAME images || do_exit $?
|
||||
fi
|
||||
|
||||
@@ -24,6 +24,7 @@ source jb/project/tools/common/scripts/common.sh
|
||||
|
||||
WORK_DIR=$(pwd)
|
||||
JCEF_PATH=${JCEF_PATH:=$WORK_DIR/jcef_win_x64}
|
||||
NVDA_PATH=${NVDA_PATH:=$WORK_DIR/nvda_controllerClient}
|
||||
|
||||
function do_configure {
|
||||
sh ./configure \
|
||||
@@ -36,6 +37,7 @@ function do_configure {
|
||||
--with-version-opt=b${build_number} \
|
||||
--with-toolchain-version=$TOOLCHAIN_VERSION \
|
||||
--with-boot-jdk=$BOOT_JDK \
|
||||
--with-nvdacontrollerclient=$NVDA_PATH \
|
||||
--disable-ccache \
|
||||
--enable-cds=yes \
|
||||
$STATIC_CONF_ARGS \
|
||||
@@ -64,7 +66,9 @@ function create_image_bundle {
|
||||
sed 's/JBR/JBRSDK/g' $__root_dir/release > release
|
||||
mv release $__root_dir/release
|
||||
cp $IMAGES_DIR/jdk/lib/src.zip $__root_dir/lib
|
||||
cp $IMAGES_DIR/jdk/bin/*.pdb $__root_dir/bin
|
||||
for dir in $(ls -d $IMAGES_DIR/jdk/*); do
|
||||
rsync -amv --include="*/" --include="*.pdb" --exclude="*" $dir $__root_dir
|
||||
done
|
||||
copy_jmods "$__modules" "$__modules_path" "$__root_dir"/jmods
|
||||
fi
|
||||
}
|
||||
@@ -90,13 +94,13 @@ esac
|
||||
if [ -z "${INC_BUILD:-}" ]; then
|
||||
do_configure || do_exit $?
|
||||
if [ $do_maketest -eq 1 ]; then
|
||||
make LOG=info CONF=$RELEASE_NAME clean images test-image || do_exit $?
|
||||
make LOG=info CONF=$RELEASE_NAME clean images test-image jbr-api JBR_API_JBR_VERSION=TEST || do_exit $?
|
||||
else
|
||||
make LOG=info CONF=$RELEASE_NAME clean images || do_exit $?
|
||||
fi
|
||||
else
|
||||
if [ $do_maketest -eq 1 ]; then
|
||||
make LOG=info CONF=$RELEASE_NAME images test-image || do_exit $?
|
||||
make LOG=info CONF=$RELEASE_NAME images test-image jbr-api JBR_API_JBR_VERSION=TEST || do_exit $?
|
||||
else
|
||||
make LOG=info CONF=$RELEASE_NAME images || do_exit $?
|
||||
fi
|
||||
|
||||
@@ -19,6 +19,8 @@ set -x
|
||||
source jb/project/tools/common/scripts/common.sh
|
||||
|
||||
WORK_DIR=$(pwd)
|
||||
NVDA_PATH=${NVDA_PATH:=$WORK_DIR/nvda_controllerClient}
|
||||
|
||||
|
||||
function do_configure {
|
||||
sh ./configure \
|
||||
@@ -31,6 +33,7 @@ function do_configure {
|
||||
--with-version-opt=b${build_number} \
|
||||
--with-toolchain-version=$TOOLCHAIN_VERSION \
|
||||
--with-boot-jdk=$BOOT_JDK \
|
||||
--with-nvdacontrollerclient=$NVDA_PATH \
|
||||
--disable-ccache \
|
||||
--enable-cds=yes \
|
||||
$STATIC_CONF_ARGS \
|
||||
@@ -59,7 +62,9 @@ function create_image_bundle {
|
||||
sed 's/JBR/JBRSDK/g' $__root_dir/release > release
|
||||
mv release $__root_dir/release
|
||||
cp $IMAGES_DIR/jdk/lib/src.zip $__root_dir/lib
|
||||
cp $IMAGES_DIR/jdk/bin/*.pdb $__root_dir/bin
|
||||
for dir in $(ls -d $IMAGES_DIR/jdk/*); do
|
||||
rsync -amv --include="*/" --include="*.pdb" --exclude="*" $dir $__root_dir
|
||||
done
|
||||
copy_jmods "$__modules" "$__modules_path" "$__root_dir"/jmods
|
||||
fi
|
||||
}
|
||||
@@ -84,13 +89,13 @@ esac
|
||||
if [ -z "${INC_BUILD:-}" ]; then
|
||||
do_configure || do_exit $?
|
||||
if [ $do_maketest -eq 1 ]; then
|
||||
make LOG=info CONF=$RELEASE_NAME clean images test-image || do_exit $?
|
||||
make LOG=info CONF=$RELEASE_NAME clean images test-image jbr-api JBR_API_JBR_VERSION=TEST || do_exit $?
|
||||
else
|
||||
make LOG=info CONF=$RELEASE_NAME clean images || do_exit $?
|
||||
fi
|
||||
else
|
||||
if [ $do_maketest -eq 1 ]; then
|
||||
make LOG=info CONF=$RELEASE_NAME images test-image || do_exit $?
|
||||
make LOG=info CONF=$RELEASE_NAME images test-image jbr-api JBR_API_JBR_VERSION=TEST || do_exit $?
|
||||
else
|
||||
make LOG=info CONF=$RELEASE_NAME images || do_exit $?
|
||||
fi
|
||||
|
||||
@@ -51,6 +51,7 @@ pack_jbr jbrsdk${jbr_name_postfix} jbrsdk
|
||||
|
||||
if [ $do_maketest -eq 1 ]; then
|
||||
JBRSDK_TEST=$JBRSDK_BUNDLE-$JBSDK_VERSION-windows-test-aarch64-b$build_number
|
||||
cp "build/${RELEASE_NAME}/jbr-api/jbr-api.jar" "${IMAGES_DIR}/test" || do_exit $?
|
||||
echo Creating $JBRSDK_TEST.tar.gz ...
|
||||
/usr/bin/tar -czf $JBRSDK_TEST.tar.gz -C $IMAGES_DIR --exclude='test/jdk/demos' test || do_exit $?
|
||||
fi
|
||||
@@ -51,6 +51,7 @@ pack_jbr jbrsdk${jbr_name_postfix} jbrsdk
|
||||
|
||||
if [ $do_maketest -eq 1 ]; then
|
||||
JBRSDK_TEST=$JBRSDK_BUNDLE-$JBSDK_VERSION-windows-test-x64-b$build_number
|
||||
cp "build/${RELEASE_NAME}/jbr-api/jbr-api.jar" "${IMAGES_DIR}/test" || do_exit $?
|
||||
echo Creating $JBRSDK_TEST.tar.gz ...
|
||||
/usr/bin/tar -czf $JBRSDK_TEST.tar.gz -C $IMAGES_DIR --exclude='test/jdk/demos' test || do_exit $?
|
||||
fi
|
||||
@@ -32,6 +32,8 @@ function pack_jbr {
|
||||
[ "$bundle_type" == "nomod" ] && bundle_type=""
|
||||
|
||||
JBRSDK_BUNDLE=jbrsdk
|
||||
RELEASE_NAME=windows-x86_64-server-release
|
||||
IMAGES_DIR=build/$RELEASE_NAME/images
|
||||
BASE_DIR=.
|
||||
|
||||
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "dcevm" ] || [ "$bundle_type" == "fd" ]; then
|
||||
@@ -45,6 +47,7 @@ pack_jbr jbrsdk${jbr_name_postfix} jbrsdk
|
||||
|
||||
if [ $do_maketest -eq 1 ]; then
|
||||
JBRSDK_TEST=$JBRSDK_BUNDLE-$JBSDK_VERSION-windows-test-x86-b$build_number
|
||||
cp "build/${RELEASE_NAME}/jbr-api/jbr-api.jar" "${IMAGES_DIR}/test" || do_exit $?
|
||||
echo Creating $JBRSDK_TEST.tar.gz ...
|
||||
/usr/bin/tar -czf $JBRSDK_TEST.tar.gz -C $BASE_DIR --exclude='test/jdk/demos' test || do_exit $?
|
||||
fi
|
||||
@@ -278,16 +278,7 @@ ifneq ($(filter product-bundles% legacy-bundles, $(MAKECMDGOALS)), )
|
||||
$(SYMBOLS_EXCLUDE_PATTERN), \
|
||||
$(ALL_JRE_FILES))
|
||||
|
||||
# On Macosx release builds, when there is a code signing certificate available,
|
||||
# the final bundle layout can be signed.
|
||||
SIGN_BUNDLE := false
|
||||
ifeq ($(call isTargetOs, macosx)+$(DEBUG_LEVEL), true+release)
|
||||
ifneq ($(CODESIGN), )
|
||||
SIGN_BUNDLE := true
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(SIGN_BUNDLE), true)
|
||||
ifeq ($(MACOSX_CODESIGN_MODE), hardened)
|
||||
# Macosx release build and code signing available.
|
||||
|
||||
################################################################################
|
||||
|
||||
@@ -1,17 +1,26 @@
|
||||
#
|
||||
# Copyright 2000-2021 JetBrains s.r.o.
|
||||
# Copyright 2000-2023 JetBrains s.r.o.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
include $(SPEC)
|
||||
|
||||
@@ -160,25 +160,23 @@ AC_DEFUN([BASIC_CHECK_MAKE_VERSION],
|
||||
AC_DEFUN([BASIC_CHECK_MAKE_OUTPUT_SYNC],
|
||||
[
|
||||
# Check if make supports the output sync option and if so, setup using it.
|
||||
AC_MSG_CHECKING([if make --output-sync is supported])
|
||||
if $MAKE --version -O > /dev/null 2>&1; then
|
||||
OUTPUT_SYNC_SUPPORTED=true
|
||||
AC_MSG_RESULT([yes])
|
||||
AC_MSG_CHECKING([for output-sync value])
|
||||
AC_ARG_WITH([output-sync], [AS_HELP_STRING([--with-output-sync],
|
||||
[set make output sync type if supported by make. @<:@recurse@:>@])],
|
||||
[OUTPUT_SYNC=$with_output_sync])
|
||||
if test "x$OUTPUT_SYNC" = "x"; then
|
||||
OUTPUT_SYNC=none
|
||||
fi
|
||||
AC_MSG_RESULT([$OUTPUT_SYNC])
|
||||
if ! $MAKE --version -O$OUTPUT_SYNC > /dev/null 2>&1; then
|
||||
AC_MSG_ERROR([Make did not the support the value $OUTPUT_SYNC as output sync type.])
|
||||
fi
|
||||
else
|
||||
OUTPUT_SYNC_SUPPORTED=false
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
UTIL_ARG_WITH(NAME: output-sync, TYPE: literal,
|
||||
VALID_VALUES: [none recurse line target], DEFAULT: recurse,
|
||||
OPTIONAL: true, ENABLED_DEFAULT: true,
|
||||
ENABLED_RESULT: OUTPUT_SYNC_SUPPORTED,
|
||||
CHECKING_MSG: [for make --output-sync value],
|
||||
DESC: [set make --output-sync type if supported by make],
|
||||
CHECK_AVAILABLE:
|
||||
[
|
||||
AC_MSG_CHECKING([if make --output-sync is supported])
|
||||
if ! $MAKE --version -O > /dev/null 2>&1; then
|
||||
AC_MSG_RESULT([no])
|
||||
AVAILABLE=false
|
||||
else
|
||||
AC_MSG_RESULT([yes])
|
||||
fi
|
||||
]
|
||||
)
|
||||
AC_SUBST(OUTPUT_SYNC_SUPPORTED)
|
||||
AC_SUBST(OUTPUT_SYNC)
|
||||
])
|
||||
@@ -378,43 +376,6 @@ AC_DEFUN_ONCE([BASIC_SETUP_COMPLEX_TOOLS],
|
||||
UTIL_REQUIRE_PROGS(MIG, mig)
|
||||
UTIL_REQUIRE_PROGS(XATTR, xattr)
|
||||
UTIL_LOOKUP_PROGS(CODESIGN, codesign)
|
||||
|
||||
if test "x$CODESIGN" != "x"; then
|
||||
# Check for user provided code signing identity.
|
||||
# If no identity was provided, fall back to "openjdk_codesign".
|
||||
AC_ARG_WITH([macosx-codesign-identity], [AS_HELP_STRING([--with-macosx-codesign-identity],
|
||||
[specify the code signing identity])],
|
||||
[MACOSX_CODESIGN_IDENTITY=$with_macosx_codesign_identity],
|
||||
[MACOSX_CODESIGN_IDENTITY=openjdk_codesign]
|
||||
)
|
||||
|
||||
AC_SUBST(MACOSX_CODESIGN_IDENTITY)
|
||||
|
||||
# Verify that the codesign certificate is present
|
||||
AC_MSG_CHECKING([if codesign certificate is present])
|
||||
$RM codesign-testfile
|
||||
$TOUCH codesign-testfile
|
||||
$CODESIGN -s "$MACOSX_CODESIGN_IDENTITY" codesign-testfile 2>&AS_MESSAGE_LOG_FD \
|
||||
>&AS_MESSAGE_LOG_FD || CODESIGN=
|
||||
$RM codesign-testfile
|
||||
if test "x$CODESIGN" = x; then
|
||||
AC_MSG_RESULT([no])
|
||||
else
|
||||
AC_MSG_RESULT([yes])
|
||||
# Verify that the codesign has --option runtime
|
||||
AC_MSG_CHECKING([if codesign has --option runtime])
|
||||
$RM codesign-testfile
|
||||
$TOUCH codesign-testfile
|
||||
$CODESIGN --option runtime -s "$MACOSX_CODESIGN_IDENTITY" codesign-testfile \
|
||||
2>&AS_MESSAGE_LOG_FD >&AS_MESSAGE_LOG_FD || CODESIGN=
|
||||
$RM codesign-testfile
|
||||
if test "x$CODESIGN" = x; then
|
||||
AC_MSG_ERROR([codesign does not have --option runtime. macOS 10.13.6 and above is required.])
|
||||
else
|
||||
AC_MSG_RESULT([yes])
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
UTIL_REQUIRE_PROGS(SETFILE, SetFile)
|
||||
fi
|
||||
if ! test "x$OPENJDK_TARGET_OS" = "xwindows"; then
|
||||
|
||||
@@ -40,6 +40,7 @@ export AWK="@AWK@"
|
||||
export BASH="@BASH@"
|
||||
export CAT="@CAT@"
|
||||
export CMP="@CMP@"
|
||||
export CODESIGN="@CODESIGN@"
|
||||
export CP="@CP@"
|
||||
export CUT="@CUT@"
|
||||
export DIFF="@DIFF@"
|
||||
|
||||
@@ -252,6 +252,7 @@ JDKOPT_EXCLUDE_TRANSLATIONS
|
||||
JDKOPT_ENABLE_DISABLE_MANPAGES
|
||||
JDKOPT_ENABLE_DISABLE_CDS_ARCHIVE
|
||||
JDKOPT_ENABLE_DISABLE_COMPATIBLE_CDS_ALIGNMENT
|
||||
JDKOPT_SETUP_MACOSX_SIGNING
|
||||
|
||||
###############################################################################
|
||||
#
|
||||
|
||||
@@ -248,6 +248,31 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_JDK_OPTIONS],
|
||||
fi
|
||||
AC_SUBST(HOTSPOT_OVERRIDE_LIBPATH)
|
||||
|
||||
# Should we build the client for the JAWS screen reader?
|
||||
if test "x$OPENJDK_TARGET_OS" = xwindows; then
|
||||
AC_MSG_CHECKING([if JAWS client support is enabled])
|
||||
|
||||
A11Y_JAWS_ANNOUNCING_ENABLED=true
|
||||
AC_ARG_ENABLE(
|
||||
[jaws-client],
|
||||
[AS_HELP_STRING([--disable-jaws-client], [Set to disable to exclude the client for the JAWS screen reader from the build])],
|
||||
[
|
||||
if test "x$ENABLE_HEADLESS_ONLY" = xtrue; then
|
||||
AC_MSG_WARN([--[enable|disable]-jaws-client[=*] flags are ignored for headless builds])
|
||||
elif test "x$enableval" != xyes; then
|
||||
A11Y_JAWS_ANNOUNCING_ENABLED=false
|
||||
fi
|
||||
]
|
||||
)
|
||||
if test "x$ENABLE_HEADLESS_ONLY" = xtrue; then
|
||||
A11Y_JAWS_ANNOUNCING_ENABLED=false
|
||||
fi
|
||||
|
||||
AC_MSG_RESULT([$A11Y_JAWS_ANNOUNCING_ENABLED])
|
||||
else
|
||||
A11Y_JAWS_ANNOUNCING_ENABLED=false
|
||||
fi
|
||||
AC_SUBST(A11Y_JAWS_ANNOUNCING_ENABLED)
|
||||
])
|
||||
|
||||
###############################################################################
|
||||
@@ -766,3 +791,105 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_REPRODUCIBLE_BUILD],
|
||||
AC_SUBST(SOURCE_DATE)
|
||||
AC_SUBST(ENABLE_REPRODUCIBLE_BUILD)
|
||||
])
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# Setup signing on macOS. This can either be setup to sign with a real identity
|
||||
# and enabling the hardened runtime, or it can simply add the debug entitlement
|
||||
# com.apple.security.get-task-allow without actually signing any binaries. The
|
||||
# latter is needed to be able to debug processes and dump core files on modern
|
||||
# versions of macOS. It can also be skipped completely.
|
||||
#
|
||||
# Check if codesign will run with the given parameters
|
||||
# $1: Parameters to run with
|
||||
# $2: Checking message
|
||||
# Sets CODESIGN_SUCCESS=true/false
|
||||
AC_DEFUN([JDKOPT_CHECK_CODESIGN_PARAMS],
|
||||
[
|
||||
PARAMS="$1"
|
||||
MESSAGE="$2"
|
||||
CODESIGN_TESTFILE="$CONFIGURESUPPORT_OUTPUTDIR/codesign-testfile"
|
||||
$RM "$CODESIGN_TESTFILE"
|
||||
$TOUCH "$CODESIGN_TESTFILE"
|
||||
CODESIGN_SUCCESS=false
|
||||
$CODESIGN $PARAMS "$CODESIGN_TESTFILE" 2>&AS_MESSAGE_LOG_FD \
|
||||
>&AS_MESSAGE_LOG_FD && CODESIGN_SUCCESS=true
|
||||
$RM "$CODESIGN_TESTFILE"
|
||||
AC_MSG_CHECKING([$MESSAGE])
|
||||
if test "x$CODESIGN_SUCCESS" = "xtrue"; then
|
||||
AC_MSG_RESULT([yes])
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN([JDKOPT_CHECK_CODESIGN_HARDENED],
|
||||
[
|
||||
JDKOPT_CHECK_CODESIGN_PARAMS([-s "$MACOSX_CODESIGN_IDENTITY" --option runtime],
|
||||
[if codesign with hardened runtime is possible])
|
||||
])
|
||||
|
||||
AC_DEFUN([JDKOPT_CHECK_CODESIGN_DEBUG],
|
||||
[
|
||||
JDKOPT_CHECK_CODESIGN_PARAMS([-s -], [if debug mode codesign is possible])
|
||||
])
|
||||
|
||||
AC_DEFUN([JDKOPT_SETUP_MACOSX_SIGNING],
|
||||
[
|
||||
ENABLE_CODESIGN=false
|
||||
if test "x$OPENJDK_TARGET_OS" = "xmacosx" && test "x$CODESIGN" != "x"; then
|
||||
|
||||
UTIL_ARG_WITH(NAME: macosx-codesign, TYPE: literal, OPTIONAL: true,
|
||||
VALID_VALUES: [hardened debug auto], DEFAULT: auto,
|
||||
ENABLED_DEFAULT: true,
|
||||
CHECKING_MSG: [for macosx code signing mode],
|
||||
DESC: [set the macosx code signing mode (hardened, debug, auto)]
|
||||
)
|
||||
|
||||
MACOSX_CODESIGN_MODE=disabled
|
||||
if test "x$MACOSX_CODESIGN_ENABLED" = "xtrue"; then
|
||||
|
||||
# Check for user provided code signing identity.
|
||||
UTIL_ARG_WITH(NAME: macosx-codesign-identity, TYPE: string,
|
||||
DEFAULT: openjdk_codesign, CHECK_VALUE: UTIL_CHECK_STRING_NON_EMPTY,
|
||||
DESC: [specify the macosx code signing identity],
|
||||
CHECKING_MSG: [for macosx code signing identity]
|
||||
)
|
||||
AC_SUBST(MACOSX_CODESIGN_IDENTITY)
|
||||
|
||||
if test "x$MACOSX_CODESIGN" = "xauto"; then
|
||||
# Only try to default to hardened signing on release builds
|
||||
if test "x$DEBUG_LEVEL" = "xrelease"; then
|
||||
JDKOPT_CHECK_CODESIGN_HARDENED
|
||||
if test "x$CODESIGN_SUCCESS" = "xtrue"; then
|
||||
MACOSX_CODESIGN_MODE=hardened
|
||||
fi
|
||||
fi
|
||||
if test "x$MACOSX_CODESIGN_MODE" = "xdisabled"; then
|
||||
JDKOPT_CHECK_CODESIGN_DEBUG
|
||||
if test "x$CODESIGN_SUCCESS" = "xtrue"; then
|
||||
MACOSX_CODESIGN_MODE=debug
|
||||
fi
|
||||
fi
|
||||
AC_MSG_CHECKING([for macosx code signing mode])
|
||||
AC_MSG_RESULT([$MACOSX_CODESIGN_MODE])
|
||||
elif test "x$MACOSX_CODESIGN" = "xhardened"; then
|
||||
JDKOPT_CHECK_CODESIGN_HARDENED
|
||||
if test "x$CODESIGN_SUCCESS" = "xfalse"; then
|
||||
AC_MSG_ERROR([Signing with hardened runtime is not possible])
|
||||
fi
|
||||
MACOSX_CODESIGN_MODE=hardened
|
||||
elif test "x$MACOSX_CODESIGN" = "xdebug"; then
|
||||
JDKOPT_CHECK_CODESIGN_DEBUG
|
||||
if test "x$CODESIGN_SUCCESS" = "xfalse"; then
|
||||
AC_MSG_ERROR([Signing in debug mode is not possible])
|
||||
fi
|
||||
MACOSX_CODESIGN_MODE=debug
|
||||
else
|
||||
AC_MSG_ERROR([unknown value for --with-macosx-codesign: $MACOSX_CODESIGN])
|
||||
fi
|
||||
fi
|
||||
AC_SUBST(MACOSX_CODESIGN_IDENTITY)
|
||||
AC_SUBST(MACOSX_CODESIGN_MODE)
|
||||
fi
|
||||
])
|
||||
|
||||
121
make/autoconf/lib-nvdacontrollerclient.m4
Normal file
121
make/autoconf/lib-nvdacontrollerclient.m4
Normal file
@@ -0,0 +1,121 @@
|
||||
#
|
||||
# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2022, JetBrains s.r.o.. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
################################################################################
|
||||
# Setup nvdacontrollerclient (The library for communication with
|
||||
# NVDA - a screen reader for Microsoft Windows)
|
||||
################################################################################
|
||||
AC_DEFUN_ONCE([LIB_SETUP_NVDACONTROLLERCLIENT], [
|
||||
# To enable NVDA, user specifies neither --with-nvdacontrollerclient or
|
||||
# a pair (--with-nvdacontrollerclient-include, --with-nvdacontrollerclient-lib)
|
||||
AC_ARG_WITH(nvdacontrollerclient, [AS_HELP_STRING([--with-nvdacontrollerclient],
|
||||
[specify prefix directory for the NVDA Controller Client library package
|
||||
(expecting headers and libs under PATH/<target-arch>/)])])
|
||||
AC_ARG_WITH(nvdacontrollerclient-include, [AS_HELP_STRING([--with-nvdacontrollerclient-include],
|
||||
[specify directory for the NVDA Controller Client include files])])
|
||||
AC_ARG_WITH(nvdacontrollerclient-lib, [AS_HELP_STRING([--with-nvdacontrollerclient-lib],
|
||||
[specify directory for the NVDA Controller Client library])])
|
||||
|
||||
NVDACONTROLLERCLIENT_FOUND=no
|
||||
NVDACONTROLLERCLIENT_LIB=
|
||||
NVDACONTROLLERCLIENT_DLL=
|
||||
NVDACONTROLLERCLIENT_CFLAGS=
|
||||
|
||||
if test "x${NEEDS_LIB_NVDACONTROLLERCLIENT}" = "xtrue" ; then
|
||||
if (test "x${with_nvdacontrollerclient_include}" = "x" && test "x${with_nvdacontrollerclient_lib}" != "x") || \
|
||||
(test "x${with_nvdacontrollerclient_include}" != "x" && test "x${with_nvdacontrollerclient_lib}" = "x") ; then
|
||||
AC_MSG_ERROR([Must specify both or neither of --with-nvdacontrollerclient-include and --with-nvdacontrollerclient-lib])
|
||||
elif (test "x${with_nvdacontrollerclient}" != "x" && test "x${with_nvdacontrollerclient_include}" != "x") ; then
|
||||
AC_MSG_ERROR([Must specify either --with-nvdacontrollerclient or a pair (--with-nvdacontrollerclient-include, --with-nvdacontrollerclient-lib)])
|
||||
fi
|
||||
|
||||
if (test "x${with_nvdacontrollerclient}" != "x") || \
|
||||
(test "x${with_nvdacontrollerclient_include}" != "x" && test "x${with_nvdacontrollerclient_lib}" != "x") ; then
|
||||
|
||||
AC_MSG_CHECKING([for nvdacontrollerclient])
|
||||
|
||||
if test "x${OPENJDK_TARGET_OS}" != "xwindows" ; then
|
||||
AC_MSG_ERROR([--with-nvdacontrollerclient[-*] flags are applicable only to Windows builds])
|
||||
fi
|
||||
|
||||
if test "x${OPENJDK_TARGET_CPU_ARCH}" = "xaarch64" ; then
|
||||
NVDACONTROLLERCLIENT_BIN_BASENAME="nvdaControllerClient32"
|
||||
NVDACONTROLLERCLIENT_ARCHDIR="arm64"
|
||||
elif test "x${OPENJDK_TARGET_CPU_ARCH}" = "xx86" && test "x${OPENJDK_TARGET_CPU_BITS}" = "x64" ; then
|
||||
NVDACONTROLLERCLIENT_BIN_BASENAME="nvdaControllerClient64"
|
||||
NVDACONTROLLERCLIENT_ARCHDIR="x64"
|
||||
elif test "x${OPENJDK_TARGET_CPU_ARCH}" = "xx86" && test "x${OPENJDK_TARGET_CPU_BITS}" = "x32" ; then
|
||||
NVDACONTROLLERCLIENT_BIN_BASENAME="nvdaControllerClient32"
|
||||
NVDACONTROLLERCLIENT_ARCHDIR="x86"
|
||||
else
|
||||
AC_MSG_ERROR([The nvdacontrollerclient library exists only for x86_32, x86_64, AArch64 architectures])
|
||||
fi
|
||||
|
||||
if test "x${with_nvdacontrollerclient}" != "x" ; then
|
||||
# NVDACONTROLLERCLIENT_ARCHDIR is used only here
|
||||
NVDACONTROLLERCLIENT_INC_PATH="${with_nvdacontrollerclient}/${NVDACONTROLLERCLIENT_ARCHDIR}"
|
||||
NVDACONTROLLERCLIENT_BIN_PATH="${with_nvdacontrollerclient}/${NVDACONTROLLERCLIENT_ARCHDIR}"
|
||||
else
|
||||
NVDACONTROLLERCLIENT_INC_PATH="${with_nvdacontrollerclient_include}"
|
||||
NVDACONTROLLERCLIENT_BIN_PATH="${with_nvdacontrollerclient_lib}"
|
||||
fi
|
||||
|
||||
POTENTIAL_NVDACONTROLLERCLIENT_DLL="${NVDACONTROLLERCLIENT_BIN_PATH}/${NVDACONTROLLERCLIENT_BIN_BASENAME}.dll"
|
||||
POTENTIAL_NVDACONTROLLERCLIENT_LIB="${NVDACONTROLLERCLIENT_BIN_PATH}/${NVDACONTROLLERCLIENT_BIN_BASENAME}.lib"
|
||||
POTENTIAL_NVDACONTROLLERCLIENT_EXP="${NVDACONTROLLERCLIENT_BIN_PATH}/${NVDACONTROLLERCLIENT_BIN_BASENAME}.exp"
|
||||
|
||||
if ! test -s "${POTENTIAL_NVDACONTROLLERCLIENT_DLL}" || \
|
||||
! test -s "${POTENTIAL_NVDACONTROLLERCLIENT_LIB}" || \
|
||||
! test -s "${POTENTIAL_NVDACONTROLLERCLIENT_EXP}" ; then
|
||||
AC_MSG_ERROR([Could not find ${NVDACONTROLLERCLIENT_BIN_BASENAME}.dll and/or ${NVDACONTROLLERCLIENT_BIN_BASENAME}.lib and/or ${NVDACONTROLLERCLIENT_BIN_BASENAME}.exp inside ${NVDACONTROLLERCLIENT_BIN_PATH}])
|
||||
fi
|
||||
if ! test -s "${NVDACONTROLLERCLIENT_INC_PATH}/nvdaController.h" ; then
|
||||
AC_MSG_ERROR([Could not find the header file nvdaController.h inside ${NVDACONTROLLERCLIENT_INC_PATH}])
|
||||
fi
|
||||
|
||||
NVDACONTROLLERCLIENT_CFLAGS="-I${NVDACONTROLLERCLIENT_INC_PATH}"
|
||||
NVDACONTROLLERCLIENT_DLL="${POTENTIAL_NVDACONTROLLERCLIENT_DLL}"
|
||||
NVDACONTROLLERCLIENT_LIB="${POTENTIAL_NVDACONTROLLERCLIENT_LIB}"
|
||||
NVDACONTROLLERCLIENT_FOUND=yes
|
||||
|
||||
AC_MSG_RESULT([includes at ${NVDACONTROLLERCLIENT_INC_PATH} ; binaries at ${NVDACONTROLLERCLIENT_BIN_PATH}])
|
||||
fi
|
||||
elif test "x${with_nvdacontrollerclient}" != "x" || \
|
||||
test "x${with_nvdacontrollerclient_include}" != "x" || test "x${with_nvdacontrollerclient_lib}" != "x" ; then
|
||||
AC_MSG_WARN([[nvdacontrollerclient is not used, so --with-nvdacontrollerclient[-*] is ignored]])
|
||||
fi
|
||||
|
||||
if test "x${NVDACONTROLLERCLIENT_FOUND}" = "xyes" ; then
|
||||
A11Y_NVDA_ANNOUNCING_ENABLED=true
|
||||
else
|
||||
A11Y_NVDA_ANNOUNCING_ENABLED=false
|
||||
fi
|
||||
|
||||
AC_SUBST(A11Y_NVDA_ANNOUNCING_ENABLED)
|
||||
AC_SUBST(NVDACONTROLLERCLIENT_CFLAGS)
|
||||
AC_SUBST(NVDACONTROLLERCLIENT_DLL)
|
||||
AC_SUBST(NVDACONTROLLERCLIENT_LIB)
|
||||
])
|
||||
92
make/autoconf/lib-speechd.m4
Normal file
92
make/autoconf/lib-speechd.m4
Normal file
@@ -0,0 +1,92 @@
|
||||
#
|
||||
# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2022, JetBrains s.r.o.. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
################################################################################
|
||||
# Setup speechd
|
||||
################################################################################
|
||||
AC_DEFUN_ONCE([LIB_SETUP_SPEECHD],
|
||||
[
|
||||
AC_ARG_WITH(speechd, [AS_HELP_STRING([--with-speechd],
|
||||
[specify prefix directory for the libspeechd package
|
||||
(expecting the headers under PATH/include); required for AccessibleAnnouncer to work])])
|
||||
AC_ARG_WITH(speechd-include, [AS_HELP_STRING([--with-speechd-include],
|
||||
[specify directory for the speechd include files])])
|
||||
|
||||
if test "x$NEEDS_LIB_SPEECHD" = xfalse || test "x${with_speechd}" = xno || \
|
||||
test "x${with_speechd_include}" = xno; then
|
||||
if (test "x${with_speechd}" != x && test "x${with_speechd}" != xno) || \
|
||||
(test "x${with_speechd_include}" != x && test "x${with_speechd_include}" != xno); then
|
||||
AC_MSG_WARN([[speechd not used, so --with-speechd[-*] is ignored]])
|
||||
fi
|
||||
A11Y_SPEECHD_ANNOUNCING_ENABLED=false
|
||||
SPEECHD_CFLAGS=
|
||||
SPEECHD_LIBS=
|
||||
else
|
||||
SPEECHD_FOUND=no
|
||||
|
||||
if test "x${with_speechd}" != x && test "x${with_speechd}" != xyes; then
|
||||
AC_MSG_CHECKING([for speechd header and library])
|
||||
if test -s "${with_speechd}/include/libspeechd.h"; then
|
||||
SPEECHD_CFLAGS="-I${with_speechd}/include"
|
||||
SPEECHD_LIBS="-L${with_speechd}/lib -lspeechd"
|
||||
SPEECHD_FOUND=yes
|
||||
AC_MSG_RESULT([$SPEECHD_FOUND])
|
||||
else
|
||||
AC_MSG_ERROR([Can't find 'include/libspeechd.h' under ${with_speechd} given with the --with-speechd option.])
|
||||
fi
|
||||
fi
|
||||
if test "x${with_speechd_include}" != x; then
|
||||
AC_MSG_CHECKING([for speechd headers])
|
||||
if test -s "${with_speechd_include}/libspeechd.h"; then
|
||||
SPEECHD_CFLAGS="-I${with_speechd_include}"
|
||||
SPEECHD_FOUND=yes
|
||||
AC_MSG_RESULT([$SPEECHD_FOUND])
|
||||
else
|
||||
AC_MSG_ERROR([Can't find 'include/libspeechd.h' under ${with_speechd} given with the --with-speechd-include option.])
|
||||
fi
|
||||
fi
|
||||
if test "x$SPEECHD_FOUND" = xno; then
|
||||
# Are the libspeechd headers installed in the default /usr/include location?
|
||||
AC_CHECK_HEADERS([libspeechd.h],
|
||||
[ SPEECHD_FOUND=yes ],
|
||||
[ SPEECHD_FOUND=no; break ]
|
||||
)
|
||||
if test "x$SPEECHD_FOUND" = xyes; then
|
||||
SPEECHD_CFLAGS=
|
||||
SPEECHD_LIBS="-lspeechd"
|
||||
fi
|
||||
fi
|
||||
if test "x$SPEECHD_FOUND" = xno; then
|
||||
A11Y_SPEECHD_ANNOUNCING_ENABLED=false
|
||||
else
|
||||
A11Y_SPEECHD_ANNOUNCING_ENABLED=true
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_SUBST(A11Y_SPEECHD_ANNOUNCING_ENABLED)
|
||||
AC_SUBST(SPEECHD_CFLAGS)
|
||||
AC_SUBST(SPEECHD_LIBS)
|
||||
])
|
||||
@@ -32,6 +32,8 @@ m4_include([lib-freetype.m4])
|
||||
m4_include([lib-std.m4])
|
||||
m4_include([lib-x11.m4])
|
||||
m4_include([lib-fontconfig.m4])
|
||||
m4_include([lib-speechd.m4])
|
||||
m4_include([lib-nvdacontrollerclient.m4])
|
||||
m4_include([lib-tests.m4])
|
||||
|
||||
################################################################################
|
||||
@@ -43,12 +45,15 @@ AC_DEFUN_ONCE([LIB_DETERMINE_DEPENDENCIES],
|
||||
if test "x$OPENJDK_TARGET_OS" = xwindows || test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
||||
# No X11 support on windows or macosx
|
||||
NEEDS_LIB_X11=false
|
||||
NEEDS_LIB_SPEECHD=false
|
||||
elif test "x$ENABLE_HEADLESS_ONLY" = xtrue; then
|
||||
# No X11 support needed when building headless only
|
||||
NEEDS_LIB_X11=false
|
||||
NEEDS_LIB_SPEECHD=false
|
||||
else
|
||||
# All other instances need X11
|
||||
NEEDS_LIB_X11=true
|
||||
NEEDS_LIB_SPEECHD=true
|
||||
fi
|
||||
|
||||
# Check if fontconfig is needed
|
||||
@@ -87,6 +92,13 @@ AC_DEFUN_ONCE([LIB_DETERMINE_DEPENDENCIES],
|
||||
else
|
||||
NEEDS_LIB_FFI=false
|
||||
fi
|
||||
|
||||
# Check if nvdacontrollerclient is needed
|
||||
if test "x$OPENJDK_TARGET_OS" = xwindows && test "x$ENABLE_HEADLESS_ONLY" != xtrue; then
|
||||
NEEDS_LIB_NVDACONTROLLERCLIENT=true
|
||||
else
|
||||
NEEDS_LIB_NVDACONTROLLERCLIENT=false
|
||||
fi
|
||||
])
|
||||
|
||||
################################################################################
|
||||
@@ -103,6 +115,8 @@ AC_DEFUN_ONCE([LIB_SETUP_LIBRARIES],
|
||||
LIB_SETUP_LIBFFI
|
||||
LIB_SETUP_BUNDLED_LIBS
|
||||
LIB_SETUP_MISC_LIBS
|
||||
LIB_SETUP_SPEECHD
|
||||
LIB_SETUP_NVDACONTROLLERCLIENT
|
||||
LIB_TESTS_SETUP_GTEST
|
||||
|
||||
BASIC_JDKLIB_LIBS=""
|
||||
|
||||
@@ -447,12 +447,27 @@ endif
|
||||
X_CFLAGS:=@X_CFLAGS@
|
||||
X_LIBS:=@X_LIBS@
|
||||
|
||||
# Linux speechd a11y announcer
|
||||
A11Y_SPEECHD_ANNOUNCING_ENABLED:=@A11Y_SPEECHD_ANNOUNCING_ENABLED@
|
||||
SPEECHD_CFLAGS:=@SPEECHD_CFLAGS@
|
||||
SPEECHD_LIBS:=@SPEECHD_LIBS@
|
||||
|
||||
# Windows NVDA a11y announcer
|
||||
A11Y_NVDA_ANNOUNCING_ENABLED:=@A11Y_NVDA_ANNOUNCING_ENABLED@
|
||||
NVDACONTROLLERCLIENT_CFLAGS:=@NVDACONTROLLERCLIENT_CFLAGS@
|
||||
NVDACONTROLLERCLIENT_DLL:=@NVDACONTROLLERCLIENT_DLL@
|
||||
NVDACONTROLLERCLIENT_LIB:=@NVDACONTROLLERCLIENT_LIB@
|
||||
|
||||
# Windows the client for the JAWS screen reader
|
||||
A11Y_JAWS_ANNOUNCING_ENABLED:=@A11Y_JAWS_ANNOUNCING_ENABLED@
|
||||
|
||||
# The lowest required version of macosx
|
||||
MACOSX_VERSION_MIN=@MACOSX_VERSION_MIN@
|
||||
# The highest allowed version of macosx
|
||||
MACOSX_VERSION_MAX=@MACOSX_VERSION_MAX@
|
||||
|
||||
# The macosx code signing identity to use
|
||||
# The macosx code signing configuration
|
||||
MACOSX_CODESIGN_MODE:=@MACOSX_CODESIGN_MODE@
|
||||
MACOSX_CODESIGN_IDENTITY=@MACOSX_CODESIGN_IDENTITY@
|
||||
|
||||
# Toolchain type: gcc, clang, xlc, microsoft...
|
||||
|
||||
@@ -328,12 +328,12 @@ AC_DEFUN([UTIL_ALIASED_ARG_ENABLE],
|
||||
# Creates a command-line option using the --enable-* pattern. Will return a
|
||||
# value of 'true' or 'false' in the RESULT variable, depending on whether the
|
||||
# option was enabled or not by the user. The option can not be turned on if it
|
||||
# is not available, as specified by AVAILABLE and/or AVAILABLE_CHECK.
|
||||
# is not available, as specified by AVAILABLE and/or CHECK_AVAILABLE.
|
||||
#
|
||||
# Arguments:
|
||||
# NAME: The base name of this option (i.e. what follows --enable-). Required.
|
||||
# RESULT: The name of the variable to set to the result. Defaults to
|
||||
# <NAME in uppercase>_RESULT.
|
||||
# <NAME in uppercase>_ENABLED.
|
||||
# DEFAULT: The default value for this option. Can be true, false or auto.
|
||||
# Defaults to true.
|
||||
# AVAILABLE: If true, this option is allowed to be selected. Defaults to true.
|
||||
@@ -379,7 +379,7 @@ UTIL_DEFUN_NAMED([UTIL_ARG_ENABLE],
|
||||
m4_define([ARG_DESC], m4_if(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], ARG_CHECKING_MSG))
|
||||
m4_define([ARG_CHECKING_MSG], m4_if(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.
|
||||
@@ -466,3 +466,351 @@ UTIL_DEFUN_NAMED([UTIL_ARG_ENABLE],
|
||||
fi
|
||||
])
|
||||
|
||||
###############################################################################
|
||||
# Helper functions for ARG_WITH, to validate different types of argument
|
||||
|
||||
# Dispatcher to call the correct UTIL_CHECK_TYPE_* function depending on the ARG_TYPE
|
||||
AC_DEFUN([UTIL_CHECK_TYPE],
|
||||
[
|
||||
UTIL_CHECK_TYPE_$1($2)
|
||||
])
|
||||
|
||||
AC_DEFUN([UTIL_CHECK_TYPE_string],
|
||||
[
|
||||
# All strings always passes
|
||||
])
|
||||
|
||||
AC_DEFUN([UTIL_CHECK_TYPE_integer],
|
||||
[
|
||||
# Check that the argument is an integer
|
||||
# Additional [] needed to keep m4 from mangling shell constructs.
|
||||
[ if [[ ! "$1" =~ ^[0-9]+$ ]] ; then ]
|
||||
FAILURE="Not an integer: $1"
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN([UTIL_CHECK_TYPE_file],
|
||||
[
|
||||
# Check that the argument is an existing file
|
||||
if test ! -f "$1" ; then
|
||||
FAILURE="File $1 does not exist or is not readable"
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN([UTIL_CHECK_TYPE_directory],
|
||||
[
|
||||
# Check that the argument is an existing directory
|
||||
if test ! -d "$1" ; then
|
||||
FAILURE="Directory $1 does not exist or is not readable"
|
||||
fi
|
||||
|
||||
if test "[x]ARG_CHECK_FOR_FILES" != x; then
|
||||
for file in ARG_CHECK_FOR_FILES; do
|
||||
found_files=$($ECHO $(ls $1/$file 2> /dev/null))
|
||||
if test "x$found_files" = x; then
|
||||
FAILURE="Directory $1 does not contain $file"
|
||||
break
|
||||
elif ! test -e "$found_files"; then
|
||||
FAILURE="Directory $1 contains multiple $file: $found_files"
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN([UTIL_CHECK_TYPE_literal],
|
||||
[
|
||||
# Check if it contains a space between non-space characters
|
||||
# Additional [] needed to keep m4 from mangling shell constructs.
|
||||
[ if [[ "$1" =~ [^' ']' '+[^' '] ]] ; then ]
|
||||
FAILURE="Multiple words: $1"
|
||||
fi
|
||||
|
||||
# Check that the selected variants are valid
|
||||
UTIL_GET_NON_MATCHING_VALUES(invalid_value, $1, \
|
||||
ARG_VALID_VALUES)
|
||||
if test "x$invalid_value" != x; then
|
||||
FAILURE="Invalid value: $invalid_value. Valid values are: ARG_VALID_VALUES"
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN([UTIL_CHECK_TYPE_multivalue],
|
||||
[
|
||||
# We accept either space or comma as separator, but use space internally
|
||||
values=`$ECHO $1 | $SED -e 's/,/ /g'`
|
||||
|
||||
# Check that the selected variants are valid
|
||||
UTIL_GET_NON_MATCHING_VALUES(invalid_value, $values, \
|
||||
ARG_VALID_VALUES)
|
||||
if test "x$invalid_value" != x; then
|
||||
FAILURE="Invalid value(s): $invalid_value. Valid values are: ARG_VALID_VALUES"
|
||||
fi
|
||||
|
||||
# Update to version without comma
|
||||
ARG_RESULT=$($ECHO $values)
|
||||
])
|
||||
|
||||
AC_DEFUN([UTIL_CHECK_TYPE_features],
|
||||
[
|
||||
# We accept either space or comma as separator, but use space internally
|
||||
feature_list=`$ECHO $1 | $SED -e 's/,/ /g'`
|
||||
features_enabled=`$ECHO $feature_list | \
|
||||
$AWK '{ for (i=1; i<=NF; i++) if (!match($i, /^-.*/)) printf("%s ", $i) }'`
|
||||
features_disabled=`$ECHO $feature_list | \
|
||||
$AWK '{ for (i=1; i<=NF; i++) if (match($i, /^-.*/)) printf("%s ", substr($i, 2))}'`
|
||||
|
||||
# Check that the selected features are valid
|
||||
UTIL_GET_NON_MATCHING_VALUES(invalid_features, $features_enabled \
|
||||
$features_disabled, ARG_VALID_VALUES)
|
||||
if test "x$invalid_features" != x; then
|
||||
FAILURE="Invalid feature(s): $invalid_features. Valid values are: ARG_VALID_VALUES"
|
||||
fi
|
||||
|
||||
# Update to version without comma
|
||||
ARG_RESULT=$($ECHO $feature_list)
|
||||
])
|
||||
|
||||
###############################################################################
|
||||
# Creates a command-line option using the --with-* pattern. Will return a
|
||||
# string in the RESULT variable with the option provided by the user, or the
|
||||
# empty string if the --with-* option was not given. The option can not be given
|
||||
# if it is not available, as specified by AVAILABLE and/or CHECK_AVAILABLE.
|
||||
#
|
||||
# Arguments:
|
||||
# NAME: The base name of this option (i.e. what follows --with-). Required.
|
||||
# TYPE: The type of the value. Can be one of "string", "integer", "file",
|
||||
# "directory", "literal", "multivalue" or "features". Required.
|
||||
# DEFAULT: The default value for this option. Can be any valid string.
|
||||
# Required.
|
||||
# OPTIONAL: If this feature can be disabled. Defaults to false. If true,
|
||||
# the feature can be disabled using --without-FOO, --with-FOO=no, or
|
||||
# --with-FOO=. Check the ENABLED_RESULT variable for the enabled/disabled
|
||||
# state.
|
||||
# RESULT: The name of the variable to set to the result. Defaults to
|
||||
# <NAME in uppercase>. Set to empty if ENABLED_RESULT is false.
|
||||
# ENABLED_DEFAULT: If the value is enabled by default. Defaults to false. Only
|
||||
# relevant if OPTIONAL is true.
|
||||
# ENABLED_RESULT: The name of the variable to set to the enabled/disabled
|
||||
# result state. Defaults to <NAME in uppercase>_ENABLED.
|
||||
# AVAILABLE: If true, this option is allowed to be selected. Defaults to true.
|
||||
# DESC: A description of this option. Defaults to a generic and unhelpful
|
||||
# string.
|
||||
# DEFAULT_DESC: A message describing the default value, for the help. Defaults
|
||||
# to the literal value of DEFAULT, or "<none>" if DEFAULT is empty.
|
||||
# CHECKING_MSG: The message to present to user when checking this option.
|
||||
# Defaults to a generic message.
|
||||
# CHECK_AVAILABLE: An optional code block to execute to determine if the
|
||||
# option should be available. Must set AVAILABLE to 'false' if not.
|
||||
# VALID_VALUES: A list of literals that are the allowed values. Only valid if
|
||||
# TYPE is "literal", "multivalue" or "features".
|
||||
# CHECK_VALUE: An optional code block to execute to determine if the value
|
||||
# is correct. Must set FAILURE to a non-empty string if not. This string
|
||||
# will be displayed. The value is given in $RESULT.
|
||||
# CHECK_FOR_FILES: A list of files to verify the presence for. Only valid if
|
||||
# TYPE is "directory". Paths are relative the directory given as value.
|
||||
# Wildcards are accepted. Exactly one matching file must be found, for each
|
||||
# listed file, or FAILURE is set.
|
||||
# IF_AUTO: An optional code block to execute if the value is "auto", either by
|
||||
# default or given by the command line. Must set RESULT to the calculated
|
||||
# value.
|
||||
# IF_GIVEN: An optional code block to execute if the option was given on the
|
||||
# command line (regardless of the value).
|
||||
# IF_NOT_GIVEN: An optional code block to execute if the option was not given
|
||||
# on the command line (regardless of the value).
|
||||
#
|
||||
UTIL_DEFUN_NAMED([UTIL_ARG_WITH],
|
||||
[*NAME *TYPE *DEFAULT OPTIONAL RESULT ENABLED_DEFAULT ENABLED_RESULT
|
||||
AVAILABLE DESC DEFAULT_DESC CHECKING_MSG CHECK_AVAILABLE VALID_VALUES
|
||||
CHECK_VALUE CHECK_FOR_FILES IF_AUTO IF_GIVEN IF_NOT_GIVEN], [$@],
|
||||
[
|
||||
##########################
|
||||
# Part 1: Set up m4 macros
|
||||
##########################
|
||||
|
||||
# If ENABLED_DEFAULT is not specified, set it to 'false'.
|
||||
m4_define([ARG_ENABLED_DEFAULT], m4_if(ARG_ENABLED_DEFAULT, , false, ARG_ENABLED_DEFAULT))
|
||||
|
||||
# If AVAILABLE is not specified, set it to 'true'.
|
||||
m4_define([ARG_AVAILABLE], m4_if(ARG_AVAILABLE, , true, ARG_AVAILABLE))
|
||||
|
||||
# If OPTIONAL is not specified, set it to 'false'.
|
||||
m4_define([ARG_OPTIONAL], m4_if(ARG_OPTIONAL, , false, ARG_OPTIONAL))
|
||||
|
||||
# If DEFAULT_DESC is not specified, calculate it from DEFAULT.
|
||||
m4_define([ARG_DEFAULT_DESC], m4_if(ARG_DEFAULT_DESC, , m4_if(ARG_DEFAULT, , <none>, ARG_DEFAULT), ARG_DEFAULT_DESC))
|
||||
|
||||
# If RESULT is not specified, set it to 'ARG_NAME'.
|
||||
m4_define([ARG_RESULT], m4_if(ARG_RESULT, , m4_translit(ARG_NAME, [a-z-], [A-Z_]), ARG_RESULT))
|
||||
|
||||
# If ENABLED_RESULT is not specified, set it to 'ARG_NAME[_ENABLED]'.
|
||||
m4_define([ARG_ENABLED_RESULT], m4_if(ARG_ENABLED_RESULT, , m4_translit(ARG_NAME, [a-z-], [A-Z_])[_ENABLED], ARG_ENABLED_RESULT))
|
||||
|
||||
# Construct shell variable names for the option
|
||||
m4_define(ARG_OPTION, [with_]m4_translit(ARG_NAME, [-], [_]))
|
||||
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)))
|
||||
|
||||
# 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_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))
|
||||
|
||||
##########################
|
||||
# Part 2: Set up autoconf shell code
|
||||
##########################
|
||||
|
||||
# Check that OPTIONAL has a valid value
|
||||
if test "[x]ARG_OPTIONAL" != xtrue && test "[x]ARG_OPTIONAL" != xfalse ; then
|
||||
AC_MSG_ERROR([Internal error: Argument OPTIONAL to [UTIL_ARG_WITH] can only be true or false, was: 'ARG_OPTIONAL'])
|
||||
fi
|
||||
|
||||
# Check that ENABLED_DEFAULT has a valid value
|
||||
if test "[x]ARG_ENABLED_DEFAULT" != xtrue && test "[x]ARG_ENABLED_DEFAULT" != xfalse ; then
|
||||
AC_MSG_ERROR([Internal error: Argument ENABLED_DEFAULT to [UTIL_ARG_WITH] can only be true or false, was: 'ARG_ENABLED_DEFAULT'])
|
||||
fi
|
||||
|
||||
# Check that AVAILABLE has a valid value
|
||||
if test "[x]ARG_AVAILABLE" != xtrue && test "[x]ARG_AVAILABLE" != xfalse; then
|
||||
AC_MSG_ERROR([Internal error: Argument AVAILABLE to [UTIL_ARG_WITH] can only be true or false, was: 'ARG_AVAILABLE'])
|
||||
fi
|
||||
|
||||
# Check that TYPE has a valid value
|
||||
# Need to assign since we can't expand ARG TYPE inside the m4 quoted if statement
|
||||
TEST_TYPE="ARG_TYPE"
|
||||
# Additional [] needed to keep m4 from mangling shell constructs.
|
||||
[ if [[ ! "$TEST_TYPE" =~ ^(string|integer|file|directory|literal|multivalue|features)$ ]] ; then ]
|
||||
AC_MSG_ERROR([Internal error: Argument TYPE to [UTIL_ARG_WITH] must be a valid type, was: 'ARG_TYPE'])
|
||||
fi
|
||||
|
||||
AC_ARG_WITH(ARG_NAME, AS_HELP_STRING([--with-]ARG_NAME,
|
||||
[ARG_DESC [ARG_DEFAULT_DESC]]), [ARG_GIVEN=true], [ARG_GIVEN=false])
|
||||
|
||||
# Check if the option is available
|
||||
AVAILABLE=ARG_AVAILABLE
|
||||
# Run the available check block (if any), which can overwrite AVAILABLE.
|
||||
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
|
||||
ARG_RESULT="$ARG_OPTION"
|
||||
ARG_ENABLED_RESULT=false
|
||||
REASON="not available"
|
||||
else
|
||||
if test x$ARG_GIVEN = xfalse; then
|
||||
ARG_RESULT="ARG_DEFAULT"
|
||||
if test "[x]ARG_OPTIONAL" = xtrue; then
|
||||
ARG_ENABLED_RESULT=ARG_ENABLED_DEFAULT
|
||||
else
|
||||
ARG_ENABLED_RESULT=true
|
||||
fi
|
||||
REASON="default"
|
||||
|
||||
else # ARG_GIVEN is true
|
||||
# Special treatment of "yes" and "no" for "--with-ARG" and "--without-ARG"
|
||||
if test "x$ARG_OPTION" = xyes || test "x$ARG_OPTION" = xno || test "x$ARG_OPTION" = x ; then
|
||||
if test "[x]ARG_OPTIONAL" = xfalse; then
|
||||
if test "x$ARG_OPTION" = x; then
|
||||
# If not optional, the empty string is a valid value
|
||||
ARG_RESULT=""
|
||||
ARG_ENABLED_RESULT=true
|
||||
REASON="from command line"
|
||||
else
|
||||
AC_MSG_RESULT([invalid])
|
||||
AC_MSG_ERROR([Option [--with-]ARG_NAME must have a specified value])
|
||||
fi
|
||||
else
|
||||
if test "x$ARG_OPTION" = xyes; then
|
||||
ARG_RESULT="ARG_DEFAULT"
|
||||
ARG_ENABLED_RESULT=true
|
||||
REASON="default as enabled from command line"
|
||||
else
|
||||
# For optional values, both --without-FOO and --with-FOO= disables
|
||||
ARG_RESULT=""
|
||||
ARG_ENABLED_RESULT=false
|
||||
REASON="from command line"
|
||||
fi
|
||||
fi
|
||||
else
|
||||
# The most common case -- the user gives a value for the option.
|
||||
ARG_RESULT="$ARG_OPTION"
|
||||
ARG_ENABLED_RESULT=true
|
||||
REASON="from command line"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "x$ARG_ENABLED_RESULT" = xfalse; then
|
||||
if test "x$REASON" = "xnot available"; then
|
||||
AC_MSG_RESULT([<invalid>, $REASON])
|
||||
if test "x$ARG_RESULT" != "x" && test "x$ARG_RESULT" != "xno" ; then
|
||||
AC_MSG_WARN([Option [--with-]ARG_NAME is not available for this configuration])
|
||||
fi
|
||||
else
|
||||
AC_MSG_RESULT([<disabled>, $REASON])
|
||||
fi
|
||||
ARG_RESULT=""
|
||||
else
|
||||
if test [x]ARG_HAS_AUTO_BLOCK = xtrue && test "x$ARG_RESULT" = xauto; then
|
||||
# Execute "auto" payload
|
||||
ARG_IF_AUTO
|
||||
|
||||
ARG_RESULT="$RESULT"
|
||||
REASON="$REASON (calculated from 'auto')"
|
||||
fi
|
||||
|
||||
if test "x$ARG_RESULT" = x; then
|
||||
AC_MSG_RESULT([<none>, $REASON])
|
||||
else
|
||||
AC_MSG_RESULT([$ARG_RESULT, $REASON])
|
||||
fi
|
||||
fi
|
||||
|
||||
# Verify value
|
||||
# First use our dispatcher to verify that type requirements are satisfied
|
||||
UTIL_CHECK_TYPE(ARG_TYPE, $ARG_RESULT)
|
||||
|
||||
if test "x$FAILURE" = x; then
|
||||
# Execute custom verification payload, if present
|
||||
RESULT="$ARG_RESULT"
|
||||
|
||||
ARG_CHECK_VALUE
|
||||
|
||||
ARG_RESULT="$RESULT"
|
||||
fi
|
||||
|
||||
if test "x$FAILURE" != x; then
|
||||
AC_MSG_NOTICE([Invalid value for [--with-]ARG_NAME: "$ARG_RESULT"])
|
||||
AC_MSG_NOTICE([$FAILURE])
|
||||
AC_MSG_ERROR([Cannot continue])
|
||||
fi
|
||||
|
||||
# Execute result payloads, if present
|
||||
if test x$ARG_GIVEN = xtrue; then
|
||||
ARG_IF_GIVEN
|
||||
else
|
||||
ARG_IF_NOT_GIVEN
|
||||
fi
|
||||
])
|
||||
|
||||
###############################################################################
|
||||
# Helper functions for CHECK_VALUE in ARG_WITH.
|
||||
AC_DEFUN([UTIL_CHECK_STRING_NON_EMPTY],
|
||||
[
|
||||
if test "x$RESULT" = "x"; then
|
||||
FAILURE="Value cannot be empty"
|
||||
fi
|
||||
])
|
||||
|
||||
@@ -267,10 +267,15 @@ endif
|
||||
# specialized file is found, returns the default file.
|
||||
# $1 Executable to find entitlements file for.
|
||||
ENTITLEMENTS_DIR := $(TOPDIR)/make/data/macosxsigning
|
||||
DEFAULT_ENTITLEMENTS_FILE := $(ENTITLEMENTS_DIR)/default.plist
|
||||
ifeq ($(MACOSX_CODESIGN_MODE), debug)
|
||||
CODESIGN_PLIST_SUFFIX := -debug
|
||||
else
|
||||
CODESIGN_PLIST_SUFFIX :=
|
||||
endif
|
||||
DEFAULT_ENTITLEMENTS_FILE := $(ENTITLEMENTS_DIR)/default$(CODESIGN_PLIST_SUFFIX).plist
|
||||
|
||||
GetEntitlementsFile = \
|
||||
$(foreach f, $(ENTITLEMENTS_DIR)/$(strip $(notdir $1)).plist, \
|
||||
$(foreach f, $(ENTITLEMENTS_DIR)/$(strip $(notdir $1))$(CODESIGN_PLIST_SUFFIX).plist, \
|
||||
$(if $(wildcard $f), $f, $(DEFAULT_ENTITLEMENTS_FILE)) \
|
||||
)
|
||||
|
||||
@@ -1206,11 +1211,16 @@ define SetupNativeCompilationBody
|
||||
$$($1_MT) -nologo -manifest $$($1_MANIFEST) -identity:"$$($1_NAME).exe, version=$$($1_MANIFEST_VERSION)" -outputresource:$$@;#1
|
||||
endif
|
||||
endif
|
||||
# This only works if the openjdk_codesign identity is present on the system. Let
|
||||
# silently fail otherwise.
|
||||
ifneq ($(CODESIGN), )
|
||||
# On macosx, optionally run codesign on every binary.
|
||||
# Remove signature explicitly first to avoid warnings if the linker
|
||||
# added a default adhoc signature.
|
||||
ifeq ($(MACOSX_CODESIGN_MODE), hardened)
|
||||
$(CODESIGN) --remove-signature $$@
|
||||
$(CODESIGN) -f -s "$(MACOSX_CODESIGN_IDENTITY)" --timestamp --options runtime \
|
||||
--entitlements $$(call GetEntitlementsFile, $$@) $$@
|
||||
else ifeq ($(MACOSX_CODESIGN_MODE), debug)
|
||||
$(CODESIGN) --remove-signature $$@
|
||||
$(CODESIGN) -f -s - --entitlements $$(call GetEntitlementsFile, $$@) $$@
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
@@ -44,7 +44,6 @@ endif
|
||||
|
||||
LAUNCHER_SRC := $(TOPDIR)/src/java.base/share/native/launcher
|
||||
LAUNCHER_CFLAGS += -I$(TOPDIR)/src/java.base/share/native/launcher \
|
||||
-I$(TOPDIR)/src/java.desktop/share/native/include \
|
||||
-I$(TOPDIR)/src/java.base/share/native/libjli \
|
||||
-I$(TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libjli \
|
||||
-I$(TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS)/native/libjli \
|
||||
|
||||
@@ -564,7 +564,7 @@ var getJibProfilesProfiles = function (input, common, data) {
|
||||
"ANT_HOME": input.get("ant", "home_path")
|
||||
}
|
||||
};
|
||||
[ "linux-x64", "macosx-x64", "windows-x64"]
|
||||
[ "linux-x64", "macosx-aarch64", "macosx-x64", "windows-x64", "linux-aarch64"]
|
||||
.forEach(function (name) {
|
||||
var maketestName = name + "-testmake";
|
||||
profiles[maketestName] = concatObjects(profiles[name], testmakeBase);
|
||||
|
||||
@@ -28,12 +28,12 @@
|
||||
|
||||
DEFAULT_VERSION_FEATURE=17
|
||||
DEFAULT_VERSION_INTERIM=0
|
||||
DEFAULT_VERSION_UPDATE=5
|
||||
DEFAULT_VERSION_UPDATE=6
|
||||
DEFAULT_VERSION_PATCH=0
|
||||
DEFAULT_VERSION_EXTRA1=0
|
||||
DEFAULT_VERSION_EXTRA2=0
|
||||
DEFAULT_VERSION_EXTRA3=0
|
||||
DEFAULT_VERSION_DATE=2022-10-18
|
||||
DEFAULT_VERSION_DATE=2023-01-17
|
||||
DEFAULT_VERSION_CLASSFILE_MAJOR=61 # "`$EXPR $DEFAULT_VERSION_FEATURE + 44`"
|
||||
DEFAULT_VERSION_CLASSFILE_MINOR=0
|
||||
DEFAULT_VERSION_DOCS_API_SINCE=11
|
||||
|
||||
@@ -4,7 +4,9 @@
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation.
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
|
||||
@@ -279,6 +279,7 @@ For terms of use, see http://www.unicode.org/copyright.html
|
||||
<type name="mwblz" description="Blantyre, Malawi" alias="Africa/Blantyre"/>
|
||||
<type name="mxchi" description="Chihuahua, Mexico" alias="America/Chihuahua"/>
|
||||
<type name="mxcun" description="Cancún, Mexico" alias="America/Cancun"/>
|
||||
<type name="mxcjs" description="Ciudad Juárez, Mexico" alias="America/Ciudad_Juarez"/>
|
||||
<type name="mxhmo" description="Hermosillo, Mexico" alias="America/Hermosillo"/>
|
||||
<type name="mxmam" description="Matamoros, Mexico" alias="America/Matamoros"/>
|
||||
<type name="mxmex" description="Mexico City, Mexico" alias="America/Mexico_City Mexico/General"/>
|
||||
@@ -393,7 +394,7 @@ For terms of use, see http://www.unicode.org/copyright.html
|
||||
<type name="tvfun" description="Funafuti, Tuvalu" alias="Pacific/Funafuti"/>
|
||||
<type name="twtpe" description="Taipei, Taiwan" alias="Asia/Taipei ROC"/>
|
||||
<type name="tzdar" description="Dar es Salaam, Tanzania" alias="Africa/Dar_es_Salaam"/>
|
||||
<type name="uaiev" description="Kiev, Ukraine" alias="Europe/Kiev"/>
|
||||
<type name="uaiev" description="Kyiv, Ukraine" alias="Europe/Kiev Europe/Kyiv"/>
|
||||
<type name="uaozh" description="Zaporizhia (Zaporozhye), Ukraine" alias="Europe/Zaporozhye"/>
|
||||
<type name="uasip" description="Simferopol, Ukraine" alias="Europe/Simferopol"/>
|
||||
<type name="uauzh" description="Uzhhorod (Uzhgorod), Ukraine" alias="Europe/Uzhgorod"/>
|
||||
|
||||
@@ -1019,11 +1019,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
|
||||
<decimalFormats numberSystem="latn">
|
||||
<decimalFormatLength type="long">
|
||||
<decimalFormat>
|
||||
<pattern type="1000000000000" count="one">0 billón</pattern>
|
||||
<pattern type="1000000000000" count="other">0 billón</pattern>
|
||||
<pattern type="10000000000000" count="one">00 billones</pattern>
|
||||
<pattern type="10000000000000" count="other">00 billones</pattern>
|
||||
<pattern type="100000000000000" count="one">000 billones</pattern>
|
||||
<pattern type="100000000000000" count="other">000 billones</pattern>
|
||||
</decimalFormat>
|
||||
</decimalFormatLength>
|
||||
|
||||
@@ -713,11 +713,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic
|
||||
<decimalFormats numberSystem="latn">
|
||||
<decimalFormatLength type="long">
|
||||
<decimalFormat>
|
||||
<pattern type="1000000000000" count="one">0 billón</pattern>
|
||||
<pattern type="1000000000000" count="other">0 billones</pattern>
|
||||
<pattern type="10000000000000" count="one">00 billones</pattern>
|
||||
<pattern type="10000000000000" count="other">00 billones</pattern>
|
||||
<pattern type="100000000000000" count="one">000 billones</pattern>
|
||||
<pattern type="100000000000000" count="other">000 billones</pattern>
|
||||
</decimalFormat>
|
||||
</decimalFormatLength>
|
||||
|
||||
@@ -2932,6 +2932,18 @@ for derived annotations.
|
||||
<zone type="Asia/Saigon">
|
||||
<exemplarCity>Ho Chi Minh</exemplarCity>
|
||||
</zone>
|
||||
<zone type="America/Bahia_Banderas">
|
||||
<exemplarCity>Bahía de Banderas</exemplarCity>
|
||||
</zone>
|
||||
<zone type="America/Cancun">
|
||||
<exemplarCity>Cancún</exemplarCity>
|
||||
</zone>
|
||||
<zone type="America/Ciudad_Juarez">
|
||||
<exemplarCity>Ciudad Juárez</exemplarCity>
|
||||
</zone>
|
||||
<zone type="America/Merida">
|
||||
<exemplarCity>Mérida</exemplarCity>
|
||||
</zone>
|
||||
</timeZoneNames>
|
||||
</dates>
|
||||
<numbers>
|
||||
|
||||
@@ -331,7 +331,14 @@ For terms of use, see http://www.unicode.org/copyright.html
|
||||
</timezone>
|
||||
<timezone type="America/Chihuahua">
|
||||
<usesMetazone to="1998-04-05 09:00" mzone="America_Central"/>
|
||||
<usesMetazone from="1998-04-05 09:00" mzone="Mexico_Pacific"/>
|
||||
<usesMetazone to="2022-10-30 08:00" from="1998-04-05 09:00" mzone="Mexico_Pacific"/>
|
||||
<usesMetazone from="2022-10-30 08:00" mzone="America_Central"/>
|
||||
</timezone>
|
||||
<timezone type="America/Ciudad_Juarez">
|
||||
<usesMetazone to="1998-04-05 09:00" mzone="America_Central"/>
|
||||
<usesMetazone to="2022-10-30 08:00" from="1998-04-05 09:00" mzone="Mexico_Pacific"/>
|
||||
<usesMetazone to="2022-11-30 06:00" from="2022-10-30 08:00" mzone="America_Central"/>
|
||||
<usesMetazone from="2022-11-30 06:00" mzone="America_Mountain"/>
|
||||
</timezone>
|
||||
<timezone type="America/Coral_Harbour">
|
||||
<usesMetazone mzone="America_Eastern"/>
|
||||
@@ -618,14 +625,14 @@ For terms of use, see http://www.unicode.org/copyright.html
|
||||
</timezone>
|
||||
<timezone type="America/Ojinaga">
|
||||
<usesMetazone to="1998-04-05 09:00" mzone="America_Central"/>
|
||||
<usesMetazone from="1998-04-05 09:00" mzone="America_Mountain"/>
|
||||
<usesMetazone to="2022-10-30 08:00" from="1998-04-05 09:00" mzone="America_Mountain"/>
|
||||
<usesMetazone from="2022-10-30 08:00" mzone="America_Central"/>
|
||||
</timezone>
|
||||
<timezone type="America/Panama">
|
||||
<usesMetazone mzone="America_Eastern"/>
|
||||
</timezone>
|
||||
<timezone type="America/Pangnirtung">
|
||||
<usesMetazone to="1995-04-02 06:00" mzone="Atlantic"/>
|
||||
<usesMetazone to="1999-10-31 06:00" from="1995-04-02 06:00" mzone="America_Eastern"/>
|
||||
<usesMetazone to="1999-10-31 06:00" mzone="America_Eastern"/>
|
||||
<usesMetazone to="2000-10-29 07:00" from="1999-10-31 06:00" mzone="America_Central"/>
|
||||
<usesMetazone from="2000-10-29 07:00" mzone="America_Eastern"/>
|
||||
</timezone>
|
||||
|
||||
@@ -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=172
|
||||
dataVersion=174
|
||||
|
||||
# List of all valid ISO 4217 currency codes.
|
||||
# To ensure compatibility, do not remove codes.
|
||||
@@ -189,7 +189,7 @@ CR=CRC
|
||||
# COTE D'IVOIRE
|
||||
CI=XOF
|
||||
# CROATIA
|
||||
HR=HRK
|
||||
HR=HRK;2022-12-31-23-00-00;EUR
|
||||
# CUBA
|
||||
CU=CUP
|
||||
# Cura\u00e7ao
|
||||
|
||||
18
make/data/macosxsigning/default-debug.plist
Normal file
18
make/data/macosxsigning/default-debug.plist
Normal file
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>com.apple.security.cs.allow-jit</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.disable-library-validation</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.allow-dyld-environment-variables</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.debugger</key>
|
||||
<true/>
|
||||
<key>com.apple.security.get-task-allow</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
20
make/data/macosxsigning/java-debug.plist
Normal file
20
make/data/macosxsigning/java-debug.plist
Normal file
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>com.apple.security.cs.allow-jit</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.disable-library-validation</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.allow-dyld-environment-variables</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.debugger</key>
|
||||
<true/>
|
||||
<key>com.apple.security.device.audio-input</key>
|
||||
<true/>
|
||||
<key>com.apple.security.get-task-allow</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -21,4 +21,4 @@
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
tzdata2022c
|
||||
tzdata2022g
|
||||
|
||||
@@ -120,22 +120,6 @@ Zone Africa/Algiers 0:12:12 - LMT 1891 Mar 16
|
||||
0:00 Algeria WE%sT 1981 May
|
||||
1:00 - CET
|
||||
|
||||
# Angola
|
||||
# Benin
|
||||
# See Africa/Lagos.
|
||||
|
||||
# Botswana
|
||||
# See Africa/Maputo.
|
||||
|
||||
# Burkina Faso
|
||||
# See Africa/Abidjan.
|
||||
|
||||
# Burundi
|
||||
# See Africa/Maputo.
|
||||
|
||||
# Cameroon
|
||||
# See Africa/Lagos.
|
||||
|
||||
# Cape Verde / Cabo Verde
|
||||
#
|
||||
# From Paul Eggert (2018-02-16):
|
||||
@@ -150,9 +134,6 @@ Zone Atlantic/Cape_Verde -1:34:04 - LMT 1912 Jan 01 2:00u # Praia
|
||||
-2:00 - -02 1975 Nov 25 2:00
|
||||
-1:00 - -01
|
||||
|
||||
# Central African Republic
|
||||
# See Africa/Lagos.
|
||||
|
||||
# Chad
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone Africa/Ndjamena 1:00:12 - LMT 1912 # N'Djamena
|
||||
@@ -160,33 +141,29 @@ Zone Africa/Ndjamena 1:00:12 - LMT 1912 # N'Djamena
|
||||
1:00 1:00 WAST 1980 Mar 8
|
||||
1:00 - WAT
|
||||
|
||||
# Comoros
|
||||
# See Africa/Nairobi.
|
||||
# Burkina Faso
|
||||
# Côte d'Ivoire (Ivory Coast)
|
||||
# The Gambia
|
||||
# Ghana
|
||||
# Guinea
|
||||
# Iceland
|
||||
# Mali
|
||||
# Mauritania
|
||||
# St Helena
|
||||
# Senegal
|
||||
# Sierra Leone
|
||||
# Togo
|
||||
|
||||
# Democratic Republic of the Congo
|
||||
# See Africa/Lagos for the western part and Africa/Maputo for the eastern.
|
||||
# The other parts of the St Helena territory are similar:
|
||||
# Tristan da Cunha: on GMT, say Whitman and the CIA
|
||||
# Ascension: on GMT, say the USNO (1995-12-21) and the CIA
|
||||
# Gough (scientific station since 1955; sealers wintered previously):
|
||||
# on GMT, says the CIA
|
||||
# Inaccessible, Nightingale: uninhabited
|
||||
|
||||
# Republic of the Congo
|
||||
# See Africa/Lagos.
|
||||
|
||||
# Côte d'Ivoire / Ivory Coast
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone Africa/Abidjan -0:16:08 - LMT 1912
|
||||
0:00 - GMT
|
||||
Link Africa/Abidjan Africa/Accra # Ghana
|
||||
Link Africa/Abidjan Africa/Bamako # Mali
|
||||
Link Africa/Abidjan Africa/Banjul # The Gambia
|
||||
Link Africa/Abidjan Africa/Conakry # Guinea
|
||||
Link Africa/Abidjan Africa/Dakar # Senegal
|
||||
Link Africa/Abidjan Africa/Freetown # Sierra Leone
|
||||
Link Africa/Abidjan Africa/Lome # Togo
|
||||
Link Africa/Abidjan Africa/Nouakchott # Mauritania
|
||||
Link Africa/Abidjan Africa/Ouagadougou # Burkina Faso
|
||||
Link Africa/Abidjan Atlantic/Reykjavik # Iceland
|
||||
Link Africa/Abidjan Atlantic/St_Helena # St Helena
|
||||
|
||||
# Djibouti
|
||||
# See Africa/Nairobi.
|
||||
|
||||
###############################################################################
|
||||
|
||||
@@ -382,33 +359,6 @@ Rule Egypt 2014 only - Sep lastThu 24:00 0 -
|
||||
Zone Africa/Cairo 2:05:09 - LMT 1900 Oct
|
||||
2:00 Egypt EE%sT
|
||||
|
||||
# Equatorial Guinea
|
||||
# See Africa/Lagos.
|
||||
|
||||
# Eritrea
|
||||
# See Africa/Nairobi.
|
||||
|
||||
# Eswatini (formerly Swaziland)
|
||||
# See Africa/Johannesburg.
|
||||
|
||||
# Ethiopia
|
||||
# See Africa/Nairobi.
|
||||
#
|
||||
# Unfortunately tzdb records only Western clock time in use in Ethiopia,
|
||||
# as the tzdb format is not up to properly recording a common Ethiopian
|
||||
# timekeeping practice that is based on solar time. See:
|
||||
# Mortada D. If you have a meeting in Ethiopia, you'd better double
|
||||
# check the time. PRI's The World. 2015-01-30 15:15 -05.
|
||||
# https://www.pri.org/stories/2015-01-30/if-you-have-meeting-ethiopia-you-better-double-check-time
|
||||
|
||||
# Gabon
|
||||
# See Africa/Lagos.
|
||||
|
||||
# The Gambia
|
||||
# Ghana
|
||||
# Guinea
|
||||
# See Africa/Abidjan.
|
||||
|
||||
# Guinea-Bissau
|
||||
#
|
||||
# From Paul Eggert (2018-02-16):
|
||||
@@ -421,7 +371,16 @@ Zone Africa/Bissau -1:02:20 - LMT 1912 Jan 1 1:00u
|
||||
-1:00 - -01 1975
|
||||
0:00 - GMT
|
||||
|
||||
# Comoros
|
||||
# Djibouti
|
||||
# Eritrea
|
||||
# Ethiopia
|
||||
# Kenya
|
||||
# Madagascar
|
||||
# Mayotte
|
||||
# Somalia
|
||||
# Tanzania
|
||||
# Uganda
|
||||
|
||||
# From P Chan (2020-10-24):
|
||||
#
|
||||
@@ -464,6 +423,14 @@ Zone Africa/Bissau -1:02:20 - LMT 1912 Jan 1 1:00u
|
||||
# The 1908-05-01 announcement does not give an effective date,
|
||||
# so just say "1908 May".
|
||||
|
||||
# From Paul Eggert (2018-09-11):
|
||||
# Unfortunately tzdb records only Western clock time in use in Ethiopia,
|
||||
# as the tzdb format is not up to properly recording a common Ethiopian
|
||||
# timekeeping practice that is based on solar time. See:
|
||||
# Mortada D. If you have a meeting in Ethiopia, you'd better double
|
||||
# check the time. PRI's The World. 2015-01-30 15:15 -05.
|
||||
# https://www.pri.org/stories/2015-01-30/if-you-have-meeting-ethiopia-you-better-double-check-time
|
||||
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone Africa/Nairobi 2:27:16 - LMT 1908 May
|
||||
2:30 - +0230 1928 Jun 30 24:00
|
||||
@@ -471,18 +438,6 @@ Zone Africa/Nairobi 2:27:16 - LMT 1908 May
|
||||
2:30 - +0230 1936 Dec 31 24:00
|
||||
2:45 - +0245 1942 Jul 31 24:00
|
||||
3:00 - EAT
|
||||
Link Africa/Nairobi Africa/Addis_Ababa # Ethiopia
|
||||
Link Africa/Nairobi Africa/Asmara # Eritrea
|
||||
Link Africa/Nairobi Africa/Dar_es_Salaam # Tanzania
|
||||
Link Africa/Nairobi Africa/Djibouti
|
||||
Link Africa/Nairobi Africa/Kampala # Uganda
|
||||
Link Africa/Nairobi Africa/Mogadishu # Somalia
|
||||
Link Africa/Nairobi Indian/Antananarivo # Madagascar
|
||||
Link Africa/Nairobi Indian/Comoro
|
||||
Link Africa/Nairobi Indian/Mayotte
|
||||
|
||||
# Lesotho
|
||||
# See Africa/Johannesburg.
|
||||
|
||||
# Liberia
|
||||
#
|
||||
@@ -563,16 +518,6 @@ Zone Africa/Tripoli 0:52:44 - LMT 1920
|
||||
1:00 Libya CE%sT 2013 Oct 25 2:00
|
||||
2:00 - EET
|
||||
|
||||
# Madagascar
|
||||
# See Africa/Nairobi.
|
||||
|
||||
# Malawi
|
||||
# See Africa/Maputo.
|
||||
|
||||
# Mali
|
||||
# Mauritania
|
||||
# See Africa/Abidjan.
|
||||
|
||||
# Mauritius
|
||||
|
||||
# From Steffen Thorsen (2008-06-25):
|
||||
@@ -666,8 +611,6 @@ Zone Indian/Mauritius 3:50:00 - LMT 1907 # Port Louis
|
||||
# Agalega Is, Rodriguez
|
||||
# no information; probably like Indian/Mauritius
|
||||
|
||||
# Mayotte
|
||||
# See Africa/Nairobi.
|
||||
|
||||
# Morocco
|
||||
# See Africa/Ceuta for Spanish Morocco.
|
||||
@@ -1160,7 +1103,14 @@ Zone Africa/El_Aaiun -0:52:48 - LMT 1934 Jan # El Aaiún
|
||||
0:00 Morocco +00/+01 2018 Oct 28 3:00
|
||||
1:00 Morocco +01/+00
|
||||
|
||||
# Botswana
|
||||
# Burundi
|
||||
# Democratic Republic of the Congo (eastern)
|
||||
# Malawi
|
||||
# Mozambique
|
||||
# Rwanda
|
||||
# Zambia
|
||||
# Zimbabwe
|
||||
#
|
||||
# Shanks gives 1903-03-01 for the transition to CAT.
|
||||
# Perhaps the 1911-05-26 Portuguese decree
|
||||
@@ -1170,14 +1120,6 @@ Zone Africa/El_Aaiun -0:52:48 - LMT 1934 Jan # El Aaiún
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone Africa/Maputo 2:10:20 - LMT 1903 Mar
|
||||
2:00 - CAT
|
||||
Link Africa/Maputo Africa/Blantyre # Malawi
|
||||
Link Africa/Maputo Africa/Bujumbura # Burundi
|
||||
Link Africa/Maputo Africa/Gaborone # Botswana
|
||||
Link Africa/Maputo Africa/Harare # Zimbabwe
|
||||
Link Africa/Maputo Africa/Kigali # Rwanda
|
||||
Link Africa/Maputo Africa/Lubumbashi # E Dem. Rep. of Congo
|
||||
Link Africa/Maputo Africa/Lusaka # Zambia
|
||||
|
||||
|
||||
# Namibia
|
||||
|
||||
@@ -1256,9 +1198,16 @@ Zone Africa/Windhoek 1:08:24 - LMT 1892 Feb 8
|
||||
# 2:00 - CAT
|
||||
# End of rearguard section.
|
||||
|
||||
# Niger
|
||||
# See Africa/Lagos.
|
||||
|
||||
# Angola
|
||||
# Benin
|
||||
# Cameroon
|
||||
# Central African Republic
|
||||
# Democratic Republic of the Congo (western)
|
||||
# Republic of the Congo
|
||||
# Equatorial Guinea
|
||||
# Gabon
|
||||
# Niger
|
||||
# Nigeria
|
||||
|
||||
# From P Chan (2020-12-03):
|
||||
@@ -1324,32 +1273,6 @@ Zone Africa/Lagos 0:13:35 - LMT 1905 Jul 1
|
||||
0:13:35 - LMT 1914 Jan 1
|
||||
0:30 - +0030 1919 Sep 1
|
||||
1:00 - WAT
|
||||
Link Africa/Lagos Africa/Bangui # Central African Republic
|
||||
Link Africa/Lagos Africa/Brazzaville # Rep. of the Congo
|
||||
Link Africa/Lagos Africa/Douala # Cameroon
|
||||
Link Africa/Lagos Africa/Kinshasa # Dem. Rep. of the Congo (west)
|
||||
Link Africa/Lagos Africa/Libreville # Gabon
|
||||
Link Africa/Lagos Africa/Luanda # Angola
|
||||
Link Africa/Lagos Africa/Malabo # Equatorial Guinea
|
||||
Link Africa/Lagos Africa/Niamey # Niger
|
||||
Link Africa/Lagos Africa/Porto-Novo # Benin
|
||||
|
||||
# Réunion
|
||||
# See Asia/Dubai.
|
||||
#
|
||||
# The Crozet Islands also observe Réunion time; see the 'antarctica' file.
|
||||
|
||||
# Rwanda
|
||||
# See Africa/Maputo.
|
||||
|
||||
# St Helena
|
||||
# See Africa/Abidjan.
|
||||
# The other parts of the St Helena territory are similar:
|
||||
# Tristan da Cunha: on GMT, say Whitman and the CIA
|
||||
# Ascension: on GMT, say the USNO (1995-12-21) and the CIA
|
||||
# Gough (scientific station since 1955; sealers wintered previously):
|
||||
# on GMT, says the CIA
|
||||
# Inaccessible, Nightingale: uninhabited
|
||||
|
||||
# São Tomé and Príncipe
|
||||
|
||||
@@ -1378,19 +1301,10 @@ Zone Africa/Sao_Tome 0:26:56 - LMT 1884
|
||||
1:00 - WAT 2019 Jan 1 02:00
|
||||
0:00 - GMT
|
||||
|
||||
# Senegal
|
||||
# See Africa/Abidjan.
|
||||
|
||||
# Seychelles
|
||||
# See Asia/Dubai.
|
||||
|
||||
# Sierra Leone
|
||||
# See Africa/Abidjan.
|
||||
|
||||
# Somalia
|
||||
# See Africa/Nairobi.
|
||||
|
||||
# Eswatini (Swaziland)
|
||||
# Lesotho
|
||||
# South Africa
|
||||
|
||||
# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
|
||||
Rule SA 1942 1943 - Sep Sun>=15 2:00 1:00 -
|
||||
Rule SA 1943 1944 - Mar Sun>=15 2:00 0 -
|
||||
@@ -1398,8 +1312,6 @@ Rule SA 1943 1944 - Mar Sun>=15 2:00 0 -
|
||||
Zone Africa/Johannesburg 1:52:00 - LMT 1892 Feb 8
|
||||
1:30 - SAST 1903 Mar
|
||||
2:00 SA SAST
|
||||
Link Africa/Johannesburg Africa/Maseru # Lesotho
|
||||
Link Africa/Johannesburg Africa/Mbabane # Eswatini
|
||||
#
|
||||
# Marion and Prince Edward Is
|
||||
# scientific station since 1947
|
||||
@@ -1448,12 +1360,6 @@ Zone Africa/Juba 2:06:28 - LMT 1931
|
||||
3:00 - EAT 2021 Feb 1 00:00
|
||||
2:00 - CAT
|
||||
|
||||
# Tanzania
|
||||
# See Africa/Nairobi.
|
||||
|
||||
# Togo
|
||||
# See Africa/Abidjan.
|
||||
|
||||
# Tunisia
|
||||
|
||||
# From Gwillim Law (2005-04-30):
|
||||
@@ -1551,10 +1457,3 @@ Rule Tunisia 2006 2008 - Oct lastSun 2:00s 0 -
|
||||
Zone Africa/Tunis 0:40:44 - LMT 1881 May 12
|
||||
0:09:21 - PMT 1911 Mar 11 # Paris Mean Time
|
||||
1:00 Tunisia CE%sT
|
||||
|
||||
# Uganda
|
||||
# See Africa/Nairobi.
|
||||
|
||||
# Zambia
|
||||
# Zimbabwe
|
||||
# See Africa/Maputo.
|
||||
|
||||
@@ -329,4 +329,4 @@ Zone Antarctica/Rothera 0 - -00 1976 Dec 1
|
||||
# we have to go around and set them back 5 minutes or so.
|
||||
# Maybe if we let them run fast all of the time, we'd get to leave here sooner!!
|
||||
#
|
||||
# See 'australasia' for Antarctica/McMurdo.
|
||||
# See Pacific/Auckland.
|
||||
|
||||
@@ -172,9 +172,6 @@ Zone Asia/Baku 3:19:24 - LMT 1924 May 2
|
||||
4:00 EUAsia +04/+05 1997
|
||||
4:00 Azer +04/+05
|
||||
|
||||
# Bahrain
|
||||
# See Asia/Qatar.
|
||||
|
||||
# Bangladesh
|
||||
# From Alexander Krivenyshev (2009-05-13):
|
||||
# According to newspaper Asian Tribune (May 6, 2009) Bangladesh may introduce
|
||||
@@ -277,10 +274,8 @@ Zone Indian/Chagos 4:49:40 - LMT 1907
|
||||
5:00 - +05 1996
|
||||
6:00 - +06
|
||||
|
||||
# Brunei
|
||||
# See Asia/Kuching.
|
||||
|
||||
# Burma / Myanmar
|
||||
# Cocos (Keeling) Islands
|
||||
# Myanmar (Burma)
|
||||
|
||||
# Milne says 6:24:40 was the meridian of the time ball observatory at Rangoon.
|
||||
|
||||
@@ -296,11 +291,6 @@ Zone Asia/Yangon 6:24:47 - LMT 1880 # or Rangoon
|
||||
6:30 - +0630 1942 May
|
||||
9:00 - +09 1945 May 3
|
||||
6:30 - +0630
|
||||
Link Asia/Yangon Indian/Cocos
|
||||
|
||||
# Cambodia
|
||||
# See Asia/Bangkok.
|
||||
|
||||
|
||||
# China
|
||||
|
||||
@@ -688,10 +678,9 @@ Zone Asia/Shanghai 8:05:43 - LMT 1901
|
||||
8:00 PRC C%sT
|
||||
# Xinjiang time, used by many in western China; represented by Ürümqi / Ürümchi
|
||||
# / Wulumuqi. (Please use Asia/Shanghai if you prefer Beijing time.)
|
||||
# Vostok base in Antarctica matches this since 1970.
|
||||
Zone Asia/Urumqi 5:50:20 - LMT 1928
|
||||
6:00 - +06
|
||||
Link Asia/Urumqi Antarctica/Vostok
|
||||
|
||||
|
||||
# Hong Kong
|
||||
|
||||
@@ -1195,10 +1184,6 @@ Zone Asia/Famagusta 2:15:48 - LMT 1921 Nov 14
|
||||
3:00 - +03 2017 Oct 29 1:00u
|
||||
2:00 EUAsia EE%sT
|
||||
|
||||
# Classically, Cyprus belongs to Asia; e.g. see Herodotus, Histories, I.72.
|
||||
# However, for various reasons many users expect to find it under Europe.
|
||||
Link Asia/Nicosia Europe/Nicosia
|
||||
|
||||
# Georgia
|
||||
# From Paul Eggert (1994-11-19):
|
||||
# Today's _Economist_ (p 60) reports that Georgia moved its clocks forward
|
||||
@@ -2254,6 +2239,17 @@ Zone Asia/Tokyo 9:18:59 - LMT 1887 Dec 31 15:00u
|
||||
# From the Arabic version, it seems to say it would be at midnight
|
||||
# (assume 24:00) on the last Thursday in February, starting from 2022.
|
||||
|
||||
# From Issam Al-Zuwairi (2022-10-05):
|
||||
# The Council of Ministers in Jordan decided Wednesday 5th October 2022,
|
||||
# that daylight saving time (DST) will be throughout the year....
|
||||
#
|
||||
# From Brian Inglis (2022-10-06):
|
||||
# https://petra.gov.jo/Include/InnerPage.jsp?ID=45567&lang=en&name=en_news
|
||||
#
|
||||
# From Paul Eggert (2022-10-05):
|
||||
# Like Syria, model this as a transition from EEST +03 (DST) to plain +03
|
||||
# (non-DST) at the point where DST would otherwise have ended.
|
||||
|
||||
# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
|
||||
Rule Jordan 1973 only - Jun 6 0:00 1:00 S
|
||||
Rule Jordan 1973 1975 - Oct 1 0:00 0 -
|
||||
@@ -2285,11 +2281,12 @@ Rule Jordan 2005 only - Sep lastFri 0:00s 0 -
|
||||
Rule Jordan 2006 2011 - Oct lastFri 0:00s 0 -
|
||||
Rule Jordan 2013 only - Dec 20 0:00 0 -
|
||||
Rule Jordan 2014 2021 - Mar lastThu 24:00 1:00 S
|
||||
Rule Jordan 2014 max - Oct lastFri 0:00s 0 -
|
||||
Rule Jordan 2022 max - Feb lastThu 24:00 1:00 S
|
||||
Rule Jordan 2014 2022 - Oct lastFri 0:00s 0 -
|
||||
Rule Jordan 2022 only - Feb lastThu 24:00 1:00 S
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone Asia/Amman 2:23:44 - LMT 1931
|
||||
2:00 Jordan EE%sT
|
||||
2:00 Jordan EE%sT 2022 Oct 28 0:00s
|
||||
3:00 - +03
|
||||
|
||||
|
||||
# Kazakhstan
|
||||
@@ -2715,14 +2712,6 @@ Zone Asia/Pyongyang 8:23:00 - LMT 1908 Apr 1
|
||||
8:30 - KST 2018 May 4 23:30
|
||||
9:00 - KST
|
||||
|
||||
###############################################################################
|
||||
|
||||
# Kuwait
|
||||
# See Asia/Riyadh.
|
||||
|
||||
# Laos
|
||||
# See Asia/Bangkok.
|
||||
|
||||
|
||||
# Lebanon
|
||||
# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
|
||||
@@ -2754,7 +2743,9 @@ Rule Lebanon 1999 max - Oct lastSun 0:00 0 -
|
||||
Zone Asia/Beirut 2:22:00 - LMT 1880
|
||||
2:00 Lebanon EE%sT
|
||||
|
||||
# Malaysia
|
||||
# Brunei
|
||||
# Malaysia (eastern)
|
||||
#
|
||||
# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
|
||||
Rule NBorneo 1935 1941 - Sep 14 0:00 0:20 -
|
||||
Rule NBorneo 1935 1941 - Dec 14 0:00 0 -
|
||||
@@ -2771,14 +2762,12 @@ Zone Asia/Kuching 7:21:20 - LMT 1926 Mar
|
||||
8:00 NBorneo +08/+0820 1942 Feb 16
|
||||
9:00 - +09 1945 Sep 12
|
||||
8:00 - +08
|
||||
Link Asia/Kuching Asia/Brunei
|
||||
|
||||
# Maldives
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone Indian/Maldives 4:54:00 - LMT 1880 # Malé
|
||||
4:54:00 - MMT 1960 # Malé Mean Time
|
||||
5:00 - +05
|
||||
Link Indian/Maldives Indian/Kerguelen
|
||||
|
||||
# Mongolia
|
||||
|
||||
@@ -2941,9 +2930,6 @@ Zone Asia/Kathmandu 5:41:16 - LMT 1920
|
||||
5:30 - +0530 1986
|
||||
5:45 - +0545
|
||||
|
||||
# Oman
|
||||
# See Asia/Dubai.
|
||||
|
||||
# Pakistan
|
||||
|
||||
# From Rives McDow (2002-03-13):
|
||||
@@ -3398,10 +3384,6 @@ Zone Asia/Karachi 4:28:12 - LMT 1907
|
||||
# The winter time in 2015 started on October 23 at 01:00.
|
||||
# https://wafa.ps/ar_page.aspx?id=CgpCdYa670694628582aCgpCdY
|
||||
# http://www.palestinecabinet.gov.ps/portal/meeting/details/27583
|
||||
#
|
||||
# From Paul Eggert (2019-04-10):
|
||||
# For now, guess spring-ahead transitions are at 00:00 on the Saturday
|
||||
# preceding March's last Sunday (i.e., Sat>=24).
|
||||
|
||||
# From P Chan (2021-10-18):
|
||||
# http://wafa.ps/Pages/Details/34701
|
||||
@@ -3418,6 +3400,18 @@ Zone Asia/Karachi 4:28:12 - LMT 1907
|
||||
# From Heba Hamad (2022-03-10):
|
||||
# summer time will begin in Palestine from Sunday 03-27-2022, 00:00 AM.
|
||||
|
||||
# From Heba Hamad (2022-08-30):
|
||||
# winter time will begin in Palestine from Saturday 10-29, 02:00 AM by
|
||||
# 60 minutes backwards. Also the state of Palestine adopted the summer
|
||||
# and winter time for the years: 2023,2024,2025,2026 ...
|
||||
# https://mm.icann.org/pipermail/tz/attachments/20220830/9f024566/Time-0001.pdf
|
||||
# (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 Paul Eggert (2022-08-31):
|
||||
# For now, assume that this rule will also be used after 2026.
|
||||
|
||||
# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
|
||||
Rule EgyptAsia 1957 only - May 10 0:00 1:00 S
|
||||
Rule EgyptAsia 1957 1958 - Oct 1 0:00 0 -
|
||||
@@ -3448,14 +3442,16 @@ Rule Palestine 2013 only - Sep 27 0:00 0 -
|
||||
Rule Palestine 2014 only - Oct 24 0:00 0 -
|
||||
Rule Palestine 2015 only - Mar 28 0:00 1:00 S
|
||||
Rule Palestine 2015 only - Oct 23 1:00 0 -
|
||||
Rule Palestine 2016 2018 - Mar Sat>=24 1:00 1:00 S
|
||||
Rule Palestine 2016 2018 - Oct Sat>=24 1:00 0 -
|
||||
Rule Palestine 2016 2018 - Mar Sat<=30 1:00 1:00 S
|
||||
Rule Palestine 2016 2018 - Oct Sat<=30 1:00 0 -
|
||||
Rule Palestine 2019 only - Mar 29 0:00 1:00 S
|
||||
Rule Palestine 2019 only - Oct Sat>=24 0:00 0 -
|
||||
Rule Palestine 2020 2021 - Mar Sat>=24 0:00 1:00 S
|
||||
Rule Palestine 2019 only - Oct Sat<=30 0:00 0 -
|
||||
Rule Palestine 2020 2021 - Mar Sat<=30 0:00 1:00 S
|
||||
Rule Palestine 2020 only - Oct 24 1:00 0 -
|
||||
Rule Palestine 2021 max - Oct Fri>=23 1:00 0 -
|
||||
Rule Palestine 2022 max - Mar Sun>=25 0:00 1:00 S
|
||||
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
|
||||
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone Asia/Gaza 2:17:52 - LMT 1900 Oct
|
||||
@@ -3544,14 +3540,18 @@ Zone Asia/Manila -15:56:00 - LMT 1844 Dec 31
|
||||
9:00 - JST 1944 Nov
|
||||
8:00 Phil P%sT
|
||||
|
||||
# Bahrain
|
||||
# Qatar
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone Asia/Qatar 3:26:08 - LMT 1920 # Al Dawhah / Doha
|
||||
4:00 - +04 1972 Jun
|
||||
3:00 - +03
|
||||
Link Asia/Qatar Asia/Bahrain
|
||||
|
||||
# Kuwait
|
||||
# Saudi Arabia
|
||||
# Yemen
|
||||
#
|
||||
# Japan's year-round bases in Antarctica match this since 1970.
|
||||
#
|
||||
# From Paul Eggert (2018-08-29):
|
||||
# Time in Saudi Arabia and other countries in the Arabian peninsula was not
|
||||
@@ -3596,9 +3596,6 @@ Link Asia/Qatar Asia/Bahrain
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone Asia/Riyadh 3:06:52 - LMT 1947 Mar 14
|
||||
3:00 - +03
|
||||
Link Asia/Riyadh Antarctica/Syowa
|
||||
Link Asia/Riyadh Asia/Aden # Yemen
|
||||
Link Asia/Riyadh Asia/Kuwait
|
||||
|
||||
# Singapore
|
||||
# taken from Mok Ly Yng (2003-10-30)
|
||||
@@ -3611,9 +3608,8 @@ Zone Asia/Singapore 6:55:25 - LMT 1901 Jan 1
|
||||
7:20 - +0720 1941 Sep 1
|
||||
7:30 - +0730 1942 Feb 16
|
||||
9:00 - +09 1945 Sep 12
|
||||
7:30 - +0730 1982 Jan 1
|
||||
7:30 - +0730 1981 Dec 31 16:00u
|
||||
8:00 - +08
|
||||
Link Asia/Singapore Asia/Kuala_Lumpur
|
||||
|
||||
# Spratly Is
|
||||
# no information
|
||||
@@ -3828,19 +3824,27 @@ Rule Syria 2007 only - Nov Fri>=1 0:00 0 -
|
||||
# Our brief summary:
|
||||
# https://www.timeanddate.com/news/time/syria-dst-2012.html
|
||||
|
||||
# From Arthur David Olson (2012-03-27):
|
||||
# Assume last Friday in March going forward XXX.
|
||||
# From Steffen Thorsen (2022-10-05):
|
||||
# Syria is adopting year-round DST, starting this autumn....
|
||||
# From https://www.enabbaladi.net/archives/607812
|
||||
# "This [the decision] came after the weekly government meeting today,
|
||||
# Tuesday 4 October ..."
|
||||
#
|
||||
# From Paul Eggert (2022-10-05):
|
||||
# Like Jordan, model this as a transition from EEST +03 (DST) to plain +03
|
||||
# (non-DST) at the point where DST would otherwise have ended.
|
||||
|
||||
Rule Syria 2008 only - Apr Fri>=1 0:00 1:00 S
|
||||
Rule Syria 2008 only - Nov 1 0:00 0 -
|
||||
Rule Syria 2009 only - Mar lastFri 0:00 1:00 S
|
||||
Rule Syria 2010 2011 - Apr Fri>=1 0:00 1:00 S
|
||||
Rule Syria 2012 max - Mar lastFri 0:00 1:00 S
|
||||
Rule Syria 2009 max - Oct lastFri 0:00 0 -
|
||||
Rule Syria 2012 2022 - Mar lastFri 0:00 1:00 S
|
||||
Rule Syria 2009 2022 - Oct lastFri 0:00 0 -
|
||||
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone Asia/Damascus 2:25:12 - LMT 1920 # Dimashq
|
||||
2:00 Syria EE%sT
|
||||
2:00 Syria EE%sT 2022 Oct 28 0:00
|
||||
3:00 - +03
|
||||
|
||||
# Tajikistan
|
||||
# From Shanks & Pottenger.
|
||||
@@ -3851,14 +3855,15 @@ Zone Asia/Dushanbe 4:35:12 - LMT 1924 May 2
|
||||
5:00 1:00 +06 1991 Sep 9 2:00s
|
||||
5:00 - +05
|
||||
|
||||
# Cambodia
|
||||
# Christmas I
|
||||
# Laos
|
||||
# Thailand
|
||||
# Vietnam (northern)
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone Asia/Bangkok 6:42:04 - LMT 1880
|
||||
6:42:04 - BMT 1920 Apr # Bangkok Mean Time
|
||||
7:00 - +07
|
||||
Link Asia/Bangkok Asia/Phnom_Penh # Cambodia
|
||||
Link Asia/Bangkok Asia/Vientiane # Laos
|
||||
Link Asia/Bangkok Indian/Christmas
|
||||
|
||||
# Turkmenistan
|
||||
# From Shanks & Pottenger.
|
||||
@@ -3869,13 +3874,15 @@ Zone Asia/Ashgabat 3:53:32 - LMT 1924 May 2 # or Ashkhabad
|
||||
4:00 RussiaAsia +04/+05 1992 Jan 19 2:00
|
||||
5:00 - +05
|
||||
|
||||
# Oman
|
||||
# Réunion
|
||||
# Seychelles
|
||||
# United Arab Emirates
|
||||
#
|
||||
# The Crozet Is also observe Réunion time; see the 'antarctica' file.
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone Asia/Dubai 3:41:12 - LMT 1920
|
||||
4:00 - +04
|
||||
Link Asia/Dubai Asia/Muscat # Oman
|
||||
Link Asia/Dubai Indian/Mahe
|
||||
Link Asia/Dubai Indian/Reunion
|
||||
|
||||
# Uzbekistan
|
||||
# Byalokoz 1919 says Uzbekistan was 4:27:53.
|
||||
@@ -3895,7 +3902,7 @@ Zone Asia/Tashkent 4:37:11 - LMT 1924 May 2
|
||||
5:00 RussiaAsia +05/+06 1992
|
||||
5:00 - +05
|
||||
|
||||
# Vietnam
|
||||
# Vietnam (southern)
|
||||
|
||||
# From Paul Eggert (2014-10-04):
|
||||
# Milne gives 7:16:56 for the meridian of Saigon in 1899, as being
|
||||
@@ -3969,7 +3976,3 @@ Zone Asia/Ho_Chi_Minh 7:06:30 - LMT 1906 Jul 1
|
||||
# For timestamps in north Vietnam back to 1970 (the tzdb cutoff),
|
||||
# use Asia/Bangkok; see the VN entries in the file zone1970.tab.
|
||||
# For timestamps before 1970, see Asia/Hanoi in the file 'backzone'.
|
||||
|
||||
|
||||
# Yemen
|
||||
# See Asia/Riyadh.
|
||||
|
||||
@@ -274,13 +274,6 @@ Zone Antarctica/Macquarie 0 - -00 1899 Nov
|
||||
10:00 1:00 AEDT 2011
|
||||
10:00 AT AE%sT
|
||||
|
||||
# Christmas
|
||||
# See Asia/Bangkok.
|
||||
|
||||
# Cocos (Keeling) Is
|
||||
# See Asia/Yangon.
|
||||
|
||||
|
||||
# Fiji
|
||||
|
||||
# Milne gives 11:55:44 for Suva.
|
||||
@@ -416,8 +409,14 @@ Zone Antarctica/Macquarie 0 - -00 1899 Nov
|
||||
# concerned shifting arrival and departure times, which may look like a simple
|
||||
# thing but requires some significant logistical adjustments domestically and
|
||||
# internationally."
|
||||
# Assume for now that DST will resume with the recent pre-2020 rules for the
|
||||
# 2022/2023 season.
|
||||
|
||||
# From Shalvin Narayan (2022-10-27):
|
||||
# Please note that there will not be any daylight savings time change
|
||||
# in Fiji for 2022-2023....
|
||||
# https://www.facebook.com/FijianGovernment/posts/pfbid0mmWVTYmTibn66ybpFda75pDcf34SSpoSaskJW5gXwaKo5Sgc7273Q4fXWc6kQV6Hl
|
||||
#
|
||||
# From Paul Eggert (2022-10-27):
|
||||
# For now, assume DST is suspended indefinitely.
|
||||
|
||||
# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
|
||||
Rule Fiji 1998 1999 - Nov Sun>=1 2:00 1:00 -
|
||||
@@ -432,8 +431,6 @@ Rule Fiji 2014 2018 - Nov Sun>=1 2:00 1:00 -
|
||||
Rule Fiji 2015 2021 - Jan Sun>=12 3:00 0 -
|
||||
Rule Fiji 2019 only - Nov Sun>=8 2:00 1:00 -
|
||||
Rule Fiji 2020 only - Dec 20 2:00 1:00 -
|
||||
Rule Fiji 2022 max - Nov Sun>=8 2:00 1:00 -
|
||||
Rule Fiji 2023 max - Jan Sun>=12 3:00 0 -
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone Pacific/Fiji 11:55:44 - LMT 1915 Oct 26 # Suva
|
||||
12:00 Fiji +12/+13
|
||||
@@ -449,7 +446,9 @@ Zone Pacific/Tahiti -9:58:16 - LMT 1912 Oct # Papeete
|
||||
# Clipperton (near North America) is administered from French Polynesia;
|
||||
# it is uninhabited.
|
||||
|
||||
|
||||
# Guam
|
||||
# N Mariana Is
|
||||
|
||||
# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
|
||||
# http://guamlegislature.com/Public_Laws_5th/PL05-025.pdf
|
||||
@@ -489,17 +488,20 @@ Zone Pacific/Guam -14:21:00 - LMT 1844 Dec 31
|
||||
9:00 - +09 1944 Jul 31
|
||||
10:00 Guam G%sT 2000 Dec 23
|
||||
10:00 - ChST # Chamorro Standard Time
|
||||
Link Pacific/Guam Pacific/Saipan # N Mariana Is
|
||||
|
||||
# Kiribati
|
||||
|
||||
# Kiribati (Gilbert Is)
|
||||
# Marshall Is
|
||||
# Tuvalu
|
||||
# Wake
|
||||
# Wallis & Futuna
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone Pacific/Tarawa 11:32:04 - LMT 1901 # Bairiki
|
||||
12:00 - +12
|
||||
Link Pacific/Tarawa Pacific/Funafuti
|
||||
Link Pacific/Tarawa Pacific/Majuro
|
||||
Link Pacific/Tarawa Pacific/Wake
|
||||
Link Pacific/Tarawa Pacific/Wallis
|
||||
|
||||
# Kiribati (except Gilbert Is)
|
||||
# See Pacific/Tarawa for the Gilbert Is.
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone Pacific/Kanton 0 - -00 1937 Aug 31
|
||||
-12:00 - -12 1979 Oct
|
||||
-11:00 - -11 1994 Dec 31
|
||||
@@ -509,9 +511,6 @@ Zone Pacific/Kiritimati -10:29:20 - LMT 1901
|
||||
-10:00 - -10 1994 Dec 31
|
||||
14:00 - +14
|
||||
|
||||
# N Mariana Is
|
||||
# See Pacific/Guam.
|
||||
|
||||
# Marshall Is
|
||||
# See Pacific/Tarawa for most locations.
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
@@ -561,6 +560,7 @@ Zone Pacific/Noumea 11:05:48 - LMT 1912 Jan 13 # Nouméa
|
||||
###############################################################################
|
||||
|
||||
# New Zealand
|
||||
# McMurdo Station and Scott Base in Antarctica use Auckland time.
|
||||
|
||||
# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
|
||||
Rule NZ 1927 only - Nov 6 2:00 1:00 S
|
||||
@@ -596,7 +596,6 @@ Rule Chatham 2008 max - Apr Sun>=1 2:45s 0 -
|
||||
Zone Pacific/Auckland 11:39:04 - LMT 1868 Nov 2
|
||||
11:30 NZ NZ%sT 1946 Jan 1
|
||||
12:00 NZ NZ%sT
|
||||
Link Pacific/Auckland Antarctica/McMurdo
|
||||
|
||||
Zone Pacific/Chatham 12:13:48 - LMT 1868 Nov 2
|
||||
12:15 - +1215 1946 Jan 1
|
||||
@@ -695,8 +694,6 @@ Zone Pacific/Palau -15:02:04 - LMT 1844 Dec 31 # Koror
|
||||
Zone Pacific/Port_Moresby 9:48:40 - LMT 1880
|
||||
9:48:32 - PMMT 1895 # Port Moresby Mean Time
|
||||
10:00 - +10
|
||||
Link Pacific/Port_Moresby Antarctica/DumontDUrville
|
||||
Link Pacific/Port_Moresby Pacific/Chuuk
|
||||
#
|
||||
# From Paul Eggert (2014-10-13):
|
||||
# Base the Bougainville entry on the Arawa-Kieta region, which appears to have
|
||||
@@ -729,10 +726,10 @@ Zone Pacific/Pitcairn -8:40:20 - LMT 1901 # Adamstown
|
||||
-8:00 - -08
|
||||
|
||||
# American Samoa
|
||||
# Midway
|
||||
Zone Pacific/Pago_Pago 12:37:12 - LMT 1892 Jul 5
|
||||
-11:22:48 - LMT 1911
|
||||
-11:00 - SST # S=Samoa
|
||||
Link Pacific/Pago_Pago Pacific/Midway # in US minor outlying islands
|
||||
|
||||
# Samoa (formerly and also known as Western Samoa)
|
||||
|
||||
@@ -824,7 +821,6 @@ Zone Pacific/Apia 12:33:04 - LMT 1892 Jul 5
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone Pacific/Guadalcanal 10:39:48 - LMT 1912 Oct # Honiara
|
||||
11:00 - +11
|
||||
Link Pacific/Guadalcanal Pacific/Pohnpei
|
||||
|
||||
# Tokelau
|
||||
#
|
||||
@@ -864,9 +860,6 @@ Zone Pacific/Tongatapu 12:19:12 - LMT 1945 Sep 10
|
||||
13:00 - +13 1999
|
||||
13:00 Tonga +13/+14
|
||||
|
||||
# Tuvalu
|
||||
# See Pacific/Tarawa.
|
||||
|
||||
|
||||
# US minor outlying islands
|
||||
|
||||
@@ -917,15 +910,9 @@ Zone Pacific/Tongatapu 12:19:12 - LMT 1945 Sep 10
|
||||
# Kingman
|
||||
# uninhabited
|
||||
|
||||
# Midway
|
||||
# See Pacific/Pago_Pago.
|
||||
|
||||
# Palmyra
|
||||
# uninhabited since World War II; was probably like Pacific/Kiritimati
|
||||
|
||||
# Wake
|
||||
# See Pacific/Tarawa.
|
||||
|
||||
|
||||
# Vanuatu
|
||||
|
||||
@@ -962,9 +949,6 @@ Rule Vanuatu 1992 only - Oct Sat>=22 24:00 1:00 -
|
||||
Zone Pacific/Efate 11:13:16 - LMT 1912 Jan 13 # Vila
|
||||
11:00 Vanuatu +11/+12
|
||||
|
||||
# Wallis and Futuna
|
||||
# See Pacific/Tarawa.
|
||||
|
||||
###############################################################################
|
||||
|
||||
# NOTES
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
# 2009-05-17 by Arthur David Olson.
|
||||
|
||||
# This file provides links from old or merged timezone names to current ones.
|
||||
# Many names changed in late 1993, and many merged names moved here
|
||||
# Many names changed in 1993 and in 1995, and many merged names moved here
|
||||
# in the period from 2013 through 2022. Several of these names are
|
||||
# also present in the file 'backzone', which has data important only
|
||||
# for pre-1970 timestamps and so is out of scope for tzdb proper.
|
||||
@@ -36,50 +36,24 @@
|
||||
# building with 'make BACKWARD=', in practice downstream users
|
||||
# typically use this file for backward compatibility.
|
||||
|
||||
# Link TARGET LINK-NAME
|
||||
Link Africa/Nairobi Africa/Asmera
|
||||
Link Africa/Abidjan Africa/Timbuktu
|
||||
Link America/Argentina/Catamarca America/Argentina/ComodRivadavia
|
||||
Link America/Adak America/Atka
|
||||
Link America/Argentina/Buenos_Aires America/Buenos_Aires
|
||||
Link America/Argentina/Catamarca America/Catamarca
|
||||
Link America/Panama America/Coral_Harbour
|
||||
Link America/Argentina/Cordoba America/Cordoba
|
||||
Link America/Tijuana America/Ensenada
|
||||
Link America/Indiana/Indianapolis America/Fort_Wayne
|
||||
Link America/Nuuk America/Godthab
|
||||
Link America/Indiana/Indianapolis America/Indianapolis
|
||||
Link America/Argentina/Jujuy America/Jujuy
|
||||
Link America/Indiana/Knox America/Knox_IN
|
||||
Link America/Kentucky/Louisville America/Louisville
|
||||
Link America/Argentina/Mendoza America/Mendoza
|
||||
Link America/Toronto America/Montreal
|
||||
Link America/Rio_Branco America/Porto_Acre
|
||||
Link America/Argentina/Cordoba America/Rosario
|
||||
Link America/Tijuana America/Santa_Isabel
|
||||
Link America/Denver America/Shiprock
|
||||
Link America/Puerto_Rico America/Virgin
|
||||
Link Pacific/Auckland Antarctica/South_Pole
|
||||
Link Asia/Ashgabat Asia/Ashkhabad
|
||||
Link Asia/Kolkata Asia/Calcutta
|
||||
Link Asia/Shanghai Asia/Chongqing
|
||||
Link Asia/Shanghai Asia/Chungking
|
||||
Link Asia/Dhaka Asia/Dacca
|
||||
Link Asia/Shanghai Asia/Harbin
|
||||
Link Asia/Urumqi Asia/Kashgar
|
||||
Link Asia/Kathmandu Asia/Katmandu
|
||||
Link Asia/Macau Asia/Macao
|
||||
Link Asia/Yangon Asia/Rangoon
|
||||
Link Asia/Ho_Chi_Minh Asia/Saigon
|
||||
Link Asia/Jerusalem Asia/Tel_Aviv
|
||||
Link Asia/Thimphu Asia/Thimbu
|
||||
Link Asia/Makassar Asia/Ujung_Pandang
|
||||
Link Asia/Ulaanbaatar Asia/Ulan_Bator
|
||||
Link Atlantic/Faroe Atlantic/Faeroe
|
||||
Link Europe/Berlin Atlantic/Jan_Mayen
|
||||
Link Australia/Sydney Australia/ACT
|
||||
Link Australia/Sydney Australia/Canberra
|
||||
Link Australia/Hobart Australia/Currie
|
||||
# This file is divided into sections, one for each major reason for a
|
||||
# backward compatibility link. Each section is sorted by link name.
|
||||
|
||||
# A "#= TARGET1" comment labels each link inserted only because some
|
||||
# .zi parsers (including tzcode through 2022e) mishandle links to links.
|
||||
# The comment says what the target would be if these parsers were fixed
|
||||
# so that data could contain links to links. For example, the line
|
||||
# "Link Australia/Sydney Australia/ACT #= Australia/Canberra" would be
|
||||
# "Link Australia/Canberra Australia/ACT" were it not that data lines
|
||||
# refrain from linking to links like Australia/Canberra, which means
|
||||
# the Australia/ACT line links instead to Australia/Sydney,
|
||||
# Australia/Canberra's target.
|
||||
|
||||
|
||||
# Pre-1993 naming conventions
|
||||
|
||||
# Link TARGET LINK-NAME #= TARGET1
|
||||
Link Australia/Sydney Australia/ACT #= Australia/Canberra
|
||||
Link Australia/Lord_Howe Australia/LHI
|
||||
Link Australia/Sydney Australia/NSW
|
||||
Link Australia/Darwin Australia/North
|
||||
@@ -89,7 +63,7 @@ Link Australia/Hobart Australia/Tasmania
|
||||
Link Australia/Melbourne Australia/Victoria
|
||||
Link Australia/Perth Australia/West
|
||||
Link Australia/Broken_Hill Australia/Yancowinna
|
||||
Link America/Rio_Branco Brazil/Acre
|
||||
Link America/Rio_Branco Brazil/Acre #= America/Porto_Acre
|
||||
Link America/Noronha Brazil/DeNoronha
|
||||
Link America/Sao_Paulo Brazil/East
|
||||
Link America/Manaus Brazil/West
|
||||
@@ -109,18 +83,36 @@ Link Pacific/Easter Chile/EasterIsland
|
||||
Link America/Havana Cuba
|
||||
Link Africa/Cairo Egypt
|
||||
Link Europe/Dublin Eire
|
||||
# Vanguard section, for most .zi parsers.
|
||||
#Link GMT Etc/GMT
|
||||
#Link GMT Etc/GMT+0
|
||||
#Link GMT Etc/GMT-0
|
||||
#Link GMT Etc/GMT0
|
||||
#Link GMT Etc/Greenwich
|
||||
# Rearguard section, for TZUpdater 2.3.2 and earlier.
|
||||
Link Etc/GMT Etc/GMT+0
|
||||
Link Etc/GMT Etc/GMT-0
|
||||
Link Etc/GMT Etc/GMT0
|
||||
Link Etc/GMT Etc/Greenwich
|
||||
# End of rearguard section.
|
||||
Link Etc/UTC Etc/UCT
|
||||
Link Europe/London Europe/Belfast
|
||||
Link Europe/Kyiv Europe/Kiev
|
||||
Link Europe/Chisinau Europe/Tiraspol
|
||||
Link Etc/UTC Etc/Universal
|
||||
Link Etc/UTC Etc/Zulu
|
||||
Link Europe/London GB
|
||||
Link Europe/London GB-Eire
|
||||
# Vanguard section, for most .zi parsers.
|
||||
#Link GMT GMT+0
|
||||
#Link GMT GMT-0
|
||||
#Link GMT GMT0
|
||||
#Link GMT Greenwich
|
||||
# Rearguard section, for TZUpdater 2.3.2 and earlier.
|
||||
Link Etc/GMT GMT+0
|
||||
Link Etc/GMT GMT-0
|
||||
Link Etc/GMT GMT0
|
||||
Link Etc/GMT Greenwich
|
||||
# End of rearguard section.
|
||||
Link Asia/Hong_Kong Hongkong
|
||||
Link Africa/Abidjan Iceland
|
||||
Link Africa/Abidjan Iceland #= Atlantic/Reykjavik
|
||||
Link Asia/Tehran Iran
|
||||
Link Asia/Jerusalem Israel
|
||||
Link America/Jamaica Jamaica
|
||||
@@ -132,14 +124,8 @@ Link America/Mazatlan Mexico/BajaSur
|
||||
Link America/Mexico_City Mexico/General
|
||||
Link Pacific/Auckland NZ
|
||||
Link Pacific/Chatham NZ-CHAT
|
||||
Link America/Denver Navajo
|
||||
Link America/Denver Navajo #= America/Shiprock
|
||||
Link Asia/Shanghai PRC
|
||||
Link Pacific/Kanton Pacific/Enderbury
|
||||
Link Pacific/Honolulu Pacific/Johnston
|
||||
Link Pacific/Guadalcanal Pacific/Ponape
|
||||
Link Pacific/Pago_Pago Pacific/Samoa
|
||||
Link Pacific/Port_Moresby Pacific/Truk
|
||||
Link Pacific/Port_Moresby Pacific/Yap
|
||||
Link Europe/Warsaw Poland
|
||||
Link Europe/Lisbon Portugal
|
||||
Link Asia/Taipei ROC
|
||||
@@ -163,3 +149,193 @@ Link Etc/UTC UTC
|
||||
Link Etc/UTC Universal
|
||||
Link Europe/Moscow W-SU
|
||||
Link Etc/UTC Zulu
|
||||
|
||||
|
||||
# Two-part names that were renamed mostly to three-part names in 1995
|
||||
|
||||
# Link TARGET LINK-NAME #= TARGET1
|
||||
Link America/Argentina/Buenos_Aires America/Buenos_Aires
|
||||
Link America/Argentina/Catamarca America/Catamarca
|
||||
Link America/Argentina/Cordoba America/Cordoba
|
||||
Link America/Indiana/Indianapolis America/Indianapolis
|
||||
Link America/Argentina/Jujuy America/Jujuy
|
||||
Link America/Indiana/Knox America/Knox_IN
|
||||
Link America/Kentucky/Louisville America/Louisville
|
||||
Link America/Argentina/Mendoza America/Mendoza
|
||||
Link America/Puerto_Rico America/Virgin #= America/St_Thomas
|
||||
Link Pacific/Pago_Pago Pacific/Samoa
|
||||
|
||||
|
||||
# Pre-2013 practice, which typically had a Zone per zone.tab line
|
||||
|
||||
# Link TARGET LINK-NAME
|
||||
Link Africa/Abidjan Africa/Accra
|
||||
Link Africa/Nairobi Africa/Addis_Ababa
|
||||
Link Africa/Nairobi Africa/Asmara
|
||||
Link Africa/Abidjan Africa/Bamako
|
||||
Link Africa/Lagos Africa/Bangui
|
||||
Link Africa/Abidjan Africa/Banjul
|
||||
Link Africa/Maputo Africa/Blantyre
|
||||
Link Africa/Lagos Africa/Brazzaville
|
||||
Link Africa/Maputo Africa/Bujumbura
|
||||
Link Africa/Abidjan Africa/Conakry
|
||||
Link Africa/Abidjan Africa/Dakar
|
||||
Link Africa/Nairobi Africa/Dar_es_Salaam
|
||||
Link Africa/Nairobi Africa/Djibouti
|
||||
Link Africa/Lagos Africa/Douala
|
||||
Link Africa/Abidjan Africa/Freetown
|
||||
Link Africa/Maputo Africa/Gaborone
|
||||
Link Africa/Maputo Africa/Harare
|
||||
Link Africa/Nairobi Africa/Kampala
|
||||
Link Africa/Maputo Africa/Kigali
|
||||
Link Africa/Lagos Africa/Kinshasa
|
||||
Link Africa/Lagos Africa/Libreville
|
||||
Link Africa/Abidjan Africa/Lome
|
||||
Link Africa/Lagos Africa/Luanda
|
||||
Link Africa/Maputo Africa/Lubumbashi
|
||||
Link Africa/Maputo Africa/Lusaka
|
||||
Link Africa/Lagos Africa/Malabo
|
||||
Link Africa/Johannesburg Africa/Maseru
|
||||
Link Africa/Johannesburg Africa/Mbabane
|
||||
Link Africa/Nairobi Africa/Mogadishu
|
||||
Link Africa/Lagos Africa/Niamey
|
||||
Link Africa/Abidjan Africa/Nouakchott
|
||||
Link Africa/Abidjan Africa/Ouagadougou
|
||||
Link Africa/Lagos Africa/Porto-Novo
|
||||
Link America/Puerto_Rico America/Anguilla
|
||||
Link America/Puerto_Rico America/Antigua
|
||||
Link America/Puerto_Rico America/Aruba
|
||||
Link America/Panama America/Atikokan
|
||||
Link America/Puerto_Rico America/Blanc-Sablon
|
||||
Link America/Panama America/Cayman
|
||||
Link America/Phoenix America/Creston
|
||||
Link America/Puerto_Rico America/Curacao
|
||||
Link America/Puerto_Rico America/Dominica
|
||||
Link America/Puerto_Rico America/Grenada
|
||||
Link America/Puerto_Rico America/Guadeloupe
|
||||
Link America/Puerto_Rico America/Kralendijk
|
||||
Link America/Puerto_Rico America/Lower_Princes
|
||||
Link America/Puerto_Rico America/Marigot
|
||||
Link America/Puerto_Rico America/Montserrat
|
||||
Link America/Toronto America/Nassau
|
||||
Link America/Puerto_Rico America/Port_of_Spain
|
||||
Link America/Puerto_Rico America/St_Barthelemy
|
||||
Link America/Puerto_Rico America/St_Kitts
|
||||
Link America/Puerto_Rico America/St_Lucia
|
||||
Link America/Puerto_Rico America/St_Thomas
|
||||
Link America/Puerto_Rico America/St_Vincent
|
||||
Link America/Puerto_Rico America/Tortola
|
||||
Link Pacific/Port_Moresby Antarctica/DumontDUrville
|
||||
Link Pacific/Auckland Antarctica/McMurdo
|
||||
Link Asia/Riyadh Antarctica/Syowa
|
||||
Link Asia/Urumqi Antarctica/Vostok
|
||||
Link Europe/Berlin Arctic/Longyearbyen
|
||||
Link Asia/Riyadh Asia/Aden
|
||||
Link Asia/Qatar Asia/Bahrain
|
||||
Link Asia/Kuching Asia/Brunei
|
||||
Link Asia/Singapore Asia/Kuala_Lumpur
|
||||
Link Asia/Riyadh Asia/Kuwait
|
||||
Link Asia/Dubai Asia/Muscat
|
||||
Link Asia/Bangkok Asia/Phnom_Penh
|
||||
Link Asia/Bangkok Asia/Vientiane
|
||||
Link Africa/Abidjan Atlantic/Reykjavik
|
||||
Link Africa/Abidjan Atlantic/St_Helena
|
||||
Link Europe/Brussels Europe/Amsterdam
|
||||
Link Europe/Prague Europe/Bratislava
|
||||
Link Europe/Zurich Europe/Busingen
|
||||
Link Europe/Berlin Europe/Copenhagen
|
||||
Link Europe/London Europe/Guernsey
|
||||
Link Europe/London Europe/Isle_of_Man
|
||||
Link Europe/London Europe/Jersey
|
||||
Link Europe/Belgrade Europe/Ljubljana
|
||||
Link Europe/Brussels Europe/Luxembourg
|
||||
Link Europe/Helsinki Europe/Mariehamn
|
||||
Link Europe/Paris Europe/Monaco
|
||||
Link Europe/Berlin Europe/Oslo
|
||||
Link Europe/Belgrade Europe/Podgorica
|
||||
Link Europe/Rome Europe/San_Marino
|
||||
Link Europe/Belgrade Europe/Sarajevo
|
||||
Link Europe/Belgrade Europe/Skopje
|
||||
Link Europe/Berlin Europe/Stockholm
|
||||
Link Europe/Zurich Europe/Vaduz
|
||||
Link Europe/Rome Europe/Vatican
|
||||
Link Europe/Belgrade Europe/Zagreb
|
||||
Link Africa/Nairobi Indian/Antananarivo
|
||||
Link Asia/Bangkok Indian/Christmas
|
||||
Link Asia/Yangon Indian/Cocos
|
||||
Link Africa/Nairobi Indian/Comoro
|
||||
Link Indian/Maldives Indian/Kerguelen
|
||||
Link Asia/Dubai Indian/Mahe
|
||||
Link Africa/Nairobi Indian/Mayotte
|
||||
Link Asia/Dubai Indian/Reunion
|
||||
Link Pacific/Port_Moresby Pacific/Chuuk
|
||||
Link Pacific/Tarawa Pacific/Funafuti
|
||||
Link Pacific/Tarawa Pacific/Majuro
|
||||
Link Pacific/Pago_Pago Pacific/Midway
|
||||
Link Pacific/Guadalcanal Pacific/Pohnpei
|
||||
Link Pacific/Guam Pacific/Saipan
|
||||
Link Pacific/Tarawa Pacific/Wake
|
||||
Link Pacific/Tarawa Pacific/Wallis
|
||||
|
||||
|
||||
# Non-zone.tab locations with timestamps since 1970 that duplicate
|
||||
# those of an existing location
|
||||
|
||||
# Link TARGET LINK-NAME
|
||||
Link Africa/Abidjan Africa/Timbuktu
|
||||
Link America/Argentina/Catamarca America/Argentina/ComodRivadavia
|
||||
Link America/Adak America/Atka
|
||||
Link America/Panama America/Coral_Harbour
|
||||
Link America/Tijuana America/Ensenada
|
||||
Link America/Indiana/Indianapolis America/Fort_Wayne
|
||||
Link America/Toronto America/Montreal
|
||||
Link America/Toronto America/Nipigon
|
||||
Link America/Iqaluit America/Pangnirtung
|
||||
Link America/Rio_Branco America/Porto_Acre
|
||||
Link America/Winnipeg America/Rainy_River
|
||||
Link America/Argentina/Cordoba America/Rosario
|
||||
Link America/Tijuana America/Santa_Isabel
|
||||
Link America/Denver America/Shiprock
|
||||
Link America/Toronto America/Thunder_Bay
|
||||
Link Pacific/Auckland Antarctica/South_Pole
|
||||
Link Asia/Shanghai Asia/Chongqing
|
||||
Link Asia/Shanghai Asia/Harbin
|
||||
Link Asia/Urumqi Asia/Kashgar
|
||||
Link Asia/Jerusalem Asia/Tel_Aviv
|
||||
Link Europe/Berlin Atlantic/Jan_Mayen
|
||||
Link Australia/Sydney Australia/Canberra
|
||||
Link Australia/Hobart Australia/Currie
|
||||
Link Europe/London Europe/Belfast
|
||||
Link Europe/Chisinau Europe/Tiraspol
|
||||
Link Europe/Kyiv Europe/Uzhgorod
|
||||
Link Europe/Kyiv Europe/Zaporozhye
|
||||
Link Pacific/Kanton Pacific/Enderbury
|
||||
Link Pacific/Honolulu Pacific/Johnston
|
||||
Link Pacific/Port_Moresby Pacific/Yap
|
||||
|
||||
|
||||
# Alternate names for the same location
|
||||
|
||||
# Link TARGET LINK-NAME #= TARGET1
|
||||
Link Africa/Nairobi Africa/Asmera #= Africa/Asmara
|
||||
Link America/Nuuk America/Godthab
|
||||
Link Asia/Ashgabat Asia/Ashkhabad
|
||||
Link Asia/Kolkata Asia/Calcutta
|
||||
Link Asia/Shanghai Asia/Chungking #= Asia/Chongqing
|
||||
Link Asia/Dhaka Asia/Dacca
|
||||
# Istanbul is in both continents.
|
||||
Link Europe/Istanbul Asia/Istanbul
|
||||
Link Asia/Kathmandu Asia/Katmandu
|
||||
Link Asia/Macau Asia/Macao
|
||||
Link Asia/Yangon Asia/Rangoon
|
||||
Link Asia/Ho_Chi_Minh Asia/Saigon
|
||||
Link Asia/Thimphu Asia/Thimbu
|
||||
Link Asia/Makassar Asia/Ujung_Pandang
|
||||
Link Asia/Ulaanbaatar Asia/Ulan_Bator
|
||||
Link Atlantic/Faroe Atlantic/Faeroe
|
||||
Link Europe/Kyiv Europe/Kiev
|
||||
# Classically, Cyprus is in Asia; e.g. see Herodotus, Histories, I.72.
|
||||
# However, for various reasons many users expect to find it under Europe.
|
||||
Link Asia/Nicosia Europe/Nicosia
|
||||
Link Pacific/Guadalcanal Pacific/Ponape #= Pacific/Pohnpei
|
||||
Link Pacific/Port_Moresby Pacific/Truk #= Pacific/Chuuk
|
||||
|
||||
@@ -39,26 +39,23 @@
|
||||
# Do not use a POSIX TZ setting like TZ='GMT+4', which is four hours
|
||||
# behind GMT but uses the completely misleading abbreviation "GMT".
|
||||
|
||||
Zone Etc/GMT 0 - GMT
|
||||
|
||||
# The following zone is used by tzcode functions like gmtime,
|
||||
# which load the "UTC" file to handle seconds properly.
|
||||
Zone Etc/UTC 0 - UTC
|
||||
|
||||
# Functions like gmtime load the "GMT" file to handle leap seconds properly.
|
||||
# Vanguard section, which works with most .zi parsers.
|
||||
#Zone GMT 0 - GMT
|
||||
# Rearguard section, for TZUpdater 2.3.2 and earlier.
|
||||
Zone Etc/GMT 0 - GMT
|
||||
|
||||
# The following link uses older naming conventions,
|
||||
# but it belongs here, not in the file 'backward',
|
||||
# as it is needed for tzcode releases through 2022a,
|
||||
# where functions like gmtime load "GMT" instead of the "Etc/UTC".
|
||||
# We want this to work even on installations that omit 'backward'.
|
||||
Link Etc/GMT GMT
|
||||
|
||||
Link Etc/UTC Etc/Universal
|
||||
Link Etc/UTC Etc/Zulu
|
||||
|
||||
Link Etc/GMT Etc/Greenwich
|
||||
Link Etc/GMT Etc/GMT-0
|
||||
Link Etc/GMT Etc/GMT+0
|
||||
Link Etc/GMT Etc/GMT0
|
||||
# End of rearguard section.
|
||||
|
||||
# Be consistent with POSIX TZ settings in the Zone names,
|
||||
# even though this is the opposite of what many people expect.
|
||||
|
||||
@@ -527,9 +527,6 @@ Zone Europe/London -0:01:15 - LMT 1847 Dec 1
|
||||
1:00 - BST 1971 Oct 31 2:00u
|
||||
0:00 GB-Eire %s 1996
|
||||
0:00 EU GMT/BST
|
||||
Link Europe/London Europe/Jersey
|
||||
Link Europe/London Europe/Guernsey
|
||||
Link Europe/London Europe/Isle_of_Man
|
||||
|
||||
# From Paul Eggert (2018-02-15):
|
||||
# In January 2018 we discovered that the negative SAVE values in the
|
||||
@@ -902,6 +899,8 @@ Zone Europe/Minsk 1:50:16 - LMT 1880
|
||||
3:00 - +03
|
||||
|
||||
# Belgium
|
||||
# Luxembourg
|
||||
# Netherlands
|
||||
#
|
||||
# From Michael Deckers (2019-08-25):
|
||||
# The exposition in the web page
|
||||
@@ -984,11 +983,6 @@ Zone Europe/Brussels 0:17:30 - LMT 1880
|
||||
1:00 C-Eur CE%sT 1944 Sep 3
|
||||
1:00 Belgium CE%sT 1977
|
||||
1:00 EU CE%sT
|
||||
Link Europe/Brussels Europe/Amsterdam
|
||||
Link Europe/Brussels Europe/Luxembourg
|
||||
|
||||
# Bosnia and Herzegovina
|
||||
# See Europe/Belgrade.
|
||||
|
||||
# Bulgaria
|
||||
#
|
||||
@@ -1015,13 +1009,11 @@ Zone Europe/Sofia 1:33:16 - LMT 1880
|
||||
2:00 E-Eur EE%sT 1997
|
||||
2:00 EU EE%sT
|
||||
|
||||
# Croatia
|
||||
# See Europe/Belgrade.
|
||||
|
||||
# Cyprus
|
||||
# Please see the 'asia' file for Asia/Nicosia.
|
||||
|
||||
# Czech Republic / Czechia
|
||||
# Czech Republic (Czechia)
|
||||
# Slovakia
|
||||
#
|
||||
# From Paul Eggert (2018-04-15):
|
||||
# The source for Czech data is: Kdy začíná a končí letní čas. 2018-04-15.
|
||||
@@ -1048,15 +1040,14 @@ Zone Europe/Prague 0:57:44 - LMT 1850
|
||||
# End of rearguard section.
|
||||
1:00 Czech CE%sT 1979
|
||||
1:00 EU CE%sT
|
||||
Link Europe/Prague Europe/Bratislava
|
||||
|
||||
|
||||
# Denmark, Faroe Islands, and Greenland
|
||||
# For Denmark see Europe/Berlin.
|
||||
|
||||
# Faroe Is
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone Atlantic/Faroe -0:27:04 - LMT 1908 Jan 11 # Tórshavn
|
||||
0:00 - WET 1981
|
||||
0:00 EU WE%sT
|
||||
|
||||
# Greenland
|
||||
#
|
||||
# From Paul Eggert (2004-10-31):
|
||||
# During World War II, Germany maintained secret manned weather stations in
|
||||
@@ -1135,7 +1126,30 @@ Zone Atlantic/Faroe -0:27:04 - LMT 1908 Jan 11 # Tórshavn
|
||||
# "National Park" by Executive Order:
|
||||
# http://naalakkersuisut.gl/~/media/Nanoq/Files/Attached%20Files/Engelske-tekster/Legislation/Executive%20Order%20National%20Park.rtf
|
||||
# It is their only National Park.
|
||||
|
||||
# From Jonas Nyrup (2022-11-24):
|
||||
# On last Saturday in October 2023 when DST ends America/Nuuk will switch
|
||||
# from -03/-02 to -02/-01
|
||||
# https://sermitsiaq.ag/forslagtidsforskel-danmark-mindskes-sommertid-beholdes
|
||||
# ...
|
||||
# https://sermitsiaq.ag/groenland-skifte-tidszone-trods-bekymringer
|
||||
#
|
||||
# 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).
|
||||
|
||||
# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
|
||||
Rule Thule 1991 1992 - Mar lastSun 2:00 1:00 D
|
||||
Rule Thule 1991 1992 - Sep lastSun 2:00 0 S
|
||||
@@ -1158,7 +1172,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
|
||||
-3:00 EU -03/-02 2023 Mar 25 22:00
|
||||
-2:00 - -02
|
||||
Zone America/Thule -4:35:08 - LMT 1916 Jul 28 # Pituffik
|
||||
-4:00 Thule A%sT
|
||||
|
||||
@@ -1282,11 +1297,8 @@ Zone Europe/Helsinki 1:39:49 - LMT 1878 May 31
|
||||
2:00 Finland EE%sT 1983
|
||||
2:00 EU EE%sT
|
||||
|
||||
# Åland Is
|
||||
Link Europe/Helsinki Europe/Mariehamn
|
||||
|
||||
|
||||
# France
|
||||
# Monaco
|
||||
|
||||
# From Ciro Discepolo (2000-12-20):
|
||||
#
|
||||
@@ -1423,9 +1435,11 @@ Zone Europe/Paris 0:09:21 - LMT 1891 Mar 16
|
||||
0:00 France WE%sT 1945 Sep 16 3:00
|
||||
1:00 France CE%sT 1977
|
||||
1:00 EU CE%sT
|
||||
Link Europe/Paris Europe/Monaco
|
||||
|
||||
# Denmark
|
||||
# Germany
|
||||
# Norway
|
||||
# Sweden
|
||||
|
||||
# From Markus Kuhn (1998-09-29):
|
||||
# The German time zone web site by the Physikalisch-Technische
|
||||
@@ -1443,6 +1457,53 @@ Link Europe/Paris Europe/Monaco
|
||||
# However, Moscow did not observe daylight saving in 1945, so
|
||||
# this was equivalent to UT +03, not +04.
|
||||
|
||||
# Svalbard & Jan Mayen
|
||||
|
||||
# From Steffen Thorsen (2001-05-01):
|
||||
# Although I could not find it explicitly, it seems that Jan Mayen and
|
||||
# Svalbard have been using the same time as Norway at least since the
|
||||
# time they were declared as parts of Norway. Svalbard was declared
|
||||
# as a part of Norway by law of 1925-07-17 no 11, section 4 and Jan
|
||||
# Mayen by law of 1930-02-27 no 2, section 2. (From
|
||||
# <http://www.lovdata.no/all/nl-19250717-011.html> and
|
||||
# <http://www.lovdata.no/all/nl-19300227-002.html>). The law/regulation
|
||||
# for normal/standard time in Norway is from 1894-06-29 no 1 (came
|
||||
# into operation on 1895-01-01) and Svalbard/Jan Mayen seem to be a
|
||||
# part of this law since 1925/1930. (From
|
||||
# <http://www.lovdata.no/all/nl-18940629-001.html>) I have not been
|
||||
# able to find if Jan Mayen used a different time zone (e.g. -0100)
|
||||
# before 1930. Jan Mayen has only been "inhabited" since 1921 by
|
||||
# Norwegian meteorologists and maybe used the same time as Norway ever
|
||||
# since 1921. Svalbard (Arctic/Longyearbyen) has been inhabited since
|
||||
# before 1895, and therefore probably changed the local time somewhere
|
||||
# between 1895 and 1925 (inclusive).
|
||||
|
||||
# From Paul Eggert (2013-09-04):
|
||||
#
|
||||
# Actually, Jan Mayen was never occupied by Germany during World War II,
|
||||
# so it must have diverged from Oslo time during the war, as Oslo was
|
||||
# keeping Berlin time.
|
||||
#
|
||||
# <https://www.jan-mayen.no/history.htm> says that the meteorologists
|
||||
# burned down their station in 1940 and left the island, but returned in
|
||||
# 1941 with a small Norwegian garrison and continued operations despite
|
||||
# frequent air attacks from Germans. In 1943 the Americans established a
|
||||
# radiolocating station on the island, called "Atlantic City". Possibly
|
||||
# the UT offset changed during the war, but I think it unlikely that
|
||||
# Jan Mayen used German daylight-saving rules.
|
||||
#
|
||||
# Svalbard is more complicated, as it was raided in August 1941 by an
|
||||
# Allied party that evacuated the civilian population to England (says
|
||||
# <http://www.bartleby.com/65/sv/Svalbard.html>). The Svalbard FAQ
|
||||
# <http://www.svalbard.com/SvalbardFAQ.html> says that the Germans were
|
||||
# expelled on 1942-05-14. However, small parties of Germans did return,
|
||||
# and according to Wilhelm Dege's book "War North of 80" (1954)
|
||||
# http://www.ucalgary.ca/UofC/departments/UP/1-55238/1-55238-110-2.html
|
||||
# the German armed forces at the Svalbard weather station code-named
|
||||
# Haudegen did not surrender to the Allies until September 1945.
|
||||
#
|
||||
# All these events predate our cutoff date of 1970, so use Europe/Berlin
|
||||
# for these regions.
|
||||
|
||||
# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
|
||||
Rule Germany 1946 only - Apr 14 2:00s 1:00 S
|
||||
@@ -1467,11 +1528,6 @@ Zone Europe/Berlin 0:53:28 - LMT 1893 Apr
|
||||
1:00 SovietZone CE%sT 1946
|
||||
1:00 Germany CE%sT 1980
|
||||
1:00 EU CE%sT
|
||||
Link Europe/Berlin Arctic/Longyearbyen
|
||||
Link Europe/Berlin Europe/Copenhagen
|
||||
Link Europe/Berlin Europe/Oslo
|
||||
Link Europe/Berlin Europe/Stockholm
|
||||
|
||||
|
||||
# Georgia
|
||||
# Please see the "asia" file for Asia/Tbilisi.
|
||||
@@ -1590,10 +1646,9 @@ Zone Europe/Budapest 1:16:20 - LMT 1890 Nov 1
|
||||
1:00 Hungary CE%sT 1984
|
||||
1:00 EU CE%sT
|
||||
|
||||
# Iceland
|
||||
# See Africa/Abidjan.
|
||||
|
||||
# Italy
|
||||
# San Marino
|
||||
# Vatican City
|
||||
#
|
||||
# From Paul Eggert (2001-03-06):
|
||||
# Sicily and Sardinia each had their own time zones from 1866 to 1893,
|
||||
@@ -1712,13 +1767,6 @@ Zone Europe/Rome 0:49:56 - LMT 1866 Dec 12
|
||||
1:00 C-Eur CE%sT 1944 Jun 4
|
||||
1:00 Italy CE%sT 1980
|
||||
1:00 EU CE%sT
|
||||
Link Europe/Rome Europe/Vatican
|
||||
Link Europe/Rome Europe/San_Marino
|
||||
|
||||
|
||||
# Kosovo
|
||||
# See Europe/Belgrade.
|
||||
|
||||
|
||||
# Latvia
|
||||
|
||||
@@ -1802,10 +1850,6 @@ Zone Europe/Riga 1:36:34 - LMT 1880
|
||||
2:00 - EET 2001 Jan 2
|
||||
2:00 EU EE%sT
|
||||
|
||||
# Liechtenstein
|
||||
# See Europe/Zurich.
|
||||
|
||||
|
||||
# Lithuania
|
||||
|
||||
# From Paul Eggert (2016-03-18):
|
||||
@@ -1858,12 +1902,6 @@ Zone Europe/Vilnius 1:41:16 - LMT 1880
|
||||
2:00 - EET 2003 Jan 1
|
||||
2:00 EU EE%sT
|
||||
|
||||
# Luxembourg
|
||||
# See Europe/Brussels.
|
||||
|
||||
# North Macedonia
|
||||
# See Europe/Belgrade.
|
||||
|
||||
# Malta
|
||||
#
|
||||
# From Paul Eggert (2016-10-21):
|
||||
@@ -1959,67 +1997,6 @@ Zone Europe/Chisinau 1:55:20 - LMT 1880
|
||||
# See Romania commentary for the guessed 1997 transition to EU rules.
|
||||
2:00 Moldova EE%sT
|
||||
|
||||
# Monaco
|
||||
# See Europe/Paris.
|
||||
|
||||
# Montenegro
|
||||
# See Europe/Belgrade.
|
||||
|
||||
# Netherlands
|
||||
# See Europe/Brussels.
|
||||
|
||||
# Norway
|
||||
# See Europe/Berlin.
|
||||
|
||||
# Svalbard & Jan Mayen
|
||||
|
||||
# From Steffen Thorsen (2001-05-01):
|
||||
# Although I could not find it explicitly, it seems that Jan Mayen and
|
||||
# Svalbard have been using the same time as Norway at least since the
|
||||
# time they were declared as parts of Norway. Svalbard was declared
|
||||
# as a part of Norway by law of 1925-07-17 no 11, section 4 and Jan
|
||||
# Mayen by law of 1930-02-27 no 2, section 2. (From
|
||||
# <http://www.lovdata.no/all/nl-19250717-011.html> and
|
||||
# <http://www.lovdata.no/all/nl-19300227-002.html>). The law/regulation
|
||||
# for normal/standard time in Norway is from 1894-06-29 no 1 (came
|
||||
# into operation on 1895-01-01) and Svalbard/Jan Mayen seem to be a
|
||||
# part of this law since 1925/1930. (From
|
||||
# <http://www.lovdata.no/all/nl-18940629-001.html>) I have not been
|
||||
# able to find if Jan Mayen used a different time zone (e.g. -0100)
|
||||
# before 1930. Jan Mayen has only been "inhabited" since 1921 by
|
||||
# Norwegian meteorologists and maybe used the same time as Norway ever
|
||||
# since 1921. Svalbard (Arctic/Longyearbyen) has been inhabited since
|
||||
# before 1895, and therefore probably changed the local time somewhere
|
||||
# between 1895 and 1925 (inclusive).
|
||||
|
||||
# From Paul Eggert (2013-09-04):
|
||||
#
|
||||
# Actually, Jan Mayen was never occupied by Germany during World War II,
|
||||
# so it must have diverged from Oslo time during the war, as Oslo was
|
||||
# keeping Berlin time.
|
||||
#
|
||||
# <https://www.jan-mayen.no/history.htm> says that the meteorologists
|
||||
# burned down their station in 1940 and left the island, but returned in
|
||||
# 1941 with a small Norwegian garrison and continued operations despite
|
||||
# frequent air attacks from Germans. In 1943 the Americans established a
|
||||
# radiolocating station on the island, called "Atlantic City". Possibly
|
||||
# the UT offset changed during the war, but I think it unlikely that
|
||||
# Jan Mayen used German daylight-saving rules.
|
||||
#
|
||||
# Svalbard is more complicated, as it was raided in August 1941 by an
|
||||
# Allied party that evacuated the civilian population to England (says
|
||||
# <http://www.bartleby.com/65/sv/Svalbard.html>). The Svalbard FAQ
|
||||
# <http://www.svalbard.com/SvalbardFAQ.html> says that the Germans were
|
||||
# expelled on 1942-05-14. However, small parties of Germans did return,
|
||||
# and according to Wilhelm Dege's book "War North of 80" (1954)
|
||||
# http://www.ucalgary.ca/UofC/departments/UP/1-55238/1-55238-110-2.html
|
||||
# the German armed forces at the Svalbard weather station code-named
|
||||
# Haudegen did not surrender to the Allies until September 1945.
|
||||
#
|
||||
# All these events predate our cutoff date of 1970, so use Europe/Berlin
|
||||
# for these regions.
|
||||
|
||||
|
||||
# Poland
|
||||
|
||||
# The 1919 dates and times can be found in Tygodnik Urzędowy nr 1 (1919-03-20),
|
||||
@@ -2638,10 +2615,14 @@ Zone Europe/Simferopol 2:16:24 - LMT 1880
|
||||
# From Alexander Krivenyshev (2014-03-17):
|
||||
# time change at 2:00 (2am) on March 30, 2014
|
||||
# https://vz.ru/news/2014/3/17/677464.html
|
||||
# From Paul Eggert (2014-03-30):
|
||||
# Simferopol and Sevastopol reportedly changed their central town clocks
|
||||
# late the previous day, but this appears to have been ceremonial
|
||||
# and the discrepancies are small enough to not worry about.
|
||||
# From Tim Parenti (2022-07-01), per Paul Eggert (2014-03-30):
|
||||
# The clocks at the railway station in Simferopol were put forward from 22:00
|
||||
# to 24:00 the previous day in a "symbolic ceremony"; however, per
|
||||
# contemporaneous news reports, "ordinary Crimeans [made] the daylight savings
|
||||
# time switch at 2am" on Sunday.
|
||||
# https://www.business-standard.com/article/pti-stories/crimea-to-set-clocks-to-russia-time-114033000014_1.html
|
||||
# https://www.reuters.com/article/us-ukraine-crisis-crimea-time/crimea-switches-to-moscow-time-amid-incorporation-frenzy-idUKBREA2S0LT20140329
|
||||
# https://www.bbc.com/news/av/world-europe-26806583
|
||||
2:00 EU EE%sT 2014 Mar 30 2:00
|
||||
4:00 - MSK 2014 Oct 26 2:00s
|
||||
3:00 - MSK
|
||||
@@ -3297,11 +3278,13 @@ Zone Asia/Anadyr 11:49:56 - LMT 1924 May 2
|
||||
11:00 Russia +11/+12 2011 Mar 27 2:00s
|
||||
12:00 - +12
|
||||
|
||||
|
||||
# San Marino
|
||||
# See Europe/Rome.
|
||||
|
||||
# Bosnia & Herzegovina
|
||||
# Croatia
|
||||
# Kosovo
|
||||
# Montenegro
|
||||
# North Macedonia
|
||||
# Serbia
|
||||
# Slovenia
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone Europe/Belgrade 1:22:00 - LMT 1884
|
||||
1:00 - CET 1941 Apr 18 23:00
|
||||
@@ -3313,17 +3296,6 @@ Zone Europe/Belgrade 1:22:00 - LMT 1884
|
||||
# Shanks & Pottenger don't give as much detail, so go with Koželj.
|
||||
1:00 - CET 1982 Nov 27
|
||||
1:00 EU CE%sT
|
||||
Link Europe/Belgrade Europe/Ljubljana # Slovenia
|
||||
Link Europe/Belgrade Europe/Podgorica # Montenegro
|
||||
Link Europe/Belgrade Europe/Sarajevo # Bosnia and Herzegovina
|
||||
Link Europe/Belgrade Europe/Skopje # North Macedonia
|
||||
Link Europe/Belgrade Europe/Zagreb # Croatia
|
||||
|
||||
# Slovakia
|
||||
# See Europe/Prague.
|
||||
|
||||
# Slovenia
|
||||
# See Europe/Belgrade.
|
||||
|
||||
# Spain
|
||||
#
|
||||
@@ -3413,7 +3385,7 @@ Zone Europe/Madrid -0:14:44 - LMT 1901 Jan 1 0:00u
|
||||
0:00 Spain WE%sT 1940 Mar 16 23:00
|
||||
1:00 Spain CE%sT 1979
|
||||
1:00 EU CE%sT
|
||||
Zone Africa/Ceuta -0:21:16 - LMT 1900 Dec 31 23:38:44
|
||||
Zone Africa/Ceuta -0:21:16 - LMT 1901 Jan 1 0:00u
|
||||
0:00 - WET 1918 May 6 23:00
|
||||
0:00 1:00 WEST 1918 Oct 7 23:00
|
||||
0:00 - WET 1924
|
||||
@@ -3430,10 +3402,11 @@ Zone Atlantic/Canary -1:01:36 - LMT 1922 Mar # Las Palmas de Gran C.
|
||||
# IATA SSIM (1996-09) says the Canaries switch at 2:00u, not 1:00u.
|
||||
# Ignore this for now, as the Canaries are part of the EU.
|
||||
|
||||
# Sweden
|
||||
# See Europe/Berlin.
|
||||
|
||||
# Germany (Busingen enclave)
|
||||
# Liechtenstein
|
||||
# Switzerland
|
||||
#
|
||||
# From Howse:
|
||||
# By the end of the 18th century clocks and watches became commonplace
|
||||
# and their performance improved enormously. Communities began to keep
|
||||
@@ -3546,9 +3519,6 @@ Zone Europe/Zurich 0:34:08 - LMT 1853 Jul 16 # See above comment.
|
||||
0:29:46 - BMT 1894 Jun # Bern Mean Time
|
||||
1:00 Swiss CE%sT 1981
|
||||
1:00 EU CE%sT
|
||||
Link Europe/Zurich Europe/Busingen
|
||||
Link Europe/Zurich Europe/Vaduz
|
||||
|
||||
|
||||
# Turkey
|
||||
|
||||
@@ -3753,7 +3723,6 @@ Zone Europe/Istanbul 1:55:52 - LMT 1880
|
||||
2:00 1:00 EEST 2015 Nov 8 1:00u
|
||||
2:00 EU EE%sT 2016 Sep 7
|
||||
3:00 - +03
|
||||
Link Europe/Istanbul Asia/Istanbul # Istanbul is in both continents.
|
||||
|
||||
# Ukraine
|
||||
#
|
||||
@@ -3774,8 +3743,8 @@ Link Europe/Istanbul Asia/Istanbul # Istanbul is in both continents.
|
||||
# US colleague David Cochrane) are still trying to get more
|
||||
# information upon these local deviations from Kiev rules.
|
||||
#
|
||||
# From Paul Eggert (2022-02-08):
|
||||
# For now, assume that Ukraine's other three zones followed the same rules,
|
||||
# From Paul Eggert (2022-08-27):
|
||||
# For now, assume that Ukraine's zones all followed the same rules,
|
||||
# except that Crimea switched to Moscow time in 1994 as described elsewhere.
|
||||
|
||||
# From Igor Karpov, who works for the Ukrainian Ministry of Justice,
|
||||
@@ -3845,21 +3814,7 @@ Link Europe/Istanbul Asia/Istanbul # Istanbul is in both continents.
|
||||
# * Ukrainian Government's Resolution of 20.03.1992, No. 139.
|
||||
# http://www.uazakon.com/documents/date_8u/pg_grcasa.htm
|
||||
|
||||
# From Paul Eggert (2022-04-12):
|
||||
# As is usual in tzdb, Ukrainian zones use the most common English spellings.
|
||||
# In particular, tzdb's name Europe/Kyiv uses the most common spelling in
|
||||
# English for Ukraine's capital. Although tzdb's former name was Europe/Kiev,
|
||||
# "Kyiv" is now more common due to widespread reporting of the current conflict.
|
||||
# Conversely, tzdb continues to use the names Europe/Uzhgorod and
|
||||
# Europe/Zaporozhye; this is similar to tzdb's use of Europe/Prague, which is
|
||||
# certainly wrong as a transliteration of the Czech "Praha".
|
||||
# English-language spelling of Ukrainian names is in flux, and
|
||||
# some day "Uzhhorod" or "Zaporizhzhia" may become substantially more
|
||||
# common in English; in the meantime, do not change these
|
||||
# English spellings as that means less disruption for our users.
|
||||
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
# This represents most of Ukraine. See above for the spelling of "Kyiv".
|
||||
Zone Europe/Kyiv 2:02:04 - LMT 1880
|
||||
2:02:04 - KMT 1924 May 2 # Kyiv Mean Time
|
||||
2:00 - EET 1930 Jun 21
|
||||
@@ -3869,37 +3824,6 @@ Zone Europe/Kyiv 2:02:04 - LMT 1880
|
||||
2:00 1:00 EEST 1991 Sep 29 3:00
|
||||
2:00 C-Eur EE%sT 1996 May 13
|
||||
2:00 EU EE%sT
|
||||
# Transcarpathia used CET 1990/1991.
|
||||
# "Uzhhorod" is the transliteration of the Rusyn/Ukrainian pronunciation, but
|
||||
# "Uzhgorod" is more common in English.
|
||||
Zone Europe/Uzhgorod 1:29:12 - LMT 1890 Oct
|
||||
1:00 - CET 1940
|
||||
1:00 C-Eur CE%sT 1944 Oct
|
||||
1:00 1:00 CEST 1944 Oct 26
|
||||
1:00 - CET 1945 Jun 29
|
||||
3:00 Russia MSK/MSD 1990
|
||||
3:00 - MSK 1990 Jul 1 2:00
|
||||
1:00 - CET 1991 Mar 31 3:00
|
||||
2:00 - EET 1992 Mar 20
|
||||
2:00 C-Eur EE%sT 1996 May 13
|
||||
2:00 EU EE%sT
|
||||
# Zaporozh'ye and eastern Lugansk oblasts observed DST 1990/1991.
|
||||
# "Zaporizhzhia" is the transliteration of the Ukrainian name, but
|
||||
# "Zaporozh'ye" is more common in English. Use the common English
|
||||
# spelling, except omit the apostrophe as it is not allowed in
|
||||
# portable Posix file names.
|
||||
Zone Europe/Zaporozhye 2:20:40 - LMT 1880
|
||||
2:20 - +0220 1924 May 2
|
||||
2:00 - EET 1930 Jun 21
|
||||
3:00 - MSK 1941 Aug 25
|
||||
1:00 C-Eur CE%sT 1943 Oct 25
|
||||
3:00 Russia MSK/MSD 1991 Mar 31 2:00
|
||||
2:00 E-Eur EE%sT 1992 Mar 20
|
||||
2:00 C-Eur EE%sT 1996 May 13
|
||||
2:00 EU EE%sT
|
||||
|
||||
# Vatican City
|
||||
# See Europe/Rome.
|
||||
|
||||
###############################################################################
|
||||
|
||||
|
||||
@@ -26,13 +26,13 @@
|
||||
# This file is in the public domain, so clarified as of
|
||||
# 2009-05-17 by Arthur David Olson.
|
||||
#
|
||||
# From Paul Eggert (2015-05-02):
|
||||
# From Paul Eggert (2022-11-18):
|
||||
# This file contains a table of two-letter country codes. Columns are
|
||||
# separated by a single tab. Lines beginning with '#' are comments.
|
||||
# All text uses UTF-8 encoding. The columns of the table are as follows:
|
||||
#
|
||||
# 1. ISO 3166-1 alpha-2 country code, current as of
|
||||
# ISO 3166-1 N976 (2018-11-06). See: Updates on ISO 3166-1
|
||||
# ISO 3166-1 N1087 (2022-09-02). See: Updates on ISO 3166-1
|
||||
# https://isotc.iso.org/livelink/livelink/Open/16944257
|
||||
# 2. The usual English name for the coded region,
|
||||
# chosen so that alphabetic sorting of subsets produces helpful lists.
|
||||
@@ -261,7 +261,7 @@ SY Syria
|
||||
SZ Eswatini (Swaziland)
|
||||
TC Turks & Caicos Is
|
||||
TD Chad
|
||||
TF French Southern & Antarctic Lands
|
||||
TF French Southern Territories
|
||||
TG Togo
|
||||
TH Thailand
|
||||
TJ Tajikistan
|
||||
|
||||
@@ -462,7 +462,7 @@ Rule Chicago 1922 1966 - Apr lastSun 2:00 1:00 D
|
||||
Rule Chicago 1922 1954 - Sep lastSun 2:00 0 S
|
||||
Rule Chicago 1955 1966 - Oct lastSun 2:00 0 S
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone America/Chicago -5:50:36 - LMT 1883 Nov 18 12:09:24
|
||||
Zone America/Chicago -5:50:36 - LMT 1883 Nov 18 18:00u
|
||||
-6:00 US C%sT 1920
|
||||
-6:00 Chicago C%sT 1936 Mar 1 2:00
|
||||
-5:00 - EST 1936 Nov 15 2:00
|
||||
@@ -471,7 +471,7 @@ Zone America/Chicago -5:50:36 - LMT 1883 Nov 18 12:09:24
|
||||
-6:00 Chicago C%sT 1967
|
||||
-6:00 US C%sT
|
||||
# Oliver County, ND switched from mountain to central time on 1992-10-25.
|
||||
Zone America/North_Dakota/Center -6:45:12 - LMT 1883 Nov 18 12:14:48
|
||||
Zone America/North_Dakota/Center -6:45:12 - LMT 1883 Nov 18 19:00u
|
||||
-7:00 US M%sT 1992 Oct 25 2:00
|
||||
-6:00 US C%sT
|
||||
# Morton County, ND, switched from mountain to central time on
|
||||
@@ -481,7 +481,7 @@ Zone America/North_Dakota/Center -6:45:12 - LMT 1883 Nov 18 12:14:48
|
||||
# Jones, Mellette, and Todd Counties in South Dakota;
|
||||
# but in practice these other counties were already observing central time.
|
||||
# See <http://www.epa.gov/fedrgstr/EPA-IMPACT/2003/October/Day-28/i27056.htm>.
|
||||
Zone America/North_Dakota/New_Salem -6:45:39 - LMT 1883 Nov 18 12:14:21
|
||||
Zone America/North_Dakota/New_Salem -6:45:39 - LMT 1883 Nov 18 19:00u
|
||||
-7:00 US M%sT 2003 Oct 26 2:00
|
||||
-6:00 US C%sT
|
||||
|
||||
@@ -498,7 +498,7 @@ Zone America/North_Dakota/New_Salem -6:45:39 - LMT 1883 Nov 18 12:14:21
|
||||
# largest city in Mercer County). Google Maps places Beulah's city hall
|
||||
# at 47° 15' 51" N, 101° 46' 40" W, which yields an offset of 6h47'07".
|
||||
|
||||
Zone America/North_Dakota/Beulah -6:47:07 - LMT 1883 Nov 18 12:12:53
|
||||
Zone America/North_Dakota/Beulah -6:47:07 - LMT 1883 Nov 18 19:00u
|
||||
-7:00 US M%sT 2010 Nov 7 2:00
|
||||
-6:00 US C%sT
|
||||
|
||||
@@ -530,7 +530,7 @@ Rule Denver 1921 only - May 22 2:00 0 S
|
||||
Rule Denver 1965 1966 - Apr lastSun 2:00 1:00 D
|
||||
Rule Denver 1965 1966 - Oct lastSun 2:00 0 S
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone America/Denver -6:59:56 - LMT 1883 Nov 18 12:00:04
|
||||
Zone America/Denver -6:59:56 - LMT 1883 Nov 18 19:00u
|
||||
-7:00 US M%sT 1920
|
||||
-7:00 Denver M%sT 1942
|
||||
-7:00 US M%sT 1946
|
||||
@@ -583,7 +583,7 @@ Rule CA 1950 1966 - Apr lastSun 1:00 1:00 D
|
||||
Rule CA 1950 1961 - Sep lastSun 2:00 0 S
|
||||
Rule CA 1962 1966 - Oct lastSun 2:00 0 S
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone America/Los_Angeles -7:52:58 - LMT 1883 Nov 18 12:07:02
|
||||
Zone America/Los_Angeles -7:52:58 - LMT 1883 Nov 18 20:00u
|
||||
-8:00 US P%sT 1946
|
||||
-8:00 CA P%sT 1967
|
||||
-8:00 US P%sT
|
||||
@@ -845,14 +845,13 @@ Zone Pacific/Honolulu -10:31:26 - LMT 1896 Jan 13 12:00
|
||||
# Go with the Arizona State Library instead.
|
||||
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone America/Phoenix -7:28:18 - LMT 1883 Nov 18 11:31:42
|
||||
Zone America/Phoenix -7:28:18 - LMT 1883 Nov 18 19:00u
|
||||
-7:00 US M%sT 1944 Jan 1 0:01
|
||||
-7:00 - MST 1944 Apr 1 0:01
|
||||
-7:00 US M%sT 1944 Oct 1 0:01
|
||||
-7:00 - MST 1967
|
||||
-7:00 US M%sT 1968 Mar 21
|
||||
-7:00 - MST
|
||||
Link America/Phoenix America/Creston
|
||||
|
||||
# From Arthur David Olson (1988-02-13):
|
||||
# A writer from the Inter Tribal Council of Arizona, Inc.,
|
||||
@@ -873,7 +872,7 @@ Link America/Phoenix America/Creston
|
||||
# switched four weeks late in 1974.
|
||||
#
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone America/Boise -7:44:49 - LMT 1883 Nov 18 12:15:11
|
||||
Zone America/Boise -7:44:49 - LMT 1883 Nov 18 20:00u
|
||||
-8:00 US P%sT 1923 May 13 2:00
|
||||
-7:00 US M%sT 1974
|
||||
-7:00 - MST 1974 Feb 3 2:00
|
||||
@@ -945,7 +944,7 @@ Rule Indianapolis 1941 only - Jun 22 2:00 1:00 D
|
||||
Rule Indianapolis 1941 1954 - Sep lastSun 2:00 0 S
|
||||
Rule Indianapolis 1946 1954 - Apr lastSun 2:00 1:00 D
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone America/Indiana/Indianapolis -5:44:38 - LMT 1883 Nov 18 12:15:22
|
||||
Zone America/Indiana/Indianapolis -5:44:38 - LMT 1883 Nov 18 18:00u
|
||||
-6:00 US C%sT 1920
|
||||
-6:00 Indianapolis C%sT 1942
|
||||
-6:00 US C%sT 1946
|
||||
@@ -965,7 +964,7 @@ Rule Marengo 1951 only - Sep lastSun 2:00 0 S
|
||||
Rule Marengo 1954 1960 - Apr lastSun 2:00 1:00 D
|
||||
Rule Marengo 1954 1960 - Sep lastSun 2:00 0 S
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone America/Indiana/Marengo -5:45:23 - LMT 1883 Nov 18 12:14:37
|
||||
Zone America/Indiana/Marengo -5:45:23 - LMT 1883 Nov 18 18:00u
|
||||
-6:00 US C%sT 1951
|
||||
-6:00 Marengo C%sT 1961 Apr 30 2:00
|
||||
-5:00 - EST 1969
|
||||
@@ -989,7 +988,7 @@ Rule Vincennes 1960 only - Oct lastSun 2:00 0 S
|
||||
Rule Vincennes 1961 only - Sep lastSun 2:00 0 S
|
||||
Rule Vincennes 1962 1963 - Oct lastSun 2:00 0 S
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone America/Indiana/Vincennes -5:50:07 - LMT 1883 Nov 18 12:09:53
|
||||
Zone America/Indiana/Vincennes -5:50:07 - LMT 1883 Nov 18 18:00u
|
||||
-6:00 US C%sT 1946
|
||||
-6:00 Vincennes C%sT 1964 Apr 26 2:00
|
||||
-5:00 - EST 1969
|
||||
@@ -1009,7 +1008,7 @@ Rule Perry 1955 1960 - Sep lastSun 2:00 0 S
|
||||
Rule Perry 1956 1963 - Apr lastSun 2:00 1:00 D
|
||||
Rule Perry 1961 1963 - Oct lastSun 2:00 0 S
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone America/Indiana/Tell_City -5:47:03 - LMT 1883 Nov 18 12:12:57
|
||||
Zone America/Indiana/Tell_City -5:47:03 - LMT 1883 Nov 18 18:00u
|
||||
-6:00 US C%sT 1946
|
||||
-6:00 Perry C%sT 1964 Apr 26 2:00
|
||||
-5:00 - EST 1967 Oct 29 2:00
|
||||
@@ -1026,7 +1025,7 @@ Rule Pike 1955 1960 - Sep lastSun 2:00 0 S
|
||||
Rule Pike 1956 1964 - Apr lastSun 2:00 1:00 D
|
||||
Rule Pike 1961 1964 - Oct lastSun 2:00 0 S
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone America/Indiana/Petersburg -5:49:07 - LMT 1883 Nov 18 12:10:53
|
||||
Zone America/Indiana/Petersburg -5:49:07 - LMT 1883 Nov 18 18:00u
|
||||
-6:00 US C%sT 1955
|
||||
-6:00 Pike C%sT 1965 Apr 25 2:00
|
||||
-5:00 - EST 1966 Oct 30 2:00
|
||||
@@ -1048,7 +1047,7 @@ Rule Starke 1955 1956 - Oct lastSun 2:00 0 S
|
||||
Rule Starke 1957 1958 - Sep lastSun 2:00 0 S
|
||||
Rule Starke 1959 1961 - Oct lastSun 2:00 0 S
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone America/Indiana/Knox -5:46:30 - LMT 1883 Nov 18 12:13:30
|
||||
Zone America/Indiana/Knox -5:46:30 - LMT 1883 Nov 18 18:00u
|
||||
-6:00 US C%sT 1947
|
||||
-6:00 Starke C%sT 1962 Apr 29 2:00
|
||||
-5:00 - EST 1963 Oct 27 2:00
|
||||
@@ -1064,7 +1063,7 @@ Rule Pulaski 1946 1954 - Sep lastSun 2:00 0 S
|
||||
Rule Pulaski 1955 1956 - Oct lastSun 2:00 0 S
|
||||
Rule Pulaski 1957 1960 - Sep lastSun 2:00 0 S
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone America/Indiana/Winamac -5:46:25 - LMT 1883 Nov 18 12:13:35
|
||||
Zone America/Indiana/Winamac -5:46:25 - LMT 1883 Nov 18 18:00u
|
||||
-6:00 US C%sT 1946
|
||||
-6:00 Pulaski C%sT 1961 Apr 30 2:00
|
||||
-5:00 - EST 1969
|
||||
@@ -1075,7 +1074,7 @@ Zone America/Indiana/Winamac -5:46:25 - LMT 1883 Nov 18 12:13:35
|
||||
#
|
||||
# Switzerland County, Indiana, did not observe DST from 1973 through 2005.
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone America/Indiana/Vevay -5:40:16 - LMT 1883 Nov 18 12:19:44
|
||||
Zone America/Indiana/Vevay -5:40:16 - LMT 1883 Nov 18 18:00u
|
||||
-6:00 US C%sT 1954 Apr 25 2:00
|
||||
-5:00 - EST 1969
|
||||
-5:00 US E%sT 1973
|
||||
@@ -1111,7 +1110,7 @@ Rule Louisville 1950 1961 - Apr lastSun 2:00 1:00 D
|
||||
Rule Louisville 1950 1955 - Sep lastSun 2:00 0 S
|
||||
Rule Louisville 1956 1961 - Oct lastSun 2:00 0 S
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone America/Kentucky/Louisville -5:43:02 - LMT 1883 Nov 18 12:16:58
|
||||
Zone America/Kentucky/Louisville -5:43:02 - LMT 1883 Nov 18 18:00u
|
||||
-6:00 US C%sT 1921
|
||||
-6:00 Louisville C%sT 1942
|
||||
-6:00 US C%sT 1946
|
||||
@@ -1145,7 +1144,7 @@ Zone America/Kentucky/Louisville -5:43:02 - LMT 1883 Nov 18 12:16:58
|
||||
# Federal Register 65, 160 (2000-08-17), pp 50154-50158.
|
||||
# https://www.gpo.gov/fdsys/pkg/FR-2000-08-17/html/00-20854.htm
|
||||
#
|
||||
Zone America/Kentucky/Monticello -5:39:24 - LMT 1883 Nov 18 12:20:36
|
||||
Zone America/Kentucky/Monticello -5:39:24 - LMT 1883 Nov 18 18:00u
|
||||
-6:00 US C%sT 1946
|
||||
-6:00 - CST 1968
|
||||
-6:00 US C%sT 2000 Oct 29 2:00
|
||||
@@ -1626,23 +1625,6 @@ Zone America/Moncton -4:19:08 - LMT 1883 Dec 9
|
||||
|
||||
# Ontario
|
||||
|
||||
# From Paul Eggert (2006-07-09):
|
||||
# Shanks & Pottenger write that since 1970 most of Ontario has been like
|
||||
# Toronto.
|
||||
# Thunder Bay skipped DST in 1973.
|
||||
# Many smaller locales did not observe peacetime DST until 1974;
|
||||
# Nipigon (EST) and Rainy River (CST) are the largest that we know of.
|
||||
# Far west Ontario is like Winnipeg; far east Quebec is like Halifax.
|
||||
|
||||
# From Jeffery Nichols (2020-02-06):
|
||||
# According to the [Shanks] atlas, those western Ontario zones are huge,
|
||||
# covering most of Ontario northwest of Sault Ste Marie and Timmins.
|
||||
# The zones seem to include towns bigger than the ones they're named after,
|
||||
# like Dryden in America/Rainy_River and Wawa (and maybe Attawapiskat) in
|
||||
# America/Nipigon. I assume it's too much trouble to change the name of the
|
||||
# zone (like when you found out that America/Glace_Bay includes Sydney, Nova
|
||||
# Scotia)....
|
||||
|
||||
# From Mark Brader (2003-07-26):
|
||||
# [According to the Toronto Star] Orillia, Ontario, adopted DST
|
||||
# effective Saturday, 1912-06-22, 22:00; the article mentions that
|
||||
@@ -1663,17 +1645,6 @@ Zone America/Moncton -4:19:08 - LMT 1883 Dec 9
|
||||
|
||||
# From Mark Brader (2010-03-06):
|
||||
#
|
||||
# Currently the database has:
|
||||
#
|
||||
# # Ontario
|
||||
#
|
||||
# # From Paul Eggert (2006-07-09):
|
||||
# # Shanks & Pottenger write that since 1970 most of Ontario has been like
|
||||
# # Toronto.
|
||||
# # Thunder Bay skipped DST in 1973.
|
||||
# # Many smaller locales did not observe peacetime DST until 1974;
|
||||
# # Nipigon (EST) and Rainy River (CST) are the largest that we know of.
|
||||
#
|
||||
# In the (Toronto) Globe and Mail for Saturday, 1955-09-24, in the bottom
|
||||
# right corner of page 1, it says that Toronto will return to standard
|
||||
# time at 2 am Sunday morning (which agrees with the database), and that:
|
||||
@@ -1681,10 +1652,8 @@ Zone America/Moncton -4:19:08 - LMT 1883 Dec 9
|
||||
# The one-hour setback will go into effect throughout most of Ontario,
|
||||
# except in areas like Windsor which remains on standard time all year.
|
||||
#
|
||||
# Windsor is, of course, a lot larger than Nipigon.
|
||||
#
|
||||
# I only came across this incidentally. I don't know if Windsor began
|
||||
# observing DST when Detroit did, or in 1974, or on some other date.
|
||||
# ... I don't know if Windsor began observing DST when Detroit did,
|
||||
# or in 1974, or on some other date.
|
||||
#
|
||||
# By the way, the article continues by noting that:
|
||||
#
|
||||
@@ -1766,23 +1735,7 @@ Rule Toronto 1951 1956 - Sep lastSun 2:00 0 S
|
||||
# Toronto Star, which said that DST was ending 1971-10-31 as usual.
|
||||
Rule Toronto 1957 1973 - Oct lastSun 2:00 0 S
|
||||
|
||||
# From Paul Eggert (2003-07-27):
|
||||
# Willett (1914-03) writes (p. 17) "In the Cities of Fort William, and
|
||||
# Port Arthur, Ontario, the principle of the Bill has been in
|
||||
# operation for the past three years, and in the City of Moose Jaw,
|
||||
# Saskatchewan, for one year."
|
||||
|
||||
# From David Bryan via Tory Tronrud, Director/Curator,
|
||||
# Thunder Bay Museum (2003-11-12):
|
||||
# There is some suggestion, however, that, by-law or not, daylight
|
||||
# savings time was being practiced in Fort William and Port Arthur
|
||||
# before 1909.... [I]n 1910, the line between the Eastern and Central
|
||||
# Time Zones was permanently moved about two hundred miles west to
|
||||
# include the Thunder Bay area.... When Canada adopted daylight
|
||||
# savings time in 1916, Fort William and Port Arthur, having done so
|
||||
# already, did not change their clocks.... During the Second World
|
||||
# War,... [t]he cities agreed to implement DST during the summer
|
||||
# months for the remainder of the war years.
|
||||
# The Bahamas match Toronto since 1970.
|
||||
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone America/Toronto -5:17:32 - LMT 1895
|
||||
@@ -1791,22 +1744,6 @@ Zone America/Toronto -5:17:32 - LMT 1895
|
||||
-5:00 Canada E%sT 1946
|
||||
-5:00 Toronto E%sT 1974
|
||||
-5:00 Canada E%sT
|
||||
Link America/Toronto America/Nassau
|
||||
Zone America/Thunder_Bay -5:57:00 - LMT 1895
|
||||
-6:00 - CST 1910
|
||||
-5:00 - EST 1942
|
||||
-5:00 Canada E%sT 1970
|
||||
-5:00 Toronto E%sT 1973
|
||||
-5:00 - EST 1974
|
||||
-5:00 Canada E%sT
|
||||
Zone America/Nipigon -5:53:04 - LMT 1895
|
||||
-5:00 Canada E%sT 1940 Sep 29
|
||||
-5:00 1:00 EDT 1942 Feb 9 2:00s
|
||||
-5:00 Canada E%sT
|
||||
Zone America/Rainy_River -6:18:16 - LMT 1895
|
||||
-6:00 Canada C%sT 1940 Sep 29
|
||||
-6:00 1:00 CDT 1942 Feb 9 2:00s
|
||||
-6:00 Canada C%sT
|
||||
# For Atikokan see America/Panama.
|
||||
|
||||
|
||||
@@ -2055,6 +1992,37 @@ Zone America/Fort_Nelson -8:10:47 - LMT 1884
|
||||
|
||||
# Northwest Territories, Nunavut, Yukon
|
||||
|
||||
# From Chris Walton (2022-11-06):
|
||||
# Whitehorse Star - Thursday April 22, 1965 - page 1
|
||||
# title: DST Starts Monday ...
|
||||
# https://www.newspapers.com/image/578587481/
|
||||
# The title of this first article is wrong and/or misleading.
|
||||
# Also, the start time shown in the article is vague; it simply says "after
|
||||
# midnight" when it probably should have stated 2:00a.m....
|
||||
#
|
||||
# Whitehorse Star - Monday October 25, 1965 - page 15 ...
|
||||
# https://www.newspapers.com/image/578589147/
|
||||
# The 1965 Yukon Council minutes can be found here:
|
||||
# http://assets.yukonarchives.ca/PER_YG_06_1965_C20_S02_v1.pdf
|
||||
# ... I do not currently believe that NWT touched any of its clocks in 1965....
|
||||
#
|
||||
# Whitehorse Star - Thursday Feb 24,1966 - page 2
|
||||
# title: It's Time for YDT ...
|
||||
# https://www.newspapers.com/image/578575979/ ...
|
||||
# America/Whitehorse as a permanent change from UTC-9(YST) to
|
||||
# UTC-8(PST) at 00:00 on Sunday February 27, 1966....
|
||||
#
|
||||
# Whitehorse Star - Friday April 28,1972 - page 6
|
||||
# title: Daylight Saving Time for N.W.T....
|
||||
# https://www.newspapers.com/image/578701610/ ...
|
||||
# Nunavut and NWT zones ... DST starting in 1972.... Start and End ...
|
||||
# should be the same as the rest of Canada
|
||||
#
|
||||
#
|
||||
# From Paul Eggert (2022-11-06):
|
||||
# For now, assume Yukon's 1965-04-22 spring forward was 00:00 -> 02:00, as this
|
||||
# seems likely than 02:00 -> 04:00 and matches "after midnight".
|
||||
|
||||
# From Paul Eggert (2006-03-22):
|
||||
# Dawson switched to PST in 1973. Inuvik switched to MST in 1979.
|
||||
# Mathew Englander (1996-10-07) gives the following refs:
|
||||
@@ -2169,6 +2137,13 @@ Zone America/Fort_Nelson -8:10:47 - LMT 1884
|
||||
# * Interpretation Act, RSY 2002, c 125
|
||||
# https://www.canlii.org/en/yk/laws/stat/rsy-2002-c-125/latest/rsy-2002-c-125.html
|
||||
|
||||
# From Chris Walton (2022-11-06):
|
||||
# The 5th edition of the Atlas of Canada contains a time zone map that
|
||||
# shows both legislated and observed time zone boundaries.
|
||||
# All communities on Baffin Island are shown to be observing Eastern time.
|
||||
# The date on the map is 1984.
|
||||
# https://ftp.maps.canada.ca/pub/nrcan_rncan/raster/atlas_5_ed/eng/other/referencemaps/mcr4056.pdf
|
||||
|
||||
# From Rives McDow (1999-09-04):
|
||||
# Nunavut ... moved ... to incorporate the whole territory into one time zone.
|
||||
# Nunavut moves to single time zone Oct. 31
|
||||
@@ -2181,40 +2156,7 @@ Zone America/Fort_Nelson -8:10:47 - LMT 1884
|
||||
# From Paul Eggert (1999-09-20):
|
||||
# Basic Facts: The New Territory
|
||||
# http://www.nunavut.com/basicfacts/english/basicfacts_1territory.html
|
||||
# (1999) reports that Pangnirtung operates on eastern time,
|
||||
# and that Coral Harbour does not observe DST. We don't know when
|
||||
# Pangnirtung switched to eastern time; we'll guess 1995.
|
||||
|
||||
# From Rives McDow (1999-11-08):
|
||||
# On October 31, when the rest of Nunavut went to Central time,
|
||||
# Pangnirtung wobbled. Here is the result of their wobble:
|
||||
#
|
||||
# The following businesses and organizations in Pangnirtung use Central Time:
|
||||
#
|
||||
# First Air, Power Corp, Nunavut Construction, Health Center, RCMP,
|
||||
# Eastern Arctic National Parks, A & D Specialist
|
||||
#
|
||||
# The following businesses and organizations in Pangnirtung use Eastern Time:
|
||||
#
|
||||
# Hamlet office, All other businesses, Both schools, Airport operator
|
||||
#
|
||||
# This has made for an interesting situation there, which warranted the news.
|
||||
# No one there that I spoke with seems concerned, or has plans to
|
||||
# change the local methods of keeping time, as it evidently does not
|
||||
# really interfere with any activities or make things difficult locally.
|
||||
# They plan to celebrate New Year's turn-over twice, one hour apart,
|
||||
# so it appears that the situation will last at least that long.
|
||||
# The Nunavut Intergovernmental Affairs hopes that they will "come to
|
||||
# their senses", but the locals evidently don't see any problem with
|
||||
# the current state of affairs.
|
||||
|
||||
# From Michaela Rodrigue, writing in the
|
||||
# Nunatsiaq News (1999-11-19):
|
||||
# http://www.nunatsiaqonline.ca/archives/nunavut991130/nvt91119_17.html
|
||||
# Clyde River, Pangnirtung and Sanikiluaq now operate with two time zones,
|
||||
# central - or Nunavut time - for government offices, and eastern time
|
||||
# for municipal offices and schools.... Igloolik [was similar but then]
|
||||
# made the switch to central time on Saturday, Nov. 6.
|
||||
# (1999) reports that ... Coral Harbour does not observe DST.
|
||||
|
||||
# From Paul Eggert (2000-10-02):
|
||||
# Matthews and Vincent (1998) say the following, but we lack histories
|
||||
@@ -2373,18 +2315,12 @@ Rule NT_YK 1919 only - Nov 1 0:00 0 S
|
||||
Rule NT_YK 1942 only - Feb 9 2:00 1:00 W # War
|
||||
Rule NT_YK 1945 only - Aug 14 23:00u 1:00 P # Peace
|
||||
Rule NT_YK 1945 only - Sep 30 2:00 0 S
|
||||
Rule NT_YK 1965 only - Apr lastSun 0:00 2:00 DD
|
||||
Rule NT_YK 1965 only - Oct lastSun 2:00 0 S
|
||||
Rule NT_YK 1980 1986 - Apr lastSun 2:00 1:00 D
|
||||
Rule NT_YK 1980 2006 - Oct lastSun 2:00 0 S
|
||||
Rule NT_YK 1972 1986 - Apr lastSun 2:00 1:00 D
|
||||
Rule NT_YK 1972 2006 - Oct lastSun 2:00 0 S
|
||||
Rule NT_YK 1987 2006 - Apr Sun>=1 2:00 1:00 D
|
||||
Rule Yukon 1965 only - Apr lastSun 0:00 2:00 DD
|
||||
Rule Yukon 1965 only - Oct lastSun 2:00 0 S
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
# aka Panniqtuuq
|
||||
Zone America/Pangnirtung 0 - -00 1921 # trading post est.
|
||||
-4:00 NT_YK A%sT 1995 Apr Sun>=1 2:00
|
||||
-5:00 Canada E%sT 1999 Oct 31 2:00
|
||||
-6:00 Canada C%sT 2000 Oct 29 2:00
|
||||
-5:00 Canada E%sT
|
||||
# formerly Frobisher Bay
|
||||
Zone America/Iqaluit 0 - -00 1942 Aug # Frobisher Bay est.
|
||||
-5:00 NT_YK E%sT 1999 Oct 31 2:00
|
||||
@@ -2417,13 +2353,15 @@ Zone America/Inuvik 0 - -00 1953 # Inuvik founded
|
||||
-7:00 NT_YK M%sT 1980
|
||||
-7:00 Canada M%sT
|
||||
Zone America/Whitehorse -9:00:12 - LMT 1900 Aug 20
|
||||
-9:00 NT_YK Y%sT 1967 May 28 0:00
|
||||
-8:00 NT_YK P%sT 1980
|
||||
-9:00 NT_YK Y%sT 1965
|
||||
-9:00 Yukon Y%sT 1966 Feb 27 0:00
|
||||
-8:00 - PST 1980
|
||||
-8:00 Canada P%sT 2020 Nov 1
|
||||
-7:00 - MST
|
||||
Zone America/Dawson -9:17:40 - LMT 1900 Aug 20
|
||||
-9:00 NT_YK Y%sT 1973 Oct 28 0:00
|
||||
-8:00 NT_YK P%sT 1980
|
||||
-9:00 NT_YK Y%sT 1965
|
||||
-9:00 Yukon Y%sT 1973 Oct 28 0:00
|
||||
-8:00 - PST 1980
|
||||
-8:00 Canada P%sT 2020 Nov 1
|
||||
-7:00 - MST
|
||||
|
||||
@@ -2639,7 +2577,23 @@ Zone America/Dawson -9:17:40 - LMT 1900 Aug 20
|
||||
# 5- The islands, reefs and keys shall take their timezone from the
|
||||
# longitude they are located at.
|
||||
|
||||
# From Paul Eggert (2022-10-28):
|
||||
# The new Mexican law was published today:
|
||||
# https://www.dof.gob.mx/nota_detalle.php?codigo=5670045&fecha=28/10/2022
|
||||
# This abolishes DST except where US DST rules are observed,
|
||||
# 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
|
||||
# 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,
|
||||
# so the time change would occur on November 30 at 0:00.
|
||||
# http://puentelibre.mx/noticia/ciudad_juarez_cambio_horario_noviembre_2022/
|
||||
|
||||
# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
|
||||
Rule Mexico 1931 only - May 1 23:00 1:00 D
|
||||
Rule Mexico 1931 only - Oct 1 0:00 0 S
|
||||
Rule Mexico 1939 only - Feb 5 0:00 1:00 D
|
||||
Rule Mexico 1939 only - Jun 25 0:00 0 S
|
||||
Rule Mexico 1940 only - Dec 9 0:00 1:00 D
|
||||
@@ -2652,89 +2606,108 @@ Rule Mexico 1996 2000 - Apr Sun>=1 2:00 1:00 D
|
||||
Rule Mexico 1996 2000 - Oct lastSun 2:00 0 S
|
||||
Rule Mexico 2001 only - May Sun>=1 2:00 1:00 D
|
||||
Rule Mexico 2001 only - Sep lastSun 2:00 0 S
|
||||
Rule Mexico 2002 max - Apr Sun>=1 2:00 1:00 D
|
||||
Rule Mexico 2002 max - Oct lastSun 2:00 0 S
|
||||
Rule Mexico 2002 2022 - Apr Sun>=1 2:00 1:00 D
|
||||
Rule Mexico 2002 2022 - Oct lastSun 2:00 0 S
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
# Quintana Roo; represented by Cancún
|
||||
Zone America/Cancun -5:47:04 - LMT 1922 Jan 1 0:12:56
|
||||
Zone America/Cancun -5:47:04 - LMT 1922 Jan 1 6:00u
|
||||
-6:00 - CST 1981 Dec 23
|
||||
-5:00 Mexico E%sT 1998 Aug 2 2:00
|
||||
-6:00 Mexico C%sT 2015 Feb 1 2:00
|
||||
-5:00 - EST
|
||||
# Campeche, Yucatán; represented by Mérida
|
||||
Zone America/Merida -5:58:28 - LMT 1922 Jan 1 0:01:32
|
||||
Zone America/Merida -5:58:28 - LMT 1922 Jan 1 6:00u
|
||||
-6:00 - CST 1981 Dec 23
|
||||
-5:00 - EST 1982 Dec 2
|
||||
-6:00 Mexico C%sT
|
||||
# Coahuila, Nuevo León, Tamaulipas (near US border)
|
||||
# This includes the following municipalities:
|
||||
# in Coahuila: Ocampo, Acuña, Zaragoza, Jiménez, Piedras Negras, Nava,
|
||||
# Guerrero, Hidalgo.
|
||||
# in Nuevo León: Anáhuac, Los Aldama.
|
||||
# in Coahuila: Acuña, Allende, Guerrero, Hidalgo, Jiménez, Morelos, Nava,
|
||||
# Ocampo, Piedras Negras, Villa Unión, Zaragoza
|
||||
# in Nuevo León: Anáhuac
|
||||
# in Tamaulipas: Nuevo Laredo, Guerrero, Mier, Miguel Alemán, Camargo,
|
||||
# Gustavo Díaz Ordaz, Reynosa, Río Bravo, Valle Hermoso, Matamoros.
|
||||
# See: Inicia mañana Horario de Verano en zona fronteriza, El Universal,
|
||||
# 2016-03-12
|
||||
# http://www.eluniversal.com.mx/articulo/estados/2016/03/12/inicia-manana-horario-de-verano-en-zona-fronteriza
|
||||
Zone America/Matamoros -6:40:00 - LMT 1921 Dec 31 23:20:00
|
||||
# https://www.dof.gob.mx/nota_detalle.php?codigo=5670045&fecha=28/10/2022
|
||||
Zone America/Matamoros -6:30:00 - LMT 1922 Jan 1 6:00u
|
||||
-6:00 - CST 1988
|
||||
-6:00 US C%sT 1989
|
||||
-6:00 Mexico C%sT 2010
|
||||
-6:00 US C%sT
|
||||
# Durango; Coahuila, Nuevo León, Tamaulipas (away from US border)
|
||||
Zone America/Monterrey -6:41:16 - LMT 1921 Dec 31 23:18:44
|
||||
Zone America/Monterrey -6:41:16 - LMT 1922 Jan 1 6:00u
|
||||
-6:00 - CST 1988
|
||||
-6:00 US C%sT 1989
|
||||
-6:00 Mexico C%sT
|
||||
# Central Mexico
|
||||
Zone America/Mexico_City -6:36:36 - LMT 1922 Jan 1 0:23:24
|
||||
Zone America/Mexico_City -6:36:36 - LMT 1922 Jan 1 7:00u
|
||||
-7:00 - MST 1927 Jun 10 23:00
|
||||
-6:00 - CST 1930 Nov 15
|
||||
-7:00 - MST 1931 May 1 23:00
|
||||
-6:00 - CST 1931 Oct
|
||||
-7:00 - MST 1932 Apr 1
|
||||
-7:00 Mexico M%sT 1932 Apr 1
|
||||
-6:00 Mexico C%sT 2001 Sep 30 2:00
|
||||
-6:00 - CST 2002 Feb 20
|
||||
-6:00 Mexico C%sT
|
||||
# Chihuahua (near US border)
|
||||
# Chihuahua (near US border - western side)
|
||||
# This includes the municipalities of Janos, Ascensión, Juárez, Guadalupe,
|
||||
# Práxedis G Guerrero, Coyame del Sotol, Ojinaga, and Manuel Benavides.
|
||||
# (See the 2016-03-12 El Universal source mentioned above.)
|
||||
Zone America/Ojinaga -6:57:40 - LMT 1922 Jan 1 0:02:20
|
||||
# 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
|
||||
-6:00 - CST 1930 Nov 15
|
||||
-7:00 - MST 1931 May 1 23:00
|
||||
-6:00 - CST 1931 Oct
|
||||
-7:00 - MST 1932 Apr 1
|
||||
-7:00 Mexico M%sT 1932 Apr 1
|
||||
-6:00 - CST 1996
|
||||
-6:00 Mexico C%sT 1998
|
||||
-6:00 - CST 1998 Apr Sun>=1 3:00
|
||||
-7:00 Mexico M%sT 2010
|
||||
-7:00 US M%sT 2022 Oct 30 2:00
|
||||
-6:00 - CST 2022 Nov 30 0:00
|
||||
-7:00 US M%sT
|
||||
# Chihuahua (away from US border)
|
||||
Zone America/Chihuahua -7:04:20 - LMT 1921 Dec 31 23:55:40
|
||||
# Chihuahua (near US border - eastern side)
|
||||
# The municipalities 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
|
||||
-6:00 - CST 1930 Nov 15
|
||||
-7:00 - MST 1931 May 1 23:00
|
||||
-6:00 - CST 1931 Oct
|
||||
-7:00 - MST 1932 Apr 1
|
||||
-7:00 Mexico M%sT 1932 Apr 1
|
||||
-6:00 - CST 1996
|
||||
-6:00 Mexico C%sT 1998
|
||||
-6:00 - CST 1998 Apr Sun>=1 3:00
|
||||
-7:00 Mexico M%sT
|
||||
# Sonora
|
||||
Zone America/Hermosillo -7:23:52 - LMT 1921 Dec 31 23:36:08
|
||||
-7:00 Mexico M%sT 2010
|
||||
-7:00 US M%sT 2022 Oct 30 2:00
|
||||
-6:00 - CST 2022 Nov 30 0:00
|
||||
-6:00 US C%sT
|
||||
# Chihuahua (away from US border)
|
||||
Zone America/Chihuahua -7:04:20 - LMT 1922 Jan 1 7:00u
|
||||
-7:00 - MST 1927 Jun 10 23:00
|
||||
-6:00 - CST 1930 Nov 15
|
||||
-7:00 - MST 1931 May 1 23:00
|
||||
-6:00 - CST 1931 Oct
|
||||
-7:00 - MST 1932 Apr 1
|
||||
-7:00 Mexico M%sT 1932 Apr 1
|
||||
-6:00 - CST 1996
|
||||
-6:00 Mexico C%sT 1998
|
||||
-6:00 - CST 1998 Apr Sun>=1 3:00
|
||||
-7:00 Mexico M%sT 2022 Oct 30 2:00
|
||||
-6:00 - CST
|
||||
# Sonora
|
||||
Zone America/Hermosillo -7:23:52 - LMT 1922 Jan 1 7:00u
|
||||
-7:00 - MST 1927 Jun 10 23:00
|
||||
-6:00 - CST 1930 Nov 15
|
||||
-7:00 Mexico M%sT 1932 Apr 1
|
||||
-6:00 - CST 1942 Apr 24
|
||||
-7:00 - MST 1949 Jan 14
|
||||
-8:00 - PST 1970
|
||||
-7:00 Mexico M%sT 1999
|
||||
-7:00 - MST
|
||||
|
||||
# Baja California Sur, Nayarit (except Bahía de Banderas), Sinaloa
|
||||
Zone America/Mazatlan -7:05:40 - LMT 1922 Jan 1 7:00u
|
||||
-7:00 - MST 1927 Jun 10 23:00
|
||||
-6:00 - CST 1930 Nov 15
|
||||
-7:00 Mexico M%sT 1932 Apr 1
|
||||
-6:00 - CST 1942 Apr 24
|
||||
-7:00 - MST 1949 Jan 14
|
||||
-8:00 - PST 1970
|
||||
-7:00 Mexico M%sT
|
||||
|
||||
# Bahía de Banderas
|
||||
|
||||
# From Alexander Krivenyshev (2010-04-21):
|
||||
# According to news, Bahía de Banderas (Mexican state of Nayarit)
|
||||
# changed time zone UTC-7 to new time zone UTC-6 on April 4, 2010 (to
|
||||
@@ -2762,25 +2735,10 @@ Zone America/Hermosillo -7:23:52 - LMT 1921 Dec 31 23:36:08
|
||||
# From Arthur David Olson (2010-05-01):
|
||||
# Use "Bahia_Banderas" to keep the name to fourteen characters.
|
||||
|
||||
# Mazatlán
|
||||
Zone America/Mazatlan -7:05:40 - LMT 1921 Dec 31 23:54:20
|
||||
Zone America/Bahia_Banderas -7:01:00 - LMT 1922 Jan 1 7:00u
|
||||
-7:00 - MST 1927 Jun 10 23:00
|
||||
-6:00 - CST 1930 Nov 15
|
||||
-7:00 - MST 1931 May 1 23:00
|
||||
-6:00 - CST 1931 Oct
|
||||
-7:00 - MST 1932 Apr 1
|
||||
-6:00 - CST 1942 Apr 24
|
||||
-7:00 - MST 1949 Jan 14
|
||||
-8:00 - PST 1970
|
||||
-7:00 Mexico M%sT
|
||||
|
||||
# Bahía de Banderas
|
||||
Zone America/Bahia_Banderas -7:01:00 - LMT 1921 Dec 31 23:59:00
|
||||
-7:00 - MST 1927 Jun 10 23:00
|
||||
-6:00 - CST 1930 Nov 15
|
||||
-7:00 - MST 1931 May 1 23:00
|
||||
-6:00 - CST 1931 Oct
|
||||
-7:00 - MST 1932 Apr 1
|
||||
-7:00 Mexico M%sT 1932 Apr 1
|
||||
-6:00 - CST 1942 Apr 24
|
||||
-7:00 - MST 1949 Jan 14
|
||||
-8:00 - PST 1970
|
||||
@@ -2788,7 +2746,7 @@ Zone America/Bahia_Banderas -7:01:00 - LMT 1921 Dec 31 23:59:00
|
||||
-6:00 Mexico C%sT
|
||||
|
||||
# Baja California
|
||||
Zone America/Tijuana -7:48:04 - LMT 1922 Jan 1 0:11:56
|
||||
Zone America/Tijuana -7:48:04 - LMT 1922 Jan 1 7:00u
|
||||
-7:00 - MST 1924
|
||||
-8:00 - PST 1927 Jun 10 23:00
|
||||
-7:00 - MST 1930 Nov 15
|
||||
@@ -2825,20 +2783,16 @@ Zone America/Tijuana -7:48:04 - LMT 1922 Jan 1 0:11:56
|
||||
# http://dof.gob.mx/nota_detalle.php?codigo=5127480&fecha=06/01/2010
|
||||
# It has been moved to the 'backward' file.
|
||||
#
|
||||
# From Paul Eggert (2022-10-28):
|
||||
# Today's new law states that the entire state of Baja California
|
||||
# follows US DST rules, which agrees with simplifications noted above.
|
||||
#
|
||||
#
|
||||
# Revillagigedo Is
|
||||
# no information
|
||||
|
||||
###############################################################################
|
||||
|
||||
# Anguilla
|
||||
# Antigua and Barbuda
|
||||
# See America/Puerto_Rico.
|
||||
|
||||
# The Bahamas
|
||||
# See America/Toronto.
|
||||
|
||||
|
||||
# Barbados
|
||||
|
||||
# For 1899 Milne gives -3:58:29.2.
|
||||
@@ -3051,12 +3005,6 @@ Zone Atlantic/Bermuda -4:19:18 - LMT 1890 # Hamilton
|
||||
-4:00 Canada A%sT 1976
|
||||
-4:00 US A%sT
|
||||
|
||||
# Caribbean Netherlands
|
||||
# See America/Puerto_Rico.
|
||||
|
||||
# Cayman Is
|
||||
# See America/Panama.
|
||||
|
||||
# Costa Rica
|
||||
|
||||
# Milne gives -5:36:13.3 as San José mean time.
|
||||
@@ -3282,9 +3230,6 @@ Zone America/Havana -5:29:28 - LMT 1890
|
||||
-5:29:36 - HMT 1925 Jul 19 12:00 # Havana MT
|
||||
-5:00 Cuba C%sT
|
||||
|
||||
# Dominica
|
||||
# See America/Puerto_Rico.
|
||||
|
||||
# Dominican Republic
|
||||
|
||||
# From Steffen Thorsen (2000-10-30):
|
||||
@@ -3331,12 +3276,6 @@ Rule Salv 1987 1988 - Sep lastSun 0:00 0 S
|
||||
Zone America/El_Salvador -5:56:48 - LMT 1921 # San Salvador
|
||||
-6:00 Salv C%sT
|
||||
|
||||
# Grenada
|
||||
# Guadeloupe
|
||||
# St Barthélemy
|
||||
# St Martin (French part)
|
||||
# See America/Puerto_Rico.
|
||||
|
||||
# Guatemala
|
||||
#
|
||||
# From Gwillim Law (2006-04-22), after a heads-up from Oscar van Vlijmen:
|
||||
@@ -3522,9 +3461,6 @@ Zone America/Martinique -4:04:20 - LMT 1890 # Fort-de-France
|
||||
-4:00 1:00 ADT 1980 Sep 28
|
||||
-4:00 - AST
|
||||
|
||||
# Montserrat
|
||||
# See America/Puerto_Rico.
|
||||
|
||||
# Nicaragua
|
||||
#
|
||||
# This uses Shanks & Pottenger for times before 2005.
|
||||
@@ -3590,44 +3526,39 @@ Zone America/Managua -5:45:08 - LMT 1890
|
||||
-5:00 - EST 1997
|
||||
-6:00 Nic C%sT
|
||||
|
||||
# Cayman Is
|
||||
# Panama
|
||||
#
|
||||
# Atikokan and Coral Harbour, Canada, match Panama since 1970.
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone America/Panama -5:18:08 - LMT 1890
|
||||
-5:19:36 - CMT 1908 Apr 22 # Colón Mean Time
|
||||
-5:00 - EST
|
||||
Link America/Panama America/Atikokan
|
||||
Link America/Panama America/Cayman
|
||||
|
||||
# Anguilla
|
||||
# Antigua & Barbuda
|
||||
# Aruba
|
||||
# Caribbean Netherlands
|
||||
# Curaçao
|
||||
# Dominica
|
||||
# Grenada
|
||||
# Guadeloupe
|
||||
# Montserrat
|
||||
# Puerto Rico
|
||||
# St Barthélemy
|
||||
# St Kitts-Nevis
|
||||
# Sint Maarten / St Martin
|
||||
# St Lucia
|
||||
# St Vincent & the Grenadines
|
||||
# Trinidad & Tobago
|
||||
# Virgin Is (UK & US)
|
||||
#
|
||||
# There are too many San Juans elsewhere, so we'll use 'Puerto_Rico'.
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone America/Puerto_Rico -4:24:25 - LMT 1899 Mar 28 12:00 # San Juan
|
||||
-4:00 - AST 1942 May 3
|
||||
-4:00 US A%sT 1946
|
||||
-4:00 - AST
|
||||
Link America/Puerto_Rico America/Anguilla
|
||||
Link America/Puerto_Rico America/Antigua
|
||||
Link America/Puerto_Rico America/Aruba
|
||||
Link America/Puerto_Rico America/Curacao
|
||||
Link America/Puerto_Rico America/Blanc-Sablon # Quebec (Lower North Shore)
|
||||
Link America/Puerto_Rico America/Dominica
|
||||
Link America/Puerto_Rico America/Grenada
|
||||
Link America/Puerto_Rico America/Guadeloupe
|
||||
Link America/Puerto_Rico America/Kralendijk # Caribbean Netherlands
|
||||
Link America/Puerto_Rico America/Lower_Princes # Sint Maarten
|
||||
Link America/Puerto_Rico America/Marigot # St Martin (French part)
|
||||
Link America/Puerto_Rico America/Montserrat
|
||||
Link America/Puerto_Rico America/Port_of_Spain # Trinidad & Tobago
|
||||
Link America/Puerto_Rico America/St_Barthelemy # St Barthélemy
|
||||
Link America/Puerto_Rico America/St_Kitts # St Kitts & Nevis
|
||||
Link America/Puerto_Rico America/St_Lucia
|
||||
Link America/Puerto_Rico America/St_Thomas # Virgin Islands (US)
|
||||
Link America/Puerto_Rico America/St_Vincent
|
||||
Link America/Puerto_Rico America/Tortola # Virgin Islands (UK)
|
||||
|
||||
# St Kitts-Nevis
|
||||
# St Lucia
|
||||
# See America/Puerto_Rico.
|
||||
|
||||
# St Pierre and Miquelon
|
||||
# There are too many St Pierres elsewhere, so we'll use 'Miquelon'.
|
||||
@@ -3637,12 +3568,6 @@ Zone America/Miquelon -3:44:40 - LMT 1911 May 15 # St Pierre
|
||||
-3:00 - -03 1987
|
||||
-3:00 Canada -03/-02
|
||||
|
||||
# St Vincent and the Grenadines
|
||||
# See America/Puerto_Rico.
|
||||
|
||||
# Sint Maarten
|
||||
# See America/Puerto_Rico.
|
||||
|
||||
# Turks and Caicos
|
||||
#
|
||||
# From Chris Dunn in
|
||||
@@ -3712,11 +3637,6 @@ Zone America/Grand_Turk -4:44:32 - LMT 1890
|
||||
-4:00 - AST 2018 Mar 11 3:00
|
||||
-5:00 US E%sT
|
||||
|
||||
# British Virgin Is
|
||||
# US Virgin Is
|
||||
# See America/Puerto_Rico.
|
||||
|
||||
|
||||
# Local Variables:
|
||||
# coding: utf-8
|
||||
# End:
|
||||
|
||||
@@ -608,9 +608,6 @@ Zone America/Argentina/Ushuaia -4:33:12 - LMT 1894 Oct 31
|
||||
-3:00 Arg -03/-02 2008 Oct 18
|
||||
-3:00 - -03
|
||||
|
||||
# Aruba
|
||||
# See America/Puerto_Rico.
|
||||
|
||||
# Bolivia
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone America/La_Paz -4:32:36 - LMT 1890
|
||||
@@ -1332,8 +1329,14 @@ Zone America/Rio_Branco -4:31:12 - LMT 1914
|
||||
# for America/Santiago will start on midnight of September 11th;
|
||||
# and will end on April 1st, 2023. Magallanes region (America/Punta_Arenas)
|
||||
# will keep UTC -3 "indefinitely"... This is because on September 4th
|
||||
# we will have a voting whether to approve a new Constitution....
|
||||
# https://www.interior.gob.cl/noticias/2022/08/09/comunicado-el-proximo-sabado-10-de-septiembre-los-relojes-se-deben-adelantar-una-hora/
|
||||
# we will have a voting whether to approve a new Constitution.
|
||||
#
|
||||
# From Eduardo Romero Urra (2022-08-17):
|
||||
# https://www.diariooficial.interior.gob.cl/publicaciones/2022/08/13/43327/01/2172567.pdf
|
||||
#
|
||||
# From Paul Eggert (2022-08-17):
|
||||
# Although the presidential decree stops at fall 2026, assume that
|
||||
# similar DST rules will continue thereafter.
|
||||
|
||||
# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
|
||||
Rule Chile 1927 1931 - Sep 1 0:00 1:00 -
|
||||
@@ -1438,9 +1441,14 @@ Zone Antarctica/Palmer 0 - -00 1965
|
||||
# Milne gives 4:56:16.4 for Bogotá time in 1899. He writes,
|
||||
# "A variation of fifteen minutes in the public clocks of Bogota is not rare."
|
||||
|
||||
# From Alois Treindl (2022-11-10):
|
||||
# End of time change in Colombia 1993 ... should be 6 February 24h ...
|
||||
# DECRETO 267 DE 1993
|
||||
# https://www.suin-juriscol.gov.co/viewDocument.asp?ruta=Decretos/1061335
|
||||
|
||||
# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
|
||||
Rule CO 1992 only - May 3 0:00 1:00 -
|
||||
Rule CO 1993 only - Apr 4 0:00 0 -
|
||||
Rule CO 1992 only - May 3 0:00 1:00 -
|
||||
Rule CO 1993 only - Feb 6 24:00 0 -
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
#STDOFF -4:56:16.4
|
||||
Zone America/Bogota -4:56:16 - LMT 1884 Mar 13
|
||||
@@ -1449,15 +1457,6 @@ Zone America/Bogota -4:56:16 - LMT 1884 Mar 13
|
||||
# Malpelo, Providencia, San Andres
|
||||
# no information; probably like America/Bogota
|
||||
|
||||
# Curaçao
|
||||
# See America/Puerto_Rico.
|
||||
#
|
||||
# From Arthur David Olson (2011-06-15):
|
||||
# use links for places with new iso3166 codes.
|
||||
# The name "Lower Prince's Quarter" is both longer than fourteen characters
|
||||
# and contains an apostrophe; use "Lower_Princes"....
|
||||
# From Paul Eggert (2021-09-29):
|
||||
# These backward-compatibility links now are in the 'northamerica' file.
|
||||
|
||||
# Ecuador
|
||||
#
|
||||
@@ -1773,9 +1772,6 @@ Zone America/Paramaribo -3:40:40 - LMT 1911
|
||||
-3:30 - -0330 1984 Oct
|
||||
-3:00 - -03
|
||||
|
||||
# Trinidad and Tobago
|
||||
# See America/Puerto_Rico.
|
||||
|
||||
# Uruguay
|
||||
# From Paul Eggert (1993-11-18):
|
||||
# Uruguay wins the prize for the strangest peacetime manipulation of the rules.
|
||||
|
||||
@@ -137,13 +137,9 @@ CA +4606-06447 America/Moncton Atlantic - New Brunswick
|
||||
CA +5320-06025 America/Goose_Bay Atlantic - Labrador (most areas)
|
||||
CA +5125-05707 America/Blanc-Sablon AST - QC (Lower North Shore)
|
||||
CA +4339-07923 America/Toronto Eastern - ON, QC (most areas)
|
||||
CA +4901-08816 America/Nipigon Eastern - ON, QC (no DST 1967-73)
|
||||
CA +4823-08915 America/Thunder_Bay Eastern - ON (Thunder Bay)
|
||||
CA +6344-06828 America/Iqaluit Eastern - NU (most east areas)
|
||||
CA +6608-06544 America/Pangnirtung Eastern - NU (Pangnirtung)
|
||||
CA +6344-06828 America/Iqaluit Eastern - NU (most areas)
|
||||
CA +484531-0913718 America/Atikokan EST - ON (Atikokan); NU (Coral H)
|
||||
CA +4953-09709 America/Winnipeg Central - ON (west); Manitoba
|
||||
CA +4843-09434 America/Rainy_River Central - ON (Rainy R, Ft Frances)
|
||||
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)
|
||||
@@ -303,17 +299,18 @@ MT +3554+01431 Europe/Malta
|
||||
MU -2010+05730 Indian/Mauritius
|
||||
MV +0410+07330 Indian/Maldives
|
||||
MW -1547+03500 Africa/Blantyre
|
||||
MX +1924-09909 America/Mexico_City Central Time
|
||||
MX +2105-08646 America/Cancun Eastern Standard Time - Quintana Roo
|
||||
MX +2058-08937 America/Merida Central Time - Campeche, Yucatan
|
||||
MX +2540-10019 America/Monterrey Central Time - Durango; Coahuila, Nuevo Leon, Tamaulipas (most areas)
|
||||
MX +2550-09730 America/Matamoros Central Time US - Coahuila, Nuevo Leon, Tamaulipas (US border)
|
||||
MX +2313-10625 America/Mazatlan Mountain Time - Baja California Sur, Nayarit, Sinaloa
|
||||
MX +2838-10605 America/Chihuahua Mountain Time - Chihuahua (most areas)
|
||||
MX +2934-10425 America/Ojinaga Mountain Time US - Chihuahua (US border)
|
||||
MX +2904-11058 America/Hermosillo Mountain Standard Time - Sonora
|
||||
MX +3232-11701 America/Tijuana Pacific Time US - Baja California
|
||||
MX +2048-10515 America/Bahia_Banderas Central Time - Bahia de Banderas
|
||||
MX +1924-09909 America/Mexico_City Central Mexico
|
||||
MX +2105-08646 America/Cancun Quintana Roo
|
||||
MX +2058-08937 America/Merida Campeche, Yucatan
|
||||
MX +2540-10019 America/Monterrey Durango; Coahuila, Nuevo Leon, Tamaulipas (most areas)
|
||||
MX +2550-09730 America/Matamoros Coahuila, Nuevo Leon, Tamaulipas (US border)
|
||||
MX +2838-10605 America/Chihuahua Chihuahua (most areas)
|
||||
MX +3144-10629 America/Ciudad_Juarez Chihuahua (US border - west)
|
||||
MX +2934-10425 America/Ojinaga Chihuahua (US border - east)
|
||||
MX +2313-10625 America/Mazatlan Baja California Sur, Nayarit (most areas), Sinaloa
|
||||
MX +2048-10515 America/Bahia_Banderas Bahia de Banderas
|
||||
MX +2904-11058 America/Hermosillo Sonora
|
||||
MX +3232-11701 America/Tijuana Baja California
|
||||
MY +0310+10142 Asia/Kuala_Lumpur Malaysia (peninsula)
|
||||
MY +0133+11020 Asia/Kuching Sabah, Sarawak
|
||||
MZ -2558+03235 Africa/Maputo
|
||||
@@ -424,8 +421,6 @@ 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 +4837+02218 Europe/Uzhgorod Transcarpathia
|
||||
UA +4750+03510 Europe/Zaporozhye Zaporozhye and east Lugansk
|
||||
UG +0019+03225 Africa/Kampala
|
||||
UM +2813-17722 Pacific/Midway Midway Islands
|
||||
UM +1917+16637 Pacific/Wake Wake Island
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
# Create a bundle in the build directory, containing what's needed to
|
||||
# build and run JMH microbenchmarks from the OpenJDK build.
|
||||
|
||||
JMH_VERSION=1.34
|
||||
JMH_VERSION=1.35
|
||||
COMMONS_MATH3_VERSION=3.2
|
||||
JOPT_SIMPLE_VERSION=4.6
|
||||
|
||||
|
||||
7
make/ide/idea/jdk/template/copyright/JetBrainsCE.xml
Normal file
7
make/ide/idea/jdk/template/copyright/JetBrainsCE.xml
Normal file
@@ -0,0 +1,7 @@
|
||||
<component name="CopyrightManager">
|
||||
<copyright>
|
||||
<option name="allowReplaceRegexp" value="JetBrains" />
|
||||
<option name="notice" value="Copyright &#36;originalComment.match("Copyright (\d+)", 1, "-")&#36;today.year JetBrains s.r.o. DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. This code is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 only, as published by the Free Software Foundation. Oracle designates this particular file as subject to the "Classpath" exception as provided by Oracle in the LICENSE file that accompanied this code. This code is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License version 2 for more details (a copy is included in the LICENSE file that accompanied this code). You should have received a copy of the GNU General Public License version 2 along with this work; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA or visit www.oracle.com if you need additional information or have any questions." />
|
||||
<option name="myName" value="JetBrainsCE" />
|
||||
</copyright>
|
||||
</component>
|
||||
@@ -1,3 +1,7 @@
|
||||
<component name="CopyrightManager">
|
||||
<settings default="" />
|
||||
</component>
|
||||
<settings default="JetBrainsCE">
|
||||
<module2copyright>
|
||||
<element module="TestFiles" copyright="JetBrains" />
|
||||
</module2copyright>
|
||||
</settings>
|
||||
</component>
|
||||
9
make/ide/idea/jdk/template/jdk-clion/.idea/copyright/JetBrains.xml
generated
Normal file
9
make/ide/idea/jdk/template/jdk-clion/.idea/copyright/JetBrains.xml
generated
Normal file
@@ -0,0 +1,9 @@
|
||||
<component name="CopyrightManager">
|
||||
<copyright>
|
||||
<option name="notice" value="Copyright &#36;originalComment.match("Copyright (\d+)", 1, "-")&#36;today.year JetBrains s.r.o. DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. This code is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 only, as published by the Free Software Foundation. This code is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License version 2 for more details (a copy is included in the LICENSE file that accompanied this code). You should have received a copy of the GNU General Public License version 2 along with this work; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA or visit www.oracle.com if you need additional information or have any questions." />
|
||||
<option name="keyword" value="Copyright" />
|
||||
<option name="allowReplaceKeyword" value="JetBrains" />
|
||||
<option name="myName" value="JetBrains" />
|
||||
<option name="myLocal" value="true" />
|
||||
</copyright>
|
||||
</component>
|
||||
7
make/ide/idea/jdk/template/jdk-clion/.idea/copyright/JetBrainsCE.xml
generated
Normal file
7
make/ide/idea/jdk/template/jdk-clion/.idea/copyright/JetBrainsCE.xml
generated
Normal file
@@ -0,0 +1,7 @@
|
||||
<component name="CopyrightManager">
|
||||
<copyright>
|
||||
<option name="allowReplaceRegexp" value="JetBrains" />
|
||||
<option name="notice" value="Copyright &#36;originalComment.match("Copyright (\d+)", 1, "-")&#36;today.year JetBrains s.r.o. DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. This code is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 only, as published by the Free Software Foundation. Oracle designates this particular file as subject to the "Classpath" exception as provided by Oracle in the LICENSE file that accompanied this code. This code is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License version 2 for more details (a copy is included in the LICENSE file that accompanied this code). You should have received a copy of the GNU General Public License version 2 along with this work; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA or visit www.oracle.com if you need additional information or have any questions." />
|
||||
<option name="myName" value="JetBrainsCE" />
|
||||
</copyright>
|
||||
</component>
|
||||
7
make/ide/idea/jdk/template/jdk-clion/.idea/copyright/profiles_settings.xml
generated
Normal file
7
make/ide/idea/jdk/template/jdk-clion/.idea/copyright/profiles_settings.xml
generated
Normal file
@@ -0,0 +1,7 @@
|
||||
<component name="CopyrightManager">
|
||||
<settings default="JetBrainsCE">
|
||||
<module2copyright>
|
||||
<element module="TestFiles" copyright="JetBrains" />
|
||||
</module2copyright>
|
||||
</settings>
|
||||
</component>
|
||||
3
make/ide/idea/jdk/template/jdk-clion/.idea/scopes/TestFiles.xml
generated
Normal file
3
make/ide/idea/jdk/template/jdk-clion/.idea/scopes/TestFiles.xml
generated
Normal file
@@ -0,0 +1,3 @@
|
||||
<component name="DependencyValidationManager">
|
||||
<scope name="TestFiles" pattern="file[test]:*/" />
|
||||
</component>
|
||||
5
make/ide/idea/jdk/template/jdk-clion/.idea/scopes/scope_settings.xml
generated
Normal file
5
make/ide/idea/jdk/template/jdk-clion/.idea/scopes/scope_settings.xml
generated
Normal file
@@ -0,0 +1,5 @@
|
||||
<component name="DependencyValidationManager">
|
||||
<state>
|
||||
<option name="SKIP_IMPORT_STATEMENTS" value="false" />
|
||||
</state>
|
||||
</component>
|
||||
3
make/ide/idea/jdk/template/scopes/TestFiles.xml
Normal file
3
make/ide/idea/jdk/template/scopes/TestFiles.xml
Normal file
@@ -0,0 +1,3 @@
|
||||
<component name="DependencyValidationManager">
|
||||
<scope name="TestFiles" pattern="file[test]:*/" />
|
||||
</component>
|
||||
@@ -26,6 +26,7 @@
|
||||
WIN_AWT_LIB := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libawt/awt.lib
|
||||
|
||||
LIBAWT_DEFAULT_HEADER_DIRS := \
|
||||
common/awt/utility \
|
||||
libawt/awt/image \
|
||||
libawt/awt/image/cvutils \
|
||||
libawt/java2d \
|
||||
@@ -135,6 +136,36 @@ ifeq ($(TOOLCHAIN_TYPE), gcc)
|
||||
LIBAWT_CFLAGS += -fgcse-after-reload
|
||||
endif
|
||||
|
||||
# Setup NVDA a11y announcer
|
||||
ifeq ($(call isTargetOs, windows), true)
|
||||
A11Y_NVDA_ANNOUNCING_CFLAGS := -DNO_A11Y_NVDA_ANNOUNCING
|
||||
A11Y_NVDA_ANNOUNCING_LIBS :=
|
||||
A11Y_NVDA_ANNOUNCING_DEPENDENCIES :=
|
||||
|
||||
ifeq ($(ENABLE_HEADLESS_ONLY), false)
|
||||
ifeq ($(A11Y_NVDA_ANNOUNCING_ENABLED), true)
|
||||
A11Y_NVDA_ANNOUNCING_CFLAGS := $(NVDACONTROLLERCLIENT_CFLAGS)
|
||||
A11Y_NVDA_ANNOUNCING_LIBS := $(NVDACONTROLLERCLIENT_LIB)
|
||||
A11Y_NVDA_ANNOUNCING_DEPENDENCIES := $(NVDACONTROLLERCLIENT_DLL)
|
||||
endif
|
||||
endif
|
||||
|
||||
LIBAWT_CFLAGS += $(A11Y_NVDA_ANNOUNCING_CFLAGS)
|
||||
endif
|
||||
|
||||
# Setup the client for the JAWS screen reader
|
||||
ifeq ($(call isTargetOs, windows), true)
|
||||
A11Y_JAWS_ANNOUNCING_CFLAGS := -DNO_A11Y_JAWS_ANNOUNCING
|
||||
|
||||
ifeq ($(ENABLE_HEADLESS_ONLY), false)
|
||||
ifeq ($(A11Y_JAWS_ANNOUNCING_ENABLED), true)
|
||||
A11Y_JAWS_ANNOUNCING_CFLAGS :=
|
||||
endif
|
||||
endif
|
||||
|
||||
LIBAWT_CFLAGS += $(A11Y_JAWS_ANNOUNCING_CFLAGS)
|
||||
endif
|
||||
|
||||
$(eval $(call SetupJdkLibrary, BUILD_LIBAWT, \
|
||||
NAME := awt, \
|
||||
EXTRA_SRC := $(LIBAWT_EXTRA_SRC), \
|
||||
@@ -150,7 +181,7 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBAWT, \
|
||||
DISABLED_WARNINGS_microsoft := 4244 4267 4996, \
|
||||
LDFLAGS := $(LDFLAGS_JDKLIB) $(call SET_SHARED_LIBRARY_ORIGIN), \
|
||||
LDFLAGS_macosx := -L$(INSTALL_LIBRARIES_HERE), \
|
||||
LDFLAGS_windows := -delayload:user32.dll -delayload:gdi32.dll \
|
||||
LDFLAGS_windows := -delayload:user32.dll -delayload:gdi32.dll -delayload:gdiplus.dll \
|
||||
-delayload:shell32.dll -delayload:winmm.dll \
|
||||
-delayload:winspool.drv -delayload:imm32.dll \
|
||||
-delayload:ole32.dll -delayload:comdlg32.dll \
|
||||
@@ -165,10 +196,10 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBAWT, \
|
||||
-framework JavaRuntimeSupport \
|
||||
-framework ApplicationServices \
|
||||
-framework AudioToolbox, \
|
||||
LIBS_windows := kernel32.lib user32.lib gdi32.lib winspool.lib \
|
||||
LIBS_windows := kernel32.lib user32.lib gdi32.lib gdiplus.lib winspool.lib \
|
||||
imm32.lib ole32.lib uuid.lib shell32.lib \
|
||||
comdlg32.lib winmm.lib comctl32.lib shlwapi.lib \
|
||||
delayimp.lib jvm.lib $(WIN_JAVA_LIB) advapi32.lib dwmapi.lib, \
|
||||
delayimp.lib jvm.lib $(WIN_JAVA_LIB) advapi32.lib dwmapi.lib $(A11Y_NVDA_ANNOUNCING_LIBS), \
|
||||
VERSIONINFO_RESOURCE := $(LIBAWT_VERSIONINFO_RESOURCE), \
|
||||
EXTRA_RCFLAGS := $(LIBAWT_RCFLAGS), \
|
||||
))
|
||||
@@ -179,6 +210,18 @@ ifeq ($(call isTargetOs, macosx), true)
|
||||
$(BUILD_LIBAWT): $(BUILD_LIBMLIB_IMAGE)
|
||||
endif
|
||||
|
||||
ifeq ($(call isTargetOs, windows)+$(ENABLE_HEADLESS_ONLY)+$(A11Y_NVDA_ANNOUNCING_ENABLED), true+false+true)
|
||||
$(eval $(call SetupCopyFiles, COPY_NVDA_DEPENDENCIES, \
|
||||
FILES := $(A11Y_NVDA_ANNOUNCING_DEPENDENCIES), \
|
||||
DEST := $(BUILD_LIBAWT_OUTPUT_DIR), \
|
||||
))
|
||||
|
||||
$(COPY_NVDA_DEPENDENCIES): $(A11Y_NVDA_ANNOUNCING_DEPENDENCIES)
|
||||
$(BUILD_LIBAWT): $(COPY_NVDA_DEPENDENCIES)
|
||||
|
||||
TARGETS += $(COPY_NVDA_DEPENDENCIES)
|
||||
endif
|
||||
|
||||
TARGETS += $(BUILD_LIBAWT)
|
||||
|
||||
################################################################################
|
||||
@@ -192,6 +235,18 @@ ifeq ($(call isTargetOs, windows macosx), false)
|
||||
common/font \
|
||||
#
|
||||
|
||||
ifeq ($(A11Y_SPEECHD_ANNOUNCING_ENABLED), true)
|
||||
A11Y_SPEECHD_ANNOUNCING_CFLAGS :=
|
||||
else
|
||||
A11Y_SPEECHD_ANNOUNCING_CFLAGS := -DNO_A11Y_SPEECHD_ANNOUNCING
|
||||
endif
|
||||
|
||||
ifeq ($(call isTargetOs, linux), true)
|
||||
LIBAWT_XAWT_EXTRA_SRC += \
|
||||
$(TOPDIR)/src/$(MODULE)/linux/native/libawt_xawt \
|
||||
#
|
||||
endif
|
||||
|
||||
LIBAWT_XAWT_EXCLUDES := medialib debug
|
||||
|
||||
LIBAWT_XAWT_EXTRA_HEADER_DIRS := \
|
||||
@@ -207,7 +262,10 @@ ifeq ($(call isTargetOs, windows macosx), false)
|
||||
|
||||
LIBAWT_XAWT_CFLAGS += -DXAWT -DXAWT_HACK \
|
||||
$(FONTCONFIG_CFLAGS) \
|
||||
$(CUPS_CFLAGS)
|
||||
$(CUPS_CFLAGS) \
|
||||
$(SPEECHD_CFLAGS) \
|
||||
$(A11Y_SPEECHD_ANNOUNCING_CFLAGS) \
|
||||
#
|
||||
|
||||
ifeq ($(call isTargetOs, linux), true)
|
||||
ifeq ($(DISABLE_XRENDER), true)
|
||||
@@ -215,7 +273,7 @@ ifeq ($(call isTargetOs, windows macosx), false)
|
||||
endif
|
||||
endif
|
||||
|
||||
LIBAWT_XAWT_LIBS := $(LIBM) -lawt -lXext -lX11 -lXrender $(LIBDL) -lXtst -lXi -ljava -ljvm
|
||||
LIBAWT_XAWT_LIBS := $(LIBM) -lawt -lXext -lX11 -lXrender $(SPEECHD_LIBS) $(LIBDL) -lXtst -lXi -ljava -ljvm
|
||||
|
||||
ifeq ($(call isTargetOs, linux), true)
|
||||
LIBAWT_XAWT_LIBS += -lpthread
|
||||
@@ -369,7 +427,6 @@ ifeq ($(call isTargetOs, windows macosx), false)
|
||||
common/awt/debug \
|
||||
common/font \
|
||||
common/java2d/opengl \
|
||||
include \
|
||||
#
|
||||
|
||||
LIBAWT_HEADLESS_CFLAGS := $(CUPS_CFLAGS) $(FONTCONFIG_CFLAGS) $(X_CFLAGS) \
|
||||
@@ -475,11 +532,11 @@ endif
|
||||
LIBFONTMANAGER_EXTRA_HEADER_DIRS := \
|
||||
libharfbuzz \
|
||||
common/awt \
|
||||
common/awt/utility \
|
||||
common/font \
|
||||
libawt/java2d \
|
||||
libawt/java2d/pipe \
|
||||
libawt/java2d/loops \
|
||||
include \
|
||||
#
|
||||
|
||||
LIBFONTMANAGER_CFLAGS += $(LIBFREETYPE_CFLAGS)
|
||||
@@ -566,6 +623,7 @@ ifeq ($(call isTargetOs, windows), true)
|
||||
LIBJAWT_EXTRA_HEADER_DIRS := \
|
||||
include \
|
||||
common/awt/debug \
|
||||
common/awt/utility \
|
||||
libawt/awt/image/cvutils \
|
||||
libawt/java2d \
|
||||
libawt/java2d/windows \
|
||||
@@ -661,7 +719,7 @@ ifeq ($(ENABLE_HEADLESS_ONLY), false)
|
||||
common/awt/systemscale \
|
||||
#
|
||||
|
||||
LIBSPLASHSCREEN_HEADER_DIRS += include
|
||||
LIBSPLASHSCREEN_HEADER_DIRS += common/awt/utility
|
||||
|
||||
ifeq ($(USE_EXTERNAL_LIBGIF), false)
|
||||
LIBSPLASHSCREEN_HEADER_DIRS += libsplashscreen/giflib
|
||||
@@ -827,6 +885,7 @@ ifeq ($(call isTargetOs, macosx), true)
|
||||
-framework AudioToolbox \
|
||||
-framework Carbon \
|
||||
-framework Cocoa \
|
||||
-framework IOKit \
|
||||
-framework Metal \
|
||||
-framework Security \
|
||||
-framework ExceptionHandling \
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2021, 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
|
||||
@@ -40,6 +40,19 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBJ2GSS, \
|
||||
|
||||
TARGETS += $(BUILD_LIBJ2GSS)
|
||||
|
||||
ifeq ($(call isTargetOs, windows), true)
|
||||
$(eval $(call SetupJdkLibrary, BUILD_LIBSSPI_BRIDGE, \
|
||||
NAME := sspi_bridge, \
|
||||
OPTIMIZATION := LOW, \
|
||||
CFLAGS := $(CFLAGS_JDKLIB) \
|
||||
-I$(TOPDIR)/src/java.security.jgss/share/native/libj2gss, \
|
||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
||||
$(call SET_SHARED_LIBRARY_ORIGIN) \
|
||||
))
|
||||
|
||||
TARGETS += $(BUILD_LIBSSPI_BRIDGE)
|
||||
endif
|
||||
|
||||
################################################################################
|
||||
|
||||
ifneq ($(BUILD_CRYPTO), false)
|
||||
@@ -57,17 +70,6 @@ ifneq ($(BUILD_CRYPTO), false)
|
||||
))
|
||||
|
||||
TARGETS += $(BUILD_LIBW2K_LSA_AUTH)
|
||||
|
||||
$(eval $(call SetupJdkLibrary, BUILD_LIBSSPI_BRIDGE, \
|
||||
NAME := sspi_bridge, \
|
||||
OPTIMIZATION := LOW, \
|
||||
CFLAGS := $(CFLAGS_JDKLIB) \
|
||||
-I$(TOPDIR)/src/java.security.jgss/share/native/libj2gss, \
|
||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
||||
$(call SET_SHARED_LIBRARY_ORIGIN) \
|
||||
))
|
||||
|
||||
TARGETS += $(BUILD_LIBSSPI_BRIDGE)
|
||||
endif
|
||||
|
||||
ifeq ($(call isTargetOs, macosx), true)
|
||||
|
||||
@@ -42,6 +42,7 @@ if [ "$OPENJDK_TARGET_OS" = "macosx" ]; then
|
||||
LDD_CMD="$OTOOL -L"
|
||||
DIS_CMD="$OTOOL -v -V -t"
|
||||
STAT_PRINT_SIZE="-f %z"
|
||||
STRIP="$STRIP -no_code_signature_warning"
|
||||
elif [ "$OPENJDK_TARGET_OS" = "windows" ]; then
|
||||
FULLDUMP_CMD="$DUMPBIN -all"
|
||||
LDD_CMD="$DUMPBIN -dependents"
|
||||
@@ -674,14 +675,22 @@ compare_bin_file() {
|
||||
ORIG_THIS_FILE="$THIS_FILE"
|
||||
ORIG_OTHER_FILE="$OTHER_FILE"
|
||||
|
||||
if [ "$STRIP_ALL" = "true" ] || [[ "$STRIP_BEFORE_COMPARE" = *"$BIN_FILE"* ]]; then
|
||||
if [ "$STRIP_ALL" = "true" ] || [[ "$STRIP_BEFORE_COMPARE" = *"$BIN_FILE"* ]] \
|
||||
|| [ "$OPENJDK_TARGET_OS" = "macosx" ]; then
|
||||
THIS_STRIPPED_FILE=$FILE_WORK_DIR/this/$NAME
|
||||
OTHER_STRIPPED_FILE=$FILE_WORK_DIR/other/$NAME
|
||||
$MKDIR -p $FILE_WORK_DIR/this $FILE_WORK_DIR/other
|
||||
$CP $THIS_FILE $THIS_STRIPPED_FILE
|
||||
$CP $OTHER_FILE $OTHER_STRIPPED_FILE
|
||||
$STRIP $THIS_STRIPPED_FILE
|
||||
$STRIP $OTHER_STRIPPED_FILE
|
||||
if [ "$STRIP_ALL" = "true" ] || [[ "$STRIP_BEFORE_COMPARE" = *"$BIN_FILE"* ]]; then
|
||||
$STRIP $THIS_STRIPPED_FILE
|
||||
$STRIP $OTHER_STRIPPED_FILE
|
||||
fi
|
||||
# On macosx, always remove any signature before comparing
|
||||
if [ "$OPENJDK_TARGET_OS" = "macosx" ]; then
|
||||
$CODESIGN --remove-signature $THIS_STRIPPED_FILE
|
||||
$CODESIGN --remove-signature $OTHER_STRIPPED_FILE
|
||||
fi
|
||||
THIS_FILE="$THIS_STRIPPED_FILE"
|
||||
OTHER_FILE="$OTHER_STRIPPED_FILE"
|
||||
fi
|
||||
|
||||
@@ -1279,12 +1279,12 @@ class HandlerImpl {
|
||||
static int emit_deopt_handler(CodeBuffer& cbuf);
|
||||
|
||||
static uint size_exception_handler() {
|
||||
return MacroAssembler::far_branch_size();
|
||||
return MacroAssembler::far_codestub_branch_size();
|
||||
}
|
||||
|
||||
static uint size_deopt_handler() {
|
||||
// count one adr and one far branch instruction
|
||||
return 4 * NativeInstruction::instruction_size;
|
||||
return NativeInstruction::instruction_size + MacroAssembler::far_codestub_branch_size();
|
||||
}
|
||||
};
|
||||
|
||||
@@ -2358,7 +2358,7 @@ int HandlerImpl::emit_deopt_handler(CodeBuffer& cbuf)
|
||||
__ adr(lr, __ pc());
|
||||
__ far_jump(RuntimeAddress(SharedRuntime::deopt_blob()->unpack()));
|
||||
|
||||
assert(__ offset() - offset <= (int) size_deopt_handler(), "overflow");
|
||||
assert(__ offset() - offset == (int) size_deopt_handler(), "overflow");
|
||||
__ end_a_stub();
|
||||
return offset;
|
||||
}
|
||||
@@ -3105,16 +3105,30 @@ encode %{
|
||||
rscratch1, stlrb);
|
||||
%}
|
||||
|
||||
enc_class aarch64_enc_stlrb0(memory mem) %{
|
||||
MOV_VOLATILE(zr, $mem$$base, $mem$$index, $mem$$scale, $mem$$disp,
|
||||
rscratch1, stlrb);
|
||||
%}
|
||||
|
||||
enc_class aarch64_enc_stlrh(iRegI src, memory mem) %{
|
||||
MOV_VOLATILE(as_Register($src$$reg), $mem$$base, $mem$$index, $mem$$scale, $mem$$disp,
|
||||
rscratch1, stlrh);
|
||||
%}
|
||||
|
||||
enc_class aarch64_enc_stlrh0(memory mem) %{
|
||||
MOV_VOLATILE(zr, $mem$$base, $mem$$index, $mem$$scale, $mem$$disp,
|
||||
rscratch1, stlrh);
|
||||
%}
|
||||
|
||||
enc_class aarch64_enc_stlrw(iRegI src, memory mem) %{
|
||||
MOV_VOLATILE(as_Register($src$$reg), $mem$$base, $mem$$index, $mem$$scale, $mem$$disp,
|
||||
rscratch1, stlrw);
|
||||
%}
|
||||
|
||||
enc_class aarch64_enc_stlrw0(memory mem) %{
|
||||
MOV_VOLATILE(zr, $mem$$base, $mem$$index, $mem$$scale, $mem$$disp,
|
||||
rscratch1, stlrw);
|
||||
%}
|
||||
|
||||
enc_class aarch64_enc_ldarsbw(iRegI dst, memory mem) %{
|
||||
Register dst_reg = as_Register($dst$$reg);
|
||||
@@ -3205,6 +3219,11 @@ encode %{
|
||||
rscratch1, stlr);
|
||||
%}
|
||||
|
||||
enc_class aarch64_enc_stlr0(memory mem) %{
|
||||
MOV_VOLATILE(zr, $mem$$base, $mem$$index, $mem$$scale, $mem$$disp,
|
||||
rscratch1, stlr);
|
||||
%}
|
||||
|
||||
enc_class aarch64_enc_fstlrs(vRegF src, memory mem) %{
|
||||
{
|
||||
C2_MacroAssembler _masm(&cbuf);
|
||||
@@ -3913,19 +3932,15 @@ encode %{
|
||||
__ bind(object_has_monitor);
|
||||
STATIC_ASSERT(markWord::monitor_value <= INT_MAX);
|
||||
__ add(tmp, tmp, -(int)markWord::monitor_value); // monitor
|
||||
__ ldr(rscratch1, Address(tmp, ObjectMonitor::owner_offset_in_bytes()));
|
||||
__ ldr(disp_hdr, Address(tmp, ObjectMonitor::recursions_offset_in_bytes()));
|
||||
|
||||
Label notRecursive;
|
||||
__ cmp(rscratch1, rthread);
|
||||
__ br(Assembler::NE, cont);
|
||||
|
||||
__ cbz(disp_hdr, notRecursive);
|
||||
|
||||
// Recursive lock
|
||||
__ sub(disp_hdr, disp_hdr, 1u);
|
||||
__ str(disp_hdr, Address(tmp, ObjectMonitor::recursions_offset_in_bytes()));
|
||||
// flag == EQ was set in the ownership check above
|
||||
__ cmp(disp_hdr, disp_hdr); // Sets flags for result
|
||||
__ b(cont);
|
||||
|
||||
__ bind(notRecursive);
|
||||
@@ -4295,6 +4310,16 @@ operand immI_65535()
|
||||
interface(CONST_INTER);
|
||||
%}
|
||||
|
||||
operand immI_positive()
|
||||
%{
|
||||
predicate(n->get_int() > 0);
|
||||
match(ConI);
|
||||
|
||||
op_cost(0);
|
||||
format %{ %}
|
||||
interface(CONST_INTER);
|
||||
%}
|
||||
|
||||
operand immL_255()
|
||||
%{
|
||||
predicate(n->get_long() == 255L);
|
||||
@@ -8109,6 +8134,18 @@ instruct storeB_volatile(iRegIorL2I src, /* sync_memory*/indirect mem)
|
||||
ins_pipe(pipe_class_memory);
|
||||
%}
|
||||
|
||||
instruct storeimmB0_volatile(immI0 zero, /* sync_memory*/indirect mem)
|
||||
%{
|
||||
match(Set mem (StoreB mem zero));
|
||||
|
||||
ins_cost(VOLATILE_REF_COST);
|
||||
format %{ "stlrb zr, $mem\t# byte" %}
|
||||
|
||||
ins_encode(aarch64_enc_stlrb0(mem));
|
||||
|
||||
ins_pipe(pipe_class_memory);
|
||||
%}
|
||||
|
||||
// Store Char/Short
|
||||
instruct storeC_volatile(iRegIorL2I src, /* sync_memory*/indirect mem)
|
||||
%{
|
||||
@@ -8122,6 +8159,18 @@ instruct storeC_volatile(iRegIorL2I src, /* sync_memory*/indirect mem)
|
||||
ins_pipe(pipe_class_memory);
|
||||
%}
|
||||
|
||||
instruct storeimmC0_volatile(immI0 zero, /* sync_memory*/indirect mem)
|
||||
%{
|
||||
match(Set mem (StoreC mem zero));
|
||||
|
||||
ins_cost(VOLATILE_REF_COST);
|
||||
format %{ "stlrh zr, $mem\t# short" %}
|
||||
|
||||
ins_encode(aarch64_enc_stlrh0(mem));
|
||||
|
||||
ins_pipe(pipe_class_memory);
|
||||
%}
|
||||
|
||||
// Store Integer
|
||||
|
||||
instruct storeI_volatile(iRegIorL2I src, /* sync_memory*/indirect mem)
|
||||
@@ -8136,6 +8185,18 @@ instruct storeI_volatile(iRegIorL2I src, /* sync_memory*/indirect mem)
|
||||
ins_pipe(pipe_class_memory);
|
||||
%}
|
||||
|
||||
instruct storeimmI0_volatile(immI0 zero, /* sync_memory*/indirect mem)
|
||||
%{
|
||||
match(Set mem(StoreI mem zero));
|
||||
|
||||
ins_cost(VOLATILE_REF_COST);
|
||||
format %{ "stlrw zr, $mem\t# int" %}
|
||||
|
||||
ins_encode(aarch64_enc_stlrw0(mem));
|
||||
|
||||
ins_pipe(pipe_class_memory);
|
||||
%}
|
||||
|
||||
// Store Long (64 bit signed)
|
||||
instruct storeL_volatile(iRegL src, /* sync_memory*/indirect mem)
|
||||
%{
|
||||
@@ -8149,6 +8210,18 @@ instruct storeL_volatile(iRegL src, /* sync_memory*/indirect mem)
|
||||
ins_pipe(pipe_class_memory);
|
||||
%}
|
||||
|
||||
instruct storeimmL0_volatile(immL0 zero, /* sync_memory*/indirect mem)
|
||||
%{
|
||||
match(Set mem (StoreL mem zero));
|
||||
|
||||
ins_cost(VOLATILE_REF_COST);
|
||||
format %{ "stlr zr, $mem\t# int" %}
|
||||
|
||||
ins_encode(aarch64_enc_stlr0(mem));
|
||||
|
||||
ins_pipe(pipe_class_memory);
|
||||
%}
|
||||
|
||||
// Store Pointer
|
||||
instruct storeP_volatile(iRegP src, /* sync_memory*/indirect mem)
|
||||
%{
|
||||
@@ -8162,6 +8235,18 @@ instruct storeP_volatile(iRegP src, /* sync_memory*/indirect mem)
|
||||
ins_pipe(pipe_class_memory);
|
||||
%}
|
||||
|
||||
instruct storeimmP0_volatile(immP0 zero, /* sync_memory*/indirect mem)
|
||||
%{
|
||||
match(Set mem (StoreP mem zero));
|
||||
|
||||
ins_cost(VOLATILE_REF_COST);
|
||||
format %{ "stlr zr, $mem\t# ptr" %}
|
||||
|
||||
ins_encode(aarch64_enc_stlr0(mem));
|
||||
|
||||
ins_pipe(pipe_class_memory);
|
||||
%}
|
||||
|
||||
// Store Compressed Pointer
|
||||
instruct storeN_volatile(iRegN src, /* sync_memory*/indirect mem)
|
||||
%{
|
||||
@@ -8175,6 +8260,18 @@ instruct storeN_volatile(iRegN src, /* sync_memory*/indirect mem)
|
||||
ins_pipe(pipe_class_memory);
|
||||
%}
|
||||
|
||||
instruct storeimmN0_volatile(immN0 zero, /* sync_memory*/indirect mem)
|
||||
%{
|
||||
match(Set mem (StoreN mem zero));
|
||||
|
||||
ins_cost(VOLATILE_REF_COST);
|
||||
format %{ "stlrw zr, $mem\t# compressed ptr" %}
|
||||
|
||||
ins_encode(aarch64_enc_stlrw0(mem));
|
||||
|
||||
ins_pipe(pipe_class_memory);
|
||||
%}
|
||||
|
||||
// Store Float
|
||||
instruct storeF_volatile(vRegF src, /* sync_memory*/indirect mem)
|
||||
%{
|
||||
@@ -11318,6 +11415,108 @@ instruct regI_not_reg(iRegINoSp dst,
|
||||
ins_pipe(ialu_reg);
|
||||
%}
|
||||
|
||||
// This pattern is automatically generated from aarch64_ad.m4
|
||||
// DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE
|
||||
instruct NegI_reg_URShift_reg(iRegINoSp dst,
|
||||
immI0 zero, iRegIorL2I src1, immI src2) %{
|
||||
match(Set dst (SubI zero (URShiftI src1 src2)));
|
||||
|
||||
ins_cost(1.9 * INSN_COST);
|
||||
format %{ "negw $dst, $src1, LSR $src2" %}
|
||||
|
||||
ins_encode %{
|
||||
__ negw(as_Register($dst$$reg), as_Register($src1$$reg),
|
||||
Assembler::LSR, $src2$$constant & 0x1f);
|
||||
%}
|
||||
|
||||
ins_pipe(ialu_reg_shift);
|
||||
%}
|
||||
|
||||
// This pattern is automatically generated from aarch64_ad.m4
|
||||
// DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE
|
||||
instruct NegI_reg_RShift_reg(iRegINoSp dst,
|
||||
immI0 zero, iRegIorL2I src1, immI src2) %{
|
||||
match(Set dst (SubI zero (RShiftI src1 src2)));
|
||||
|
||||
ins_cost(1.9 * INSN_COST);
|
||||
format %{ "negw $dst, $src1, ASR $src2" %}
|
||||
|
||||
ins_encode %{
|
||||
__ negw(as_Register($dst$$reg), as_Register($src1$$reg),
|
||||
Assembler::ASR, $src2$$constant & 0x1f);
|
||||
%}
|
||||
|
||||
ins_pipe(ialu_reg_shift);
|
||||
%}
|
||||
|
||||
// This pattern is automatically generated from aarch64_ad.m4
|
||||
// DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE
|
||||
instruct NegI_reg_LShift_reg(iRegINoSp dst,
|
||||
immI0 zero, iRegIorL2I src1, immI src2) %{
|
||||
match(Set dst (SubI zero (LShiftI src1 src2)));
|
||||
|
||||
ins_cost(1.9 * INSN_COST);
|
||||
format %{ "negw $dst, $src1, LSL $src2" %}
|
||||
|
||||
ins_encode %{
|
||||
__ negw(as_Register($dst$$reg), as_Register($src1$$reg),
|
||||
Assembler::LSL, $src2$$constant & 0x1f);
|
||||
%}
|
||||
|
||||
ins_pipe(ialu_reg_shift);
|
||||
%}
|
||||
|
||||
// This pattern is automatically generated from aarch64_ad.m4
|
||||
// DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE
|
||||
instruct NegL_reg_URShift_reg(iRegLNoSp dst,
|
||||
immL0 zero, iRegL src1, immI src2) %{
|
||||
match(Set dst (SubL zero (URShiftL src1 src2)));
|
||||
|
||||
ins_cost(1.9 * INSN_COST);
|
||||
format %{ "neg $dst, $src1, LSR $src2" %}
|
||||
|
||||
ins_encode %{
|
||||
__ neg(as_Register($dst$$reg), as_Register($src1$$reg),
|
||||
Assembler::LSR, $src2$$constant & 0x3f);
|
||||
%}
|
||||
|
||||
ins_pipe(ialu_reg_shift);
|
||||
%}
|
||||
|
||||
// This pattern is automatically generated from aarch64_ad.m4
|
||||
// DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE
|
||||
instruct NegL_reg_RShift_reg(iRegLNoSp dst,
|
||||
immL0 zero, iRegL src1, immI src2) %{
|
||||
match(Set dst (SubL zero (RShiftL src1 src2)));
|
||||
|
||||
ins_cost(1.9 * INSN_COST);
|
||||
format %{ "neg $dst, $src1, ASR $src2" %}
|
||||
|
||||
ins_encode %{
|
||||
__ neg(as_Register($dst$$reg), as_Register($src1$$reg),
|
||||
Assembler::ASR, $src2$$constant & 0x3f);
|
||||
%}
|
||||
|
||||
ins_pipe(ialu_reg_shift);
|
||||
%}
|
||||
|
||||
// This pattern is automatically generated from aarch64_ad.m4
|
||||
// DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE
|
||||
instruct NegL_reg_LShift_reg(iRegLNoSp dst,
|
||||
immL0 zero, iRegL src1, immI src2) %{
|
||||
match(Set dst (SubL zero (LShiftL src1 src2)));
|
||||
|
||||
ins_cost(1.9 * INSN_COST);
|
||||
format %{ "neg $dst, $src1, LSL $src2" %}
|
||||
|
||||
ins_encode %{
|
||||
__ neg(as_Register($dst$$reg), as_Register($src1$$reg),
|
||||
Assembler::LSL, $src2$$constant & 0x3f);
|
||||
%}
|
||||
|
||||
ins_pipe(ialu_reg_shift);
|
||||
%}
|
||||
|
||||
// This pattern is automatically generated from aarch64_ad.m4
|
||||
// DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE
|
||||
instruct AndI_reg_not_reg(iRegINoSp dst,
|
||||
@@ -14997,18 +15196,22 @@ instruct clearArray_reg_reg(iRegL_R11 cnt, iRegP_R10 base, Universe dummy, rFlag
|
||||
ins_pipe(pipe_class_memory);
|
||||
%}
|
||||
|
||||
instruct clearArray_imm_reg(immL cnt, iRegP_R10 base, Universe dummy, rFlagsReg cr)
|
||||
instruct clearArray_imm_reg(immL cnt, iRegP_R10 base, iRegL_R11 temp, Universe dummy, rFlagsReg cr)
|
||||
%{
|
||||
predicate((uint64_t)n->in(2)->get_long()
|
||||
< (uint64_t)(BlockZeroingLowLimit >> LogBytesPerWord));
|
||||
match(Set dummy (ClearArray cnt base));
|
||||
effect(USE_KILL base);
|
||||
effect(TEMP temp, USE_KILL base, KILL cr);
|
||||
|
||||
ins_cost(4 * INSN_COST);
|
||||
format %{ "ClearArray $cnt, $base" %}
|
||||
|
||||
ins_encode %{
|
||||
__ zero_words($base$$Register, (uint64_t)$cnt$$constant);
|
||||
address tpc = __ zero_words($base$$Register, (uint64_t)$cnt$$constant);
|
||||
if (tpc == NULL) {
|
||||
ciEnv::current()->record_failure("CodeCache is full");
|
||||
return;
|
||||
}
|
||||
%}
|
||||
|
||||
ins_pipe(pipe_class_memory);
|
||||
|
||||
@@ -52,6 +52,24 @@ instruct $2$1_reg_$4_reg(iReg$1NoSp dst,
|
||||
ins_pipe(ialu_reg_reg_shift);
|
||||
%}
|
||||
')dnl
|
||||
define(`NEG_SHIFT_INSN',
|
||||
`// This pattern is automatically generated from aarch64_ad.m4
|
||||
// DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE
|
||||
instruct Neg$1_reg_$2_reg(iReg$1NoSp dst,
|
||||
imm$1`0' zero, iReg$1`'ORL2I($1) src1, immI src2) %{
|
||||
match(Set dst (Sub$1 zero ($2$1 src1 src2)));
|
||||
|
||||
ins_cost(1.9 * INSN_COST);
|
||||
format %{ "ifelse($1, I, negw, neg) $dst, $src1, $3 $src2" %}
|
||||
|
||||
ins_encode %{
|
||||
__ ifelse($1, I, negw, neg)(as_Register($dst$$reg), as_Register($src1$$reg),
|
||||
Assembler::$3, $src2$$constant & ifelse($1,I,0x1f,0x3f));
|
||||
%}
|
||||
|
||||
ins_pipe(ialu_reg_shift);
|
||||
%}
|
||||
')dnl
|
||||
define(`BASE_INVERTED_INSN',
|
||||
`// This pattern is automatically generated from aarch64_ad.m4
|
||||
// DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE
|
||||
@@ -126,6 +144,11 @@ define(`BOTH_SHIFT_INSNS',
|
||||
`BASE_SHIFT_INSN(I, $1, ifelse($2,andr,andw,$2w), $3, $4)
|
||||
BASE_SHIFT_INSN(L, $1, $2, $3, $4)')dnl
|
||||
dnl
|
||||
define(`BOTH_NEG_SHIFT_INSNS',
|
||||
`NEG_SHIFT_INSN($1, URShift, LSR)
|
||||
NEG_SHIFT_INSN($1, RShift, ASR)
|
||||
NEG_SHIFT_INSN($1, LShift, LSL)')dnl
|
||||
dnl
|
||||
define(`BOTH_INVERTED_INSNS',
|
||||
`BASE_INVERTED_INSN(I, $1, $2w, $3, $4)
|
||||
BASE_INVERTED_INSN(L, $1, $2, $3, $4)')dnl
|
||||
@@ -151,6 +174,8 @@ BOTH_INVERTED_SHIFT_INSNS($1, $2, LShift, LSL)')dnl
|
||||
dnl
|
||||
NOT_INSN(L, eon)
|
||||
NOT_INSN(I, eonw)
|
||||
BOTH_NEG_SHIFT_INSNS(I)
|
||||
BOTH_NEG_SHIFT_INSNS(L)
|
||||
BOTH_INVERTED_INSNS(And, bic)
|
||||
BOTH_INVERTED_INSNS(Or, orn)
|
||||
BOTH_INVERTED_INSNS(Xor, eon)
|
||||
|
||||
@@ -3103,16 +3103,14 @@ instruct replicate2L(vecX dst, iRegL src)
|
||||
ins_pipe(vdup_reg_reg128);
|
||||
%}
|
||||
|
||||
instruct replicate2L_zero(vecX dst, immI0 zero)
|
||||
instruct replicate2L_imm(vecX dst, immL con)
|
||||
%{
|
||||
predicate(UseSVE == 0 && n->as_Vector()->length() == 2);
|
||||
match(Set dst (ReplicateI zero));
|
||||
match(Set dst (ReplicateL con));
|
||||
ins_cost(INSN_COST);
|
||||
format %{ "movi $dst, $zero\t# vector (4I)" %}
|
||||
format %{ "movi $dst, $con\t# vector (2L)" %}
|
||||
ins_encode %{
|
||||
__ eor(as_FloatRegister($dst$$reg), __ T16B,
|
||||
as_FloatRegister($dst$$reg),
|
||||
as_FloatRegister($dst$$reg));
|
||||
__ mov(as_FloatRegister($dst$$reg), __ T2D, $con$$constant);
|
||||
%}
|
||||
ins_pipe(vmovi_reg_imm128);
|
||||
%}
|
||||
@@ -3124,8 +3122,7 @@ instruct replicate2F(vecD dst, vRegF src)
|
||||
ins_cost(INSN_COST);
|
||||
format %{ "dup $dst, $src\t# vector (2F)" %}
|
||||
ins_encode %{
|
||||
__ dup(as_FloatRegister($dst$$reg), __ T2S,
|
||||
as_FloatRegister($src$$reg));
|
||||
__ dup(as_FloatRegister($dst$$reg), __ T2S, as_FloatRegister($src$$reg));
|
||||
%}
|
||||
ins_pipe(vdup_reg_freg64);
|
||||
%}
|
||||
@@ -3137,8 +3134,7 @@ instruct replicate4F(vecX dst, vRegF src)
|
||||
ins_cost(INSN_COST);
|
||||
format %{ "dup $dst, $src\t# vector (4F)" %}
|
||||
ins_encode %{
|
||||
__ dup(as_FloatRegister($dst$$reg), __ T4S,
|
||||
as_FloatRegister($src$$reg));
|
||||
__ dup(as_FloatRegister($dst$$reg), __ T4S, as_FloatRegister($src$$reg));
|
||||
%}
|
||||
ins_pipe(vdup_reg_freg128);
|
||||
%}
|
||||
@@ -3150,8 +3146,7 @@ instruct replicate2D(vecX dst, vRegD src)
|
||||
ins_cost(INSN_COST);
|
||||
format %{ "dup $dst, $src\t# vector (2D)" %}
|
||||
ins_encode %{
|
||||
__ dup(as_FloatRegister($dst$$reg), __ T2D,
|
||||
as_FloatRegister($src$$reg));
|
||||
__ dup(as_FloatRegister($dst$$reg), __ T2D, as_FloatRegister($src$$reg));
|
||||
%}
|
||||
ins_pipe(vdup_reg_dreg128);
|
||||
%}
|
||||
@@ -4428,7 +4423,7 @@ instruct vsll16B_imm(vecX dst, vecX src, immI shift) %{
|
||||
ins_pipe(vshift128_imm);
|
||||
%}
|
||||
|
||||
instruct vsra8B_imm(vecD dst, vecD src, immI shift) %{
|
||||
instruct vsra8B_imm(vecD dst, vecD src, immI_positive shift) %{
|
||||
predicate(n->as_Vector()->length() == 4 ||
|
||||
n->as_Vector()->length() == 8);
|
||||
match(Set dst (RShiftVB src (RShiftCntV shift)));
|
||||
@@ -4443,7 +4438,7 @@ instruct vsra8B_imm(vecD dst, vecD src, immI shift) %{
|
||||
ins_pipe(vshift64_imm);
|
||||
%}
|
||||
|
||||
instruct vsra16B_imm(vecX dst, vecX src, immI shift) %{
|
||||
instruct vsra16B_imm(vecX dst, vecX src, immI_positive shift) %{
|
||||
predicate(n->as_Vector()->length() == 16);
|
||||
match(Set dst (RShiftVB src (RShiftCntV shift)));
|
||||
ins_cost(INSN_COST);
|
||||
@@ -4457,7 +4452,7 @@ instruct vsra16B_imm(vecX dst, vecX src, immI shift) %{
|
||||
ins_pipe(vshift128_imm);
|
||||
%}
|
||||
|
||||
instruct vsrl8B_imm(vecD dst, vecD src, immI shift) %{
|
||||
instruct vsrl8B_imm(vecD dst, vecD src, immI_positive shift) %{
|
||||
predicate(n->as_Vector()->length() == 4 ||
|
||||
n->as_Vector()->length() == 8);
|
||||
match(Set dst (URShiftVB src (RShiftCntV shift)));
|
||||
@@ -4477,7 +4472,7 @@ instruct vsrl8B_imm(vecD dst, vecD src, immI shift) %{
|
||||
ins_pipe(vshift64_imm);
|
||||
%}
|
||||
|
||||
instruct vsrl16B_imm(vecX dst, vecX src, immI shift) %{
|
||||
instruct vsrl16B_imm(vecX dst, vecX src, immI_positive shift) %{
|
||||
predicate(n->as_Vector()->length() == 16);
|
||||
match(Set dst (URShiftVB src (RShiftCntV shift)));
|
||||
ins_cost(INSN_COST);
|
||||
@@ -4632,7 +4627,7 @@ instruct vsll8S_imm(vecX dst, vecX src, immI shift) %{
|
||||
ins_pipe(vshift128_imm);
|
||||
%}
|
||||
|
||||
instruct vsra4S_imm(vecD dst, vecD src, immI shift) %{
|
||||
instruct vsra4S_imm(vecD dst, vecD src, immI_positive shift) %{
|
||||
predicate(n->as_Vector()->length() == 2 ||
|
||||
n->as_Vector()->length() == 4);
|
||||
match(Set dst (RShiftVS src (RShiftCntV shift)));
|
||||
@@ -4647,7 +4642,7 @@ instruct vsra4S_imm(vecD dst, vecD src, immI shift) %{
|
||||
ins_pipe(vshift64_imm);
|
||||
%}
|
||||
|
||||
instruct vsra8S_imm(vecX dst, vecX src, immI shift) %{
|
||||
instruct vsra8S_imm(vecX dst, vecX src, immI_positive shift) %{
|
||||
predicate(n->as_Vector()->length() == 8);
|
||||
match(Set dst (RShiftVS src (RShiftCntV shift)));
|
||||
ins_cost(INSN_COST);
|
||||
@@ -4661,7 +4656,7 @@ instruct vsra8S_imm(vecX dst, vecX src, immI shift) %{
|
||||
ins_pipe(vshift128_imm);
|
||||
%}
|
||||
|
||||
instruct vsrl4S_imm(vecD dst, vecD src, immI shift) %{
|
||||
instruct vsrl4S_imm(vecD dst, vecD src, immI_positive shift) %{
|
||||
predicate(n->as_Vector()->length() == 2 ||
|
||||
n->as_Vector()->length() == 4);
|
||||
match(Set dst (URShiftVS src (RShiftCntV shift)));
|
||||
@@ -4681,7 +4676,7 @@ instruct vsrl4S_imm(vecD dst, vecD src, immI shift) %{
|
||||
ins_pipe(vshift64_imm);
|
||||
%}
|
||||
|
||||
instruct vsrl8S_imm(vecX dst, vecX src, immI shift) %{
|
||||
instruct vsrl8S_imm(vecX dst, vecX src, immI_positive shift) %{
|
||||
predicate(n->as_Vector()->length() == 8);
|
||||
match(Set dst (URShiftVS src (RShiftCntV shift)));
|
||||
ins_cost(INSN_COST);
|
||||
@@ -4820,7 +4815,7 @@ instruct vsll4I_imm(vecX dst, vecX src, immI shift) %{
|
||||
ins_pipe(vshift128_imm);
|
||||
%}
|
||||
|
||||
instruct vsra2I_imm(vecD dst, vecD src, immI shift) %{
|
||||
instruct vsra2I_imm(vecD dst, vecD src, immI_positive shift) %{
|
||||
predicate(n->as_Vector()->length() == 2);
|
||||
match(Set dst (RShiftVI src (RShiftCntV shift)));
|
||||
ins_cost(INSN_COST);
|
||||
@@ -4833,7 +4828,7 @@ instruct vsra2I_imm(vecD dst, vecD src, immI shift) %{
|
||||
ins_pipe(vshift64_imm);
|
||||
%}
|
||||
|
||||
instruct vsra4I_imm(vecX dst, vecX src, immI shift) %{
|
||||
instruct vsra4I_imm(vecX dst, vecX src, immI_positive shift) %{
|
||||
predicate(n->as_Vector()->length() == 4);
|
||||
match(Set dst (RShiftVI src (RShiftCntV shift)));
|
||||
ins_cost(INSN_COST);
|
||||
@@ -4846,7 +4841,7 @@ instruct vsra4I_imm(vecX dst, vecX src, immI shift) %{
|
||||
ins_pipe(vshift128_imm);
|
||||
%}
|
||||
|
||||
instruct vsrl2I_imm(vecD dst, vecD src, immI shift) %{
|
||||
instruct vsrl2I_imm(vecD dst, vecD src, immI_positive shift) %{
|
||||
predicate(n->as_Vector()->length() == 2);
|
||||
match(Set dst (URShiftVI src (RShiftCntV shift)));
|
||||
ins_cost(INSN_COST);
|
||||
@@ -4859,7 +4854,7 @@ instruct vsrl2I_imm(vecD dst, vecD src, immI shift) %{
|
||||
ins_pipe(vshift64_imm);
|
||||
%}
|
||||
|
||||
instruct vsrl4I_imm(vecX dst, vecX src, immI shift) %{
|
||||
instruct vsrl4I_imm(vecX dst, vecX src, immI_positive shift) %{
|
||||
predicate(n->as_Vector()->length() == 4);
|
||||
match(Set dst (URShiftVI src (RShiftCntV shift)));
|
||||
ins_cost(INSN_COST);
|
||||
@@ -4932,7 +4927,7 @@ instruct vsll2L_imm(vecX dst, vecX src, immI shift) %{
|
||||
ins_pipe(vshift128_imm);
|
||||
%}
|
||||
|
||||
instruct vsra2L_imm(vecX dst, vecX src, immI shift) %{
|
||||
instruct vsra2L_imm(vecX dst, vecX src, immI_positive shift) %{
|
||||
predicate(n->as_Vector()->length() == 2);
|
||||
match(Set dst (RShiftVL src (RShiftCntV shift)));
|
||||
ins_cost(INSN_COST);
|
||||
@@ -4945,7 +4940,7 @@ instruct vsra2L_imm(vecX dst, vecX src, immI shift) %{
|
||||
ins_pipe(vshift128_imm);
|
||||
%}
|
||||
|
||||
instruct vsrl2L_imm(vecX dst, vecX src, immI shift) %{
|
||||
instruct vsrl2L_imm(vecX dst, vecX src, immI_positive shift) %{
|
||||
predicate(n->as_Vector()->length() == 2);
|
||||
match(Set dst (URShiftVL src (RShiftCntV shift)));
|
||||
ins_cost(INSN_COST);
|
||||
@@ -4958,7 +4953,7 @@ instruct vsrl2L_imm(vecX dst, vecX src, immI shift) %{
|
||||
ins_pipe(vshift128_imm);
|
||||
%}
|
||||
|
||||
instruct vsraa8B_imm(vecD dst, vecD src, immI shift) %{
|
||||
instruct vsraa8B_imm(vecD dst, vecD src, immI_positive shift) %{
|
||||
predicate(n->as_Vector()->length() == 8);
|
||||
match(Set dst (AddVB dst (RShiftVB src (RShiftCntV shift))));
|
||||
ins_cost(INSN_COST);
|
||||
@@ -4972,7 +4967,7 @@ instruct vsraa8B_imm(vecD dst, vecD src, immI shift) %{
|
||||
ins_pipe(vshift64_imm);
|
||||
%}
|
||||
|
||||
instruct vsraa16B_imm(vecX dst, vecX src, immI shift) %{
|
||||
instruct vsraa16B_imm(vecX dst, vecX src, immI_positive shift) %{
|
||||
predicate(n->as_Vector()->length() == 16);
|
||||
match(Set dst (AddVB dst (RShiftVB src (RShiftCntV shift))));
|
||||
ins_cost(INSN_COST);
|
||||
@@ -4986,7 +4981,7 @@ instruct vsraa16B_imm(vecX dst, vecX src, immI shift) %{
|
||||
ins_pipe(vshift128_imm);
|
||||
%}
|
||||
|
||||
instruct vsraa4S_imm(vecD dst, vecD src, immI shift) %{
|
||||
instruct vsraa4S_imm(vecD dst, vecD src, immI_positive shift) %{
|
||||
predicate(n->as_Vector()->length() == 4);
|
||||
match(Set dst (AddVS dst (RShiftVS src (RShiftCntV shift))));
|
||||
ins_cost(INSN_COST);
|
||||
@@ -5000,7 +4995,7 @@ instruct vsraa4S_imm(vecD dst, vecD src, immI shift) %{
|
||||
ins_pipe(vshift64_imm);
|
||||
%}
|
||||
|
||||
instruct vsraa8S_imm(vecX dst, vecX src, immI shift) %{
|
||||
instruct vsraa8S_imm(vecX dst, vecX src, immI_positive shift) %{
|
||||
predicate(n->as_Vector()->length() == 8);
|
||||
match(Set dst (AddVS dst (RShiftVS src (RShiftCntV shift))));
|
||||
ins_cost(INSN_COST);
|
||||
@@ -5014,7 +5009,7 @@ instruct vsraa8S_imm(vecX dst, vecX src, immI shift) %{
|
||||
ins_pipe(vshift128_imm);
|
||||
%}
|
||||
|
||||
instruct vsraa2I_imm(vecD dst, vecD src, immI shift) %{
|
||||
instruct vsraa2I_imm(vecD dst, vecD src, immI_positive shift) %{
|
||||
predicate(n->as_Vector()->length() == 2);
|
||||
match(Set dst (AddVI dst (RShiftVI src (RShiftCntV shift))));
|
||||
ins_cost(INSN_COST);
|
||||
@@ -5027,7 +5022,7 @@ instruct vsraa2I_imm(vecD dst, vecD src, immI shift) %{
|
||||
ins_pipe(vshift64_imm);
|
||||
%}
|
||||
|
||||
instruct vsraa4I_imm(vecX dst, vecX src, immI shift) %{
|
||||
instruct vsraa4I_imm(vecX dst, vecX src, immI_positive shift) %{
|
||||
predicate(n->as_Vector()->length() == 4);
|
||||
match(Set dst (AddVI dst (RShiftVI src (RShiftCntV shift))));
|
||||
ins_cost(INSN_COST);
|
||||
@@ -5040,7 +5035,7 @@ instruct vsraa4I_imm(vecX dst, vecX src, immI shift) %{
|
||||
ins_pipe(vshift128_imm);
|
||||
%}
|
||||
|
||||
instruct vsraa2L_imm(vecX dst, vecX src, immI shift) %{
|
||||
instruct vsraa2L_imm(vecX dst, vecX src, immI_positive shift) %{
|
||||
predicate(n->as_Vector()->length() == 2);
|
||||
match(Set dst (AddVL dst (RShiftVL src (RShiftCntV shift))));
|
||||
ins_cost(INSN_COST);
|
||||
@@ -5053,7 +5048,7 @@ instruct vsraa2L_imm(vecX dst, vecX src, immI shift) %{
|
||||
ins_pipe(vshift128_imm);
|
||||
%}
|
||||
|
||||
instruct vsrla8B_imm(vecD dst, vecD src, immI shift) %{
|
||||
instruct vsrla8B_imm(vecD dst, vecD src, immI_positive shift) %{
|
||||
predicate(n->as_Vector()->length() == 8);
|
||||
match(Set dst (AddVB dst (URShiftVB src (RShiftCntV shift))));
|
||||
ins_cost(INSN_COST);
|
||||
@@ -5068,7 +5063,7 @@ instruct vsrla8B_imm(vecD dst, vecD src, immI shift) %{
|
||||
ins_pipe(vshift64_imm);
|
||||
%}
|
||||
|
||||
instruct vsrla16B_imm(vecX dst, vecX src, immI shift) %{
|
||||
instruct vsrla16B_imm(vecX dst, vecX src, immI_positive shift) %{
|
||||
predicate(n->as_Vector()->length() == 16);
|
||||
match(Set dst (AddVB dst (URShiftVB src (RShiftCntV shift))));
|
||||
ins_cost(INSN_COST);
|
||||
@@ -5083,7 +5078,7 @@ instruct vsrla16B_imm(vecX dst, vecX src, immI shift) %{
|
||||
ins_pipe(vshift128_imm);
|
||||
%}
|
||||
|
||||
instruct vsrla4S_imm(vecD dst, vecD src, immI shift) %{
|
||||
instruct vsrla4S_imm(vecD dst, vecD src, immI_positive shift) %{
|
||||
predicate(n->as_Vector()->length() == 4);
|
||||
match(Set dst (AddVS dst (URShiftVS src (RShiftCntV shift))));
|
||||
ins_cost(INSN_COST);
|
||||
@@ -5098,7 +5093,7 @@ instruct vsrla4S_imm(vecD dst, vecD src, immI shift) %{
|
||||
ins_pipe(vshift64_imm);
|
||||
%}
|
||||
|
||||
instruct vsrla8S_imm(vecX dst, vecX src, immI shift) %{
|
||||
instruct vsrla8S_imm(vecX dst, vecX src, immI_positive shift) %{
|
||||
predicate(n->as_Vector()->length() == 8);
|
||||
match(Set dst (AddVS dst (URShiftVS src (RShiftCntV shift))));
|
||||
ins_cost(INSN_COST);
|
||||
@@ -5113,7 +5108,7 @@ instruct vsrla8S_imm(vecX dst, vecX src, immI shift) %{
|
||||
ins_pipe(vshift128_imm);
|
||||
%}
|
||||
|
||||
instruct vsrla2I_imm(vecD dst, vecD src, immI shift) %{
|
||||
instruct vsrla2I_imm(vecD dst, vecD src, immI_positive shift) %{
|
||||
predicate(n->as_Vector()->length() == 2);
|
||||
match(Set dst (AddVI dst (URShiftVI src (RShiftCntV shift))));
|
||||
ins_cost(INSN_COST);
|
||||
@@ -5126,7 +5121,7 @@ instruct vsrla2I_imm(vecD dst, vecD src, immI shift) %{
|
||||
ins_pipe(vshift64_imm);
|
||||
%}
|
||||
|
||||
instruct vsrla4I_imm(vecX dst, vecX src, immI shift) %{
|
||||
instruct vsrla4I_imm(vecX dst, vecX src, immI_positive shift) %{
|
||||
predicate(n->as_Vector()->length() == 4);
|
||||
match(Set dst (AddVI dst (URShiftVI src (RShiftCntV shift))));
|
||||
ins_cost(INSN_COST);
|
||||
@@ -5139,7 +5134,7 @@ instruct vsrla4I_imm(vecX dst, vecX src, immI shift) %{
|
||||
ins_pipe(vshift128_imm);
|
||||
%}
|
||||
|
||||
instruct vsrla2L_imm(vecX dst, vecX src, immI shift) %{
|
||||
instruct vsrla2L_imm(vecX dst, vecX src, immI_positive shift) %{
|
||||
predicate(n->as_Vector()->length() == 2);
|
||||
match(Set dst (AddVL dst (URShiftVL src (RShiftCntV shift))));
|
||||
ins_cost(INSN_COST);
|
||||
|
||||
@@ -1463,55 +1463,54 @@ VFABD(fabd, fabd, 2, F, D, S, 64)
|
||||
VFABD(fabd, fabd, 4, F, X, S, 128)
|
||||
VFABD(fabd, fabd, 2, D, X, D, 128)
|
||||
dnl
|
||||
define(`VREPLICATE', `
|
||||
instruct replicate$3$4$5`'(vec$6 dst, $7 ifelse($7, immI0, zero, $7, immI, con, src))
|
||||
define(`VREPLICATE_REG', `
|
||||
instruct replicate$2$3`'(vec$4 dst, $5 src)
|
||||
%{
|
||||
predicate(ifelse($8, UseSVE == 0 && , $8,
|
||||
$8, , , $8`
|
||||
')n->as_Vector()->length() == $3);
|
||||
match(Set dst (Replicate`'ifelse($7, immI0, I, $4) ifelse($7, immI0, zero, $7, immI, con, $7, zero, I, src)));
|
||||
predicate(ifelse($7, UseSVE == 0 && , $7,
|
||||
$7, , , $7`
|
||||
')n->as_Vector()->length() == $2);
|
||||
match(Set dst (Replicate$3 src));
|
||||
ins_cost(INSN_COST);
|
||||
format %{ "$1 $dst, $ifelse($7, immI0, zero, $7, immI, con, src)`\t# vector ('ifelse($4$7, SimmI, $3H, $2, eor, 4I, $3$4)`)"' %}
|
||||
format %{ "dup $dst, $src\t# vector ($2$3)" %}
|
||||
ins_encode %{
|
||||
__ $2(as_FloatRegister($dst$$reg), __ ifelse(
|
||||
$2, eor, T16B, T$3`'$9),ifelse(
|
||||
`$4 $7', `B immI', ` '$con$$constant & 0xff,
|
||||
`$4 $7', `S immI', ` '$con$$constant & 0xffff,
|
||||
`$4 $7', `I immI', ` '$con$$constant,
|
||||
`$2', eor,`
|
||||
as_FloatRegister($dst$$reg),
|
||||
as_FloatRegister($dst$$reg)',
|
||||
`$7', vRegF,`
|
||||
as_FloatRegister($src$$reg)',
|
||||
`$7', vRegD,`
|
||||
as_FloatRegister($src$$reg)',
|
||||
` 'as_Register($src$$reg)));
|
||||
__ dup(as_FloatRegister($dst$$reg), __ T$2$1, $6($src$$reg));
|
||||
%}
|
||||
ins_pipe(ifelse($7, immI0, v$1_reg_imm,
|
||||
$7, immI, v$1_reg_imm,
|
||||
$7, iRegIorL2I, v$1_reg_reg,
|
||||
$7, zero, vmovi_reg_imm,
|
||||
$7, iRegL, vdup_reg_reg,
|
||||
$4, F, vdup_reg_freg, vdup_reg_dreg)`'ifelse($6, X, 128, 64));
|
||||
ins_pipe(ifelse($5, iRegIorL2I, vdup_reg_reg,
|
||||
$5, iRegL, vdup_reg_reg,
|
||||
$3, F, vdup_reg_freg, vdup_reg_dreg)`'ifelse($4, X, 128, 64));
|
||||
%}')dnl
|
||||
dnl $1 $2 $3 $4 $5 $6 $7 $8 $9
|
||||
VREPLICATE(dup, dup, 8, B, , D, iRegIorL2I, n->as_Vector()->length() == 4 ||, B)
|
||||
VREPLICATE(dup, dup, 16, B, , X, iRegIorL2I, UseSVE == 0 && , B)
|
||||
VREPLICATE(movi, mov, 8, B, _imm, D, immI, n->as_Vector()->length() == 4 ||, B)
|
||||
VREPLICATE(movi, mov, 16, B, _imm, X, immI, UseSVE == 0 && , B)
|
||||
VREPLICATE(dup, dup, 4, S, , D, iRegIorL2I, n->as_Vector()->length() == 2 ||, H)
|
||||
VREPLICATE(dup, dup, 8, S, , X, iRegIorL2I, UseSVE == 0 && , H)
|
||||
VREPLICATE(movi, mov, 4, S, _imm, D, immI, n->as_Vector()->length() == 2 ||, H)
|
||||
VREPLICATE(movi, mov, 8, S, _imm, X, immI, UseSVE == 0 && , H)
|
||||
VREPLICATE(dup, dup, 2, I, , D, iRegIorL2I, , S)
|
||||
VREPLICATE(dup, dup, 4, I, , X, iRegIorL2I, UseSVE == 0 && , S)
|
||||
VREPLICATE(movi, mov, 2, I, _imm, D, immI, , S)
|
||||
VREPLICATE(movi, mov, 4, I, _imm, X, immI, UseSVE == 0 && , S)
|
||||
VREPLICATE(dup, dup, 2, L, , X, iRegL, UseSVE == 0 && , D)
|
||||
VREPLICATE(movi, eor, 2, L, _zero, X, immI0, UseSVE == 0 && , D)
|
||||
VREPLICATE(dup, dup, 2, F, , D, vRegF, , S)
|
||||
VREPLICATE(dup, dup, 4, F, , X, vRegF, UseSVE == 0 && , S)
|
||||
VREPLICATE(dup, dup, 2, D, , X, vRegD, UseSVE == 0 && , D)
|
||||
define(`VREPLICATE_IMM', `
|
||||
instruct replicate$2$3_imm`'(vec$4 dst, $5 con)
|
||||
%{
|
||||
predicate(ifelse($7, UseSVE == 0 && , $7,
|
||||
$7, , , $7`
|
||||
')n->as_Vector()->length() == $2);
|
||||
match(Set dst (Replicate$3 con));
|
||||
ins_cost(INSN_COST);
|
||||
format %{ "movi $dst, $con\t`#' vector ($2`'ifelse($3, S, H, $3))" %}
|
||||
ins_encode %{
|
||||
__ mov(as_FloatRegister($dst$$reg), __ T$2`'iTYPE2SIMD($3), $con$$constant`'$6);
|
||||
%}
|
||||
ins_pipe(vmovi_reg_imm`'ifelse($4, X, 128, 64));
|
||||
%}')dnl
|
||||
dnl $1 $2 $3 $4 $5 $6 $7
|
||||
VREPLICATE_REG(B, 8, B, D, iRegIorL2I, as_Register, n->as_Vector()->length() == 4 ||)
|
||||
VREPLICATE_REG(B, 16, B, X, iRegIorL2I, as_Register, UseSVE == 0 && )
|
||||
VREPLICATE_IMM(B, 8, B, D, immI, ` & 0xff', n->as_Vector()->length() == 4 ||)
|
||||
VREPLICATE_IMM(B, 16, B, X, immI, ` & 0xff', UseSVE == 0 && )
|
||||
VREPLICATE_REG(H, 4, S, D, iRegIorL2I, as_Register, n->as_Vector()->length() == 2 ||)
|
||||
VREPLICATE_REG(H, 8, S, X, iRegIorL2I, as_Register, UseSVE == 0 && )
|
||||
VREPLICATE_IMM(H, 4, S, D, immI, ` & 0xffff', n->as_Vector()->length() == 2 ||)
|
||||
VREPLICATE_IMM(H, 8, S, X, immI, ` & 0xffff', UseSVE == 0 && )
|
||||
VREPLICATE_REG(S, 2, I, D, iRegIorL2I, as_Register, )
|
||||
VREPLICATE_REG(S, 4, I, X, iRegIorL2I, as_Register, UseSVE == 0 && )
|
||||
VREPLICATE_IMM(S, 2, I, D, immI, , )
|
||||
VREPLICATE_IMM(S, 4, I, X, immI, , UseSVE == 0 && )
|
||||
VREPLICATE_REG(D, 2, L, X, iRegL, as_Register, UseSVE == 0 && )
|
||||
VREPLICATE_IMM(D, 2, L, X, immL, , UseSVE == 0 && )
|
||||
VREPLICATE_REG(S, 2, F, D, vRegF, as_FloatRegister, )
|
||||
VREPLICATE_REG(S, 4, F, X, vRegF, as_FloatRegister, UseSVE == 0 && )
|
||||
VREPLICATE_REG(D, 2, D, X, vRegD, as_FloatRegister, UseSVE == 0 && )
|
||||
dnl
|
||||
|
||||
// ====================REDUCTION ARITHMETIC====================================
|
||||
@@ -1992,7 +1991,7 @@ instruct vsll$3$4_imm`'(vec$6 dst, vec$6 src, immI shift) %{
|
||||
ins_pipe(vshift`'ifelse($6, D, 64, 128)_imm);
|
||||
%}')dnl
|
||||
define(`VSRA_IMM', `
|
||||
instruct vsra$3$4_imm`'(vec$6 dst, vec$6 src, immI shift) %{
|
||||
instruct vsra$3$4_imm`'(vec$6 dst, vec$6 src, immI_positive shift) %{
|
||||
predicate(ifelse($3$4, 8B, n->as_Vector()->length() == 4 ||`
|
||||
',
|
||||
$3$4, 4S, n->as_Vector()->length() == 2 ||`
|
||||
@@ -2017,7 +2016,7 @@ instruct vsra$3$4_imm`'(vec$6 dst, vec$6 src, immI shift) %{
|
||||
%}')dnl
|
||||
dnl
|
||||
define(`VSRL_IMM', `
|
||||
instruct vsrl$3$4_imm`'(vec$6 dst, vec$6 src, immI shift) %{
|
||||
instruct vsrl$3$4_imm`'(vec$6 dst, vec$6 src, immI_positive shift) %{
|
||||
predicate(ifelse($3$4, 8B, n->as_Vector()->length() == 4 ||`
|
||||
',
|
||||
$3$4, 4S, n->as_Vector()->length() == 2 ||`
|
||||
@@ -2052,7 +2051,7 @@ instruct vsrl$3$4_imm`'(vec$6 dst, vec$6 src, immI shift) %{
|
||||
%}')dnl
|
||||
dnl
|
||||
define(`VSRLA_IMM', `
|
||||
instruct vsrla$3$4_imm`'(vec$6 dst, vec$6 src, immI shift) %{
|
||||
instruct vsrla$3$4_imm`'(vec$6 dst, vec$6 src, immI_positive shift) %{
|
||||
predicate(n->as_Vector()->length() == $3);
|
||||
match(Set dst (AddV$4 dst (URShiftV$4 src (RShiftCntV shift))));
|
||||
ins_cost(INSN_COST);
|
||||
@@ -2076,7 +2075,7 @@ instruct vsrla$3$4_imm`'(vec$6 dst, vec$6 src, immI shift) %{
|
||||
%}')dnl
|
||||
dnl
|
||||
define(`VSRAA_IMM', `
|
||||
instruct vsraa$3$4_imm`'(vec$6 dst, vec$6 src, immI shift) %{
|
||||
instruct vsraa$3$4_imm`'(vec$6 dst, vec$6 src, immI_positive shift) %{
|
||||
predicate(n->as_Vector()->length() == $3);
|
||||
match(Set dst (AddV$4 dst (RShiftV$4 src (RShiftCntV shift))));
|
||||
ins_cost(INSN_COST);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2022, 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.
|
||||
*
|
||||
@@ -313,6 +313,53 @@ bool Assembler::operand_valid_for_logical_immediate(bool is32, uint64_t imm) {
|
||||
return encode_logical_immediate(is32, imm) != 0xffffffff;
|
||||
}
|
||||
|
||||
// Check immediate encoding for movi.
|
||||
// Return the shift amount which can be {0, 8, 16, 24} for B/H/S types. As the D type
|
||||
// movi does not have shift variant, in this case the return value is the immediate
|
||||
// after encoding.
|
||||
// Return -1 if the input imm64 can not be encoded.
|
||||
int Assembler::operand_valid_for_movi_immediate(uint64_t imm64, SIMD_Arrangement T) {
|
||||
if (T == T1D || T == T2D) {
|
||||
// To encode into movi, the 64-bit imm must be in the form of
|
||||
// 'aaaaaaaabbbbbbbbccccccccddddddddeeeeeeeeffffffffgggggggghhhhhhhh'
|
||||
// and encoded in "a:b:c:d:e:f:g:h".
|
||||
uint64_t tmp = imm64;
|
||||
uint64_t one_byte = 0;
|
||||
for (int i = 0; i < 8; i++) {
|
||||
one_byte = tmp & 0xffULL;
|
||||
if (one_byte != 0xffULL && one_byte != 0) {
|
||||
return -1; // can not be encoded
|
||||
}
|
||||
tmp = tmp >> 8;
|
||||
}
|
||||
|
||||
imm64 &= 0x0101010101010101ULL;
|
||||
imm64 |= (imm64 >> 7);
|
||||
imm64 |= (imm64 >> 14);
|
||||
imm64 |= (imm64 >> 28);
|
||||
|
||||
return imm64 & 0xff;
|
||||
}
|
||||
|
||||
uint32_t imm32 = imm64 & 0xffffffffULL;
|
||||
if (T == T8B || T == T16B) { // 8-bit variant
|
||||
if (0 == (imm32 & ~0xff)) return 0;
|
||||
} else if(T == T4H || T == T8H) { // 16-bit variant
|
||||
if (0 == (imm32 & ~0xff)) return 0;
|
||||
if (0 == (imm32 & ~0xff00)) return 8;
|
||||
} else if (T == T2S || T == T4S) { // 32-bit variant
|
||||
if (0 == (imm32 & ~0xff)) return 0;
|
||||
if (0 == (imm32 & ~0xff00)) return 8;
|
||||
if (0 == (imm32 & ~0xff0000)) return 16;
|
||||
if (0 == (imm32 & ~0xff000000)) return 24;
|
||||
} else {
|
||||
assert(false, "unsupported");
|
||||
ShouldNotReachHere();
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
static uint64_t doubleTo64Bits(jdouble d) {
|
||||
union {
|
||||
jdouble double_value;
|
||||
|
||||
@@ -476,16 +476,17 @@ class Address {
|
||||
assert(size == 0, "bad size");
|
||||
size = 0b100;
|
||||
}
|
||||
assert(offset_ok_for_immed(_offset, size),
|
||||
"must be, was: " INT64_FORMAT ", %d", _offset, size);
|
||||
unsigned mask = (1 << size) - 1;
|
||||
if (_offset < 0 || _offset & mask)
|
||||
{
|
||||
i->f(0b00, 25, 24);
|
||||
i->f(0, 21), i->f(0b00, 11, 10);
|
||||
i->sf(_offset, 20, 12);
|
||||
} else {
|
||||
i->f(0b01, 25, 24);
|
||||
i->f(_offset >> size, 21, 10);
|
||||
}
|
||||
if (_offset < 0 || _offset & mask) {
|
||||
i->f(0b00, 25, 24);
|
||||
i->f(0, 21), i->f(0b00, 11, 10);
|
||||
i->sf(_offset, 20, 12);
|
||||
} else {
|
||||
i->f(0b01, 25, 24);
|
||||
i->f(_offset >> size, 21, 10);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -3254,6 +3255,7 @@ public:
|
||||
static bool operand_valid_for_logical_immediate(bool is32, uint64_t imm);
|
||||
static bool operand_valid_for_add_sub_immediate(int64_t imm);
|
||||
static bool operand_valid_for_float_immediate(double imm);
|
||||
static int operand_valid_for_movi_immediate(uint64_t imm64, SIMD_Arrangement T);
|
||||
|
||||
void emit_data64(jlong data, relocInfo::relocType rtype, int format = 0);
|
||||
void emit_data64(jlong data, RelocationHolder const& rspec, int format = 0);
|
||||
|
||||
@@ -30,8 +30,14 @@
|
||||
#include "asm/codeBuffer.hpp"
|
||||
#include "code/codeCache.hpp"
|
||||
|
||||
|
||||
// Check if an offset is within the encoding range for LDR/STR instructions
|
||||
// with an immediate offset, either using unscaled signed 9-bits or, scaled
|
||||
// unsigned 12-bits. We favour the scaled unsigned encoding for all aligned
|
||||
// offsets (only using the signed 9-bit encoding for negative and unaligned
|
||||
// offsets). As a precondition, 0 <= shift <= 4 is the log2(size), for the
|
||||
// supported data widths, {1, 2, 4, 8, 16} bytes.
|
||||
inline bool Address::offset_ok_for_immed(int64_t offset, uint shift) {
|
||||
precond(shift < 5);
|
||||
uint mask = (1 << shift) - 1;
|
||||
if (offset < 0 || (offset & mask) != 0) {
|
||||
// Unscaled signed offset, encoded in a signed imm9 field.
|
||||
|
||||
@@ -187,14 +187,13 @@ Address LIR_Assembler::as_Address(LIR_Address* addr, Register tmp) {
|
||||
default:
|
||||
ShouldNotReachHere();
|
||||
}
|
||||
} else {
|
||||
intptr_t addr_offset = intptr_t(addr->disp());
|
||||
if (Address::offset_ok_for_immed(addr_offset, addr->scale()))
|
||||
return Address(base, addr_offset, Address::lsl(addr->scale()));
|
||||
else {
|
||||
__ mov(tmp, addr_offset);
|
||||
return Address(base, tmp, Address::lsl(addr->scale()));
|
||||
}
|
||||
} else {
|
||||
assert(addr->scale() == 0,
|
||||
"expected for immediate operand, was: %d", addr->scale());
|
||||
ptrdiff_t offset = ptrdiff_t(addr->disp());
|
||||
// NOTE: Does not handle any 16 byte vector access.
|
||||
const uint type_size = type2aelembytes(addr->type(), true);
|
||||
return __ legitimize_address(Address(base, offset), type_size, tmp);
|
||||
}
|
||||
return Address();
|
||||
}
|
||||
@@ -283,10 +282,9 @@ void LIR_Assembler::osr_entry() {
|
||||
__ bind(L);
|
||||
}
|
||||
#endif
|
||||
__ ldr(r19, Address(OSR_buf, slot_offset + 0));
|
||||
__ ldp(r19, r20, Address(OSR_buf, slot_offset));
|
||||
__ str(r19, frame_map()->address_for_monitor_lock(i));
|
||||
__ ldr(r19, Address(OSR_buf, slot_offset + 1*BytesPerWord));
|
||||
__ str(r19, frame_map()->address_for_monitor_object(i));
|
||||
__ str(r20, frame_map()->address_for_monitor_object(i));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,7 +148,7 @@ LIR_Address* LIRGenerator::generate_address(LIR_Opr base, LIR_Opr index,
|
||||
if (index->is_constant()) {
|
||||
LIR_Const *constant = index->as_constant_ptr();
|
||||
if (constant->type() == T_INT) {
|
||||
large_disp += index->as_jint() << shift;
|
||||
large_disp += ((intx)index->as_jint()) << shift;
|
||||
} else {
|
||||
assert(constant->type() == T_LONG, "should be");
|
||||
jlong c = index->as_jlong() << shift;
|
||||
@@ -194,7 +194,7 @@ LIR_Address* LIRGenerator::generate_address(LIR_Opr base, LIR_Opr index,
|
||||
if (large_disp == 0 && index->is_register()) {
|
||||
return new LIR_Address(base, index, type);
|
||||
} else {
|
||||
assert(Address::offset_ok_for_immed(large_disp, 0), "must be");
|
||||
assert(Address::offset_ok_for_immed(large_disp, shift), "failed for large_disp: " INTPTR_FORMAT " and shift %d", large_disp, shift);
|
||||
return new LIR_Address(base, large_disp, type);
|
||||
}
|
||||
}
|
||||
@@ -204,24 +204,7 @@ LIR_Address* LIRGenerator::emit_array_address(LIR_Opr array_opr, LIR_Opr index_o
|
||||
int offset_in_bytes = arrayOopDesc::base_offset_in_bytes(type);
|
||||
int elem_size = type2aelembytes(type);
|
||||
int shift = exact_log2(elem_size);
|
||||
|
||||
LIR_Address* addr;
|
||||
if (index_opr->is_constant()) {
|
||||
addr = new LIR_Address(array_opr,
|
||||
offset_in_bytes + (intx)(index_opr->as_jint()) * elem_size, type);
|
||||
} else {
|
||||
if (offset_in_bytes) {
|
||||
LIR_Opr tmp = new_pointer_register();
|
||||
__ add(array_opr, LIR_OprFact::intConst(offset_in_bytes), tmp);
|
||||
array_opr = tmp;
|
||||
offset_in_bytes = 0;
|
||||
}
|
||||
addr = new LIR_Address(array_opr,
|
||||
index_opr,
|
||||
LIR_Address::scale(type),
|
||||
offset_in_bytes, type);
|
||||
}
|
||||
return addr;
|
||||
return generate_address(array_opr, index_opr, shift, offset_in_bytes, type);
|
||||
}
|
||||
|
||||
LIR_Opr LIRGenerator::load_immediate(int x, BasicType type) {
|
||||
@@ -1132,8 +1115,8 @@ void LIRGenerator::do_NewInstance(NewInstance* x) {
|
||||
CodeEmitInfo* info = state_for(x, x->state());
|
||||
LIR_Opr reg = result_register_for(x->type());
|
||||
new_instance(reg, x->klass(), x->is_unresolved(),
|
||||
FrameMap::r2_oop_opr,
|
||||
FrameMap::r5_oop_opr,
|
||||
FrameMap::r10_oop_opr,
|
||||
FrameMap::r11_oop_opr,
|
||||
FrameMap::r4_oop_opr,
|
||||
LIR_OprFact::illegalOpr,
|
||||
FrameMap::r3_metadata_opr, info);
|
||||
@@ -1148,8 +1131,8 @@ void LIRGenerator::do_NewTypeArray(NewTypeArray* x) {
|
||||
length.load_item_force(FrameMap::r19_opr);
|
||||
|
||||
LIR_Opr reg = result_register_for(x->type());
|
||||
LIR_Opr tmp1 = FrameMap::r2_oop_opr;
|
||||
LIR_Opr tmp2 = FrameMap::r4_oop_opr;
|
||||
LIR_Opr tmp1 = FrameMap::r10_oop_opr;
|
||||
LIR_Opr tmp2 = FrameMap::r11_oop_opr;
|
||||
LIR_Opr tmp3 = FrameMap::r5_oop_opr;
|
||||
LIR_Opr tmp4 = reg;
|
||||
LIR_Opr klass_reg = FrameMap::r3_metadata_opr;
|
||||
@@ -1177,8 +1160,8 @@ void LIRGenerator::do_NewObjectArray(NewObjectArray* x) {
|
||||
CodeEmitInfo* info = state_for(x, x->state());
|
||||
|
||||
LIR_Opr reg = result_register_for(x->type());
|
||||
LIR_Opr tmp1 = FrameMap::r2_oop_opr;
|
||||
LIR_Opr tmp2 = FrameMap::r4_oop_opr;
|
||||
LIR_Opr tmp1 = FrameMap::r10_oop_opr;
|
||||
LIR_Opr tmp2 = FrameMap::r11_oop_opr;
|
||||
LIR_Opr tmp3 = FrameMap::r5_oop_opr;
|
||||
LIR_Opr tmp4 = reg;
|
||||
LIR_Opr klass_reg = FrameMap::r3_metadata_opr;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Copyright (c) 1999, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2014, Red Hat Inc. All rights reserved.
|
||||
* Copyright (c) 2014, 2021, Red Hat Inc. 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
|
||||
@@ -203,20 +203,24 @@ void C1_MacroAssembler::initialize_header(Register obj, Register klass, Register
|
||||
}
|
||||
|
||||
// preserves obj, destroys len_in_bytes
|
||||
void C1_MacroAssembler::initialize_body(Register obj, Register len_in_bytes, int hdr_size_in_bytes, Register t1) {
|
||||
//
|
||||
// Scratch registers: t1 = r10, t2 = r11
|
||||
//
|
||||
void C1_MacroAssembler::initialize_body(Register obj, Register len_in_bytes, int hdr_size_in_bytes, Register t1, Register t2) {
|
||||
assert(hdr_size_in_bytes >= 0, "header size must be positive or 0");
|
||||
assert(t1 == r10 && t2 == r11, "must be");
|
||||
|
||||
Label done;
|
||||
|
||||
// len_in_bytes is positive and ptr sized
|
||||
subs(len_in_bytes, len_in_bytes, hdr_size_in_bytes);
|
||||
br(Assembler::EQ, done);
|
||||
|
||||
// Preserve obj
|
||||
if (hdr_size_in_bytes)
|
||||
add(obj, obj, hdr_size_in_bytes);
|
||||
zero_memory(obj, len_in_bytes, t1);
|
||||
if (hdr_size_in_bytes)
|
||||
sub(obj, obj, hdr_size_in_bytes);
|
||||
// zero_words() takes ptr in r10 and count in words in r11
|
||||
mov(rscratch1, len_in_bytes);
|
||||
lea(t1, Address(obj, hdr_size_in_bytes));
|
||||
lsr(t2, rscratch1, LogBytesPerWord);
|
||||
zero_words(t1, t2);
|
||||
|
||||
bind(done);
|
||||
}
|
||||
@@ -231,6 +235,7 @@ void C1_MacroAssembler::allocate_object(Register obj, Register t1, Register t2,
|
||||
initialize_object(obj, klass, noreg, object_size * HeapWordSize, t1, t2, UseTLAB);
|
||||
}
|
||||
|
||||
// Scratch registers: t1 = r10, t2 = r11
|
||||
void C1_MacroAssembler::initialize_object(Register obj, Register klass, Register var_size_in_bytes, int con_size_in_bytes, Register t1, Register t2, bool is_tlab_allocated) {
|
||||
assert((con_size_in_bytes & MinObjAlignmentInBytesMask) == 0,
|
||||
"con_size_in_bytes is not multiple of alignment");
|
||||
@@ -241,45 +246,13 @@ void C1_MacroAssembler::initialize_object(Register obj, Register klass, Register
|
||||
if (!(UseTLAB && ZeroTLAB && is_tlab_allocated)) {
|
||||
// clear rest of allocated space
|
||||
const Register index = t2;
|
||||
const int threshold = 16 * BytesPerWord; // approximate break even point for code size (see comments below)
|
||||
if (var_size_in_bytes != noreg) {
|
||||
mov(index, var_size_in_bytes);
|
||||
initialize_body(obj, index, hdr_size_in_bytes, t1);
|
||||
} else if (con_size_in_bytes <= threshold) {
|
||||
// use explicit null stores
|
||||
int i = hdr_size_in_bytes;
|
||||
if (i < con_size_in_bytes && (con_size_in_bytes % (2 * BytesPerWord))) {
|
||||
str(zr, Address(obj, i));
|
||||
i += BytesPerWord;
|
||||
}
|
||||
for (; i < con_size_in_bytes; i += 2 * BytesPerWord)
|
||||
stp(zr, zr, Address(obj, i));
|
||||
initialize_body(obj, index, hdr_size_in_bytes, t1, t2);
|
||||
} else if (con_size_in_bytes > hdr_size_in_bytes) {
|
||||
block_comment("zero memory");
|
||||
// use loop to null out the fields
|
||||
|
||||
int words = (con_size_in_bytes - hdr_size_in_bytes) / BytesPerWord;
|
||||
mov(index, words / 8);
|
||||
|
||||
const int unroll = 8; // Number of str(zr) instructions we'll unroll
|
||||
int remainder = words % unroll;
|
||||
lea(rscratch1, Address(obj, hdr_size_in_bytes + remainder * BytesPerWord));
|
||||
|
||||
Label entry_point, loop;
|
||||
b(entry_point);
|
||||
|
||||
bind(loop);
|
||||
sub(index, index, 1);
|
||||
for (int i = -unroll; i < 0; i++) {
|
||||
if (-i == remainder)
|
||||
bind(entry_point);
|
||||
str(zr, Address(rscratch1, i * wordSize));
|
||||
}
|
||||
if (remainder == 0)
|
||||
bind(entry_point);
|
||||
add(rscratch1, rscratch1, unroll * wordSize);
|
||||
cbnz(index, loop);
|
||||
|
||||
con_size_in_bytes -= hdr_size_in_bytes;
|
||||
lea(t1, Address(obj, hdr_size_in_bytes));
|
||||
zero_words(t1, con_size_in_bytes / BytesPerWord);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -314,8 +287,7 @@ void C1_MacroAssembler::allocate_array(Register obj, Register len, Register t1,
|
||||
initialize_header(obj, klass, len, t1, t2);
|
||||
|
||||
// clear rest of allocated space
|
||||
const Register len_zero = len;
|
||||
initialize_body(obj, arr_size, header_size * BytesPerWord, len_zero);
|
||||
initialize_body(obj, arr_size, header_size * BytesPerWord, t1, t2);
|
||||
|
||||
membar(StoreStore);
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Copyright (c) 1999, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2014, 2015, Red Hat Inc. All rights reserved.
|
||||
* Copyright (c) 1999, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2014, 2021, Red Hat Inc. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@@ -48,7 +48,7 @@ using MacroAssembler::null_check;
|
||||
);
|
||||
|
||||
void initialize_header(Register obj, Register klass, Register len, Register t1, Register t2);
|
||||
void initialize_body(Register obj, Register len_in_bytes, int hdr_size_in_bytes, Register t1);
|
||||
void initialize_body(Register obj, Register len_in_bytes, int hdr_size_in_bytes, Register t1, Register t2);
|
||||
|
||||
void float_cmp(bool is_float, int unordered_result,
|
||||
FloatRegister f0, FloatRegister f1,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Copyright (c) 1999, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2014, Red Hat Inc. All rights reserved.
|
||||
* Copyright (c) 2014, 2021, Red Hat Inc. 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
|
||||
@@ -656,9 +656,9 @@ OopMapSet* Runtime1::generate_code_for(StubID id, StubAssembler* sasm) {
|
||||
if ((id == fast_new_instance_id || id == fast_new_instance_init_check_id) &&
|
||||
!UseTLAB && Universe::heap()->supports_inline_contig_alloc()) {
|
||||
Label slow_path;
|
||||
Register obj_size = r2;
|
||||
Register t1 = r19;
|
||||
Register t2 = r4;
|
||||
Register obj_size = r19;
|
||||
Register t1 = r10;
|
||||
Register t2 = r11;
|
||||
assert_different_registers(klass, obj, obj_size, t1, t2);
|
||||
|
||||
__ stp(r19, zr, Address(__ pre(sp, -2 * wordSize)));
|
||||
@@ -769,9 +769,9 @@ OopMapSet* Runtime1::generate_code_for(StubID id, StubAssembler* sasm) {
|
||||
// allocations.
|
||||
// Otherwise, just go to the slow path.
|
||||
if (!UseTLAB && Universe::heap()->supports_inline_contig_alloc()) {
|
||||
Register arr_size = r4;
|
||||
Register t1 = r2;
|
||||
Register t2 = r5;
|
||||
Register arr_size = r5;
|
||||
Register t1 = r10;
|
||||
Register t2 = r11;
|
||||
Label slow_path;
|
||||
assert_different_registers(length, klass, obj, arr_size, t1, t2);
|
||||
|
||||
@@ -801,7 +801,7 @@ OopMapSet* Runtime1::generate_code_for(StubID id, StubAssembler* sasm) {
|
||||
__ andr(t1, t1, Klass::_lh_header_size_mask);
|
||||
__ sub(arr_size, arr_size, t1); // body length
|
||||
__ add(t1, t1, obj); // body start
|
||||
__ initialize_body(t1, arr_size, 0, t2);
|
||||
__ initialize_body(t1, arr_size, 0, t1, t2);
|
||||
__ membar(Assembler::StoreStore);
|
||||
__ verify_oop(obj);
|
||||
|
||||
|
||||
@@ -106,7 +106,7 @@ define_pd_global(intx, InlineSmallCode, 1000);
|
||||
"Use DC ZVA for block zeroing") \
|
||||
product(intx, BlockZeroingLowLimit, 256, \
|
||||
"Minimum size in bytes when block zeroing will be used") \
|
||||
range(1, max_jint) \
|
||||
range(wordSize, max_jint) \
|
||||
product(bool, TraceTraps, false, "Trace all traps the signal handler")\
|
||||
product(int, SoftwarePrefetchHintDistance, -1, \
|
||||
"Use prfm hint with specified distance in compiled code." \
|
||||
|
||||
@@ -52,9 +52,15 @@ void InlineCacheBuffer::assemble_ic_buffer_code(address code_begin, void* cached
|
||||
address start = __ pc();
|
||||
Label l;
|
||||
__ ldr(rscratch2, l);
|
||||
__ far_jump(ExternalAddress(entry_point));
|
||||
__ align(wordSize);
|
||||
int jump_code_size = __ far_jump(ExternalAddress(entry_point));
|
||||
// IC stub code size is not expected to vary depending on target address.
|
||||
// We use NOPs to make the [ldr + far_jump + nops + int64] stub size equal to ic_stub_code_size.
|
||||
for (int size = NativeInstruction::instruction_size + jump_code_size + 8;
|
||||
size < ic_stub_code_size(); size += NativeInstruction::instruction_size) {
|
||||
__ nop();
|
||||
}
|
||||
__ bind(l);
|
||||
assert((uintptr_t)__ pc() % wordSize == 0, "");
|
||||
__ emit_int64((int64_t)cached_value);
|
||||
// Only need to invalidate the 1st two instructions - not the whole ic stub
|
||||
ICache::invalidate_range(code_begin, InlineCacheBuffer::ic_stub_code_size());
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
#include "jvm.h"
|
||||
#include "asm/assembler.hpp"
|
||||
#include "asm/assembler.inline.hpp"
|
||||
#include "ci/ciEnv.hpp"
|
||||
#include "gc/shared/barrierSet.hpp"
|
||||
#include "gc/shared/barrierSetAssembler.hpp"
|
||||
#include "gc/shared/cardTableBarrierSet.hpp"
|
||||
@@ -37,6 +38,7 @@
|
||||
#include "gc/shared/tlab_globals.hpp"
|
||||
#include "interpreter/bytecodeHistogram.hpp"
|
||||
#include "interpreter/interpreter.hpp"
|
||||
#include "compiler/compileTask.hpp"
|
||||
#include "compiler/disassembler.hpp"
|
||||
#include "memory/resourceArea.hpp"
|
||||
#include "memory/universe.hpp"
|
||||
@@ -382,14 +384,27 @@ void MacroAssembler::set_last_Java_frame(Register last_java_sp,
|
||||
}
|
||||
}
|
||||
|
||||
static inline bool target_needs_far_branch(address addr) {
|
||||
// codecache size <= 128M
|
||||
if (!MacroAssembler::far_branches()) {
|
||||
return false;
|
||||
}
|
||||
// codecache size > 240M
|
||||
if (MacroAssembler::codestub_branch_needs_far_jump()) {
|
||||
return true;
|
||||
}
|
||||
// codecache size: 128M..240M
|
||||
return !CodeCache::is_non_nmethod(addr);
|
||||
}
|
||||
|
||||
void MacroAssembler::far_call(Address entry, CodeBuffer *cbuf, Register tmp) {
|
||||
assert(ReservedCodeCacheSize < 4*G, "branch out of range");
|
||||
assert(CodeCache::find_blob(entry.target()) != NULL,
|
||||
"destination of far call not found in code cache");
|
||||
if (far_branches()) {
|
||||
if (target_needs_far_branch(entry.target())) {
|
||||
uint64_t offset;
|
||||
// We can use ADRP here because we know that the total size of
|
||||
// the code cache cannot exceed 2Gb.
|
||||
// the code cache cannot exceed 2Gb (ADRP limit is 4GB).
|
||||
adrp(tmp, entry, offset);
|
||||
add(tmp, tmp, offset);
|
||||
if (cbuf) cbuf->set_insts_mark();
|
||||
@@ -400,14 +415,15 @@ void MacroAssembler::far_call(Address entry, CodeBuffer *cbuf, Register tmp) {
|
||||
}
|
||||
}
|
||||
|
||||
void MacroAssembler::far_jump(Address entry, CodeBuffer *cbuf, Register tmp) {
|
||||
int MacroAssembler::far_jump(Address entry, CodeBuffer *cbuf, Register tmp) {
|
||||
assert(ReservedCodeCacheSize < 4*G, "branch out of range");
|
||||
assert(CodeCache::find_blob(entry.target()) != NULL,
|
||||
"destination of far call not found in code cache");
|
||||
if (far_branches()) {
|
||||
address start = pc();
|
||||
if (target_needs_far_branch(entry.target())) {
|
||||
uint64_t offset;
|
||||
// We can use ADRP here because we know that the total size of
|
||||
// the code cache cannot exceed 2Gb.
|
||||
// the code cache cannot exceed 2Gb (ADRP limit is 4GB).
|
||||
adrp(tmp, entry, offset);
|
||||
add(tmp, tmp, offset);
|
||||
if (cbuf) cbuf->set_insts_mark();
|
||||
@@ -416,6 +432,7 @@ void MacroAssembler::far_jump(Address entry, CodeBuffer *cbuf, Register tmp) {
|
||||
if (cbuf) cbuf->set_insts_mark();
|
||||
b(entry);
|
||||
}
|
||||
return pc() - start;
|
||||
}
|
||||
|
||||
void MacroAssembler::reserved_stack_check() {
|
||||
@@ -1229,7 +1246,7 @@ void MacroAssembler::check_klass_subtype_slow_path(Register sub_klass,
|
||||
if (!IS_A_TEMP(r2)) pushed_registers += r2;
|
||||
if (!IS_A_TEMP(r5)) pushed_registers += r5;
|
||||
|
||||
if (super_klass != r0 || UseCompressedOops) {
|
||||
if (super_klass != r0) {
|
||||
if (!IS_A_TEMP(r0)) pushed_registers += r0;
|
||||
}
|
||||
|
||||
@@ -1509,48 +1526,43 @@ void MacroAssembler::movptr(Register r, uintptr_t imm64) {
|
||||
}
|
||||
|
||||
// Macro to mov replicated immediate to vector register.
|
||||
// Vd will get the following values for different arrangements in T
|
||||
// imm32 == hex 000000gh T8B: Vd = ghghghghghghghgh
|
||||
// imm32 == hex 000000gh T16B: Vd = ghghghghghghghghghghghghghghghgh
|
||||
// imm32 == hex 0000efgh T4H: Vd = efghefghefghefgh
|
||||
// imm32 == hex 0000efgh T8H: Vd = efghefghefghefghefghefghefghefgh
|
||||
// imm32 == hex abcdefgh T2S: Vd = abcdefghabcdefgh
|
||||
// imm32 == hex abcdefgh T4S: Vd = abcdefghabcdefghabcdefghabcdefgh
|
||||
// T1D/T2D: invalid
|
||||
void MacroAssembler::mov(FloatRegister Vd, SIMD_Arrangement T, uint32_t imm32) {
|
||||
assert(T != T1D && T != T2D, "invalid arrangement");
|
||||
if (T == T8B || T == T16B) {
|
||||
assert((imm32 & ~0xff) == 0, "extraneous bits in unsigned imm32 (T8B/T16B)");
|
||||
movi(Vd, T, imm32 & 0xff, 0);
|
||||
// imm64: only the lower 8/16/32 bits are considered for B/H/S type. That is,
|
||||
// the upper 56/48/32 bits must be zeros for B/H/S type.
|
||||
// Vd will get the following values for different arrangements in T
|
||||
// imm64 == hex 000000gh T8B: Vd = ghghghghghghghgh
|
||||
// imm64 == hex 000000gh T16B: Vd = ghghghghghghghghghghghghghghghgh
|
||||
// imm64 == hex 0000efgh T4H: Vd = efghefghefghefgh
|
||||
// imm64 == hex 0000efgh T8H: Vd = efghefghefghefghefghefghefghefgh
|
||||
// imm64 == hex abcdefgh T2S: Vd = abcdefghabcdefgh
|
||||
// imm64 == hex abcdefgh T4S: Vd = abcdefghabcdefghabcdefghabcdefgh
|
||||
// imm64 == hex abcdefgh T1D: Vd = 00000000abcdefgh
|
||||
// imm64 == hex abcdefgh T2D: Vd = 00000000abcdefgh00000000abcdefgh
|
||||
// Clobbers rscratch1
|
||||
void MacroAssembler::mov(FloatRegister Vd, SIMD_Arrangement T, uint64_t imm64) {
|
||||
assert(T != T1Q, "unsupported");
|
||||
if (T == T1D || T == T2D) {
|
||||
int imm = operand_valid_for_movi_immediate(imm64, T);
|
||||
if (-1 != imm) {
|
||||
movi(Vd, T, imm);
|
||||
} else {
|
||||
mov(rscratch1, imm64);
|
||||
dup(Vd, T, rscratch1);
|
||||
}
|
||||
return;
|
||||
}
|
||||
uint32_t nimm32 = ~imm32;
|
||||
if (T == T4H || T == T8H) {
|
||||
assert((imm32 & ~0xffff) == 0, "extraneous bits in unsigned imm32 (T4H/T8H)");
|
||||
imm32 &= 0xffff;
|
||||
nimm32 &= 0xffff;
|
||||
}
|
||||
uint32_t x = imm32;
|
||||
int movi_cnt = 0;
|
||||
int movn_cnt = 0;
|
||||
while (x) { if (x & 0xff) movi_cnt++; x >>= 8; }
|
||||
x = nimm32;
|
||||
while (x) { if (x & 0xff) movn_cnt++; x >>= 8; }
|
||||
if (movn_cnt < movi_cnt) imm32 = nimm32;
|
||||
unsigned lsl = 0;
|
||||
while (imm32 && (imm32 & 0xff) == 0) { lsl += 8; imm32 >>= 8; }
|
||||
if (movn_cnt < movi_cnt)
|
||||
mvni(Vd, T, imm32 & 0xff, lsl);
|
||||
else
|
||||
movi(Vd, T, imm32 & 0xff, lsl);
|
||||
imm32 >>= 8; lsl += 8;
|
||||
while (imm32) {
|
||||
while ((imm32 & 0xff) == 0) { lsl += 8; imm32 >>= 8; }
|
||||
if (movn_cnt < movi_cnt)
|
||||
bici(Vd, T, imm32 & 0xff, lsl);
|
||||
else
|
||||
orri(Vd, T, imm32 & 0xff, lsl);
|
||||
lsl += 8; imm32 >>= 8;
|
||||
|
||||
#ifdef ASSERT
|
||||
if (T == T8B || T == T16B) assert((imm64 & ~0xff) == 0, "extraneous bits (T8B/T16B)");
|
||||
if (T == T4H || T == T8H) assert((imm64 & ~0xffff) == 0, "extraneous bits (T4H/T8H)");
|
||||
if (T == T2S || T == T4S) assert((imm64 & ~0xffffffff) == 0, "extraneous bits (T2S/T4S)");
|
||||
#endif
|
||||
int shift = operand_valid_for_movi_immediate(imm64, T);
|
||||
uint32_t imm32 = imm64 & 0xffffffffULL;
|
||||
if (shift >= 0) {
|
||||
movi(Vd, T, (imm32 >> shift) & 0xff, shift);
|
||||
} else {
|
||||
movw(rscratch1, imm32);
|
||||
dup(Vd, T, rscratch1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4283,68 +4295,6 @@ void MacroAssembler::eden_allocate(Register obj,
|
||||
bs->eden_allocate(this, obj, var_size_in_bytes, con_size_in_bytes, t1, slow_case);
|
||||
}
|
||||
|
||||
// Zero words; len is in bytes
|
||||
// Destroys all registers except addr
|
||||
// len must be a nonzero multiple of wordSize
|
||||
void MacroAssembler::zero_memory(Register addr, Register len, Register t1) {
|
||||
assert_different_registers(addr, len, t1, rscratch1, rscratch2);
|
||||
|
||||
#ifdef ASSERT
|
||||
{ Label L;
|
||||
tst(len, BytesPerWord - 1);
|
||||
br(Assembler::EQ, L);
|
||||
stop("len is not a multiple of BytesPerWord");
|
||||
bind(L);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef PRODUCT
|
||||
block_comment("zero memory");
|
||||
#endif
|
||||
|
||||
Label loop;
|
||||
Label entry;
|
||||
|
||||
// Algorithm:
|
||||
//
|
||||
// scratch1 = cnt & 7;
|
||||
// cnt -= scratch1;
|
||||
// p += scratch1;
|
||||
// switch (scratch1) {
|
||||
// do {
|
||||
// cnt -= 8;
|
||||
// p[-8] = 0;
|
||||
// case 7:
|
||||
// p[-7] = 0;
|
||||
// case 6:
|
||||
// p[-6] = 0;
|
||||
// // ...
|
||||
// case 1:
|
||||
// p[-1] = 0;
|
||||
// case 0:
|
||||
// p += 8;
|
||||
// } while (cnt);
|
||||
// }
|
||||
|
||||
const int unroll = 8; // Number of str(zr) instructions we'll unroll
|
||||
|
||||
lsr(len, len, LogBytesPerWord);
|
||||
andr(rscratch1, len, unroll - 1); // tmp1 = cnt % unroll
|
||||
sub(len, len, rscratch1); // cnt -= unroll
|
||||
// t1 always points to the end of the region we're about to zero
|
||||
add(t1, addr, rscratch1, Assembler::LSL, LogBytesPerWord);
|
||||
adr(rscratch2, entry);
|
||||
sub(rscratch2, rscratch2, rscratch1, Assembler::LSL, 2);
|
||||
br(rscratch2);
|
||||
bind(loop);
|
||||
sub(len, len, unroll);
|
||||
for (int i = -unroll; i < 0; i++)
|
||||
Assembler::str(zr, Address(t1, i * wordSize));
|
||||
bind(entry);
|
||||
add(t1, t1, unroll * wordSize);
|
||||
cbnz(len, loop);
|
||||
}
|
||||
|
||||
void MacroAssembler::verify_tlab() {
|
||||
#ifdef ASSERT
|
||||
if (UseTLAB && VerifyOops) {
|
||||
@@ -4863,10 +4813,11 @@ void MacroAssembler::string_equals(Register a1, Register a2,
|
||||
// handle anything smaller than this ourselves in zero_words().
|
||||
const int MacroAssembler::zero_words_block_size = 8;
|
||||
|
||||
// zero_words() is used by C2 ClearArray patterns. It is as small as
|
||||
// possible, handling small word counts locally and delegating
|
||||
// anything larger to the zero_blocks stub. It is expanded many times
|
||||
// in compiled code, so it is important to keep it short.
|
||||
// zero_words() is used by C2 ClearArray patterns and by
|
||||
// C1_MacroAssembler. It is as small as possible, handling small word
|
||||
// counts locally and delegating anything larger to the zero_blocks
|
||||
// stub. It is expanded many times in compiled code, so it is
|
||||
// important to keep it short.
|
||||
|
||||
// ptr: Address of a buffer to be zeroed.
|
||||
// cnt: Count in HeapWords.
|
||||
@@ -4875,32 +4826,45 @@ const int MacroAssembler::zero_words_block_size = 8;
|
||||
address MacroAssembler::zero_words(Register ptr, Register cnt)
|
||||
{
|
||||
assert(is_power_of_2(zero_words_block_size), "adjust this");
|
||||
assert(ptr == r10 && cnt == r11, "mismatch in register usage");
|
||||
|
||||
BLOCK_COMMENT("zero_words {");
|
||||
cmp(cnt, (u1)zero_words_block_size);
|
||||
assert(ptr == r10 && cnt == r11, "mismatch in register usage");
|
||||
RuntimeAddress zero_blocks = RuntimeAddress(StubRoutines::aarch64::zero_blocks());
|
||||
assert(zero_blocks.target() != NULL, "zero_blocks stub has not been generated");
|
||||
|
||||
subs(rscratch1, cnt, zero_words_block_size);
|
||||
Label around;
|
||||
br(LO, around);
|
||||
{
|
||||
RuntimeAddress zero_blocks = RuntimeAddress(StubRoutines::aarch64::zero_blocks());
|
||||
assert(zero_blocks.target() != NULL, "zero_blocks stub has not been generated");
|
||||
if (StubRoutines::aarch64::complete()) {
|
||||
// Make sure this is a C2 compilation. C1 allocates space only for
|
||||
// trampoline stubs generated by Call LIR ops, and in any case it
|
||||
// makes sense for a C1 compilation task to proceed as quickly as
|
||||
// possible.
|
||||
CompileTask* task;
|
||||
if (StubRoutines::aarch64::complete()
|
||||
&& Thread::current()->is_Compiler_thread()
|
||||
&& (task = ciEnv::current()->task())
|
||||
&& is_c2_compile(task->comp_level())) {
|
||||
address tpc = trampoline_call(zero_blocks);
|
||||
if (tpc == NULL) {
|
||||
DEBUG_ONLY(reset_labels(around));
|
||||
postcond(pc() == badAddress);
|
||||
return NULL;
|
||||
}
|
||||
} else {
|
||||
bl(zero_blocks);
|
||||
far_call(zero_blocks);
|
||||
}
|
||||
}
|
||||
bind(around);
|
||||
|
||||
// We have a few words left to do. zero_blocks has adjusted r10 and r11
|
||||
// for us.
|
||||
for (int i = zero_words_block_size >> 1; i > 1; i >>= 1) {
|
||||
Label l;
|
||||
tbz(cnt, exact_log2(i), l);
|
||||
for (int j = 0; j < i; j += 2) {
|
||||
stp(zr, zr, post(ptr, 16));
|
||||
stp(zr, zr, post(ptr, 2 * BytesPerWord));
|
||||
}
|
||||
bind(l);
|
||||
}
|
||||
@@ -4910,46 +4874,59 @@ address MacroAssembler::zero_words(Register ptr, Register cnt)
|
||||
str(zr, Address(ptr));
|
||||
bind(l);
|
||||
}
|
||||
|
||||
BLOCK_COMMENT("} zero_words");
|
||||
postcond(pc() != badAddress);
|
||||
return pc();
|
||||
}
|
||||
|
||||
// base: Address of a buffer to be zeroed, 8 bytes aligned.
|
||||
// cnt: Immediate count in HeapWords.
|
||||
#define SmallArraySize (18 * BytesPerLong)
|
||||
void MacroAssembler::zero_words(Register base, uint64_t cnt)
|
||||
//
|
||||
// r10, r11, rscratch1, and rscratch2 are clobbered.
|
||||
address MacroAssembler::zero_words(Register base, uint64_t cnt)
|
||||
{
|
||||
BLOCK_COMMENT("zero_words {");
|
||||
int i = cnt & 1; // store any odd word to start
|
||||
if (i) str(zr, Address(base));
|
||||
|
||||
if (cnt <= SmallArraySize / BytesPerLong) {
|
||||
assert(wordSize <= BlockZeroingLowLimit,
|
||||
"increase BlockZeroingLowLimit");
|
||||
address result = nullptr;
|
||||
if (cnt <= (uint64_t)BlockZeroingLowLimit / BytesPerWord) {
|
||||
#ifndef PRODUCT
|
||||
{
|
||||
char buf[64];
|
||||
snprintf(buf, sizeof buf, "zero_words (count = %" PRIu64 ") {", cnt);
|
||||
BLOCK_COMMENT(buf);
|
||||
}
|
||||
#endif
|
||||
if (cnt >= 16) {
|
||||
uint64_t loops = cnt/16;
|
||||
if (loops > 1) {
|
||||
mov(rscratch2, loops - 1);
|
||||
}
|
||||
{
|
||||
Label loop;
|
||||
bind(loop);
|
||||
for (int i = 0; i < 16; i += 2) {
|
||||
stp(zr, zr, Address(base, i * BytesPerWord));
|
||||
}
|
||||
add(base, base, 16 * BytesPerWord);
|
||||
if (loops > 1) {
|
||||
subs(rscratch2, rscratch2, 1);
|
||||
br(GE, loop);
|
||||
}
|
||||
}
|
||||
}
|
||||
cnt %= 16;
|
||||
int i = cnt & 1; // store any odd word to start
|
||||
if (i) str(zr, Address(base));
|
||||
for (; i < (int)cnt; i += 2) {
|
||||
stp(zr, zr, Address(base, i * wordSize));
|
||||
}
|
||||
BLOCK_COMMENT("} zero_words");
|
||||
result = pc();
|
||||
} else {
|
||||
const int unroll = 4; // Number of stp(zr, zr) instructions we'll unroll
|
||||
int remainder = cnt % (2 * unroll);
|
||||
for (; i < remainder; i += 2) {
|
||||
stp(zr, zr, Address(base, i * wordSize));
|
||||
}
|
||||
Label loop;
|
||||
Register cnt_reg = rscratch1;
|
||||
Register loop_base = rscratch2;
|
||||
cnt = cnt - remainder;
|
||||
mov(cnt_reg, cnt);
|
||||
// adjust base and prebias by -2 * wordSize so we can pre-increment
|
||||
add(loop_base, base, (remainder - 2) * wordSize);
|
||||
bind(loop);
|
||||
sub(cnt_reg, cnt_reg, 2 * unroll);
|
||||
for (i = 1; i < unroll; i++) {
|
||||
stp(zr, zr, Address(loop_base, 2 * i * wordSize));
|
||||
}
|
||||
stp(zr, zr, Address(pre(loop_base, 2 * unroll * wordSize)));
|
||||
cbnz(cnt_reg, loop);
|
||||
mov(r10, base); mov(r11, cnt);
|
||||
result = zero_words(r10, r11);
|
||||
}
|
||||
BLOCK_COMMENT("} zero_words");
|
||||
return result;
|
||||
}
|
||||
|
||||
// Zero blocks of memory by using DC ZVA.
|
||||
|
||||
@@ -525,7 +525,7 @@ public:
|
||||
|
||||
void movptr(Register r, uintptr_t imm64);
|
||||
|
||||
void mov(FloatRegister Vd, SIMD_Arrangement T, uint32_t imm32);
|
||||
void mov(FloatRegister Vd, SIMD_Arrangement T, uint64_t imm64);
|
||||
|
||||
void mov(FloatRegister Vd, SIMD_Arrangement T, FloatRegister Vn) {
|
||||
orr(Vd, T, Vn, Vn);
|
||||
@@ -907,7 +907,6 @@ public:
|
||||
Register t2, // temp register
|
||||
Label& slow_case // continuation point if fast allocation fails
|
||||
);
|
||||
void zero_memory(Register addr, Register len, Register t1);
|
||||
void verify_tlab();
|
||||
|
||||
// interface method calling
|
||||
@@ -1087,13 +1086,18 @@ public:
|
||||
return ReservedCodeCacheSize > branch_range;
|
||||
}
|
||||
|
||||
// Check if branches to the the non nmethod section require a far jump
|
||||
static bool codestub_branch_needs_far_jump() {
|
||||
return CodeCache::max_distance_to_non_nmethod() > branch_range;
|
||||
}
|
||||
|
||||
// Jumps that can reach anywhere in the code cache.
|
||||
// Trashes tmp.
|
||||
void far_call(Address entry, CodeBuffer *cbuf = NULL, Register tmp = rscratch1);
|
||||
void far_jump(Address entry, CodeBuffer *cbuf = NULL, Register tmp = rscratch1);
|
||||
int far_jump(Address entry, CodeBuffer *cbuf = NULL, Register tmp = rscratch1);
|
||||
|
||||
static int far_branch_size() {
|
||||
if (far_branches()) {
|
||||
static int far_codestub_branch_size() {
|
||||
if (codestub_branch_needs_far_jump()) {
|
||||
return 3 * 4; // adrp, add, br
|
||||
} else {
|
||||
return 4;
|
||||
@@ -1258,7 +1262,7 @@ public:
|
||||
int elem_size);
|
||||
|
||||
void fill_words(Register base, Register cnt, Register value);
|
||||
void zero_words(Register base, uint64_t cnt);
|
||||
address zero_words(Register base, uint64_t cnt);
|
||||
address zero_words(Register ptr, Register cnt);
|
||||
void zero_dcache_blocks(Register base, Register cnt);
|
||||
|
||||
|
||||
@@ -4752,7 +4752,7 @@ class StubGenerator: public StubCodeGenerator {
|
||||
|
||||
__ enter();
|
||||
|
||||
Label RET_TRUE, RET_TRUE_NO_POP, RET_FALSE, ALIGNED, LOOP16, CHECK_16, DONE,
|
||||
Label RET_TRUE, RET_TRUE_NO_POP, RET_FALSE, ALIGNED, LOOP16, CHECK_16,
|
||||
LARGE_LOOP, POST_LOOP16, LEN_OVER_15, LEN_OVER_8, POST_LOOP16_LOAD_TAIL;
|
||||
|
||||
__ cmp(len, (u1)15);
|
||||
@@ -4894,10 +4894,6 @@ class StubGenerator: public StubCodeGenerator {
|
||||
__ mov(result, 1);
|
||||
__ ret(lr);
|
||||
|
||||
__ bind(DONE);
|
||||
__ pop(spilled_regs, sp);
|
||||
__ leave();
|
||||
__ ret(lr);
|
||||
return entry;
|
||||
}
|
||||
|
||||
@@ -6129,6 +6125,7 @@ class StubGenerator: public StubCodeGenerator {
|
||||
* c_rarg3 - dest_start
|
||||
* c_rarg4 - dest_offset
|
||||
* c_rarg5 - isURL
|
||||
* c_rarg6 - isMIME
|
||||
*
|
||||
*/
|
||||
address generate_base64_decodeBlock() {
|
||||
@@ -6211,12 +6208,13 @@ class StubGenerator: public StubCodeGenerator {
|
||||
StubCodeMark mark(this, "StubRoutines", "decodeBlock");
|
||||
address start = __ pc();
|
||||
|
||||
Register src = c_rarg0; // source array
|
||||
Register soff = c_rarg1; // source start offset
|
||||
Register send = c_rarg2; // source end offset
|
||||
Register dst = c_rarg3; // dest array
|
||||
Register doff = c_rarg4; // position for writing to dest array
|
||||
Register isURL = c_rarg5; // Base64 or URL character set
|
||||
Register src = c_rarg0; // source array
|
||||
Register soff = c_rarg1; // source start offset
|
||||
Register send = c_rarg2; // source end offset
|
||||
Register dst = c_rarg3; // dest array
|
||||
Register doff = c_rarg4; // position for writing to dest array
|
||||
Register isURL = c_rarg5; // Base64 or URL character set
|
||||
Register isMIME = c_rarg6; // Decoding MIME block - unused in this implementation
|
||||
|
||||
Register length = send; // reuse send as length of source data to process
|
||||
|
||||
|
||||
@@ -266,7 +266,7 @@ void VM_Version::initialize() {
|
||||
UseAES = true;
|
||||
}
|
||||
if (FLAG_IS_DEFAULT(UseAESCTRIntrinsics)) {
|
||||
FLAG_SET_DEFAULT(UseAESCTRIntrinsics, false);
|
||||
FLAG_SET_DEFAULT(UseAESCTRIntrinsics, true);
|
||||
}
|
||||
} else {
|
||||
if (UseAES) {
|
||||
|
||||
@@ -1483,6 +1483,9 @@ void LIR_Assembler::cmove(LIR_Condition condition, LIR_Opr opr1, LIR_Opr opr2, L
|
||||
__ mov_double(result->as_double_reg(), c->as_jdouble(), acond);
|
||||
#endif // __SOFTFP__
|
||||
break;
|
||||
case T_METADATA:
|
||||
__ mov_metadata(result->as_register(), c->as_metadata(), acond);
|
||||
break;
|
||||
default:
|
||||
ShouldNotReachHere();
|
||||
}
|
||||
|
||||
@@ -635,17 +635,17 @@ class StubGenerator: public StubCodeGenerator {
|
||||
Register result_hi = R1;
|
||||
Register src = R0;
|
||||
|
||||
if (!os::is_MP()) {
|
||||
__ ldmia(src, RegisterSet(result_lo, result_hi));
|
||||
__ bx(LR);
|
||||
} else if (VM_Version::supports_ldrexd()) {
|
||||
if (VM_Version::supports_ldrexd()) {
|
||||
__ ldrexd(result_lo, Address(src));
|
||||
__ clrex(); // FIXME: safe to remove?
|
||||
__ bx(LR);
|
||||
} else if (!os::is_MP()) {
|
||||
// Last-ditch attempt: we are allegedly running on uni-processor.
|
||||
// Load the thing non-atomically and hope for the best.
|
||||
__ ldmia(src, RegisterSet(result_lo, result_hi));
|
||||
} else {
|
||||
__ stop("Atomic load(jlong) unsupported on this platform");
|
||||
__ bx(LR);
|
||||
}
|
||||
__ bx(LR);
|
||||
|
||||
return start;
|
||||
}
|
||||
@@ -662,10 +662,7 @@ class StubGenerator: public StubCodeGenerator {
|
||||
Register scratch_hi = R3; /* After load from stack */
|
||||
Register result = R3;
|
||||
|
||||
if (!os::is_MP()) {
|
||||
__ stmia(dest, RegisterSet(newval_lo, newval_hi));
|
||||
__ bx(LR);
|
||||
} else if (VM_Version::supports_ldrexd()) {
|
||||
if (VM_Version::supports_ldrexd()) {
|
||||
__ mov(Rtemp, dest); // get dest to Rtemp
|
||||
Label retry;
|
||||
__ bind(retry);
|
||||
@@ -673,11 +670,14 @@ class StubGenerator: public StubCodeGenerator {
|
||||
__ strexd(result, R0, Address(Rtemp));
|
||||
__ rsbs(result, result, 1);
|
||||
__ b(retry, eq);
|
||||
__ bx(LR);
|
||||
} else if (!os::is_MP()) {
|
||||
// Last-ditch attempt: we are allegedly running on uni-processor.
|
||||
// Store the thing non-atomically and hope for the best.
|
||||
__ stmia(dest, RegisterSet(newval_lo, newval_hi));
|
||||
} else {
|
||||
__ stop("Atomic store(jlong) unsupported on this platform");
|
||||
__ bx(LR);
|
||||
}
|
||||
__ bx(LR);
|
||||
|
||||
return start;
|
||||
}
|
||||
|
||||
@@ -490,29 +490,30 @@ void TemplateTable::ldc2_w() {
|
||||
__ add(Rtemp, Rtags, tags_offset);
|
||||
__ ldrb(Rtemp, Address(Rtemp, Rindex));
|
||||
|
||||
Label Condy, exit;
|
||||
#ifdef __ABI_HARD__
|
||||
Label NotDouble;
|
||||
Label Done, NotLong, NotDouble;
|
||||
__ cmp(Rtemp, JVM_CONSTANT_Double);
|
||||
__ b(NotDouble, ne);
|
||||
#ifdef __SOFTFP__
|
||||
__ ldr(R0_tos_lo, Address(Rbase, base_offset + 0 * wordSize));
|
||||
__ ldr(R1_tos_hi, Address(Rbase, base_offset + 1 * wordSize));
|
||||
#else // !__SOFTFP__
|
||||
__ ldr_double(D0_tos, Address(Rbase, base_offset));
|
||||
|
||||
#endif // __SOFTFP__
|
||||
__ push(dtos);
|
||||
__ b(exit);
|
||||
__ b(Done);
|
||||
__ bind(NotDouble);
|
||||
#endif
|
||||
|
||||
__ cmp(Rtemp, JVM_CONSTANT_Long);
|
||||
__ b(Condy, ne);
|
||||
__ b(NotLong, ne);
|
||||
__ ldr(R0_tos_lo, Address(Rbase, base_offset + 0 * wordSize));
|
||||
__ ldr(R1_tos_hi, Address(Rbase, base_offset + 1 * wordSize));
|
||||
__ push(ltos);
|
||||
__ b(exit);
|
||||
__ b(Done);
|
||||
__ bind(NotLong);
|
||||
|
||||
__ bind(Condy);
|
||||
condy_helper(exit);
|
||||
condy_helper(Done);
|
||||
|
||||
__ bind(exit);
|
||||
__ bind(Done);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -6834,6 +6834,9 @@ instruct decodeN_Disjoint_notNull_Ex(iRegPdst dst, iRegNsrc src) %{
|
||||
n2->_opnds[2] = op_dst;
|
||||
n2->_bottom_type = _bottom_type;
|
||||
|
||||
assert(ra_->is_oop(this) == true, "A decodeN node must produce an oop!");
|
||||
ra_->set_oop(n2, true);
|
||||
|
||||
ra_->set_pair(n1->_idx, ra_->get_reg_second(this), ra_->get_reg_first(this));
|
||||
ra_->set_pair(n2->_idx, ra_->get_reg_second(this), ra_->get_reg_first(this));
|
||||
|
||||
|
||||
@@ -3757,6 +3757,7 @@ class StubGenerator: public StubCodeGenerator {
|
||||
Register d = R6_ARG4; // destination address
|
||||
Register dp = R7_ARG5; // destination offset
|
||||
Register isURL = R8_ARG6; // boolean, if non-zero indicates use of RFC 4648 base64url encoding
|
||||
Register isMIME = R9_ARG7; // boolean, if non-zero indicates use of RFC 2045 MIME encoding - not used
|
||||
|
||||
// Local variables
|
||||
Register const_ptr = R9; // used for loading constants
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user