mirror of
https://github.com/JetBrains/JetBrainsRuntime.git
synced 2025-12-09 02:49:40 +01:00
Compare commits
760 Commits
jb21.0.7-b
...
jdk-21+18
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b9bdbe9ab3 | ||
|
|
82e8b0332b | ||
|
|
27cf63853c | ||
|
|
42fa000a7d | ||
|
|
475e9a7cad | ||
|
|
1de772cd89 | ||
|
|
d9db90636f | ||
|
|
c789d24039 | ||
|
|
c6d7cf6b48 | ||
|
|
ce4b995556 | ||
|
|
12946f5748 | ||
|
|
9486969bd3 | ||
|
|
628a3f173a | ||
|
|
7a5597c34f | ||
|
|
e5ce7d9e43 | ||
|
|
cd7d53c88c | ||
|
|
2586f36120 | ||
|
|
39398075b7 | ||
|
|
137513025d | ||
|
|
4485737e9b | ||
|
|
0ff2ff6789 | ||
|
|
2aeb0e5267 | ||
|
|
42965d390c | ||
|
|
a43a17c8ea | ||
|
|
ba90dc7795 | ||
|
|
76975da59e | ||
|
|
0d45a524b3 | ||
|
|
0243da2e4a | ||
|
|
a8e3a2dd2f | ||
|
|
db174a15d1 | ||
|
|
969a6b9fd7 | ||
|
|
97276859ab | ||
|
|
50d7335206 | ||
|
|
ec9d816abf | ||
|
|
9e20382311 | ||
|
|
f45b01f883 | ||
|
|
a8871f5d26 | ||
|
|
6b2a86a65e | ||
|
|
dc81603cbf | ||
|
|
c67bbcea92 | ||
|
|
ce6e7461dc | ||
|
|
314e9b3dcc | ||
|
|
0a34018797 | ||
|
|
8db1dd0258 | ||
|
|
1d517afbd4 | ||
|
|
08fbb7bb5e | ||
|
|
536ad9df1a | ||
|
|
ddd50d0db3 | ||
|
|
ce10460e94 | ||
|
|
e52a2aeeac | ||
|
|
6580c4e631 | ||
|
|
b5ea140dff | ||
|
|
a6a3cf485d | ||
|
|
35d22930bb | ||
|
|
5764119024 | ||
|
|
312702567a | ||
|
|
35cb303a2c | ||
|
|
b5d204c3a4 | ||
|
|
507c49a3ab | ||
|
|
39f12a88e7 | ||
|
|
44f33ad1a9 | ||
|
|
ee3023359c | ||
|
|
5919fad1f4 | ||
|
|
022290bdbd | ||
|
|
2e59d21e56 | ||
|
|
f69d88c57f | ||
|
|
a3137c750f | ||
|
|
78ff454f19 | ||
|
|
9f587d272f | ||
|
|
4bf1987856 | ||
|
|
2aec910ea4 | ||
|
|
0e0c022b1f | ||
|
|
b659c35395 | ||
|
|
83a924a100 | ||
|
|
0ec3d2e363 | ||
|
|
ed9592c6e8 | ||
|
|
15fa78e6e7 | ||
|
|
7cf24d1c06 | ||
|
|
a324fa2639 | ||
|
|
3399fbf9fa | ||
|
|
94a05e0caa | ||
|
|
7c650489d2 | ||
|
|
dd59471798 | ||
|
|
2ee4245105 | ||
|
|
7baccd9ee2 | ||
|
|
3ef834fc6f | ||
|
|
c59411929d | ||
|
|
62bd2ebac4 | ||
|
|
f9ed825266 | ||
|
|
73a084c24e | ||
|
|
7b922104f5 | ||
|
|
5881b099f6 | ||
|
|
7ca2aec34c | ||
|
|
ac01e24eaf | ||
|
|
a663d5d694 | ||
|
|
24c6af0637 | ||
|
|
a7546b3a16 | ||
|
|
ac898e9051 | ||
|
|
a1a9ec6e46 | ||
|
|
c6bd489cc8 | ||
|
|
ccbb0e8d89 | ||
|
|
9ce5fdc962 | ||
|
|
b062b1bd81 | ||
|
|
df819cfa5a | ||
|
|
312bbe7d75 | ||
|
|
50e31e06d7 | ||
|
|
85e3974470 | ||
|
|
40aea04680 | ||
|
|
9b9b5a7a5c | ||
|
|
dd7ca757a7 | ||
|
|
f9827ad172 | ||
|
|
6010de0f1d | ||
|
|
127afd3445 | ||
|
|
33d09e587a | ||
|
|
790acedaab | ||
|
|
2e91585ac9 | ||
|
|
094e03de6a | ||
|
|
4de24cdbe6 | ||
|
|
336a23e70a | ||
|
|
ecec611af6 | ||
|
|
aa762102e9 | ||
|
|
b8c748dbe4 | ||
|
|
41a3db267d | ||
|
|
34e66ce1ef | ||
|
|
a19b28ab3e | ||
|
|
8eb4e7e07e | ||
|
|
abfb900829 | ||
|
|
a565be4dc5 | ||
|
|
cccb0191a3 | ||
|
|
bdbf8fc61d | ||
|
|
4a5d7ca7d9 | ||
|
|
dae1ab3aad | ||
|
|
e012685051 | ||
|
|
fe42312f9b | ||
|
|
2f36eb0121 | ||
|
|
049b953f8f | ||
|
|
345669c29d | ||
|
|
dea9db2d0a | ||
|
|
c8f3a97d46 | ||
|
|
7fe5bd2bec | ||
|
|
787832a586 | ||
|
|
a144c713b7 | ||
|
|
d8158897c3 | ||
|
|
5f7b4b8e75 | ||
|
|
83cf28f996 | ||
|
|
05cc02b243 | ||
|
|
d2df36b073 | ||
|
|
1d7bb1ffa0 | ||
|
|
9df2060059 | ||
|
|
b261e6c43f | ||
|
|
2c38e67b29 | ||
|
|
f0dba218ac | ||
|
|
77811fa39b | ||
|
|
2d607c9cd1 | ||
|
|
b3ff8d1c89 | ||
|
|
b524a74165 | ||
|
|
9643f654da | ||
|
|
69152c3b18 | ||
|
|
438c969b7b | ||
|
|
d063b8964f | ||
|
|
be764a711c | ||
|
|
34f4d7f4ad | ||
|
|
42df1a99b7 | ||
|
|
e3855d0054 | ||
|
|
67274906ae | ||
|
|
f07decb74b | ||
|
|
014c658708 | ||
|
|
2fa09333ef | ||
|
|
e56bcb04b1 | ||
|
|
09852884cc | ||
|
|
ff368d504e | ||
|
|
96fa2751e8 | ||
|
|
7239150f8a | ||
|
|
3fbbfd1749 | ||
|
|
50a995f03a | ||
|
|
ca745cb426 | ||
|
|
1683a63a7d | ||
|
|
fab23577ab | ||
|
|
1fc218c58b | ||
|
|
c1f5ca115d | ||
|
|
695683b5b1 | ||
|
|
83ce65e12c | ||
|
|
32ef452132 | ||
|
|
927e674c12 | ||
|
|
c90699eae7 | ||
|
|
395a4ce0dd | ||
|
|
60640a216d | ||
|
|
cddaf686e1 | ||
|
|
a06f46196a | ||
|
|
7987ad427b | ||
|
|
3c4cd50e3c | ||
|
|
4f625c0b9a | ||
|
|
426025aab4 | ||
|
|
6aec6f3a84 | ||
|
|
63ce88b5fb | ||
|
|
554bccf046 | ||
|
|
3b88b2a9f8 | ||
|
|
f8e8fc7e29 | ||
|
|
14b970dc9e | ||
|
|
80e2d52f76 | ||
|
|
6c3b10fb1d | ||
|
|
87b314a985 | ||
|
|
2f34687ec1 | ||
|
|
6b2f34f88a | ||
|
|
138cdc9283 | ||
|
|
46b0602376 | ||
|
|
8d423f7305 | ||
|
|
20830883df | ||
|
|
0712adc2dd | ||
|
|
de1c12ed63 | ||
|
|
10fa7d1f9b | ||
|
|
4acf20df7b | ||
|
|
a5ffa079a0 | ||
|
|
65e01da925 | ||
|
|
38e17148fa | ||
|
|
765a94258d | ||
|
|
3f59b75bd8 | ||
|
|
501b606816 | ||
|
|
97649489d0 | ||
|
|
57276101df | ||
|
|
d8ba227aa4 | ||
|
|
9a8a60f7d6 | ||
|
|
f96aee7401 | ||
|
|
4ec720db9f | ||
|
|
13dd19aac2 | ||
|
|
d61de141eb | ||
|
|
941a7ac7da | ||
|
|
ac6af6a640 | ||
|
|
dd23ee9e87 | ||
|
|
6f67abd352 | ||
|
|
568dd57d0d | ||
|
|
af0504e3f3 | ||
|
|
3859faf183 | ||
|
|
f37674a8f7 | ||
|
|
7f9e691630 | ||
|
|
51035a75e4 | ||
|
|
46cca1a4c5 | ||
|
|
6fa25cc134 | ||
|
|
4b8f7db6be | ||
|
|
c00d0885ae | ||
|
|
147f3473d4 | ||
|
|
bf917ba6af | ||
|
|
63d4afbeb1 | ||
|
|
e2cfcfbfa9 | ||
|
|
af4d5600e3 | ||
|
|
c4338620b7 | ||
|
|
91f407d6fe | ||
|
|
e73411a235 | ||
|
|
a2d8f634de | ||
|
|
37774556da | ||
|
|
760c0128a4 | ||
|
|
75168eaca3 | ||
|
|
4154a980ca | ||
|
|
ddf1e34c1a | ||
|
|
358c61b58d | ||
|
|
c74507eeb3 | ||
|
|
ca94287d2b | ||
|
|
eda0065107 | ||
|
|
c039d26603 | ||
|
|
0156909ab3 | ||
|
|
0deb648985 | ||
|
|
019fcd819c | ||
|
|
d6f20e2fbf | ||
|
|
d788a1bb80 | ||
|
|
bbde2158d1 | ||
|
|
1c04686cd6 | ||
|
|
c65bb2c58e | ||
|
|
4bf1fbb06d | ||
|
|
c4df9b5f17 | ||
|
|
a6b72f56f5 | ||
|
|
a72ba38347 | ||
|
|
bbca7c3ede | ||
|
|
f593a6b52e | ||
|
|
bc0ed730f2 | ||
|
|
2d0d057d66 | ||
|
|
42723dcb18 | ||
|
|
19f2edd9b7 | ||
|
|
622f239448 | ||
|
|
4c8c9935eb | ||
|
|
4ed7350573 | ||
|
|
eb73fa833c | ||
|
|
80e979720a | ||
|
|
c396f1ed8b | ||
|
|
ded6a81319 | ||
|
|
652bda0af8 | ||
|
|
450567031e | ||
|
|
c09f83ec25 | ||
|
|
e339e183c1 | ||
|
|
033c0b17cb | ||
|
|
7503ecc0f1 | ||
|
|
f8482c20f4 | ||
|
|
c56f011baa | ||
|
|
254288a518 | ||
|
|
8f5bb538ab | ||
|
|
b085ab9316 | ||
|
|
bfb812a8ff | ||
|
|
932be3542d | ||
|
|
02a4ee206a | ||
|
|
4486f1b720 | ||
|
|
8d2ebf248e | ||
|
|
d5a150706e | ||
|
|
384a8b85a7 | ||
|
|
6dd6c15ed4 | ||
|
|
cb4ae1922d | ||
|
|
b2639e1d62 | ||
|
|
620564ac61 | ||
|
|
9d518c528b | ||
|
|
ebac7eec8e | ||
|
|
36995c5a75 | ||
|
|
6b42275461 | ||
|
|
8eed7dea7b | ||
|
|
a487a270dc | ||
|
|
2e987d798a | ||
|
|
2f23c80e0d | ||
|
|
96889bf3e4 | ||
|
|
f629152021 | ||
|
|
b5108b4f37 | ||
|
|
7dbab81d3c | ||
|
|
d4eb395335 | ||
|
|
dfc7214a3e | ||
|
|
7277bb19f1 | ||
|
|
b7945bc9e5 | ||
|
|
eefbaa2956 | ||
|
|
42dd9077a0 | ||
|
|
2b81faeb35 | ||
|
|
be08a256ab | ||
|
|
1ae69e3e91 | ||
|
|
116627dfb0 | ||
|
|
824a5e4c60 | ||
|
|
7ad48ea3ad | ||
|
|
35a2969057 | ||
|
|
01e6920581 | ||
|
|
3d77e217b2 | ||
|
|
e3777b0c49 | ||
|
|
349139b2cc | ||
|
|
714b5f036f | ||
|
|
065d3e0d58 | ||
|
|
cd41c69d44 | ||
|
|
f5c8b68c1c | ||
|
|
617c15f5a1 | ||
|
|
f81e1def8f | ||
|
|
45809fd0c0 | ||
|
|
baf11e734f | ||
|
|
830fd41346 | ||
|
|
4e631fa43f | ||
|
|
10f1674625 | ||
|
|
9f9ab02ff6 | ||
|
|
a00f5d24d3 | ||
|
|
da044dd569 | ||
|
|
c466cdf973 | ||
|
|
55aa122462 | ||
|
|
ec1eb00ed3 | ||
|
|
31680b2bcf | ||
|
|
0cc0f063e2 | ||
|
|
43eca1dcb1 | ||
|
|
b6d70f2c49 | ||
|
|
2bb990edde | ||
|
|
c073ef2ed5 | ||
|
|
49181b81dd | ||
|
|
7bbc5e0efb | ||
|
|
a8f662ecb2 | ||
|
|
5685107579 | ||
|
|
671a45219f | ||
|
|
a95bc7acd0 | ||
|
|
f835aaafc7 | ||
|
|
466ffebcae | ||
|
|
431e702b67 | ||
|
|
4cf4c599b9 | ||
|
|
8e41bf222f | ||
|
|
805a4e6806 | ||
|
|
25e7ac226a | ||
|
|
3018b4705e | ||
|
|
b575e54bc9 | ||
|
|
c183fce954 | ||
|
|
31e1e3975b | ||
|
|
1148a659a8 | ||
|
|
d20bde29f2 | ||
|
|
c313e1ac7b | ||
|
|
fbc76c2c78 | ||
|
|
a06426a52f | ||
|
|
98a7a60fcb | ||
|
|
0a4d54f7ce | ||
|
|
2116928528 | ||
|
|
d7f4221bfe | ||
|
|
94de0a73de | ||
|
|
bf16b5b988 | ||
|
|
6f54eda4a4 | ||
|
|
a3358b10ca | ||
|
|
206661d45f | ||
|
|
9dd7b87997 | ||
|
|
c26e1d0148 | ||
|
|
548d552bc1 | ||
|
|
f2a36b4b52 | ||
|
|
a32ee5dd8b | ||
|
|
01312a002b | ||
|
|
6d30bbe62c | ||
|
|
de9f3b6aac | ||
|
|
b9951dd639 | ||
|
|
75d630621c | ||
|
|
b1d89f3066 | ||
|
|
0f26d09da8 | ||
|
|
e26cc52600 | ||
|
|
d06308c54a | ||
|
|
8b740b4609 | ||
|
|
562c8fc668 | ||
|
|
e930b63a8f | ||
|
|
af0ca78a8f | ||
|
|
8b0eb7299a | ||
|
|
5726d31e56 | ||
|
|
a9dba56568 | ||
|
|
769e740181 | ||
|
|
f9aadb943c | ||
|
|
595645c76d | ||
|
|
68b5eef44f | ||
|
|
3227b49a7a | ||
|
|
cdcf5c1ed8 | ||
|
|
4655b790d0 | ||
|
|
1e9942aa11 | ||
|
|
7e01534590 | ||
|
|
713def0bf2 | ||
|
|
34a92466a6 | ||
|
|
a7e308ab6e | ||
|
|
dd79410824 | ||
|
|
dc523a58a6 | ||
|
|
5e232cf0a9 | ||
|
|
8cfd74f76a | ||
|
|
02875e77fd | ||
|
|
ad326fc62b | ||
|
|
05ceb37a2c | ||
|
|
25de2228ac | ||
|
|
5b43804b79 | ||
|
|
f813dc7183 | ||
|
|
404d5bddb9 | ||
|
|
d287a5e9d8 | ||
|
|
ddcb369cea | ||
|
|
56512cfe1f | ||
|
|
8eaf84f094 | ||
|
|
d988252378 | ||
|
|
afda8fbf0b | ||
|
|
1d071d0817 | ||
|
|
09d469e5ad | ||
|
|
21a6ab1e3e | ||
|
|
5fa9bd4582 | ||
|
|
9b10c69475 | ||
|
|
d7298245d6 | ||
|
|
5f1108f8f0 | ||
|
|
32f4d8b5ea | ||
|
|
9f9d678591 | ||
|
|
b5b5cba7fe | ||
|
|
4d4eadeae3 | ||
|
|
f1f4e1de44 | ||
|
|
acf899612f | ||
|
|
ac3ab5b007 | ||
|
|
45a616a891 | ||
|
|
43288bbd68 | ||
|
|
008c5eb4dd | ||
|
|
52d3008773 | ||
|
|
3f2d929dc3 | ||
|
|
7fbfc884f0 | ||
|
|
97c25df4b8 | ||
|
|
94eda53d98 | ||
|
|
c51d40cfeb | ||
|
|
f64ed09e9a | ||
|
|
ccfe1675a2 | ||
|
|
cfb0a25a4e | ||
|
|
a97271e3b5 | ||
|
|
cac81ddc92 | ||
|
|
877ab659b9 | ||
|
|
ae8730fd62 | ||
|
|
5977f266d0 | ||
|
|
dccfe8a2ee | ||
|
|
8e2014527e | ||
|
|
bdffe460cd | ||
|
|
ec4e8aa4f7 | ||
|
|
5753ab5c47 | ||
|
|
fa1cebedb5 | ||
|
|
5f153e056b | ||
|
|
d00a767047 | ||
|
|
15c76e4c02 | ||
|
|
3eff1a0225 | ||
|
|
10d6a8e66a | ||
|
|
148900c2dc | ||
|
|
1bb39a95eb | ||
|
|
9fdbf3cfc4 | ||
|
|
629a9053f0 | ||
|
|
5b2e2e4695 | ||
|
|
cd4b88d0d2 | ||
|
|
ae290541d1 | ||
|
|
a04b1049ff | ||
|
|
99443142cc | ||
|
|
a50dc67a4f | ||
|
|
40c5edfcc4 | ||
|
|
29ee7c3b70 | ||
|
|
e3016c1142 | ||
|
|
ae797c64af | ||
|
|
5085bd5f05 | ||
|
|
379f2061aa | ||
|
|
80739e11b5 | ||
|
|
7449e1c661 | ||
|
|
c6de66c03f | ||
|
|
cbdc7a6f88 | ||
|
|
8bf084ced9 | ||
|
|
ff364c1906 | ||
|
|
df9aad018a | ||
|
|
d23a8bfb14 | ||
|
|
339ca88783 | ||
|
|
e1745bc981 | ||
|
|
c961a918ad | ||
|
|
35003b5f7b | ||
|
|
f3abc4063d | ||
|
|
45d8a175b1 | ||
|
|
e7113dc8a5 | ||
|
|
843d632ad4 | ||
|
|
d4dcba0463 | ||
|
|
2c7d2c0ea9 | ||
|
|
0b63557941 | ||
|
|
32247c336a | ||
|
|
0926d0cbce | ||
|
|
b51ea4204e | ||
|
|
fb13063943 | ||
|
|
c9afd55ed6 | ||
|
|
72de24e59a | ||
|
|
3091744fff | ||
|
|
dbb562d3b1 | ||
|
|
4619e8bae8 | ||
|
|
99f5687eb1 | ||
|
|
dc08216f0e | ||
|
|
d10d40a5b2 | ||
|
|
394eac850c | ||
|
|
6e19387f29 | ||
|
|
9fc518ff8c | ||
|
|
05faa7321b | ||
|
|
4c985e527a | ||
|
|
6af17c1b7d | ||
|
|
c1e77e0564 | ||
|
|
8b86e1ee11 | ||
|
|
4c5d9cfc64 | ||
|
|
2451c5a462 | ||
|
|
539a4951ee | ||
|
|
6b07243f56 | ||
|
|
3aeefbf1de | ||
|
|
1fdaf252b6 | ||
|
|
65da2c5d2d | ||
|
|
7e47d51e10 | ||
|
|
881517586d | ||
|
|
a10d5ac61b | ||
|
|
50dc041ee6 | ||
|
|
61e8867591 | ||
|
|
6423065b7d | ||
|
|
dc5ea6aeb5 | ||
|
|
4a415ad584 | ||
|
|
30302d185a | ||
|
|
e144783eb2 | ||
|
|
5feb13b55d | ||
|
|
1e3c9fd67e | ||
|
|
14a014d430 | ||
|
|
bca60f4767 | ||
|
|
f7f10367b2 | ||
|
|
784f7b1462 | ||
|
|
54603aa1b7 | ||
|
|
4c169d2d7c | ||
|
|
b527edd338 | ||
|
|
42330d28da | ||
|
|
a253b46021 | ||
|
|
55e6bb6b85 | ||
|
|
f5a12768fb | ||
|
|
2fe4e5f8d7 | ||
|
|
f2b03f9a2c | ||
|
|
fbc036e745 | ||
|
|
dbb5581eba | ||
|
|
306134dcf9 | ||
|
|
a2c5a4ac9e | ||
|
|
db217c9ad6 | ||
|
|
2613b94f28 | ||
|
|
d2660a6915 | ||
|
|
1794f49751 | ||
|
|
a43931b79c | ||
|
|
2fb1e3b7e7 | ||
|
|
3a9f491caa | ||
|
|
1dbd18ac63 | ||
|
|
2e78d838a5 | ||
|
|
17e3769ed7 | ||
|
|
b4ea80731c | ||
|
|
ccf3340e82 | ||
|
|
83d77b1cbb | ||
|
|
7d8b8ba9c4 | ||
|
|
8f7c4969c2 | ||
|
|
1a07871454 | ||
|
|
796cdd52f5 | ||
|
|
6b24b4a70f | ||
|
|
4d33fbd582 | ||
|
|
f612dcfebe | ||
|
|
6397cb611a | ||
|
|
71dd7eaf7f | ||
|
|
4b6acad0bd | ||
|
|
a2471b37e3 | ||
|
|
58ca711a97 | ||
|
|
2cf8b8607d | ||
|
|
f113b04ab9 | ||
|
|
1bab93b2d0 | ||
|
|
221f34634d | ||
|
|
23e9d9d3ee | ||
|
|
fcaf871408 | ||
|
|
07e976ac26 | ||
|
|
8de841dd19 | ||
|
|
f893d2315d | ||
|
|
d7ada66129 | ||
|
|
5d7e7e28b1 | ||
|
|
b0e0f37d73 | ||
|
|
1a62a1229a | ||
|
|
ee37af47cd | ||
|
|
83bea26df4 | ||
|
|
25bfed3b12 | ||
|
|
0d5f7439a4 | ||
|
|
adc29c36e1 | ||
|
|
575484806c | ||
|
|
63ef214328 | ||
|
|
30b2ac4a28 | ||
|
|
861eea9bd4 | ||
|
|
60a358172a | ||
|
|
3f3a1f534b | ||
|
|
5e1d1b7940 | ||
|
|
7f35389533 | ||
|
|
b6ecca1268 | ||
|
|
f54e1080c5 | ||
|
|
cba817ae59 | ||
|
|
2c52cf0746 | ||
|
|
180b94c73e | ||
|
|
f319c92bd0 | ||
|
|
e950b95486 | ||
|
|
dcd773ac5c | ||
|
|
46f25250bd | ||
|
|
ce6de37172 | ||
|
|
729c26f70e | ||
|
|
ef1f7bd3b8 | ||
|
|
1ea5f9f7cd | ||
|
|
dfce4e1943 | ||
|
|
5489c821dc | ||
|
|
10b4cc9eb4 | ||
|
|
db483a38a8 | ||
|
|
02eb240c71 | ||
|
|
92dfa1175e | ||
|
|
8b20aa919b | ||
|
|
644fe0a994 | ||
|
|
60e6378925 | ||
|
|
fef1910277 | ||
|
|
622f5604c1 | ||
|
|
9fd77c7b9b | ||
|
|
f35cf79b51 | ||
|
|
63a3501273 | ||
|
|
9145670354 | ||
|
|
aa10f0d3ee | ||
|
|
16a4f02f2d | ||
|
|
17274c72a9 | ||
|
|
29f392e434 | ||
|
|
43c71ddf92 | ||
|
|
91a2b5ec6f | ||
|
|
bb3dfd6adb | ||
|
|
36a0822633 | ||
|
|
0bf3a53e01 | ||
|
|
c7517b3dec | ||
|
|
9a797228f3 | ||
|
|
e47e9ec05b | ||
|
|
7cf7e0a20b | ||
|
|
e731695217 | ||
|
|
b5a7426996 | ||
|
|
6ac5e05c58 | ||
|
|
71cf7c4409 | ||
|
|
98716e2b25 | ||
|
|
303c61f3ca | ||
|
|
7c40c8af69 | ||
|
|
593bec685e | ||
|
|
e971f90a0b | ||
|
|
eaae0baeba | ||
|
|
7e08275cc1 | ||
|
|
5c0f50bc01 | ||
|
|
743a85db06 | ||
|
|
432cf68c4d | ||
|
|
2009dc2b73 | ||
|
|
7abe26935a | ||
|
|
d6716d2e54 | ||
|
|
53be5dc486 | ||
|
|
78f71b4d41 | ||
|
|
f82385e587 | ||
|
|
43cf8b3d80 | ||
|
|
6b082fb3c6 | ||
|
|
7c60b9c98f | ||
|
|
86b9fce980 | ||
|
|
03d613bbab | ||
|
|
a263f28368 | ||
|
|
a917fb3fcf | ||
|
|
6120319afd | ||
|
|
fef3eab9bd | ||
|
|
ea5bfea333 | ||
|
|
edf238b65e | ||
|
|
cd77fcfb5f | ||
|
|
57c9bc39cd | ||
|
|
57fde75b2a | ||
|
|
b8c9d6cdf6 | ||
|
|
dc55a7fc87 | ||
|
|
c4ffe4bf63 | ||
|
|
4f1cffd52c | ||
|
|
c91cd2814b | ||
|
|
47ca5773a5 | ||
|
|
49eb68ba95 | ||
|
|
655a71277d | ||
|
|
b242eef93e | ||
|
|
4ce493f09e | ||
|
|
a39cf2e3b2 | ||
|
|
de80dd9c15 | ||
|
|
e5042dd483 | ||
|
|
574b48c692 | ||
|
|
90e092280f | ||
|
|
f558a6c599 | ||
|
|
a58fa6e73e | ||
|
|
3cc459b6c2 | ||
|
|
2e3cea01da | ||
|
|
9b911b492f | ||
|
|
c29a136787 | ||
|
|
687a461276 | ||
|
|
84c058bb63 | ||
|
|
e045af4c92 | ||
|
|
53ae4c07fd | ||
|
|
c77f64420a | ||
|
|
519229db3c | ||
|
|
6e2d3c6c45 | ||
|
|
1480d418e3 | ||
|
|
573c316c57 | ||
|
|
3ba156082b | ||
|
|
861e302011 | ||
|
|
50dcc2aec5 | ||
|
|
28f5250fa5 | ||
|
|
0c9658446d | ||
|
|
26b111d714 | ||
|
|
52388179e6 | ||
|
|
11194e8b82 | ||
|
|
33bec20710 | ||
|
|
46bcc4901e | ||
|
|
a9a53f417d | ||
|
|
98a392c4fc | ||
|
|
9ccf8ad91f | ||
|
|
bdcbafb219 | ||
|
|
f1d76fa925 | ||
|
|
9c202a5a8f | ||
|
|
ca73f7e80f | ||
|
|
5b2d430131 | ||
|
|
f7dee77d73 | ||
|
|
ec901f28c3 | ||
|
|
8933c2d06a | ||
|
|
77519e5f4f | ||
|
|
2ef001e097 | ||
|
|
8c2c8b3f7f | ||
|
|
6d4b02b6c9 | ||
|
|
7dfe75cf55 | ||
|
|
66742c83d4 | ||
|
|
7c50ab1612 | ||
|
|
92474f13f0 | ||
|
|
ee5f6e156d | ||
|
|
7f71a1040d | ||
|
|
d782125c8f |
5
.github/workflows/test.yml
vendored
5
.github/workflows/test.yml
vendored
@@ -64,6 +64,7 @@ jobs:
|
|||||||
- 'hs/tier1 gc'
|
- 'hs/tier1 gc'
|
||||||
- 'hs/tier1 runtime'
|
- 'hs/tier1 runtime'
|
||||||
- 'hs/tier1 serviceability'
|
- 'hs/tier1 serviceability'
|
||||||
|
- 'lib-test/tier1'
|
||||||
|
|
||||||
include:
|
include:
|
||||||
- test-name: 'jdk/tier1 part 1'
|
- test-name: 'jdk/tier1 part 1'
|
||||||
@@ -98,6 +99,10 @@ jobs:
|
|||||||
test-suite: 'test/hotspot/jtreg/:tier1_serviceability'
|
test-suite: 'test/hotspot/jtreg/:tier1_serviceability'
|
||||||
debug-suffix: -debug
|
debug-suffix: -debug
|
||||||
|
|
||||||
|
- test-name: 'lib-test/tier1'
|
||||||
|
test-suite: 'test/lib-test/:tier1'
|
||||||
|
debug-suffix: -debug
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: 'Checkout the JDK source'
|
- name: 'Checkout the JDK source'
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
|
|||||||
5
.gitignore
vendored
5
.gitignore
vendored
@@ -18,3 +18,8 @@ NashornProfile.txt
|
|||||||
/src/utils/LogCompilation/target/
|
/src/utils/LogCompilation/target/
|
||||||
/.project/
|
/.project/
|
||||||
/.settings/
|
/.settings/
|
||||||
|
/.project
|
||||||
|
/.classpath
|
||||||
|
/.cproject
|
||||||
|
/compile_commands.json
|
||||||
|
/.cache
|
||||||
|
|||||||
@@ -130,7 +130,7 @@ install_jib() {
|
|||||||
fi
|
fi
|
||||||
# Want to check the filetype using file, to see if we got served a HTML error page.
|
# Want to check the filetype using file, to see if we got served a HTML error page.
|
||||||
# This is sensitive to the filename containing a specific string, but good enough.
|
# This is sensitive to the filename containing a specific string, but good enough.
|
||||||
file ${installed_jib_script}.gz | grep "gzip compressed data" > /dev/null
|
file "${installed_jib_script}.gz" | grep "gzip compressed data" > /dev/null
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
echo "Warning: ${installed_jib_script}.gz is not a gzip file."
|
echo "Warning: ${installed_jib_script}.gz is not a gzip file."
|
||||||
echo "If you are behind a proxy you may need to configure exceptions using no_proxy."
|
echo "If you are behind a proxy you may need to configure exceptions using no_proxy."
|
||||||
|
|||||||
@@ -134,6 +134,8 @@ id="toc-cross-compiling-with-debian-sysroots">Cross compiling with
|
|||||||
Debian sysroots</a></li>
|
Debian sysroots</a></li>
|
||||||
<li><a href="#building-for-armaarch64"
|
<li><a href="#building-for-armaarch64"
|
||||||
id="toc-building-for-armaarch64">Building for ARM/aarch64</a></li>
|
id="toc-building-for-armaarch64">Building for ARM/aarch64</a></li>
|
||||||
|
<li><a href="#building-for-risc-v" id="toc-building-for-risc-v">Building
|
||||||
|
for RISC-V</a></li>
|
||||||
<li><a href="#building-for-musl" id="toc-building-for-musl">Building for
|
<li><a href="#building-for-musl" id="toc-building-for-musl">Building for
|
||||||
musl</a></li>
|
musl</a></li>
|
||||||
<li><a href="#verifying-the-build"
|
<li><a href="#verifying-the-build"
|
||||||
@@ -1087,7 +1089,7 @@ home, i.e. the top directory, containing <code>lib/jtreg.jar</code>
|
|||||||
etc.</p>
|
etc.</p>
|
||||||
<p>The <a href="https://wiki.openjdk.org/display/Adoption">Adoption
|
<p>The <a href="https://wiki.openjdk.org/display/Adoption">Adoption
|
||||||
Group</a> provides recent builds of jtreg <a
|
Group</a> provides recent builds of jtreg <a
|
||||||
href="https://ci.adoptopenjdk.net/view/Dependencies/job/dependency_pipeline/lastSuccessfulBuild/artifact/jtreg/">here</a>.
|
href="https://ci.adoptium.net/view/Dependencies/job/dependency_pipeline/lastSuccessfulBuild/artifact/jtreg/">here</a>.
|
||||||
Download the latest <code>.tar.gz</code> file, unpack it, and point
|
Download the latest <code>.tar.gz</code> file, unpack it, and point
|
||||||
<code>--with-jtreg</code> to the <code>jtreg</code> directory that you
|
<code>--with-jtreg</code> to the <code>jtreg</code> directory that you
|
||||||
just unpacked.</p>
|
just unpacked.</p>
|
||||||
@@ -1376,10 +1378,10 @@ No such file or directory cp: cannot stat
|
|||||||
Debian sysroots</h3>
|
Debian sysroots</h3>
|
||||||
<p>Fortunately, you can create sysroots for foreign architectures with
|
<p>Fortunately, you can create sysroots for foreign architectures with
|
||||||
tools provided by your OS. On Debian/Ubuntu systems, one could use
|
tools provided by your OS. On Debian/Ubuntu systems, one could use
|
||||||
<code>qemu-deboostrap</code> to create the <em>target</em> system
|
<code>debootstrap</code> to create the <em>target</em> system chroot,
|
||||||
chroot, which would have the native libraries and headers specific to
|
which would have the native libraries and headers specific to that
|
||||||
that <em>target</em> system. After that, we can use the cross-compiler
|
<em>target</em> system. After that, we can use the cross-compiler on the
|
||||||
on the <em>build</em> system, pointing into chroot to get the build
|
<em>build</em> system, pointing into chroot to get the build
|
||||||
dependencies right. This allows building for foreign architectures with
|
dependencies right. This allows building for foreign architectures with
|
||||||
native compilation speed.</p>
|
native compilation speed.</p>
|
||||||
<p>For example, cross-compiling to AArch64 from x86_64 could be done
|
<p>For example, cross-compiling to AArch64 from x86_64 could be done
|
||||||
@@ -1389,7 +1391,7 @@ like this:</p>
|
|||||||
<code>apt install g++-aarch64-linux-gnu gcc-aarch64-linux-gnu</code></p></li>
|
<code>apt install g++-aarch64-linux-gnu gcc-aarch64-linux-gnu</code></p></li>
|
||||||
<li><p>Create chroot on the <em>build</em> system, configuring it for
|
<li><p>Create chroot on the <em>build</em> system, configuring it for
|
||||||
<em>target</em> system:
|
<em>target</em> system:
|
||||||
<code>sudo qemu-debootstrap \ --arch=arm64 \ --verbose \ --include=fakeroot,symlinks,build-essential,libx11-dev,libxext-dev,libxrender-dev,libxrandr-dev,libxtst-dev,libxt-dev,libcups2-dev,libfontconfig1-dev,libasound2-dev,libfreetype6-dev,libpng-dev,libffi-dev \ --resolve-deps \ buster \ ~/sysroot-arm64 \ http://httpredir.debian.org/debian/</code></p></li>
|
<code>sudo debootstrap \ --arch=arm64 \ --verbose \ --include=fakeroot,symlinks,build-essential,libx11-dev,libxext-dev,libxrender-dev,libxrandr-dev,libxtst-dev,libxt-dev,libcups2-dev,libfontconfig1-dev,libasound2-dev,libfreetype6-dev,libpng-dev,libffi-dev \ --resolve-deps \ buster \ ~/sysroot-arm64 \ http://httpredir.debian.org/debian/ # If the target architecture is `riscv64`, # the path should be `debian-ports` instead of `debian`.</code></p></li>
|
||||||
<li><p>Make sure the symlinks inside the newly created chroot point to
|
<li><p>Make sure the symlinks inside the newly created chroot point to
|
||||||
proper locations:
|
proper locations:
|
||||||
<code>sudo chroot ~/sysroot-arm64 symlinks -cr .</code></p></li>
|
<code>sudo chroot ~/sysroot-arm64 symlinks -cr .</code></p></li>
|
||||||
@@ -1516,6 +1518,13 @@ are:</p>
|
|||||||
<td style="text-align: left;">sh4-linux-gnu</td>
|
<td style="text-align: left;">sh4-linux-gnu</td>
|
||||||
<td>zero</td>
|
<td>zero</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr class="even">
|
||||||
|
<td style="text-align: left;">riscv64</td>
|
||||||
|
<td style="text-align: left;">sid</td>
|
||||||
|
<td style="text-align: left;">riscv64</td>
|
||||||
|
<td style="text-align: left;">riscv64-linux-gnu</td>
|
||||||
|
<td>(all)</td>
|
||||||
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<h3 id="building-for-armaarch64">Building for ARM/aarch64</h3>
|
<h3 id="building-for-armaarch64">Building for ARM/aarch64</h3>
|
||||||
@@ -1525,6 +1534,21 @@ profiles are available using <code>--with-abi-profile</code>:
|
|||||||
arm-vfp-sflt, arm-vfp-hflt, arm-sflt, armv5-vfp-sflt, armv6-vfp-hflt.
|
arm-vfp-sflt, arm-vfp-hflt, arm-sflt, armv5-vfp-sflt, armv6-vfp-hflt.
|
||||||
Note that soft-float ABIs are no longer properly supported by the
|
Note that soft-float ABIs are no longer properly supported by the
|
||||||
JDK.</p>
|
JDK.</p>
|
||||||
|
<h3 id="building-for-risc-v">Building for RISC-V</h3>
|
||||||
|
<p>The RISC-V community provides a basic <a
|
||||||
|
href="https://github.com/riscv-collab/riscv-gnu-toolchain">GNU compiler
|
||||||
|
toolchain</a>, but the <a href="#External-Library-Requirements">external
|
||||||
|
libraries</a> required by OpenJDK complicate the building process. The
|
||||||
|
placeholder <code><toolchain-installed-path></code> shown below is
|
||||||
|
the path where you want to install the toolchain.</p>
|
||||||
|
<ul>
|
||||||
|
<li><p>Install the RISC-V GNU compiler toolchain:
|
||||||
|
<code>git clone --recursive https://github.com/riscv-collab/riscv-gnu-toolchain cd riscv-gnu-toolchain ./configure --prefix=<toolchain-installed-path> make linux export PATH=<toolchain-installed-path>/bin:$PATH</code></p></li>
|
||||||
|
<li><p>Cross-compile all the required libraries:
|
||||||
|
<code># An example for libffi git clone https://github.com/libffi/libffi cd libffi ./configure --host=riscv64-unknown-linux-gnu --prefix=<toolchain-installed-path>/sysroot/usr make make install</code></p></li>
|
||||||
|
<li><p>Configure and build OpenJDK:
|
||||||
|
<code>bash configure \ --with-boot-jdk=$BOOT_JDK \ --openjdk-target=riscv64-linux-gnu \ --with-sysroot=<toolchain-installed-path>/sysroot \ --with-toolchain-path=<toolchain-installed-path>/bin \ --with-extra-path=<toolchain-installed-path>/bin make images</code></p></li>
|
||||||
|
</ul>
|
||||||
<h3 id="building-for-musl">Building for musl</h3>
|
<h3 id="building-for-musl">Building for musl</h3>
|
||||||
<p>Just like it's possible to cross-compile for a different CPU, it's
|
<p>Just like it's possible to cross-compile for a different CPU, it's
|
||||||
possible to cross-compile for musl libc on a glibc-based <em>build</em>
|
possible to cross-compile for musl libc on a glibc-based <em>build</em>
|
||||||
|
|||||||
@@ -860,7 +860,7 @@ containing `lib/jtreg.jar` etc.
|
|||||||
|
|
||||||
The [Adoption Group](https://wiki.openjdk.org/display/Adoption) provides
|
The [Adoption Group](https://wiki.openjdk.org/display/Adoption) provides
|
||||||
recent builds of jtreg [here](
|
recent builds of jtreg [here](
|
||||||
https://ci.adoptopenjdk.net/view/Dependencies/job/dependency_pipeline/lastSuccessfulBuild/artifact/jtreg/).
|
https://ci.adoptium.net/view/Dependencies/job/dependency_pipeline/lastSuccessfulBuild/artifact/jtreg/).
|
||||||
Download the latest `.tar.gz` file, unpack it, and point `--with-jtreg` to the
|
Download the latest `.tar.gz` file, unpack it, and point `--with-jtreg` to the
|
||||||
`jtreg` directory that you just unpacked.
|
`jtreg` directory that you just unpacked.
|
||||||
|
|
||||||
@@ -1147,7 +1147,7 @@ Note that X11 is needed even if you only want to build a headless JDK.
|
|||||||
### Cross compiling with Debian sysroots
|
### Cross compiling with Debian sysroots
|
||||||
|
|
||||||
Fortunately, you can create sysroots for foreign architectures with tools
|
Fortunately, you can create sysroots for foreign architectures with tools
|
||||||
provided by your OS. On Debian/Ubuntu systems, one could use `qemu-deboostrap` to
|
provided by your OS. On Debian/Ubuntu systems, one could use `debootstrap` to
|
||||||
create the *target* system chroot, which would have the native libraries and headers
|
create the *target* system chroot, which would have the native libraries and headers
|
||||||
specific to that *target* system. After that, we can use the cross-compiler on the *build*
|
specific to that *target* system. After that, we can use the cross-compiler on the *build*
|
||||||
system, pointing into chroot to get the build dependencies right. This allows building
|
system, pointing into chroot to get the build dependencies right. This allows building
|
||||||
@@ -1162,7 +1162,7 @@ For example, cross-compiling to AArch64 from x86_64 could be done like this:
|
|||||||
|
|
||||||
* Create chroot on the *build* system, configuring it for *target* system:
|
* Create chroot on the *build* system, configuring it for *target* system:
|
||||||
```
|
```
|
||||||
sudo qemu-debootstrap \
|
sudo debootstrap \
|
||||||
--arch=arm64 \
|
--arch=arm64 \
|
||||||
--verbose \
|
--verbose \
|
||||||
--include=fakeroot,symlinks,build-essential,libx11-dev,libxext-dev,libxrender-dev,libxrandr-dev,libxtst-dev,libxt-dev,libcups2-dev,libfontconfig1-dev,libasound2-dev,libfreetype6-dev,libpng-dev,libffi-dev \
|
--include=fakeroot,symlinks,build-essential,libx11-dev,libxext-dev,libxrender-dev,libxrandr-dev,libxtst-dev,libxt-dev,libcups2-dev,libfontconfig1-dev,libasound2-dev,libfreetype6-dev,libpng-dev,libffi-dev \
|
||||||
@@ -1170,6 +1170,8 @@ For example, cross-compiling to AArch64 from x86_64 could be done like this:
|
|||||||
buster \
|
buster \
|
||||||
~/sysroot-arm64 \
|
~/sysroot-arm64 \
|
||||||
http://httpredir.debian.org/debian/
|
http://httpredir.debian.org/debian/
|
||||||
|
# If the target architecture is `riscv64`,
|
||||||
|
# the path should be `debian-ports` instead of `debian`.
|
||||||
```
|
```
|
||||||
|
|
||||||
* Make sure the symlinks inside the newly created chroot point to proper locations:
|
* Make sure the symlinks inside the newly created chroot point to proper locations:
|
||||||
@@ -1217,6 +1219,7 @@ Architectures that are known to successfully cross-compile like this are:
|
|||||||
m68k sid m68k m68k-linux-gnu zero
|
m68k sid m68k m68k-linux-gnu zero
|
||||||
alpha sid alpha alpha-linux-gnu zero
|
alpha sid alpha alpha-linux-gnu zero
|
||||||
sh4 sid sh4 sh4-linux-gnu zero
|
sh4 sid sh4 sh4-linux-gnu zero
|
||||||
|
riscv64 sid riscv64 riscv64-linux-gnu (all)
|
||||||
|
|
||||||
### Building for ARM/aarch64
|
### Building for ARM/aarch64
|
||||||
|
|
||||||
@@ -1226,6 +1229,44 @@ available using `--with-abi-profile`: arm-vfp-sflt, arm-vfp-hflt, arm-sflt,
|
|||||||
armv5-vfp-sflt, armv6-vfp-hflt. Note that soft-float ABIs are no longer
|
armv5-vfp-sflt, armv6-vfp-hflt. Note that soft-float ABIs are no longer
|
||||||
properly supported by the JDK.
|
properly supported by the JDK.
|
||||||
|
|
||||||
|
### Building for RISC-V
|
||||||
|
|
||||||
|
The RISC-V community provides a basic
|
||||||
|
[GNU compiler toolchain](https://github.com/riscv-collab/riscv-gnu-toolchain),
|
||||||
|
but the [external libraries](#External-Library-Requirements) required by OpenJDK
|
||||||
|
complicate the building process. The placeholder `<toolchain-installed-path>`
|
||||||
|
shown below is the path where you want to install the toolchain.
|
||||||
|
|
||||||
|
* Install the RISC-V GNU compiler toolchain:
|
||||||
|
```
|
||||||
|
git clone --recursive https://github.com/riscv-collab/riscv-gnu-toolchain
|
||||||
|
cd riscv-gnu-toolchain
|
||||||
|
./configure --prefix=<toolchain-installed-path>
|
||||||
|
make linux
|
||||||
|
export PATH=<toolchain-installed-path>/bin:$PATH
|
||||||
|
```
|
||||||
|
|
||||||
|
* Cross-compile all the required libraries:
|
||||||
|
```
|
||||||
|
# An example for libffi
|
||||||
|
git clone https://github.com/libffi/libffi
|
||||||
|
cd libffi
|
||||||
|
./configure --host=riscv64-unknown-linux-gnu --prefix=<toolchain-installed-path>/sysroot/usr
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
```
|
||||||
|
|
||||||
|
* Configure and build OpenJDK:
|
||||||
|
```
|
||||||
|
bash configure \
|
||||||
|
--with-boot-jdk=$BOOT_JDK \
|
||||||
|
--openjdk-target=riscv64-linux-gnu \
|
||||||
|
--with-sysroot=<toolchain-installed-path>/sysroot \
|
||||||
|
--with-toolchain-path=<toolchain-installed-path>/bin \
|
||||||
|
--with-extra-path=<toolchain-installed-path>/bin
|
||||||
|
make images
|
||||||
|
```
|
||||||
|
|
||||||
### Building for musl
|
### Building for musl
|
||||||
|
|
||||||
Just like it's possible to cross-compile for a different CPU, it's possible to
|
Just like it's possible to cross-compile for a different CPU, it's possible to
|
||||||
|
|||||||
@@ -82,6 +82,7 @@ id="toc-uniform-initialization">Uniform Initialization</a></li>
|
|||||||
id="toc-local-function-objects">Local Function Objects</a></li>
|
id="toc-local-function-objects">Local Function Objects</a></li>
|
||||||
<li><a href="#inheriting-constructors"
|
<li><a href="#inheriting-constructors"
|
||||||
id="toc-inheriting-constructors">Inheriting constructors</a></li>
|
id="toc-inheriting-constructors">Inheriting constructors</a></li>
|
||||||
|
<li><a href="#attributes" id="toc-attributes">Attributes</a></li>
|
||||||
<li><a href="#additional-permitted-features"
|
<li><a href="#additional-permitted-features"
|
||||||
id="toc-additional-permitted-features">Additional Permitted
|
id="toc-additional-permitted-features">Additional Permitted
|
||||||
Features</a></li>
|
Features</a></li>
|
||||||
@@ -597,10 +598,17 @@ conventions might appear jarring and reduce readability.</p></li>
|
|||||||
<code>std::nothrow</code>, and <code>std::nothrow_t</code>.</li>
|
<code>std::nothrow</code>, and <code>std::nothrow_t</code>.</li>
|
||||||
<li><code>#include <limits></code> to use
|
<li><code>#include <limits></code> to use
|
||||||
<code>std::numeric_limits</code>.</li>
|
<code>std::numeric_limits</code>.</li>
|
||||||
<li><code>#include <type_traits></code>.</li>
|
<li><code>#include <type_traits></code> with some restrictions,
|
||||||
|
listed below.</li>
|
||||||
<li><code>#include <cstddef></code> to use
|
<li><code>#include <cstddef></code> to use
|
||||||
<code>std::nullptr_t</code> and <code>std::max_align_t</code>.</li>
|
<code>std::nullptr_t</code> and <code>std::max_align_t</code>.</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
<p>Certain restrictions apply to the declarations provided by
|
||||||
|
<code><type_traits></code>.</p>
|
||||||
|
<ul>
|
||||||
|
<li>The <code>alignof</code> operator should be used rather than
|
||||||
|
<code>std::alignment_of<></code>.</li>
|
||||||
|
</ul>
|
||||||
<p>TODO: Rather than directly #including (permitted) Standard Library
|
<p>TODO: Rather than directly #including (permitted) Standard Library
|
||||||
headers, use a convention of #including wrapper headers (in some
|
headers, use a convention of #including wrapper headers (in some
|
||||||
location like hotspot/shared/stdcpp). This provides a single place for
|
location like hotspot/shared/stdcpp). This provides a single place for
|
||||||
@@ -1057,9 +1065,36 @@ using C++17 or later. It is also enabled by default for
|
|||||||
C++11/14, as the change is considered a Defect Report that applies to
|
C++11/14, as the change is considered a Defect Report that applies to
|
||||||
those versions. Earlier versions of gcc don't have that option, and
|
those versions. Earlier versions of gcc don't have that option, and
|
||||||
other supported compilers may not have anything similar.</p>
|
other supported compilers may not have anything similar.</p>
|
||||||
|
<h3 id="attributes">Attributes</h3>
|
||||||
|
<p>The use of some attributes (<a
|
||||||
|
href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2761.pdf">n2761</a>)
|
||||||
|
(listed below) is permitted. (Note that some of the attributes defined
|
||||||
|
in that paper didn't make it into the final specification.)</p>
|
||||||
|
<p>Attributes are syntactically permitted in a broad set of locations,
|
||||||
|
but specific attributes are only permitted in a subset of those
|
||||||
|
locations. In some cases an attribute that appertains to a given element
|
||||||
|
may be placed in any of several locations with the same meaning. In
|
||||||
|
those cases HotSpot has a preferred location.</p>
|
||||||
|
<ul>
|
||||||
|
<li>An attribute that appertains to a function is placed at the
|
||||||
|
beginning of the function's declaration, rather than between the
|
||||||
|
function name and the parameter list.</li>
|
||||||
|
</ul>
|
||||||
|
<p>Only the following attributes are permitted:</p>
|
||||||
|
<ul>
|
||||||
|
<li><code>[[noreturn]]</code></li>
|
||||||
|
</ul>
|
||||||
|
<p>The following attributes are expressly forbidden:</p>
|
||||||
|
<ul>
|
||||||
|
<li><code>[[carries_dependency]]</code> - Related to
|
||||||
|
<code>memory_order_consume</code>.</li>
|
||||||
|
<li><code>[[deprecated]]</code> - Not relevant in HotSpot code.</li>
|
||||||
|
</ul>
|
||||||
<h3 id="additional-permitted-features">Additional Permitted
|
<h3 id="additional-permitted-features">Additional Permitted
|
||||||
Features</h3>
|
Features</h3>
|
||||||
<ul>
|
<ul>
|
||||||
|
<li><p><code>alignof</code> (<a
|
||||||
|
href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2341.pdf">n2341</a>)</p></li>
|
||||||
<li><p><code>constexpr</code> (<a
|
<li><p><code>constexpr</code> (<a
|
||||||
href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2235.pdf">n2235</a>)
|
href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2235.pdf">n2235</a>)
|
||||||
(<a
|
(<a
|
||||||
@@ -1149,9 +1184,6 @@ initialization or destruction. Initialization order problems can be
|
|||||||
difficult to deal with and lead to surprises, as can destruction
|
difficult to deal with and lead to surprises, as can destruction
|
||||||
ordering. HotSpot doesn't generally try to cleanup on exit, and running
|
ordering. HotSpot doesn't generally try to cleanup on exit, and running
|
||||||
destructors at exit can also lead to problems.</p></li>
|
destructors at exit can also lead to problems.</p></li>
|
||||||
<li><p><code>[[deprecated]]</code> attribute (<a
|
|
||||||
href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3760.html">n3760</a>)
|
|
||||||
— Not relevant in HotSpot code.</p></li>
|
|
||||||
<li><p>Avoid most operator overloading, preferring named functions. When
|
<li><p>Avoid most operator overloading, preferring named functions. When
|
||||||
operator overloading is used, ensure the semantics conform to the normal
|
operator overloading is used, ensure the semantics conform to the normal
|
||||||
expected behavior of the operation.</p></li>
|
expected behavior of the operation.</p></li>
|
||||||
@@ -1171,8 +1203,6 @@ href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2541.htm">n2541</
|
|||||||
href="https://isocpp.org/files/papers/N3651.pdf">n3651</a>)</p></li>
|
href="https://isocpp.org/files/papers/N3651.pdf">n3651</a>)</p></li>
|
||||||
<li><p>Member initializers and aggregates (<a
|
<li><p>Member initializers and aggregates (<a
|
||||||
href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3653.html">n3653</a>)</p></li>
|
href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3653.html">n3653</a>)</p></li>
|
||||||
<li><p><code>[[noreturn]]</code> attribute (<a
|
|
||||||
href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2761.pdf">n2761</a>)</p></li>
|
|
||||||
<li><p>Rvalue references and move semantics</p></li>
|
<li><p>Rvalue references and move semantics</p></li>
|
||||||
</ul>
|
</ul>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -572,9 +572,13 @@ There are a few exceptions to this rule.
|
|||||||
|
|
||||||
* `#include <new>` to use placement `new`, `std::nothrow`, and `std::nothrow_t`.
|
* `#include <new>` to use placement `new`, `std::nothrow`, and `std::nothrow_t`.
|
||||||
* `#include <limits>` to use `std::numeric_limits`.
|
* `#include <limits>` to use `std::numeric_limits`.
|
||||||
* `#include <type_traits>`.
|
* `#include <type_traits>` with some restrictions, listed below.
|
||||||
* `#include <cstddef>` to use `std::nullptr_t` and `std::max_align_t`.
|
* `#include <cstddef>` to use `std::nullptr_t` and `std::max_align_t`.
|
||||||
|
|
||||||
|
Certain restrictions apply to the declarations provided by `<type_traits>`.
|
||||||
|
|
||||||
|
* The `alignof` operator should be used rather than `std::alignment_of<>`.
|
||||||
|
|
||||||
TODO: Rather than directly \#including (permitted) Standard Library
|
TODO: Rather than directly \#including (permitted) Standard Library
|
||||||
headers, use a convention of \#including wrapper headers (in some
|
headers, use a convention of \#including wrapper headers (in some
|
||||||
location like hotspot/shared/stdcpp). This provides a single place
|
location like hotspot/shared/stdcpp). This provides a single place
|
||||||
@@ -1054,8 +1058,37 @@ and other supported compilers may not have anything similar.
|
|||||||
[p0136r1]: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0136r1.html
|
[p0136r1]: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0136r1.html
|
||||||
"p0136r1"
|
"p0136r1"
|
||||||
|
|
||||||
|
### Attributes
|
||||||
|
|
||||||
|
The use of some attributes
|
||||||
|
([n2761](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2761.pdf))
|
||||||
|
(listed below) is permitted. (Note that some of the attributes defined in
|
||||||
|
that paper didn't make it into the final specification.)
|
||||||
|
|
||||||
|
Attributes are syntactically permitted in a broad set of locations, but
|
||||||
|
specific attributes are only permitted in a subset of those locations. In
|
||||||
|
some cases an attribute that appertains to a given element may be placed in
|
||||||
|
any of several locations with the same meaning. In those cases HotSpot has a
|
||||||
|
preferred location.
|
||||||
|
|
||||||
|
* An attribute that appertains to a function is placed at the beginning of the
|
||||||
|
function's declaration, rather than between the function name and the parameter
|
||||||
|
list.
|
||||||
|
|
||||||
|
Only the following attributes are permitted:
|
||||||
|
|
||||||
|
* `[[noreturn]]`
|
||||||
|
|
||||||
|
The following attributes are expressly forbidden:
|
||||||
|
|
||||||
|
* `[[carries_dependency]]` - Related to `memory_order_consume`.
|
||||||
|
* `[[deprecated]]` - Not relevant in HotSpot code.
|
||||||
|
|
||||||
### Additional Permitted Features
|
### Additional Permitted Features
|
||||||
|
|
||||||
|
* `alignof`
|
||||||
|
([n2341](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2341.pdf))
|
||||||
|
|
||||||
* `constexpr`
|
* `constexpr`
|
||||||
([n2235](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2235.pdf))
|
([n2235](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2235.pdf))
|
||||||
([n3652](https://isocpp.org/files/papers/N3652.html))
|
([n3652](https://isocpp.org/files/papers/N3652.html))
|
||||||
@@ -1153,10 +1186,6 @@ difficult to deal with and lead to surprises, as can destruction
|
|||||||
ordering. HotSpot doesn't generally try to cleanup on exit, and
|
ordering. HotSpot doesn't generally try to cleanup on exit, and
|
||||||
running destructors at exit can also lead to problems.
|
running destructors at exit can also lead to problems.
|
||||||
|
|
||||||
* `[[deprecated]]` attribute
|
|
||||||
([n3760](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3760.html)) —
|
|
||||||
Not relevant in HotSpot code.
|
|
||||||
|
|
||||||
* Avoid most operator overloading, preferring named functions. When
|
* Avoid most operator overloading, preferring named functions. When
|
||||||
operator overloading is used, ensure the semantics conform to the
|
operator overloading is used, ensure the semantics conform to the
|
||||||
normal expected behavior of the operation.
|
normal expected behavior of the operation.
|
||||||
@@ -1181,9 +1210,6 @@ features that have not yet been discussed.
|
|||||||
* Member initializers and aggregates
|
* Member initializers and aggregates
|
||||||
([n3653](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3653.html))
|
([n3653](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3653.html))
|
||||||
|
|
||||||
* `[[noreturn]]` attribute
|
|
||||||
([n2761](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2761.pdf))
|
|
||||||
|
|
||||||
* Rvalue references and move semantics
|
* Rvalue references and move semantics
|
||||||
|
|
||||||
[ADL]: https://en.cppreference.com/w/cpp/language/adl
|
[ADL]: https://en.cppreference.com/w/cpp/language/adl
|
||||||
|
|||||||
62
doc/ide.html
62
doc/ide.html
@@ -79,6 +79,45 @@ native source. After configuring, the project is generated using:</p>
|
|||||||
<code>ide\hotspot-visualstudio</code> subfolder of the build output
|
<code>ide\hotspot-visualstudio</code> subfolder of the build output
|
||||||
folder. The file can be opened in Visual Studio via
|
folder. The file can be opened in Visual Studio via
|
||||||
<code>File -> Open -> Project/Solution</code>.</p>
|
<code>File -> Open -> Project/Solution</code>.</p>
|
||||||
|
<h4 id="eclipse-cdt">Eclipse CDT</h4>
|
||||||
|
<p>The make system can generate an Eclipse CDT Workspace that enables
|
||||||
|
Eclipse indexing for the C and C++ sources throughout the entire
|
||||||
|
codebase, as well as registering all common make targets to be runnable
|
||||||
|
from the Eclipse explorer. This can be done after configuring by
|
||||||
|
running:</p>
|
||||||
|
<pre><code>make eclipse-native-env</code></pre>
|
||||||
|
<p>After this is run, simply open and import the workspace in Eclipse
|
||||||
|
through
|
||||||
|
<code>File -> Import -> Projects from Folder or Archive</code> and
|
||||||
|
at <code>Import source</code> click on the directory
|
||||||
|
<code>ide\eclipse</code>, which can be found in the build output
|
||||||
|
folder.</p>
|
||||||
|
<p>If this doesn't work, you can also try
|
||||||
|
<code>File -> Import -> Existing Projects into Workspace</code>
|
||||||
|
instead.</p>
|
||||||
|
<p>Setting up an Eclipse Workspace is relatively lightweight compared to
|
||||||
|
other supported IDEs, but requires that your CDT installation has Cross
|
||||||
|
GCC support enabled at the moment, even if you aren't cross compiling.
|
||||||
|
The Visual C++ compiler is, at present, not supported as an indexer.</p>
|
||||||
|
<p>If desired, you can instead request make to only include indexing
|
||||||
|
support for just the Java Virtual Machine instead of the entire native
|
||||||
|
codebase, by running:</p>
|
||||||
|
<pre><code>make eclipse-hotspot-env</code></pre>
|
||||||
|
<p>If you think your particular Eclipse installation can handle the
|
||||||
|
strain, the make system also supports generating a combined Java and
|
||||||
|
C/C++ Workspace for Eclipse which can then conveniently switch between
|
||||||
|
Java and C/C++ natures during development by running:</p>
|
||||||
|
<pre><code>make eclipse-mixed-env</code></pre>
|
||||||
|
<p>Do note that this generates all features that come with both Java and
|
||||||
|
C/C++ natures.</p>
|
||||||
|
<p>By default, the Eclipse Workspace is located in the ide subdirectory
|
||||||
|
in the build output. To share the JDK's source directory with the
|
||||||
|
Eclipse Workspace, you can instead run:</p>
|
||||||
|
<pre><code>make eclipse-shared-<ENV>-env</code></pre>
|
||||||
|
<p>Eclipse support in the JDK is relatively new, so do keep in mind that
|
||||||
|
not everything may work at the moment. As such, the resulting Workspace
|
||||||
|
also has compilation database parsing support enabled, so you can pass
|
||||||
|
Eclipse the compile commands file (see below) if all else fails.</p>
|
||||||
<h4 id="compilation-database">Compilation Database</h4>
|
<h4 id="compilation-database">Compilation Database</h4>
|
||||||
<p>The make system can generate generic native code indexing support in
|
<p>The make system can generate generic native code indexing support in
|
||||||
the form of a <a
|
the form of a <a
|
||||||
@@ -105,5 +144,28 @@ select the folder where you ran the above script.</p>
|
|||||||
<p>In order to run the tests from the IDE, you can use the JTReg plugin.
|
<p>In order to run the tests from the IDE, you can use the JTReg plugin.
|
||||||
Instructions for building and using the plugin can be found <a
|
Instructions for building and using the plugin can be found <a
|
||||||
href="https://github.com/openjdk/jtreg/tree/master/plugins/idea">here</a>.</p>
|
href="https://github.com/openjdk/jtreg/tree/master/plugins/idea">here</a>.</p>
|
||||||
|
<h4 id="eclipse">Eclipse</h4>
|
||||||
|
<p>Eclipse JDT is a widely used Java IDE and has been for a very long
|
||||||
|
time, being a popular choice alongside IntelliJ IDEA for Java
|
||||||
|
development. Likewise, the JDK now includes support for developing its
|
||||||
|
Java sources with Eclipse, which can be achieved by setting up a Java
|
||||||
|
Workspace by running:</p>
|
||||||
|
<pre><code>make eclipse-java-env</code></pre>
|
||||||
|
<p>After the workspace has been generated you can import it in the same
|
||||||
|
way as you would with Eclipse CDT:</p>
|
||||||
|
<p>Follow
|
||||||
|
<code>File -> Import -> Projects from Folder or Archive</code> and
|
||||||
|
select the <code>ide\eclipse</code> directory in the build output folder
|
||||||
|
to import the newly created Java Workspace.</p>
|
||||||
|
<p>If doing so results in an error, you can also import the JDK via
|
||||||
|
<code>File -> Import -> Existing Projects into Workspace</code> as
|
||||||
|
a last resort.</p>
|
||||||
|
<p>Alternatively, if you want a Java Workspace inside the JDK's source
|
||||||
|
directory, you can instead run:</p>
|
||||||
|
<pre><code>make eclipse-shared-java-env</code></pre>
|
||||||
|
<p>As mentioned above for Eclipse CDT, you can create a combined Java
|
||||||
|
and C/C++ Workspace which can conveniently switch between Java and C/C++
|
||||||
|
natures during development by running:</p>
|
||||||
|
<pre><code>make eclipse-mixed-env</code></pre>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
94
doc/ide.md
94
doc/ide.md
@@ -56,6 +56,63 @@ This creates a file named `jvm.vcxproj` in `ide\hotspot-visualstudio`
|
|||||||
subfolder of the build output folder. The file can be opened in Visual Studio
|
subfolder of the build output folder. The file can be opened in Visual Studio
|
||||||
via `File -> Open -> Project/Solution`.
|
via `File -> Open -> Project/Solution`.
|
||||||
|
|
||||||
|
#### Eclipse CDT
|
||||||
|
|
||||||
|
The make system can generate an Eclipse CDT Workspace that enables Eclipse
|
||||||
|
indexing for the C and C++ sources throughout the entire codebase, as well as
|
||||||
|
registering all common make targets to be runnable from the Eclipse explorer.
|
||||||
|
This can be done after configuring by running:
|
||||||
|
|
||||||
|
```
|
||||||
|
make eclipse-native-env
|
||||||
|
```
|
||||||
|
|
||||||
|
After this is run, simply open and import the workspace in Eclipse through
|
||||||
|
`File -> Import -> Projects from Folder or Archive` and at
|
||||||
|
`Import source` click on the directory `ide\eclipse`, which can be
|
||||||
|
found in the build output folder.
|
||||||
|
|
||||||
|
If this doesn't work, you can also try
|
||||||
|
`File -> Import -> Existing Projects into Workspace`
|
||||||
|
instead.
|
||||||
|
|
||||||
|
Setting up an Eclipse Workspace is relatively lightweight compared to other
|
||||||
|
supported IDEs, but requires that your CDT installation has Cross GCC support
|
||||||
|
enabled at the moment, even if you aren't cross compiling. The Visual C++
|
||||||
|
compiler is, at present, not supported as an indexer.
|
||||||
|
|
||||||
|
If desired, you can instead request make to only include indexing support for
|
||||||
|
just the Java Virtual Machine instead of the entire native codebase, by running:
|
||||||
|
|
||||||
|
```
|
||||||
|
make eclipse-hotspot-env
|
||||||
|
```
|
||||||
|
|
||||||
|
If you think your particular Eclipse installation can handle the strain, the
|
||||||
|
make system also supports generating a combined Java and C/C++ Workspace for
|
||||||
|
Eclipse which can then conveniently switch between Java and C/C++ natures
|
||||||
|
during development by running:
|
||||||
|
|
||||||
|
```
|
||||||
|
make eclipse-mixed-env
|
||||||
|
```
|
||||||
|
|
||||||
|
Do note that this generates all features that come with both Java and C/C++
|
||||||
|
natures.
|
||||||
|
|
||||||
|
By default, the Eclipse Workspace is located in the ide subdirectory in the
|
||||||
|
build output. To share the JDK's source directory with the Eclipse Workspace,
|
||||||
|
you can instead run:
|
||||||
|
|
||||||
|
```
|
||||||
|
make eclipse-shared-<ENV>-env
|
||||||
|
```
|
||||||
|
|
||||||
|
Eclipse support in the JDK is relatively new, so do keep in mind that not
|
||||||
|
everything may work at the moment. As such, the resulting Workspace also
|
||||||
|
has compilation database parsing support enabled, so you can pass Eclipse
|
||||||
|
the compile commands file (see below) if all else fails.
|
||||||
|
|
||||||
#### Compilation Database
|
#### Compilation Database
|
||||||
|
|
||||||
The make system can generate generic native code indexing support in the form of
|
The make system can generate generic native code indexing support in the form of
|
||||||
@@ -96,3 +153,40 @@ as the SDK to use.
|
|||||||
In order to run the tests from the IDE, you can use the JTReg plugin.
|
In order to run the tests from the IDE, you can use the JTReg plugin.
|
||||||
Instructions for building and using the plugin can be found
|
Instructions for building and using the plugin can be found
|
||||||
[here](https://github.com/openjdk/jtreg/tree/master/plugins/idea).
|
[here](https://github.com/openjdk/jtreg/tree/master/plugins/idea).
|
||||||
|
|
||||||
|
#### Eclipse
|
||||||
|
|
||||||
|
Eclipse JDT is a widely used Java IDE and has been for a very long time, being
|
||||||
|
a popular choice alongside IntelliJ IDEA for Java development. Likewise, the
|
||||||
|
JDK now includes support for developing its Java sources with Eclipse, which
|
||||||
|
can be achieved by setting up a Java Workspace by running:
|
||||||
|
|
||||||
|
```
|
||||||
|
make eclipse-java-env
|
||||||
|
```
|
||||||
|
|
||||||
|
After the workspace has been generated you can import it in the same way as
|
||||||
|
you would with Eclipse CDT:
|
||||||
|
|
||||||
|
Follow `File -> Import -> Projects from Folder or Archive` and select the
|
||||||
|
`ide\eclipse` directory in the build output folder to import the newly created
|
||||||
|
Java Workspace.
|
||||||
|
|
||||||
|
If doing so results in an error, you can also import the JDK via
|
||||||
|
`File -> Import -> Existing Projects into Workspace`
|
||||||
|
as a last resort.
|
||||||
|
|
||||||
|
Alternatively, if you want a Java Workspace inside the JDK's source directory,
|
||||||
|
you can instead run:
|
||||||
|
|
||||||
|
```
|
||||||
|
make eclipse-shared-java-env
|
||||||
|
```
|
||||||
|
|
||||||
|
As mentioned above for Eclipse CDT, you can create a combined Java and C/C++
|
||||||
|
Workspace which can conveniently switch between Java and C/C++ natures during
|
||||||
|
development by running:
|
||||||
|
|
||||||
|
```
|
||||||
|
make eclipse-mixed-env
|
||||||
|
```
|
||||||
|
|||||||
@@ -578,12 +578,13 @@ directories.</p>
|
|||||||
<p>For more notes about the PKCS11 tests, please refer to
|
<p>For more notes about the PKCS11 tests, please refer to
|
||||||
test/jdk/sun/security/pkcs11/README.</p>
|
test/jdk/sun/security/pkcs11/README.</p>
|
||||||
<h3 id="client-ui-tests">Client UI Tests</h3>
|
<h3 id="client-ui-tests">Client UI Tests</h3>
|
||||||
|
<h4 id="system-key-shortcuts">System key shortcuts</h4>
|
||||||
<p>Some Client UI tests use key sequences which may be reserved by the
|
<p>Some Client UI tests use key sequences which may be reserved by the
|
||||||
operating system. Usually that causes the test failure. So it is highly
|
operating system. Usually that causes the test failure. So it is highly
|
||||||
recommended to disable system key shortcuts prior testing. The steps to
|
recommended to disable system key shortcuts prior testing. The steps to
|
||||||
access and disable system key shortcuts for various platforms are
|
access and disable system key shortcuts for various platforms are
|
||||||
provided below.</p>
|
provided below.</p>
|
||||||
<h4 id="macos">MacOS</h4>
|
<h5 id="macos">macOS</h5>
|
||||||
<p>Choose Apple menu; System Preferences, click Keyboard, then click
|
<p>Choose Apple menu; System Preferences, click Keyboard, then click
|
||||||
Shortcuts; select or deselect desired shortcut.</p>
|
Shortcuts; select or deselect desired shortcut.</p>
|
||||||
<p>For example,
|
<p>For example,
|
||||||
@@ -594,17 +595,41 @@ operating system. To run the test correctly the default global key
|
|||||||
shortcut should be disabled using the steps described above, and then
|
shortcut should be disabled using the steps described above, and then
|
||||||
deselect "Turn keyboard access on or off" option which is responsible
|
deselect "Turn keyboard access on or off" option which is responsible
|
||||||
for <code>CTRL + F1</code> combination.</p>
|
for <code>CTRL + F1</code> combination.</p>
|
||||||
<h4 id="linux">Linux</h4>
|
<h5 id="linux">Linux</h5>
|
||||||
<p>Open the Activities overview and start typing Settings; Choose
|
<p>Open the Activities overview and start typing Settings; Choose
|
||||||
Settings, click Devices, then click Keyboard; set or override desired
|
Settings, click Devices, then click Keyboard; set or override desired
|
||||||
shortcut.</p>
|
shortcut.</p>
|
||||||
<h4 id="windows">Windows</h4>
|
<h5 id="windows">Windows</h5>
|
||||||
<p>Type <code>gpedit</code> in the Search and then click Edit group
|
<p>Type <code>gpedit</code> in the Search and then click Edit group
|
||||||
policy; navigate to User Configuration -> Administrative Templates
|
policy; navigate to User Configuration -> Administrative Templates
|
||||||
-> Windows Components -> File Explorer; in the right-side pane
|
-> Windows Components -> File Explorer; in the right-side pane
|
||||||
look for "Turn off Windows key hotkeys" and double click on it; enable
|
look for "Turn off Windows key hotkeys" and double click on it; enable
|
||||||
or disable hotkeys.</p>
|
or disable hotkeys.</p>
|
||||||
<p>Note: restart is required to make the settings take effect.</p>
|
<p>Note: restart is required to make the settings take effect.</p>
|
||||||
|
<h4 id="robot-api">Robot API</h4>
|
||||||
|
<p>Most automated Client UI tests use <code>Robot</code> API to control
|
||||||
|
the UI. Usually, the default operating system settings need to be
|
||||||
|
adjusted for Robot to work correctly. The detailed steps how to access
|
||||||
|
and update these settings for different platforms are provided
|
||||||
|
below.</p>
|
||||||
|
<h5 id="macos-1">macOS</h5>
|
||||||
|
<p><code>Robot</code> is not permitted to control your Mac by default
|
||||||
|
since macOS 10.15. To allow it, choose Apple menu -> System Settings,
|
||||||
|
click Privacy & Security; then click Accessibility and ensure the
|
||||||
|
following apps are allowed to control your computer: <em>Java</em> and
|
||||||
|
<em>Terminal</em>. If the tests are run from an IDE, the IDE should be
|
||||||
|
granted this permission too.</p>
|
||||||
|
<h5 id="windows-1">Windows</h5>
|
||||||
|
<p>On Windows if Cygwin terminal is used to run the tests, there is a
|
||||||
|
delay in focus transfer. Usually it causes automated UI test failure. To
|
||||||
|
disable the delay, type <code>regedit</code> in the Search and then
|
||||||
|
select Registry Editor; navigate to the following key:
|
||||||
|
<code>HKEY_CURRENT_USER\Control Panel\Desktop</code>; make sure the
|
||||||
|
<code>ForegroundLockTimeout</code> value is set to 0.</p>
|
||||||
|
<p>Additional information about Client UI tests configuration for
|
||||||
|
various operating systems can be obtained at <a
|
||||||
|
href="https://wiki.openjdk.org/display/ClientLibs/Automated+client+GUI+testing+system+set+up+requirements">Automated
|
||||||
|
client GUI testing system set up requirements</a></p>
|
||||||
<h2 id="editing-this-document">Editing this document</h2>
|
<h2 id="editing-this-document">Editing this document</h2>
|
||||||
<p>If you want to contribute changes to this document, edit
|
<p>If you want to contribute changes to this document, edit
|
||||||
<code>doc/testing.md</code> and then run
|
<code>doc/testing.md</code> and then run
|
||||||
|
|||||||
@@ -606,12 +606,14 @@ test/jdk/sun/security/pkcs11/README.
|
|||||||
|
|
||||||
### Client UI Tests
|
### Client UI Tests
|
||||||
|
|
||||||
|
#### System key shortcuts
|
||||||
|
|
||||||
Some Client UI tests use key sequences which may be reserved by the operating
|
Some Client UI tests use key sequences which may be reserved by the operating
|
||||||
system. Usually that causes the test failure. So it is highly recommended to
|
system. Usually that causes the test failure. So it is highly recommended to
|
||||||
disable system key shortcuts prior testing. The steps to access and disable
|
disable system key shortcuts prior testing. The steps to access and disable
|
||||||
system key shortcuts for various platforms are provided below.
|
system key shortcuts for various platforms are provided below.
|
||||||
|
|
||||||
#### MacOS
|
##### macOS
|
||||||
|
|
||||||
Choose Apple menu; System Preferences, click Keyboard, then click Shortcuts;
|
Choose Apple menu; System Preferences, click Keyboard, then click Shortcuts;
|
||||||
select or deselect desired shortcut.
|
select or deselect desired shortcut.
|
||||||
@@ -624,12 +626,12 @@ test correctly the default global key shortcut should be disabled using the
|
|||||||
steps described above, and then deselect "Turn keyboard access on or off"
|
steps described above, and then deselect "Turn keyboard access on or off"
|
||||||
option which is responsible for `CTRL + F1` combination.
|
option which is responsible for `CTRL + F1` combination.
|
||||||
|
|
||||||
#### Linux
|
##### Linux
|
||||||
|
|
||||||
Open the Activities overview and start typing Settings; Choose Settings, click
|
Open the Activities overview and start typing Settings; Choose Settings, click
|
||||||
Devices, then click Keyboard; set or override desired shortcut.
|
Devices, then click Keyboard; set or override desired shortcut.
|
||||||
|
|
||||||
#### Windows
|
##### Windows
|
||||||
|
|
||||||
Type `gpedit` in the Search and then click Edit group policy; navigate to User
|
Type `gpedit` in the Search and then click Edit group policy; navigate to User
|
||||||
Configuration -> Administrative Templates -> Windows Components -> File
|
Configuration -> Administrative Templates -> Windows Components -> File
|
||||||
@@ -638,6 +640,33 @@ double click on it; enable or disable hotkeys.
|
|||||||
|
|
||||||
Note: restart is required to make the settings take effect.
|
Note: restart is required to make the settings take effect.
|
||||||
|
|
||||||
|
#### Robot API
|
||||||
|
|
||||||
|
Most automated Client UI tests use `Robot` API to control the UI. Usually,
|
||||||
|
the default operating system settings need to be adjusted for Robot
|
||||||
|
to work correctly. The detailed steps how to access and update these settings
|
||||||
|
for different platforms are provided below.
|
||||||
|
|
||||||
|
##### macOS
|
||||||
|
|
||||||
|
`Robot` is not permitted to control your Mac by default since
|
||||||
|
macOS 10.15. To allow it, choose Apple menu -> System Settings, click
|
||||||
|
Privacy & Security; then click Accessibility and ensure the following apps are
|
||||||
|
allowed to control your computer: *Java* and *Terminal*. If the tests are run
|
||||||
|
from an IDE, the IDE should be granted this permission too.
|
||||||
|
|
||||||
|
##### Windows
|
||||||
|
|
||||||
|
On Windows if Cygwin terminal is used to run the tests, there is a delay in
|
||||||
|
focus transfer. Usually it causes automated UI test failure. To disable the
|
||||||
|
delay, type `regedit` in the Search and then select Registry Editor; navigate
|
||||||
|
to the following key: `HKEY_CURRENT_USER\Control Panel\Desktop`; make sure
|
||||||
|
the `ForegroundLockTimeout` value is set to 0.
|
||||||
|
|
||||||
|
Additional information about Client UI tests configuration for various operating
|
||||||
|
systems can be obtained at [Automated client GUI testing system set up
|
||||||
|
requirements](https://wiki.openjdk.org/display/ClientLibs/Automated+client+GUI+testing+system+set+up+requirements)
|
||||||
|
|
||||||
## Editing this document
|
## Editing this document
|
||||||
|
|
||||||
If you want to contribute changes to this document, edit `doc/testing.md` and
|
If you want to contribute changes to this document, edit `doc/testing.md` and
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2016, 2020, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2016, 2023, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -449,7 +449,7 @@ ifneq ($(filter jcov-bundles, $(MAKECMDGOALS)), )
|
|||||||
BUNDLE_NAME := $(JCOV_BUNDLE_NAME), \
|
BUNDLE_NAME := $(JCOV_BUNDLE_NAME), \
|
||||||
FILES := $(JCOV_BUNDLE_FILES), \
|
FILES := $(JCOV_BUNDLE_FILES), \
|
||||||
BASE_DIRS := $(JCOV_IMAGE_DIR), \
|
BASE_DIRS := $(JCOV_IMAGE_DIR), \
|
||||||
SUBDIR := $(JDK_BUNDLE_SUBDIR), \
|
SUBDIR := jdk-$(VERSION_NUMBER), \
|
||||||
))
|
))
|
||||||
|
|
||||||
JCOV_TARGETS += $(BUILD_JCOV_BUNDLE)
|
JCOV_TARGETS += $(BUILD_JCOV_BUNDLE)
|
||||||
|
|||||||
@@ -171,41 +171,41 @@ $(BUILD_DEMO_CodePointIM_JAR): $(CODEPOINT_METAINF_SERVICE_FILE)
|
|||||||
|
|
||||||
$(eval $(call SetupBuildDemo, FileChooserDemo, \
|
$(eval $(call SetupBuildDemo, FileChooserDemo, \
|
||||||
DEMO_SUBDIR := jfc, \
|
DEMO_SUBDIR := jfc, \
|
||||||
DISABLED_WARNINGS := rawtypes deprecation unchecked, \
|
DISABLED_WARNINGS := rawtypes deprecation unchecked this-escape, \
|
||||||
))
|
))
|
||||||
|
|
||||||
$(eval $(call SetupBuildDemo, SwingSet2, \
|
$(eval $(call SetupBuildDemo, SwingSet2, \
|
||||||
DEMO_SUBDIR := jfc, \
|
DEMO_SUBDIR := jfc, \
|
||||||
EXTRA_COPY_TO_JAR := .java, \
|
EXTRA_COPY_TO_JAR := .java, \
|
||||||
EXTRA_MANIFEST_ATTR := SplashScreen-Image: resources/images/splash.png, \
|
EXTRA_MANIFEST_ATTR := SplashScreen-Image: resources/images/splash.png, \
|
||||||
DISABLED_WARNINGS := rawtypes deprecation unchecked static serial cast, \
|
DISABLED_WARNINGS := rawtypes deprecation unchecked static serial cast this-escape, \
|
||||||
))
|
))
|
||||||
|
|
||||||
$(eval $(call SetupBuildDemo, Font2DTest, \
|
$(eval $(call SetupBuildDemo, Font2DTest, \
|
||||||
DISABLED_WARNINGS := rawtypes deprecation unchecked serial cast, \
|
DISABLED_WARNINGS := rawtypes deprecation unchecked serial cast this-escape, \
|
||||||
DEMO_SUBDIR := jfc, \
|
DEMO_SUBDIR := jfc, \
|
||||||
))
|
))
|
||||||
|
|
||||||
$(eval $(call SetupBuildDemo, J2Ddemo, \
|
$(eval $(call SetupBuildDemo, J2Ddemo, \
|
||||||
DEMO_SUBDIR := jfc, \
|
DEMO_SUBDIR := jfc, \
|
||||||
MAIN_CLASS := java2d.J2Ddemo, \
|
MAIN_CLASS := java2d.J2Ddemo, \
|
||||||
DISABLED_WARNINGS := rawtypes deprecation unchecked cast lossy-conversions, \
|
DISABLED_WARNINGS := rawtypes deprecation unchecked cast lossy-conversions this-escape, \
|
||||||
JAR_NAME := J2Ddemo, \
|
JAR_NAME := J2Ddemo, \
|
||||||
))
|
))
|
||||||
|
|
||||||
$(eval $(call SetupBuildDemo, Metalworks, \
|
$(eval $(call SetupBuildDemo, Metalworks, \
|
||||||
DISABLED_WARNINGS := rawtypes unchecked, \
|
DISABLED_WARNINGS := rawtypes unchecked this-escape, \
|
||||||
DEMO_SUBDIR := jfc, \
|
DEMO_SUBDIR := jfc, \
|
||||||
))
|
))
|
||||||
|
|
||||||
$(eval $(call SetupBuildDemo, Notepad, \
|
$(eval $(call SetupBuildDemo, Notepad, \
|
||||||
DISABLED_WARNINGS := rawtypes, \
|
DISABLED_WARNINGS := rawtypes this-escape, \
|
||||||
DEMO_SUBDIR := jfc, \
|
DEMO_SUBDIR := jfc, \
|
||||||
))
|
))
|
||||||
|
|
||||||
$(eval $(call SetupBuildDemo, Stylepad, \
|
$(eval $(call SetupBuildDemo, Stylepad, \
|
||||||
DEMO_SUBDIR := jfc, \
|
DEMO_SUBDIR := jfc, \
|
||||||
DISABLED_WARNINGS := rawtypes unchecked, \
|
DISABLED_WARNINGS := rawtypes unchecked this-escape, \
|
||||||
EXTRA_SRC_DIR := $(DEMO_SHARE_SRC)/jfc/Notepad, \
|
EXTRA_SRC_DIR := $(DEMO_SHARE_SRC)/jfc/Notepad, \
|
||||||
EXCLUDE_FILES := $(DEMO_SHARE_SRC)/jfc/Notepad/README.txt, \
|
EXCLUDE_FILES := $(DEMO_SHARE_SRC)/jfc/Notepad/README.txt, \
|
||||||
))
|
))
|
||||||
@@ -215,11 +215,12 @@ $(eval $(call SetupBuildDemo, SampleTree, \
|
|||||||
))
|
))
|
||||||
|
|
||||||
$(eval $(call SetupBuildDemo, TableExample, \
|
$(eval $(call SetupBuildDemo, TableExample, \
|
||||||
DISABLED_WARNINGS := rawtypes unchecked deprecation, \
|
DISABLED_WARNINGS := rawtypes unchecked deprecation this-escape, \
|
||||||
DEMO_SUBDIR := jfc, \
|
DEMO_SUBDIR := jfc, \
|
||||||
))
|
))
|
||||||
|
|
||||||
$(eval $(call SetupBuildDemo, TransparentRuler, \
|
$(eval $(call SetupBuildDemo, TransparentRuler, \
|
||||||
|
DISABLED_WARNINGS := this-escape, \
|
||||||
DEMO_SUBDIR := jfc, \
|
DEMO_SUBDIR := jfc, \
|
||||||
MAIN_CLASS := transparentruler.Ruler, \
|
MAIN_CLASS := transparentruler.Ruler, \
|
||||||
))
|
))
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ $(eval $(call SetupJavaCompilation, BUILD_JIGSAW_TOOLS, \
|
|||||||
build/tools/jigsaw, \
|
build/tools/jigsaw, \
|
||||||
COPY := .properties .html, \
|
COPY := .properties .html, \
|
||||||
BIN := $(TOOLS_CLASSES_DIR), \
|
BIN := $(TOOLS_CLASSES_DIR), \
|
||||||
DISABLED_WARNINGS := fallthrough, \
|
DISABLED_WARNINGS := fallthrough this-escape, \
|
||||||
JAVAC_FLAGS := \
|
JAVAC_FLAGS := \
|
||||||
--add-modules jdk.jdeps \
|
--add-modules jdk.jdeps \
|
||||||
--add-exports java.base/jdk.internal.module=ALL-UNNAMED \
|
--add-exports java.base/jdk.internal.module=ALL-UNNAMED \
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2022, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -69,6 +69,13 @@ $(eval $(call SetupCopyFiles,COPY_NIMBUS_TEMPLATES, \
|
|||||||
|
|
||||||
TARGETS += $(COPY_NIMBUS_TEMPLATES)
|
TARGETS += $(COPY_NIMBUS_TEMPLATES)
|
||||||
|
|
||||||
|
$(eval $(call SetupCopyFiles,COPY_CLDRCONVERTER_PROPERTIES, \
|
||||||
|
SRC := $(TOPDIR)/make/jdk/src/classes/build/tools/cldrconverter, \
|
||||||
|
DEST := $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes/build/tools/cldrconverter, \
|
||||||
|
FILES := $(wildcard $(TOPDIR)/make/jdk/src/classes/build/tools/cldrconverter/*.properties)))
|
||||||
|
|
||||||
|
TARGETS += $(COPY_CLDRCONVERTER_PROPERTIES)
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
$(eval $(call SetupJavaCompilation, COMPILE_DEPEND, \
|
$(eval $(call SetupJavaCompilation, COMPILE_DEPEND, \
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# Copyright (c) 1997, 2022, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 1997, 2023, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -110,13 +110,17 @@ JAVA_WARNINGS_ARE_ERRORS ?= -Werror
|
|||||||
JAVADOC_OPTIONS := -use -keywords -notimestamp \
|
JAVADOC_OPTIONS := -use -keywords -notimestamp \
|
||||||
-encoding ISO-8859-1 -docencoding UTF-8 -breakiterator \
|
-encoding ISO-8859-1 -docencoding UTF-8 -breakiterator \
|
||||||
-splitIndex --system none -javafx --expand-requires transitive \
|
-splitIndex --system none -javafx --expand-requires transitive \
|
||||||
--override-methods=summary
|
--enable-preview -source $(JDK_SOURCE_TARGET_VERSION) \
|
||||||
|
--override-methods=summary \
|
||||||
|
--no-external-specs-page
|
||||||
|
|
||||||
# The reference options must stay stable to allow for comparisons across the
|
# The reference options must stay stable to allow for comparisons across the
|
||||||
# development cycle.
|
# development cycle.
|
||||||
REFERENCE_OPTIONS := -XDignore.symbol.file=true -use -keywords -notimestamp \
|
REFERENCE_OPTIONS := -XDignore.symbol.file=true -use -keywords -notimestamp \
|
||||||
-encoding ISO-8859-1 -breakiterator -splitIndex --system none \
|
-encoding ISO-8859-1 -breakiterator -splitIndex --system none \
|
||||||
-html5 -javafx --expand-requires transitive
|
--enable-preview -source $(JDK_SOURCE_TARGET_VERSION) \
|
||||||
|
-html5 -javafx --expand-requires transitive \
|
||||||
|
--no-external-specs-page
|
||||||
|
|
||||||
# Should we add DRAFT stamps to the generated javadoc?
|
# Should we add DRAFT stamps to the generated javadoc?
|
||||||
ifeq ($(VERSION_IS_GA), true)
|
ifeq ($(VERSION_IS_GA), true)
|
||||||
|
|||||||
@@ -257,6 +257,46 @@ $(eval $(call SetupTarget, hotspot-ide-project, \
|
|||||||
ARGS := -I$(TOPDIR)/make/hotspot, \
|
ARGS := -I$(TOPDIR)/make/hotspot, \
|
||||||
))
|
))
|
||||||
|
|
||||||
|
$(eval $(call SetupTarget, eclipse-java-env, \
|
||||||
|
MAKEFILE := ide/eclipse/CreateWorkspace, \
|
||||||
|
ARGS := --always-make WORKSPACE=java SHARED=false, \
|
||||||
|
))
|
||||||
|
|
||||||
|
$(eval $(call SetupTarget, eclipse-hotspot-env, \
|
||||||
|
MAKEFILE := ide/eclipse/CreateWorkspace, \
|
||||||
|
ARGS := --always-make WORKSPACE=hotspot SHARED=false, \
|
||||||
|
))
|
||||||
|
|
||||||
|
$(eval $(call SetupTarget, eclipse-native-env, \
|
||||||
|
MAKEFILE := ide/eclipse/CreateWorkspace, \
|
||||||
|
ARGS := --always-make WORKSPACE=native SHARED=false, \
|
||||||
|
))
|
||||||
|
|
||||||
|
$(eval $(call SetupTarget, eclipse-mixed-env, \
|
||||||
|
MAKEFILE := ide/eclipse/CreateWorkspace, \
|
||||||
|
ARGS := --always-make SHARED=false, \
|
||||||
|
))
|
||||||
|
|
||||||
|
$(eval $(call SetupTarget, eclipse-shared-java-env, \
|
||||||
|
MAKEFILE := ide/eclipse/CreateWorkspace, \
|
||||||
|
ARGS := --always-make WORKSPACE=java SHARED=true, \
|
||||||
|
))
|
||||||
|
|
||||||
|
$(eval $(call SetupTarget, eclipse-shared-hotspot-env, \
|
||||||
|
MAKEFILE := ide/eclipse/CreateWorkspace, \
|
||||||
|
ARGS := --always-make WORKSPACE=hotspot SHARED=true, \
|
||||||
|
))
|
||||||
|
|
||||||
|
$(eval $(call SetupTarget, eclipse-shared-native-env, \
|
||||||
|
MAKEFILE := ide/eclipse/CreateWorkspace, \
|
||||||
|
ARGS := --always-make WORKSPACE=native SHARED=true, \
|
||||||
|
))
|
||||||
|
|
||||||
|
$(eval $(call SetupTarget, eclipse-shared-mixed-env, \
|
||||||
|
MAKEFILE := ide/eclipse/CreateWorkspace, \
|
||||||
|
ARGS := --always-make SHARED=true, \
|
||||||
|
))
|
||||||
|
|
||||||
ALL_TARGETS += $(HOTSPOT_VARIANT_TARGETS) $(HOTSPOT_VARIANT_GENSRC_TARGETS) \
|
ALL_TARGETS += $(HOTSPOT_VARIANT_TARGETS) $(HOTSPOT_VARIANT_GENSRC_TARGETS) \
|
||||||
$(HOTSPOT_VARIANT_LIBS_TARGETS)
|
$(HOTSPOT_VARIANT_LIBS_TARGETS)
|
||||||
|
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ define create-info-file
|
|||||||
$(if $(VENDOR_VERSION_STRING), \
|
$(if $(VENDOR_VERSION_STRING), \
|
||||||
$(call info-file-item, "IMPLEMENTOR_VERSION", "$(VENDOR_VERSION_STRING)"))
|
$(call info-file-item, "IMPLEMENTOR_VERSION", "$(VENDOR_VERSION_STRING)"))
|
||||||
$(call info-file-item, "JAVA_VERSION_DATE", "$(VERSION_DATE)")
|
$(call info-file-item, "JAVA_VERSION_DATE", "$(VERSION_DATE)")
|
||||||
|
$(call info-file-item, "JAVA_RUNTIME_VERSION", "$(VERSION_STRING)")
|
||||||
$(call info-file-item, "OS_NAME", "$(RELEASE_FILE_OS_NAME)")
|
$(call info-file-item, "OS_NAME", "$(RELEASE_FILE_OS_NAME)")
|
||||||
$(call info-file-item, "OS_ARCH", "$(RELEASE_FILE_OS_ARCH)")
|
$(call info-file-item, "OS_ARCH", "$(RELEASE_FILE_OS_ARCH)")
|
||||||
$(call info-file-item, "LIBC", "$(RELEASE_FILE_LIBC)")
|
$(call info-file-item, "LIBC", "$(RELEASE_FILE_LIBC)")
|
||||||
|
|||||||
@@ -592,7 +592,16 @@ define SetupRunMicroTestBody
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
# Set library path for native dependencies
|
# Set library path for native dependencies
|
||||||
$1_JMH_JVM_ARGS := -Djava.library.path=$$(TEST_IMAGE_DIR)/micro/native
|
$1_JMH_JVM_ARGS := -Djava.library.path=$$(TEST_IMAGE_DIR)/micro/native \
|
||||||
|
--add-exports java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED \
|
||||||
|
--add-exports java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED \
|
||||||
|
--add-exports java.base/jdk.internal.classfile=ALL-UNNAMED \
|
||||||
|
--add-exports java.base/jdk.internal.classfile.attribute=ALL-UNNAMED \
|
||||||
|
--add-exports java.base/jdk.internal.classfile.constantpool=ALL-UNNAMED \
|
||||||
|
--add-exports java.base/jdk.internal.classfile.instruction=ALL-UNNAMED \
|
||||||
|
--add-exports java.base/jdk.internal.classfile.java.lang.constant=ALL-UNNAMED \
|
||||||
|
--add-exports java.base/jdk.internal.classfile.components=ALL-UNNAMED \
|
||||||
|
--add-exports java.base/jdk.internal.classfile.impl=ALL-UNNAMED
|
||||||
|
|
||||||
ifneq ($$(MICRO_VM_OPTIONS)$$(MICRO_JAVA_OPTIONS), )
|
ifneq ($$(MICRO_VM_OPTIONS)$$(MICRO_JAVA_OPTIONS), )
|
||||||
$1_JMH_JVM_ARGS += $$(MICRO_VM_OPTIONS) $$(MICRO_JAVA_OPTIONS)
|
$1_JMH_JVM_ARGS += $$(MICRO_VM_OPTIONS) $$(MICRO_JAVA_OPTIONS)
|
||||||
|
|||||||
@@ -477,7 +477,11 @@ AC_DEFUN([BASIC_CHECK_DIR_ON_LOCAL_DISK],
|
|||||||
# df on AIX does not understand -l. On modern AIXes it understands "-T local" which
|
# df on AIX does not understand -l. On modern AIXes it understands "-T local" which
|
||||||
# is the same. On older AIXes we just continue to live with a "not local build" warning.
|
# is the same. On older AIXes we just continue to live with a "not local build" warning.
|
||||||
if test "x$OPENJDK_TARGET_OS" = xaix; then
|
if test "x$OPENJDK_TARGET_OS" = xaix; then
|
||||||
DF_LOCAL_ONLY_OPTION='-T local'
|
if "$DF -T local > /dev/null 2>&1"; then
|
||||||
|
DF_LOCAL_ONLY_OPTION='-T local'
|
||||||
|
else # AIX may use GNU-utils instead
|
||||||
|
DF_LOCAL_ONLY_OPTION='-l'
|
||||||
|
fi
|
||||||
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl1"; then
|
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl1"; then
|
||||||
# In WSL1, we can only build on a drvfs file system (that is, a mounted real Windows drive)
|
# In WSL1, we can only build on a drvfs file system (that is, a mounted real Windows drive)
|
||||||
DF_LOCAL_ONLY_OPTION='-t drvfs'
|
DF_LOCAL_ONLY_OPTION='-t drvfs'
|
||||||
|
|||||||
@@ -434,7 +434,7 @@ AC_DEFUN_ONCE([BASIC_SETUP_PANDOC],
|
|||||||
|
|
||||||
if test "x$PANDOC" != x; then
|
if test "x$PANDOC" != x; then
|
||||||
AC_MSG_CHECKING([for pandoc version])
|
AC_MSG_CHECKING([for pandoc version])
|
||||||
PANDOC_VERSION=`$PANDOC --version 2>&1 | $HEAD -1 | $CUT -d " " -f 2`
|
PANDOC_VERSION=`$PANDOC --version 2>&1 | $TR -d '\r' | $HEAD -1 | $CUT -d " " -f 2`
|
||||||
AC_MSG_RESULT([$PANDOC_VERSION])
|
AC_MSG_RESULT([$PANDOC_VERSION])
|
||||||
|
|
||||||
if test "x$PANDOC_VERSION" != x$RECOMMENDED_PANDOC_VERSION; then
|
if test "x$PANDOC_VERSION" != x$RECOMMENDED_PANDOC_VERSION; then
|
||||||
@@ -443,7 +443,7 @@ AC_DEFUN_ONCE([BASIC_SETUP_PANDOC],
|
|||||||
|
|
||||||
PANDOC_MARKDOWN_FLAG="markdown"
|
PANDOC_MARKDOWN_FLAG="markdown"
|
||||||
AC_MSG_CHECKING([if the pandoc smart extension needs to be disabled for markdown])
|
AC_MSG_CHECKING([if the pandoc smart extension needs to be disabled for markdown])
|
||||||
if $PANDOC --list-extensions | $GREP -q '\+smart'; then
|
if $PANDOC --list-extensions | $GREP -q '+smart'; then
|
||||||
AC_MSG_RESULT([yes])
|
AC_MSG_RESULT([yes])
|
||||||
PANDOC_MARKDOWN_FLAG="markdown-smart"
|
PANDOC_MARKDOWN_FLAG="markdown-smart"
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2022, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -382,7 +382,7 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK],
|
|||||||
# Finally, set some other options...
|
# Finally, set some other options...
|
||||||
|
|
||||||
# Determine if the boot jdk jar supports the --date option
|
# Determine if the boot jdk jar supports the --date option
|
||||||
if $JAR --help 2>&1 | $GREP -q "\-\-date=TIMESTAMP"; then
|
if $JAR --help 2>&1 | $GREP -q -e "--date=TIMESTAMP"; then
|
||||||
BOOT_JDK_JAR_SUPPORTS_DATE=true
|
BOOT_JDK_JAR_SUPPORTS_DATE=true
|
||||||
else
|
else
|
||||||
BOOT_JDK_JAR_SUPPORTS_DATE=false
|
BOOT_JDK_JAR_SUPPORTS_DATE=false
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2022, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -189,6 +189,10 @@ AC_DEFUN([FLAGS_SETUP_WARNINGS],
|
|||||||
WARNINGS_ENABLE_ALL_CXXFLAGS="$WARNINGS_ENABLE_ALL_CFLAGS $WARNINGS_ENABLE_ADDITIONAL_CXX"
|
WARNINGS_ENABLE_ALL_CXXFLAGS="$WARNINGS_ENABLE_ALL_CFLAGS $WARNINGS_ENABLE_ADDITIONAL_CXX"
|
||||||
|
|
||||||
DISABLED_WARNINGS="unused-parameter unused"
|
DISABLED_WARNINGS="unused-parameter unused"
|
||||||
|
# gcc10/11 on ppc generate lots of abi warnings about layout of aggregates containing vectors
|
||||||
|
if test "x$OPENJDK_TARGET_CPU_ARCH" = "xppc"; then
|
||||||
|
DISABLED_WARNINGS="$DISABLED_WARNINGS psabi"
|
||||||
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
clang)
|
clang)
|
||||||
@@ -476,8 +480,7 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
|
|||||||
ALWAYS_DEFINES_JDK="-DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0602 \
|
ALWAYS_DEFINES_JDK="-DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0602 \
|
||||||
-D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE -DWIN32 -DIAL"
|
-D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE -DWIN32 -DIAL"
|
||||||
ALWAYS_DEFINES_JVM="-DNOMINMAX -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0602 \
|
ALWAYS_DEFINES_JVM="-DNOMINMAX -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0602 \
|
||||||
-D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE \
|
-D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE"
|
||||||
-D_WINSOCK_DEPRECATED_NO_WARNINGS"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
@@ -634,7 +637,7 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
|
|||||||
STATIC_LIBS_CFLAGS="-DSTATIC_BUILD=1"
|
STATIC_LIBS_CFLAGS="-DSTATIC_BUILD=1"
|
||||||
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
|
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||||
STATIC_LIBS_CFLAGS="$STATIC_LIBS_CFLAGS -ffunction-sections -fdata-sections \
|
STATIC_LIBS_CFLAGS="$STATIC_LIBS_CFLAGS -ffunction-sections -fdata-sections \
|
||||||
-DJNIEXPORT='__attribute__((visibility(\"hidden\")))'"
|
-DJNIEXPORT='__attribute__((visibility(\"default\")))'"
|
||||||
else
|
else
|
||||||
STATIC_LIBS_CFLAGS="$STATIC_LIBS_CFLAGS -DJNIEXPORT="
|
STATIC_LIBS_CFLAGS="$STATIC_LIBS_CFLAGS -DJNIEXPORT="
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
BASIC_LDFLAGS_JVM_ONLY="-Wl,-O1"
|
BASIC_LDFLAGS_JVM_ONLY=""
|
||||||
|
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xclang; then
|
elif test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||||
BASIC_LDFLAGS_JVM_ONLY="-mno-omit-leaf-frame-pointer -mstack-alignment=16 \
|
BASIC_LDFLAGS_JVM_ONLY="-mno-omit-leaf-frame-pointer -mstack-alignment=16 \
|
||||||
|
|||||||
@@ -415,7 +415,8 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_ADDRESS_SANITIZER],
|
|||||||
CHECK_AVAILABLE: [
|
CHECK_AVAILABLE: [
|
||||||
AC_MSG_CHECKING([if AddressSanitizer (asan) is available])
|
AC_MSG_CHECKING([if AddressSanitizer (asan) is available])
|
||||||
if test "x$TOOLCHAIN_TYPE" = "xgcc" ||
|
if test "x$TOOLCHAIN_TYPE" = "xgcc" ||
|
||||||
test "x$TOOLCHAIN_TYPE" = "xclang"; then
|
test "x$TOOLCHAIN_TYPE" = "xclang" ||
|
||||||
|
test "x$TOOLCHAIN_TYPE" = "xmicrosoft"; then
|
||||||
AC_MSG_RESULT([yes])
|
AC_MSG_RESULT([yes])
|
||||||
else
|
else
|
||||||
AC_MSG_RESULT([no])
|
AC_MSG_RESULT([no])
|
||||||
@@ -423,11 +424,20 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_ADDRESS_SANITIZER],
|
|||||||
fi
|
fi
|
||||||
],
|
],
|
||||||
IF_ENABLED: [
|
IF_ENABLED: [
|
||||||
# ASan is simply incompatible with gcc -Wstringop-truncation. See
|
if test "x$TOOLCHAIN_TYPE" = "xgcc" ||
|
||||||
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85650
|
test "x$TOOLCHAIN_TYPE" = "xclang"; then
|
||||||
# It's harmless to be suppressed in clang as well.
|
# ASan is simply incompatible with gcc -Wstringop-truncation. See
|
||||||
ASAN_CFLAGS="-fsanitize=address -Wno-stringop-truncation -fno-omit-frame-pointer -fno-common -DADDRESS_SANITIZER"
|
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85650
|
||||||
ASAN_LDFLAGS="-fsanitize=address"
|
# It's harmless to be suppressed in clang as well.
|
||||||
|
ASAN_CFLAGS="-fsanitize=address -Wno-stringop-truncation -fno-omit-frame-pointer -fno-common -DADDRESS_SANITIZER"
|
||||||
|
ASAN_LDFLAGS="-fsanitize=address"
|
||||||
|
elif test "x$TOOLCHAIN_TYPE" = "xmicrosoft"; then
|
||||||
|
# -Oy- is equivalent to -fno-omit-frame-pointer in GCC/Clang.
|
||||||
|
ASAN_CFLAGS="-fsanitize=address -Oy- -DADDRESS_SANITIZER"
|
||||||
|
# MSVC produces a warning if you pass -fsanitize=address to the linker. It also complains
|
||||||
|
$ if -DEBUG is not passed to the linker when building with ASan.
|
||||||
|
ASAN_LDFLAGS="-debug"
|
||||||
|
fi
|
||||||
JVM_CFLAGS="$JVM_CFLAGS $ASAN_CFLAGS"
|
JVM_CFLAGS="$JVM_CFLAGS $ASAN_CFLAGS"
|
||||||
JVM_LDFLAGS="$JVM_LDFLAGS $ASAN_LDFLAGS"
|
JVM_LDFLAGS="$JVM_LDFLAGS $ASAN_LDFLAGS"
|
||||||
CFLAGS_JDKLIB="$CFLAGS_JDKLIB $ASAN_CFLAGS"
|
CFLAGS_JDKLIB="$CFLAGS_JDKLIB $ASAN_CFLAGS"
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2022, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -247,8 +247,14 @@ AC_DEFUN_ONCE([JVM_FEATURES_CHECK_CDS],
|
|||||||
AC_DEFUN_ONCE([JVM_FEATURES_CHECK_DTRACE],
|
AC_DEFUN_ONCE([JVM_FEATURES_CHECK_DTRACE],
|
||||||
[
|
[
|
||||||
JVM_FEATURES_CHECK_AVAILABILITY(dtrace, [
|
JVM_FEATURES_CHECK_AVAILABILITY(dtrace, [
|
||||||
AC_MSG_CHECKING([for dtrace tool])
|
AC_MSG_CHECKING([for dtrace tool and platform support])
|
||||||
if test "x$DTRACE" != "x" && test -x "$DTRACE"; then
|
if test "x$OPENJDK_TARGET_CPU_ARCH" = "xppc"; then
|
||||||
|
AC_MSG_RESULT([no, $OPENJDK_TARGET_CPU_ARCH])
|
||||||
|
AVAILABLE=false
|
||||||
|
elif test "x$OPENJDK_TARGET_CPU_ARCH" = "xs390"; then
|
||||||
|
AC_MSG_RESULT([no, $OPENJDK_TARGET_CPU_ARCH])
|
||||||
|
AVAILABLE=false
|
||||||
|
elif test "x$DTRACE" != "x" && test -x "$DTRACE"; then
|
||||||
AC_MSG_RESULT([$DTRACE])
|
AC_MSG_RESULT([$DTRACE])
|
||||||
else
|
else
|
||||||
AC_MSG_RESULT([no])
|
AC_MSG_RESULT([no])
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ AC_DEFUN_ONCE([LIB_TESTS_SETUP_GTEST],
|
|||||||
|
|
||||||
# Verify that the version is the required one.
|
# Verify that the version is the required one.
|
||||||
# This is a simplified version of TOOLCHAIN_CHECK_COMPILER_VERSION
|
# This is a simplified version of TOOLCHAIN_CHECK_COMPILER_VERSION
|
||||||
gtest_version="`$GREP GOOGLETEST_VERSION $GTEST_FRAMEWORK_SRC/CMakeLists.txt | $SED -E -e 's/set\(GOOGLETEST_VERSION (.*)\)/\1/'`"
|
gtest_version="`$GREP GOOGLETEST_VERSION $GTEST_FRAMEWORK_SRC/CMakeLists.txt | $SED -e 's/set(GOOGLETEST_VERSION \(.*\))/\1/'`"
|
||||||
comparable_actual_version=`$AWK -F. '{ printf("%05d%05d%05d%05d\n", [$]1, [$]2, [$]3, [$]4) }' <<< "$gtest_version"`
|
comparable_actual_version=`$AWK -F. '{ printf("%05d%05d%05d%05d\n", [$]1, [$]2, [$]3, [$]4) }' <<< "$gtest_version"`
|
||||||
comparable_minimum_version=`$AWK -F. '{ printf("%05d%05d%05d%05d\n", [$]1, [$]2, [$]3, [$]4) }' <<< "$GTEST_MINIMUM_VERSION"`
|
comparable_minimum_version=`$AWK -F. '{ printf("%05d%05d%05d%05d\n", [$]1, [$]2, [$]3, [$]4) }' <<< "$GTEST_MINIMUM_VERSION"`
|
||||||
if test $comparable_actual_version -lt $comparable_minimum_version ; then
|
if test $comparable_actual_version -lt $comparable_minimum_version ; then
|
||||||
|
|||||||
@@ -170,8 +170,8 @@ AC_DEFUN_ONCE([LIB_SETUP_LIBRARIES],
|
|||||||
|
|
||||||
if test "x$OPENJDK_TARGET_OS" = xwindows; then
|
if test "x$OPENJDK_TARGET_OS" = xwindows; then
|
||||||
BASIC_JVM_LIBS="$BASIC_JVM_LIBS kernel32.lib user32.lib gdi32.lib winspool.lib \
|
BASIC_JVM_LIBS="$BASIC_JVM_LIBS kernel32.lib user32.lib gdi32.lib winspool.lib \
|
||||||
comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib \
|
comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib powrprof.lib uuid.lib \
|
||||||
wsock32.lib winmm.lib version.lib psapi.lib"
|
ws2_32.lib winmm.lib version.lib psapi.lib"
|
||||||
fi
|
fi
|
||||||
LIB_SETUP_JVM_LIBS(BUILD)
|
LIB_SETUP_JVM_LIBS(BUILD)
|
||||||
LIB_SETUP_JVM_LIBS(TARGET)
|
LIB_SETUP_JVM_LIBS(TARGET)
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2020, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -521,7 +521,7 @@ AC_DEFUN([UTIL_REMOVE_SYMBOLIC_LINKS],
|
|||||||
sym_link_dir=`pwd -P`
|
sym_link_dir=`pwd -P`
|
||||||
# Resolve file symlinks
|
# Resolve file symlinks
|
||||||
while test $COUNTER -lt 20; do
|
while test $COUNTER -lt 20; do
|
||||||
ISLINK=`$LS -l $sym_link_dir/$sym_link_file | $GREP '\->' | $SED -e 's/.*-> \(.*\)/\1/'`
|
ISLINK=`$LS -l $sym_link_dir/$sym_link_file | $GREP -e '->' | $SED -e 's/.*-> \(.*\)/\1/'`
|
||||||
if test "x$ISLINK" == x; then
|
if test "x$ISLINK" == x; then
|
||||||
# This is not a symbolic link! We are done!
|
# This is not a symbolic link! We are done!
|
||||||
break
|
break
|
||||||
|
|||||||
@@ -257,7 +257,7 @@ ifeq ($(HAS_FILE_FUNCTION), true)
|
|||||||
else
|
else
|
||||||
# Use printf to get consistent behavior on all platforms.
|
# Use printf to get consistent behavior on all platforms.
|
||||||
WriteFile = \
|
WriteFile = \
|
||||||
$(shell $(PRINTF) "%s" $(call ShellQuote, $1) > $2)
|
$(shell $(PRINTF) "%s\n" $(strip $(call ShellQuote, $1)) > $2)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Param 1 - Text to write
|
# Param 1 - Text to write
|
||||||
@@ -268,5 +268,5 @@ ifeq ($(HAS_FILE_FUNCTION), true)
|
|||||||
else
|
else
|
||||||
# Use printf to get consistent behavior on all platforms.
|
# Use printf to get consistent behavior on all platforms.
|
||||||
AppendFile = \
|
AppendFile = \
|
||||||
$(shell $(PRINTF) "%s" $(call ShellQuote, $1) >> $2)
|
$(shell $(PRINTF) "%s\n" $(strip $(call ShellQuote, $1)) >> $2)
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ define ProcessMarkdown
|
|||||||
$$(call MakeDir, $$(SUPPORT_OUTPUTDIR)/markdown $$(dir $$($1_$2_PANDOC_OUTPUT)))
|
$$(call MakeDir, $$(SUPPORT_OUTPUTDIR)/markdown $$(dir $$($1_$2_PANDOC_OUTPUT)))
|
||||||
$$(call ExecuteWithLog, $$(SUPPORT_OUTPUTDIR)/markdown/$$($1_$2_MARKER), \
|
$$(call ExecuteWithLog, $$(SUPPORT_OUTPUTDIR)/markdown/$$($1_$2_MARKER), \
|
||||||
$$(PANDOC) $$($1_OPTIONS) -f $$(PANDOC_MARKDOWN_FLAG) \
|
$$(PANDOC) $$($1_OPTIONS) -f $$(PANDOC_MARKDOWN_FLAG) \
|
||||||
-t $$($1_FORMAT) --standalone \
|
-t $$($1_FORMAT) --eol=lf --standalone \
|
||||||
$$($1_$2_CSS_OPTION) $$($1_$2_OPTIONS_FROM_SRC) $$($1_$2_OPTIONS) \
|
$$($1_$2_CSS_OPTION) $$($1_$2_OPTIONS_FROM_SRC) $$($1_$2_OPTIONS) \
|
||||||
'$$($1_$2_PANDOC_INPUT)' -o '$$($1_$2_PANDOC_OUTPUT)')
|
'$$($1_$2_PANDOC_INPUT)' -o '$$($1_$2_PANDOC_OUTPUT)')
|
||||||
ifneq ($$(findstring $$(LOG_LEVEL), debug trace),)
|
ifneq ($$(findstring $$(LOG_LEVEL), debug trace),)
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2022, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -130,7 +130,6 @@ define SetupBuildLauncherBody
|
|||||||
$$(shell $(FIND) $(SUPPORT_OUTPUTDIR)/modules_libs/java.base -name "*.a") \
|
$$(shell $(FIND) $(SUPPORT_OUTPUTDIR)/modules_libs/java.base -name "*.a") \
|
||||||
$(SUPPORT_OUTPUTDIR)/modules_libs/jdk.jdwp.agent/libdt_socket.a \
|
$(SUPPORT_OUTPUTDIR)/modules_libs/jdk.jdwp.agent/libdt_socket.a \
|
||||||
$(SUPPORT_OUTPUTDIR)/modules_libs/jdk.jdwp.agent/libjdwp.a \
|
$(SUPPORT_OUTPUTDIR)/modules_libs/jdk.jdwp.agent/libjdwp.a \
|
||||||
$(SUPPORT_OUTPUTDIR)/native/java.base/$(LIBRARY_PREFIX)fdlibm$(STATIC_LIBRARY_SUFFIX) \
|
|
||||||
-framework CoreFoundation \
|
-framework CoreFoundation \
|
||||||
-framework Foundation \
|
-framework Foundation \
|
||||||
-framework SystemConfiguration \
|
-framework SystemConfiguration \
|
||||||
|
|||||||
@@ -851,7 +851,7 @@ var getJibProfilesProfiles = function (input, common, data) {
|
|||||||
[ "linux-aarch64", "linux-x64", "macosx-x64", "macosx-aarch64", "windows-x64" ]
|
[ "linux-aarch64", "linux-x64", "macosx-x64", "macosx-aarch64", "windows-x64" ]
|
||||||
.forEach(function (name) {
|
.forEach(function (name) {
|
||||||
var o = artifactData[name]
|
var o = artifactData[name]
|
||||||
var jdk_subdir = (o.jdk_subdir != null ? o.jdk_subdir : "jdk-" + data.version);
|
var jdk_subdir = "jdk-" + data.version;
|
||||||
var jdk_suffix = (o.jdk_suffix != null ? o.jdk_suffix : "tar.gz");
|
var jdk_suffix = (o.jdk_suffix != null ? o.jdk_suffix : "tar.gz");
|
||||||
var pf = o.platform
|
var pf = o.platform
|
||||||
var jcovName = name + "-jcov";
|
var jcovName = name + "-jcov";
|
||||||
@@ -1048,7 +1048,7 @@ var getJibProfilesDependencies = function (input, common) {
|
|||||||
linux_x64: "gcc11.2.0-OL6.4+1.0",
|
linux_x64: "gcc11.2.0-OL6.4+1.0",
|
||||||
macosx: "Xcode12.4+1.1",
|
macosx: "Xcode12.4+1.1",
|
||||||
windows_x64: "VS2022-17.1.0+1.1",
|
windows_x64: "VS2022-17.1.0+1.1",
|
||||||
linux_aarch64: "gcc11.2.0-OL7.6+1.0",
|
linux_aarch64: input.build_cpu == "x64" ? "gcc11.2.0-OL7.6+1.1" : "gcc11.2.0-OL7.6+1.0",
|
||||||
linux_arm: "gcc8.2.0-Fedora27+1.0",
|
linux_arm: "gcc8.2.0-Fedora27+1.0",
|
||||||
linux_ppc64le: "gcc8.2.0-Fedora27+1.0",
|
linux_ppc64le: "gcc8.2.0-Fedora27+1.0",
|
||||||
linux_s390x: "gcc8.2.0-Fedora27+1.0",
|
linux_s390x: "gcc8.2.0-Fedora27+1.0",
|
||||||
|
|||||||
@@ -33,6 +33,8 @@
|
|||||||
|
|
||||||
#if (defined(__GNUC__) && !defined(__clang__)) || __has_attribute(visibility)
|
#if (defined(__GNUC__) && !defined(__clang__)) || __has_attribute(visibility)
|
||||||
#define ATTRIBUTE_DEFAULT_VISIBILITY __attribute__((visibility("default")))
|
#define ATTRIBUTE_DEFAULT_VISIBILITY __attribute__((visibility("default")))
|
||||||
|
#elif defined(_MSC_VER)
|
||||||
|
#define ATTRIBUTE_DEFAULT_VISIBILITY __declspec(dllexport)
|
||||||
#else
|
#else
|
||||||
#define ATTRIBUTE_DEFAULT_VISIBILITY
|
#define ATTRIBUTE_DEFAULT_VISIBILITY
|
||||||
#endif
|
#endif
|
||||||
@@ -43,12 +45,18 @@
|
|||||||
#define ATTRIBUTE_USED
|
#define ATTRIBUTE_USED
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(_MSC_VER)
|
||||||
|
#define CDECL __cdecl
|
||||||
|
#else
|
||||||
|
#define CDECL
|
||||||
|
#endif
|
||||||
|
|
||||||
// Override weak symbol exposed by ASan to override default options. This is called by ASan
|
// Override weak symbol exposed by ASan to override default options. This is called by ASan
|
||||||
// extremely early during library loading, before main is called. We need to override the default
|
// extremely early during library loading, before main is called. We need to override the default
|
||||||
// options because LSan is enabled by default and Hotspot is not yet compatible with it.
|
// options because LSan is enabled by default and Hotspot is not yet compatible with it.
|
||||||
// Additionally we need to prevent ASan from handling SIGSEGV, so that Hotspot's crash handler is
|
// Additionally we need to prevent ASan from handling SIGSEGV, so that Hotspot's crash handler is
|
||||||
// used. You can override these options by setting the environment variable ASAN_OPTIONS.
|
// used. You can override these options by setting the environment variable ASAN_OPTIONS.
|
||||||
ATTRIBUTE_DEFAULT_VISIBILITY ATTRIBUTE_USED const char* __asan_default_options() {
|
ATTRIBUTE_DEFAULT_VISIBILITY ATTRIBUTE_USED const char* CDECL __asan_default_options() {
|
||||||
return
|
return
|
||||||
#ifdef LEAK_SANITIZER
|
#ifdef LEAK_SANITIZER
|
||||||
"leak_check_at_exit=0,"
|
"leak_check_at_exit=0,"
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2000, 2021, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2000, 2023, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -476,6 +476,11 @@ charset x-IBM874 IBM874
|
|||||||
alias ibm-874
|
alias ibm-874
|
||||||
alias 874
|
alias 874
|
||||||
|
|
||||||
|
# alias for GB18030 is generated at runtime
|
||||||
|
charset GB18030 GB18030
|
||||||
|
package sun.nio.cs
|
||||||
|
type source
|
||||||
|
|
||||||
########################################################
|
########################################################
|
||||||
#
|
#
|
||||||
# charsets provided by ExtendedCharsets provider.
|
# charsets provided by ExtendedCharsets provider.
|
||||||
@@ -563,11 +568,6 @@ charset GBK GBK # Simplified Chinese
|
|||||||
alias windows-936
|
alias windows-936
|
||||||
alias CP936
|
alias CP936
|
||||||
|
|
||||||
charset GB18030 GB18030
|
|
||||||
package sun.nio.cs.ext
|
|
||||||
type template
|
|
||||||
alias gb18030-2000
|
|
||||||
|
|
||||||
charset GB2312 EUC_CN
|
charset GB2312 EUC_CN
|
||||||
package sun.nio.cs.ext
|
package sun.nio.cs.ext
|
||||||
type dbcs
|
type dbcs
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ Big5_HKSCS
|
|||||||
EUC_CN
|
EUC_CN
|
||||||
EUC_KR
|
EUC_KR
|
||||||
GBK
|
GBK
|
||||||
GB18030
|
|
||||||
IBM856
|
IBM856
|
||||||
IBM921
|
IBM921
|
||||||
IBM922
|
IBM922
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ EUC_JP_LINUX
|
|||||||
EUC_JP_Open
|
EUC_JP_Open
|
||||||
EUC_TW
|
EUC_TW
|
||||||
GBK
|
GBK
|
||||||
GB18030
|
|
||||||
ISO_8859_11
|
ISO_8859_11
|
||||||
ISO_8859_3
|
ISO_8859_3
|
||||||
ISO_8859_6
|
ISO_8859_6
|
||||||
|
|||||||
@@ -1,26 +0,0 @@
|
|||||||
#
|
|
||||||
# generate these charsets into sun.nio.cs
|
|
||||||
#
|
|
||||||
Big5
|
|
||||||
Big5_Solaris
|
|
||||||
Big5_HKSCS # always together with Big5
|
|
||||||
EUC_CN
|
|
||||||
EUC_KR
|
|
||||||
EUC_JP
|
|
||||||
EUC_JP_LINUX
|
|
||||||
EUC_JP_Open
|
|
||||||
EUC_TW
|
|
||||||
GBK
|
|
||||||
GB18030
|
|
||||||
ISO_8859_11
|
|
||||||
ISO_8859_3
|
|
||||||
ISO_8859_6
|
|
||||||
ISO_8859_8
|
|
||||||
Johab
|
|
||||||
PCK
|
|
||||||
TIS_620
|
|
||||||
JIS_X_0201
|
|
||||||
JIS_X_0208
|
|
||||||
JIS_X_0212
|
|
||||||
JIS_X_0208_Solaris
|
|
||||||
JIS_X_0212_Solaris
|
|
||||||
@@ -2,7 +2,6 @@
|
|||||||
# generate these charsets into sun.nio.cs
|
# generate these charsets into sun.nio.cs
|
||||||
#
|
#
|
||||||
GBK
|
GBK
|
||||||
GB18030
|
|
||||||
Johab
|
Johab
|
||||||
MS1255
|
MS1255
|
||||||
MS1256
|
MS1256
|
||||||
|
|||||||
@@ -1193,8 +1193,8 @@ annotations.
|
|||||||
<territory type="TM">Turkmenistan</territory>
|
<territory type="TM">Turkmenistan</territory>
|
||||||
<territory type="TN">Tunisia</territory>
|
<territory type="TN">Tunisia</territory>
|
||||||
<territory type="TO">Tonga</territory>
|
<territory type="TO">Tonga</territory>
|
||||||
<territory type="TR">Turkey</territory>
|
<territory type="TR">Türkiye</territory>
|
||||||
<territory type="TR" alt="variant">Türkiye</territory>
|
<territory type="TR" alt="variant">Turkey</territory>
|
||||||
<territory type="TT">Trinidad & Tobago</territory>
|
<territory type="TT">Trinidad & Tobago</territory>
|
||||||
<territory type="TV">Tuvalu</territory>
|
<territory type="TV">Tuvalu</territory>
|
||||||
<territory type="TW">Taiwan</territory>
|
<territory type="TW">Taiwan</territory>
|
||||||
|
|||||||
141
make/data/cldr/common/properties/coverageLevels.txt
Normal file
141
make/data/cldr/common/properties/coverageLevels.txt
Normal file
@@ -0,0 +1,141 @@
|
|||||||
|
# coverageLevels.txt
|
||||||
|
# Copyright © 2022 Unicode, Inc.
|
||||||
|
# CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
|
||||||
|
# For terms of use, see http://www.unicode.org/copyright.html
|
||||||
|
#
|
||||||
|
# Provides the Coverage Level of locales at Basic or Above.
|
||||||
|
# For more info,see the Locale Coverage Chart for this version.
|
||||||
|
# Generated by ShowLocaleCoverage.
|
||||||
|
#
|
||||||
|
#Locale ; Level
|
||||||
|
af ; modern
|
||||||
|
am ; modern
|
||||||
|
ar ; modern
|
||||||
|
as ; modern
|
||||||
|
ast ; basic
|
||||||
|
az ; modern
|
||||||
|
be ; modern
|
||||||
|
bg ; modern
|
||||||
|
bgc ; basic
|
||||||
|
bho ; basic
|
||||||
|
bn ; modern
|
||||||
|
br ; moderate
|
||||||
|
brx ; basic
|
||||||
|
bs ; modern
|
||||||
|
bs_Cyrl ; basic
|
||||||
|
ca ; modern
|
||||||
|
ceb ; moderate
|
||||||
|
chr ; modern
|
||||||
|
cs ; modern
|
||||||
|
cv ; moderate
|
||||||
|
cy ; modern
|
||||||
|
da ; modern
|
||||||
|
de ; modern
|
||||||
|
doi ; basic
|
||||||
|
dsb ; modern
|
||||||
|
el ; modern
|
||||||
|
en ; modern
|
||||||
|
es ; modern
|
||||||
|
et ; modern
|
||||||
|
eu ; modern
|
||||||
|
fa ; modern
|
||||||
|
ff_Adlm ; basic
|
||||||
|
fi ; modern
|
||||||
|
fil ; modern
|
||||||
|
fo ; basic
|
||||||
|
fr ; modern
|
||||||
|
ga ; modern
|
||||||
|
gd ; modern
|
||||||
|
gl ; modern
|
||||||
|
gu ; modern
|
||||||
|
ha ; modern
|
||||||
|
he ; modern
|
||||||
|
hi ; modern
|
||||||
|
hi_Latn ; modern
|
||||||
|
hr ; modern
|
||||||
|
hsb ; modern
|
||||||
|
hu ; modern
|
||||||
|
hy ; modern
|
||||||
|
ia ; basic
|
||||||
|
id ; modern
|
||||||
|
ig ; modern
|
||||||
|
is ; modern
|
||||||
|
it ; modern
|
||||||
|
ja ; modern
|
||||||
|
jv ; modern
|
||||||
|
ka ; modern
|
||||||
|
kea ; basic
|
||||||
|
kgp ; basic
|
||||||
|
kk ; modern
|
||||||
|
km ; modern
|
||||||
|
kn ; modern
|
||||||
|
ko ; modern
|
||||||
|
kok ; modern
|
||||||
|
ks ; basic
|
||||||
|
ks_Deva ; basic
|
||||||
|
ky ; modern
|
||||||
|
lo ; modern
|
||||||
|
lt ; modern
|
||||||
|
lv ; modern
|
||||||
|
mai ; basic
|
||||||
|
mi ; basic
|
||||||
|
mk ; modern
|
||||||
|
ml ; modern
|
||||||
|
mn ; modern
|
||||||
|
mni ; basic
|
||||||
|
mr ; modern
|
||||||
|
ms ; modern
|
||||||
|
my ; modern
|
||||||
|
ne ; modern
|
||||||
|
nl ; modern
|
||||||
|
nn ; modern
|
||||||
|
no ; modern
|
||||||
|
or ; modern
|
||||||
|
pa ; modern
|
||||||
|
pcm ; modern
|
||||||
|
pl ; modern
|
||||||
|
ps ; modern
|
||||||
|
pt ; modern
|
||||||
|
qu ; moderate
|
||||||
|
raj ; basic
|
||||||
|
rm ; basic
|
||||||
|
ro ; modern
|
||||||
|
ru ; modern
|
||||||
|
sa ; basic
|
||||||
|
sat ; basic
|
||||||
|
sc ; moderate
|
||||||
|
sd ; modern
|
||||||
|
sd_Deva ; basic
|
||||||
|
si ; modern
|
||||||
|
sk ; modern
|
||||||
|
sl ; modern
|
||||||
|
so ; modern
|
||||||
|
sq ; modern
|
||||||
|
sr ; modern
|
||||||
|
su ; basic
|
||||||
|
sv ; modern
|
||||||
|
sw ; modern
|
||||||
|
ta ; modern
|
||||||
|
te ; modern
|
||||||
|
tg ; basic
|
||||||
|
th ; modern
|
||||||
|
ti ; basic
|
||||||
|
tk ; modern
|
||||||
|
to ; basic
|
||||||
|
tr ; modern
|
||||||
|
tt ; basic
|
||||||
|
uk ; modern
|
||||||
|
ur ; modern
|
||||||
|
uz ; modern
|
||||||
|
uz_Cyrl ; basic
|
||||||
|
vi ; modern
|
||||||
|
wo ; basic
|
||||||
|
xh ; moderate
|
||||||
|
yo ; modern
|
||||||
|
yrl ; basic
|
||||||
|
yue ; modern
|
||||||
|
yue_Hans ; modern
|
||||||
|
zh ; modern
|
||||||
|
zh_Hant ; modern
|
||||||
|
zu ; modern
|
||||||
|
#EOF
|
||||||
@@ -162,7 +162,6 @@ JVM_IsRecord
|
|||||||
JVM_IsSameClassPackage
|
JVM_IsSameClassPackage
|
||||||
JVM_IsSharingEnabled
|
JVM_IsSharingEnabled
|
||||||
JVM_IsSupportedJNIVersion
|
JVM_IsSupportedJNIVersion
|
||||||
JVM_IsThreadAlive
|
|
||||||
JVM_IsVMGeneratedMethodIx
|
JVM_IsVMGeneratedMethodIx
|
||||||
JVM_LatestUserDefinedLoader
|
JVM_LatestUserDefinedLoader
|
||||||
JVM_LoadZipLibrary
|
JVM_LoadZipLibrary
|
||||||
@@ -218,10 +217,8 @@ JVM_DefineModule
|
|||||||
JVM_SetBootLoaderUnnamedModule
|
JVM_SetBootLoaderUnnamedModule
|
||||||
|
|
||||||
# Virtual thread notifications for JVMTI
|
# Virtual thread notifications for JVMTI
|
||||||
JVM_VirtualThreadMountBegin
|
JVM_VirtualThreadMount
|
||||||
JVM_VirtualThreadMountEnd
|
JVM_VirtualThreadUnmount
|
||||||
JVM_VirtualThreadUnmountBegin
|
|
||||||
JVM_VirtualThreadUnmountEnd
|
|
||||||
JVM_VirtualThreadHideFrames
|
JVM_VirtualThreadHideFrames
|
||||||
|
|
||||||
# Scoped values
|
# Scoped values
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2013, 2022, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2013, 2023, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -71,6 +71,7 @@ else ifeq ($(BASE_OS), Fedora)
|
|||||||
BASE_URL := http://fedora.riscv.rocks/repos-dist/$(BASE_OS_VERSION)/$(ARCH)/Packages/
|
BASE_URL := http://fedora.riscv.rocks/repos-dist/$(BASE_OS_VERSION)/$(ARCH)/Packages/
|
||||||
else
|
else
|
||||||
DEFAULT_OS_VERSION := 27
|
DEFAULT_OS_VERSION := 27
|
||||||
|
LATEST_ARCHIVED_OS_VERSION := 35
|
||||||
ifeq ($(BASE_OS_VERSION), )
|
ifeq ($(BASE_OS_VERSION), )
|
||||||
BASE_OS_VERSION := $(DEFAULT_OS_VERSION)
|
BASE_OS_VERSION := $(DEFAULT_OS_VERSION)
|
||||||
endif
|
endif
|
||||||
@@ -79,11 +80,11 @@ else ifeq ($(BASE_OS), Fedora)
|
|||||||
else
|
else
|
||||||
FEDORA_TYPE := fedora/linux
|
FEDORA_TYPE := fedora/linux
|
||||||
endif
|
endif
|
||||||
ARCHIVED := $(shell [ $(BASE_OS_VERSION) -lt $(DEFAULT_OS_VERSION) ] && echo true)
|
NOT_ARCHIVED := $(shell [ $(BASE_OS_VERSION) -gt $(LATEST_ARCHIVED_OS_VERSION) ] && echo true)
|
||||||
ifeq ($(ARCHIVED),true)
|
ifeq ($(NOT_ARCHIVED),true)
|
||||||
BASE_URL := https://archives.fedoraproject.org/pub/archive/$(FEDORA_TYPE)/releases/$(BASE_OS_VERSION)/Everything/$(ARCH)/os/Packages/
|
|
||||||
else
|
|
||||||
BASE_URL := https://dl.fedoraproject.org/pub/$(FEDORA_TYPE)/releases/$(BASE_OS_VERSION)/Everything/$(ARCH)/os/Packages/
|
BASE_URL := https://dl.fedoraproject.org/pub/$(FEDORA_TYPE)/releases/$(BASE_OS_VERSION)/Everything/$(ARCH)/os/Packages/
|
||||||
|
else
|
||||||
|
BASE_URL := https://archives.fedoraproject.org/pub/archive/$(FEDORA_TYPE)/releases/$(BASE_OS_VERSION)/Everything/$(ARCH)/os/Packages/
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
LINUX_VERSION := Fedora_$(BASE_OS_VERSION)
|
LINUX_VERSION := Fedora_$(BASE_OS_VERSION)
|
||||||
@@ -449,7 +450,7 @@ $(BUILDDIR)/$(binutils_ver)/Makefile \
|
|||||||
$(PATHPRE) $(ENVS) CFLAGS="-O2 $(CFLAGS)" \
|
$(PATHPRE) $(ENVS) CFLAGS="-O2 $(CFLAGS)" \
|
||||||
$(BINUTILS_CFG) \
|
$(BINUTILS_CFG) \
|
||||||
$(CONFIG) \
|
$(CONFIG) \
|
||||||
$(LINKER_CONFIG) \
|
$(LINKER_CONFIG) \
|
||||||
--with-sysroot=$(SYSROOT) \
|
--with-sysroot=$(SYSROOT) \
|
||||||
--disable-nls \
|
--disable-nls \
|
||||||
--program-prefix=$(TARGET)- \
|
--program-prefix=$(TARGET)- \
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ endif
|
|||||||
|
|
||||||
DISABLED_WARNINGS_xlc := tautological-compare shift-negative-value
|
DISABLED_WARNINGS_xlc := tautological-compare shift-negative-value
|
||||||
|
|
||||||
DISABLED_WARNINGS_microsoft := 4624 4244 4291 4146 4127
|
DISABLED_WARNINGS_microsoft := 4624 4244 4291 4146 4127 4722
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Platform specific setup
|
# Platform specific setup
|
||||||
|
|||||||
@@ -169,8 +169,12 @@ ifeq ($(call check-jvm-feature, link-time-opt), true)
|
|||||||
# later on if desired
|
# later on if desired
|
||||||
JVM_OPTIMIZATION := HIGHEST_JVM
|
JVM_OPTIMIZATION := HIGHEST_JVM
|
||||||
ifeq ($(call isCompiler, gcc), true)
|
ifeq ($(call isCompiler, gcc), true)
|
||||||
JVM_CFLAGS_FEATURES += -flto -fuse-linker-plugin
|
JVM_CFLAGS_FEATURES += -flto=auto -fuse-linker-plugin -fno-strict-aliasing -fno-fat-lto-objects
|
||||||
JVM_LDFLAGS_FEATURES += -flto -fuse-linker-plugin -fno-strict-aliasing
|
JVM_LDFLAGS_FEATURES += $(CXX_O_FLAG_HIGHEST_JVM) -flto=auto -fuse-linker-plugin -fno-strict-aliasing
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
ifeq ($(call isCompiler, gcc), true)
|
||||||
|
JVM_LDFLAGS_FEATURES += -O1
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|||||||
390
make/ide/eclipse/CreateWorkspace.gmk
Normal file
390
make/ide/eclipse/CreateWorkspace.gmk
Normal file
@@ -0,0 +1,390 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2016, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
|
#
|
||||||
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
|
# under the terms of the GNU General Public License version 2 only, as
|
||||||
|
# published by the Free Software Foundation. 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
default: all
|
||||||
|
|
||||||
|
include $(SPEC)
|
||||||
|
include MakeBase.gmk
|
||||||
|
include TextFileProcessing.gmk
|
||||||
|
include Utils.gmk
|
||||||
|
include Modules.gmk
|
||||||
|
|
||||||
|
JVM_VARIANT := $(JVM_VARIANT_MAIN)
|
||||||
|
include hotspot/HotspotCommon.gmk
|
||||||
|
include hotspot/lib/JvmFeatures.gmk
|
||||||
|
include hotspot/lib/JvmOverrideFiles.gmk
|
||||||
|
include hotspot/lib/JvmFlags.gmk
|
||||||
|
|
||||||
|
# Random number generation, with the amount of specified digits
|
||||||
|
# No need to check if the parameter passed is a valid number, the shell will
|
||||||
|
# be more than happy to complain if it isn't ;)
|
||||||
|
RandomDigits = \
|
||||||
|
$(shell od -An -N8 -d /dev/urandom | sed -e 's| ||g' -e 's|\(.\{$(strip $1)\}\).*|\1|')
|
||||||
|
|
||||||
|
# Modified version of utility from JdkNativeCompilation.gmk
|
||||||
|
# The full path could be omitted, but it was chosen not to so wildcard
|
||||||
|
# can work properly for existing directories. The pathsubst below that
|
||||||
|
# this necessitates is a relatively small price to pay.
|
||||||
|
FindModuleNativeDirs = \
|
||||||
|
$(call uniq, $(wildcard \
|
||||||
|
$(TOPDIR)/src/$(strip $1)/$(OPENJDK_TARGET_OS)/native \
|
||||||
|
$(TOPDIR)/src/$(strip $1)/$(OPENJDK_TARGET_OS_TYPE)/native \
|
||||||
|
$(TOPDIR)/src/$(strip $1)/share/native))
|
||||||
|
|
||||||
|
# Taken from JdkNativeCompilation.gmk
|
||||||
|
FindJavaHeaderDir = \
|
||||||
|
$(if $(strip $1),$(wildcard $(SUPPORT_OUTPUTDIR)/headers/$(strip $1)))
|
||||||
|
|
||||||
|
JAVA_DIRS := $(strip $(foreach module, $(call FindAllModules), \
|
||||||
|
$(patsubst $(TOPDIR)/%,%,$(filter-out $(OUTPUTDIR)%, \
|
||||||
|
$(call FindModuleSrcDirs, $(module))))))
|
||||||
|
|
||||||
|
NATIVE_DIRS := $(strip $(foreach module, $(call FindAllModules), \
|
||||||
|
$(patsubst $(TOPDIR)/%,%,$(call FindModuleNativeDirs, $(module)))))
|
||||||
|
|
||||||
|
# Emit the defines extracted from the list of options specified in the first parameter into
|
||||||
|
# the language settings file, in Eclipse format.
|
||||||
|
EmitExtractedDefines = \
|
||||||
|
$(shell echo $(1) | grep -o "\-D\s\?")
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Create an Eclipse Workspace with the specified nature
|
||||||
|
#
|
||||||
|
# Parameter 1 is the name of the rule. This name is used as variable prefix,
|
||||||
|
# and the targets generated are listed in a variable by that name.
|
||||||
|
#
|
||||||
|
# Remaining parameter(s) are named arguments:
|
||||||
|
# NATURE - Which Eclipse Workspace nature to generate for the Workspace. Can
|
||||||
|
# be one of JAVA, HOTSPOT, NATIVE, or MIXED.
|
||||||
|
# SHARED - Workspace will share the same directory as the JDK if true. Can be
|
||||||
|
# either true or false. Defaults to false if not specified.
|
||||||
|
SetupEclipseWorkspace = $(NamedParamsMacroTemplate)
|
||||||
|
define SetupEclipseWorkspaceBody
|
||||||
|
|
||||||
|
$1_NATURES :=
|
||||||
|
$1_BUILD_MANAGERS :=
|
||||||
|
$1_LINKED_RESOURCES :=
|
||||||
|
|
||||||
|
ifeq ($$($1_NATURE), )
|
||||||
|
$$(error No nature specified for Eclipse Workspace, cannot continue)
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($$(findstring $$($1_NATURE), JAVA HOTSPOT NATIVE MIXED), )
|
||||||
|
$$(error Unrecognised nature $$($1_NATURE) specified for Eclipse Workspace)
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($$($1_SHARED), )
|
||||||
|
$$(info Workspace sharing option not given, assuming non-shared Eclipse Workspace)
|
||||||
|
$1_SHARED := false
|
||||||
|
else ifeq ($$(findstring $$($1_SHARED), true false), )
|
||||||
|
$$(error $$($1_NATURE) is not a boolean word)
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($$($1_SHARED), true)
|
||||||
|
$1_CLASSPATH_FILE := $(TOPDIR)/.classpath
|
||||||
|
$1_WORKSPACE_FILE := $(TOPDIR)/.project
|
||||||
|
$1_NATIVE_FILE := $(TOPDIR)/.cproject
|
||||||
|
$1_SETTINGS_FILE := $(TOPDIR)/.settings/language.settings.xml
|
||||||
|
else
|
||||||
|
$1_IDE_OUTPUTDIR := $(OUTPUTDIR)/ide/eclipse
|
||||||
|
$1_CLASSPATH_FILE := $$($1_IDE_OUTPUTDIR)/.classpath
|
||||||
|
$1_WORKSPACE_FILE := $$($1_IDE_OUTPUTDIR)/.project
|
||||||
|
$1_NATIVE_FILE := $$($1_IDE_OUTPUTDIR)/.cproject
|
||||||
|
$1_SETTINGS_FILE := $$($1_IDE_OUTPUTDIR)/.settings/language.settings.xml
|
||||||
|
$$(call MakeDir, $$($1_IDE_OUTPUTDIR))
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq ($$(findstring $$($1_NATURE), HOTSPOT NATIVE MIXED), )
|
||||||
|
ifeq ($$(call isCompiler, microsoft), true)
|
||||||
|
$$(error Visual C++ is not yet supported as an indexer for Native Workspaces!)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq ($$(findstring $$($1_NATURE), JAVA MIXED), )
|
||||||
|
|
||||||
|
$1_CLASSPATH :=
|
||||||
|
|
||||||
|
# Eclipse crashes when processing multiple module-info.java files
|
||||||
|
# This is an annoying bug that has not been fixed for some time now
|
||||||
|
$1_CLASSPATH += $$(foreach src,$(JAVA_DIRS), \
|
||||||
|
<classpathentry excluding="module-info.java|module-info.java.extra" kind="src" path="$$(src)"/>$$(NEWLINE))
|
||||||
|
|
||||||
|
$$(eval $$(call SetupTextFileProcessing, $1_CREATE_CLASSPATH_FILE, \
|
||||||
|
SOURCE_FILES := $(TOPDIR)/make/ide/eclipse/classpath.template, \
|
||||||
|
OUTPUT_FILE := $$($1_CLASSPATH_FILE), \
|
||||||
|
REPLACEMENTS := \
|
||||||
|
@@CLASSPATH@@ => $$($1_CLASSPATH), \
|
||||||
|
))
|
||||||
|
|
||||||
|
TARGETS += $$($1_CREATE_CLASSPATH_FILE)
|
||||||
|
|
||||||
|
$1_NATURES += <nature>org.eclipse.jdt.core.javanature</nature>$$(NEWLINE)
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq ($$(findstring $$($1_NATURE), HOTSPOT NATIVE MIXED), )
|
||||||
|
|
||||||
|
$1_NATIVE_SRCS :=
|
||||||
|
|
||||||
|
$1_BUILD_MANAGERS += \
|
||||||
|
<buildCommand> \
|
||||||
|
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name> \
|
||||||
|
<triggers>clean$$(COMMA)full$$(COMMA)incremental$$(COMMA)</triggers> \
|
||||||
|
<arguments> \
|
||||||
|
</arguments> \
|
||||||
|
</buildCommand> \
|
||||||
|
<buildCommand> \
|
||||||
|
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name> \
|
||||||
|
<triggers>full$$(COMMA)incremental$$(COMMA)</triggers> \
|
||||||
|
<arguments> \
|
||||||
|
</arguments> \
|
||||||
|
</buildCommand>$$(NEWLINE)
|
||||||
|
|
||||||
|
$1_NATURES += \
|
||||||
|
<nature>org.eclipse.cdt.core.cnature</nature> \
|
||||||
|
<nature>org.eclipse.cdt.core.ccnature</nature> \
|
||||||
|
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature> \
|
||||||
|
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>$$(NEWLINE)
|
||||||
|
|
||||||
|
# This is always emitted, no matter which of the 3 natures were selected
|
||||||
|
$1_NATIVE_SRCS += \
|
||||||
|
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src/hotspot"/>$$(NEWLINE)
|
||||||
|
|
||||||
|
ifneq ($$(findstring $$($1_NATURE), NATIVE MIXED), )
|
||||||
|
$1_NATIVE_SRCS += $$(foreach src,$(NATIVE_DIRS), \
|
||||||
|
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="$$(strip $$(src))"/>$$(NEWLINE))
|
||||||
|
endif
|
||||||
|
|
||||||
|
$1_WORKSPACE_MAJOR := $$(call RandomDigits, 10)
|
||||||
|
$1_WORKSPACE_MINOR := $$(call RandomDigits, 9)
|
||||||
|
|
||||||
|
# FixPath already removes $(FIXPATH) automatically, but if we rely on FixPath
|
||||||
|
# to do it for us dir won't be able to handle the converted path (if on Windows).
|
||||||
|
# Reversing the order causes dir to mangle the preceeding $(FIXPATH) which breaks
|
||||||
|
# the ability of FixPath to remove it, so it has to be manually removed here.
|
||||||
|
#
|
||||||
|
# Note that the workspace setup system currently does not support Visual C++ when
|
||||||
|
# extracting compiler and/or system headers vital to the build!
|
||||||
|
$1_ENV := $$(call FixPath, $$(dir $$(patsubst $(FIXPATH), , $(CC))))
|
||||||
|
|
||||||
|
# Sidestep annoying issue of WSL path conversion not working properly with true
|
||||||
|
# Unix paths. Eclipse can't run the WSL make by itself anyway, even if we could
|
||||||
|
# properly convert the path.
|
||||||
|
ifeq ($$(call isBuildOsEnv, windows.wsl1 windows.wsl2), true)
|
||||||
|
$1_MAKE := wsl.exe $(MAKE)
|
||||||
|
else
|
||||||
|
$1_MAKE := $$(call FixPath, $(MAKE))
|
||||||
|
endif
|
||||||
|
|
||||||
|
$1_MATCHING_MAKE_TARGETS :=
|
||||||
|
$1_PLAIN_MAKE_TARGETS := update-build-docs docs gensrc gendata \
|
||||||
|
copy java launchers libs hotspot jdk product-images all-images test-image clean
|
||||||
|
|
||||||
|
# make reconfigure omitted since it is sensitive to which make was used
|
||||||
|
ifeq ($$($1_SHARED), true)
|
||||||
|
$1_PLAIN_MAKE_TARGETS += dist-clean
|
||||||
|
endif
|
||||||
|
|
||||||
|
$1_MATCHING_MAKE_TARGETS += $$(foreach name,$$($1_PLAIN_MAKE_TARGETS), \
|
||||||
|
<target name="$$(strip $$(name))" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> \
|
||||||
|
<buildCommand>$$($1_MAKE)</buildCommand> \
|
||||||
|
<buildArguments>-C $$(call FixPath, $(TOPDIR))</buildArguments> \
|
||||||
|
<buildTarget>$$(strip $$(name))</buildTarget> \
|
||||||
|
<stopOnError>true</stopOnError> \
|
||||||
|
<useDefaultCommand>false</useDefaultCommand> \
|
||||||
|
<runAllBuilders>true</runAllBuilders> \
|
||||||
|
</target>$$(NEWLINE))
|
||||||
|
|
||||||
|
$$(eval $$(call SetupTextFileProcessing, $1_CREATE_NATIVE_FILE, \
|
||||||
|
SOURCE_FILES := $(TOPDIR)/make/ide/eclipse/native.template, \
|
||||||
|
OUTPUT_FILE := $$($1_NATIVE_FILE), \
|
||||||
|
REPLACEMENTS := \
|
||||||
|
@@DIR@@ => $$(call FixPath, $(TOPDIR)) ; \
|
||||||
|
@@ENV@@ => $$($1_ENV) ; \
|
||||||
|
@@WORKSPACE@@ => $$($1_WORKSPACE_MAJOR) ; \
|
||||||
|
@@MINOR@@ => $$($1_WORKSPACE_MINOR) ; \
|
||||||
|
@@MAKE@@ => $$($1_MAKE) ; \
|
||||||
|
@@SRC@@ => $$($1_NATIVE_SRCS) ; \
|
||||||
|
@@MAKE_TARGETS@@ => $$($1_MATCHING_MAKE_TARGETS), \
|
||||||
|
))
|
||||||
|
|
||||||
|
TARGETS += $$($1_CREATE_NATIVE_FILE)
|
||||||
|
|
||||||
|
ifeq ($$($1_SHARED), true)
|
||||||
|
$$(call MakeDir, $(TOPDIR)/.settings)
|
||||||
|
else
|
||||||
|
$$(call MakeDir, $$($1_IDE_OUTPUTDIR)/.settings)
|
||||||
|
endif
|
||||||
|
|
||||||
|
$1_CSETTINGS :=
|
||||||
|
$1_CXXSETTINGS :=
|
||||||
|
|
||||||
|
ifneq ($$(findstring $$($1_NATURE), NATIVE MIXED), )
|
||||||
|
$1_CSETTINGS += $$(foreach module, $$(call FindAllModules), $$(if $$(call FindJavaHeaderDir, $$(module)), \
|
||||||
|
$$(foreach dirs, $$(strip $$(patsubst $(TOPDIR)/%,%,$$(call FindModuleNativeDirs, $$(module)))), \
|
||||||
|
<resource project-relative-path="$$(dirs)"> \
|
||||||
|
<entry flags="LOCAL" kind="includePath" name="$$(call FixPath, $$(call FindJavaHeaderDir, $$(module)))"/> \
|
||||||
|
$$(if $$(findstring jdk.sctp,$$(module)), <entry flags="LOCAL" kind="includePath" name="$$(call FixPath, $$(call FindJavaHeaderDir, java.base))"/>) \
|
||||||
|
</resource>$$(NEWLINE))))
|
||||||
|
|
||||||
|
# main.c source file used for generic launchers
|
||||||
|
$1_CSETTINGS += \
|
||||||
|
<resource project-relative-path="src/java.base/share/native/launcher/main.c"> \
|
||||||
|
<entry kind="macro" name="LAUNCHER_NAME" value=""$(LAUNCHER_NAME)""/> \
|
||||||
|
</resource>$$(NEWLINE)
|
||||||
|
endif
|
||||||
|
|
||||||
|
# HotSpot first
|
||||||
|
$1_CXXSETTINGS += <resource project-relative-path="src/hotspot">$$(NEWLINE)
|
||||||
|
|
||||||
|
# If only the Java Virtual Machine sources were requested, headers from other parts of
|
||||||
|
# the native source that it needs will not be available. Add them as include paths here
|
||||||
|
# instead.
|
||||||
|
ifeq ($$($1_NATURE), HOTSPOT)
|
||||||
|
$1_CXXSETTINGS += $$(foreach src, $$(strip $$(patsubst %,%/include,$$(call FindModuleNativeDirs, java.base))), \
|
||||||
|
$(X) $(X)<entry flags="LOCAL" kind="includePath" name="$$(call FixPath, $$(src))"/>$$(NEWLINE))
|
||||||
|
$1_CXXSETTINGS += $(X) $(X)<entry flags="LOCAL" kind="includePath" name="$$(call FixPath, $(TOPDIR)/src/java.base/share/native/libjimage)"/>$$(NEWLINE)
|
||||||
|
endif
|
||||||
|
|
||||||
|
$1_CXXSETTINGS += $(X) $(X)<entry flags="LOCAL" kind="includePath" name="$$(call FixPath, $(JVM_VARIANT_OUTPUTDIR)/gensrc)"/>$$(NEWLINE)
|
||||||
|
|
||||||
|
ifeq ($$(call check-jvm-feature, compiler2), true)
|
||||||
|
$1_CXXSETTINGS += $(X) $(X)<entry flags="LOCAL" kind="includePath" name="$$(call FixPath, $(JVM_VARIANT_OUTPUTDIR)/gensrc/adfiles)"/>$$(NEWLINE)
|
||||||
|
endif
|
||||||
|
|
||||||
|
$1_CXXSETTINGS += </resource>$$(NEWLINE)
|
||||||
|
|
||||||
|
$1_CXXSETTINGS += \
|
||||||
|
<resource project-relative-path="src/hotspot/share/runtime/abstract_vm_version.cpp"> \
|
||||||
|
<entry kind="macro" name="HOTSPOT_VERSION_STRING" value=""$(VERSION_STRING)""/> \
|
||||||
|
<entry kind="macro" name="DEBUG_LEVEL" value=""$(DEBUG_LEVEL)""/> \
|
||||||
|
<entry kind="macro" name="HOTSPOT_BUILD_USER" value=""$(USERNAME)""/> \
|
||||||
|
<entry kind="macro" name="HOTSPOT_VM_DISTRO" value=""$(HOTSPOT_VM_DISTRO)""/> \
|
||||||
|
<entry kind="macro" name="CPU" value=""$(OPENJDK_TARGET_CPU_VM_VERSION)""/> \
|
||||||
|
<entry kind="macro" name="HOTSPOT_BUILD_TIME" value=""$(if $(HOTSPOT_BUILD_TIME),$(HOTSPOT_BUILD_TIME),$(call EpochToISO8601,$(shell $(DATE) +"%s")))""/> \
|
||||||
|
</resource> \
|
||||||
|
<resource project-relative-path="src/hotspot/share/runtime/arguments.cpp"> \
|
||||||
|
<entry kind="macro" name="HOTSPOT_VERSION_STRING" value=""$(VERSION_STRING)""/> \
|
||||||
|
<entry kind="macro" name="DEBUG_LEVEL" value=""$(DEBUG_LEVEL)""/> \
|
||||||
|
<entry kind="macro" name="HOTSPOT_BUILD_USER" value=""$(USERNAME)""/> \
|
||||||
|
<entry kind="macro" name="HOTSPOT_VM_DISTRO" value=""$(HOTSPOT_VM_DISTRO)""/> \
|
||||||
|
<entry kind="macro" name="CPU" value=""$(OPENJDK_TARGET_CPU_VM_VERSION)""/> \
|
||||||
|
<entry kind="macro" name="HOTSPOT_BUILD_TIME" value=""$(if $(HOTSPOT_BUILD_TIME),$(HOTSPOT_BUILD_TIME),$(call EpochToISO8601,$(shell $(DATE) +"%s")))""/> \
|
||||||
|
</resource>$$(NEWLINE)
|
||||||
|
|
||||||
|
# Now the rest of the C++ sources in the codebase
|
||||||
|
ifneq ($$(findstring $$($1_NATURE), NATIVE MIXED), )
|
||||||
|
$1_CXXSETTINGS += $$(foreach module, $$(call FindAllModules), $$(if $$(call FindJavaHeaderDir, $$(module)), \
|
||||||
|
$$(foreach dirs, $$(strip $$(patsubst $(TOPDIR)/%,%,$$(call FindModuleNativeDirs, $$(module)))), \
|
||||||
|
<resource project-relative-path="$$(dirs)"> \
|
||||||
|
<entry flags="LOCAL" kind="includePath" name="$$(call FixPath, $$(call FindJavaHeaderDir, $$(module)))"/> \
|
||||||
|
</resource>$$(NEWLINE))))
|
||||||
|
endif
|
||||||
|
|
||||||
|
$$(eval $$(call SetupTextFileProcessing, $1_CREATE_SETTINGS_FILE, \
|
||||||
|
SOURCE_FILES := $(TOPDIR)/make/ide/eclipse/settings.template, \
|
||||||
|
OUTPUT_FILE := $$($1_SETTINGS_FILE), \
|
||||||
|
REPLACEMENTS := \
|
||||||
|
@@WORKSPACE@@ => $$($1_WORKSPACE_MAJOR) ; \
|
||||||
|
@@CSETTINGS@@ => $$($1_CSETTINGS) ; \
|
||||||
|
@@CXXSETTINGS@@ => $$($1_CXXSETTINGS), \
|
||||||
|
))
|
||||||
|
|
||||||
|
TARGETS += $$($1_CREATE_SETTINGS_FILE)
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($$($1_SHARED), false)
|
||||||
|
ifneq ($$(findstring $$($1_NATURE), JAVA MIXED), )
|
||||||
|
$1_LINKED_RESOURCES += $$(foreach src,$(JAVA_DIRS), \
|
||||||
|
<link> \
|
||||||
|
<name>$$(strip $$(src))</name> \
|
||||||
|
<type>2</type> \
|
||||||
|
<location>$$(subst \\,/,$$(call FixPath, $(TOPDIR)/$$(src)))</location> \
|
||||||
|
</link>$$(NEWLINE))
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq ($$(findstring $$($1_NATURE), HOTSPOT NATIVE MIXED), )
|
||||||
|
# CDT includes a Makefile editor, so if CDT support was indicated there's no harm in
|
||||||
|
# including the make sources as well, since the cost of indexing them is miniscule
|
||||||
|
$1_LINKED_RESOURCES += \
|
||||||
|
<link> \
|
||||||
|
<name>make</name> \
|
||||||
|
<type>2</type> \
|
||||||
|
<location>$$(subst \\,/,$$(call FixPath, $(TOPDIR)/make))</location> \
|
||||||
|
</link> \
|
||||||
|
<link> \
|
||||||
|
<name>src/hotspot</name> \
|
||||||
|
<type>2</type> \
|
||||||
|
<location>$$(subst \\,/,$$(call FixPath, $(TOPDIR)/src/hotspot))</location> \
|
||||||
|
</link>$$(NEWLINE)
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq ($$(findstring $$($1_NATURE), NATIVE MIXED), )
|
||||||
|
$1_LINKED_RESOURCES += $$(foreach src,$(NATIVE_DIRS), \
|
||||||
|
<link> \
|
||||||
|
<name>$$(strip $$(src))</name> \
|
||||||
|
<type>2</type> \
|
||||||
|
<location>$$(subst \\,/,$$(call FixPath, $(TOPDIR)/$$(src)))</location> \
|
||||||
|
</link>$$(NEWLINE))
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
$$(eval $$(call SetupTextFileProcessing, $1_CREATE_WORKSPACE_FILE, \
|
||||||
|
SOURCE_FILES := $(TOPDIR)/make/ide/eclipse/workspace.template, \
|
||||||
|
OUTPUT_FILE := $$($1_WORKSPACE_FILE), \
|
||||||
|
REPLACEMENTS := \
|
||||||
|
@@BUILD_MANAGERS@@ => $$($1_BUILD_MANAGERS) ; \
|
||||||
|
@@NATURES@@ => $$($1_NATURES) ; \
|
||||||
|
@@LINKED_RESOURCES@@ => $$($1_LINKED_RESOURCES), \
|
||||||
|
))
|
||||||
|
|
||||||
|
TARGETS += $$($1_CREATE_WORKSPACE_FILE)
|
||||||
|
|
||||||
|
endef
|
||||||
|
|
||||||
|
ifeq ($(WORKSPACE), java)
|
||||||
|
$(eval $(call SetupEclipseWorkspace, SETUP_WORKSPACE, \
|
||||||
|
NATURE := JAVA, \
|
||||||
|
SHARED := $(SHARED), \
|
||||||
|
))
|
||||||
|
else ifeq ($(WORKSPACE), hotspot)
|
||||||
|
$(eval $(call SetupEclipseWorkspace, SETUP_WORKSPACE, \
|
||||||
|
NATURE := HOTSPOT, \
|
||||||
|
SHARED := $(SHARED), \
|
||||||
|
))
|
||||||
|
else ifeq ($(WORKSPACE), native)
|
||||||
|
$(eval $(call SetupEclipseWorkspace, SETUP_WORKSPACE, \
|
||||||
|
NATURE := NATIVE, \
|
||||||
|
SHARED := $(SHARED), \
|
||||||
|
))
|
||||||
|
else
|
||||||
|
$(eval $(call SetupEclipseWorkspace, SETUP_WORKSPACE, \
|
||||||
|
NATURE := MIXED, \
|
||||||
|
SHARED := $(SHARED), \
|
||||||
|
))
|
||||||
|
endif
|
||||||
|
|
||||||
|
all: $(TARGETS)
|
||||||
4
make/ide/eclipse/classpath.template
Normal file
4
make/ide/eclipse/classpath.template
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<classpath>
|
||||||
|
@@CLASSPATH@@
|
||||||
|
</classpath>
|
||||||
56
make/ide/eclipse/native.template
Normal file
56
make/ide/eclipse/native.template
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
|
||||||
|
<storageModule moduleId="org.eclipse.cdt.core.language.mapping">
|
||||||
|
<project-mappings>
|
||||||
|
<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cHeader" language="org.eclipse.cdt.core.c"/>
|
||||||
|
<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cSource" language="org.eclipse.cdt.core.c"/>
|
||||||
|
<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cxxHeader" language="org.eclipse.cdt.core.c++"/>
|
||||||
|
<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cxxSource" language="org.eclipse.cdt.core.c++"/>
|
||||||
|
</project-mappings>
|
||||||
|
</storageModule>
|
||||||
|
|
||||||
|
<storageModule moduleId="scannerConfiguration">
|
||||||
|
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||||
|
</storageModule>
|
||||||
|
|
||||||
|
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
|
||||||
|
|
||||||
|
<storageModule moduleId="org.eclipse.cdt.core.settings">
|
||||||
|
<cconfiguration id="cdt.managedbuild.toolchain.gnu.cross.base.@@WORKSPACE@@">
|
||||||
|
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||||
|
|
||||||
|
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.toolchain.gnu.cross.base.@@WORKSPACE@@" moduleId="org.eclipse.cdt.core.settings" name="C/C++">
|
||||||
|
<externalSettings/>
|
||||||
|
<extensions>
|
||||||
|
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||||
|
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||||
|
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||||
|
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||||
|
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||||
|
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||||
|
</extensions>
|
||||||
|
</storageModule>
|
||||||
|
|
||||||
|
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||||
|
<configuration buildProperties="" description="" id="cdt.managedbuild.toolchain.gnu.cross.base.@@WORKSPACE@@" name="C/C++" parent="org.eclipse.cdt.build.core.emptycfg">
|
||||||
|
<folderInfo id="cdt.managedbuild.toolchain.gnu.cross.base.@@WORKSPACE@@.@@MINOR@@" name="/" resourcePath="">
|
||||||
|
<toolChain id="cdt.managedbuild.toolchain.gnu.cross.base.@@MINOR@@" name="Cross GCC" superClass="cdt.managedbuild.toolchain.gnu.cross.base">
|
||||||
|
<option id="cdt.managedbuild.option.gnu.cross.path.@@MINOR@@" name="Path" superClass="cdt.managedbuild.option.gnu.cross.path" value="@@ENV@@" valueType="string"/>
|
||||||
|
<targetPlatform archList="all" binaryParser="" id="cdt.managedbuild.targetPlatform.gnu.cross.@@WORKSPACE@@" isAbstract="false" osList="all" superClass="cdt.managedbuild.targetPlatform.gnu.cross"/>
|
||||||
|
<builder command="@@MAKE@@" arguments="-C @@DIR@@" id="cdt.managedbuild.builder.gnu.cross.@@MINOR@@" incrementalBuildTarget="jdk" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" parallelBuildOn="false" superClass="cdt.managedbuild.builder.gnu.cross"/>
|
||||||
|
</toolChain>
|
||||||
|
</folderInfo>
|
||||||
|
<sourceEntries>
|
||||||
|
@@SRC@@
|
||||||
|
</sourceEntries>
|
||||||
|
</configuration>
|
||||||
|
</storageModule>
|
||||||
|
</cconfiguration>
|
||||||
|
</storageModule>
|
||||||
|
|
||||||
|
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets">
|
||||||
|
<buildTargets>
|
||||||
|
@@MAKE_TARGETS@@
|
||||||
|
</buildTargets>
|
||||||
|
</storageModule>
|
||||||
|
</cproject>
|
||||||
22
make/ide/eclipse/settings.template
Normal file
22
make/ide/eclipse/settings.template
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<project>
|
||||||
|
<configuration id="cdt.managedbuild.toolchain.gnu.cross.base.@@WORKSPACE@@" name="C/C++">
|
||||||
|
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
|
||||||
|
<provider build-parser-id="" cdb-modified-time="" class="org.eclipse.cdt.managedbuilder.internal.language.settings.providers.CompilationDatabaseParser" id="org.eclipse.cdt.managedbuilder.core.CompilationDatabaseParser" name="Compilation Database Parser" prefer-non-shared="true" store-entries-with-project="true"/>
|
||||||
|
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuildCommandParser" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser" keep-relative-paths="false" name="CDT GCC Build Output Parser" parameter="([^/\\\\]*)((g?cc)|([gc]\+\+)|(clang))" prefer-non-shared="true" store-entries-with-project="true"/>
|
||||||
|
<provider class="org.eclipse.cdt.internal.build.crossgcc.CrossGCCBuiltinSpecsDetector" console="true" env-hash="" id="org.eclipse.cdt.build.crossgcc.CrossGCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT Cross GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true" store-entries-with-project="true">
|
||||||
|
<language-scope id="org.eclipse.cdt.core.c"/>
|
||||||
|
<language-scope id="org.eclipse.cdt.core.c++"/>
|
||||||
|
</provider>
|
||||||
|
<provider class="org.eclipse.cdt.core.language.settings.providers.LanguageSettingsGenericProvider" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider" name="CDT User Setting Entries" prefer-non-shared="true" store-entries-with-project="true">
|
||||||
|
<language id="org.eclipse.cdt.core.c">
|
||||||
|
@@CSETTINGS@@
|
||||||
|
</language>
|
||||||
|
|
||||||
|
<language id="org.eclipse.cdt.core.c++">
|
||||||
|
@@CXXSETTINGS@@
|
||||||
|
</language>
|
||||||
|
</provider>
|
||||||
|
</extension>
|
||||||
|
</configuration>
|
||||||
|
</project>
|
||||||
16
make/ide/eclipse/workspace.template
Normal file
16
make/ide/eclipse/workspace.template
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<projectDescription>
|
||||||
|
<name>jdk</name>
|
||||||
|
<comment>The HotSpot Virtual Machine, Runtime Environment, and Development Kit</comment>
|
||||||
|
<projects>
|
||||||
|
</projects>
|
||||||
|
<buildSpec>
|
||||||
|
@@BUILD_MANAGERS@@
|
||||||
|
</buildSpec>
|
||||||
|
<natures>
|
||||||
|
@@NATURES@@
|
||||||
|
</natures>
|
||||||
|
<linkedResources>
|
||||||
|
@@LINKED_RESOURCES@@
|
||||||
|
</linkedResources>
|
||||||
|
</projectDescription>
|
||||||
@@ -54,7 +54,7 @@ public final class JdkIdeaAntLogger extends DefaultLogger {
|
|||||||
/**
|
/**
|
||||||
* This is just a way to pass in customized binary string predicates;
|
* This is just a way to pass in customized binary string predicates;
|
||||||
*
|
*
|
||||||
* TODO: replace with @code{BiPredicate<String, String>} and method reference when moving to 8
|
* TODO: replace with {@code BiPredicate<String, String>} and method reference when moving to 8
|
||||||
*/
|
*/
|
||||||
enum StringBinaryPredicate {
|
enum StringBinaryPredicate {
|
||||||
CONTAINS() {
|
CONTAINS() {
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ public final class LangtoolsIdeaAntLogger extends DefaultLogger {
|
|||||||
/**
|
/**
|
||||||
* This is just a way to pass in customized binary string predicates;
|
* This is just a way to pass in customized binary string predicates;
|
||||||
*
|
*
|
||||||
* TODO: replace with @code{BiPredicate<String, String>} and method reference when moving to 8
|
* TODO: replace with {@code BiPredicate<String, String>} and method reference when moving to 8
|
||||||
*/
|
*/
|
||||||
enum StringBinaryPredicate {
|
enum StringBinaryPredicate {
|
||||||
CONTAINS() {
|
CONTAINS() {
|
||||||
|
|||||||
@@ -35,8 +35,8 @@ ifeq ($(call isTargetOs, windows), true)
|
|||||||
# The next part is a bit hacky. We include the CompileJvm.gmk to be
|
# The next part is a bit hacky. We include the CompileJvm.gmk to be
|
||||||
# able to extract flags, but we do not wish to execute the rules.
|
# able to extract flags, but we do not wish to execute the rules.
|
||||||
|
|
||||||
# Use server as base for defines and includes
|
# Use primary variant for defines and includes
|
||||||
JVM_VARIANT=server
|
JVM_VARIANT := $(JVM_VARIANT_MAIN)
|
||||||
|
|
||||||
include HotspotCommon.gmk
|
include HotspotCommon.gmk
|
||||||
include lib/CompileJvm.gmk
|
include lib/CompileJvm.gmk
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -50,18 +50,19 @@ public class SPI {
|
|||||||
out.println(line);
|
out.println(line);
|
||||||
} else {
|
} else {
|
||||||
charsets.values()
|
charsets.values()
|
||||||
.stream()
|
.stream()
|
||||||
.filter(cs -> cs.pkgName.equals("sun.nio.cs.ext") &&
|
.filter(cs -> cs.pkgName.equals("sun.nio.cs.ext") &&
|
||||||
!cs.isInternal &&
|
!cs.isInternal &&
|
||||||
(cs.os == null || cs.os.equals(os)))
|
(cs.os == null || cs.os.equals(os)))
|
||||||
.forEach( cs -> {
|
.forEach( cs -> {
|
||||||
out.printf(" charset(\"%s\", \"%s\",%n", cs.csName, cs.clzName);
|
out.printf(" charset(\"%s\", \"%s\",%n", cs.csName, cs.clzName);
|
||||||
out.printf(" new String[] {%n");
|
out.printf(" new String[] {%n");
|
||||||
for (String alias : cs.aliases) {
|
for (String alias : cs.aliases) {
|
||||||
out.printf(" \"%s\",%n", alias);
|
out.printf(" \"%s\",%n",
|
||||||
}
|
alias);
|
||||||
out.printf(" });%n%n");
|
}
|
||||||
});
|
out.printf(" });%n%n");
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (type.startsWith("stdcs")) { // StandardCharsets.java
|
} else if (type.startsWith("stdcs")) { // StandardCharsets.java
|
||||||
@@ -93,8 +94,15 @@ public class SPI {
|
|||||||
.filter(cs -> cs.pkgName.equals("sun.nio.cs"))
|
.filter(cs -> cs.pkgName.equals("sun.nio.cs"))
|
||||||
.forEach( cs -> {
|
.forEach( cs -> {
|
||||||
if (cs.aliases == null || cs.aliases.length == 0) {
|
if (cs.aliases == null || cs.aliases.length == 0) {
|
||||||
out.printf(" static String[] aliases_%s() { return null; }%n%n",
|
if (cs.csName.equals("GB18030")) {
|
||||||
cs.clzName);
|
out.printf(" static String[] aliases_GB18030() { return new String[] {%n");
|
||||||
|
out.printf(" GB18030.IS_2000 ? \"gb18030-2000\" : \"gb18030-2022\"%n");
|
||||||
|
out.printf(" };%n");
|
||||||
|
out.printf(" }%n%n");
|
||||||
|
} else {
|
||||||
|
out.printf(" static String[] aliases_%s() { return null; }%n%n",
|
||||||
|
cs.clzName);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
boolean methodEnd = true;
|
boolean methodEnd = true;
|
||||||
// non-final for SJIS and MS932 to support sun.nio.cs.map
|
// non-final for SJIS and MS932 to support sun.nio.cs.map
|
||||||
|
|||||||
@@ -69,6 +69,7 @@ public class CLDRConverter {
|
|||||||
private static String WINZONES_SOURCE_FILE;
|
private static String WINZONES_SOURCE_FILE;
|
||||||
private static String PLURALS_SOURCE_FILE;
|
private static String PLURALS_SOURCE_FILE;
|
||||||
private static String DAYPERIODRULE_SOURCE_FILE;
|
private static String DAYPERIODRULE_SOURCE_FILE;
|
||||||
|
private static String COVERAGELEVELS_FILE;
|
||||||
static String DESTINATION_DIR = "build/gensrc";
|
static String DESTINATION_DIR = "build/gensrc";
|
||||||
|
|
||||||
static final String LOCALE_NAME_PREFIX = "locale.displayname.";
|
static final String LOCALE_NAME_PREFIX = "locale.displayname.";
|
||||||
@@ -258,6 +259,7 @@ public class CLDRConverter {
|
|||||||
WINZONES_SOURCE_FILE = CLDR_BASE + "/supplemental/windowsZones.xml";
|
WINZONES_SOURCE_FILE = CLDR_BASE + "/supplemental/windowsZones.xml";
|
||||||
PLURALS_SOURCE_FILE = CLDR_BASE + "/supplemental/plurals.xml";
|
PLURALS_SOURCE_FILE = CLDR_BASE + "/supplemental/plurals.xml";
|
||||||
DAYPERIODRULE_SOURCE_FILE = CLDR_BASE + "/supplemental/dayPeriods.xml";
|
DAYPERIODRULE_SOURCE_FILE = CLDR_BASE + "/supplemental/dayPeriods.xml";
|
||||||
|
COVERAGELEVELS_FILE = CLDR_BASE + "/properties/coverageLevels.txt";
|
||||||
|
|
||||||
if (BASE_LOCALES.isEmpty()) {
|
if (BASE_LOCALES.isEmpty()) {
|
||||||
setupBaseLocales("en-US");
|
setupBaseLocales("en-US");
|
||||||
@@ -359,13 +361,18 @@ public class CLDRConverter {
|
|||||||
private static List<Bundle> readBundleList() throws Exception {
|
private static List<Bundle> readBundleList() throws Exception {
|
||||||
List<Bundle> retList = new ArrayList<>();
|
List<Bundle> retList = new ArrayList<>();
|
||||||
Path path = FileSystems.getDefault().getPath(SOURCE_FILE_DIR);
|
Path path = FileSystems.getDefault().getPath(SOURCE_FILE_DIR);
|
||||||
|
var coverageMap = coverageLevelsMap();
|
||||||
try (DirectoryStream<Path> dirStr = Files.newDirectoryStream(path)) {
|
try (DirectoryStream<Path> dirStr = Files.newDirectoryStream(path)) {
|
||||||
for (Path entry : dirStr) {
|
for (Path entry : dirStr) {
|
||||||
String fileName = entry.getFileName().toString();
|
String fileName = entry.getFileName().toString();
|
||||||
if (fileName.endsWith(".xml")) {
|
if (fileName.endsWith(".xml")) {
|
||||||
String id = fileName.substring(0, fileName.indexOf('.'));
|
String id = fileName.substring(0, fileName.indexOf('.'));
|
||||||
Locale cldrLoc = Locale.forLanguageTag(toLanguageTag(id));
|
Locale cldrLoc = Locale.forLanguageTag(toLanguageTag(id));
|
||||||
StringBuilder sb = getCandLocales(cldrLoc);
|
List<Locale> candList = getCandidateLocales(cldrLoc);
|
||||||
|
if (!"root".equals(id) && candList.stream().noneMatch(coverageMap::containsKey)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
StringBuilder sb = getCandLocales(candList);
|
||||||
if (sb.indexOf("root") == -1) {
|
if (sb.indexOf("root") == -1) {
|
||||||
sb.append("root");
|
sb.append("root");
|
||||||
}
|
}
|
||||||
@@ -510,8 +517,7 @@ public class CLDRConverter {
|
|||||||
parser.parse(srcfile, handler);
|
parser.parse(srcfile, handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static StringBuilder getCandLocales(Locale cldrLoc) {
|
private static StringBuilder getCandLocales(List<Locale> candList) {
|
||||||
List<Locale> candList = getCandidateLocales(cldrLoc);
|
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
for (Locale loc : candList) {
|
for (Locale loc : candList) {
|
||||||
if (!loc.equals(Locale.ROOT)) {
|
if (!loc.equals(Locale.ROOT)) {
|
||||||
@@ -1195,6 +1201,26 @@ public class CLDRConverter {
|
|||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static Map<Locale, String> coverageLevelsMap() throws Exception {
|
||||||
|
// First, parse `coverageLevels.txt` file
|
||||||
|
var covMap = Files.readAllLines(Path.of(COVERAGELEVELS_FILE)).stream()
|
||||||
|
.filter(line -> !line.isBlank() && !line.startsWith("#"))
|
||||||
|
.map(line -> line.split("[\s\t]*;[\s\t]*", 3))
|
||||||
|
.filter(a -> a[1].matches("basic|moderate|modern|comprehensive"))
|
||||||
|
.collect(Collectors.toMap(
|
||||||
|
a -> Locale.forLanguageTag(a[0].replaceAll("_", "-")),
|
||||||
|
a -> a[1],
|
||||||
|
(v1, v2) -> v2, // should never happen
|
||||||
|
HashMap::new));
|
||||||
|
|
||||||
|
// Add other common (non-seed) locales (below `basic` coverage level) as of v42
|
||||||
|
ResourceBundle.getBundle(CLDRConverter.class.getPackageName() + ".OtherCommonLocales")
|
||||||
|
.keySet()
|
||||||
|
.forEach(k -> covMap.put(Locale.forLanguageTag(k), ""));
|
||||||
|
|
||||||
|
return covMap;
|
||||||
|
}
|
||||||
|
|
||||||
// for debug
|
// for debug
|
||||||
static void dumpMap(Map<String, Object> map) {
|
static void dumpMap(Map<String, Object> map) {
|
||||||
map.entrySet().stream()
|
map.entrySet().stream()
|
||||||
|
|||||||
@@ -0,0 +1,140 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
|
#
|
||||||
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
|
# under the terms of the GNU General Public License version 2 only, as
|
||||||
|
# published by the Free Software Foundation. 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
# Other common (non-seed) locales that are below `Basic` coverage level
|
||||||
|
# as of CLDR v42 (Extracted from
|
||||||
|
# https://github.com/unicode-org/cldr-staging/blob/main/docs/charts/42/tsv/locale-coverage.tsv)
|
||||||
|
|
||||||
|
agq=Aghem
|
||||||
|
ak=Akan
|
||||||
|
ann=Obolo
|
||||||
|
asa=Asu
|
||||||
|
az-Cyrl=Azerbaijani (Cyrillic)
|
||||||
|
bas=Basaa
|
||||||
|
bem=Bemba
|
||||||
|
bez=Bena
|
||||||
|
bm=Bambara
|
||||||
|
bo=Tibetan
|
||||||
|
ccp=Chakma
|
||||||
|
ce=Chechen
|
||||||
|
cgg=Chiga
|
||||||
|
ckb=Central Kurdish
|
||||||
|
dav=Taita
|
||||||
|
dje=Zarma
|
||||||
|
dua=Duala
|
||||||
|
dyo=Jola-Fonyi
|
||||||
|
dz=Dzongkha
|
||||||
|
ebu=Embu
|
||||||
|
ee=Ewe
|
||||||
|
eo=Esperanto
|
||||||
|
ewo=Ewondo
|
||||||
|
ff=Fula
|
||||||
|
frr=Northern Frisian
|
||||||
|
fur=Friulian
|
||||||
|
fy=Western Frisian
|
||||||
|
gsw=Swiss German
|
||||||
|
guz=Gusii
|
||||||
|
gv=Manx
|
||||||
|
haw=Hawaiian
|
||||||
|
ii=Sichuan Yi
|
||||||
|
jgo=Ngomba
|
||||||
|
jmc=Machame
|
||||||
|
kab=Kabyle
|
||||||
|
kam=Kamba
|
||||||
|
kde=Makonde
|
||||||
|
khq=Koyra Chiini
|
||||||
|
ki=Kikuyu
|
||||||
|
kkj=Kako
|
||||||
|
kl=Kalaallisut
|
||||||
|
kln=Kalenjin
|
||||||
|
ksb=Shambala
|
||||||
|
ksf=Bafia
|
||||||
|
ksh=Colognian
|
||||||
|
ku=Kurdish
|
||||||
|
kw=Cornish
|
||||||
|
lag=Langi
|
||||||
|
lb=Luxembourgish
|
||||||
|
lg=Ganda
|
||||||
|
lkt=Lakota
|
||||||
|
ln=Lingala
|
||||||
|
lrc=Northern Luri
|
||||||
|
lu=Luba-Katanga
|
||||||
|
luo=Luo
|
||||||
|
luy=Luyia
|
||||||
|
mas=Masai
|
||||||
|
mdf=Moksha
|
||||||
|
mer=Meru
|
||||||
|
mfe=Morisyen
|
||||||
|
mg=Malagasy
|
||||||
|
mgh=Makhuwa-Meetto
|
||||||
|
mgo=Meta<EFBFBD><EFBFBD>
|
||||||
|
mt=Maltese
|
||||||
|
mua=Mundang
|
||||||
|
mzn=Mazanderani
|
||||||
|
naq=Nama
|
||||||
|
nd=North Ndebele
|
||||||
|
nds=Low German
|
||||||
|
nmg=Kwasio
|
||||||
|
nnh=Ngiemboon
|
||||||
|
nus=Nuer
|
||||||
|
nyn=Nyankole
|
||||||
|
oc=Occitan
|
||||||
|
om=Oromo
|
||||||
|
os=Ossetic
|
||||||
|
pa-Arab=Punjabi (Arabic)
|
||||||
|
pis=Pijin
|
||||||
|
rn=Rundi
|
||||||
|
rof=Rombo
|
||||||
|
rw=Kinyarwanda
|
||||||
|
rwk=Rwa
|
||||||
|
sah=Yakut
|
||||||
|
saq=Samburu
|
||||||
|
sbp=Sangu
|
||||||
|
se=Northern Sami
|
||||||
|
seh=Sena
|
||||||
|
ses=Koyraboro Senni
|
||||||
|
sg=Sango
|
||||||
|
shi=Tachelhit
|
||||||
|
shi-Latn=Tachelhit (Latin)
|
||||||
|
smn=Inari Sami
|
||||||
|
sms=Skolt Sami
|
||||||
|
sn=Shona
|
||||||
|
teo=Teso
|
||||||
|
tok=Toki Pona
|
||||||
|
twq=Tasawaq
|
||||||
|
tzm=Central Atlas Tamazight
|
||||||
|
ug=Uyghur
|
||||||
|
uz-Arab=Uzbek (Arabic)
|
||||||
|
vai=Vai
|
||||||
|
vai-Latn=Vai (Latin)
|
||||||
|
vun=Vunjo
|
||||||
|
wae=Walser
|
||||||
|
xog=Soga
|
||||||
|
yav=Yangben
|
||||||
|
yi=Yiddish
|
||||||
|
zgh=Standard Moroccan Tamazight
|
||||||
|
|
||||||
|
# Not listed, but existed
|
||||||
|
sr-Latn=Serbian (Latin)
|
||||||
@@ -33,6 +33,7 @@ import com.sun.source.tree.MemberReferenceTree;
|
|||||||
import com.sun.source.tree.MemberSelectTree;
|
import com.sun.source.tree.MemberSelectTree;
|
||||||
import com.sun.source.tree.MethodTree;
|
import com.sun.source.tree.MethodTree;
|
||||||
import com.sun.source.tree.ModifiersTree;
|
import com.sun.source.tree.ModifiersTree;
|
||||||
|
import com.sun.source.tree.PrimitiveTypeTree;
|
||||||
import com.sun.source.tree.Tree;
|
import com.sun.source.tree.Tree;
|
||||||
import com.sun.source.tree.VariableTree;
|
import com.sun.source.tree.VariableTree;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@@ -140,9 +141,12 @@ public class Depend implements Plugin {
|
|||||||
public void init(JavacTask jt, String... args) {
|
public void init(JavacTask jt, String... args) {
|
||||||
addExports();
|
addExports();
|
||||||
|
|
||||||
|
Path internalAPIDigestFile;
|
||||||
|
Map<String, String> internalAPI = new HashMap<>();
|
||||||
AtomicBoolean noApiChange = new AtomicBoolean();
|
AtomicBoolean noApiChange = new AtomicBoolean();
|
||||||
|
Context context = ((BasicJavacTask) jt).getContext();
|
||||||
|
JavaCompiler compiler = JavaCompiler.instance(context);
|
||||||
try {
|
try {
|
||||||
Context context = ((BasicJavacTask) jt).getContext();
|
|
||||||
Options options = Options.instance(context);
|
Options options = Options.instance(context);
|
||||||
String modifiedInputs = options.get("modifiedInputs");
|
String modifiedInputs = options.get("modifiedInputs");
|
||||||
if (modifiedInputs == null) {
|
if (modifiedInputs == null) {
|
||||||
@@ -157,8 +161,18 @@ public class Depend implements Plugin {
|
|||||||
Set<Path> modified = Files.readAllLines(Paths.get(modifiedInputs)).stream()
|
Set<Path> modified = Files.readAllLines(Paths.get(modifiedInputs)).stream()
|
||||||
.map(Paths::get)
|
.map(Paths::get)
|
||||||
.collect(Collectors.toSet());
|
.collect(Collectors.toSet());
|
||||||
Path internalAPIDigestFile = Paths.get(internalAPIPath);
|
internalAPIDigestFile = Paths.get(internalAPIPath);
|
||||||
JavaCompiler compiler = JavaCompiler.instance(context);
|
if (Files.isReadable(internalAPIDigestFile)) {
|
||||||
|
try {
|
||||||
|
Files.readAllLines(internalAPIDigestFile, StandardCharsets.UTF_8)
|
||||||
|
.forEach(line -> {
|
||||||
|
String[] keyAndValue = line.split("=");
|
||||||
|
internalAPI.put(keyAndValue[0], keyAndValue[1]);
|
||||||
|
});
|
||||||
|
} catch (IOException ex) {
|
||||||
|
throw new IllegalStateException(ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
Class<?> initialFileParserIntf = Class.forName("com.sun.tools.javac.main.JavaCompiler$InitialFileParserIntf");
|
Class<?> initialFileParserIntf = Class.forName("com.sun.tools.javac.main.JavaCompiler$InitialFileParserIntf");
|
||||||
Class<?> initialFileParser = Class.forName("com.sun.tools.javac.main.JavaCompiler$InitialFileParser");
|
Class<?> initialFileParser = Class.forName("com.sun.tools.javac.main.JavaCompiler$InitialFileParser");
|
||||||
Field initialParserKeyField = initialFileParser.getDeclaredField("initialParserKey");
|
Field initialParserKeyField = initialFileParser.getDeclaredField("initialParserKey");
|
||||||
@@ -169,7 +183,7 @@ public class Depend implements Plugin {
|
|||||||
new Class<?>[] {initialFileParserIntf},
|
new Class<?>[] {initialFileParserIntf},
|
||||||
new FilteredInitialFileParser(compiler,
|
new FilteredInitialFileParser(compiler,
|
||||||
modified,
|
modified,
|
||||||
internalAPIDigestFile,
|
internalAPI,
|
||||||
noApiChange,
|
noApiChange,
|
||||||
debug));
|
debug));
|
||||||
context.<Object>put(key, initialParserInstance);
|
context.<Object>put(key, initialParserInstance);
|
||||||
@@ -213,7 +227,17 @@ public class Depend implements Plugin {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (te.getKind() == Kind.COMPILATION && !noApiChange.get()) {
|
if (te.getKind() == Kind.COMPILATION && !noApiChange.get() &&
|
||||||
|
compiler.errorCount() == 0) {
|
||||||
|
try (OutputStream out = Files.newOutputStream(internalAPIDigestFile)) {
|
||||||
|
String hashes = internalAPI.entrySet()
|
||||||
|
.stream()
|
||||||
|
.map(e -> e.getKey() + "=" + e.getValue())
|
||||||
|
.collect(Collectors.joining("\n"));
|
||||||
|
out.write(hashes.getBytes(StandardCharsets.UTF_8));
|
||||||
|
} catch (IOException ex) {
|
||||||
|
throw new IllegalStateException(ex);
|
||||||
|
}
|
||||||
String previousSignature = null;
|
String previousSignature = null;
|
||||||
File digestFile = new File(args[0]);
|
File digestFile = new File(args[0]);
|
||||||
try (InputStream in = new FileInputStream(digestFile)) {
|
try (InputStream in = new FileInputStream(digestFile)) {
|
||||||
@@ -258,20 +282,8 @@ public class Depend implements Plugin {
|
|||||||
|
|
||||||
private com.sun.tools.javac.util.List<JCCompilationUnit> doFilteredParse(
|
private com.sun.tools.javac.util.List<JCCompilationUnit> doFilteredParse(
|
||||||
JavaCompiler compiler, Iterable<JavaFileObject> fileObjects, Set<Path> modified,
|
JavaCompiler compiler, Iterable<JavaFileObject> fileObjects, Set<Path> modified,
|
||||||
Path internalAPIDigestFile, AtomicBoolean noApiChange,
|
Map<String, String> internalAPI, AtomicBoolean noApiChange,
|
||||||
boolean debug) {
|
boolean debug) {
|
||||||
Map<String, String> internalAPI = new LinkedHashMap<>();
|
|
||||||
if (Files.isReadable(internalAPIDigestFile)) {
|
|
||||||
try {
|
|
||||||
Files.readAllLines(internalAPIDigestFile, StandardCharsets.UTF_8)
|
|
||||||
.forEach(line -> {
|
|
||||||
String[] keyAndValue = line.split("=");
|
|
||||||
internalAPI.put(keyAndValue[0], keyAndValue[1]);
|
|
||||||
});
|
|
||||||
} catch (IOException ex) {
|
|
||||||
throw new IllegalStateException(ex);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Map<JavaFileObject, JCCompilationUnit> files2CUT = new IdentityHashMap<>();
|
Map<JavaFileObject, JCCompilationUnit> files2CUT = new IdentityHashMap<>();
|
||||||
boolean fullRecompile = modified.stream()
|
boolean fullRecompile = modified.stream()
|
||||||
.map(Path::toString)
|
.map(Path::toString)
|
||||||
@@ -289,7 +301,6 @@ public class Depend implements Plugin {
|
|||||||
result.add(parsed);
|
result.add(parsed);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fullRecompile) {
|
if (fullRecompile) {
|
||||||
for (JavaFileObject jfo : fileObjects) {
|
for (JavaFileObject jfo : fileObjects) {
|
||||||
if (!modified.contains(Path.of(jfo.getName()))) {
|
if (!modified.contains(Path.of(jfo.getName()))) {
|
||||||
@@ -301,15 +312,6 @@ public class Depend implements Plugin {
|
|||||||
result.add(parsed);
|
result.add(parsed);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
try (OutputStream out = Files.newOutputStream(internalAPIDigestFile)) {
|
|
||||||
String hashes = internalAPI.entrySet()
|
|
||||||
.stream()
|
|
||||||
.map(e -> e.getKey() + "=" + e.getValue())
|
|
||||||
.collect(Collectors.joining("\n"));
|
|
||||||
out.write(hashes.getBytes(StandardCharsets.UTF_8));
|
|
||||||
} catch (IOException ex) {
|
|
||||||
throw new IllegalStateException(ex);
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
noApiChange.set(true);
|
noApiChange.set(true);
|
||||||
}
|
}
|
||||||
@@ -835,7 +837,7 @@ public class Depend implements Plugin {
|
|||||||
!isPrivate(((VariableTree) m).getModifiers()) ||
|
!isPrivate(((VariableTree) m).getModifiers()) ||
|
||||||
isRecordComponent((VariableTree) m);
|
isRecordComponent((VariableTree) m);
|
||||||
case BLOCK -> false;
|
case BLOCK -> false;
|
||||||
default -> throw new IllegalStateException("Unexpected tree kind: " + m.getKind());
|
default -> false;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -878,24 +880,30 @@ public class Depend implements Plugin {
|
|||||||
return super.visitModifiers(node, p);
|
return super.visitModifiers(node, p);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Void visitPrimitiveType(PrimitiveTypeTree node, Void p) {
|
||||||
|
update(node.getPrimitiveTypeKind().name());
|
||||||
|
return super.visitPrimitiveType(node, p);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private class FilteredInitialFileParser implements InvocationHandler {
|
private class FilteredInitialFileParser implements InvocationHandler {
|
||||||
|
|
||||||
private final JavaCompiler compiler;
|
private final JavaCompiler compiler;
|
||||||
private final Set<Path> modified;
|
private final Set<Path> modified;
|
||||||
private final Path internalAPIDigestFile;
|
private final Map<String, String> internalAPI;
|
||||||
private final AtomicBoolean noApiChange;
|
private final AtomicBoolean noApiChange;
|
||||||
private final boolean debug;
|
private final boolean debug;
|
||||||
|
|
||||||
public FilteredInitialFileParser(JavaCompiler compiler,
|
public FilteredInitialFileParser(JavaCompiler compiler,
|
||||||
Set<Path> modified,
|
Set<Path> modified,
|
||||||
Path internalAPIDigestFile,
|
Map<String, String> internalAPI,
|
||||||
AtomicBoolean noApiChange,
|
AtomicBoolean noApiChange,
|
||||||
boolean debug) {
|
boolean debug) {
|
||||||
this.compiler = compiler;
|
this.compiler = compiler;
|
||||||
this.modified = modified;
|
this.modified = modified;
|
||||||
this.internalAPIDigestFile = internalAPIDigestFile;
|
this.internalAPI = internalAPI;
|
||||||
this.noApiChange = noApiChange;
|
this.noApiChange = noApiChange;
|
||||||
this.debug = debug;
|
this.debug = debug;
|
||||||
}
|
}
|
||||||
@@ -907,7 +915,7 @@ public class Depend implements Plugin {
|
|||||||
case "parse" -> doFilteredParse(compiler,
|
case "parse" -> doFilteredParse(compiler,
|
||||||
(Iterable<JavaFileObject>) args[0],
|
(Iterable<JavaFileObject>) args[0],
|
||||||
modified,
|
modified,
|
||||||
internalAPIDigestFile,
|
internalAPI,
|
||||||
noApiChange,
|
noApiChange,
|
||||||
debug);
|
debug);
|
||||||
default -> throw new UnsupportedOperationException();
|
default -> throw new UnsupportedOperationException();
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ import com.sun.source.util.Plugin;
|
|||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
|
import java.io.Writer;
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
import java.net.URISyntaxException;
|
import java.net.URISyntaxException;
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
@@ -54,6 +55,8 @@ public class DependTest {
|
|||||||
test.testRecords();
|
test.testRecords();
|
||||||
test.testImports();
|
test.testImports();
|
||||||
test.testModifiers();
|
test.testModifiers();
|
||||||
|
test.testPrimitiveTypeChanges();
|
||||||
|
test.testWithErrors();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testMethods() throws Exception {
|
public void testMethods() throws Exception {
|
||||||
@@ -302,6 +305,27 @@ public class DependTest {
|
|||||||
"package test; public record Test (int x, int y) {" +
|
"package test; public record Test (int x, int y) {" +
|
||||||
"public Test (int x, int y, int z) { this(x, y); } }", // additional ctr
|
"public Test (int x, int y, int z) { this(x, y); } }", // additional ctr
|
||||||
true);
|
true);
|
||||||
|
doOrdinaryTest("package test; public record Test (int x) { }",
|
||||||
|
"package test; public record Test (long x) { unresolved f; }", //erroneous record member, should not crash
|
||||||
|
false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testPrimitiveTypeChanges() throws Exception {
|
||||||
|
doOrdinaryTest("package test; public record Test (int x) { }",
|
||||||
|
"package test; public record Test (long x) { }",
|
||||||
|
true);
|
||||||
|
doOrdinaryTest("package test; public record Test (int x) { }",
|
||||||
|
"package test; public record Test (Integer x) { }",
|
||||||
|
true);
|
||||||
|
doOrdinaryTest("package test; public record Test (Integer x) { }",
|
||||||
|
"package test; public record Test (int x) { }",
|
||||||
|
true);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testWithErrors() throws Exception {
|
||||||
|
doOrdinaryTest("package test; public record Test (int x) { }",
|
||||||
|
"package test; public record Test (long x) { static unresolved f; }",
|
||||||
|
false); //the API change should not be recorded for code with errors
|
||||||
}
|
}
|
||||||
|
|
||||||
private final JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
|
private final JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
|
||||||
@@ -310,6 +334,7 @@ public class DependTest {
|
|||||||
private Path scratchClasses;
|
private Path scratchClasses;
|
||||||
private Path apiHash;
|
private Path apiHash;
|
||||||
private Path treeHash;
|
private Path treeHash;
|
||||||
|
private Path modifiedFiles;
|
||||||
|
|
||||||
private void setupClass() throws IOException {
|
private void setupClass() throws IOException {
|
||||||
depend = Paths.get(Depend.class.getProtectionDomain().getCodeSource().getLocation().getPath());
|
depend = Paths.get(Depend.class.getProtectionDomain().getCodeSource().getLocation().getPath());
|
||||||
@@ -328,6 +353,7 @@ public class DependTest {
|
|||||||
|
|
||||||
apiHash = scratch.resolve("api");
|
apiHash = scratch.resolve("api");
|
||||||
treeHash = scratch.resolve("tree");
|
treeHash = scratch.resolve("tree");
|
||||||
|
modifiedFiles = scratch.resolve("modified-files");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void doOrdinaryTest(String codeBefore, String codeAfter, boolean hashChangeExpected) throws Exception {
|
private void doOrdinaryTest(String codeBefore, String codeAfter, boolean hashChangeExpected) throws Exception {
|
||||||
@@ -335,11 +361,16 @@ public class DependTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void doOrdinaryTest(String codeBefore, String codeAfter, boolean apiHashChangeExpected, boolean treeHashChangeExpected) throws Exception {
|
private void doOrdinaryTest(String codeBefore, String codeAfter, boolean apiHashChangeExpected, boolean treeHashChangeExpected) throws Exception {
|
||||||
|
try (Writer out = Files.newBufferedWriter(modifiedFiles)) {
|
||||||
|
out.append("module-info.java\n");
|
||||||
|
out.append("test.Test.java\n");
|
||||||
|
}
|
||||||
List<String> options =
|
List<String> options =
|
||||||
Arrays.asList("-d", scratchClasses.toString(),
|
Arrays.asList("-d", scratchClasses.toString(),
|
||||||
"-processorpath", depend.toString() + File.pathSeparator + scratchServices.toString(),
|
"-processorpath", depend.toString() + File.pathSeparator + scratchServices.toString(),
|
||||||
"-Xplugin:depend " + apiHash.toString() + " " + treeHash.toString(),
|
"-Xplugin:depend " + apiHash.toString(),
|
||||||
"-XDmodifiedInputs=build-all");
|
"-XDinternalAPIPath=" + treeHash.toString(),
|
||||||
|
"-XDmodifiedInputs=" + modifiedFiles.toString());
|
||||||
List<TestJavaFileObject> beforeFiles =
|
List<TestJavaFileObject> beforeFiles =
|
||||||
Arrays.asList(new TestJavaFileObject("module-info", "module m { exports test; }"),
|
Arrays.asList(new TestJavaFileObject("module-info", "module m { exports test; }"),
|
||||||
new TestJavaFileObject("test.Test", codeBefore));
|
new TestJavaFileObject("test.Test", codeBefore));
|
||||||
@@ -369,11 +400,19 @@ public class DependTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void doModuleTest(String codeBefore, String codeAfter, boolean apiHashChangeExpected, boolean treeHashChangeExpected) throws Exception {
|
private void doModuleTest(String codeBefore, String codeAfter, boolean apiHashChangeExpected, boolean treeHashChangeExpected) throws Exception {
|
||||||
|
try (Writer out = Files.newBufferedWriter(modifiedFiles)) {
|
||||||
|
out.append("module-info.java\n");
|
||||||
|
out.append("test.Test1.java\n");
|
||||||
|
out.append("test.Test2.java\n");
|
||||||
|
out.append("test.TestImpl1.java\n");
|
||||||
|
out.append("test.TestImpl2.java\n");
|
||||||
|
}
|
||||||
List<String> options =
|
List<String> options =
|
||||||
Arrays.asList("-d", scratchClasses.toString(),
|
Arrays.asList("-d", scratchClasses.toString(),
|
||||||
"-processorpath", depend.toString() + File.pathSeparator + scratchServices.toString(),
|
"-processorpath", depend.toString() + File.pathSeparator + scratchServices.toString(),
|
||||||
"-Xplugin:depend " + apiHash.toString() + " " + treeHash.toString(),
|
"-Xplugin:depend " + apiHash.toString() + " " + treeHash.toString(),
|
||||||
"-XDmodifiedInputs=build-all");
|
"-XDinternalAPIPath=" + treeHash.toString(),
|
||||||
|
"-XDmodifiedInputs=" + modifiedFiles.toString());
|
||||||
List<TestJavaFileObject> beforeFiles =
|
List<TestJavaFileObject> beforeFiles =
|
||||||
Arrays.asList(new TestJavaFileObject("module-info", codeBefore),
|
Arrays.asList(new TestJavaFileObject("module-info", codeBefore),
|
||||||
new TestJavaFileObject("test.Test1", "package test; public interface Test1 {}"),
|
new TestJavaFileObject("test.Test1", "package test; public interface Test1 {}"),
|
||||||
@@ -406,10 +445,12 @@ public class DependTest {
|
|||||||
|
|
||||||
private static final class TestJavaFileObject extends SimpleJavaFileObject {
|
private static final class TestJavaFileObject extends SimpleJavaFileObject {
|
||||||
|
|
||||||
|
private final String className;
|
||||||
private final String code;
|
private final String code;
|
||||||
|
|
||||||
public TestJavaFileObject(String className, String code) throws URISyntaxException {
|
public TestJavaFileObject(String className, String code) throws URISyntaxException {
|
||||||
super(new URI("mem:/" + className.replace('.', '/') + ".java"), Kind.SOURCE);
|
super(new URI("mem:/" + className.replace('.', '/') + ".java"), Kind.SOURCE);
|
||||||
|
this.className = className;
|
||||||
this.code = code;
|
this.code = code;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -418,5 +459,10 @@ public class DependTest {
|
|||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getName() {
|
||||||
|
return className + ".java";
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,93 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2019, 2023, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
|
*
|
||||||
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
* under the terms of the GNU General Public License version 2 only, as
|
||||||
|
* published by the Free Software Foundation. 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package build.tools.generatecharacter;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
import java.nio.file.Path;
|
||||||
|
import java.nio.file.StandardOpenOption;
|
||||||
|
import java.util.AbstractMap;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.function.Predicate;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
import java.util.stream.IntStream;
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A class holding emoji character properties
|
||||||
|
* https://unicode.org/reports/tr51/#Emoji_Properties_and_Data_Files
|
||||||
|
*/
|
||||||
|
class EmojiData {
|
||||||
|
// Emoji properties map
|
||||||
|
private final Map<Integer, Long> emojiProps;
|
||||||
|
|
||||||
|
static EmojiData readSpecFile(Path file, int plane) throws IOException {
|
||||||
|
return new EmojiData(file, plane);
|
||||||
|
}
|
||||||
|
|
||||||
|
EmojiData(Path file, int plane) throws IOException {
|
||||||
|
emojiProps = Files.readAllLines(file).stream()
|
||||||
|
.map(line -> line.split("#", 2)[0])
|
||||||
|
.filter(Predicate.not(String::isBlank))
|
||||||
|
.map(line -> line.split("[ \t]*;[ \t]*", 2))
|
||||||
|
.flatMap(map -> {
|
||||||
|
var range = map[0].split("\\.\\.", 2);
|
||||||
|
var start = Integer.valueOf(range[0], 16);
|
||||||
|
if ((start >> 16) != plane) {
|
||||||
|
return Stream.empty();
|
||||||
|
} else {
|
||||||
|
return range.length == 1 ?
|
||||||
|
Stream.of(new AbstractMap.SimpleEntry<>(start, convertType(map[1].trim()))) :
|
||||||
|
IntStream.rangeClosed(start, Integer.valueOf(range[1], 16))
|
||||||
|
.mapToObj(cp -> new AbstractMap.SimpleEntry<>(cp, convertType(map[1].trim())));
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.collect(Collectors.toMap(AbstractMap.SimpleEntry::getKey,
|
||||||
|
AbstractMap.SimpleEntry::getValue,
|
||||||
|
(v1, v2) -> v1 | v2));
|
||||||
|
}
|
||||||
|
|
||||||
|
long properties(int cp) {
|
||||||
|
return emojiProps.get(cp);
|
||||||
|
}
|
||||||
|
|
||||||
|
Set<Integer> codepoints() {
|
||||||
|
return emojiProps.keySet();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static long convertType(String type) {
|
||||||
|
return switch (type) {
|
||||||
|
case "Emoji" -> GenerateCharacter.maskEmoji;
|
||||||
|
case "Emoji_Presentation" -> GenerateCharacter.maskEmojiPresentation;
|
||||||
|
case "Emoji_Modifier" -> GenerateCharacter.maskEmojiModifier;
|
||||||
|
case "Emoji_Modifier_Base" -> GenerateCharacter.maskEmojiModifierBase;
|
||||||
|
case "Emoji_Component" -> GenerateCharacter.maskEmojiComponent;
|
||||||
|
case "Extended_Pictographic" -> GenerateCharacter.maskExtendedPictographic;
|
||||||
|
default -> throw new InternalError("Unrecognizable Emoji type: " + type);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2002, 2021, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2002, 2023, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -33,6 +33,7 @@ import java.io.PrintWriter;
|
|||||||
import java.io.BufferedWriter;
|
import java.io.BufferedWriter;
|
||||||
import java.io.FileWriter;
|
import java.io.FileWriter;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.nio.file.Paths;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import build.tools.generatecharacter.CharacterName;
|
import build.tools.generatecharacter.CharacterName;
|
||||||
@@ -74,6 +75,7 @@ public class GenerateCharacter {
|
|||||||
static String DefaultSpecialCasingFileName = ROOT + "SpecialCasing.txt";
|
static String DefaultSpecialCasingFileName = ROOT + "SpecialCasing.txt";
|
||||||
static String DefaultPropListFileName = ROOT + "PropList.txt";
|
static String DefaultPropListFileName = ROOT + "PropList.txt";
|
||||||
static String DefaultDerivedPropsFileName = ROOT + "DerivedCoreProperties.txt";
|
static String DefaultDerivedPropsFileName = ROOT + "DerivedCoreProperties.txt";
|
||||||
|
static String DefaultEmojiDataFileName = ROOT + "emoji-data.txt";
|
||||||
static String DefaultJavaTemplateFileName = ROOT + "Character.java.template";
|
static String DefaultJavaTemplateFileName = ROOT + "Character.java.template";
|
||||||
static String DefaultJavaOutputFileName = ROOT + "Character.java";
|
static String DefaultJavaOutputFileName = ROOT + "Character.java";
|
||||||
static String DefaultCTemplateFileName = ROOT + "Character.c.template";
|
static String DefaultCTemplateFileName = ROOT + "Character.c.template";
|
||||||
@@ -105,7 +107,7 @@ public class GenerateCharacter {
|
|||||||
entries are short rather than byte).
|
entries are short rather than byte).
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* The character properties are currently encoded into A (32 bits) and B (8 bits)
|
/* The character properties are currently encoded into A (32 bits) and B (16 bits)
|
||||||
two parts.
|
two parts.
|
||||||
|
|
||||||
A: the low 32 bits are defined in the following manner:
|
A: the low 32 bits are defined in the following manner:
|
||||||
@@ -160,6 +162,13 @@ public class GenerateCharacter {
|
|||||||
1 bit Ideographic property
|
1 bit Ideographic property
|
||||||
1 bit ID_Start property
|
1 bit ID_Start property
|
||||||
1 bit ID_Continue property
|
1 bit ID_Continue property
|
||||||
|
6 bits for Emoji properties :-
|
||||||
|
1 bit for Emoji
|
||||||
|
1 bit for Emoji_Presentation
|
||||||
|
1 bit for Emoji_Modifier
|
||||||
|
1 bit for Emoji_Modifier_Base
|
||||||
|
1 bit for Emoji_Component
|
||||||
|
1 bit for Extended_Pictographic
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
@@ -188,15 +197,21 @@ public class GenerateCharacter {
|
|||||||
// maskMirrored needs to be long, if up 16-bit
|
// maskMirrored needs to be long, if up 16-bit
|
||||||
private static final long maskMirrored = 0x80000000L;
|
private static final long maskMirrored = 0x80000000L;
|
||||||
|
|
||||||
// bit masks identify the 8-bit property field described above, in B
|
// bit masks identify the 16-bit property field described above, in B
|
||||||
// table
|
// table
|
||||||
private static final long
|
static final long
|
||||||
maskOtherLowercase = 0x0100000000L,
|
maskOtherLowercase = 1L << 32,
|
||||||
maskOtherUppercase = 0x0200000000L,
|
maskOtherUppercase = 1L << 33,
|
||||||
maskOtherAlphabetic = 0x0400000000L,
|
maskOtherAlphabetic = 1L << 34,
|
||||||
maskIdeographic = 0x0800000000L,
|
maskIdeographic = 1L << 35,
|
||||||
maskIDStart = 0x1000000000L,
|
maskIDStart = 1L << 36,
|
||||||
maskIDContinue = 0x2000000000L;
|
maskIDContinue = 1L << 37,
|
||||||
|
maskEmoji = 1L << 38,
|
||||||
|
maskEmojiPresentation = 1L << 39,
|
||||||
|
maskEmojiModifier = 1L << 40,
|
||||||
|
maskEmojiModifierBase = 1L << 41,
|
||||||
|
maskEmojiComponent = 1L << 42,
|
||||||
|
maskExtendedPictographic = 1L << 43;
|
||||||
|
|
||||||
// Can compare masked values with these to determine
|
// Can compare masked values with these to determine
|
||||||
// numeric or lexical types.
|
// numeric or lexical types.
|
||||||
@@ -304,7 +319,7 @@ public class GenerateCharacter {
|
|||||||
* @see GenerateCharacter#buildOne
|
* @see GenerateCharacter#buildOne
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static long[] buildMap(UnicodeSpec[] data, SpecialCaseMap[] specialMaps, PropList propList)
|
static long[] buildMap(UnicodeSpec[] data, SpecialCaseMap[] specialMaps, PropList propList, EmojiData emojiData)
|
||||||
{
|
{
|
||||||
long[] result = new long[bLatin1 ? 256 : 1 << 16];
|
long[] result = new long[bLatin1 ? 256 : 1 << 16];
|
||||||
int k = 0;
|
int k = 0;
|
||||||
@@ -361,6 +376,9 @@ public class GenerateCharacter {
|
|||||||
addExProp(result, propList, "ID_Start", maskIDStart);
|
addExProp(result, propList, "ID_Start", maskIDStart);
|
||||||
addExProp(result, propList, "ID_Continue", maskIDContinue);
|
addExProp(result, propList, "ID_Continue", maskIDContinue);
|
||||||
|
|
||||||
|
// add Emoji properties to the upper 16-bit
|
||||||
|
addEmojiProps(result, emojiData);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -583,6 +601,14 @@ public class GenerateCharacter {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void addEmojiProps(long[] map, EmojiData emojiData) {
|
||||||
|
for (int cp : emojiData.codepoints()) {
|
||||||
|
var index = cp & 0xFFFF;
|
||||||
|
if (index < map.length)
|
||||||
|
map[index] |= emojiData.properties(cp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is the heart of the table compression strategy. The inputs are a map
|
* This is the heart of the table compression strategy. The inputs are a map
|
||||||
* and a number of bits (size). The map is simply an array of long integer values;
|
* and a number of bits (size). The map is simply an array of long integer values;
|
||||||
@@ -776,6 +802,12 @@ OUTER: for (int i = 0; i < n; i += m) {
|
|||||||
if (x.equals("maskIdeographic")) return "0x" + hex4(maskIdeographic >> 32);
|
if (x.equals("maskIdeographic")) return "0x" + hex4(maskIdeographic >> 32);
|
||||||
if (x.equals("maskIDStart")) return "0x" + hex4(maskIDStart >> 32);
|
if (x.equals("maskIDStart")) return "0x" + hex4(maskIDStart >> 32);
|
||||||
if (x.equals("maskIDContinue")) return "0x" + hex4(maskIDContinue >> 32);
|
if (x.equals("maskIDContinue")) return "0x" + hex4(maskIDContinue >> 32);
|
||||||
|
if (x.equals("maskEmoji")) return "0x" + hex4(maskEmoji >> 32);
|
||||||
|
if (x.equals("maskEmojiPresentation")) return "0x" + hex4(maskEmojiPresentation >> 32);
|
||||||
|
if (x.equals("maskEmojiModifier")) return "0x" + hex4(maskEmojiModifier >> 32);
|
||||||
|
if (x.equals("maskEmojiModifierBase")) return "0x" + hex4(maskEmojiModifierBase >> 32);
|
||||||
|
if (x.equals("maskEmojiComponent")) return "0x" + hex4(maskEmojiComponent >> 32);
|
||||||
|
if (x.equals("maskExtendedPictographic")) return "0x" + hex4(maskExtendedPictographic >> 32);
|
||||||
if (x.equals("valueIgnorable")) return "0x" + hex8(valueIgnorable);
|
if (x.equals("valueIgnorable")) return "0x" + hex8(valueIgnorable);
|
||||||
if (x.equals("valueJavaUnicodeStart")) return "0x" + hex8(valueJavaUnicodeStart);
|
if (x.equals("valueJavaUnicodeStart")) return "0x" + hex8(valueJavaUnicodeStart);
|
||||||
if (x.equals("valueJavaOnlyStart")) return "0x" + hex8(valueJavaOnlyStart);
|
if (x.equals("valueJavaOnlyStart")) return "0x" + hex8(valueJavaOnlyStart);
|
||||||
@@ -952,7 +984,7 @@ OUTER: for (int i = 0; i < n; i += m) {
|
|||||||
|
|
||||||
// If we ever need more than 32 bits to represent the character properties,
|
// If we ever need more than 32 bits to represent the character properties,
|
||||||
// then a table "B" may be needed as well.
|
// then a table "B" may be needed as well.
|
||||||
genTable(result, "B", tables[n - 1], 32, 8, sizes[n - 1], false, 0, true, true, false);
|
genTable(result, "B", tables[n - 1], 32, 16, sizes[n - 1], false, 0, true, true, false);
|
||||||
|
|
||||||
totalBytes += ((((tables[n - 1].length * (identifiers ? 2 : 32)) + 31) >> 5) << 2);
|
totalBytes += ((((tables[n - 1].length * (identifiers ? 2 : 32)) + 31) >> 5) << 2);
|
||||||
result.append(commentStart);
|
result.append(commentStart);
|
||||||
@@ -1434,6 +1466,42 @@ OUTER: for (int i = 0; i < n; i += m) {
|
|||||||
result.append(", supradecimal ");
|
result.append(", supradecimal ");
|
||||||
result.append((val & maskDigitOffset) >> shiftDigitOffset);
|
result.append((val & maskDigitOffset) >> shiftDigitOffset);
|
||||||
}
|
}
|
||||||
|
if ((val & maskOtherLowercase) == maskOtherLowercase) {
|
||||||
|
result.append(", otherLowercase");
|
||||||
|
}
|
||||||
|
if ((val & maskOtherUppercase) == maskOtherUppercase) {
|
||||||
|
result.append(", otherUppercase");
|
||||||
|
}
|
||||||
|
if ((val & maskOtherAlphabetic) == maskOtherAlphabetic) {
|
||||||
|
result.append(", otherAlphabetic");
|
||||||
|
}
|
||||||
|
if ((val & maskIdeographic) == maskIdeographic) {
|
||||||
|
result.append(", ideographic");
|
||||||
|
}
|
||||||
|
if ((val & maskIDStart) == maskIDStart) {
|
||||||
|
result.append(", IDStart");
|
||||||
|
}
|
||||||
|
if ((val & maskIDContinue) == maskIDContinue) {
|
||||||
|
result.append(", IDContinue");
|
||||||
|
}
|
||||||
|
if ((val & maskEmoji) == maskEmoji) {
|
||||||
|
result.append(", emoji");
|
||||||
|
}
|
||||||
|
if ((val & maskEmojiPresentation) == maskEmojiPresentation) {
|
||||||
|
result.append(", emojiPresentation");
|
||||||
|
}
|
||||||
|
if ((val & maskEmojiModifier) == maskEmojiModifier) {
|
||||||
|
result.append(", emojiModifier");
|
||||||
|
}
|
||||||
|
if ((val & maskEmojiModifierBase) == maskEmojiModifierBase) {
|
||||||
|
result.append(", emojiModifierBase");
|
||||||
|
}
|
||||||
|
if ((val & maskEmojiComponent) == maskEmojiComponent) {
|
||||||
|
result.append(", emojiComponent");
|
||||||
|
}
|
||||||
|
if ((val & maskExtendedPictographic) == maskExtendedPictographic) {
|
||||||
|
result.append(", extendedPictographic");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static String[] tableNames = { "X", "Y", "Z", "P", "Q", "R", "S", "T", "U", "V", "W" };
|
static String[] tableNames = { "X", "Y", "Z", "P", "Q", "R", "S", "T", "U", "V", "W" };
|
||||||
@@ -1512,6 +1580,7 @@ OUTER: for (int i = 0; i < n; i += m) {
|
|||||||
static String SpecialCasingFileName = null;
|
static String SpecialCasingFileName = null;
|
||||||
static String PropListFileName = null;
|
static String PropListFileName = null;
|
||||||
static String DerivedPropsFileName = null;
|
static String DerivedPropsFileName = null;
|
||||||
|
static String EmojiDataFileName = null;
|
||||||
static boolean useCharForByte = false;
|
static boolean useCharForByte = false;
|
||||||
static int[] sizes;
|
static int[] sizes;
|
||||||
static int bins = 0; // liu; if > 0, then perform search
|
static int bins = 0; // liu; if > 0, then perform search
|
||||||
@@ -1649,6 +1718,14 @@ OUTER: for (int i = 0; i < n; i += m) {
|
|||||||
DerivedPropsFileName = args[++j];
|
DerivedPropsFileName = args[++j];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (args[j].equals("-emojidata")) {
|
||||||
|
if (j == args.length -1) {
|
||||||
|
FAIL("File name missing after -emojidata");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
EmojiDataFileName = args[++j];
|
||||||
|
}
|
||||||
|
}
|
||||||
else if (args[j].equals("-plane")) {
|
else if (args[j].equals("-plane")) {
|
||||||
if (j == args.length -1) {
|
if (j == args.length -1) {
|
||||||
FAIL("Plane number missing after -plane");
|
FAIL("Plane number missing after -plane");
|
||||||
@@ -1717,6 +1794,10 @@ OUTER: for (int i = 0; i < n; i += m) {
|
|||||||
DerivedPropsFileName = DefaultDerivedPropsFileName;
|
DerivedPropsFileName = DefaultDerivedPropsFileName;
|
||||||
desc.append(" [-derivedprops " + DerivedPropsFileName + ']');
|
desc.append(" [-derivedprops " + DerivedPropsFileName + ']');
|
||||||
}
|
}
|
||||||
|
if (EmojiDataFileName == null) {
|
||||||
|
EmojiDataFileName = DefaultEmojiDataFileName;
|
||||||
|
desc.append(" [-emojidata " + EmojiDataFileName + ']');
|
||||||
|
}
|
||||||
if (TemplateFileName == null) {
|
if (TemplateFileName == null) {
|
||||||
TemplateFileName = (Csyntax ? DefaultCTemplateFileName
|
TemplateFileName = (Csyntax ? DefaultCTemplateFileName
|
||||||
: DefaultJavaTemplateFileName);
|
: DefaultJavaTemplateFileName);
|
||||||
@@ -1871,11 +1952,12 @@ OUTER: for (int i = 0; i < n; i += m) {
|
|||||||
specialCaseMaps = SpecialCaseMap.readSpecFile(new File(SpecialCasingFileName), plane);
|
specialCaseMaps = SpecialCaseMap.readSpecFile(new File(SpecialCasingFileName), plane);
|
||||||
PropList propList = PropList.readSpecFile(new File(PropListFileName), plane);
|
PropList propList = PropList.readSpecFile(new File(PropListFileName), plane);
|
||||||
propList.putAll(PropList.readSpecFile(new File(DerivedPropsFileName), plane));
|
propList.putAll(PropList.readSpecFile(new File(DerivedPropsFileName), plane));
|
||||||
|
EmojiData emojiData = EmojiData.readSpecFile(Paths.get(EmojiDataFileName), plane);
|
||||||
|
|
||||||
if (verbose) {
|
if (verbose) {
|
||||||
System.out.println(data.length + " items read from Unicode spec file " + UnicodeSpecFileName); // liu
|
System.out.println(data.length + " items read from Unicode spec file " + UnicodeSpecFileName); // liu
|
||||||
}
|
}
|
||||||
long[] map = buildMap(data, specialCaseMaps, propList);
|
long[] map = buildMap(data, specialCaseMaps, propList, emojiData);
|
||||||
if (verbose) {
|
if (verbose) {
|
||||||
System.err.println("Completed building of initial map");
|
System.err.println("Completed building of initial map");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,155 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2019, 2020, Oracle and/or its affiliates. All rights reserved.
|
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
||||||
*
|
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
|
||||||
* under the terms of the GNU General Public License version 2 only, as
|
|
||||||
* published by the Free Software Foundation. Oracle designates this
|
|
||||||
* particular file as subject to the "Classpath" exception as provided
|
|
||||||
* by Oracle in the LICENSE file that accompanied this code.
|
|
||||||
*
|
|
||||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
* version 2 for more details (a copy is included in the LICENSE file that
|
|
||||||
* accompanied this code).
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License version
|
|
||||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
|
||||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
*
|
|
||||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
||||||
* or visit www.oracle.com if you need additional information or have any
|
|
||||||
* questions.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package build.tools.generateemojidata;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.nio.file.Files;
|
|
||||||
import java.nio.file.Paths;
|
|
||||||
import java.nio.file.StandardOpenOption;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.function.Predicate;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
import java.util.stream.Stream;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Generate EmojiData.java
|
|
||||||
* args[0]: Full path string to the template file
|
|
||||||
* args[1]: Full path string to the directory that contains "emoji-data.txt"
|
|
||||||
* args[2]: Full path string to the generated .java file
|
|
||||||
*/
|
|
||||||
public class GenerateEmojiData {
|
|
||||||
public static void main(String[] args) {
|
|
||||||
try {
|
|
||||||
final Range[] last = new Range[1]; // last extended pictographic range
|
|
||||||
last[0] = new Range(0, 0);
|
|
||||||
|
|
||||||
List<Range> extPictRanges = Files.lines(Paths.get(args[1], "emoji", "emoji-data.txt"))
|
|
||||||
.filter(Predicate.not(l -> l.startsWith("#") || l.isBlank()))
|
|
||||||
.filter(l -> l.contains("; Extended_Pictograph"))
|
|
||||||
.map(l -> new Range(l.replaceFirst(" .*", "")))
|
|
||||||
.sorted()
|
|
||||||
.collect(ArrayList<Range>::new,
|
|
||||||
(list, r) -> {
|
|
||||||
// collapsing consecutive pictographic ranges
|
|
||||||
int lastIndex = list.size() - 1;
|
|
||||||
if (lastIndex >= 0) {
|
|
||||||
Range lastRange = list.get(lastIndex);
|
|
||||||
if (lastRange.last + 1 == r.start) {
|
|
||||||
list.set(lastIndex, new Range(lastRange.start, r.last));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
list.add(r);
|
|
||||||
},
|
|
||||||
ArrayList<Range>::addAll);
|
|
||||||
|
|
||||||
|
|
||||||
// make the code point conditions
|
|
||||||
// only very few codepoints below 0x2000 are "emojis", so separate them
|
|
||||||
// out to generate a fast-path check that can be efficiently inlined
|
|
||||||
String lowExtPictCodePoints = extPictRanges.stream()
|
|
||||||
.takeWhile(r -> r.last < 0x2000)
|
|
||||||
.map(r -> rangeToString(r))
|
|
||||||
.collect(Collectors.joining(" ||\n", "", ";\n"));
|
|
||||||
|
|
||||||
String highExtPictCodePoints = extPictRanges.stream()
|
|
||||||
.dropWhile(r -> r.last < 0x2000)
|
|
||||||
.map(r -> rangeToString(r))
|
|
||||||
.collect(Collectors.joining(" ||\n", "", ";\n"));
|
|
||||||
|
|
||||||
// Generate EmojiData.java file
|
|
||||||
Files.write(Paths.get(args[2]),
|
|
||||||
Files.lines(Paths.get(args[0]))
|
|
||||||
.flatMap(l -> {
|
|
||||||
if (l.equals("%%%EXTPICT_LOW%%%")) {
|
|
||||||
return Stream.of(lowExtPictCodePoints);
|
|
||||||
} else if (l.equals("%%%EXTPICT_HIGH%%%")) {
|
|
||||||
return Stream.of(highExtPictCodePoints);
|
|
||||||
} else {
|
|
||||||
return Stream.of(l);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.collect(Collectors.toList()),
|
|
||||||
StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING);
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static String rangeToString(Range r) {
|
|
||||||
if (r.start == r.last) {
|
|
||||||
return (" ".repeat(16) + "cp == 0x" + toHexString(r.start));
|
|
||||||
} else if (r.start == r.last - 1) {
|
|
||||||
return " ".repeat(16) + "cp == 0x" + toHexString(r.start) + " ||\n" +
|
|
||||||
" ".repeat(16) + "cp == 0x" + toHexString(r.last);
|
|
||||||
} else {
|
|
||||||
return " ".repeat(15) + "(cp >= 0x" + toHexString(r.start) +
|
|
||||||
" && cp <= 0x" + toHexString(r.last) + ")";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static int toInt(String hexStr) {
|
|
||||||
return Integer.parseUnsignedInt(hexStr, 16);
|
|
||||||
}
|
|
||||||
|
|
||||||
static String toHexString(int cp) {
|
|
||||||
String ret = Integer.toUnsignedString(cp, 16).toUpperCase();
|
|
||||||
if (ret.length() < 4) {
|
|
||||||
ret = "0".repeat(4 - ret.length()) + ret;
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
static class Range implements Comparable<Range> {
|
|
||||||
int start;
|
|
||||||
int last;
|
|
||||||
|
|
||||||
Range (int start, int last) {
|
|
||||||
this.start = start;
|
|
||||||
this.last = last;
|
|
||||||
}
|
|
||||||
|
|
||||||
Range (String input) {
|
|
||||||
input = input.replaceFirst("\\s#.*", "");
|
|
||||||
start = toInt(input.replaceFirst("[\\s\\.].*", ""));
|
|
||||||
last = input.contains("..") ?
|
|
||||||
toInt(input.replaceFirst(".*\\.\\.", "")
|
|
||||||
.replaceFirst(";.*", "").trim())
|
|
||||||
: start;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return "Start: " + toHexString(start) + ", Last: " + toHexString(last);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int compareTo(Range other) {
|
|
||||||
return Integer.compare(start, other.start);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2022, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -34,7 +34,6 @@ include gensrc/GensrcBuffer.gmk
|
|||||||
include gensrc/GensrcExceptions.gmk
|
include gensrc/GensrcExceptions.gmk
|
||||||
include gensrc/GensrcVarHandles.gmk
|
include gensrc/GensrcVarHandles.gmk
|
||||||
include gensrc/GensrcModuleLoaderMap.gmk
|
include gensrc/GensrcModuleLoaderMap.gmk
|
||||||
include gensrc/GensrcEmojiData.gmk
|
|
||||||
include gensrc/GensrcScopedMemoryAccess.gmk
|
include gensrc/GensrcScopedMemoryAccess.gmk
|
||||||
|
|
||||||
# GensrcLocaleData.gmk does not set TARGETS, so we must choose which targets
|
# GensrcLocaleData.gmk does not set TARGETS, so we must choose which targets
|
||||||
|
|||||||
@@ -23,9 +23,13 @@
|
|||||||
# questions.
|
# questions.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
DISABLED_WARNINGS_java += this-escape
|
||||||
|
|
||||||
DOCLINT += -Xdoclint:all/protected \
|
DOCLINT += -Xdoclint:all/protected \
|
||||||
'-Xdoclint/package:java.*,javax.*'
|
'-Xdoclint/package:java.*,javax.*'
|
||||||
JAVAC_FLAGS += -XDstringConcat=inline
|
JAVAC_FLAGS += -XDstringConcat=inline \
|
||||||
|
--enable-preview
|
||||||
|
DISABLED_WARNINGS_java += preview
|
||||||
COPY += .icu .dat .spp .nrm content-types.properties \
|
COPY += .icu .dat .spp .nrm content-types.properties \
|
||||||
hijrah-config-Hijrah-umalqura_islamic-umalqura.properties
|
hijrah-config-Hijrah-umalqura_islamic-umalqura.properties
|
||||||
CLEAN += intrinsic.properties
|
CLEAN += intrinsic.properties
|
||||||
@@ -33,7 +37,9 @@ CLEAN += intrinsic.properties
|
|||||||
EXCLUDE_FILES += \
|
EXCLUDE_FILES += \
|
||||||
$(TOPDIR)/src/java.base/share/classes/jdk/internal/module/ModuleLoaderMap.java
|
$(TOPDIR)/src/java.base/share/classes/jdk/internal/module/ModuleLoaderMap.java
|
||||||
|
|
||||||
EXCLUDES += java/lang/doc-files
|
EXCLUDES += java/lang/doc-files \
|
||||||
|
jdk/internal/classfile/snippet-files \
|
||||||
|
jdk/internal/classfile/components/snippet-files
|
||||||
|
|
||||||
# Exclude BreakIterator classes that are just used in compile process to generate
|
# Exclude BreakIterator classes that are just used in compile process to generate
|
||||||
# data files and shouldn't go in the product
|
# data files and shouldn't go in the product
|
||||||
|
|||||||
@@ -47,8 +47,6 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBNET, \
|
|||||||
DISABLED_WARNINGS_gcc_NetworkInterface.c := unused-function, \
|
DISABLED_WARNINGS_gcc_NetworkInterface.c := unused-function, \
|
||||||
DISABLED_WARNINGS_clang_net_util_md.c := format-nonliteral, \
|
DISABLED_WARNINGS_clang_net_util_md.c := format-nonliteral, \
|
||||||
DISABLED_WARNINGS_microsoft_InetAddress.c := 4244, \
|
DISABLED_WARNINGS_microsoft_InetAddress.c := 4244, \
|
||||||
DISABLED_WARNINGS_microsoft_NetworkInterface.c := 4133, \
|
|
||||||
DISABLED_WARNINGS_microsoft_NetworkInterface_winXP.c := 4133, \
|
|
||||||
DISABLED_WARNINGS_microsoft_ResolverConfigurationImpl.c := 4996, \
|
DISABLED_WARNINGS_microsoft_ResolverConfigurationImpl.c := 4996, \
|
||||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
||||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ define SetupCharacterData
|
|||||||
-specialcasing $(UNICODEDATA)/SpecialCasing.txt \
|
-specialcasing $(UNICODEDATA)/SpecialCasing.txt \
|
||||||
-proplist $(UNICODEDATA)/PropList.txt \
|
-proplist $(UNICODEDATA)/PropList.txt \
|
||||||
-derivedprops $(UNICODEDATA)/DerivedCoreProperties.txt \
|
-derivedprops $(UNICODEDATA)/DerivedCoreProperties.txt \
|
||||||
|
-emojidata $(UNICODEDATA)/emoji/emoji-data.txt \
|
||||||
-o $(SUPPORT_OUTPUTDIR)/gensrc/java.base/java/lang/$1.java \
|
-o $(SUPPORT_OUTPUTDIR)/gensrc/java.base/java/lang/$1.java \
|
||||||
-usecharforbyte $3
|
-usecharforbyte $3
|
||||||
|
|
||||||
|
|||||||
@@ -1,43 +0,0 @@
|
|||||||
#
|
|
||||||
# Copyright (c) 2019, 2022, Oracle and/or its affiliates. All rights reserved.
|
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
||||||
#
|
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
|
||||||
# under the terms of the GNU General Public License version 2 only, as
|
|
||||||
# published by the Free Software Foundation. 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.
|
|
||||||
#
|
|
||||||
|
|
||||||
#
|
|
||||||
# Rules to create $(SUPPORT_OUTPUTDIR)/gensrc/java.base/jdk/internal/util/regex/EmojiData.java
|
|
||||||
#
|
|
||||||
|
|
||||||
GENSRC_EMOJIDATA := $(SUPPORT_OUTPUTDIR)/gensrc/java.base/jdk/internal/util/regex/EmojiData.java
|
|
||||||
|
|
||||||
EMOJIDATATEMP = $(MODULE_SRC)/share/classes/jdk/internal/util/regex/EmojiData.java.template
|
|
||||||
UNICODEDATA = $(MODULE_SRC)/share/data/unicodedata
|
|
||||||
|
|
||||||
$(GENSRC_EMOJIDATA): $(BUILD_TOOLS_JDK) $(EMOJIDATATEMP) $(UNICODEDATA)/emoji/emoji-data.txt
|
|
||||||
$(call LogInfo, Generating $@)
|
|
||||||
$(call MakeTargetDir)
|
|
||||||
$(TOOL_GENERATEEMOJIDATA) \
|
|
||||||
$(EMOJIDATATEMP) \
|
|
||||||
$(UNICODEDATA) \
|
|
||||||
$(GENSRC_EMOJIDATA)
|
|
||||||
|
|
||||||
TARGETS += $(GENSRC_EMOJIDATA)
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2020, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -50,8 +50,14 @@ $(eval $(call SetupTextFileProcessing, BUILD_VERSION_JAVA, \
|
|||||||
@@VENDOR_URL_VM_BUG@@ => $(VENDOR_URL_VM_BUG), \
|
@@VENDOR_URL_VM_BUG@@ => $(VENDOR_URL_VM_BUG), \
|
||||||
))
|
))
|
||||||
|
|
||||||
TARGETS += $(BUILD_VERSION_JAVA)
|
$(eval $(call SetupTextFileProcessing, BUILD_PLATFORMPROPERTIES_JAVA, \
|
||||||
|
SOURCE_FILES := $(TOPDIR)/src/java.base/share/classes/jdk/internal/util/OperatingSystemProps.java.template, \
|
||||||
|
OUTPUT_FILE := $(SUPPORT_OUTPUTDIR)/gensrc/java.base/jdk/internal/util/OperatingSystemProps.java, \
|
||||||
|
REPLACEMENTS := \
|
||||||
|
@@OPENJDK_TARGET_OS@@ => $(OPENJDK_TARGET_OS), \
|
||||||
|
))
|
||||||
|
|
||||||
|
TARGETS += $(BUILD_VERSION_JAVA) $(BUILD_PLATFORMPROPERTIES_JAVA)
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
ifneq ($(filter $(TOOLCHAIN_TYPE), gcc clang), )
|
ifneq ($(filter $(TOOLCHAIN_TYPE), gcc clang), )
|
||||||
|
|||||||
@@ -23,43 +23,6 @@
|
|||||||
# questions.
|
# questions.
|
||||||
#
|
#
|
||||||
|
|
||||||
##########################################################################################
|
|
||||||
# libfdlibm is statically linked with libjava below and not delivered into the
|
|
||||||
# product on its own.
|
|
||||||
|
|
||||||
BUILD_LIBFDLIBM_OPTIMIZATION := NONE
|
|
||||||
|
|
||||||
# If FDLIBM_CFLAGS is non-empty we know that we can optimize
|
|
||||||
# fdlibm when adding those extra C flags. Currently GCC,
|
|
||||||
# and clang only.
|
|
||||||
ifneq ($(FDLIBM_CFLAGS), )
|
|
||||||
BUILD_LIBFDLIBM_OPTIMIZATION := LOW
|
|
||||||
endif
|
|
||||||
|
|
||||||
LIBFDLIBM_SRC := $(TOPDIR)/src/java.base/share/native/libfdlibm
|
|
||||||
LIBFDLIBM_CFLAGS := -I$(LIBFDLIBM_SRC) $(FDLIBM_CFLAGS)
|
|
||||||
|
|
||||||
$(eval $(call SetupNativeCompilation, BUILD_LIBFDLIBM, \
|
|
||||||
NAME := fdlibm, \
|
|
||||||
TYPE := STATIC_LIBRARY, \
|
|
||||||
OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE), \
|
|
||||||
SRC := $(LIBFDLIBM_SRC), \
|
|
||||||
OPTIMIZATION := $(BUILD_LIBFDLIBM_OPTIMIZATION), \
|
|
||||||
CFLAGS := $(CFLAGS_JDKLIB) $(LIBFDLIBM_CFLAGS), \
|
|
||||||
CFLAGS_windows_debug := -DLOGGING, \
|
|
||||||
CFLAGS_aix := -qfloat=nomaf, \
|
|
||||||
DISABLED_WARNINGS_gcc := sign-compare, \
|
|
||||||
DISABLED_WARNINGS_gcc_k_rem_pio2.c := maybe-uninitialized, \
|
|
||||||
DISABLED_WARNINGS_clang := sign-compare, \
|
|
||||||
DISABLED_WARNINGS_microsoft := 4146, \
|
|
||||||
DISABLED_WARNINGS_microsoft_e_exp.c := 4244, \
|
|
||||||
DISABLED_WARNINGS_microsoft_s_ceil.c := 4018, \
|
|
||||||
DISABLED_WARNINGS_microsoft_s_expm1.c := 4244, \
|
|
||||||
DISABLED_WARNINGS_microsoft_s_floor.c := 4018, \
|
|
||||||
ARFLAGS := $(ARFLAGS), \
|
|
||||||
OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libfdlibm, \
|
|
||||||
))
|
|
||||||
|
|
||||||
##########################################################################################
|
##########################################################################################
|
||||||
|
|
||||||
LIBVERIFY_OPTIMIZATION := HIGH
|
LIBVERIFY_OPTIMIZATION := HIGH
|
||||||
@@ -96,14 +59,12 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBJAVA, \
|
|||||||
CFLAGS := $(CFLAGS_JDKLIB) \
|
CFLAGS := $(CFLAGS_JDKLIB) \
|
||||||
$(LIBJAVA_CFLAGS), \
|
$(LIBJAVA_CFLAGS), \
|
||||||
jdk_util.c_CFLAGS := $(VERSION_CFLAGS), \
|
jdk_util.c_CFLAGS := $(VERSION_CFLAGS), \
|
||||||
EXTRA_HEADER_DIRS := libfdlibm, \
|
|
||||||
WARNINGS_AS_ERRORS_xlc := false, \
|
WARNINGS_AS_ERRORS_xlc := false, \
|
||||||
DISABLED_WARNINGS_gcc_ProcessImpl_md.c := unused-result, \
|
DISABLED_WARNINGS_gcc_ProcessImpl_md.c := unused-result, \
|
||||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
||||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
||||||
LDFLAGS_macosx := -L$(SUPPORT_OUTPUTDIR)/native/$(MODULE)/, \
|
LDFLAGS_macosx := -L$(SUPPORT_OUTPUTDIR)/native/$(MODULE)/, \
|
||||||
LDFLAGS_windows := -delayload:shell32.dll, \
|
LDFLAGS_windows := -delayload:shell32.dll, \
|
||||||
LIBS := $(BUILD_LIBFDLIBM_TARGET), \
|
|
||||||
LIBS_unix := -ljvm, \
|
LIBS_unix := -ljvm, \
|
||||||
LIBS_linux := $(LIBDL), \
|
LIBS_linux := $(LIBDL), \
|
||||||
LIBS_aix := $(LIBDL) $(LIBM),\
|
LIBS_aix := $(LIBDL) $(LIBM),\
|
||||||
@@ -119,7 +80,6 @@ TARGETS += $(BUILD_LIBJAVA)
|
|||||||
|
|
||||||
$(BUILD_LIBJAVA): $(BUILD_LIBVERIFY)
|
$(BUILD_LIBJAVA): $(BUILD_LIBVERIFY)
|
||||||
|
|
||||||
$(BUILD_LIBJAVA): $(BUILD_LIBFDLIBM)
|
|
||||||
|
|
||||||
##########################################################################################
|
##########################################################################################
|
||||||
|
|
||||||
|
|||||||
@@ -23,6 +23,8 @@
|
|||||||
# questions.
|
# questions.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
DISABLED_WARNINGS_java += this-escape
|
||||||
|
|
||||||
DOCLINT += -Xdoclint:all/protected \
|
DOCLINT += -Xdoclint:all/protected \
|
||||||
'-Xdoclint/package:java.*,javax.*'
|
'-Xdoclint/package:java.*,javax.*'
|
||||||
COPY += flavormap.properties
|
COPY += flavormap.properties
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
# questions.
|
# questions.
|
||||||
#
|
#
|
||||||
|
|
||||||
DISABLED_WARNINGS_java += lossy-conversions
|
DISABLED_WARNINGS_java += lossy-conversions this-escape
|
||||||
DOCLINT += -Xdoclint:all/protected \
|
DOCLINT += -Xdoclint:all/protected \
|
||||||
'-Xdoclint/package:java.*,javax.*'
|
'-Xdoclint/package:java.*,javax.*'
|
||||||
COPY += .gif .png .wav .txt .xml .css .pf
|
COPY += .gif .png .wav .txt .xml .css .pf
|
||||||
|
|||||||
@@ -451,7 +451,7 @@ else
|
|||||||
-DHB_NO_PRAGMA_GCC_DIAGNOSTIC
|
-DHB_NO_PRAGMA_GCC_DIAGNOSTIC
|
||||||
endif
|
endif
|
||||||
ifeq ($(call isTargetOs, linux macosx), true)
|
ifeq ($(call isTargetOs, linux macosx), true)
|
||||||
HARFBUZZ_CFLAGS += -DHAVE_INTEL_ATOMIC_PRIMITIVES
|
HARFBUZZ_CFLAGS += -DHAVE_INTEL_ATOMIC_PRIMITIVES -DHB_NO_VISIBILITY
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Early re-canonizing has to be disabled to workaround an internal XlC compiler error
|
# Early re-canonizing has to be disabled to workaround an internal XlC compiler error
|
||||||
@@ -465,7 +465,8 @@ else
|
|||||||
|
|
||||||
HARFBUZZ_DISABLED_WARNINGS_gcc := missing-field-initializers strict-aliasing \
|
HARFBUZZ_DISABLED_WARNINGS_gcc := missing-field-initializers strict-aliasing \
|
||||||
unused-result
|
unused-result
|
||||||
HARFBUZZ_DISABLED_WARNINGS_CXX_gcc := class-memaccess
|
# noexcept-type required for GCC 7 builds. Not required for GCC 8+.
|
||||||
|
HARFBUZZ_DISABLED_WARNINGS_CXX_gcc := class-memaccess noexcept-type
|
||||||
HARFBUZZ_DISABLED_WARNINGS_clang := missing-field-initializers range-loop-analysis
|
HARFBUZZ_DISABLED_WARNINGS_clang := missing-field-initializers range-loop-analysis
|
||||||
HARFBUZZ_DISABLED_WARNINGS_microsoft := 4267 4244
|
HARFBUZZ_DISABLED_WARNINGS_microsoft := 4267 4244
|
||||||
|
|
||||||
|
|||||||
@@ -23,5 +23,7 @@
|
|||||||
# questions.
|
# questions.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
DISABLED_WARNINGS_java += this-escape
|
||||||
|
|
||||||
DOCLINT += -Xdoclint:all/protected \
|
DOCLINT += -Xdoclint:all/protected \
|
||||||
'-Xdoclint/package:java.*,javax.*'
|
'-Xdoclint/package:java.*,javax.*'
|
||||||
|
|||||||
@@ -23,5 +23,7 @@
|
|||||||
# questions.
|
# questions.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
DISABLED_WARNINGS_java += this-escape
|
||||||
|
|
||||||
DOCLINT += -Xdoclint:all/protected \
|
DOCLINT += -Xdoclint:all/protected \
|
||||||
'-Xdoclint/package:java.*,javax.*'
|
'-Xdoclint/package:java.*,javax.*'
|
||||||
|
|||||||
@@ -23,6 +23,8 @@
|
|||||||
# questions.
|
# questions.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
DISABLED_WARNINGS_java += this-escape
|
||||||
|
|
||||||
DOCLINT += -Xdoclint:all/protected \
|
DOCLINT += -Xdoclint:all/protected \
|
||||||
'-Xdoclint/package:java.*,javax.*'
|
'-Xdoclint/package:java.*,javax.*'
|
||||||
CLEAN += jndiprovider.properties
|
CLEAN += jndiprovider.properties
|
||||||
|
|||||||
@@ -1,9 +1,12 @@
|
|||||||
# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
|
#
|
||||||
|
# Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# 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
|
# 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
|
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
@@ -18,6 +21,6 @@
|
|||||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 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
|
# or visit www.oracle.com if you need additional information or have any
|
||||||
# questions.
|
# questions.
|
||||||
|
#
|
||||||
|
|
||||||
corporate=/fonts/Company-corporate.ttf
|
DISABLED_WARNINGS_java += this-escape
|
||||||
crazy-looking=/fonts/kidpr.ttf
|
|
||||||
@@ -23,6 +23,8 @@
|
|||||||
# questions.
|
# questions.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
DISABLED_WARNINGS_java += this-escape
|
||||||
|
|
||||||
DOCLINT += -Xdoclint:all/protected \
|
DOCLINT += -Xdoclint:all/protected \
|
||||||
'-Xdoclint/package:java.*,javax.*'
|
'-Xdoclint/package:java.*,javax.*'
|
||||||
CLEAN_FILES += $(wildcard \
|
CLEAN_FILES += $(wildcard \
|
||||||
|
|||||||
@@ -23,5 +23,7 @@
|
|||||||
# questions.
|
# questions.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
DISABLED_WARNINGS_java += this-escape
|
||||||
|
|
||||||
DOCLINT += -Xdoclint:all/protected \
|
DOCLINT += -Xdoclint:all/protected \
|
||||||
'-Xdoclint/package:java.*,javax.*'
|
'-Xdoclint/package:java.*,javax.*'
|
||||||
|
|||||||
@@ -64,9 +64,7 @@ ifneq ($(BUILD_CRYPTO), false)
|
|||||||
CFLAGS := $(CFLAGS_JDKLIB), \
|
CFLAGS := $(CFLAGS_JDKLIB), \
|
||||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
||||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
||||||
LIBS := advapi32.lib Secur32.lib netapi32.lib kernel32.lib user32.lib \
|
LIBS := advapi32.lib Secur32.lib kernel32.lib ws2_32.lib, \
|
||||||
gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib \
|
|
||||||
ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib, \
|
|
||||||
))
|
))
|
||||||
|
|
||||||
TARGETS += $(BUILD_LIBW2K_LSA_AUTH)
|
TARGETS += $(BUILD_LIBW2K_LSA_AUTH)
|
||||||
|
|||||||
@@ -1,9 +1,12 @@
|
|||||||
# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
|
#
|
||||||
|
# Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# 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
|
# 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
|
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
@@ -18,6 +21,6 @@
|
|||||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 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
|
# or visit www.oracle.com if you need additional information or have any
|
||||||
# questions.
|
# questions.
|
||||||
|
#
|
||||||
|
|
||||||
# The contents of this file do not matter. It exists
|
DISABLED_WARNINGS_java += this-escape
|
||||||
# simply to have a file under META-INF.
|
|
||||||
@@ -23,6 +23,8 @@
|
|||||||
# questions.
|
# questions.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
DISABLED_WARNINGS_java += this-escape
|
||||||
|
|
||||||
DOCLINT += -Xdoclint:all/protected \
|
DOCLINT += -Xdoclint:all/protected \
|
||||||
'-Xdoclint/package:java.*,javax.*'
|
'-Xdoclint/package:java.*,javax.*'
|
||||||
CLEAN_FILES += $(wildcard \
|
CLEAN_FILES += $(wildcard \
|
||||||
|
|||||||
@@ -23,5 +23,7 @@
|
|||||||
# questions.
|
# questions.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
DISABLED_WARNINGS_java += this-escape
|
||||||
|
|
||||||
DOCLINT += -Xdoclint:all/protected \
|
DOCLINT += -Xdoclint:all/protected \
|
||||||
'-Xdoclint/package:java.*,javax.*'
|
'-Xdoclint/package:java.*,javax.*'
|
||||||
|
|||||||
@@ -23,6 +23,8 @@
|
|||||||
# questions.
|
# questions.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
DISABLED_WARNINGS_java += this-escape
|
||||||
|
|
||||||
DOCLINT += -Xdoclint:all/protected \
|
DOCLINT += -Xdoclint:all/protected \
|
||||||
'-Xdoclint/package:java.*,javax.*'
|
'-Xdoclint/package:java.*,javax.*'
|
||||||
COPY += .dtd .xml
|
COPY += .dtd .xml
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
# questions.
|
# questions.
|
||||||
#
|
#
|
||||||
|
|
||||||
DISABLED_WARNINGS_java += lossy-conversions
|
DISABLED_WARNINGS_java += lossy-conversions this-escape
|
||||||
DOCLINT += -Xdoclint:all/protected \
|
DOCLINT += -Xdoclint:all/protected \
|
||||||
'-Xdoclint/package:$(call CommaList, javax.xml.catalog javax.xml.datatype \
|
'-Xdoclint/package:$(call CommaList, javax.xml.catalog javax.xml.datatype \
|
||||||
javax.xml.transform javax.xml.validation javax.xml.xpath)'
|
javax.xml.transform javax.xml.validation javax.xml.xpath)'
|
||||||
|
|||||||
@@ -23,4 +23,6 @@
|
|||||||
# questions.
|
# questions.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
DISABLED_WARNINGS_java += this-escape
|
||||||
|
|
||||||
COPY += .dat
|
COPY += .dat
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ $(eval $(call SetupJavaCompilation, COMPILE_CREATE_SYMBOLS, \
|
|||||||
$(TOPDIR)/src/jdk.jdeps/share/classes, \
|
$(TOPDIR)/src/jdk.jdeps/share/classes, \
|
||||||
INCLUDES := build/tools/symbolgenerator com/sun/tools/classfile, \
|
INCLUDES := build/tools/symbolgenerator com/sun/tools/classfile, \
|
||||||
BIN := $(BUILDTOOLS_OUTPUTDIR)/create_symbols, \
|
BIN := $(BUILDTOOLS_OUTPUTDIR)/create_symbols, \
|
||||||
DISABLED_WARNINGS := options, \
|
DISABLED_WARNINGS := options this-escape, \
|
||||||
JAVAC_FLAGS := \
|
JAVAC_FLAGS := \
|
||||||
$(INTERIM_LANGTOOLS_ARGS) \
|
$(INTERIM_LANGTOOLS_ARGS) \
|
||||||
$(COMPILECREATESYMBOLS_ADD_EXPORTS), \
|
$(COMPILECREATESYMBOLS_ADD_EXPORTS), \
|
||||||
|
|||||||
@@ -1,9 +1,12 @@
|
|||||||
# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
|
#
|
||||||
|
# Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# 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
|
# 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
|
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
@@ -18,6 +21,6 @@
|
|||||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 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
|
# or visit www.oracle.com if you need additional information or have any
|
||||||
# questions.
|
# questions.
|
||||||
|
#
|
||||||
|
|
||||||
# The contents of this file do not matter. It exists
|
DISABLED_WARNINGS_java += this-escape
|
||||||
# simply to have a service defined in META-INF/services.
|
|
||||||
26
make/modules/jdk.crypto.mscapi/Java.gmk
Normal file
26
make/modules/jdk.crypto.mscapi/Java.gmk
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
|
#
|
||||||
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
|
# under the terms of the GNU General Public License version 2 only, as
|
||||||
|
# published by the Free Software Foundation. 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
DISABLED_WARNINGS_java += this-escape
|
||||||
@@ -24,5 +24,5 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
DISABLED_WARNINGS_java += rawtypes serial cast static overrides \
|
DISABLED_WARNINGS_java += rawtypes serial cast static overrides \
|
||||||
fallthrough
|
fallthrough this-escape
|
||||||
COPY += .gif .png .properties
|
COPY += .gif .png .properties
|
||||||
|
|||||||
@@ -23,4 +23,4 @@
|
|||||||
# questions.
|
# questions.
|
||||||
#
|
#
|
||||||
|
|
||||||
DISABLED_WARNINGS_java += missing-explicit-ctor
|
DISABLED_WARNINGS_java += missing-explicit-ctor this-escape
|
||||||
|
|||||||
@@ -23,4 +23,6 @@
|
|||||||
# questions.
|
# questions.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
DISABLED_WARNINGS_java += this-escape
|
||||||
|
|
||||||
COPY += aliasmap
|
COPY += aliasmap
|
||||||
|
|||||||
@@ -23,4 +23,6 @@
|
|||||||
# questions.
|
# questions.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
DISABLED_WARNINGS_java += this-escape
|
||||||
|
|
||||||
COPY += .properties .caps .txt
|
COPY += .properties .caps .txt
|
||||||
|
|||||||
@@ -23,4 +23,6 @@
|
|||||||
# questions.
|
# questions.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
DISABLED_WARNINGS_java += this-escape
|
||||||
|
|
||||||
COPY += .properties
|
COPY += .properties
|
||||||
|
|||||||
@@ -23,16 +23,10 @@
|
|||||||
# questions.
|
# questions.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
DISABLED_WARNINGS_java += this-escape
|
||||||
|
|
||||||
# -parameters provides method's parameters information in class file,
|
# -parameters provides method's parameters information in class file,
|
||||||
# JVMCI compilers make use of that information for various sanity checks.
|
# JVMCI compilers make use of that information for various sanity checks.
|
||||||
# Don't use Indy strings concatenation to have good JVMCI startup performance.
|
# Don't use Indy strings concatenation to have good JVMCI startup performance.
|
||||||
# The exports are needed since JVMCI is dynamically exported (see
|
|
||||||
# jdk.vm.ci.services.internal.ReflectionAccessJDK::openJVMCITo).
|
|
||||||
|
|
||||||
JAVAC_FLAGS += -parameters -XDstringConcat=inline
|
JAVAC_FLAGS += -parameters -XDstringConcat=inline
|
||||||
|
|
||||||
## WORKAROUND jdk.internal.vm.ci source structure issue
|
|
||||||
JVMCI_MODULESOURCEPATH := $(MODULESOURCEPATH) \
|
|
||||||
$(subst /$(MODULE)/,/*/, $(filter-out %processor/src, \
|
|
||||||
$(wildcard $(TOPDIR)/src/$(MODULE)/share/classes/*/src)))
|
|
||||||
MODULESOURCEPATH := $(call PathList, $(JVMCI_MODULESOURCEPATH))
|
|
||||||
|
|||||||
@@ -25,3 +25,5 @@
|
|||||||
|
|
||||||
DISABLED_WARNINGS_java += missing-explicit-ctor
|
DISABLED_WARNINGS_java += missing-explicit-ctor
|
||||||
JAVAC_FLAGS += -XDstringConcat=inline
|
JAVAC_FLAGS += -XDstringConcat=inline
|
||||||
|
JAVAC_FLAGS += --enable-preview
|
||||||
|
DISABLED_WARNINGS_java += preview
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ $(eval $(call SetupJavaCompilation, COMPILE_CREATE_SYMBOLS, \
|
|||||||
$(TOPDIR)/src/jdk.jdeps/share/classes, \
|
$(TOPDIR)/src/jdk.jdeps/share/classes, \
|
||||||
INCLUDES := build/tools/symbolgenerator com/sun/tools/classfile, \
|
INCLUDES := build/tools/symbolgenerator com/sun/tools/classfile, \
|
||||||
BIN := $(BUILDTOOLS_OUTPUTDIR)/create_symbols_javadoc, \
|
BIN := $(BUILDTOOLS_OUTPUTDIR)/create_symbols_javadoc, \
|
||||||
DISABLED_WARNINGS := options, \
|
DISABLED_WARNINGS := options this-escape, \
|
||||||
JAVAC_FLAGS := \
|
JAVAC_FLAGS := \
|
||||||
$(INTERIM_LANGTOOLS_ARGS) \
|
$(INTERIM_LANGTOOLS_ARGS) \
|
||||||
$(COMPILECREATESYMBOLS_ADD_EXPORTS), \
|
$(COMPILECREATESYMBOLS_ADD_EXPORTS), \
|
||||||
|
|||||||
@@ -23,4 +23,6 @@
|
|||||||
# questions.
|
# questions.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
DISABLED_WARNINGS_java += this-escape
|
||||||
|
|
||||||
COPY += .xml .css .svg .js .js.template .png .txt
|
COPY += .xml .css .svg .js .js.template .png .txt
|
||||||
|
|||||||
@@ -23,4 +23,6 @@
|
|||||||
# questions.
|
# questions.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
DISABLED_WARNINGS_java += this-escape
|
||||||
|
|
||||||
COPY += _options
|
COPY += _options
|
||||||
|
|||||||
@@ -23,6 +23,8 @@
|
|||||||
# questions.
|
# questions.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
DISABLED_WARNINGS_java += this-escape
|
||||||
|
|
||||||
COPY += .gif .png
|
COPY += .gif .png
|
||||||
|
|
||||||
CLEAN_FILES += $(wildcard \
|
CLEAN_FILES += $(wildcard \
|
||||||
|
|||||||
@@ -26,6 +26,8 @@
|
|||||||
include GensrcCommon.gmk
|
include GensrcCommon.gmk
|
||||||
include GensrcProperties.gmk
|
include GensrcProperties.gmk
|
||||||
|
|
||||||
|
DISABLED_WARNINGS_java += this-escape
|
||||||
|
|
||||||
$(eval $(call SetupVersionProperties, JAVAP_VERSION, \
|
$(eval $(call SetupVersionProperties, JAVAP_VERSION, \
|
||||||
com/sun/tools/javap/resources/version.properties))
|
com/sun/tools/javap/resources/version.properties))
|
||||||
|
|
||||||
|
|||||||
@@ -25,6 +25,8 @@
|
|||||||
|
|
||||||
include LauncherCommon.gmk
|
include LauncherCommon.gmk
|
||||||
|
|
||||||
|
DISABLED_WARNINGS_java += this-escape
|
||||||
|
|
||||||
$(eval $(call SetupBuildLauncher, javap, \
|
$(eval $(call SetupBuildLauncher, javap, \
|
||||||
MAIN_CLASS := com.sun.tools.javap.Main, \
|
MAIN_CLASS := com.sun.tools.javap.Main, \
|
||||||
CFLAGS := -DEXPAND_CLASSPATH_WILDCARDS, \
|
CFLAGS := -DEXPAND_CLASSPATH_WILDCARDS, \
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user