mirror of
https://github.com/JetBrains/JetBrainsRuntime.git
synced 2025-12-15 22:09:41 +01:00
Compare commits
603 Commits
kharitonov
...
jdk-21+16
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
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 runtime'
|
||||
- 'hs/tier1 serviceability'
|
||||
- 'lib-test/tier1'
|
||||
|
||||
include:
|
||||
- test-name: 'jdk/tier1 part 1'
|
||||
@@ -98,6 +99,10 @@ jobs:
|
||||
test-suite: 'test/hotspot/jtreg/:tier1_serviceability'
|
||||
debug-suffix: -debug
|
||||
|
||||
- test-name: 'lib-test/tier1'
|
||||
test-suite: 'test/lib-test/:tier1'
|
||||
debug-suffix: -debug
|
||||
|
||||
steps:
|
||||
- name: 'Checkout the JDK source'
|
||||
uses: actions/checkout@v3
|
||||
|
||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -18,3 +18,6 @@ NashornProfile.txt
|
||||
/src/utils/LogCompilation/target/
|
||||
/.project/
|
||||
/.settings/
|
||||
/.project
|
||||
/.classpath
|
||||
/.cproject
|
||||
|
||||
@@ -130,7 +130,7 @@ install_jib() {
|
||||
fi
|
||||
# Want to check the filetype using file, to see if we got served a HTML error page.
|
||||
# This is sensitive to the filename containing a specific string, but good enough.
|
||||
file ${installed_jib_script}.gz | grep "gzip compressed data" > /dev/null
|
||||
file "${installed_jib_script}.gz" | grep "gzip compressed data" > /dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Warning: ${installed_jib_script}.gz is not a gzip file."
|
||||
echo "If you are behind a proxy you may need to configure exceptions using no_proxy."
|
||||
|
||||
@@ -1087,7 +1087,7 @@ home, i.e. the top directory, containing <code>lib/jtreg.jar</code>
|
||||
etc.</p>
|
||||
<p>The <a href="https://wiki.openjdk.org/display/Adoption">Adoption
|
||||
Group</a> provides recent builds of jtreg <a
|
||||
href="https://ci.adoptopenjdk.net/view/Dependencies/job/dependency_pipeline/lastSuccessfulBuild/artifact/jtreg/">here</a>.
|
||||
href="https://ci.adoptium.net/view/Dependencies/job/dependency_pipeline/lastSuccessfulBuild/artifact/jtreg/">here</a>.
|
||||
Download the latest <code>.tar.gz</code> file, unpack it, and point
|
||||
<code>--with-jtreg</code> to the <code>jtreg</code> directory that you
|
||||
just unpacked.</p>
|
||||
|
||||
@@ -860,7 +860,7 @@ containing `lib/jtreg.jar` etc.
|
||||
|
||||
The [Adoption Group](https://wiki.openjdk.org/display/Adoption) provides
|
||||
recent builds of jtreg [here](
|
||||
https://ci.adoptopenjdk.net/view/Dependencies/job/dependency_pipeline/lastSuccessfulBuild/artifact/jtreg/).
|
||||
https://ci.adoptium.net/view/Dependencies/job/dependency_pipeline/lastSuccessfulBuild/artifact/jtreg/).
|
||||
Download the latest `.tar.gz` file, unpack it, and point `--with-jtreg` to the
|
||||
`jtreg` directory that you just unpacked.
|
||||
|
||||
|
||||
@@ -82,6 +82,7 @@ id="toc-uniform-initialization">Uniform Initialization</a></li>
|
||||
id="toc-local-function-objects">Local Function Objects</a></li>
|
||||
<li><a href="#inheriting-constructors"
|
||||
id="toc-inheriting-constructors">Inheriting constructors</a></li>
|
||||
<li><a href="#attributes" id="toc-attributes">Attributes</a></li>
|
||||
<li><a href="#additional-permitted-features"
|
||||
id="toc-additional-permitted-features">Additional Permitted
|
||||
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>
|
||||
<li><code>#include <limits></code> to use
|
||||
<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
|
||||
<code>std::nullptr_t</code> and <code>std::max_align_t</code>.</li>
|
||||
</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
|
||||
headers, use a convention of #including wrapper headers (in some
|
||||
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
|
||||
those versions. Earlier versions of gcc don't have that option, and
|
||||
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
|
||||
Features</h3>
|
||||
<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
|
||||
href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2235.pdf">n2235</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
|
||||
ordering. HotSpot doesn't generally try to cleanup on exit, and running
|
||||
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
|
||||
operator overloading is used, ensure the semantics conform to the normal
|
||||
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>
|
||||
<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>
|
||||
<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>
|
||||
</ul>
|
||||
</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 <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`.
|
||||
|
||||
Certain restrictions apply to the declarations provided by `<type_traits>`.
|
||||
|
||||
* The `alignof` operator should be used rather than `std::alignment_of<>`.
|
||||
|
||||
TODO: Rather than directly \#including (permitted) Standard Library
|
||||
headers, use a convention of \#including wrapper headers (in some
|
||||
location like hotspot/shared/stdcpp). This provides a single place
|
||||
@@ -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"
|
||||
|
||||
### 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
|
||||
|
||||
* `alignof`
|
||||
([n2341](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2341.pdf))
|
||||
|
||||
* `constexpr`
|
||||
([n2235](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2235.pdf))
|
||||
([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
|
||||
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
|
||||
operator overloading is used, ensure the semantics conform to the
|
||||
normal expected behavior of the operation.
|
||||
@@ -1181,9 +1210,6 @@ features that have not yet been discussed.
|
||||
* Member initializers and aggregates
|
||||
([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
|
||||
|
||||
[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
|
||||
folder. The file can be opened in Visual Studio via
|
||||
<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>
|
||||
<p>The make system can generate generic native code indexing support in
|
||||
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.
|
||||
Instructions for building and using the plugin can be found <a
|
||||
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>
|
||||
</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
|
||||
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
|
||||
|
||||
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.
|
||||
Instructions for building and using the plugin can be found
|
||||
[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
|
||||
test/jdk/sun/security/pkcs11/README.</p>
|
||||
<h3 id="client-ui-tests">Client UI Tests</h3>
|
||||
<h4 id="system-key-shortcuts">System key shortcuts</h4>
|
||||
<p>Some Client UI tests use key sequences which may be reserved by the
|
||||
operating system. Usually that causes the test failure. So it is highly
|
||||
recommended to disable system key shortcuts prior testing. The steps to
|
||||
access and disable system key shortcuts for various platforms are
|
||||
provided below.</p>
|
||||
<h4 id="macos">MacOS</h4>
|
||||
<h5 id="macos">macOS</h5>
|
||||
<p>Choose Apple menu; System Preferences, click Keyboard, then click
|
||||
Shortcuts; select or deselect desired shortcut.</p>
|
||||
<p>For example,
|
||||
@@ -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
|
||||
deselect "Turn keyboard access on or off" option which is responsible
|
||||
for <code>CTRL + F1</code> combination.</p>
|
||||
<h4 id="linux">Linux</h4>
|
||||
<h5 id="linux">Linux</h5>
|
||||
<p>Open the Activities overview and start typing Settings; Choose
|
||||
Settings, click Devices, then click Keyboard; set or override desired
|
||||
shortcut.</p>
|
||||
<h4 id="windows">Windows</h4>
|
||||
<h5 id="windows">Windows</h5>
|
||||
<p>Type <code>gpedit</code> in the Search and then click Edit group
|
||||
policy; navigate to User Configuration -> Administrative Templates
|
||||
-> Windows Components -> File Explorer; in the right-side pane
|
||||
look for "Turn off Windows key hotkeys" and double click on it; enable
|
||||
or disable hotkeys.</p>
|
||||
<p>Note: restart is required to make the settings take effect.</p>
|
||||
<h4 id="robot-api">Robot API</h4>
|
||||
<p>Most automated Client UI tests use <code>Robot</code> API to control
|
||||
the UI. Usually, the default operating system settings need to be
|
||||
adjusted for Robot to work correctly. The detailed steps how to access
|
||||
and update these settings for different platforms are provided
|
||||
below.</p>
|
||||
<h5 id="macos-1">macOS</h5>
|
||||
<p><code>Robot</code> is not permitted to control your Mac by default
|
||||
since macOS 10.15. To allow it, choose Apple menu -> System Settings,
|
||||
click Privacy & Security; then click Accessibility and ensure the
|
||||
following apps are allowed to control your computer: <em>Java</em> and
|
||||
<em>Terminal</em>. If the tests are run from an IDE, the IDE should be
|
||||
granted this permission too.</p>
|
||||
<h5 id="windows-1">Windows</h5>
|
||||
<p>On Windows if Cygwin terminal is used to run the tests, there is a
|
||||
delay in focus transfer. Usually it causes automated UI test failure. To
|
||||
disable the delay, type <code>regedit</code> in the Search and then
|
||||
select Registry Editor; navigate to the following key:
|
||||
<code>HKEY_CURRENT_USER\Control Panel\Desktop</code>; make sure the
|
||||
<code>ForegroundLockTimeout</code> value is set to 0.</p>
|
||||
<p>Additional information about Client UI tests configuration for
|
||||
various operating systems can be obtained at <a
|
||||
href="https://wiki.openjdk.org/display/ClientLibs/Automated+client+GUI+testing+system+set+up+requirements">Automated
|
||||
client GUI testing system set up requirements</a></p>
|
||||
<h2 id="editing-this-document">Editing this document</h2>
|
||||
<p>If you want to contribute changes to this document, edit
|
||||
<code>doc/testing.md</code> and then run
|
||||
|
||||
@@ -606,12 +606,14 @@ test/jdk/sun/security/pkcs11/README.
|
||||
|
||||
### Client UI Tests
|
||||
|
||||
#### System key shortcuts
|
||||
|
||||
Some Client UI tests use key sequences which may be reserved by the operating
|
||||
system. Usually that causes the test failure. So it is highly recommended to
|
||||
disable system key shortcuts prior testing. The steps to access and disable
|
||||
system key shortcuts for various platforms are provided below.
|
||||
|
||||
#### MacOS
|
||||
##### macOS
|
||||
|
||||
Choose Apple menu; System Preferences, click Keyboard, then click Shortcuts;
|
||||
select or deselect desired shortcut.
|
||||
@@ -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"
|
||||
option which is responsible for `CTRL + F1` combination.
|
||||
|
||||
#### Linux
|
||||
##### Linux
|
||||
|
||||
Open the Activities overview and start typing Settings; Choose Settings, click
|
||||
Devices, then click Keyboard; set or override desired shortcut.
|
||||
|
||||
#### Windows
|
||||
##### Windows
|
||||
|
||||
Type `gpedit` in the Search and then click Edit group policy; navigate to User
|
||||
Configuration -> Administrative Templates -> Windows Components -> File
|
||||
@@ -638,6 +640,33 @@ double click on it; enable or disable hotkeys.
|
||||
|
||||
Note: restart is required to make the settings take effect.
|
||||
|
||||
#### Robot API
|
||||
|
||||
Most automated Client UI tests use `Robot` API to control the UI. Usually,
|
||||
the default operating system settings need to be adjusted for Robot
|
||||
to work correctly. The detailed steps how to access and update these settings
|
||||
for different platforms are provided below.
|
||||
|
||||
##### macOS
|
||||
|
||||
`Robot` is not permitted to control your Mac by default since
|
||||
macOS 10.15. To allow it, choose Apple menu -> System Settings, click
|
||||
Privacy & Security; then click Accessibility and ensure the following apps are
|
||||
allowed to control your computer: *Java* and *Terminal*. If the tests are run
|
||||
from an IDE, the IDE should be granted this permission too.
|
||||
|
||||
##### Windows
|
||||
|
||||
On Windows if Cygwin terminal is used to run the tests, there is a delay in
|
||||
focus transfer. Usually it causes automated UI test failure. To disable the
|
||||
delay, type `regedit` in the Search and then select Registry Editor; navigate
|
||||
to the following key: `HKEY_CURRENT_USER\Control Panel\Desktop`; make sure
|
||||
the `ForegroundLockTimeout` value is set to 0.
|
||||
|
||||
Additional information about Client UI tests configuration for various operating
|
||||
systems can be obtained at [Automated client GUI testing system set up
|
||||
requirements](https://wiki.openjdk.org/display/ClientLibs/Automated+client+GUI+testing+system+set+up+requirements)
|
||||
|
||||
## Editing this document
|
||||
|
||||
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.
|
||||
#
|
||||
# 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), \
|
||||
FILES := $(JCOV_BUNDLE_FILES), \
|
||||
BASE_DIRS := $(JCOV_IMAGE_DIR), \
|
||||
SUBDIR := $(JDK_BUNDLE_SUBDIR), \
|
||||
SUBDIR := jdk-$(VERSION_NUMBER), \
|
||||
))
|
||||
|
||||
JCOV_TARGETS += $(BUILD_JCOV_BUNDLE)
|
||||
|
||||
@@ -171,41 +171,41 @@ $(BUILD_DEMO_CodePointIM_JAR): $(CODEPOINT_METAINF_SERVICE_FILE)
|
||||
|
||||
$(eval $(call SetupBuildDemo, FileChooserDemo, \
|
||||
DEMO_SUBDIR := jfc, \
|
||||
DISABLED_WARNINGS := rawtypes deprecation unchecked, \
|
||||
DISABLED_WARNINGS := rawtypes deprecation unchecked this-escape, \
|
||||
))
|
||||
|
||||
$(eval $(call SetupBuildDemo, SwingSet2, \
|
||||
DEMO_SUBDIR := jfc, \
|
||||
EXTRA_COPY_TO_JAR := .java, \
|
||||
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, \
|
||||
DISABLED_WARNINGS := rawtypes deprecation unchecked serial cast, \
|
||||
DISABLED_WARNINGS := rawtypes deprecation unchecked serial cast this-escape, \
|
||||
DEMO_SUBDIR := jfc, \
|
||||
))
|
||||
|
||||
$(eval $(call SetupBuildDemo, J2Ddemo, \
|
||||
DEMO_SUBDIR := jfc, \
|
||||
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, \
|
||||
))
|
||||
|
||||
$(eval $(call SetupBuildDemo, Metalworks, \
|
||||
DISABLED_WARNINGS := rawtypes unchecked, \
|
||||
DISABLED_WARNINGS := rawtypes unchecked this-escape, \
|
||||
DEMO_SUBDIR := jfc, \
|
||||
))
|
||||
|
||||
$(eval $(call SetupBuildDemo, Notepad, \
|
||||
DISABLED_WARNINGS := rawtypes, \
|
||||
DISABLED_WARNINGS := rawtypes this-escape, \
|
||||
DEMO_SUBDIR := jfc, \
|
||||
))
|
||||
|
||||
$(eval $(call SetupBuildDemo, Stylepad, \
|
||||
DEMO_SUBDIR := jfc, \
|
||||
DISABLED_WARNINGS := rawtypes unchecked, \
|
||||
DISABLED_WARNINGS := rawtypes unchecked this-escape, \
|
||||
EXTRA_SRC_DIR := $(DEMO_SHARE_SRC)/jfc/Notepad, \
|
||||
EXCLUDE_FILES := $(DEMO_SHARE_SRC)/jfc/Notepad/README.txt, \
|
||||
))
|
||||
@@ -215,11 +215,12 @@ $(eval $(call SetupBuildDemo, SampleTree, \
|
||||
))
|
||||
|
||||
$(eval $(call SetupBuildDemo, TableExample, \
|
||||
DISABLED_WARNINGS := rawtypes unchecked deprecation, \
|
||||
DISABLED_WARNINGS := rawtypes unchecked deprecation this-escape, \
|
||||
DEMO_SUBDIR := jfc, \
|
||||
))
|
||||
|
||||
$(eval $(call SetupBuildDemo, TransparentRuler, \
|
||||
DISABLED_WARNINGS := this-escape, \
|
||||
DEMO_SUBDIR := jfc, \
|
||||
MAIN_CLASS := transparentruler.Ruler, \
|
||||
))
|
||||
|
||||
@@ -53,7 +53,7 @@ $(eval $(call SetupJavaCompilation, BUILD_JIGSAW_TOOLS, \
|
||||
build/tools/jigsaw, \
|
||||
COPY := .properties .html, \
|
||||
BIN := $(TOOLS_CLASSES_DIR), \
|
||||
DISABLED_WARNINGS := fallthrough, \
|
||||
DISABLED_WARNINGS := fallthrough this-escape, \
|
||||
JAVAC_FLAGS := \
|
||||
--add-modules jdk.jdeps \
|
||||
--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.
|
||||
#
|
||||
# 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)
|
||||
|
||||
$(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, \
|
||||
|
||||
@@ -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.
|
||||
#
|
||||
# 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 \
|
||||
-encoding ISO-8859-1 -docencoding UTF-8 -breakiterator \
|
||||
-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
|
||||
# development cycle.
|
||||
REFERENCE_OPTIONS := -XDignore.symbol.file=true -use -keywords -notimestamp \
|
||||
-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?
|
||||
ifeq ($(VERSION_IS_GA), true)
|
||||
|
||||
@@ -257,6 +257,46 @@ $(eval $(call SetupTarget, hotspot-ide-project, \
|
||||
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) \
|
||||
$(HOTSPOT_VARIANT_LIBS_TARGETS)
|
||||
|
||||
|
||||
@@ -51,6 +51,7 @@ define create-info-file
|
||||
$(if $(VENDOR_VERSION_STRING), \
|
||||
$(call info-file-item, "IMPLEMENTOR_VERSION", "$(VENDOR_VERSION_STRING)"))
|
||||
$(call info-file-item, "JAVA_VERSION_DATE", "$(VERSION_DATE)")
|
||||
$(call info-file-item, "JAVA_RUNTIME_VERSION", "$(VERSION_STRING)")
|
||||
$(call info-file-item, "OS_NAME", "$(RELEASE_FILE_OS_NAME)")
|
||||
$(call info-file-item, "OS_ARCH", "$(RELEASE_FILE_OS_ARCH)")
|
||||
$(call info-file-item, "LIBC", "$(RELEASE_FILE_LIBC)")
|
||||
|
||||
@@ -592,7 +592,16 @@ define SetupRunMicroTestBody
|
||||
endif
|
||||
|
||||
# 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), )
|
||||
$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
|
||||
# is the same. On older AIXes we just continue to live with a "not local build" warning.
|
||||
if test "x$OPENJDK_TARGET_OS" = xaix; then
|
||||
DF_LOCAL_ONLY_OPTION='-T local'
|
||||
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
|
||||
# In WSL1, we can only build on a drvfs file system (that is, a mounted real Windows drive)
|
||||
DF_LOCAL_ONLY_OPTION='-t drvfs'
|
||||
|
||||
@@ -434,7 +434,7 @@ AC_DEFUN_ONCE([BASIC_SETUP_PANDOC],
|
||||
|
||||
if test "x$PANDOC" != x; then
|
||||
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])
|
||||
|
||||
if test "x$PANDOC_VERSION" != x$RECOMMENDED_PANDOC_VERSION; then
|
||||
@@ -443,7 +443,7 @@ AC_DEFUN_ONCE([BASIC_SETUP_PANDOC],
|
||||
|
||||
PANDOC_MARKDOWN_FLAG="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])
|
||||
PANDOC_MARKDOWN_FLAG="markdown-smart"
|
||||
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.
|
||||
#
|
||||
# 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...
|
||||
|
||||
# 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
|
||||
else
|
||||
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.
|
||||
#
|
||||
# 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"
|
||||
|
||||
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)
|
||||
@@ -476,8 +480,7 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
|
||||
ALWAYS_DEFINES_JDK="-DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0602 \
|
||||
-D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE -DWIN32 -DIAL"
|
||||
ALWAYS_DEFINES_JVM="-DNOMINMAX -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0602 \
|
||||
-D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE \
|
||||
-D_WINSOCK_DEPRECATED_NO_WARNINGS"
|
||||
-D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE"
|
||||
fi
|
||||
|
||||
###############################################################################
|
||||
|
||||
@@ -415,7 +415,8 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_ADDRESS_SANITIZER],
|
||||
CHECK_AVAILABLE: [
|
||||
AC_MSG_CHECKING([if AddressSanitizer (asan) is available])
|
||||
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])
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
@@ -423,11 +424,20 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_ADDRESS_SANITIZER],
|
||||
fi
|
||||
],
|
||||
IF_ENABLED: [
|
||||
# ASan is simply incompatible with gcc -Wstringop-truncation. See
|
||||
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85650
|
||||
# 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"
|
||||
if test "x$TOOLCHAIN_TYPE" = "xgcc" ||
|
||||
test "x$TOOLCHAIN_TYPE" = "xclang"; then
|
||||
# ASan is simply incompatible with gcc -Wstringop-truncation. See
|
||||
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85650
|
||||
# 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_LDFLAGS="$JVM_LDFLAGS $ASAN_LDFLAGS"
|
||||
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.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@@ -247,8 +247,11 @@ AC_DEFUN_ONCE([JVM_FEATURES_CHECK_CDS],
|
||||
AC_DEFUN_ONCE([JVM_FEATURES_CHECK_DTRACE],
|
||||
[
|
||||
JVM_FEATURES_CHECK_AVAILABILITY(dtrace, [
|
||||
AC_MSG_CHECKING([for dtrace tool])
|
||||
if test "x$DTRACE" != "x" && test -x "$DTRACE"; then
|
||||
AC_MSG_CHECKING([for dtrace tool and platform support])
|
||||
if test "x$OPENJDK_TARGET_CPU_ARCH" = "xppc"; then
|
||||
AC_MSG_RESULT([no, $OPENJDK_TARGET_CPU_ARCH])
|
||||
AVAILABLE=false
|
||||
elif test "x$DTRACE" != "x" && test -x "$DTRACE"; then
|
||||
AC_MSG_RESULT([$DTRACE])
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
|
||||
@@ -61,7 +61,7 @@ AC_DEFUN_ONCE([LIB_TESTS_SETUP_GTEST],
|
||||
|
||||
# Verify that the version is the required one.
|
||||
# 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_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
|
||||
|
||||
@@ -170,8 +170,8 @@ AC_DEFUN_ONCE([LIB_SETUP_LIBRARIES],
|
||||
|
||||
if test "x$OPENJDK_TARGET_OS" = xwindows; then
|
||||
BASIC_JVM_LIBS="$BASIC_JVM_LIBS kernel32.lib user32.lib gdi32.lib winspool.lib \
|
||||
comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib \
|
||||
wsock32.lib winmm.lib version.lib psapi.lib"
|
||||
comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib powrprof.lib uuid.lib \
|
||||
ws2_32.lib winmm.lib version.lib psapi.lib"
|
||||
fi
|
||||
LIB_SETUP_JVM_LIBS(BUILD)
|
||||
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.
|
||||
#
|
||||
# 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`
|
||||
# Resolve file symlinks
|
||||
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
|
||||
# This is not a symbolic link! We are done!
|
||||
break
|
||||
|
||||
@@ -257,7 +257,7 @@ ifeq ($(HAS_FILE_FUNCTION), true)
|
||||
else
|
||||
# Use printf to get consistent behavior on all platforms.
|
||||
WriteFile = \
|
||||
$(shell $(PRINTF) "%s" $(call ShellQuote, $1) > $2)
|
||||
$(shell $(PRINTF) "%s\n" $(strip $(call ShellQuote, $1)) > $2)
|
||||
endif
|
||||
|
||||
# Param 1 - Text to write
|
||||
@@ -268,5 +268,5 @@ ifeq ($(HAS_FILE_FUNCTION), true)
|
||||
else
|
||||
# Use printf to get consistent behavior on all platforms.
|
||||
AppendFile = \
|
||||
$(shell $(PRINTF) "%s" $(call ShellQuote, $1) >> $2)
|
||||
$(shell $(PRINTF) "%s\n" $(strip $(call ShellQuote, $1)) >> $2)
|
||||
endif
|
||||
|
||||
@@ -84,7 +84,7 @@ define ProcessMarkdown
|
||||
$$(call MakeDir, $$(SUPPORT_OUTPUTDIR)/markdown $$(dir $$($1_$2_PANDOC_OUTPUT)))
|
||||
$$(call ExecuteWithLog, $$(SUPPORT_OUTPUTDIR)/markdown/$$($1_$2_MARKER), \
|
||||
$$(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_PANDOC_INPUT)' -o '$$($1_$2_PANDOC_OUTPUT)')
|
||||
ifneq ($$(findstring $$(LOG_LEVEL), debug trace),)
|
||||
|
||||
@@ -851,7 +851,7 @@ var getJibProfilesProfiles = function (input, common, data) {
|
||||
[ "linux-aarch64", "linux-x64", "macosx-x64", "macosx-aarch64", "windows-x64" ]
|
||||
.forEach(function (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 pf = o.platform
|
||||
var jcovName = name + "-jcov";
|
||||
@@ -1048,7 +1048,7 @@ var getJibProfilesDependencies = function (input, common) {
|
||||
linux_x64: "gcc11.2.0-OL6.4+1.0",
|
||||
macosx: "Xcode12.4+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_ppc64le: "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)
|
||||
#define ATTRIBUTE_DEFAULT_VISIBILITY __attribute__((visibility("default")))
|
||||
#elif defined(_MSC_VER)
|
||||
#define ATTRIBUTE_DEFAULT_VISIBILITY __declspec(dllexport)
|
||||
#else
|
||||
#define ATTRIBUTE_DEFAULT_VISIBILITY
|
||||
#endif
|
||||
@@ -43,12 +45,18 @@
|
||||
#define ATTRIBUTE_USED
|
||||
#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
|
||||
// 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.
|
||||
// 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.
|
||||
ATTRIBUTE_DEFAULT_VISIBILITY ATTRIBUTE_USED const char* __asan_default_options() {
|
||||
ATTRIBUTE_DEFAULT_VISIBILITY ATTRIBUTE_USED const char* CDECL __asan_default_options() {
|
||||
return
|
||||
#ifdef LEAK_SANITIZER
|
||||
"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.
|
||||
#
|
||||
# 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 874
|
||||
|
||||
# alias for GB18030 is generated at runtime
|
||||
charset GB18030 GB18030
|
||||
package sun.nio.cs
|
||||
type source
|
||||
|
||||
########################################################
|
||||
#
|
||||
# charsets provided by ExtendedCharsets provider.
|
||||
@@ -563,11 +568,6 @@ charset GBK GBK # Simplified Chinese
|
||||
alias windows-936
|
||||
alias CP936
|
||||
|
||||
charset GB18030 GB18030
|
||||
package sun.nio.cs.ext
|
||||
type template
|
||||
alias gb18030-2000
|
||||
|
||||
charset GB2312 EUC_CN
|
||||
package sun.nio.cs.ext
|
||||
type dbcs
|
||||
|
||||
@@ -7,7 +7,6 @@ Big5_HKSCS
|
||||
EUC_CN
|
||||
EUC_KR
|
||||
GBK
|
||||
GB18030
|
||||
IBM856
|
||||
IBM921
|
||||
IBM922
|
||||
|
||||
@@ -11,7 +11,6 @@ EUC_JP_LINUX
|
||||
EUC_JP_Open
|
||||
EUC_TW
|
||||
GBK
|
||||
GB18030
|
||||
ISO_8859_11
|
||||
ISO_8859_3
|
||||
ISO_8859_6
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
#
|
||||
# generate these charsets into sun.nio.cs
|
||||
#
|
||||
Big5
|
||||
Big5_Solaris
|
||||
Big5_HKSCS # always together with Big5
|
||||
EUC_CN
|
||||
EUC_KR
|
||||
EUC_JP
|
||||
EUC_JP_LINUX
|
||||
EUC_JP_Open
|
||||
EUC_TW
|
||||
GBK
|
||||
GB18030
|
||||
ISO_8859_11
|
||||
ISO_8859_3
|
||||
ISO_8859_6
|
||||
ISO_8859_8
|
||||
Johab
|
||||
PCK
|
||||
TIS_620
|
||||
JIS_X_0201
|
||||
JIS_X_0208
|
||||
JIS_X_0212
|
||||
JIS_X_0208_Solaris
|
||||
JIS_X_0212_Solaris
|
||||
@@ -2,7 +2,6 @@
|
||||
# generate these charsets into sun.nio.cs
|
||||
#
|
||||
GBK
|
||||
GB18030
|
||||
Johab
|
||||
MS1255
|
||||
MS1256
|
||||
|
||||
@@ -1193,8 +1193,8 @@ annotations.
|
||||
<territory type="TM">Turkmenistan</territory>
|
||||
<territory type="TN">Tunisia</territory>
|
||||
<territory type="TO">Tonga</territory>
|
||||
<territory type="TR">Turkey</territory>
|
||||
<territory type="TR" alt="variant">Türkiye</territory>
|
||||
<territory type="TR">Türkiye</territory>
|
||||
<territory type="TR" alt="variant">Turkey</territory>
|
||||
<territory type="TT">Trinidad & Tobago</territory>
|
||||
<territory type="TV">Tuvalu</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
|
||||
@@ -218,10 +218,8 @@ JVM_DefineModule
|
||||
JVM_SetBootLoaderUnnamedModule
|
||||
|
||||
# Virtual thread notifications for JVMTI
|
||||
JVM_VirtualThreadMountBegin
|
||||
JVM_VirtualThreadMountEnd
|
||||
JVM_VirtualThreadUnmountBegin
|
||||
JVM_VirtualThreadUnmountEnd
|
||||
JVM_VirtualThreadMount
|
||||
JVM_VirtualThreadUnmount
|
||||
JVM_VirtualThreadHideFrames
|
||||
|
||||
# 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.
|
||||
#
|
||||
# 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/
|
||||
else
|
||||
DEFAULT_OS_VERSION := 27
|
||||
LATEST_ARCHIVED_OS_VERSION := 35
|
||||
ifeq ($(BASE_OS_VERSION), )
|
||||
BASE_OS_VERSION := $(DEFAULT_OS_VERSION)
|
||||
endif
|
||||
@@ -79,11 +80,11 @@ else ifeq ($(BASE_OS), Fedora)
|
||||
else
|
||||
FEDORA_TYPE := fedora/linux
|
||||
endif
|
||||
ARCHIVED := $(shell [ $(BASE_OS_VERSION) -lt $(DEFAULT_OS_VERSION) ] && echo true)
|
||||
ifeq ($(ARCHIVED),true)
|
||||
BASE_URL := https://archives.fedoraproject.org/pub/archive/$(FEDORA_TYPE)/releases/$(BASE_OS_VERSION)/Everything/$(ARCH)/os/Packages/
|
||||
else
|
||||
NOT_ARCHIVED := $(shell [ $(BASE_OS_VERSION) -gt $(LATEST_ARCHIVED_OS_VERSION) ] && echo true)
|
||||
ifeq ($(NOT_ARCHIVED),true)
|
||||
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
|
||||
LINUX_VERSION := Fedora_$(BASE_OS_VERSION)
|
||||
@@ -449,7 +450,7 @@ $(BUILDDIR)/$(binutils_ver)/Makefile \
|
||||
$(PATHPRE) $(ENVS) CFLAGS="-O2 $(CFLAGS)" \
|
||||
$(BINUTILS_CFG) \
|
||||
$(CONFIG) \
|
||||
$(LINKER_CONFIG) \
|
||||
$(LINKER_CONFIG) \
|
||||
--with-sysroot=$(SYSROOT) \
|
||||
--disable-nls \
|
||||
--program-prefix=$(TARGET)- \
|
||||
|
||||
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;
|
||||
*
|
||||
* 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 {
|
||||
CONTAINS() {
|
||||
|
||||
@@ -54,7 +54,7 @@ public final class LangtoolsIdeaAntLogger extends DefaultLogger {
|
||||
/**
|
||||
* 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 {
|
||||
CONTAINS() {
|
||||
|
||||
@@ -35,8 +35,8 @@ ifeq ($(call isTargetOs, windows), true)
|
||||
# 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.
|
||||
|
||||
# Use server as base for defines and includes
|
||||
JVM_VARIANT=server
|
||||
# Use primary variant for defines and includes
|
||||
JVM_VARIANT := $(JVM_VARIANT_MAIN)
|
||||
|
||||
include HotspotCommon.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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@@ -50,18 +50,19 @@ public class SPI {
|
||||
out.println(line);
|
||||
} else {
|
||||
charsets.values()
|
||||
.stream()
|
||||
.filter(cs -> cs.pkgName.equals("sun.nio.cs.ext") &&
|
||||
!cs.isInternal &&
|
||||
(cs.os == null || cs.os.equals(os)))
|
||||
.forEach( cs -> {
|
||||
out.printf(" charset(\"%s\", \"%s\",%n", cs.csName, cs.clzName);
|
||||
out.printf(" new String[] {%n");
|
||||
for (String alias : cs.aliases) {
|
||||
out.printf(" \"%s\",%n", alias);
|
||||
}
|
||||
out.printf(" });%n%n");
|
||||
});
|
||||
.stream()
|
||||
.filter(cs -> cs.pkgName.equals("sun.nio.cs.ext") &&
|
||||
!cs.isInternal &&
|
||||
(cs.os == null || cs.os.equals(os)))
|
||||
.forEach( cs -> {
|
||||
out.printf(" charset(\"%s\", \"%s\",%n", cs.csName, cs.clzName);
|
||||
out.printf(" new String[] {%n");
|
||||
for (String alias : cs.aliases) {
|
||||
out.printf(" \"%s\",%n",
|
||||
alias);
|
||||
}
|
||||
out.printf(" });%n%n");
|
||||
});
|
||||
}
|
||||
}
|
||||
} else if (type.startsWith("stdcs")) { // StandardCharsets.java
|
||||
@@ -93,8 +94,15 @@ public class SPI {
|
||||
.filter(cs -> cs.pkgName.equals("sun.nio.cs"))
|
||||
.forEach( cs -> {
|
||||
if (cs.aliases == null || cs.aliases.length == 0) {
|
||||
out.printf(" static String[] aliases_%s() { return null; }%n%n",
|
||||
cs.clzName);
|
||||
if (cs.csName.equals("GB18030")) {
|
||||
out.printf(" static String[] aliases_GB18030() { return new String[] {%n");
|
||||
out.printf(" GB18030.IS_2000 ? \"gb18030-2000\" : \"gb18030-2022\"%n");
|
||||
out.printf(" };%n");
|
||||
out.printf(" }%n%n");
|
||||
} else {
|
||||
out.printf(" static String[] aliases_%s() { return null; }%n%n",
|
||||
cs.clzName);
|
||||
}
|
||||
} else {
|
||||
boolean methodEnd = true;
|
||||
// non-final for SJIS and MS932 to support sun.nio.cs.map
|
||||
|
||||
@@ -69,6 +69,7 @@ public class CLDRConverter {
|
||||
private static String WINZONES_SOURCE_FILE;
|
||||
private static String PLURALS_SOURCE_FILE;
|
||||
private static String DAYPERIODRULE_SOURCE_FILE;
|
||||
private static String COVERAGELEVELS_FILE;
|
||||
static String DESTINATION_DIR = "build/gensrc";
|
||||
|
||||
static final String LOCALE_NAME_PREFIX = "locale.displayname.";
|
||||
@@ -258,6 +259,7 @@ public class CLDRConverter {
|
||||
WINZONES_SOURCE_FILE = CLDR_BASE + "/supplemental/windowsZones.xml";
|
||||
PLURALS_SOURCE_FILE = CLDR_BASE + "/supplemental/plurals.xml";
|
||||
DAYPERIODRULE_SOURCE_FILE = CLDR_BASE + "/supplemental/dayPeriods.xml";
|
||||
COVERAGELEVELS_FILE = CLDR_BASE + "/properties/coverageLevels.txt";
|
||||
|
||||
if (BASE_LOCALES.isEmpty()) {
|
||||
setupBaseLocales("en-US");
|
||||
@@ -359,13 +361,18 @@ public class CLDRConverter {
|
||||
private static List<Bundle> readBundleList() throws Exception {
|
||||
List<Bundle> retList = new ArrayList<>();
|
||||
Path path = FileSystems.getDefault().getPath(SOURCE_FILE_DIR);
|
||||
var coverageMap = coverageLevelsMap();
|
||||
try (DirectoryStream<Path> dirStr = Files.newDirectoryStream(path)) {
|
||||
for (Path entry : dirStr) {
|
||||
String fileName = entry.getFileName().toString();
|
||||
if (fileName.endsWith(".xml")) {
|
||||
String id = fileName.substring(0, fileName.indexOf('.'));
|
||||
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) {
|
||||
sb.append("root");
|
||||
}
|
||||
@@ -510,8 +517,7 @@ public class CLDRConverter {
|
||||
parser.parse(srcfile, handler);
|
||||
}
|
||||
|
||||
private static StringBuilder getCandLocales(Locale cldrLoc) {
|
||||
List<Locale> candList = getCandidateLocales(cldrLoc);
|
||||
private static StringBuilder getCandLocales(List<Locale> candList) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (Locale loc : candList) {
|
||||
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
|
||||
static void dumpMap(Map<String, Object> map) {
|
||||
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.MethodTree;
|
||||
import com.sun.source.tree.ModifiersTree;
|
||||
import com.sun.source.tree.PrimitiveTypeTree;
|
||||
import com.sun.source.tree.Tree;
|
||||
import com.sun.source.tree.VariableTree;
|
||||
import java.io.File;
|
||||
@@ -140,9 +141,12 @@ public class Depend implements Plugin {
|
||||
public void init(JavacTask jt, String... args) {
|
||||
addExports();
|
||||
|
||||
Path internalAPIDigestFile;
|
||||
Map<String, String> internalAPI = new HashMap<>();
|
||||
AtomicBoolean noApiChange = new AtomicBoolean();
|
||||
Context context = ((BasicJavacTask) jt).getContext();
|
||||
JavaCompiler compiler = JavaCompiler.instance(context);
|
||||
try {
|
||||
Context context = ((BasicJavacTask) jt).getContext();
|
||||
Options options = Options.instance(context);
|
||||
String modifiedInputs = options.get("modifiedInputs");
|
||||
if (modifiedInputs == null) {
|
||||
@@ -157,8 +161,18 @@ public class Depend implements Plugin {
|
||||
Set<Path> modified = Files.readAllLines(Paths.get(modifiedInputs)).stream()
|
||||
.map(Paths::get)
|
||||
.collect(Collectors.toSet());
|
||||
Path internalAPIDigestFile = Paths.get(internalAPIPath);
|
||||
JavaCompiler compiler = JavaCompiler.instance(context);
|
||||
internalAPIDigestFile = Paths.get(internalAPIPath);
|
||||
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<?> initialFileParser = Class.forName("com.sun.tools.javac.main.JavaCompiler$InitialFileParser");
|
||||
Field initialParserKeyField = initialFileParser.getDeclaredField("initialParserKey");
|
||||
@@ -169,7 +183,7 @@ public class Depend implements Plugin {
|
||||
new Class<?>[] {initialFileParserIntf},
|
||||
new FilteredInitialFileParser(compiler,
|
||||
modified,
|
||||
internalAPIDigestFile,
|
||||
internalAPI,
|
||||
noApiChange,
|
||||
debug));
|
||||
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;
|
||||
File digestFile = new File(args[0]);
|
||||
try (InputStream in = new FileInputStream(digestFile)) {
|
||||
@@ -258,20 +282,8 @@ public class Depend implements Plugin {
|
||||
|
||||
private com.sun.tools.javac.util.List<JCCompilationUnit> doFilteredParse(
|
||||
JavaCompiler compiler, Iterable<JavaFileObject> fileObjects, Set<Path> modified,
|
||||
Path internalAPIDigestFile, AtomicBoolean noApiChange,
|
||||
Map<String, String> internalAPI, AtomicBoolean noApiChange,
|
||||
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<>();
|
||||
boolean fullRecompile = modified.stream()
|
||||
.map(Path::toString)
|
||||
@@ -289,7 +301,6 @@ public class Depend implements Plugin {
|
||||
result.add(parsed);
|
||||
}
|
||||
}
|
||||
|
||||
if (fullRecompile) {
|
||||
for (JavaFileObject jfo : fileObjects) {
|
||||
if (!modified.contains(Path.of(jfo.getName()))) {
|
||||
@@ -301,15 +312,6 @@ public class Depend implements Plugin {
|
||||
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 {
|
||||
noApiChange.set(true);
|
||||
}
|
||||
@@ -835,7 +837,7 @@ public class Depend implements Plugin {
|
||||
!isPrivate(((VariableTree) m).getModifiers()) ||
|
||||
isRecordComponent((VariableTree) m);
|
||||
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);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Void visitPrimitiveType(PrimitiveTypeTree node, Void p) {
|
||||
update(node.getPrimitiveTypeKind().name());
|
||||
return super.visitPrimitiveType(node, p);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private class FilteredInitialFileParser implements InvocationHandler {
|
||||
|
||||
private final JavaCompiler compiler;
|
||||
private final Set<Path> modified;
|
||||
private final Path internalAPIDigestFile;
|
||||
private final Map<String, String> internalAPI;
|
||||
private final AtomicBoolean noApiChange;
|
||||
private final boolean debug;
|
||||
|
||||
public FilteredInitialFileParser(JavaCompiler compiler,
|
||||
Set<Path> modified,
|
||||
Path internalAPIDigestFile,
|
||||
Map<String, String> internalAPI,
|
||||
AtomicBoolean noApiChange,
|
||||
boolean debug) {
|
||||
this.compiler = compiler;
|
||||
this.modified = modified;
|
||||
this.internalAPIDigestFile = internalAPIDigestFile;
|
||||
this.internalAPI = internalAPI;
|
||||
this.noApiChange = noApiChange;
|
||||
this.debug = debug;
|
||||
}
|
||||
@@ -907,7 +915,7 @@ public class Depend implements Plugin {
|
||||
case "parse" -> doFilteredParse(compiler,
|
||||
(Iterable<JavaFileObject>) args[0],
|
||||
modified,
|
||||
internalAPIDigestFile,
|
||||
internalAPI,
|
||||
noApiChange,
|
||||
debug);
|
||||
default -> throw new UnsupportedOperationException();
|
||||
|
||||
@@ -28,6 +28,7 @@ import com.sun.source.util.Plugin;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.io.Writer;
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
import java.nio.file.Files;
|
||||
@@ -54,6 +55,8 @@ public class DependTest {
|
||||
test.testRecords();
|
||||
test.testImports();
|
||||
test.testModifiers();
|
||||
test.testPrimitiveTypeChanges();
|
||||
test.testWithErrors();
|
||||
}
|
||||
|
||||
public void testMethods() throws Exception {
|
||||
@@ -302,6 +305,27 @@ public class DependTest {
|
||||
"package test; public record Test (int x, int y) {" +
|
||||
"public Test (int x, int y, int z) { this(x, y); } }", // additional ctr
|
||||
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();
|
||||
@@ -310,6 +334,7 @@ public class DependTest {
|
||||
private Path scratchClasses;
|
||||
private Path apiHash;
|
||||
private Path treeHash;
|
||||
private Path modifiedFiles;
|
||||
|
||||
private void setupClass() throws IOException {
|
||||
depend = Paths.get(Depend.class.getProtectionDomain().getCodeSource().getLocation().getPath());
|
||||
@@ -328,6 +353,7 @@ public class DependTest {
|
||||
|
||||
apiHash = scratch.resolve("api");
|
||||
treeHash = scratch.resolve("tree");
|
||||
modifiedFiles = scratch.resolve("modified-files");
|
||||
}
|
||||
|
||||
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 {
|
||||
try (Writer out = Files.newBufferedWriter(modifiedFiles)) {
|
||||
out.append("module-info.java\n");
|
||||
out.append("test.Test.java\n");
|
||||
}
|
||||
List<String> options =
|
||||
Arrays.asList("-d", scratchClasses.toString(),
|
||||
"-processorpath", depend.toString() + File.pathSeparator + scratchServices.toString(),
|
||||
"-Xplugin:depend " + apiHash.toString() + " " + treeHash.toString(),
|
||||
"-XDmodifiedInputs=build-all");
|
||||
"-Xplugin:depend " + apiHash.toString(),
|
||||
"-XDinternalAPIPath=" + treeHash.toString(),
|
||||
"-XDmodifiedInputs=" + modifiedFiles.toString());
|
||||
List<TestJavaFileObject> beforeFiles =
|
||||
Arrays.asList(new TestJavaFileObject("module-info", "module m { exports test; }"),
|
||||
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 {
|
||||
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 =
|
||||
Arrays.asList("-d", scratchClasses.toString(),
|
||||
"-processorpath", depend.toString() + File.pathSeparator + scratchServices.toString(),
|
||||
"-Xplugin:depend " + apiHash.toString() + " " + treeHash.toString(),
|
||||
"-XDmodifiedInputs=build-all");
|
||||
"-XDinternalAPIPath=" + treeHash.toString(),
|
||||
"-XDmodifiedInputs=" + modifiedFiles.toString());
|
||||
List<TestJavaFileObject> beforeFiles =
|
||||
Arrays.asList(new TestJavaFileObject("module-info", codeBefore),
|
||||
new TestJavaFileObject("test.Test1", "package test; public interface Test1 {}"),
|
||||
@@ -406,10 +445,12 @@ public class DependTest {
|
||||
|
||||
private static final class TestJavaFileObject extends SimpleJavaFileObject {
|
||||
|
||||
private final String className;
|
||||
private final String code;
|
||||
|
||||
public TestJavaFileObject(String className, String code) throws URISyntaxException {
|
||||
super(new URI("mem:/" + className.replace('.', '/') + ".java"), Kind.SOURCE);
|
||||
this.className = className;
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
@@ -418,5 +459,10 @@ public class DependTest {
|
||||
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.
|
||||
*
|
||||
* 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.FileWriter;
|
||||
import java.io.File;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.List;
|
||||
|
||||
import build.tools.generatecharacter.CharacterName;
|
||||
@@ -74,6 +75,7 @@ public class GenerateCharacter {
|
||||
static String DefaultSpecialCasingFileName = ROOT + "SpecialCasing.txt";
|
||||
static String DefaultPropListFileName = ROOT + "PropList.txt";
|
||||
static String DefaultDerivedPropsFileName = ROOT + "DerivedCoreProperties.txt";
|
||||
static String DefaultEmojiDataFileName = ROOT + "emoji-data.txt";
|
||||
static String DefaultJavaTemplateFileName = ROOT + "Character.java.template";
|
||||
static String DefaultJavaOutputFileName = ROOT + "Character.java";
|
||||
static String DefaultCTemplateFileName = ROOT + "Character.c.template";
|
||||
@@ -105,7 +107,7 @@ public class GenerateCharacter {
|
||||
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.
|
||||
|
||||
A: the low 32 bits are defined in the following manner:
|
||||
@@ -160,6 +162,13 @@ public class GenerateCharacter {
|
||||
1 bit Ideographic property
|
||||
1 bit ID_Start 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
|
||||
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
|
||||
private static final long
|
||||
maskOtherLowercase = 0x0100000000L,
|
||||
maskOtherUppercase = 0x0200000000L,
|
||||
maskOtherAlphabetic = 0x0400000000L,
|
||||
maskIdeographic = 0x0800000000L,
|
||||
maskIDStart = 0x1000000000L,
|
||||
maskIDContinue = 0x2000000000L;
|
||||
static final long
|
||||
maskOtherLowercase = 1L << 32,
|
||||
maskOtherUppercase = 1L << 33,
|
||||
maskOtherAlphabetic = 1L << 34,
|
||||
maskIdeographic = 1L << 35,
|
||||
maskIDStart = 1L << 36,
|
||||
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
|
||||
// numeric or lexical types.
|
||||
@@ -304,7 +319,7 @@ public class GenerateCharacter {
|
||||
* @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];
|
||||
int k = 0;
|
||||
@@ -361,6 +376,9 @@ public class GenerateCharacter {
|
||||
addExProp(result, propList, "ID_Start", maskIDStart);
|
||||
addExProp(result, propList, "ID_Continue", maskIDContinue);
|
||||
|
||||
// add Emoji properties to the upper 16-bit
|
||||
addEmojiProps(result, emojiData);
|
||||
|
||||
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
|
||||
* 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("maskIDStart")) return "0x" + hex4(maskIDStart >> 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("valueJavaUnicodeStart")) return "0x" + hex8(valueJavaUnicodeStart);
|
||||
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,
|
||||
// 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);
|
||||
result.append(commentStart);
|
||||
@@ -1434,6 +1466,42 @@ OUTER: for (int i = 0; i < n; i += m) {
|
||||
result.append(", supradecimal ");
|
||||
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" };
|
||||
@@ -1512,6 +1580,7 @@ OUTER: for (int i = 0; i < n; i += m) {
|
||||
static String SpecialCasingFileName = null;
|
||||
static String PropListFileName = null;
|
||||
static String DerivedPropsFileName = null;
|
||||
static String EmojiDataFileName = null;
|
||||
static boolean useCharForByte = false;
|
||||
static int[] sizes;
|
||||
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];
|
||||
}
|
||||
}
|
||||
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")) {
|
||||
if (j == args.length -1) {
|
||||
FAIL("Plane number missing after -plane");
|
||||
@@ -1717,6 +1794,10 @@ OUTER: for (int i = 0; i < n; i += m) {
|
||||
DerivedPropsFileName = DefaultDerivedPropsFileName;
|
||||
desc.append(" [-derivedprops " + DerivedPropsFileName + ']');
|
||||
}
|
||||
if (EmojiDataFileName == null) {
|
||||
EmojiDataFileName = DefaultEmojiDataFileName;
|
||||
desc.append(" [-emojidata " + EmojiDataFileName + ']');
|
||||
}
|
||||
if (TemplateFileName == null) {
|
||||
TemplateFileName = (Csyntax ? DefaultCTemplateFileName
|
||||
: DefaultJavaTemplateFileName);
|
||||
@@ -1871,11 +1952,12 @@ OUTER: for (int i = 0; i < n; i += m) {
|
||||
specialCaseMaps = SpecialCaseMap.readSpecFile(new File(SpecialCasingFileName), plane);
|
||||
PropList propList = PropList.readSpecFile(new File(PropListFileName), plane);
|
||||
propList.putAll(PropList.readSpecFile(new File(DerivedPropsFileName), plane));
|
||||
EmojiData emojiData = EmojiData.readSpecFile(Paths.get(EmojiDataFileName), plane);
|
||||
|
||||
if (verbose) {
|
||||
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) {
|
||||
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.
|
||||
#
|
||||
# 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/GensrcVarHandles.gmk
|
||||
include gensrc/GensrcModuleLoaderMap.gmk
|
||||
include gensrc/GensrcEmojiData.gmk
|
||||
include gensrc/GensrcScopedMemoryAccess.gmk
|
||||
|
||||
# GensrcLocaleData.gmk does not set TARGETS, so we must choose which targets
|
||||
|
||||
@@ -23,9 +23,13 @@
|
||||
# questions.
|
||||
#
|
||||
|
||||
DISABLED_WARNINGS_java += this-escape
|
||||
|
||||
DOCLINT += -Xdoclint:all/protected \
|
||||
'-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 \
|
||||
hijrah-config-Hijrah-umalqura_islamic-umalqura.properties
|
||||
CLEAN += intrinsic.properties
|
||||
@@ -33,7 +37,9 @@ CLEAN += intrinsic.properties
|
||||
EXCLUDE_FILES += \
|
||||
$(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
|
||||
# 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_clang_net_util_md.c := format-nonliteral, \
|
||||
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, \
|
||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
||||
|
||||
@@ -49,6 +49,7 @@ define SetupCharacterData
|
||||
-specialcasing $(UNICODEDATA)/SpecialCasing.txt \
|
||||
-proplist $(UNICODEDATA)/PropList.txt \
|
||||
-derivedprops $(UNICODEDATA)/DerivedCoreProperties.txt \
|
||||
-emojidata $(UNICODEDATA)/emoji/emoji-data.txt \
|
||||
-o $(SUPPORT_OUTPUTDIR)/gensrc/java.base/java/lang/$1.java \
|
||||
-usecharforbyte $3
|
||||
|
||||
|
||||
@@ -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.
|
||||
#
|
||||
# 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), \
|
||||
))
|
||||
|
||||
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), )
|
||||
|
||||
@@ -23,6 +23,8 @@
|
||||
# questions.
|
||||
#
|
||||
|
||||
DISABLED_WARNINGS_java += this-escape
|
||||
|
||||
DOCLINT += -Xdoclint:all/protected \
|
||||
'-Xdoclint/package:java.*,javax.*'
|
||||
COPY += flavormap.properties
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
# questions.
|
||||
#
|
||||
|
||||
DISABLED_WARNINGS_java += lossy-conversions
|
||||
DISABLED_WARNINGS_java += lossy-conversions this-escape
|
||||
DOCLINT += -Xdoclint:all/protected \
|
||||
'-Xdoclint/package:java.*,javax.*'
|
||||
COPY += .gif .png .wav .txt .xml .css .pf
|
||||
|
||||
@@ -451,7 +451,7 @@ else
|
||||
-DHB_NO_PRAGMA_GCC_DIAGNOSTIC
|
||||
endif
|
||||
ifeq ($(call isTargetOs, linux macosx), true)
|
||||
HARFBUZZ_CFLAGS += -DHAVE_INTEL_ATOMIC_PRIMITIVES
|
||||
HARFBUZZ_CFLAGS += -DHAVE_INTEL_ATOMIC_PRIMITIVES -DHB_NO_VISIBILITY
|
||||
endif
|
||||
|
||||
# Early re-canonizing has to be disabled to workaround an internal XlC compiler error
|
||||
|
||||
@@ -23,5 +23,7 @@
|
||||
# questions.
|
||||
#
|
||||
|
||||
DISABLED_WARNINGS_java += this-escape
|
||||
|
||||
DOCLINT += -Xdoclint:all/protected \
|
||||
'-Xdoclint/package:java.*,javax.*'
|
||||
|
||||
@@ -23,5 +23,7 @@
|
||||
# questions.
|
||||
#
|
||||
|
||||
DISABLED_WARNINGS_java += this-escape
|
||||
|
||||
DOCLINT += -Xdoclint:all/protected \
|
||||
'-Xdoclint/package:java.*,javax.*'
|
||||
|
||||
@@ -23,6 +23,8 @@
|
||||
# questions.
|
||||
#
|
||||
|
||||
DISABLED_WARNINGS_java += this-escape
|
||||
|
||||
DOCLINT += -Xdoclint:all/protected \
|
||||
'-Xdoclint/package:java.*,javax.*'
|
||||
CLEAN += jndiprovider.properties
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
#
|
||||
# Copyright (c) 2018, 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.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation.
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
@@ -21,4 +23,4 @@
|
||||
# questions.
|
||||
#
|
||||
|
||||
exclusiveAccess.dirs=.
|
||||
DISABLED_WARNINGS_java += this-escape
|
||||
@@ -23,6 +23,8 @@
|
||||
# questions.
|
||||
#
|
||||
|
||||
DISABLED_WARNINGS_java += this-escape
|
||||
|
||||
DOCLINT += -Xdoclint:all/protected \
|
||||
'-Xdoclint/package:java.*,javax.*'
|
||||
CLEAN_FILES += $(wildcard \
|
||||
|
||||
@@ -23,5 +23,7 @@
|
||||
# questions.
|
||||
#
|
||||
|
||||
DISABLED_WARNINGS_java += this-escape
|
||||
|
||||
DOCLINT += -Xdoclint:all/protected \
|
||||
'-Xdoclint/package:java.*,javax.*'
|
||||
|
||||
@@ -64,9 +64,7 @@ ifneq ($(BUILD_CRYPTO), false)
|
||||
CFLAGS := $(CFLAGS_JDKLIB), \
|
||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
||||
LIBS := advapi32.lib Secur32.lib netapi32.lib kernel32.lib user32.lib \
|
||||
gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib \
|
||||
ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib, \
|
||||
LIBS := advapi32.lib Secur32.lib kernel32.lib ws2_32.lib, \
|
||||
))
|
||||
|
||||
TARGETS += $(BUILD_LIBW2K_LSA_AUTH)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2019, 2022, 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.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@@ -23,21 +23,4 @@
|
||||
# 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)
|
||||
DISABLED_WARNINGS_java += this-escape
|
||||
@@ -23,6 +23,8 @@
|
||||
# questions.
|
||||
#
|
||||
|
||||
DISABLED_WARNINGS_java += this-escape
|
||||
|
||||
DOCLINT += -Xdoclint:all/protected \
|
||||
'-Xdoclint/package:java.*,javax.*'
|
||||
CLEAN_FILES += $(wildcard \
|
||||
|
||||
@@ -23,5 +23,7 @@
|
||||
# questions.
|
||||
#
|
||||
|
||||
DISABLED_WARNINGS_java += this-escape
|
||||
|
||||
DOCLINT += -Xdoclint:all/protected \
|
||||
'-Xdoclint/package:java.*,javax.*'
|
||||
|
||||
@@ -23,6 +23,8 @@
|
||||
# questions.
|
||||
#
|
||||
|
||||
DISABLED_WARNINGS_java += this-escape
|
||||
|
||||
DOCLINT += -Xdoclint:all/protected \
|
||||
'-Xdoclint/package:java.*,javax.*'
|
||||
COPY += .dtd .xml
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
# questions.
|
||||
#
|
||||
|
||||
DISABLED_WARNINGS_java += lossy-conversions
|
||||
DISABLED_WARNINGS_java += lossy-conversions this-escape
|
||||
DOCLINT += -Xdoclint:all/protected \
|
||||
'-Xdoclint/package:$(call CommaList, javax.xml.catalog javax.xml.datatype \
|
||||
javax.xml.transform javax.xml.validation javax.xml.xpath)'
|
||||
|
||||
@@ -23,4 +23,6 @@
|
||||
# questions.
|
||||
#
|
||||
|
||||
DISABLED_WARNINGS_java += this-escape
|
||||
|
||||
COPY += .dat
|
||||
|
||||
@@ -57,7 +57,7 @@ $(eval $(call SetupJavaCompilation, COMPILE_CREATE_SYMBOLS, \
|
||||
$(TOPDIR)/src/jdk.jdeps/share/classes, \
|
||||
INCLUDES := build/tools/symbolgenerator com/sun/tools/classfile, \
|
||||
BIN := $(BUILDTOOLS_OUTPUTDIR)/create_symbols, \
|
||||
DISABLED_WARNINGS := options, \
|
||||
DISABLED_WARNINGS := options this-escape, \
|
||||
JAVAC_FLAGS := \
|
||||
$(INTERIM_LANGTOOLS_ARGS) \
|
||||
$(COMPILECREATESYMBOLS_ADD_EXPORTS), \
|
||||
|
||||
26
make/modules/jdk.crypto.ec/Java.gmk
Normal file
26
make/modules/jdk.crypto.ec/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
|
||||
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 \
|
||||
fallthrough
|
||||
fallthrough this-escape
|
||||
COPY += .gif .png .properties
|
||||
|
||||
@@ -23,4 +23,4 @@
|
||||
# questions.
|
||||
#
|
||||
|
||||
DISABLED_WARNINGS_java += missing-explicit-ctor
|
||||
DISABLED_WARNINGS_java += missing-explicit-ctor this-escape
|
||||
|
||||
@@ -23,4 +23,6 @@
|
||||
# questions.
|
||||
#
|
||||
|
||||
DISABLED_WARNINGS_java += this-escape
|
||||
|
||||
COPY += aliasmap
|
||||
|
||||
@@ -23,4 +23,6 @@
|
||||
# questions.
|
||||
#
|
||||
|
||||
DISABLED_WARNINGS_java += this-escape
|
||||
|
||||
COPY += .properties .caps .txt
|
||||
|
||||
@@ -23,4 +23,6 @@
|
||||
# questions.
|
||||
#
|
||||
|
||||
DISABLED_WARNINGS_java += this-escape
|
||||
|
||||
COPY += .properties
|
||||
|
||||
@@ -23,16 +23,10 @@
|
||||
# questions.
|
||||
#
|
||||
|
||||
DISABLED_WARNINGS_java += this-escape
|
||||
|
||||
# -parameters provides method's parameters information in class file,
|
||||
# JVMCI compilers make use of that information for various sanity checks.
|
||||
# Don't use Indy strings concatenation to have good JVMCI startup performance.
|
||||
# The exports are needed since JVMCI is dynamically exported (see
|
||||
# jdk.vm.ci.services.internal.ReflectionAccessJDK::openJVMCITo).
|
||||
|
||||
JAVAC_FLAGS += -parameters -XDstringConcat=inline
|
||||
|
||||
## WORKAROUND jdk.internal.vm.ci source structure issue
|
||||
JVMCI_MODULESOURCEPATH := $(MODULESOURCEPATH) \
|
||||
$(subst /$(MODULE)/,/*/, $(filter-out %processor/src, \
|
||||
$(wildcard $(TOPDIR)/src/$(MODULE)/share/classes/*/src)))
|
||||
MODULESOURCEPATH := $(call PathList, $(JVMCI_MODULESOURCEPATH))
|
||||
|
||||
@@ -25,3 +25,5 @@
|
||||
|
||||
DISABLED_WARNINGS_java += missing-explicit-ctor
|
||||
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, \
|
||||
INCLUDES := build/tools/symbolgenerator com/sun/tools/classfile, \
|
||||
BIN := $(BUILDTOOLS_OUTPUTDIR)/create_symbols_javadoc, \
|
||||
DISABLED_WARNINGS := options, \
|
||||
DISABLED_WARNINGS := options this-escape, \
|
||||
JAVAC_FLAGS := \
|
||||
$(INTERIM_LANGTOOLS_ARGS) \
|
||||
$(COMPILECREATESYMBOLS_ADD_EXPORTS), \
|
||||
|
||||
@@ -23,4 +23,6 @@
|
||||
# questions.
|
||||
#
|
||||
|
||||
DISABLED_WARNINGS_java += this-escape
|
||||
|
||||
COPY += .xml .css .svg .js .js.template .png .txt
|
||||
|
||||
@@ -23,4 +23,6 @@
|
||||
# questions.
|
||||
#
|
||||
|
||||
DISABLED_WARNINGS_java += this-escape
|
||||
|
||||
COPY += _options
|
||||
|
||||
@@ -23,6 +23,8 @@
|
||||
# questions.
|
||||
#
|
||||
|
||||
DISABLED_WARNINGS_java += this-escape
|
||||
|
||||
COPY += .gif .png
|
||||
|
||||
CLEAN_FILES += $(wildcard \
|
||||
|
||||
@@ -26,6 +26,8 @@
|
||||
include GensrcCommon.gmk
|
||||
include GensrcProperties.gmk
|
||||
|
||||
DISABLED_WARNINGS_java += this-escape
|
||||
|
||||
$(eval $(call SetupVersionProperties, JAVAP_VERSION, \
|
||||
com/sun/tools/javap/resources/version.properties))
|
||||
|
||||
|
||||
@@ -25,6 +25,8 @@
|
||||
|
||||
include LauncherCommon.gmk
|
||||
|
||||
DISABLED_WARNINGS_java += this-escape
|
||||
|
||||
$(eval $(call SetupBuildLauncher, javap, \
|
||||
MAIN_CLASS := com.sun.tools.javap.Main, \
|
||||
CFLAGS := -DEXPAND_CLASSPATH_WILDCARDS, \
|
||||
|
||||
@@ -23,6 +23,8 @@
|
||||
# questions.
|
||||
#
|
||||
|
||||
DISABLED_WARNINGS_java += this-escape
|
||||
|
||||
EXCLUDES += \
|
||||
com/sun/tools/example/debug/bdi \
|
||||
com/sun/tools/example/debug/event \
|
||||
|
||||
26
make/modules/jdk.jlink/Java.gmk
Normal file
26
make/modules/jdk.jlink/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
|
||||
@@ -23,6 +23,8 @@
|
||||
# questions.
|
||||
#
|
||||
|
||||
DISABLED_WARNINGS_java += this-escape
|
||||
|
||||
COPY += .gif .png .txt .spec .script .prerm .preinst \
|
||||
.postrm .postinst .list .sh .desktop .copyright .control .plist .template \
|
||||
.icns .scpt .wxs .wxl .wxi .ico .bmp .tiff .service
|
||||
|
||||
26
make/modules/jdk.jstatd/Java.gmk
Normal file
26
make/modules/jdk.jstatd/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
|
||||
@@ -23,6 +23,8 @@
|
||||
# questions.
|
||||
#
|
||||
|
||||
DISABLED_WARNINGS_java += this-escape
|
||||
|
||||
COPY += _dict _th
|
||||
# Exclude BreakIterator classes that are just used in compile process to generate
|
||||
# data files and shouldn't go in the product
|
||||
|
||||
26
make/modules/jdk.management/Java.gmk
Normal file
26
make/modules/jdk.management/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
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user