mirror of
https://github.com/JetBrains/JetBrainsRuntime.git
synced 2025-12-15 13:59:40 +01:00
Compare commits
1164 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c59e44a7aa | ||
|
|
23f1d4f9a9 | ||
|
|
33ed7c1842 | ||
|
|
782bbca439 | ||
|
|
6cdfd36ac8 | ||
|
|
eb770a060a | ||
|
|
c5daf89053 | ||
|
|
bd08932d5b | ||
|
|
d450e341c7 | ||
|
|
66feb490bd | ||
|
|
dc949003de | ||
|
|
ace70a6d6a | ||
|
|
48b97ac0e0 | ||
|
|
08023481ed | ||
|
|
849655a145 | ||
|
|
575806c0e5 | ||
|
|
8f8b367ae3 | ||
|
|
9186cc7310 | ||
|
|
b787ff6def | ||
|
|
5b27e9c2df | ||
|
|
3cf3e4bbec | ||
|
|
77c110c309 | ||
|
|
901144ee0d | ||
|
|
8f821175cc | ||
|
|
5ed246d17d | ||
|
|
8939acc8ab | ||
|
|
fd0ab04367 | ||
|
|
8a79ac8863 | ||
|
|
ef47635d5a | ||
|
|
c909216446 | ||
|
|
4e314cb9e0 | ||
|
|
a2723d91df | ||
|
|
ae1892fb0f | ||
|
|
0352477ff5 | ||
|
|
a653ff4893 | ||
|
|
248341d372 | ||
|
|
09ec4de74d | ||
|
|
dc961609f8 | ||
|
|
7838321b74 | ||
|
|
42f48a39e8 | ||
|
|
cd16b68962 | ||
|
|
ab23500034 | ||
|
|
f141674d16 | ||
|
|
b6d60280e7 | ||
|
|
955bfcd550 | ||
|
|
edf92721c2 | ||
|
|
b5cfd76c04 | ||
|
|
683319f25c | ||
|
|
b918dc84ec | ||
|
|
f17b2bc06a | ||
|
|
ebd85288ce | ||
|
|
939521b8e4 | ||
|
|
2345065166 | ||
|
|
9c74d54514 | ||
|
|
939753579b | ||
|
|
da49fa5e15 | ||
|
|
704b5990a7 | ||
|
|
e235b61a8b | ||
|
|
a44a470052 | ||
|
|
cc11b7d1f5 | ||
|
|
406f1bc5b9 | ||
|
|
e984fa7997 | ||
|
|
461cb84277 | ||
|
|
c382da5798 | ||
|
|
44d62c8e21 | ||
|
|
d7e58ac480 | ||
|
|
57862005f9 | ||
|
|
04c15466f6 | ||
|
|
16e120b008 | ||
|
|
d7def20afa | ||
|
|
4604c86d2f | ||
|
|
b6f827ef05 | ||
|
|
01f01b6f7b | ||
|
|
faf19abd31 | ||
|
|
e2f736658f | ||
|
|
d3f54dae30 | ||
|
|
4618374269 | ||
|
|
78a392aa3b | ||
|
|
c1a81cfb51 | ||
|
|
def7355cc9 | ||
|
|
457d9de81d | ||
|
|
4402527683 | ||
|
|
8674f49127 | ||
|
|
6f783e5fab | ||
|
|
cff75eb606 | ||
|
|
be923a8b72 | ||
|
|
dbf562c725 | ||
|
|
6cfd4057dc | ||
|
|
497a1822ca | ||
|
|
c5f235c000 | ||
|
|
832c5b06e8 | ||
|
|
24edd3b2c1 | ||
|
|
c96803dc8b | ||
|
|
e490b4f04d | ||
|
|
0418b3295a | ||
|
|
5243f3851b | ||
|
|
1373ceb7f3 | ||
|
|
ec02a87aee | ||
|
|
a7671e7360 | ||
|
|
bce2bd24ef | ||
|
|
8b6a11f7e0 | ||
|
|
ab5de45636 | ||
|
|
99a4b22ae7 | ||
|
|
1b6ae2059b | ||
|
|
daab7b5cee | ||
|
|
a4eb15195c | ||
|
|
b3594c9e55 | ||
|
|
83b15da2eb | ||
|
|
c22af0c29e | ||
|
|
83cb0c6de5 | ||
|
|
612f2c0c0b | ||
|
|
eb9badd8a4 | ||
|
|
a9e7a74d00 | ||
|
|
ba9f44c90f | ||
|
|
40ce05d408 | ||
|
|
6418306211 | ||
|
|
3f59bfd2e1 | ||
|
|
c5a1543ee3 | ||
|
|
90d6ad0157 | ||
|
|
3193a28c53 | ||
|
|
85e36d7924 | ||
|
|
c1b5f62a8c | ||
|
|
ac9af69eee | ||
|
|
e3eb089d47 | ||
|
|
470ffeedda | ||
|
|
59dc849909 | ||
|
|
fc3d3d9b30 | ||
|
|
a3f9e22263 | ||
|
|
84002d12ed | ||
|
|
3a3ea7e17f | ||
|
|
19360a904b | ||
|
|
061b24d4f9 | ||
|
|
c62223a5af | ||
|
|
c67fc73595 | ||
|
|
d9d00d33a6 | ||
|
|
5ad02c98f1 | ||
|
|
2926435d22 | ||
|
|
0df8c9684b | ||
|
|
db340e54f8 | ||
|
|
09301c1dc0 | ||
|
|
abbffc0103 | ||
|
|
14e41ab055 | ||
|
|
c9d6e01233 | ||
|
|
94039e22bb | ||
|
|
b7ca672d5c | ||
|
|
82807d43f8 | ||
|
|
3cc630985d | ||
|
|
4fa4f15122 | ||
|
|
eaf7815ea6 | ||
|
|
81464cd114 | ||
|
|
99048c3d4a | ||
|
|
26275a10b2 | ||
|
|
ae3d96a4ec | ||
|
|
12ee80cac7 | ||
|
|
acd64ba24a | ||
|
|
a0eb1900c9 | ||
|
|
566e3b21ed | ||
|
|
e33eeeea04 | ||
|
|
6f9e1175a9 | ||
|
|
20005511e3 | ||
|
|
fd51b03910 | ||
|
|
64503c784b | ||
|
|
a05f9dea18 | ||
|
|
648c337bea | ||
|
|
cb8eea4ecd | ||
|
|
727412d1b5 | ||
|
|
d922e318bc | ||
|
|
e509997fe8 | ||
|
|
e306367813 | ||
|
|
f318868268 | ||
|
|
79aff26c28 | ||
|
|
d8a783020d | ||
|
|
4cf729cfac | ||
|
|
a2743bab4f | ||
|
|
07f5b762a0 | ||
|
|
d43f588db1 | ||
|
|
04e0fe00ab | ||
|
|
83a2804858 | ||
|
|
2ec6ab347a | ||
|
|
dede3532f7 | ||
|
|
b7f0f480ce | ||
|
|
bb2c80c0e9 | ||
|
|
28f509317d | ||
|
|
cd052c72cd | ||
|
|
b2a61a9972 | ||
|
|
8949c07484 | ||
|
|
e579cca619 | ||
|
|
2e6838a20d | ||
|
|
4ced4e73fc | ||
|
|
e3f85c961b | ||
|
|
63d0e7ff11 | ||
|
|
a4f870df55 | ||
|
|
7bd8375fe4 | ||
|
|
18285fc136 | ||
|
|
1a65719ab3 | ||
|
|
016cc4f333 | ||
|
|
4b9290af0a | ||
|
|
c9e6c4d017 | ||
|
|
6ebae6cded | ||
|
|
f30e15411f | ||
|
|
0671309de5 | ||
|
|
627ef34498 | ||
|
|
39714b6030 | ||
|
|
4e1878ca45 | ||
|
|
f02190bc30 | ||
|
|
1e0caedb9a | ||
|
|
f74fbfe5de | ||
|
|
efeb050e00 | ||
|
|
1d57ff8ad4 | ||
|
|
db51556687 | ||
|
|
670ef8cc52 | ||
|
|
72b9aafd5a | ||
|
|
96fb31e2db | ||
|
|
4cad437956 | ||
|
|
c110623d38 | ||
|
|
f25f4a3eb2 | ||
|
|
2e8b195a96 | ||
|
|
11ad1733f8 | ||
|
|
4755276f36 | ||
|
|
da228e0693 | ||
|
|
d4b923d175 | ||
|
|
c1f066e17e | ||
|
|
c29537740e | ||
|
|
cdff7b963c | ||
|
|
72a3022dc6 | ||
|
|
b4b11d7771 | ||
|
|
67d4ed173a | ||
|
|
9c191cc0fa | ||
|
|
b9db99d7f7 | ||
|
|
aea32ec506 | ||
|
|
f62b9780c3 | ||
|
|
7cb6e5eb3e | ||
|
|
5924c2d6c7 | ||
|
|
7bc315fa6a | ||
|
|
85af573cb6 | ||
|
|
78d0dc7502 | ||
|
|
37d04a1e36 | ||
|
|
2c034f57d6 | ||
|
|
bbceab0725 | ||
|
|
e8eff4d25b | ||
|
|
a300c35655 | ||
|
|
bd095896dd | ||
|
|
daa8eda530 | ||
|
|
7002233ed9 | ||
|
|
f825a51198 | ||
|
|
ed4cd2acd2 | ||
|
|
9946c85e2f | ||
|
|
5cdeef81dd | ||
|
|
a37e8265b5 | ||
|
|
3dbd2d3d2d | ||
|
|
99f33b4d9b | ||
|
|
a50d3bee12 | ||
|
|
aac287ebac | ||
|
|
4a4209ffef | ||
|
|
b034710b2a | ||
|
|
b037353734 | ||
|
|
1f24a5414d | ||
|
|
e89330579d | ||
|
|
070c84cd22 | ||
|
|
66747710a4 | ||
|
|
236e1b6d52 | ||
|
|
85ca0813f1 | ||
|
|
2f530f89e0 | ||
|
|
917c1546f3 | ||
|
|
2b6b7661b9 | ||
|
|
a58bfb93ff | ||
|
|
90e076b2a1 | ||
|
|
6a07820483 | ||
|
|
b07da7bcdc | ||
|
|
d0402ddad7 | ||
|
|
48df41b699 | ||
|
|
f5e6d2c93c | ||
|
|
84a67e83e3 | ||
|
|
488e4ea5c6 | ||
|
|
68ee06f0c9 | ||
|
|
02995887b2 | ||
|
|
36f6d155e3 | ||
|
|
ae7ae847d4 | ||
|
|
d6e4c5f659 | ||
|
|
9d9e41f5b4 | ||
|
|
99e01301cd | ||
|
|
1fd65b7a7b | ||
|
|
4193d052c0 | ||
|
|
a94d1a0407 | ||
|
|
8402469565 | ||
|
|
796ec5e7cf | ||
|
|
fdda766190 | ||
|
|
139a05d059 | ||
|
|
b1b786a3be | ||
|
|
9ca1004e76 | ||
|
|
1258af42be | ||
|
|
16d4551134 | ||
|
|
72e440d06e | ||
|
|
12efc1fe33 | ||
|
|
428d33ef3c | ||
|
|
1e57648abd | ||
|
|
26053fe783 | ||
|
|
c0665efd4f | ||
|
|
85b24c3c4e | ||
|
|
d9b6e4b132 | ||
|
|
e348aa071d | ||
|
|
a919f6d04e | ||
|
|
8184ce39a8 | ||
|
|
061b5cc6b9 | ||
|
|
ec6706520b | ||
|
|
68c1d305e7 | ||
|
|
3bebb1fa76 | ||
|
|
ee6891456e | ||
|
|
b685ea5408 | ||
|
|
07871cd78a | ||
|
|
f687cac889 | ||
|
|
3ee14471e1 | ||
|
|
4d7068923c | ||
|
|
afcbf6b2f4 | ||
|
|
81536830ed | ||
|
|
400c935082 | ||
|
|
2dfbf41d2a | ||
|
|
f1eead6035 | ||
|
|
6546de1d3a | ||
|
|
275cfd323b | ||
|
|
254713ab59 | ||
|
|
21c1282207 | ||
|
|
b63ec0ab58 | ||
|
|
a07150af11 | ||
|
|
a175767ccf | ||
|
|
108e454a04 | ||
|
|
a4f66f5439 | ||
|
|
2c126f1954 | ||
|
|
b8057cf103 | ||
|
|
7c82e09b50 | ||
|
|
5f38d1bb94 | ||
|
|
735c7899d1 | ||
|
|
a0cdf36bdf | ||
|
|
91194517c7 | ||
|
|
50a7755fa4 | ||
|
|
50e873f0e8 | ||
|
|
74fc4e4ee7 | ||
|
|
cedd1a5343 | ||
|
|
972f2ebe97 | ||
|
|
e9d1d87b34 | ||
|
|
bcf5cd6941 | ||
|
|
6162e2c521 | ||
|
|
62d155e8c3 | ||
|
|
277bb208a2 | ||
|
|
e6750a5bb0 | ||
|
|
1a97eb429b | ||
|
|
ab985a7c5d | ||
|
|
0db5511ce6 | ||
|
|
f8fc7eeb24 | ||
|
|
e961b13cd6 | ||
|
|
f8d7f663c1 | ||
|
|
7077535c0b | ||
|
|
39d8d109dd | ||
|
|
890456f0f7 | ||
|
|
637e9d16dd | ||
|
|
fbeea1daef | ||
|
|
27a4243561 | ||
|
|
bd99525633 | ||
|
|
6818dcc08e | ||
|
|
6a58af310a | ||
|
|
84a98ab43f | ||
|
|
fbc12be732 | ||
|
|
265d630125 | ||
|
|
92fd44992b | ||
|
|
2e26b43158 | ||
|
|
3acfa9e4e7 | ||
|
|
26cb016b75 | ||
|
|
7f7add1e56 | ||
|
|
afcaf84022 | ||
|
|
36c9be70e2 | ||
|
|
133c6fb4f3 | ||
|
|
effe40a24c | ||
|
|
2fb3329d71 | ||
|
|
67fb1ee7f1 | ||
|
|
50a7c61d28 | ||
|
|
77a3e04ffc | ||
|
|
969708bd8f | ||
|
|
9927ec0b91 | ||
|
|
6c42856b8d | ||
|
|
76570c627d | ||
|
|
10258dc56e | ||
|
|
3dd3451700 | ||
|
|
63ef90be97 | ||
|
|
d524509224 | ||
|
|
413843cf8e | ||
|
|
46a12e781e | ||
|
|
bca293d012 | ||
|
|
079fccfa9a | ||
|
|
0d8675780f | ||
|
|
a0a3060709 | ||
|
|
a6ebcf61eb | ||
|
|
a8d8ffa8ad | ||
|
|
f6b0f016f6 | ||
|
|
efdbb6afce | ||
|
|
fe790cb319 | ||
|
|
9223ed788a | ||
|
|
c59debb384 | ||
|
|
850c789a82 | ||
|
|
1e61352b54 | ||
|
|
e056bbec92 | ||
|
|
b3e856f9b3 | ||
|
|
a1c7e494c8 | ||
|
|
8fcfddb2d2 | ||
|
|
3df8ca1eba | ||
|
|
073af3bbaa | ||
|
|
81e8e670ce | ||
|
|
5cb231714f | ||
|
|
1d36f173c4 | ||
|
|
883e52aa10 | ||
|
|
13b3541467 | ||
|
|
b8d2bdb465 | ||
|
|
e557b6956b | ||
|
|
dc881ee369 | ||
|
|
5e50a58474 | ||
|
|
b66ab8ebe2 | ||
|
|
948ade8e70 | ||
|
|
ecabea6cd3 | ||
|
|
e91088a9e8 | ||
|
|
75504a35ee | ||
|
|
7c8e273fde | ||
|
|
a2628357a9 | ||
|
|
10436c1e1d | ||
|
|
1afd887b13 | ||
|
|
97b0dd2167 | ||
|
|
a989245a24 | ||
|
|
3270b00957 | ||
|
|
5c73dfc28c | ||
|
|
86f39ab5bb | ||
|
|
fc6f4da8e7 | ||
|
|
b76b610788 | ||
|
|
265bc5f47d | ||
|
|
d1032d71bf | ||
|
|
3b27198166 | ||
|
|
a3e094e1a0 | ||
|
|
dd2515993b | ||
|
|
e07c65b892 | ||
|
|
2c4e8d211a | ||
|
|
530d14a16e | ||
|
|
dd2aba98f5 | ||
|
|
0c4bc48928 | ||
|
|
a96424b24c | ||
|
|
4c0a0ab6bc | ||
|
|
10dcdf1b47 | ||
|
|
1bded7188f | ||
|
|
89242eecd2 | ||
|
|
e149bd3a0c | ||
|
|
e7ce661adb | ||
|
|
1569925af4 | ||
|
|
d1543429ff | ||
|
|
08b2df80c6 | ||
|
|
0318e49500 | ||
|
|
b8c69dfb2a | ||
|
|
64a858c7b8 | ||
|
|
066477de80 | ||
|
|
fa419489d3 | ||
|
|
48d2acb386 | ||
|
|
de10644721 | ||
|
|
14d372b15b | ||
|
|
d930dc5df3 | ||
|
|
7dcc386af9 | ||
|
|
85db4631ae | ||
|
|
38bb8adf4f | ||
|
|
8ffc121b2f | ||
|
|
132a890a9b | ||
|
|
522c7b446f | ||
|
|
ad161a4ef8 | ||
|
|
526f543adf | ||
|
|
03dca0323d | ||
|
|
6e0846918c | ||
|
|
24d77adee9 | ||
|
|
4fc10a1e7e | ||
|
|
adebfa7ffd | ||
|
|
303f4101d4 | ||
|
|
c23469df16 | ||
|
|
b6b5ac1ef9 | ||
|
|
2595fcc7cc | ||
|
|
0f5c608143 | ||
|
|
45dfc2c6d6 | ||
|
|
8d7866ef5f | ||
|
|
50dced88ff | ||
|
|
e463895428 | ||
|
|
8128f638fa | ||
|
|
f5525ecf58 | ||
|
|
7ae52ce572 | ||
|
|
8545e13571 | ||
|
|
ab8c808ed8 | ||
|
|
2b32541609 | ||
|
|
0258d9998e | ||
|
|
39a28ffe4e | ||
|
|
a3afc9f7ce | ||
|
|
43008b42cf | ||
|
|
45cf32bd2c | ||
|
|
de801fea76 | ||
|
|
d7cb933b89 | ||
|
|
74f047b84d | ||
|
|
97d2a37927 | ||
|
|
436960308c | ||
|
|
fa7c5a65ba | ||
|
|
3b336a9da0 | ||
|
|
0f2a6c266b | ||
|
|
8fadf295b0 | ||
|
|
68a118509a | ||
|
|
3b20bed6e2 | ||
|
|
30cb94d6b0 | ||
|
|
375f3dc9ed | ||
|
|
66f0442713 | ||
|
|
1c5eb370b7 | ||
|
|
601f05e06d | ||
|
|
2661f62ca2 | ||
|
|
bed29a03d1 | ||
|
|
dd25799c21 | ||
|
|
5f00c877e2 | ||
|
|
0e0bd642ab | ||
|
|
9ebb5d42d4 | ||
|
|
411a63ea1b | ||
|
|
568dcc15cb | ||
|
|
a091e2f281 | ||
|
|
3aa2ea7e67 | ||
|
|
74e981e855 | ||
|
|
c88f94c9d7 | ||
|
|
591e71ebe5 | ||
|
|
53ad4b2ad2 | ||
|
|
9a0e6f338f | ||
|
|
cc3a366e2a | ||
|
|
8a8893ec03 | ||
|
|
c2a4fa1d83 | ||
|
|
4379e2d26b | ||
|
|
b7b437d5bd | ||
|
|
e4ecda2b25 | ||
|
|
9273094538 | ||
|
|
24d84cf66a | ||
|
|
1e8927dded | ||
|
|
7f3191a630 | ||
|
|
6b1e88a946 | ||
|
|
c6ffacb575 | ||
|
|
2ea629f3f2 | ||
|
|
57297e60de | ||
|
|
900b3ff7ee | ||
|
|
ad07426fab | ||
|
|
b47b2062a2 | ||
|
|
5df7089c3e | ||
|
|
2c1eb339d6 | ||
|
|
daf6fa1e61 | ||
|
|
223eec5501 | ||
|
|
52a5583d69 | ||
|
|
3e258cbddf | ||
|
|
7642556a5a | ||
|
|
493ac93606 | ||
|
|
8c1b915c7e | ||
|
|
3f6b17777f | ||
|
|
cb02158090 | ||
|
|
28e6b7cb74 | ||
|
|
40f696dbe4 | ||
|
|
da5dc5287b | ||
|
|
c8a30c2aab | ||
|
|
90f0f1b88b | ||
|
|
d7e648bb27 | ||
|
|
ca5e0b1848 | ||
|
|
a72f7506bf | ||
|
|
fa765e7d34 | ||
|
|
60a4594b9f | ||
|
|
0844745e7b | ||
|
|
1bdff3ccd0 | ||
|
|
50554fa198 | ||
|
|
1a4bbb0027 | ||
|
|
da004cb657 | ||
|
|
b5fd289f53 | ||
|
|
328715d84c | ||
|
|
50895835e0 | ||
|
|
21f01e0c89 | ||
|
|
910d77d39e | ||
|
|
4458719a10 | ||
|
|
772c97039e | ||
|
|
4e3ec3c04c | ||
|
|
0eb680ca46 | ||
|
|
762423d64d | ||
|
|
acad0b4968 | ||
|
|
cbbab07d23 | ||
|
|
9a23f721c7 | ||
|
|
bed5114e3a | ||
|
|
e2df9cdeb0 | ||
|
|
4977588d5e | ||
|
|
fe29cad5e0 | ||
|
|
0cb355ee92 | ||
|
|
5d17a28c4e | ||
|
|
08dd4a75c5 | ||
|
|
9c43871fd1 | ||
|
|
064b036ebd | ||
|
|
052e2522b6 | ||
|
|
b21b3a38a5 | ||
|
|
a6995a3d42 | ||
|
|
9477c42215 | ||
|
|
088825ed88 | ||
|
|
bfdafb7626 | ||
|
|
ddd07b107e | ||
|
|
614ba9fc41 | ||
|
|
ecfaf354d7 | ||
|
|
1eee15eea6 | ||
|
|
8c4f2ff21e | ||
|
|
def907ab89 | ||
|
|
9f8fbf2922 | ||
|
|
e09d2e275b | ||
|
|
64b58f6a54 | ||
|
|
7f6ea27d3e | ||
|
|
aea2837143 | ||
|
|
606f2012b0 | ||
|
|
2a4f37cc16 | ||
|
|
ca7e4c4e05 | ||
|
|
620f81671a | ||
|
|
6bcbc3b0a2 | ||
|
|
65f188f29f | ||
|
|
cc34135fff | ||
|
|
32f67a3e38 | ||
|
|
f68764490c | ||
|
|
6719b9214f | ||
|
|
1501a5e41e | ||
|
|
a8cd01f6e2 | ||
|
|
026479767c | ||
|
|
f1e06c3c05 | ||
|
|
6dd5553823 | ||
|
|
8511220f9d | ||
|
|
f04e556d47 | ||
|
|
604225fb0c | ||
|
|
69d0f7a395 | ||
|
|
c94a7ae11e | ||
|
|
a5f4366a7f | ||
|
|
c8ce61c8ca | ||
|
|
5b3ae92105 | ||
|
|
03f0ec4a35 | ||
|
|
4d2d12987f | ||
|
|
56468c42be | ||
|
|
60ba81d77f | ||
|
|
c8bbcaf5de | ||
|
|
84f570c573 | ||
|
|
4826a91e7a | ||
|
|
5faa559022 | ||
|
|
01fd49ffb3 | ||
|
|
9f9e73d5f9 | ||
|
|
995d54161f | ||
|
|
cf2f9ce820 | ||
|
|
cdad6d788d | ||
|
|
afb9134a31 | ||
|
|
811f117ce3 | ||
|
|
d29700cc80 | ||
|
|
bd7c77898a | ||
|
|
c514f135cc | ||
|
|
494ef6cb8c | ||
|
|
6536430a3b | ||
|
|
aae2bb6249 | ||
|
|
c116b18b89 | ||
|
|
9e26b9facb | ||
|
|
394961c8fe | ||
|
|
cf0db96314 | ||
|
|
6b553acbaa | ||
|
|
09cae5fd8f | ||
|
|
2ad639f1b3 | ||
|
|
bee273d6b4 | ||
|
|
34807df762 | ||
|
|
7b31762375 | ||
|
|
0cd0afb2b3 | ||
|
|
0a697f6ff4 | ||
|
|
b218410508 | ||
|
|
8ef7e256a0 | ||
|
|
e2ae50d877 | ||
|
|
e36756b264 | ||
|
|
24bc714d5e | ||
|
|
4cc19ba5e3 | ||
|
|
bccf057fa4 | ||
|
|
1313349a2e | ||
|
|
1ff7e813e3 | ||
|
|
9a2a2c5bb1 | ||
|
|
18983b635f | ||
|
|
50145bb74a | ||
|
|
486acc06e0 | ||
|
|
66122811aa | ||
|
|
fbc4691bfa | ||
|
|
4c695fa8a4 | ||
|
|
482538b100 | ||
|
|
0110acaa90 | ||
|
|
526951dba7 | ||
|
|
765cef4546 | ||
|
|
d802fd0da2 | ||
|
|
7d9a43839a | ||
|
|
375ac6d446 | ||
|
|
1a9a9288a6 | ||
|
|
dcffd9d9ac | ||
|
|
83d0bd85af | ||
|
|
1652948862 | ||
|
|
5e27547e2d | ||
|
|
6850757fe6 | ||
|
|
8b16897b74 | ||
|
|
bf52eb0358 | ||
|
|
c2485d5f7d | ||
|
|
ead6757486 | ||
|
|
bd7561c315 | ||
|
|
5d2d1ab574 | ||
|
|
fa2a9d1e10 | ||
|
|
b5156bb16a | ||
|
|
2ed7ad4b5c | ||
|
|
9f42ff8960 | ||
|
|
edf8ce8db1 | ||
|
|
6a0c24f9db | ||
|
|
31e70e41d5 | ||
|
|
108078a681 | ||
|
|
841989b270 | ||
|
|
44374a5720 | ||
|
|
e4cb49fc85 | ||
|
|
7bde2bb571 | ||
|
|
7cf190fbb0 | ||
|
|
ea3cf1b882 | ||
|
|
62ef706dd1 | ||
|
|
1fd136cd6b | ||
|
|
62d165d0e4 | ||
|
|
af4388abf2 | ||
|
|
acd93df612 | ||
|
|
2f8448034f | ||
|
|
a090aa3ff8 | ||
|
|
c0dc31422d | ||
|
|
b1e778d9d2 | ||
|
|
66358fa2c0 | ||
|
|
e7a416254b | ||
|
|
3eaec040b4 | ||
|
|
a7359a5091 | ||
|
|
b0c3485d6c | ||
|
|
2447b9812a | ||
|
|
db6fa5923c | ||
|
|
3140de411b | ||
|
|
a05ff55be4 | ||
|
|
7df1bfe27b | ||
|
|
40e7986c41 | ||
|
|
1f228e5539 | ||
|
|
cd6f0d19d5 | ||
|
|
9c86ac2723 | ||
|
|
04bb5dcf57 | ||
|
|
4e7b513372 | ||
|
|
898d479800 | ||
|
|
21b0f5ea15 | ||
|
|
3b3a055d76 | ||
|
|
91a9043f9d | ||
|
|
e57fd71049 | ||
|
|
5db62abb42 | ||
|
|
2785570f56 | ||
|
|
4b88029988 | ||
|
|
d8f012ea2a | ||
|
|
ac05002cbe | ||
|
|
15f42e348d | ||
|
|
77f5a24648 | ||
|
|
597bcc6953 | ||
|
|
5c067232bf | ||
|
|
a2f9c24844 | ||
|
|
e6cea4025b | ||
|
|
f66b9ba7bc | ||
|
|
89f9268ed7 | ||
|
|
b41e0b1749 | ||
|
|
dbd2fb0e5a | ||
|
|
70030bac04 | ||
|
|
f27fc010f6 | ||
|
|
ed604038ff | ||
|
|
8a39f07d07 | ||
|
|
e01e33d19b | ||
|
|
370e6113de | ||
|
|
29f10700e7 | ||
|
|
862797f0c1 | ||
|
|
3270a7d359 | ||
|
|
8e51ff70d8 | ||
|
|
751e0392bc | ||
|
|
0edd018a48 | ||
|
|
356c4d9ca9 | ||
|
|
cf96b107d5 | ||
|
|
0537c6927d | ||
|
|
34c4d895ca | ||
|
|
1ec64811a3 | ||
|
|
d3f31b0d8e | ||
|
|
6254046f50 | ||
|
|
74a2c831a2 | ||
|
|
be6e4406d8 | ||
|
|
290d24d16a | ||
|
|
84e9264e76 | ||
|
|
953eef4f11 | ||
|
|
7bfbb9a515 | ||
|
|
188c236071 | ||
|
|
428334b616 | ||
|
|
bbec3c0730 | ||
|
|
b10a304b2b | ||
|
|
ac17449bdb | ||
|
|
4873eec06f | ||
|
|
3b7f43f95e | ||
|
|
669d4d6bfa | ||
|
|
bd1c53e960 | ||
|
|
ffe6a4f9e1 | ||
|
|
88e0b00a46 | ||
|
|
adcaf01b4f | ||
|
|
bf8a881f02 | ||
|
|
35716647b5 | ||
|
|
ac41bc31c9 | ||
|
|
8bd5645218 | ||
|
|
2ec61f0f34 | ||
|
|
f097aa90c9 | ||
|
|
1a72febc97 | ||
|
|
32a597b36f | ||
|
|
12c3a231e6 | ||
|
|
6befc18974 | ||
|
|
023f30bcaa | ||
|
|
e8a1a6462d | ||
|
|
3c7f78c066 | ||
|
|
a372937d84 | ||
|
|
c873837da6 | ||
|
|
44c5aca54d | ||
|
|
ef0cd1823d | ||
|
|
82c249446f | ||
|
|
e76f20301c | ||
|
|
c2e90bcc80 | ||
|
|
263983d0fb | ||
|
|
27faf45422 | ||
|
|
9a2b425b13 | ||
|
|
8c89fb9535 | ||
|
|
bc518a6cbb | ||
|
|
a8c6ff161c | ||
|
|
4c373703d9 | ||
|
|
5392488232 | ||
|
|
b7e8952ad6 | ||
|
|
cc9148ddef | ||
|
|
1b8f760d1b | ||
|
|
239760ac09 | ||
|
|
d61765f64d | ||
|
|
486a66469b | ||
|
|
f98af0ad61 | ||
|
|
e020752ea4 | ||
|
|
594b26516e | ||
|
|
d783a94098 | ||
|
|
6a31061339 | ||
|
|
1889dacb19 | ||
|
|
477da161e6 | ||
|
|
a4c5ed8144 | ||
|
|
da16c83973 | ||
|
|
072b8273a4 | ||
|
|
5264d80bea | ||
|
|
f2587d9bd2 | ||
|
|
0f1c448ca1 | ||
|
|
9eeb86d972 | ||
|
|
7cd084cf35 | ||
|
|
bcc33d5ef3 | ||
|
|
50358d1ca4 | ||
|
|
367bcc5df8 | ||
|
|
7eab2d9f91 | ||
|
|
0b2a2f38d0 | ||
|
|
17b080b2c9 | ||
|
|
2f7806ffe5 | ||
|
|
a55ccd267c | ||
|
|
33bdc807b1 | ||
|
|
d1d7d2569c | ||
|
|
e2cb64674f | ||
|
|
0be3f163ed | ||
|
|
f880fa91dc | ||
|
|
ade67df0f3 | ||
|
|
7a72f0fac9 | ||
|
|
47f78a7529 | ||
|
|
9a0cff692d | ||
|
|
f7155183d7 | ||
|
|
1526dd81d9 | ||
|
|
8270cd0ad2 | ||
|
|
a7128d86ea | ||
|
|
684d3b336e | ||
|
|
ecb54a05c6 | ||
|
|
cd2d49f711 | ||
|
|
4dd64b4971 | ||
|
|
128f2d1cad | ||
|
|
c7c77eb6aa | ||
|
|
4f58af0a8d | ||
|
|
bd73127d74 | ||
|
|
76dec47f00 | ||
|
|
38f9b3a973 | ||
|
|
bf63f9ffa5 | ||
|
|
abbf1a02cb | ||
|
|
f8f1be3de5 | ||
|
|
924638c471 | ||
|
|
a551cc9294 | ||
|
|
bb08a70bd8 | ||
|
|
22e8a97a1c | ||
|
|
eda7394551 | ||
|
|
0feecb7c6a | ||
|
|
0995b9409d | ||
|
|
38f138bc22 | ||
|
|
ad7c475fb1 | ||
|
|
1b4b317aac | ||
|
|
7b0618859a | ||
|
|
4eae9b5ba6 | ||
|
|
31e293b082 | ||
|
|
3e3dff6767 | ||
|
|
e163a76f2b | ||
|
|
04c32fc08a | ||
|
|
5660922568 | ||
|
|
e639cd6a77 | ||
|
|
d1d81dd01c | ||
|
|
cd8adf13ed | ||
|
|
86f3eafade | ||
|
|
abb23828f9 | ||
|
|
dda4b5a4ad | ||
|
|
e21387e045 | ||
|
|
4c99489420 | ||
|
|
e9c8986a65 | ||
|
|
9502ab0bf5 | ||
|
|
5125ceb922 | ||
|
|
1138a186eb | ||
|
|
fabf67c376 | ||
|
|
a4e9da3747 | ||
|
|
e00355a036 | ||
|
|
3d0feba00a | ||
|
|
af7a19a8cf | ||
|
|
055b750d99 | ||
|
|
a71f621a32 | ||
|
|
07aad68c17 | ||
|
|
db2dffb6e5 | ||
|
|
a2d7f441b8 | ||
|
|
0c34bf0476 | ||
|
|
98dac46aac | ||
|
|
e433fa2719 | ||
|
|
d80db00f82 | ||
|
|
7a107e2fc4 | ||
|
|
84458ec18c | ||
|
|
c3de94cee1 | ||
|
|
465c8e6583 | ||
|
|
1ad869f844 | ||
|
|
7ffad35dac | ||
|
|
c6243fc27f | ||
|
|
fe3bd5d62f | ||
|
|
8c6b611f35 | ||
|
|
cfbbcd78bc | ||
|
|
4c3c2b32a1 | ||
|
|
18d605fadb | ||
|
|
ed30fce6df | ||
|
|
38afa4d42f | ||
|
|
e91b3f0c3d | ||
|
|
ef38a04b44 | ||
|
|
cf871db447 | ||
|
|
43b2b0bd1e | ||
|
|
9a5c7b3fa9 | ||
|
|
2be5bc847a | ||
|
|
55afcb57a5 | ||
|
|
5526490743 | ||
|
|
a2dc9c71e4 | ||
|
|
513c4650c5 | ||
|
|
4e3f1848ee | ||
|
|
cec48ed270 | ||
|
|
fc1464727f | ||
|
|
36864a2a08 | ||
|
|
273a9a6155 | ||
|
|
5fc18f5b8a | ||
|
|
03fd43fc91 | ||
|
|
4e24dc003c | ||
|
|
d7676c39b6 | ||
|
|
81d4c80742 | ||
|
|
24be888d65 | ||
|
|
b78378437c | ||
|
|
3090e2187c | ||
|
|
76ff97811a | ||
|
|
c7b70a138f | ||
|
|
92e52fe1df | ||
|
|
5280b7b031 | ||
|
|
9e7763d442 | ||
|
|
f6d8c8cb0c | ||
|
|
0da480a91d | ||
|
|
de0e648844 | ||
|
|
46a6fc84ef | ||
|
|
d684867066 | ||
|
|
43b194741c | ||
|
|
d748bb5cbb | ||
|
|
313c34ae56 | ||
|
|
16657dba99 | ||
|
|
97e1075739 | ||
|
|
51ce312001 | ||
|
|
f8ae1d4e6c | ||
|
|
f169fc5a99 | ||
|
|
cf27a42d92 | ||
|
|
44245f33cd | ||
|
|
337dacdd3f | ||
|
|
2595c47b57 | ||
|
|
b539fb0bc1 | ||
|
|
5d97608970 | ||
|
|
ed756b9700 | ||
|
|
04ad59de76 | ||
|
|
034c0d4de5 | ||
|
|
e8bcedb09b | ||
|
|
d14e84c03b | ||
|
|
1d7138fe02 | ||
|
|
e604bb9e94 | ||
|
|
2321722a45 | ||
|
|
9ead2b75ce | ||
|
|
cae7a206a2 | ||
|
|
b5d2e25478 | ||
|
|
efb5a80e52 | ||
|
|
8bb0ca4971 | ||
|
|
36069f6efa | ||
|
|
d4e194bc46 | ||
|
|
e1b677091e | ||
|
|
1fc1cc5da9 | ||
|
|
cf0308b271 | ||
|
|
d8bed69373 | ||
|
|
f955a8cbd2 | ||
|
|
4478a99e31 | ||
|
|
1c34f3cdb1 | ||
|
|
7bb8b1768f | ||
|
|
83c7d3bbe8 | ||
|
|
e35f67b908 | ||
|
|
7382ea1a7e | ||
|
|
4890b74c04 | ||
|
|
7680f70ad6 | ||
|
|
3131dd1d5c | ||
|
|
af5db51306 | ||
|
|
60f3d60741 | ||
|
|
dc249be247 | ||
|
|
799e5b33a1 | ||
|
|
36e11b6827 | ||
|
|
0e223f1456 | ||
|
|
2ba80d2403 | ||
|
|
e50af6db09 | ||
|
|
c4c3edfa96 | ||
|
|
7e69b98e05 | ||
|
|
6c2667018a | ||
|
|
51b3d6bba2 | ||
|
|
9a3f9997b6 | ||
|
|
6545e0d9a3 | ||
|
|
f94a4f7acc | ||
|
|
04e2a0621d | ||
|
|
73c8c755ea | ||
|
|
c447a10225 | ||
|
|
4f80437ee0 | ||
|
|
bcac42aabc | ||
|
|
45b7c74873 | ||
|
|
5c438c5e6b | ||
|
|
e87ff328d5 | ||
|
|
e3f26b056e | ||
|
|
4954a336f8 | ||
|
|
4a242e3a65 | ||
|
|
776e1cf1df | ||
|
|
cc546e7a28 | ||
|
|
faacbd96a3 | ||
|
|
6352ee1a6e | ||
|
|
5f2a604b63 | ||
|
|
1f21da75eb | ||
|
|
567c6885a3 | ||
|
|
4dc9e58906 | ||
|
|
7a7b9ed7fe | ||
|
|
c3e043956e | ||
|
|
9d8b93b6e2 | ||
|
|
da462cf225 | ||
|
|
f9d705b17e | ||
|
|
6c93ad42f3 | ||
|
|
7aeaa3c21c | ||
|
|
cd9fa3f7aa | ||
|
|
a1d566ce4b | ||
|
|
f7fa05f577 | ||
|
|
250eb743c1 | ||
|
|
9ee5590328 | ||
|
|
6df34c361e | ||
|
|
0f70aae1cc | ||
|
|
3340e13fd0 | ||
|
|
b045e3fbd7 | ||
|
|
473251dbb3 | ||
|
|
743d1c64c2 | ||
|
|
2a0cf8353a | ||
|
|
73bb647218 | ||
|
|
c26c575867 | ||
|
|
aec1fe0a17 | ||
|
|
b4ab964b72 | ||
|
|
63fa255c06 | ||
|
|
5b42c46b48 | ||
|
|
24ff96afe4 | ||
|
|
257f817c7f | ||
|
|
689d73a30d | ||
|
|
5cac579619 | ||
|
|
e1a4a6beb6 | ||
|
|
bd73a06416 | ||
|
|
b98d6aebdd | ||
|
|
3cbe686d62 | ||
|
|
4645ddbb6b | ||
|
|
58ff36f3bd | ||
|
|
676cfae91c | ||
|
|
250437e557 | ||
|
|
d9f2e69215 | ||
|
|
dfa79c3730 | ||
|
|
cc5e9388d8 | ||
|
|
21db0fdbfb | ||
|
|
b3751b90f6 | ||
|
|
3d24f1a382 | ||
|
|
d8bed13047 | ||
|
|
9088afc4f1 | ||
|
|
fda5eecd67 | ||
|
|
ea07e719ca | ||
|
|
9844c1c52b | ||
|
|
fb955bcb15 | ||
|
|
80ff7b9c94 | ||
|
|
b64cdc2813 | ||
|
|
edaeb4b2da | ||
|
|
3951a8e019 | ||
|
|
fd2734e97d | ||
|
|
e266eba401 | ||
|
|
a8dfcf5584 | ||
|
|
42dc99eac1 | ||
|
|
cebda921dd | ||
|
|
3757f660f2 | ||
|
|
05ff557dee | ||
|
|
5481021ee6 | ||
|
|
885cf0ff8d | ||
|
|
1b6f6946ae | ||
|
|
0d4d155816 | ||
|
|
e08441c033 | ||
|
|
867a030189 | ||
|
|
9a391f44e0 | ||
|
|
402103331b | ||
|
|
60fbf73fc4 | ||
|
|
77fff61b86 | ||
|
|
9128ec61df | ||
|
|
27c8d9d635 | ||
|
|
66435c27b3 | ||
|
|
353e1738f6 | ||
|
|
26bb183787 | ||
|
|
e8c9e5c6cd | ||
|
|
6ab1647af2 | ||
|
|
c494a00a66 | ||
|
|
32d6d03151 | ||
|
|
39549f8990 | ||
|
|
d63b561fff | ||
|
|
d1e91fcd62 | ||
|
|
6abf4e6d4d | ||
|
|
6d9ece73a9 | ||
|
|
97ed536125 | ||
|
|
660b17a6b9 | ||
|
|
6d37e633e6 | ||
|
|
9bb804b14e | ||
|
|
e17c3994b8 | ||
|
|
9fcb06f934 | ||
|
|
74c2d8f41b | ||
|
|
31a6de2e74 | ||
|
|
3cc43b3224 | ||
|
|
9fb3609955 | ||
|
|
5520ff12ec | ||
|
|
3670fde77f | ||
|
|
3241b4e111 | ||
|
|
37f8e419f9 | ||
|
|
4dca735bf3 | ||
|
|
b92a44364d | ||
|
|
cfcb3305f0 | ||
|
|
10d1fec3ff | ||
|
|
1161b566ca | ||
|
|
a13e34da3f | ||
|
|
41d4a0d7bd | ||
|
|
1c2a5533f4 | ||
|
|
a449aeef28 | ||
|
|
57df89c464 | ||
|
|
ebcb9a8b12 | ||
|
|
d894b781b8 | ||
|
|
db08726884 | ||
|
|
6b7b3247b1 | ||
|
|
64b691ab61 | ||
|
|
b428cda3c6 | ||
|
|
70e3250045 | ||
|
|
296d9d6f7a | ||
|
|
3ceabf0f64 | ||
|
|
b263292a75 | ||
|
|
ffca4f2da8 | ||
|
|
f7a94feedd | ||
|
|
9c5ed23eac | ||
|
|
00a038e9c5 |
14
.editorconfig
Normal file
14
.editorconfig
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
charset = utf-8
|
||||||
|
|
||||||
|
[*.{cpp,hpp,c,h,java,cc,hh,m,mm,S,md,properties,gmk,m4,ac}]
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
|
||||||
|
[Makefile]
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
|
||||||
|
[src/hotspot/**.{cpp,hpp,h}]
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 2
|
||||||
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -1,4 +1,5 @@
|
|||||||
* -text
|
* -text
|
||||||
|
* encoding=utf-8
|
||||||
*.java diff=java
|
*.java diff=java
|
||||||
*.c diff=cpp
|
*.c diff=cpp
|
||||||
*.h diff=cpp
|
*.h diff=cpp
|
||||||
|
|||||||
4
.github/actions/do-build/action.yml
vendored
4
.github/actions/do-build/action.yml
vendored
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2022, 2024, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2022, 2025, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -42,7 +42,7 @@ runs:
|
|||||||
- name: 'Build'
|
- name: 'Build'
|
||||||
id: build
|
id: build
|
||||||
run: >
|
run: >
|
||||||
make LOG=info ${{ inputs.make-target }}
|
make -k LOG=info ${{ inputs.make-target }}
|
||||||
|| bash ./.github/scripts/gen-build-failure-report.sh "$GITHUB_STEP_SUMMARY"
|
|| bash ./.github/scripts/gen-build-failure-report.sh "$GITHUB_STEP_SUMMARY"
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|
||||||
|
|||||||
37
.github/actions/get-bundles/action.yml
vendored
37
.github/actions/get-bundles/action.yml
vendored
@@ -32,10 +32,16 @@ inputs:
|
|||||||
debug-suffix:
|
debug-suffix:
|
||||||
description: 'File name suffix denoting debug level, possibly empty'
|
description: 'File name suffix denoting debug level, possibly empty'
|
||||||
required: false
|
required: false
|
||||||
|
static-suffix:
|
||||||
|
description: 'Static bundle file name suffix'
|
||||||
|
required: false
|
||||||
outputs:
|
outputs:
|
||||||
jdk-path:
|
jdk-path:
|
||||||
description: 'Path to the installed JDK bundle'
|
description: 'Path to the installed JDK bundle'
|
||||||
value: ${{ steps.path-name.outputs.jdk }}
|
value: ${{ steps.path-name.outputs.jdk }}
|
||||||
|
static-jdk-path:
|
||||||
|
description: 'Path to the installed static JDK bundle'
|
||||||
|
value: ${{ steps.path-name.outputs.static_jdk }}
|
||||||
symbols-path:
|
symbols-path:
|
||||||
description: 'Path to the installed symbols bundle'
|
description: 'Path to the installed symbols bundle'
|
||||||
value: ${{ steps.path-name.outputs.symbols }}
|
value: ${{ steps.path-name.outputs.symbols }}
|
||||||
@@ -61,6 +67,15 @@ runs:
|
|||||||
path: bundles
|
path: bundles
|
||||||
if: steps.download-bundles.outcome == 'failure'
|
if: steps.download-bundles.outcome == 'failure'
|
||||||
|
|
||||||
|
- name: 'Download static bundles artifact'
|
||||||
|
id: download-static-bundles
|
||||||
|
uses: actions/download-artifact@v4
|
||||||
|
with:
|
||||||
|
name: bundles-${{ inputs.platform }}${{ inputs.debug-suffix }}${{ inputs.static-suffix }}
|
||||||
|
path: bundles
|
||||||
|
continue-on-error: true
|
||||||
|
if: ${{ inputs.static-suffix == '-static' }}
|
||||||
|
|
||||||
- name: 'Unpack bundles'
|
- name: 'Unpack bundles'
|
||||||
run: |
|
run: |
|
||||||
if [[ -e bundles/jdk-${{ inputs.platform }}${{ inputs.debug-suffix }}.zip ]]; then
|
if [[ -e bundles/jdk-${{ inputs.platform }}${{ inputs.debug-suffix }}.zip ]]; then
|
||||||
@@ -75,6 +90,20 @@ runs:
|
|||||||
tar -xf bundles/jdk-${{ inputs.platform }}${{ inputs.debug-suffix }}.tar.gz -C bundles/jdk
|
tar -xf bundles/jdk-${{ inputs.platform }}${{ inputs.debug-suffix }}.tar.gz -C bundles/jdk
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ '${{ inputs.static-suffix }}' == '-static' ]]; then
|
||||||
|
if [[ -e bundles/jdk-${{ inputs.platform }}${{ inputs.debug-suffix }}${{ inputs.static-suffix }}.zip ]]; then
|
||||||
|
echo 'Unpacking static jdk bundle...'
|
||||||
|
mkdir -p bundles/static-jdk
|
||||||
|
unzip -q bundles/jdk-${{ inputs.platform }}${{ inputs.debug-suffix }}${{ inputs.static-suffix }}.zip -d bundles/static-jdk
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -e bundles/jdk-${{ inputs.platform }}${{ inputs.debug-suffix }}${{ inputs.static-suffix }}.tar.gz ]]; then
|
||||||
|
echo 'Unpacking static jdk bundle...'
|
||||||
|
mkdir -p bundles/static-jdk
|
||||||
|
tar -xf bundles/jdk-${{ inputs.platform }}${{ inputs.debug-suffix }}${{ inputs.static-suffix }}.tar.gz -C bundles/static-jdk
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ -e bundles/symbols-${{ inputs.platform }}${{ inputs.debug-suffix }}.tar.gz ]]; then
|
if [[ -e bundles/symbols-${{ inputs.platform }}${{ inputs.debug-suffix }}.tar.gz ]]; then
|
||||||
echo 'Unpacking symbols bundle...'
|
echo 'Unpacking symbols bundle...'
|
||||||
mkdir -p bundles/symbols
|
mkdir -p bundles/symbols
|
||||||
@@ -106,4 +135,12 @@ runs:
|
|||||||
echo "jdk=$jdk_dir" >> $GITHUB_OUTPUT
|
echo "jdk=$jdk_dir" >> $GITHUB_OUTPUT
|
||||||
echo "symbols=$symbols_dir" >> $GITHUB_OUTPUT
|
echo "symbols=$symbols_dir" >> $GITHUB_OUTPUT
|
||||||
echo "tests=$tests_dir" >> $GITHUB_OUTPUT
|
echo "tests=$tests_dir" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
if [[ '${{ inputs.static-suffix }}' == '-static' ]]; then
|
||||||
|
static_jdk_dir="$GITHUB_WORKSPACE/$(dirname $(find bundles/static-jdk -name bin -type d))"
|
||||||
|
if [[ '${{ runner.os }}' == 'Windows' ]]; then
|
||||||
|
static_jdk_dir="$(cygpath $static_jdk_dir)"
|
||||||
|
fi
|
||||||
|
echo "static_jdk=$static_jdk_dir" >> $GITHUB_OUTPUT
|
||||||
|
fi
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|||||||
15
.github/actions/upload-bundles/action.yml
vendored
15
.github/actions/upload-bundles/action.yml
vendored
@@ -35,6 +35,9 @@ inputs:
|
|||||||
bundle-suffix:
|
bundle-suffix:
|
||||||
description: 'Bundle name suffix, possibly empty'
|
description: 'Bundle name suffix, possibly empty'
|
||||||
required: false
|
required: false
|
||||||
|
static-suffix:
|
||||||
|
description: 'Static JDK bundle name suffix, possibly empty'
|
||||||
|
required: false
|
||||||
|
|
||||||
runs:
|
runs:
|
||||||
using: composite
|
using: composite
|
||||||
@@ -46,6 +49,8 @@ runs:
|
|||||||
# Rename bundles to consistent names
|
# Rename bundles to consistent names
|
||||||
jdk_bundle_zip="$(ls build/*/bundles/jdk-*_bin${{ inputs.debug-suffix }}.zip 2> /dev/null || true)"
|
jdk_bundle_zip="$(ls build/*/bundles/jdk-*_bin${{ inputs.debug-suffix }}.zip 2> /dev/null || true)"
|
||||||
jdk_bundle_tar_gz="$(ls build/*/bundles/jdk-*_bin${{ inputs.debug-suffix }}.tar.gz 2> /dev/null || true)"
|
jdk_bundle_tar_gz="$(ls build/*/bundles/jdk-*_bin${{ inputs.debug-suffix }}.tar.gz 2> /dev/null || true)"
|
||||||
|
static_jdk_bundle_zip="$(ls build/*/bundles/static-jdk-*_bin${{ inputs.debug-suffix }}.zip 2> /dev/null || true)"
|
||||||
|
static_jdk_bundle_tar_gz="$(ls build/*/bundles/static-jdk-*_bin${{ inputs.debug-suffix }}.tar.gz 2> /dev/null || true)"
|
||||||
symbols_bundle="$(ls build/*/bundles/jdk-*_bin${{ inputs.debug-suffix }}-symbols.tar.gz 2> /dev/null || true)"
|
symbols_bundle="$(ls build/*/bundles/jdk-*_bin${{ inputs.debug-suffix }}-symbols.tar.gz 2> /dev/null || true)"
|
||||||
tests_bundle="$(ls build/*/bundles/jdk-*_bin-tests${{ inputs.debug-suffix }}.tar.gz 2> /dev/null || true)"
|
tests_bundle="$(ls build/*/bundles/jdk-*_bin-tests${{ inputs.debug-suffix }}.tar.gz 2> /dev/null || true)"
|
||||||
static_libs_bundle="$(ls build/*/bundles/jdk-*_bin-static-libs${{ inputs.debug-suffix }}.tar.gz 2> /dev/null || true)"
|
static_libs_bundle="$(ls build/*/bundles/jdk-*_bin-static-libs${{ inputs.debug-suffix }}.tar.gz 2> /dev/null || true)"
|
||||||
@@ -58,6 +63,12 @@ runs:
|
|||||||
if [[ "$jdk_bundle_tar_gz" != "" ]]; then
|
if [[ "$jdk_bundle_tar_gz" != "" ]]; then
|
||||||
mv "$jdk_bundle_tar_gz" "bundles/jdk-${{ inputs.platform }}${{ inputs.debug-suffix }}.tar.gz"
|
mv "$jdk_bundle_tar_gz" "bundles/jdk-${{ inputs.platform }}${{ inputs.debug-suffix }}.tar.gz"
|
||||||
fi
|
fi
|
||||||
|
if [[ "$static_jdk_bundle_zip" != "" ]]; then
|
||||||
|
mv "$static_jdk_bundle_zip" "bundles/jdk-${{ inputs.platform }}${{ inputs.debug-suffix }}${{ inputs.static-suffix }}.zip"
|
||||||
|
fi
|
||||||
|
if [[ "$static_jdk_bundle_tar_gz" != "" ]]; then
|
||||||
|
mv "$static_jdk_bundle_tar_gz" "bundles/jdk-${{ inputs.platform }}${{ inputs.debug-suffix }}${{ inputs.static-suffix }}.tar.gz"
|
||||||
|
fi
|
||||||
if [[ "$symbols_bundle" != "" ]]; then
|
if [[ "$symbols_bundle" != "" ]]; then
|
||||||
mv "$symbols_bundle" "bundles/symbols-${{ inputs.platform }}${{ inputs.debug-suffix }}.tar.gz"
|
mv "$symbols_bundle" "bundles/symbols-${{ inputs.platform }}${{ inputs.debug-suffix }}.tar.gz"
|
||||||
fi
|
fi
|
||||||
@@ -68,7 +79,7 @@ runs:
|
|||||||
mv "$static_libs_bundle" "bundles/static-libs-${{ inputs.platform }}${{ inputs.debug-suffix }}.tar.gz"
|
mv "$static_libs_bundle" "bundles/static-libs-${{ inputs.platform }}${{ inputs.debug-suffix }}.tar.gz"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "$jdk_bundle_zip$jdk_bundle_tar_gz$symbols_bundle$tests_bundle$static_libs_bundle" != "" ]]; then
|
if [[ "$jdk_bundle_zip$jdk_bundle_tar_gz$static_jdk_bundle_zip$static_jdk_bundle_tar_gz$symbols_bundle$tests_bundle$static_libs_bundle" != "" ]]; then
|
||||||
echo 'bundles-found=true' >> $GITHUB_OUTPUT
|
echo 'bundles-found=true' >> $GITHUB_OUTPUT
|
||||||
else
|
else
|
||||||
echo 'bundles-found=false' >> $GITHUB_OUTPUT
|
echo 'bundles-found=false' >> $GITHUB_OUTPUT
|
||||||
@@ -78,7 +89,7 @@ runs:
|
|||||||
- name: 'Upload bundles artifact'
|
- name: 'Upload bundles artifact'
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: bundles-${{ inputs.platform }}${{ inputs.debug-suffix }}${{ inputs.bundle-suffix }}
|
name: bundles-${{ inputs.platform }}${{ inputs.debug-suffix }}${{ inputs.static-suffix }}${{ inputs.bundle-suffix }}
|
||||||
path: bundles
|
path: bundles
|
||||||
retention-days: 1
|
retention-days: 1
|
||||||
if: steps.bundles.outputs.bundles-found == 'true'
|
if: steps.bundles.outputs.bundles-found == 'true'
|
||||||
|
|||||||
4
.github/workflows/build-linux.yml
vendored
4
.github/workflows/build-linux.yml
vendored
@@ -64,6 +64,9 @@ on:
|
|||||||
bundle-suffix:
|
bundle-suffix:
|
||||||
required: false
|
required: false
|
||||||
type: string
|
type: string
|
||||||
|
static-suffix:
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-linux:
|
build-linux:
|
||||||
@@ -143,3 +146,4 @@ jobs:
|
|||||||
platform: ${{ inputs.platform }}
|
platform: ${{ inputs.platform }}
|
||||||
debug-suffix: "${{ matrix.debug-level == 'debug' && '-debug' || '' }}"
|
debug-suffix: "${{ matrix.debug-level == 'debug' && '-debug' || '' }}"
|
||||||
bundle-suffix: ${{ inputs.bundle-suffix }}
|
bundle-suffix: ${{ inputs.bundle-suffix }}
|
||||||
|
static-suffix: ${{ inputs.static-suffix }}
|
||||||
|
|||||||
6
.github/workflows/build-windows.yml
vendored
6
.github/workflows/build-windows.yml
vendored
@@ -63,7 +63,7 @@ env:
|
|||||||
jobs:
|
jobs:
|
||||||
build-windows:
|
build-windows:
|
||||||
name: build
|
name: build
|
||||||
runs-on: windows-2019
|
runs-on: windows-2025
|
||||||
defaults:
|
defaults:
|
||||||
run:
|
run:
|
||||||
shell: bash
|
shell: bash
|
||||||
@@ -102,7 +102,7 @@ jobs:
|
|||||||
id: toolchain-check
|
id: toolchain-check
|
||||||
run: |
|
run: |
|
||||||
set +e
|
set +e
|
||||||
'/c/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/vc/auxiliary/build/vcvars64.bat' -vcvars_ver=${{ inputs.msvc-toolset-version }}
|
'/c/Program Files/Microsoft Visual Studio/2022/Enterprise/vc/auxiliary/build/vcvars64.bat' -vcvars_ver=${{ inputs.msvc-toolset-version }}
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
echo "Toolchain is already installed"
|
echo "Toolchain is already installed"
|
||||||
echo "toolchain-installed=true" >> $GITHUB_OUTPUT
|
echo "toolchain-installed=true" >> $GITHUB_OUTPUT
|
||||||
@@ -115,7 +115,7 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
# Run Visual Studio Installer
|
# Run Visual Studio Installer
|
||||||
'/c/Program Files (x86)/Microsoft Visual Studio/Installer/vs_installer.exe' \
|
'/c/Program Files (x86)/Microsoft Visual Studio/Installer/vs_installer.exe' \
|
||||||
modify --quiet --installPath 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise' \
|
modify --quiet --installPath 'C:\Program Files\Microsoft Visual Studio\2022\Enterprise' \
|
||||||
--add Microsoft.VisualStudio.Component.VC.${{ inputs.msvc-toolset-version }}.${{ inputs.msvc-toolset-architecture }}
|
--add Microsoft.VisualStudio.Component.VC.${{ inputs.msvc-toolset-version }}.${{ inputs.msvc-toolset-architecture }}
|
||||||
if: steps.toolchain-check.outputs.toolchain-installed != 'true'
|
if: steps.toolchain-check.outputs.toolchain-installed != 'true'
|
||||||
|
|
||||||
|
|||||||
27
.github/workflows/main.yml
vendored
27
.github/workflows/main.yml
vendored
@@ -231,16 +231,14 @@ jobs:
|
|||||||
uses: ./.github/workflows/build-linux.yml
|
uses: ./.github/workflows/build-linux.yml
|
||||||
with:
|
with:
|
||||||
platform: linux-x64
|
platform: linux-x64
|
||||||
make-target: 'static-jdk-image'
|
make-target: 'static-jdk-bundles'
|
||||||
# There are issues with fastdebug static build in GHA due to space limit.
|
# There are issues with fastdebug static build in GHA due to space limit.
|
||||||
# Only do release build for now.
|
# Only do release build for now.
|
||||||
debug-levels: '[ "release" ]'
|
debug-levels: '[ "release" ]'
|
||||||
gcc-major-version: '10'
|
gcc-major-version: '10'
|
||||||
configure-arguments: ${{ github.event.inputs.configure-arguments }}
|
configure-arguments: ${{ github.event.inputs.configure-arguments }}
|
||||||
make-arguments: ${{ github.event.inputs.make-arguments }}
|
make-arguments: ${{ github.event.inputs.make-arguments }}
|
||||||
# It currently doesn't produce any bundles, but probably will do in
|
static-suffix: "-static"
|
||||||
# the future.
|
|
||||||
bundle-suffix: "-static"
|
|
||||||
if: needs.prepare.outputs.linux-x64 == 'true'
|
if: needs.prepare.outputs.linux-x64 == 'true'
|
||||||
|
|
||||||
build-linux-x64-static-libs:
|
build-linux-x64-static-libs:
|
||||||
@@ -312,7 +310,7 @@ jobs:
|
|||||||
uses: ./.github/workflows/build-windows.yml
|
uses: ./.github/workflows/build-windows.yml
|
||||||
with:
|
with:
|
||||||
platform: windows-x64
|
platform: windows-x64
|
||||||
msvc-toolset-version: '14.29'
|
msvc-toolset-version: '14.43'
|
||||||
msvc-toolset-architecture: 'x86.x64'
|
msvc-toolset-architecture: 'x86.x64'
|
||||||
configure-arguments: ${{ github.event.inputs.configure-arguments }}
|
configure-arguments: ${{ github.event.inputs.configure-arguments }}
|
||||||
make-arguments: ${{ github.event.inputs.make-arguments }}
|
make-arguments: ${{ github.event.inputs.make-arguments }}
|
||||||
@@ -324,7 +322,7 @@ jobs:
|
|||||||
uses: ./.github/workflows/build-windows.yml
|
uses: ./.github/workflows/build-windows.yml
|
||||||
with:
|
with:
|
||||||
platform: windows-aarch64
|
platform: windows-aarch64
|
||||||
msvc-toolset-version: '14.29'
|
msvc-toolset-version: '14.43'
|
||||||
msvc-toolset-architecture: 'arm64'
|
msvc-toolset-architecture: 'arm64'
|
||||||
make-target: 'hotspot'
|
make-target: 'hotspot'
|
||||||
extra-conf-options: '--openjdk-target=aarch64-unknown-cygwin'
|
extra-conf-options: '--openjdk-target=aarch64-unknown-cygwin'
|
||||||
@@ -361,6 +359,19 @@ jobs:
|
|||||||
platform: linux-x64
|
platform: linux-x64
|
||||||
bootjdk-platform: linux-x64
|
bootjdk-platform: linux-x64
|
||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-22.04
|
||||||
|
debug-suffix: -debug
|
||||||
|
|
||||||
|
test-linux-x64-static:
|
||||||
|
name: linux-x64-static
|
||||||
|
needs:
|
||||||
|
- build-linux-x64
|
||||||
|
- build-linux-x64-static
|
||||||
|
uses: ./.github/workflows/test.yml
|
||||||
|
with:
|
||||||
|
platform: linux-x64
|
||||||
|
bootjdk-platform: linux-x64
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
|
static-suffix: "-static"
|
||||||
|
|
||||||
test-macos-aarch64:
|
test-macos-aarch64:
|
||||||
name: macos-aarch64
|
name: macos-aarch64
|
||||||
@@ -372,6 +383,7 @@ jobs:
|
|||||||
bootjdk-platform: macos-aarch64
|
bootjdk-platform: macos-aarch64
|
||||||
runs-on: macos-14
|
runs-on: macos-14
|
||||||
xcode-toolset-version: '15.4'
|
xcode-toolset-version: '15.4'
|
||||||
|
debug-suffix: -debug
|
||||||
|
|
||||||
test-windows-x64:
|
test-windows-x64:
|
||||||
name: windows-x64
|
name: windows-x64
|
||||||
@@ -381,4 +393,5 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
platform: windows-x64
|
platform: windows-x64
|
||||||
bootjdk-platform: windows-x64
|
bootjdk-platform: windows-x64
|
||||||
runs-on: windows-2019
|
runs-on: windows-2025
|
||||||
|
debug-suffix: -debug
|
||||||
|
|||||||
44
.github/workflows/test.yml
vendored
44
.github/workflows/test.yml
vendored
@@ -40,6 +40,12 @@ on:
|
|||||||
xcode-toolset-version:
|
xcode-toolset-version:
|
||||||
required: false
|
required: false
|
||||||
type: string
|
type: string
|
||||||
|
debug-suffix:
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
static-suffix:
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
|
||||||
env:
|
env:
|
||||||
# These are needed to make the MSYS2 bash work properly
|
# These are needed to make the MSYS2 bash work properly
|
||||||
@@ -86,35 +92,35 @@ jobs:
|
|||||||
|
|
||||||
- test-name: 'hs/tier1 common'
|
- test-name: 'hs/tier1 common'
|
||||||
test-suite: 'test/hotspot/jtreg/:tier1_common'
|
test-suite: 'test/hotspot/jtreg/:tier1_common'
|
||||||
debug-suffix: -debug
|
debug-suffix: ${{ inputs.debug-suffix }}
|
||||||
|
|
||||||
- test-name: 'hs/tier1 compiler part 1'
|
- test-name: 'hs/tier1 compiler part 1'
|
||||||
test-suite: 'test/hotspot/jtreg/:tier1_compiler_1'
|
test-suite: 'test/hotspot/jtreg/:tier1_compiler_1'
|
||||||
debug-suffix: -debug
|
debug-suffix: ${{ inputs.debug-suffix }}
|
||||||
|
|
||||||
- test-name: 'hs/tier1 compiler part 2'
|
- test-name: 'hs/tier1 compiler part 2'
|
||||||
test-suite: 'test/hotspot/jtreg/:tier1_compiler_2'
|
test-suite: 'test/hotspot/jtreg/:tier1_compiler_2'
|
||||||
debug-suffix: -debug
|
debug-suffix: ${{ inputs.debug-suffix }}
|
||||||
|
|
||||||
- test-name: 'hs/tier1 compiler part 3'
|
- test-name: 'hs/tier1 compiler part 3'
|
||||||
test-suite: 'test/hotspot/jtreg/:tier1_compiler_3'
|
test-suite: 'test/hotspot/jtreg/:tier1_compiler_3'
|
||||||
debug-suffix: -debug
|
debug-suffix: ${{ inputs.debug-suffix }}
|
||||||
|
|
||||||
- test-name: 'hs/tier1 gc'
|
- test-name: 'hs/tier1 gc'
|
||||||
test-suite: 'test/hotspot/jtreg/:tier1_gc'
|
test-suite: 'test/hotspot/jtreg/:tier1_gc'
|
||||||
debug-suffix: -debug
|
debug-suffix: ${{ inputs.debug-suffix }}
|
||||||
|
|
||||||
- test-name: 'hs/tier1 runtime'
|
- test-name: 'hs/tier1 runtime'
|
||||||
test-suite: 'test/hotspot/jtreg/:tier1_runtime'
|
test-suite: 'test/hotspot/jtreg/:tier1_runtime'
|
||||||
debug-suffix: -debug
|
debug-suffix: ${{ inputs.debug-suffix }}
|
||||||
|
|
||||||
- test-name: 'hs/tier1 serviceability'
|
- test-name: 'hs/tier1 serviceability'
|
||||||
test-suite: 'test/hotspot/jtreg/:tier1_serviceability'
|
test-suite: 'test/hotspot/jtreg/:tier1_serviceability'
|
||||||
debug-suffix: -debug
|
debug-suffix: ${{ inputs.debug-suffix }}
|
||||||
|
|
||||||
- test-name: 'lib-test/tier1'
|
- test-name: 'lib-test/tier1'
|
||||||
test-suite: 'test/lib-test/:tier1'
|
test-suite: 'test/lib-test/:tier1'
|
||||||
debug-suffix: -debug
|
debug-suffix: ${{ inputs.debug-suffix }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: 'Checkout the JDK source'
|
- name: 'Checkout the JDK source'
|
||||||
@@ -140,6 +146,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
platform: ${{ inputs.platform }}
|
platform: ${{ inputs.platform }}
|
||||||
debug-suffix: ${{ matrix.debug-suffix }}
|
debug-suffix: ${{ matrix.debug-suffix }}
|
||||||
|
static-suffix: ${{ inputs.static-suffix }}
|
||||||
|
|
||||||
- name: 'Install dependencies'
|
- name: 'Install dependencies'
|
||||||
run: |
|
run: |
|
||||||
@@ -160,6 +167,21 @@ jobs:
|
|||||||
else
|
else
|
||||||
echo "value=$PATH" >> $GITHUB_OUTPUT
|
echo "value=$PATH" >> $GITHUB_OUTPUT
|
||||||
fi
|
fi
|
||||||
|
if [[ '${{ inputs.static-suffix }}' == '-static' ]]; then
|
||||||
|
echo "static-hotspot-problemlist-path=`pwd`/test/hotspot/jtreg/ProblemList-StaticJdk.txt" >> $GITHUB_OUTPUT
|
||||||
|
echo "static-jdk-problemlist-path=`pwd`/test/jdk/ProblemList-StaticJdk.txt" >> $GITHUB_OUTPUT
|
||||||
|
echo "static-langtools-problemlist-path=`pwd`/test/langtools/ProblemList-StaticJdk.txt" >> $GITHUB_OUTPUT
|
||||||
|
echo "static-lib-test-problemlist-path=`pwd`/test/lib-test/ProblemList-StaticJdk.txt" >> $GITHUB_OUTPUT
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: 'Set Extra Options'
|
||||||
|
id: extra-options
|
||||||
|
run: |
|
||||||
|
if [[ '${{ inputs.static-suffix }}' == '-static' ]]; then
|
||||||
|
echo "test-jdk=JDK_UNDER_TEST=${{ steps.bundles.outputs.static-jdk-path }}" >> $GITHUB_OUTPUT
|
||||||
|
echo "compile-jdk=JDK_FOR_COMPILE=${{ steps.bundles.outputs.jdk-path }}" >> $GITHUB_OUTPUT
|
||||||
|
echo "extra-problem-lists=EXTRA_PROBLEM_LISTS=${{ steps.path.outputs.static-hotspot-problemlist-path }}%20${{ steps.path.outputs.static-jdk-problemlist-path }}%20${{ steps.path.outputs.static-langtools-problemlist-path }}%20${{ steps.path.outputs.static-lib-test-problemlist-path }}" >> $GITHUB_OUTPUT
|
||||||
|
fi
|
||||||
|
|
||||||
- name: 'Run tests'
|
- name: 'Run tests'
|
||||||
id: run-tests
|
id: run-tests
|
||||||
@@ -171,7 +193,9 @@ jobs:
|
|||||||
JDK_IMAGE_DIR=${{ steps.bundles.outputs.jdk-path }}
|
JDK_IMAGE_DIR=${{ steps.bundles.outputs.jdk-path }}
|
||||||
SYMBOLS_IMAGE_DIR=${{ steps.bundles.outputs.symbols-path }}
|
SYMBOLS_IMAGE_DIR=${{ steps.bundles.outputs.symbols-path }}
|
||||||
TEST_IMAGE_DIR=${{ steps.bundles.outputs.tests-path }}
|
TEST_IMAGE_DIR=${{ steps.bundles.outputs.tests-path }}
|
||||||
JTREG='JAVA_OPTIONS=-XX:-CreateCoredumpOnCrash;VERBOSE=fail,error,time;KEYWORDS=!headful'
|
${{ steps.extra-options.outputs.test-jdk }}
|
||||||
|
${{ steps.extra-options.outputs.compile-jdk }}
|
||||||
|
JTREG='JAVA_OPTIONS=-XX:-CreateCoredumpOnCrash;VERBOSE=fail,error,time;KEYWORDS=!headful;${{ steps.extra-options.outputs.extra-problem-lists }}'
|
||||||
&& bash ./.github/scripts/gen-test-summary.sh "$GITHUB_STEP_SUMMARY" "$GITHUB_OUTPUT"
|
&& bash ./.github/scripts/gen-test-summary.sh "$GITHUB_STEP_SUMMARY" "$GITHUB_OUTPUT"
|
||||||
env:
|
env:
|
||||||
PATH: ${{ steps.path.outputs.value }}
|
PATH: ${{ steps.path.outputs.value }}
|
||||||
@@ -204,7 +228,7 @@ jobs:
|
|||||||
echo '::warning ::Missing test-support directory'
|
echo '::warning ::Missing test-support directory'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
artifact_name="results-${{ inputs.platform }}-$(echo ${{ matrix.test-name }} | tr '/ ' '__')"
|
artifact_name="results-${{ inputs.platform }}-$(echo ${{ matrix.test-name }}${{ inputs.static-suffix }} | tr '/ ' '__')"
|
||||||
echo "artifact-name=$artifact_name" >> $GITHUB_OUTPUT
|
echo "artifact-name=$artifact_name" >> $GITHUB_OUTPUT
|
||||||
if: always()
|
if: always()
|
||||||
|
|
||||||
|
|||||||
2
.gitignore
vendored
2
.gitignore
vendored
@@ -23,3 +23,5 @@ NashornProfile.txt
|
|||||||
/.gdbinit
|
/.gdbinit
|
||||||
/.lldbinit
|
/.lldbinit
|
||||||
**/core.[0-9]*
|
**/core.[0-9]*
|
||||||
|
*.rej
|
||||||
|
*.orig
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
# Contributing to the JDK
|
# Contributing to the JDK
|
||||||
|
|
||||||
Please see the [OpenJDK Developers’ Guide](https://openjdk.org/guide/).
|
Please see the [OpenJDK Developers' Guide](https://openjdk.org/guide/).
|
||||||
|
|||||||
@@ -282,9 +282,34 @@ possible, use an SSD. The build process is very disk intensive, and
|
|||||||
having slow disk access will significantly increase build times. If you
|
having slow disk access will significantly increase build times. If you
|
||||||
need to use a network share for the source code, see below for
|
need to use a network share for the source code, see below for
|
||||||
suggestions on how to keep the build artifacts on a local disk.</p></li>
|
suggestions on how to keep the build artifacts on a local disk.</p></li>
|
||||||
<li><p>On Windows, if using <a href="#cygwin">Cygwin</a>, extra care
|
<li><p>UTF-8 support is needed to compile the JDK. On Unix systems, this
|
||||||
must be taken to make sure the environment is consistent. It is
|
typically means that the <code>C.UTF-8</code> or
|
||||||
recommended that you follow this procedure:</p>
|
<code>en_US.UTF-8</code> locale needs to be available. For Windows
|
||||||
|
users, please see the section on <a href="#locale-requirements">Locale
|
||||||
|
Requirements</a> below.</p></li>
|
||||||
|
<li><p>On Windows, extra care must be taken to have a smooth building
|
||||||
|
experience:</p>
|
||||||
|
<ul>
|
||||||
|
<li><p>Make sure that all relevant paths have short names. Short names
|
||||||
|
are used by the build system to create space-free alternative paths.
|
||||||
|
Short name creation is enabled per volume. The default setting can be
|
||||||
|
checked with the command: <code>fsutil 8dot3name query</code>. If short
|
||||||
|
name creation was turned off when a directory was created, it will not
|
||||||
|
have a short name. Whether a short name exists can be checked by running
|
||||||
|
<code>dir /X</code> in the containing directory (in cmd.exe). If a short
|
||||||
|
path is present you should see something like 'ASDF~1' being displayed
|
||||||
|
in one of the columns of the ouput. If a directory is missing a short
|
||||||
|
name, the safest way to get one is to enable short names for that
|
||||||
|
particular volume with
|
||||||
|
<code>fsutil 8dot3name set <drive letter>: 0</code> (note that
|
||||||
|
you need to run as administrator for this), and then re-create the
|
||||||
|
particular directory. A short name should be generated automatically
|
||||||
|
then. Another option is to manually assign a short name to the directory
|
||||||
|
using
|
||||||
|
<code>fsutil file setShortName <path> <short name></code>.</p></li>
|
||||||
|
<li><p>If using <a href="#cygwin">Cygwin</a>, you must make sure the
|
||||||
|
file permissions and attributes between Windows and Cygwin are
|
||||||
|
consistent. It is recommended that you follow this procedure:</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li><p>Create the directory that is going to contain the top directory
|
<li><p>Create the directory that is going to contain the top directory
|
||||||
of the JDK clone by using the <code>mkdir</code> command in the Cygwin
|
of the JDK clone by using the <code>mkdir</code> command in the Cygwin
|
||||||
@@ -294,6 +319,9 @@ it's children will inherit those attributes.</p></li>
|
|||||||
<li><p>Do not put the JDK clone in a path under your Cygwin home
|
<li><p>Do not put the JDK clone in a path under your Cygwin home
|
||||||
directory. This is especially important if your user name contains
|
directory. This is especially important if your user name contains
|
||||||
spaces and/or mixed upper and lower case letters.</p></li>
|
spaces and/or mixed upper and lower case letters.</p></li>
|
||||||
|
</ul>
|
||||||
|
<p>Failure to follow these procedures might result in hard-to-debug
|
||||||
|
build problems.</p></li>
|
||||||
<li><p>You need to install a git client. You have two choices, Cygwin
|
<li><p>You need to install a git client. You have two choices, Cygwin
|
||||||
git or Git for Windows. Unfortunately there are pros and cons with each
|
git or Git for Windows. Unfortunately there are pros and cons with each
|
||||||
choice.</p>
|
choice.</p>
|
||||||
@@ -311,9 +339,7 @@ It does work well with the Skara CLI tooling, however. To alleviate the
|
|||||||
line ending problems, make sure you set <code>core.autocrlf</code> to
|
line ending problems, make sure you set <code>core.autocrlf</code> to
|
||||||
<code>false</code> (this is asked during installation).</p></li>
|
<code>false</code> (this is asked during installation).</p></li>
|
||||||
</ul></li>
|
</ul></li>
|
||||||
</ul>
|
</ul></li>
|
||||||
<p>Failure to follow this procedure might result in hard-to-debug build
|
|
||||||
problems.</p></li>
|
|
||||||
</ul>
|
</ul>
|
||||||
<h2 id="build-hardware-requirements">Build Hardware Requirements</h2>
|
<h2 id="build-hardware-requirements">Build Hardware Requirements</h2>
|
||||||
<p>The JDK is a massive project, and require machines ranging from
|
<p>The JDK is a massive project, and require machines ranging from
|
||||||
@@ -376,7 +402,7 @@ to date at the time of writing.</p>
|
|||||||
</tr>
|
</tr>
|
||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td>macOS</td>
|
<td>macOS</td>
|
||||||
<td>macOS 13.x (Ventura)</td>
|
<td>macOS 14.x</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="even">
|
<tr class="even">
|
||||||
<td>Windows</td>
|
<td>Windows</td>
|
||||||
@@ -513,8 +539,8 @@ this makes it difficult for a project such as the JDK to keep pace with
|
|||||||
a continuously updated machine running macOS. See the section on <a
|
a continuously updated machine running macOS. See the section on <a
|
||||||
href="#apple-xcode">Apple Xcode</a> on some strategies to deal with
|
href="#apple-xcode">Apple Xcode</a> on some strategies to deal with
|
||||||
this.</p>
|
this.</p>
|
||||||
<p>It is recommended that you use at least macOS 13 (Ventura) and Xcode
|
<p>It is recommended that you use at least macOS 14 and Xcode 15.4, but
|
||||||
14, but earlier versions may also work.</p>
|
earlier versions may also work.</p>
|
||||||
<p>The standard macOS environment contains the basic tooling needed to
|
<p>The standard macOS environment contains the basic tooling needed to
|
||||||
build, but for external libraries a package manager is recommended. The
|
build, but for external libraries a package manager is recommended. The
|
||||||
JDK uses <a href="https://brew.sh/">homebrew</a> in the examples, but
|
JDK uses <a href="https://brew.sh/">homebrew</a> in the examples, but
|
||||||
@@ -586,15 +612,15 @@ to compile successfully without issues.</p>
|
|||||||
<tbody>
|
<tbody>
|
||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td>Linux</td>
|
<td>Linux</td>
|
||||||
<td>gcc 13.2.0</td>
|
<td>gcc 14.2.0</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="even">
|
<tr class="even">
|
||||||
<td>macOS</td>
|
<td>macOS</td>
|
||||||
<td>Apple Xcode 14.3.1 (using clang 14.0.3)</td>
|
<td>Apple Xcode 15.4 (using clang 15.0.0)</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td>Windows</td>
|
<td>Windows</td>
|
||||||
<td>Microsoft Visual Studio 2022 version 17.6.5</td>
|
<td>Microsoft Visual Studio 2022 version 17.13.2</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
@@ -604,7 +630,7 @@ standard for C, and C++14 for C++.</p>
|
|||||||
<p>The minimum accepted version of gcc is 10.0. Older versions will not
|
<p>The minimum accepted version of gcc is 10.0. Older versions will not
|
||||||
be accepted by <code>configure</code>.</p>
|
be accepted by <code>configure</code>.</p>
|
||||||
<p>The JDK is currently known to compile successfully with gcc version
|
<p>The JDK is currently known to compile successfully with gcc version
|
||||||
13.2 or newer.</p>
|
14.2 or newer.</p>
|
||||||
<p>In general, any version between these two should be usable.</p>
|
<p>In general, any version between these two should be usable.</p>
|
||||||
<h3 id="clang">clang</h3>
|
<h3 id="clang">clang</h3>
|
||||||
<p>The minimum accepted version of clang is 13. Older versions will not
|
<p>The minimum accepted version of clang is 13. Older versions will not
|
||||||
@@ -1722,6 +1748,20 @@ packages in the sysroot, configure the build with
|
|||||||
--with-devkit=$DEVKIT \
|
--with-devkit=$DEVKIT \
|
||||||
--with-sysroot=$SYSROOT</code></pre>
|
--with-sysroot=$SYSROOT</code></pre>
|
||||||
<p>and run <code>make</code> normally.</p>
|
<p>and run <code>make</code> normally.</p>
|
||||||
|
<h4 id="building-for-windows-aarch64">Building for Windows AArch64</h4>
|
||||||
|
<p>The Visual Studio Build Tools can be used for building the JDK
|
||||||
|
without a full Visual Studio installation. To set up the Visual Studio
|
||||||
|
2022 Build Tools on a Windows AArch64 machine for a native build, launch
|
||||||
|
the installer as follows in a Windows command prompt:</p>
|
||||||
|
<pre><code>vs_buildtools.exe --quiet --wait --norestart --nocache ^
|
||||||
|
--installPath "%ProgramFiles(x86)%\Microsoft Visual Studio\2022\BuildTools" ^
|
||||||
|
--add Microsoft.VisualStudio.Component.VC.CoreBuildTools ^
|
||||||
|
--add Microsoft.VisualStudio.Component.VC.Tools.ARM64 ^
|
||||||
|
--add Microsoft.VisualStudio.Component.Windows11SDK.22621</code></pre>
|
||||||
|
<p>To generate Windows AArch64 builds using Cygwin on a Windows x64
|
||||||
|
machine, you must set the proper target platform by adding
|
||||||
|
<code>--openjdk-target=aarch64-unknown-cygwin</code> to your configure
|
||||||
|
command line.</p>
|
||||||
<h2 id="build-performance">Build Performance</h2>
|
<h2 id="build-performance">Build Performance</h2>
|
||||||
<p>Building the JDK requires a lot of horsepower. Some of the build
|
<p>Building the JDK requires a lot of horsepower. Some of the build
|
||||||
tools can be adjusted to utilize more or less of resources such as
|
tools can be adjusted to utilize more or less of resources such as
|
||||||
|
|||||||
@@ -83,19 +83,44 @@ on where and how to check out the source code.
|
|||||||
for the source code, see below for suggestions on how to keep the build
|
for the source code, see below for suggestions on how to keep the build
|
||||||
artifacts on a local disk.
|
artifacts on a local disk.
|
||||||
|
|
||||||
* On Windows, if using [Cygwin](#cygwin), extra care must be taken to make sure
|
* UTF-8 support is needed to compile the JDK. On Unix systems, this typically
|
||||||
the environment is consistent. It is recommended that you follow this
|
means that the `C.UTF-8` or `en_US.UTF-8` locale needs to be available. For
|
||||||
procedure:
|
Windows users, please see the section on [Locale
|
||||||
|
Requirements](#locale-requirements) below.
|
||||||
|
|
||||||
* Create the directory that is going to contain the top directory of the JDK
|
* On Windows, extra care must be taken to have a smooth building experience:
|
||||||
clone by using the `mkdir` command in the Cygwin bash shell. That is, do
|
|
||||||
*not* create it using Windows Explorer. This will ensure that it will have
|
|
||||||
proper Cygwin attributes, and that it's children will inherit those
|
|
||||||
attributes.
|
|
||||||
|
|
||||||
* Do not put the JDK clone in a path under your Cygwin home directory. This
|
* Make sure that all relevant paths have short names. Short names are used by
|
||||||
is especially important if your user name contains spaces and/or mixed
|
the build system to create space-free alternative paths. Short name
|
||||||
upper and lower case letters.
|
creation is enabled per volume. The default setting can be checked with the
|
||||||
|
command: `fsutil 8dot3name query`. If short name creation was turned off
|
||||||
|
when a directory was created, it will not have a short name. Whether a
|
||||||
|
short name exists can be checked by running `dir /X` in the containing
|
||||||
|
directory (in cmd.exe). If a short path is present you should see something
|
||||||
|
like 'ASDF~1' being displayed in one of the columns of the ouput. If a
|
||||||
|
directory is missing a short name, the safest way to get one is to enable
|
||||||
|
short names for that particular volume with `fsutil 8dot3name set <drive
|
||||||
|
letter>: 0` (note that you need to run as administrator for this), and then
|
||||||
|
re-create the particular directory. A short name should be generated
|
||||||
|
automatically then. Another option is to manually assign a short name to
|
||||||
|
the directory using `fsutil file setShortName <path> <short name>`.
|
||||||
|
|
||||||
|
* If using [Cygwin](#cygwin), you must make sure the file permissions and
|
||||||
|
attributes between Windows and Cygwin are consistent. It is recommended
|
||||||
|
that you follow this procedure:
|
||||||
|
|
||||||
|
* Create the directory that is going to contain the top directory of the
|
||||||
|
JDK clone by using the `mkdir` command in the Cygwin bash shell. That is,
|
||||||
|
do *not* create it using Windows Explorer. This will ensure that it will
|
||||||
|
have proper Cygwin attributes, and that it's children will inherit those
|
||||||
|
attributes.
|
||||||
|
|
||||||
|
* Do not put the JDK clone in a path under your Cygwin home directory. This
|
||||||
|
is especially important if your user name contains spaces and/or mixed
|
||||||
|
upper and lower case letters.
|
||||||
|
|
||||||
|
Failure to follow these procedures might result in hard-to-debug build
|
||||||
|
problems.
|
||||||
|
|
||||||
* You need to install a git client. You have two choices, Cygwin git or Git
|
* You need to install a git client. You have two choices, Cygwin git or Git
|
||||||
for Windows. Unfortunately there are pros and cons with each choice.
|
for Windows. Unfortunately there are pros and cons with each choice.
|
||||||
@@ -113,9 +138,6 @@ on where and how to check out the source code.
|
|||||||
make sure you set `core.autocrlf` to `false` (this is asked during
|
make sure you set `core.autocrlf` to `false` (this is asked during
|
||||||
installation).
|
installation).
|
||||||
|
|
||||||
Failure to follow this procedure might result in hard-to-debug build
|
|
||||||
problems.
|
|
||||||
|
|
||||||
## Build Hardware Requirements
|
## Build Hardware Requirements
|
||||||
|
|
||||||
The JDK is a massive project, and require machines ranging from decent to
|
The JDK is a massive project, and require machines ranging from decent to
|
||||||
@@ -175,7 +197,7 @@ time of writing.
|
|||||||
| ----------------- | ---------------------------------- |
|
| ----------------- | ---------------------------------- |
|
||||||
| Linux/x64 | Oracle Enterprise Linux 6.4 / 8.x |
|
| Linux/x64 | Oracle Enterprise Linux 6.4 / 8.x |
|
||||||
| Linux/aarch64 | Oracle Enterprise Linux 7.6 / 8.x |
|
| Linux/aarch64 | Oracle Enterprise Linux 7.6 / 8.x |
|
||||||
| macOS | macOS 13.x (Ventura) |
|
| macOS | macOS 14.x |
|
||||||
| Windows | Windows Server 2016 |
|
| Windows | Windows Server 2016 |
|
||||||
|
|
||||||
The double version numbers for Linux are due to the hybrid model used at
|
The double version numbers for Linux are due to the hybrid model used at
|
||||||
@@ -327,7 +349,7 @@ difficult for a project such as the JDK to keep pace with a continuously
|
|||||||
updated machine running macOS. See the section on [Apple Xcode](#apple-xcode)
|
updated machine running macOS. See the section on [Apple Xcode](#apple-xcode)
|
||||||
on some strategies to deal with this.
|
on some strategies to deal with this.
|
||||||
|
|
||||||
It is recommended that you use at least macOS 13 (Ventura) and Xcode 14, but
|
It is recommended that you use at least macOS 14 and Xcode 15.4, but
|
||||||
earlier versions may also work.
|
earlier versions may also work.
|
||||||
|
|
||||||
The standard macOS environment contains the basic tooling needed to build, but
|
The standard macOS environment contains the basic tooling needed to build, but
|
||||||
@@ -390,11 +412,11 @@ possible to compile the JDK with both older and newer versions, but the closer
|
|||||||
you stay to this list, the more likely you are to compile successfully without
|
you stay to this list, the more likely you are to compile successfully without
|
||||||
issues.
|
issues.
|
||||||
|
|
||||||
| Operating system | Toolchain version |
|
| Operating system | Toolchain version |
|
||||||
| ------------------ | ------------------------------------------- |
|
| ------------------ | -------------------------------------------- |
|
||||||
| Linux | gcc 13.2.0 |
|
| Linux | gcc 14.2.0 |
|
||||||
| macOS | Apple Xcode 14.3.1 (using clang 14.0.3) |
|
| macOS | Apple Xcode 15.4 (using clang 15.0.0) |
|
||||||
| Windows | Microsoft Visual Studio 2022 version 17.6.5 |
|
| Windows | Microsoft Visual Studio 2022 version 17.13.2 |
|
||||||
|
|
||||||
All compilers are expected to be able to handle the C11 language standard for
|
All compilers are expected to be able to handle the C11 language standard for
|
||||||
C, and C++14 for C++.
|
C, and C++14 for C++.
|
||||||
@@ -404,7 +426,7 @@ C, and C++14 for C++.
|
|||||||
The minimum accepted version of gcc is 10.0. Older versions will not be accepted
|
The minimum accepted version of gcc is 10.0. Older versions will not be accepted
|
||||||
by `configure`.
|
by `configure`.
|
||||||
|
|
||||||
The JDK is currently known to compile successfully with gcc version 13.2 or
|
The JDK is currently known to compile successfully with gcc version 14.2 or
|
||||||
newer.
|
newer.
|
||||||
|
|
||||||
In general, any version between these two should be usable.
|
In general, any version between these two should be usable.
|
||||||
@@ -1457,6 +1479,24 @@ sh ./configure --with-jvm-variants=server \
|
|||||||
|
|
||||||
and run `make` normally.
|
and run `make` normally.
|
||||||
|
|
||||||
|
#### Building for Windows AArch64
|
||||||
|
The Visual Studio Build Tools can be used for building the JDK without a full
|
||||||
|
Visual Studio installation. To set up the Visual Studio 2022 Build Tools on a
|
||||||
|
Windows AArch64 machine for a native build, launch the installer as follows
|
||||||
|
in a Windows command prompt:
|
||||||
|
|
||||||
|
```
|
||||||
|
vs_buildtools.exe --quiet --wait --norestart --nocache ^
|
||||||
|
--installPath "%ProgramFiles(x86)%\Microsoft Visual Studio\2022\BuildTools" ^
|
||||||
|
--add Microsoft.VisualStudio.Component.VC.CoreBuildTools ^
|
||||||
|
--add Microsoft.VisualStudio.Component.VC.Tools.ARM64 ^
|
||||||
|
--add Microsoft.VisualStudio.Component.Windows11SDK.22621
|
||||||
|
```
|
||||||
|
|
||||||
|
To generate Windows AArch64 builds using Cygwin on a Windows x64 machine,
|
||||||
|
you must set the proper target platform by adding
|
||||||
|
`--openjdk-target=aarch64-unknown-cygwin` to your configure command line.
|
||||||
|
|
||||||
## Build Performance
|
## Build Performance
|
||||||
|
|
||||||
Building the JDK requires a lot of horsepower. Some of the build tools can be
|
Building the JDK requires a lot of horsepower. Some of the build tools can be
|
||||||
|
|||||||
@@ -32,11 +32,12 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li><a href="#introduction" id="toc-introduction">Introduction</a>
|
<li><a href="#introduction" id="toc-introduction">Introduction</a>
|
||||||
<ul>
|
<ul>
|
||||||
|
<li><a href="#changing-this-document"
|
||||||
|
id="toc-changing-this-document">Changing this Document</a></li>
|
||||||
<li><a href="#why-care-about-style" id="toc-why-care-about-style">Why
|
<li><a href="#why-care-about-style" id="toc-why-care-about-style">Why
|
||||||
Care About Style?</a></li>
|
Care About Style?</a></li>
|
||||||
<li><a href="#counterexamples-and-updates"
|
<li><a href="#counterexamples"
|
||||||
id="toc-counterexamples-and-updates">Counterexamples and
|
id="toc-counterexamples">Counterexamples</a></li>
|
||||||
Updates</a></li>
|
|
||||||
</ul></li>
|
</ul></li>
|
||||||
<li><a href="#structure-and-formatting"
|
<li><a href="#structure-and-formatting"
|
||||||
id="toc-structure-and-formatting">Structure and Formatting</a>
|
id="toc-structure-and-formatting">Structure and Formatting</a>
|
||||||
@@ -99,6 +100,21 @@ writing HotSpot code. Following these will help new code fit in with
|
|||||||
existing HotSpot code, making it easier to read and maintain. Failure to
|
existing HotSpot code, making it easier to read and maintain. Failure to
|
||||||
follow these guidelines may lead to discussion during code reviews, if
|
follow these guidelines may lead to discussion during code reviews, if
|
||||||
not outright rejection of a change.</p>
|
not outright rejection of a change.</p>
|
||||||
|
<h3 id="changing-this-document">Changing this Document</h3>
|
||||||
|
<p>Proposed changes should be discussed on the <a
|
||||||
|
href="mailto:hotspot-dev@openjdk.org">HotSpot Developers</a> mailing
|
||||||
|
list. Changes are likely to be cautious and incremental, since HotSpot
|
||||||
|
coders have been using these guidelines for years.</p>
|
||||||
|
<p>Substantive changes are approved by <a
|
||||||
|
href="https://www.rfc-editor.org/rfc/rfc7282.html">rough consensus</a>
|
||||||
|
of the <a href="https://openjdk.org/census#hotspot">HotSpot Group</a>
|
||||||
|
Members. The Group Lead determines whether consensus has been
|
||||||
|
reached.</p>
|
||||||
|
<p>Editorial changes (changes that only affect the description of
|
||||||
|
HotSpot style, not its substance) do not require the full consensus
|
||||||
|
gathering process. The normal HotSpot pull request process may be used
|
||||||
|
for editorial changes, with the additional requirement that the
|
||||||
|
requisite reviewers are also HotSpot Group Members.</p>
|
||||||
<h3 id="why-care-about-style">Why Care About Style?</h3>
|
<h3 id="why-care-about-style">Why Care About Style?</h3>
|
||||||
<p>Some programmers seem to have lexers and even C preprocessors
|
<p>Some programmers seem to have lexers and even C preprocessors
|
||||||
installed directly behind their eyeballs. The rest of us require code
|
installed directly behind their eyeballs. The rest of us require code
|
||||||
@@ -124,7 +140,7 @@ conforms locally to its own peculiar conventions, it is not worth
|
|||||||
reformatting the whole thing. Also consider separating changes that make
|
reformatting the whole thing. Also consider separating changes that make
|
||||||
extensive stylistic updates from those which make functional
|
extensive stylistic updates from those which make functional
|
||||||
changes.</p>
|
changes.</p>
|
||||||
<h3 id="counterexamples-and-updates">Counterexamples and Updates</h3>
|
<h3 id="counterexamples">Counterexamples</h3>
|
||||||
<p>Many of the guidelines mentioned here have (sometimes widespread)
|
<p>Many of the guidelines mentioned here have (sometimes widespread)
|
||||||
counterexamples in the HotSpot code base. Finding a counterexample is
|
counterexamples in the HotSpot code base. Finding a counterexample is
|
||||||
not sufficient justification for new code to follow the counterexample
|
not sufficient justification for new code to follow the counterexample
|
||||||
@@ -137,20 +153,6 @@ bring it up for discussion and possible change. The architectural rule,
|
|||||||
of course, is "When in Rome do as the Romans". Sometimes in the suburbs
|
of course, is "When in Rome do as the Romans". Sometimes in the suburbs
|
||||||
of Rome the rules are a little different; these differences can be
|
of Rome the rules are a little different; these differences can be
|
||||||
pointed out here.</p>
|
pointed out here.</p>
|
||||||
<p>Proposed changes should be discussed on the <a
|
|
||||||
href="mailto:hotspot-dev@openjdk.org">HotSpot Developers</a> mailing
|
|
||||||
list. Changes are likely to be cautious and incremental, since HotSpot
|
|
||||||
coders have been using these guidelines for years.</p>
|
|
||||||
<p>Substantive changes are approved by <a
|
|
||||||
href="https://www.rfc-editor.org/rfc/rfc7282.html">rough consensus</a>
|
|
||||||
of the <a href="https://openjdk.org/census#hotspot">HotSpot Group</a>
|
|
||||||
Members. The Group Lead determines whether consensus has been
|
|
||||||
reached.</p>
|
|
||||||
<p>Editorial changes (changes that only affect the description of
|
|
||||||
HotSpot style, not its substance) do not require the full consensus
|
|
||||||
gathering process. The normal HotSpot pull request process may be used
|
|
||||||
for editorial changes, with the additional requirement that the
|
|
||||||
requisite reviewers are also HotSpot Group Members.</p>
|
|
||||||
<h2 id="structure-and-formatting">Structure and Formatting</h2>
|
<h2 id="structure-and-formatting">Structure and Formatting</h2>
|
||||||
<h3 id="factoring-and-class-design">Factoring and Class Design</h3>
|
<h3 id="factoring-and-class-design">Factoring and Class Design</h3>
|
||||||
<ul>
|
<ul>
|
||||||
|
|||||||
@@ -8,6 +8,24 @@ HotSpot code, making it easier to read and maintain. Failure to
|
|||||||
follow these guidelines may lead to discussion during code reviews, if
|
follow these guidelines may lead to discussion during code reviews, if
|
||||||
not outright rejection of a change.
|
not outright rejection of a change.
|
||||||
|
|
||||||
|
### Changing this Document
|
||||||
|
|
||||||
|
Proposed changes should be discussed on the
|
||||||
|
[HotSpot Developers](mailto:hotspot-dev@openjdk.org) mailing
|
||||||
|
list. Changes are likely to be cautious and incremental, since HotSpot
|
||||||
|
coders have been using these guidelines for years.
|
||||||
|
|
||||||
|
Substantive changes are approved by
|
||||||
|
[rough consensus](https://www.rfc-editor.org/rfc/rfc7282.html) of
|
||||||
|
the [HotSpot Group](https://openjdk.org/census#hotspot) Members.
|
||||||
|
The Group Lead determines whether consensus has been reached.
|
||||||
|
|
||||||
|
Editorial changes (changes that only affect the description of HotSpot
|
||||||
|
style, not its substance) do not require the full consensus gathering
|
||||||
|
process. The normal HotSpot pull request process may be used for
|
||||||
|
editorial changes, with the additional requirement that the requisite
|
||||||
|
reviewers are also HotSpot Group Members.
|
||||||
|
|
||||||
### Why Care About Style?
|
### Why Care About Style?
|
||||||
|
|
||||||
Some programmers seem to have lexers and even C preprocessors
|
Some programmers seem to have lexers and even C preprocessors
|
||||||
@@ -38,7 +56,7 @@ reformatting the whole thing. Also consider separating changes that
|
|||||||
make extensive stylistic updates from those which make functional
|
make extensive stylistic updates from those which make functional
|
||||||
changes.
|
changes.
|
||||||
|
|
||||||
### Counterexamples and Updates
|
### Counterexamples
|
||||||
|
|
||||||
Many of the guidelines mentioned here have (sometimes widespread)
|
Many of the guidelines mentioned here have (sometimes widespread)
|
||||||
counterexamples in the HotSpot code base. Finding a counterexample is
|
counterexamples in the HotSpot code base. Finding a counterexample is
|
||||||
@@ -54,22 +72,6 @@ rule, of course, is "When in Rome do as the Romans". Sometimes in the
|
|||||||
suburbs of Rome the rules are a little different; these differences
|
suburbs of Rome the rules are a little different; these differences
|
||||||
can be pointed out here.
|
can be pointed out here.
|
||||||
|
|
||||||
Proposed changes should be discussed on the
|
|
||||||
[HotSpot Developers](mailto:hotspot-dev@openjdk.org) mailing
|
|
||||||
list. Changes are likely to be cautious and incremental, since HotSpot
|
|
||||||
coders have been using these guidelines for years.
|
|
||||||
|
|
||||||
Substantive changes are approved by
|
|
||||||
[rough consensus](https://www.rfc-editor.org/rfc/rfc7282.html) of
|
|
||||||
the [HotSpot Group](https://openjdk.org/census#hotspot) Members.
|
|
||||||
The Group Lead determines whether consensus has been reached.
|
|
||||||
|
|
||||||
Editorial changes (changes that only affect the description of HotSpot
|
|
||||||
style, not its substance) do not require the full consensus gathering
|
|
||||||
process. The normal HotSpot pull request process may be used for
|
|
||||||
editorial changes, with the additional requirement that the requisite
|
|
||||||
reviewers are also HotSpot Group Members.
|
|
||||||
|
|
||||||
## Structure and Formatting
|
## Structure and Formatting
|
||||||
|
|
||||||
### Factoring and Class Design
|
### Factoring and Class Design
|
||||||
|
|||||||
@@ -189,7 +189,7 @@ wants to find) and design tests using those models.</p>
|
|||||||
<p>Prefer having checks inside test code.</p>
|
<p>Prefer having checks inside test code.</p>
|
||||||
<p>Not only does having test logic outside, e.g. verification method,
|
<p>Not only does having test logic outside, e.g. verification method,
|
||||||
depending on asserts in product code contradict with several items above
|
depending on asserts in product code contradict with several items above
|
||||||
but also decreases test’s readability and stability. It is much easier
|
but also decreases test's readability and stability. It is much easier
|
||||||
to understand that a test is testing when all testing logic is located
|
to understand that a test is testing when all testing logic is located
|
||||||
inside a test or nearby in shared test libraries. As a rule of thumb,
|
inside a test or nearby in shared test libraries. As a rule of thumb,
|
||||||
the closer a check to a test, the better.</p>
|
the closer a check to a test, the better.</p>
|
||||||
@@ -198,7 +198,7 @@ the closer a check to a test, the better.</p>
|
|||||||
<p>Prefer <code>EXPECT</code> over <code>ASSERT</code> if possible.</p>
|
<p>Prefer <code>EXPECT</code> over <code>ASSERT</code> if possible.</p>
|
||||||
<p>This is related to the <a href="#informativeness">informativeness</a>
|
<p>This is related to the <a href="#informativeness">informativeness</a>
|
||||||
property of tests, information for other checks can help to better
|
property of tests, information for other checks can help to better
|
||||||
localize a defect’s root-cause. One should use <code>ASSERT</code> if it
|
localize a defect's root-cause. One should use <code>ASSERT</code> if it
|
||||||
is impossible to continue test execution or if it does not make much
|
is impossible to continue test execution or if it does not make much
|
||||||
sense. Later in the text, <code>EXPECT</code> forms will be used to
|
sense. Later in the text, <code>EXPECT</code> forms will be used to
|
||||||
refer to both <code>ASSERT/EXPECT</code>.</p>
|
refer to both <code>ASSERT/EXPECT</code>.</p>
|
||||||
@@ -235,7 +235,7 @@ which checks that the absolute value of the difference between
|
|||||||
<code>eps</code>.</p>
|
<code>eps</code>.</p>
|
||||||
<h3 id="c-string-comparison">C string comparison</h3>
|
<h3 id="c-string-comparison">C string comparison</h3>
|
||||||
<p>Use string special macros for C strings comparisons.</p>
|
<p>Use string special macros for C strings comparisons.</p>
|
||||||
<p><code>EXPECT_EQ</code> just compares pointers’ values, which is
|
<p><code>EXPECT_EQ</code> just compares pointers' values, which is
|
||||||
hardly what one wants comparing C strings. GoogleTest provides
|
hardly what one wants comparing C strings. GoogleTest provides
|
||||||
<code>EXPECT_STREQ</code> and <code>EXPECT_STRNE</code> macros to
|
<code>EXPECT_STREQ</code> and <code>EXPECT_STRNE</code> macros to
|
||||||
compare C string contents. There are also case-insensitive versions
|
compare C string contents. There are also case-insensitive versions
|
||||||
@@ -293,7 +293,7 @@ subsystem, etc.</p>
|
|||||||
<p>This naming scheme helps to find tests, filter them and simplifies
|
<p>This naming scheme helps to find tests, filter them and simplifies
|
||||||
test failure analysis. For example, class <code>Foo</code> - test group
|
test failure analysis. For example, class <code>Foo</code> - test group
|
||||||
<code>Foo</code>, compiler logging subsystem - test group
|
<code>Foo</code>, compiler logging subsystem - test group
|
||||||
<code>CompilerLogging</code>, G1 GC — test group <code>G1GC</code>, and
|
<code>CompilerLogging</code>, G1 GC - test group <code>G1GC</code>, and
|
||||||
so forth.</p>
|
so forth.</p>
|
||||||
<h3 id="filename">Filename</h3>
|
<h3 id="filename">Filename</h3>
|
||||||
<p>A test file must have <code>test_</code> prefix and <code>.cpp</code>
|
<p>A test file must have <code>test_</code> prefix and <code>.cpp</code>
|
||||||
@@ -345,7 +345,7 @@ name starts or ends with an underscore are enough to be safe.</p>
|
|||||||
<h3 id="friend-classes">Friend classes</h3>
|
<h3 id="friend-classes">Friend classes</h3>
|
||||||
<p>All test purpose friends should have either <code>Test</code> or
|
<p>All test purpose friends should have either <code>Test</code> or
|
||||||
<code>Testable</code> suffix.</p>
|
<code>Testable</code> suffix.</p>
|
||||||
<p>It greatly simplifies understanding of friendship’s purpose and
|
<p>It greatly simplifies understanding of friendship's purpose and
|
||||||
allows statically check that private members are not exposed
|
allows statically check that private members are not exposed
|
||||||
unexpectedly. Having <code>FooTest</code> as a friend of
|
unexpectedly. Having <code>FooTest</code> as a friend of
|
||||||
<code>Foo</code> without any comments will be understood as a necessary
|
<code>Foo</code> without any comments will be understood as a necessary
|
||||||
@@ -435,7 +435,7 @@ inapplicable tests.</p>
|
|||||||
<h3 id="flag-restoring">Flag restoring</h3>
|
<h3 id="flag-restoring">Flag restoring</h3>
|
||||||
<p>Restore changed flags.</p>
|
<p>Restore changed flags.</p>
|
||||||
<p>It is quite common for tests to configure JVM in a certain way
|
<p>It is quite common for tests to configure JVM in a certain way
|
||||||
changing flags’ values. GoogleTest provides two ways to set up
|
changing flags' values. GoogleTest provides two ways to set up
|
||||||
environment before a test and restore it afterward: using either
|
environment before a test and restore it afterward: using either
|
||||||
constructor and destructor or <code>SetUp</code> and
|
constructor and destructor or <code>SetUp</code> and
|
||||||
<code>TearDown</code> functions. Both ways require to use a test fixture
|
<code>TearDown</code> functions. Both ways require to use a test fixture
|
||||||
@@ -444,7 +444,7 @@ class, which sometimes is too wordy. The simpler facilities like
|
|||||||
be used in such cases to restore/set values.</p>
|
be used in such cases to restore/set values.</p>
|
||||||
<p>Caveats:</p>
|
<p>Caveats:</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li><p>Changing a flag’s value could break the invariants between flags'
|
<li><p>Changing a flag's value could break the invariants between flags'
|
||||||
values and hence could lead to unexpected/unsupported JVM
|
values and hence could lead to unexpected/unsupported JVM
|
||||||
state.</p></li>
|
state.</p></li>
|
||||||
<li><p><code>FLAG_SET_*</code> macros can change more than one flag (in
|
<li><p><code>FLAG_SET_*</code> macros can change more than one flag (in
|
||||||
|
|||||||
@@ -106,7 +106,7 @@ Prefer having checks inside test code.
|
|||||||
|
|
||||||
Not only does having test logic outside, e.g. verification method,
|
Not only does having test logic outside, e.g. verification method,
|
||||||
depending on asserts in product code contradict with several items
|
depending on asserts in product code contradict with several items
|
||||||
above but also decreases test’s readability and stability. It is much
|
above but also decreases test's readability and stability. It is much
|
||||||
easier to understand that a test is testing when all testing logic is
|
easier to understand that a test is testing when all testing logic is
|
||||||
located inside a test or nearby in shared test libraries. As a rule of
|
located inside a test or nearby in shared test libraries. As a rule of
|
||||||
thumb, the closer a check to a test, the better.
|
thumb, the closer a check to a test, the better.
|
||||||
@@ -119,7 +119,7 @@ Prefer `EXPECT` over `ASSERT` if possible.
|
|||||||
|
|
||||||
This is related to the [informativeness](#informativeness) property of
|
This is related to the [informativeness](#informativeness) property of
|
||||||
tests, information for other checks can help to better localize a
|
tests, information for other checks can help to better localize a
|
||||||
defect’s root-cause. One should use `ASSERT` if it is impossible to
|
defect's root-cause. One should use `ASSERT` if it is impossible to
|
||||||
continue test execution or if it does not make much sense. Later in
|
continue test execution or if it does not make much sense. Later in
|
||||||
the text, `EXPECT` forms will be used to refer to both
|
the text, `EXPECT` forms will be used to refer to both
|
||||||
`ASSERT/EXPECT`.
|
`ASSERT/EXPECT`.
|
||||||
@@ -160,7 +160,7 @@ value of the difference between `v1` and `v2` is not greater than `eps`.
|
|||||||
|
|
||||||
Use string special macros for C strings comparisons.
|
Use string special macros for C strings comparisons.
|
||||||
|
|
||||||
`EXPECT_EQ` just compares pointers’ values, which is hardly what one
|
`EXPECT_EQ` just compares pointers' values, which is hardly what one
|
||||||
wants comparing C strings. GoogleTest provides `EXPECT_STREQ` and
|
wants comparing C strings. GoogleTest provides `EXPECT_STREQ` and
|
||||||
`EXPECT_STRNE` macros to compare C string contents. There are also
|
`EXPECT_STRNE` macros to compare C string contents. There are also
|
||||||
case-insensitive versions `EXPECT_STRCASEEQ`, `EXPECT_STRCASENE`.
|
case-insensitive versions `EXPECT_STRCASEEQ`, `EXPECT_STRCASENE`.
|
||||||
@@ -226,7 +226,7 @@ subsystem, etc.
|
|||||||
|
|
||||||
This naming scheme helps to find tests, filter them and simplifies
|
This naming scheme helps to find tests, filter them and simplifies
|
||||||
test failure analysis. For example, class `Foo` - test group `Foo`,
|
test failure analysis. For example, class `Foo` - test group `Foo`,
|
||||||
compiler logging subsystem - test group `CompilerLogging`, G1 GC — test
|
compiler logging subsystem - test group `CompilerLogging`, G1 GC - test
|
||||||
group `G1GC`, and so forth.
|
group `G1GC`, and so forth.
|
||||||
|
|
||||||
### Filename
|
### Filename
|
||||||
@@ -287,7 +287,7 @@ Fixture classes should be named after tested classes, subsystems, etc
|
|||||||
|
|
||||||
All test purpose friends should have either `Test` or `Testable` suffix.
|
All test purpose friends should have either `Test` or `Testable` suffix.
|
||||||
|
|
||||||
It greatly simplifies understanding of friendship’s purpose and allows
|
It greatly simplifies understanding of friendship's purpose and allows
|
||||||
statically check that private members are not exposed unexpectedly.
|
statically check that private members are not exposed unexpectedly.
|
||||||
Having `FooTest` as a friend of `Foo` without any comments will be
|
Having `FooTest` as a friend of `Foo` without any comments will be
|
||||||
understood as a necessary evil to get testability.
|
understood as a necessary evil to get testability.
|
||||||
@@ -397,7 +397,7 @@ and filter out inapplicable tests.
|
|||||||
Restore changed flags.
|
Restore changed flags.
|
||||||
|
|
||||||
It is quite common for tests to configure JVM in a certain way
|
It is quite common for tests to configure JVM in a certain way
|
||||||
changing flags’ values. GoogleTest provides two ways to set up
|
changing flags' values. GoogleTest provides two ways to set up
|
||||||
environment before a test and restore it afterward: using either
|
environment before a test and restore it afterward: using either
|
||||||
constructor and destructor or `SetUp` and `TearDown` functions. Both ways
|
constructor and destructor or `SetUp` and `TearDown` functions. Both ways
|
||||||
require to use a test fixture class, which sometimes is too wordy. The
|
require to use a test fixture class, which sometimes is too wordy. The
|
||||||
@@ -406,7 +406,7 @@ be used in such cases to restore/set values.
|
|||||||
|
|
||||||
Caveats:
|
Caveats:
|
||||||
|
|
||||||
* Changing a flag’s value could break the invariants between flags' values and hence could lead to unexpected/unsupported JVM state.
|
* Changing a flag's value could break the invariants between flags' values and hence could lead to unexpected/unsupported JVM state.
|
||||||
|
|
||||||
* `FLAG_SET_*` macros can change more than one flag (in order to
|
* `FLAG_SET_*` macros can change more than one flag (in order to
|
||||||
maintain invariants) so it is hard to predict what flags will be
|
maintain invariants) so it is hard to predict what flags will be
|
||||||
|
|||||||
127
doc/starting-next-release.html
Normal file
127
doc/starting-next-release.html
Normal file
@@ -0,0 +1,127 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="generator" content="pandoc" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
||||||
|
<title>Explanation of start of release changes</title>
|
||||||
|
<style>
|
||||||
|
code{white-space: pre-wrap;}
|
||||||
|
span.smallcaps{font-variant: small-caps;}
|
||||||
|
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
||||||
|
div.column{flex: auto; overflow-x: auto;}
|
||||||
|
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
||||||
|
/* The extra [class] is a hack that increases specificity enough to
|
||||||
|
override a similar rule in reveal.js */
|
||||||
|
ul.task-list[class]{list-style: none;}
|
||||||
|
ul.task-list li input[type="checkbox"] {
|
||||||
|
font-size: inherit;
|
||||||
|
width: 0.8em;
|
||||||
|
margin: 0 0.8em 0.2em -1.6em;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
|
||||||
|
</style>
|
||||||
|
<link rel="stylesheet" href="../make/data/docs-resources/resources/jdk-default.css" />
|
||||||
|
<!--[if lt IE 9]>
|
||||||
|
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
|
||||||
|
<![endif]-->
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<header id="title-block-header">
|
||||||
|
<h1 class="title">Explanation of start of release changes</h1>
|
||||||
|
</header>
|
||||||
|
<nav id="TOC" role="doc-toc">
|
||||||
|
<ul>
|
||||||
|
<li><a href="#overview" id="toc-overview">Overview</a></li>
|
||||||
|
<li><a href="#details-and-file-updates"
|
||||||
|
id="toc-details-and-file-updates">Details and file updates</a>
|
||||||
|
<ul>
|
||||||
|
<li><a href="#meta-data-files" id="toc-meta-data-files">Meta-data
|
||||||
|
files</a></li>
|
||||||
|
<li><a href="#src-files" id="toc-src-files"><code>src</code>
|
||||||
|
files</a></li>
|
||||||
|
<li><a href="#test-files" id="toc-test-files"><code>test</code>
|
||||||
|
files</a></li>
|
||||||
|
</ul></li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
<h2 id="overview">Overview</h2>
|
||||||
|
<p>The start of release changes, the changes that turn JDK <em>N</em>
|
||||||
|
into JDK (<em>N</em>+1), are primarily small updates to various files
|
||||||
|
along with new files to store symbol information to allow
|
||||||
|
<code>javac --release N ...</code> to run on JDK (<em>N</em>+1).</p>
|
||||||
|
<p>The updates include changes to files holding meta-data about the
|
||||||
|
release, files under the <code>src</code> directory for API and tooling
|
||||||
|
updates, and incidental updates under the <code>test</code>
|
||||||
|
directory.</p>
|
||||||
|
<h2 id="details-and-file-updates">Details and file updates</h2>
|
||||||
|
<p>As a matter of policy, there are a number of semantically distinct
|
||||||
|
concepts which get incremented separately at the start of a new
|
||||||
|
release:</p>
|
||||||
|
<ul>
|
||||||
|
<li>Feature value of <code>Runtime.version()</code></li>
|
||||||
|
<li>Highest source version modeled by
|
||||||
|
<code>javax.lang.model.SourceVersion</code></li>
|
||||||
|
<li>Highest class file format major version recognized by the
|
||||||
|
platform</li>
|
||||||
|
<li>Highest
|
||||||
|
<code>-source</code>/<code>-target</code>/<code>--release</code>
|
||||||
|
argument recognized by <code>javac</code> and related tools</li>
|
||||||
|
</ul>
|
||||||
|
<p>The expected file updates are listed below. Additional files may need
|
||||||
|
to be updated for a particular release.</p>
|
||||||
|
<h3 id="meta-data-files">Meta-data files</h3>
|
||||||
|
<ul>
|
||||||
|
<li><code>jcheck/conf</code>: update meta-data used by
|
||||||
|
<code>jcheck</code> and the Skara tooling</li>
|
||||||
|
<li><code>make/conf/version-numbers.conf</code>: update to meta-data
|
||||||
|
used in the build</li>
|
||||||
|
</ul>
|
||||||
|
<h3 id="src-files"><code>src</code> files</h3>
|
||||||
|
<ul>
|
||||||
|
<li><code>src/hotspot/share/classfile/classFileParser.cpp</code>: add a
|
||||||
|
<code>#define</code> for the new version</li>
|
||||||
|
<li><code>src/java.base/share/classes/java/lang/classfile/ClassFile.java</code>:
|
||||||
|
add a constant for the new class file format version</li>
|
||||||
|
<li><code>src/java.base/share/classes/java/lang/reflect/ClassFileFormatVersion.java</code>:
|
||||||
|
add an <code>enum</code> constant for the new class file format
|
||||||
|
version</li>
|
||||||
|
<li><code>src/java.compiler/share/classes/javax/lang/model/SourceVersion.java</code>:
|
||||||
|
add an <code>enum</code> constant for the new source version</li>
|
||||||
|
<li><code>src/java.compiler/share/classes/javax/lang/model/util/*</code>
|
||||||
|
visitors: Update <code>@SupportedSourceVersion</code> annotations to
|
||||||
|
latest value. Note this update is done in lieu of introducing another
|
||||||
|
set of visitors for each Java SE release.</li>
|
||||||
|
<li><code>src/jdk.compiler/share/classes/com/sun/tools/javac/code/Source.java</code>:
|
||||||
|
add an <code>enum</code> constant for the new source version internal to
|
||||||
|
<code>javac</code></li>
|
||||||
|
<li><code>src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassFile.java</code>:
|
||||||
|
add an <code>enum</code> constant for the new class file format version
|
||||||
|
internal to <code>javac</code></li>
|
||||||
|
<li><code>src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Target.java</code>:
|
||||||
|
add an <code>enum</code> constant for the new target version internal to
|
||||||
|
<code>javac</code></li>
|
||||||
|
<li><code>src/jdk.compiler/share/classes/com/sun/tools/javac/processing/PrintingProcessor.java</code>
|
||||||
|
update printing processor to support the new source version</li>
|
||||||
|
<li>The symbol information for <code>--release</code> is stored as new
|
||||||
|
text files in the <code>src/jdk.compiler/share/data/symbols</code>
|
||||||
|
directory, one file per module. The README file in that directory
|
||||||
|
contains directions on how to create the files.</li>
|
||||||
|
</ul>
|
||||||
|
<h3 id="test-files"><code>test</code> files</h3>
|
||||||
|
<ul>
|
||||||
|
<li><code>test/langtools/tools/javac/api/TestGetSourceVersions.java</code>:
|
||||||
|
add new <code>SourceVersion</code> constant to test matrix.</li>
|
||||||
|
<li><code>test/langtools/tools/javac/classfiles/ClassVersionChecker.java</code>:
|
||||||
|
add new enum constant for the new class file version</li>
|
||||||
|
<li><code>test/langtools/tools/javac/lib/JavacTestingAbstractProcessor.java</code>
|
||||||
|
update annotation processor extended by <code>javac</code> tests to
|
||||||
|
cover the new source version</li>
|
||||||
|
<li><code>test/langtools/tools/javac/preview/classReaderTest/Client.nopreview.out</code>
|
||||||
|
and
|
||||||
|
<code>test/langtools/tools/javac/preview/classReaderTest/Client.preview.out</code>:
|
||||||
|
update expected messages for preview errors and warnings</li>
|
||||||
|
</ul>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
68
doc/starting-next-release.md
Normal file
68
doc/starting-next-release.md
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
% Explanation of start of release changes
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
The start of release changes, the changes that turn JDK _N_ into JDK
|
||||||
|
(_N_+1), are primarily small updates to various files along with new files to
|
||||||
|
store symbol information to allow `javac --release N ...` to run on
|
||||||
|
JDK (_N_+1).
|
||||||
|
|
||||||
|
The updates include changes to files holding meta-data about the
|
||||||
|
release, files under the `src` directory for API and tooling updates,
|
||||||
|
and incidental updates under the `test` directory.
|
||||||
|
|
||||||
|
## Details and file updates
|
||||||
|
|
||||||
|
As a matter of policy, there are a number of semantically distinct
|
||||||
|
concepts which get incremented separately at the start of a new
|
||||||
|
release:
|
||||||
|
|
||||||
|
* Feature value of `Runtime.version()`
|
||||||
|
* Highest source version modeled by `javax.lang.model.SourceVersion`
|
||||||
|
* Highest class file format major version recognized by the platform
|
||||||
|
* Highest `-source`/`-target`/`--release` argument recognized by
|
||||||
|
`javac` and related tools
|
||||||
|
|
||||||
|
The expected file updates are listed below. Additional files may need
|
||||||
|
to be updated for a particular release.
|
||||||
|
|
||||||
|
### Meta-data files
|
||||||
|
|
||||||
|
* `jcheck/conf`: update meta-data used by `jcheck` and the Skara tooling
|
||||||
|
* `make/conf/version-numbers.conf`: update to meta-data used in the build
|
||||||
|
|
||||||
|
### `src` files
|
||||||
|
|
||||||
|
* `src/hotspot/share/classfile/classFileParser.cpp`: add a `#define`
|
||||||
|
for the new version
|
||||||
|
* `src/java.base/share/classes/java/lang/classfile/ClassFile.java`:
|
||||||
|
add a constant for the new class file format version
|
||||||
|
* `src/java.base/share/classes/java/lang/reflect/ClassFileFormatVersion.java`:
|
||||||
|
add an `enum` constant for the new class file format version
|
||||||
|
* `src/java.compiler/share/classes/javax/lang/model/SourceVersion.java`:
|
||||||
|
add an `enum` constant for the new source version
|
||||||
|
* `src/java.compiler/share/classes/javax/lang/model/util/*` visitors: Update
|
||||||
|
`@SupportedSourceVersion` annotations to latest value. Note this update
|
||||||
|
is done in lieu of introducing another set of visitors for each Java
|
||||||
|
SE release.
|
||||||
|
* `src/jdk.compiler/share/classes/com/sun/tools/javac/code/Source.java`:
|
||||||
|
add an `enum` constant for the new source version internal to `javac`
|
||||||
|
* `src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassFile.java`:
|
||||||
|
add an `enum` constant for the new class file format version internal to `javac`
|
||||||
|
* `src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Target.java`:
|
||||||
|
add an `enum` constant for the new target version internal to `javac`
|
||||||
|
* `src/jdk.compiler/share/classes/com/sun/tools/javac/processing/PrintingProcessor.java`
|
||||||
|
update printing processor to support the new source version
|
||||||
|
* The symbol information for `--release` is stored as new text files in the
|
||||||
|
`src/jdk.compiler/share/data/symbols` directory, one file per
|
||||||
|
module. The README file in that directory contains directions on how
|
||||||
|
to create the files.
|
||||||
|
|
||||||
|
### `test` files
|
||||||
|
|
||||||
|
* `test/langtools/tools/javac/api/TestGetSourceVersions.java`: add new `SourceVersion` constant to test matrix.
|
||||||
|
* `test/langtools/tools/javac/classfiles/ClassVersionChecker.java`: add new enum constant for the new class file version
|
||||||
|
* `test/langtools/tools/javac/lib/JavacTestingAbstractProcessor.java`
|
||||||
|
update annotation processor extended by `javac` tests to cover the new source version
|
||||||
|
* `test/langtools/tools/javac/preview/classReaderTest/Client.nopreview.out` and `test/langtools/tools/javac/preview/classReaderTest/Client.preview.out`: update expected messages for preview errors and warnings
|
||||||
|
|
||||||
@@ -72,6 +72,11 @@ id="toc-notes-for-specific-tests">Notes for Specific Tests</a>
|
|||||||
<li><a href="#non-us-locale" id="toc-non-us-locale">Non-US
|
<li><a href="#non-us-locale" id="toc-non-us-locale">Non-US
|
||||||
locale</a></li>
|
locale</a></li>
|
||||||
<li><a href="#pkcs11-tests" id="toc-pkcs11-tests">PKCS11 Tests</a></li>
|
<li><a href="#pkcs11-tests" id="toc-pkcs11-tests">PKCS11 Tests</a></li>
|
||||||
|
</ul></li>
|
||||||
|
<li><a href="#testing-ahead-of-time-optimizations"
|
||||||
|
id="toc-testing-ahead-of-time-optimizations">### Testing Ahead-of-time
|
||||||
|
Optimizations</a>
|
||||||
|
<ul>
|
||||||
<li><a href="#testing-with-alternative-security-providers"
|
<li><a href="#testing-with-alternative-security-providers"
|
||||||
id="toc-testing-with-alternative-security-providers">Testing with
|
id="toc-testing-with-alternative-security-providers">Testing with
|
||||||
alternative security providers</a></li>
|
alternative security providers</a></li>
|
||||||
@@ -411,6 +416,13 @@ instrumentation
|
|||||||
special target <code>jcov-test</code> instead of <code>test</code>, e.g.
|
special target <code>jcov-test</code> instead of <code>test</code>, e.g.
|
||||||
<code>make jcov-test TEST=jdk_lang</code>. This will make sure the JCov
|
<code>make jcov-test TEST=jdk_lang</code>. This will make sure the JCov
|
||||||
image is built, and that JCov reporting is enabled.</p>
|
image is built, and that JCov reporting is enabled.</p>
|
||||||
|
<p>To include JCov coverage for just a subset of all modules, you can
|
||||||
|
use the <code>--with-jcov-modules</code> arguments to
|
||||||
|
<code>configure</code>, e.g.
|
||||||
|
<code>--with-jcov-modules=jdk.compiler,java.desktop</code>.</p>
|
||||||
|
<p>For more fine-grained control, you can pass arbitrary filters to JCov
|
||||||
|
using <code>--with-jcov-filters</code>, and you can specify a specific
|
||||||
|
JDK to instrument using <code>--with-jcov-input-jdk</code>.</p>
|
||||||
<p>The JCov report is stored in
|
<p>The JCov report is stored in
|
||||||
<code>build/$BUILD/test-results/jcov-output/report</code>.</p>
|
<code>build/$BUILD/test-results/jcov-output/report</code>.</p>
|
||||||
<p>Please note that running with JCov reporting can be very memory
|
<p>Please note that running with JCov reporting can be very memory
|
||||||
@@ -589,6 +601,37 @@ element of the appropriate <code>@Artifact</code> class. (See
|
|||||||
JTREG="JAVA_OPTIONS=-Djdk.test.lib.artifacts.nsslib-linux_aarch64=/path/to/NSS-libs"</code></pre>
|
JTREG="JAVA_OPTIONS=-Djdk.test.lib.artifacts.nsslib-linux_aarch64=/path/to/NSS-libs"</code></pre>
|
||||||
<p>For more notes about the PKCS11 tests, please refer to
|
<p>For more notes about the PKCS11 tests, please refer to
|
||||||
test/jdk/sun/security/pkcs11/README.</p>
|
test/jdk/sun/security/pkcs11/README.</p>
|
||||||
|
<h2 id="testing-ahead-of-time-optimizations">### Testing Ahead-of-time
|
||||||
|
Optimizations</h2>
|
||||||
|
<p>One way to improve test coverage of ahead-of-time (AOT) optimizations
|
||||||
|
in the JDK is to run existing jtreg test cases in a special "AOT_JDK"
|
||||||
|
mode. Example:</p>
|
||||||
|
<pre><code>$ make test JTREG="AOT_JDK=onestep" \
|
||||||
|
TEST=open/test/hotspot/jtreg/runtime/invokedynamic</code></pre>
|
||||||
|
<p>In this testing mode, we first perform an AOT training run (see
|
||||||
|
https://openjdk.org/jeps/483) of a special test program (<a
|
||||||
|
href="../test/setup_aot/TestSetupAOT.java">test/setup_aot/TestSetupAOT.java</a>)
|
||||||
|
that accesses about 5,0000 classes in the JDK core libraries.
|
||||||
|
Optimization artifacts for these classes (such as pre-linked lambda
|
||||||
|
expressions, execution profiles, and pre-generated native code) are
|
||||||
|
stored into an AOT cache file, which will be used by all the JVMs
|
||||||
|
launched by the selected jtreg test cases.</p>
|
||||||
|
<p>When the jtreg tests call into the core libraries classes that are in
|
||||||
|
the AOT cache, we will be able to test the AOT optimizations that were
|
||||||
|
used on those classes.</p>
|
||||||
|
<p>Please note that not all existing jtreg test cases can be executed
|
||||||
|
with the AOT_JDK mode. See <a
|
||||||
|
href="../test/hotspot/jtreg/ProblemList-AotJdk.txt">test/hotspot/jtreg/ProblemList-AotJdk.txt</a>
|
||||||
|
and <a
|
||||||
|
href="../test/jdk/ProblemList-AotJdk.txt">test/jdk/ProblemList-AotJdk.txt</a>.</p>
|
||||||
|
<p>Also, test cases that were written specifically to test AOT, such as
|
||||||
|
the tests under <a
|
||||||
|
href="../test/hotspot/jtreg/runtime/cds/">test/hotspot/jtreg/runtime/cds</a>,
|
||||||
|
cannot be executed with the AOT_JDK mode.</p>
|
||||||
|
<p>Valid values for <code>AOT_JDK</code> are <code>onestep</code> and
|
||||||
|
<code>twostep</code>. These control how the AOT cache is generated. See
|
||||||
|
https://openjdk.org/jeps/514 for details. All other values are
|
||||||
|
ignored.</p>
|
||||||
<h3 id="testing-with-alternative-security-providers">Testing with
|
<h3 id="testing-with-alternative-security-providers">Testing with
|
||||||
alternative security providers</h3>
|
alternative security providers</h3>
|
||||||
<p>Some security tests use a hardcoded provider for
|
<p>Some security tests use a hardcoded provider for
|
||||||
|
|||||||
@@ -345,6 +345,14 @@ The simplest way to run tests with JCov coverage report is to use the special
|
|||||||
target `jcov-test` instead of `test`, e.g. `make jcov-test TEST=jdk_lang`. This
|
target `jcov-test` instead of `test`, e.g. `make jcov-test TEST=jdk_lang`. This
|
||||||
will make sure the JCov image is built, and that JCov reporting is enabled.
|
will make sure the JCov image is built, and that JCov reporting is enabled.
|
||||||
|
|
||||||
|
To include JCov coverage for just a subset of all modules, you can use the
|
||||||
|
`--with-jcov-modules` arguments to `configure`, e.g.
|
||||||
|
`--with-jcov-modules=jdk.compiler,java.desktop`.
|
||||||
|
|
||||||
|
For more fine-grained control, you can pass arbitrary filters to JCov using
|
||||||
|
`--with-jcov-filters`, and you can specify a specific JDK to instrument
|
||||||
|
using `--with-jcov-input-jdk`.
|
||||||
|
|
||||||
The JCov report is stored in `build/$BUILD/test-results/jcov-output/report`.
|
The JCov report is stored in `build/$BUILD/test-results/jcov-output/report`.
|
||||||
|
|
||||||
Please note that running with JCov reporting can be very memory intensive.
|
Please note that running with JCov reporting can be very memory intensive.
|
||||||
@@ -603,6 +611,43 @@ $ make test TEST="jtreg:sun/security/pkcs11/Secmod/AddTrustedCert.java" \
|
|||||||
For more notes about the PKCS11 tests, please refer to
|
For more notes about the PKCS11 tests, please refer to
|
||||||
test/jdk/sun/security/pkcs11/README.
|
test/jdk/sun/security/pkcs11/README.
|
||||||
|
|
||||||
|
### Testing Ahead-of-time Optimizations
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
One way to improve test coverage of ahead-of-time (AOT) optimizations in
|
||||||
|
the JDK is to run existing jtreg test cases in a special "AOT_JDK" mode.
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ make test JTREG="AOT_JDK=onestep" \
|
||||||
|
TEST=open/test/hotspot/jtreg/runtime/invokedynamic
|
||||||
|
```
|
||||||
|
|
||||||
|
In this testing mode, we first perform an AOT training run
|
||||||
|
(see https://openjdk.org/jeps/483) of a special test program
|
||||||
|
([test/setup_aot/TestSetupAOT.java](../test/setup_aot/TestSetupAOT.java))
|
||||||
|
that accesses about 5,0000 classes in the JDK core libraries.
|
||||||
|
Optimization artifacts for these classes (such as pre-linked
|
||||||
|
lambda expressions, execution profiles, and pre-generated native code)
|
||||||
|
are stored into an AOT cache file, which will be used by all the JVMs
|
||||||
|
launched by the selected jtreg test cases.
|
||||||
|
|
||||||
|
When the jtreg tests call into the core libraries classes that are in
|
||||||
|
the AOT cache, we will be able to test the AOT optimizations that were
|
||||||
|
used on those classes.
|
||||||
|
|
||||||
|
Please note that not all existing jtreg test cases can be executed with
|
||||||
|
the AOT_JDK mode. See
|
||||||
|
[test/hotspot/jtreg/ProblemList-AotJdk.txt](../test/hotspot/jtreg/ProblemList-AotJdk.txt)
|
||||||
|
and [test/jdk/ProblemList-AotJdk.txt](../test/jdk/ProblemList-AotJdk.txt).
|
||||||
|
|
||||||
|
Also, test cases that were written specifically to test AOT, such as the tests
|
||||||
|
under [test/hotspot/jtreg/runtime/cds](../test/hotspot/jtreg/runtime/cds/),
|
||||||
|
cannot be executed with the AOT_JDK mode.
|
||||||
|
|
||||||
|
Valid values for `AOT_JDK` are `onestep` and `twostep`. These control how
|
||||||
|
the AOT cache is generated. See https://openjdk.org/jeps/514 for details.
|
||||||
|
All other values are ignored.
|
||||||
|
|
||||||
### Testing with alternative security providers
|
### Testing with alternative security providers
|
||||||
|
|
||||||
Some security tests use a hardcoded provider for `KeyFactory`, `Cipher`,
|
Some security tests use a hardcoded provider for `KeyFactory`, `Cipher`,
|
||||||
|
|||||||
@@ -174,9 +174,11 @@ else
|
|||||||
JRE_IMAGE_HOMEDIR := $(JRE_IMAGE_DIR)
|
JRE_IMAGE_HOMEDIR := $(JRE_IMAGE_DIR)
|
||||||
JDK_BUNDLE_SUBDIR := jdk-$(VERSION_NUMBER)
|
JDK_BUNDLE_SUBDIR := jdk-$(VERSION_NUMBER)
|
||||||
JRE_BUNDLE_SUBDIR := jre-$(VERSION_NUMBER)
|
JRE_BUNDLE_SUBDIR := jre-$(VERSION_NUMBER)
|
||||||
|
STATIC_JDK_BUNDLE_SUBDIR := static-jdk-$(VERSION_NUMBER)
|
||||||
ifneq ($(DEBUG_LEVEL), release)
|
ifneq ($(DEBUG_LEVEL), release)
|
||||||
JDK_BUNDLE_SUBDIR := $(JDK_BUNDLE_SUBDIR)/$(DEBUG_LEVEL)
|
JDK_BUNDLE_SUBDIR := $(JDK_BUNDLE_SUBDIR)/$(DEBUG_LEVEL)
|
||||||
JRE_BUNDLE_SUBDIR := $(JRE_BUNDLE_SUBDIR)/$(DEBUG_LEVEL)
|
JRE_BUNDLE_SUBDIR := $(JRE_BUNDLE_SUBDIR)/$(DEBUG_LEVEL)
|
||||||
|
STATIC_JDK_BUNDLE_SUBDIR := $(STATIC_JDK_BUNDLE_SUBDIR)/$(DEBUG_LEVEL)
|
||||||
endif
|
endif
|
||||||
# In certain situations, the JDK_IMAGE_DIR points to an image without the
|
# In certain situations, the JDK_IMAGE_DIR points to an image without the
|
||||||
# the symbols and demos. If so, the symobls and demos can be found in a
|
# the symbols and demos. If so, the symobls and demos can be found in a
|
||||||
@@ -242,7 +244,10 @@ ifneq ($(filter product-bundles% legacy-bundles, $(MAKECMDGOALS)), )
|
|||||||
)
|
)
|
||||||
|
|
||||||
JDK_SYMBOLS_BUNDLE_FILES := \
|
JDK_SYMBOLS_BUNDLE_FILES := \
|
||||||
$(call FindFiles, $(SYMBOLS_IMAGE_DIR))
|
$(filter-out \
|
||||||
|
%.stripped.pdb, \
|
||||||
|
$(call FindFiles, $(SYMBOLS_IMAGE_DIR)) \
|
||||||
|
)
|
||||||
|
|
||||||
TEST_DEMOS_BUNDLE_FILES := $(filter $(JDK_DEMOS_IMAGE_HOMEDIR)/demo/%, \
|
TEST_DEMOS_BUNDLE_FILES := $(filter $(JDK_DEMOS_IMAGE_HOMEDIR)/demo/%, \
|
||||||
$(ALL_JDK_DEMOS_FILES))
|
$(ALL_JDK_DEMOS_FILES))
|
||||||
@@ -497,6 +502,21 @@ ifneq ($(filter static-libs-graal-bundles, $(MAKECMDGOALS)), )
|
|||||||
STATIC_LIBS_GRAAL_TARGETS += $(BUILD_STATIC_LIBS_GRAAL_BUNDLE)
|
STATIC_LIBS_GRAAL_TARGETS += $(BUILD_STATIC_LIBS_GRAAL_BUNDLE)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
#################################################################################
|
||||||
|
|
||||||
|
ifneq ($(filter static-jdk-bundles, $(MAKECMDGOALS)), )
|
||||||
|
STATIC_JDK_BUNDLE_FILES := $(call FindFiles, $(STATIC_JDK_IMAGE_DIR))
|
||||||
|
|
||||||
|
$(eval $(call SetupBundleFile, BUILD_STATIC_JDK_BUNDLE, \
|
||||||
|
BUNDLE_NAME := $(STATIC_JDK_BUNDLE_NAME), \
|
||||||
|
FILES := $(STATIC_JDK_BUNDLE_FILES), \
|
||||||
|
BASE_DIRS := $(STATIC_JDK_IMAGE_DIR), \
|
||||||
|
SUBDIR := $(STATIC_JDK_BUNDLE_SUBDIR), \
|
||||||
|
))
|
||||||
|
|
||||||
|
STATIC_JDK_TARGETS += $(BUILD_STATIC_JDK_BUNDLE)
|
||||||
|
endif
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
product-bundles: $(PRODUCT_TARGETS)
|
product-bundles: $(PRODUCT_TARGETS)
|
||||||
@@ -507,11 +527,12 @@ docs-javase-bundles: $(DOCS_JAVASE_TARGETS)
|
|||||||
docs-reference-bundles: $(DOCS_REFERENCE_TARGETS)
|
docs-reference-bundles: $(DOCS_REFERENCE_TARGETS)
|
||||||
static-libs-bundles: $(STATIC_LIBS_TARGETS)
|
static-libs-bundles: $(STATIC_LIBS_TARGETS)
|
||||||
static-libs-graal-bundles: $(STATIC_LIBS_GRAAL_TARGETS)
|
static-libs-graal-bundles: $(STATIC_LIBS_GRAAL_TARGETS)
|
||||||
|
static-jdk-bundles: $(STATIC_JDK_TARGETS)
|
||||||
jcov-bundles: $(JCOV_TARGETS)
|
jcov-bundles: $(JCOV_TARGETS)
|
||||||
|
|
||||||
.PHONY: product-bundles test-bundles \
|
.PHONY: product-bundles test-bundles \
|
||||||
docs-jdk-bundles docs-javase-bundles docs-reference-bundles \
|
docs-jdk-bundles docs-javase-bundles docs-reference-bundles \
|
||||||
static-libs-bundles static-libs-graal-bundles jcov-bundles
|
static-libs-bundles static-libs-graal-bundles static-jdk-bundles jcov-bundles
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|||||||
@@ -95,14 +95,16 @@ define SetupInterimModule
|
|||||||
SRC := $(BUILDTOOLS_OUTPUTDIR)/gensrc/$1.interim \
|
SRC := $(BUILDTOOLS_OUTPUTDIR)/gensrc/$1.interim \
|
||||||
$$(wildcard $(SUPPORT_OUTPUTDIR)/gensrc/$1) \
|
$$(wildcard $(SUPPORT_OUTPUTDIR)/gensrc/$1) \
|
||||||
$(TOPDIR)/src/$1/share/classes, \
|
$(TOPDIR)/src/$1/share/classes, \
|
||||||
EXCLUDES := sun javax/tools/snippet-files, \
|
EXCLUDES := sun, \
|
||||||
EXCLUDE_FILES := $(TOPDIR)/src/$1/share/classes/module-info.java \
|
EXCLUDE_FILES := $(TOPDIR)/src/$1/share/classes/module-info.java \
|
||||||
$(TOPDIR)/src/$1/share/classes/javax/tools/ToolProvider.java \
|
$(TOPDIR)/src/$1/share/classes/javax/tools/ToolProvider.java \
|
||||||
$(TOPDIR)/src/$1/share/classes/com/sun/tools/javac/launcher/Main.java \
|
$(TOPDIR)/src/$1/share/classes/com/sun/tools/javac/launcher/Main.java \
|
||||||
|
$(TOPDIR)/src/$1/share/classes/com/sun/tools/javac/launcher/MemoryClassLoader.java \
|
||||||
$(TOPDIR)/src/$1/share/classes/com/sun/tools/javac/launcher/MemoryContext.java \
|
$(TOPDIR)/src/$1/share/classes/com/sun/tools/javac/launcher/MemoryContext.java \
|
||||||
$(TOPDIR)/src/$1/share/classes/com/sun/tools/javac/launcher/MemoryModuleFinder.java \
|
$(TOPDIR)/src/$1/share/classes/com/sun/tools/javac/launcher/MemoryModuleFinder.java \
|
||||||
$(TOPDIR)/src/$1/share/classes/com/sun/tools/javac/launcher/SourceLauncher.java \
|
$(TOPDIR)/src/$1/share/classes/com/sun/tools/javac/launcher/SourceLauncher.java \
|
||||||
Standard.java, \
|
Standard.java, \
|
||||||
|
EXCLUDE_PATTERNS := -files, \
|
||||||
EXTRA_FILES := $(BUILDTOOLS_OUTPUTDIR)/gensrc/$1.interim/module-info.java \
|
EXTRA_FILES := $(BUILDTOOLS_OUTPUTDIR)/gensrc/$1.interim/module-info.java \
|
||||||
$($1.interim_EXTRA_FILES), \
|
$($1.interim_EXTRA_FILES), \
|
||||||
COPY := .gif .png .xml .css .svg .js .js.template .txt .woff .woff2 javax.tools.JavaCompilerTool, \
|
COPY := .gif .png .xml .css .svg .js .js.template .txt .woff .woff2 javax.tools.JavaCompilerTool, \
|
||||||
|
|||||||
@@ -113,6 +113,7 @@ $(eval $(call SetupJavaCompilation, $(MODULE), \
|
|||||||
DISABLED_WARNINGS := $(DISABLED_WARNINGS_java), \
|
DISABLED_WARNINGS := $(DISABLED_WARNINGS_java), \
|
||||||
EXCLUDES := $(EXCLUDES), \
|
EXCLUDES := $(EXCLUDES), \
|
||||||
EXCLUDE_FILES := $(EXCLUDE_FILES), \
|
EXCLUDE_FILES := $(EXCLUDE_FILES), \
|
||||||
|
EXCLUDE_PATTERNS := -files, \
|
||||||
KEEP_ALL_TRANSLATIONS := $(KEEP_ALL_TRANSLATIONS), \
|
KEEP_ALL_TRANSLATIONS := $(KEEP_ALL_TRANSLATIONS), \
|
||||||
JAVAC_FLAGS := \
|
JAVAC_FLAGS := \
|
||||||
$(DOCLINT) \
|
$(DOCLINT) \
|
||||||
|
|||||||
@@ -34,21 +34,28 @@ else
|
|||||||
JCOV_INPUT_IMAGE_DIR := $(JDK_IMAGE_DIR)
|
JCOV_INPUT_IMAGE_DIR := $(JDK_IMAGE_DIR)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
JCOV_SUPPORT_DIR := $(SUPPORT_OUTPUTDIR)/jcov
|
||||||
|
|
||||||
#moving instrumented jdk image in and out of jcov_temp because of CODETOOLS-7902299
|
#moving instrumented jdk image in and out of jcov_temp because of CODETOOLS-7902299
|
||||||
JCOV_TEMP := $(SUPPORT_OUTPUTDIR)/jcov_temp
|
JCOV_TEMP := $(JCOV_SUPPORT_DIR)/temp
|
||||||
|
|
||||||
|
ifneq ($(JCOV_MODULES), )
|
||||||
|
JCOV_MODULES_FILTER := $(foreach m, $(JCOV_MODULES), -include_module $m)
|
||||||
|
endif
|
||||||
|
|
||||||
$(JCOV_IMAGE_DIR)/release: $(JCOV_INPUT_IMAGE_DIR)/release
|
$(JCOV_IMAGE_DIR)/release: $(JCOV_INPUT_IMAGE_DIR)/release
|
||||||
$(call LogWarn, Creating instrumented jdk image with JCov)
|
$(call LogWarn, Creating instrumented jdk image with JCov)
|
||||||
$(call MakeDir, $(JCOV_TEMP) $(IMAGES_OUTPUTDIR))
|
$(call MakeDir, $(JCOV_TEMP) $(IMAGES_OUTPUTDIR))
|
||||||
$(RM) -r $(JCOV_IMAGE_DIR) $(JCOV_TEMP)/*
|
$(RM) -r $(JCOV_IMAGE_DIR) $(JCOV_TEMP)/*
|
||||||
$(CP) -r $(JCOV_INPUT_IMAGE_DIR) $(JCOV_TEMP)/$(JCOV_IMAGE_SUBDIR)
|
$(CP) -r $(JCOV_INPUT_IMAGE_DIR) $(JCOV_TEMP)/$(JCOV_IMAGE_SUBDIR)
|
||||||
$(JAVA) -Xmx3g -jar $(JCOV_HOME)/lib/jcov.jar JREInstr \
|
$(call ExecuteWithLog, $(JCOV_SUPPORT_DIR)/run-jcov, \
|
||||||
|
$(JAVA) -Xmx3g -jar $(JCOV_HOME)/lib/jcov.jar JREInstr \
|
||||||
-t $(JCOV_TEMP)/$(JCOV_IMAGE_SUBDIR)/template.xml \
|
-t $(JCOV_TEMP)/$(JCOV_IMAGE_SUBDIR)/template.xml \
|
||||||
-rt $(JCOV_HOME)/lib/jcov_network_saver.jar \
|
-rt $(JCOV_HOME)/lib/jcov_network_saver.jar \
|
||||||
-exclude 'java.lang.Object' \
|
-exclude 'java.lang.Object' \
|
||||||
-exclude jdk.test.Main -exclude '**\$Proxy*' \
|
-exclude jdk.test.Main -exclude '**\$Proxy*' \
|
||||||
$(JCOV_FILTERS) \
|
$(JCOV_MODULES_FILTER) $(JCOV_FILTERS) \
|
||||||
$(JCOV_TEMP)/$(JCOV_IMAGE_SUBDIR)
|
$(JCOV_TEMP)/$(JCOV_IMAGE_SUBDIR))
|
||||||
$(MV) $(JCOV_TEMP)/$(JCOV_IMAGE_SUBDIR) $(JCOV_IMAGE_DIR)
|
$(MV) $(JCOV_TEMP)/$(JCOV_IMAGE_SUBDIR) $(JCOV_IMAGE_DIR)
|
||||||
$(RMDIR) $(JCOV_TEMP)
|
$(RMDIR) $(JCOV_TEMP)
|
||||||
|
|
||||||
|
|||||||
@@ -92,20 +92,16 @@ REFERENCE_TAGS := $(JAVADOC_TAGS)
|
|||||||
JAVADOC_DISABLED_DOCLINT_WARNINGS := missing
|
JAVADOC_DISABLED_DOCLINT_WARNINGS := missing
|
||||||
JAVADOC_DISABLED_DOCLINT_PACKAGES := org.w3c.* javax.smartcardio
|
JAVADOC_DISABLED_DOCLINT_PACKAGES := org.w3c.* javax.smartcardio
|
||||||
|
|
||||||
# Allow overriding on the command line
|
|
||||||
# (intentionally sharing name with the javac option)
|
|
||||||
JAVA_WARNINGS_ARE_ERRORS ?= -Werror
|
|
||||||
|
|
||||||
# The initial set of options for javadoc
|
# The initial set of options for javadoc
|
||||||
JAVADOC_OPTIONS := -use -keywords -notimestamp \
|
JAVADOC_OPTIONS := -use -keywords -notimestamp \
|
||||||
-serialwarn -encoding ISO-8859-1 -docencoding UTF-8 -breakiterator \
|
-serialwarn -encoding utf-8 -docencoding utf-8 -breakiterator \
|
||||||
-splitIndex --system none -javafx --expand-requires transitive \
|
-splitIndex --system none -javafx --expand-requires transitive \
|
||||||
--override-methods=summary
|
--override-methods=summary
|
||||||
|
|
||||||
# The reference options must stay stable to allow for comparisons across the
|
# The reference options must stay stable to allow for comparisons across the
|
||||||
# development cycle.
|
# development cycle.
|
||||||
REFERENCE_OPTIONS := -XDignore.symbol.file=true -use -keywords -notimestamp \
|
REFERENCE_OPTIONS := -XDignore.symbol.file=true -use -keywords -notimestamp \
|
||||||
-serialwarn -encoding ISO-8859-1 -breakiterator -splitIndex --system none \
|
-serialwarn -encoding utf-8 -breakiterator -splitIndex --system none \
|
||||||
-html5 -javafx --expand-requires transitive
|
-html5 -javafx --expand-requires transitive
|
||||||
|
|
||||||
# Should we add DRAFT stamps to the generated javadoc?
|
# Should we add DRAFT stamps to the generated javadoc?
|
||||||
@@ -264,7 +260,7 @@ define create_overview_file
|
|||||||
$$($1_OVERVIEW): $$($1_OVERVIEW_VARDEPS_FILE)
|
$$($1_OVERVIEW): $$($1_OVERVIEW_VARDEPS_FILE)
|
||||||
$$(call LogInfo, Creating overview.html for $1)
|
$$(call LogInfo, Creating overview.html for $1)
|
||||||
$$(call MakeDir, $$(@D))
|
$$(call MakeDir, $$(@D))
|
||||||
$$(PRINTF) > $$@ '$$($1_OVERVIEW_TEXT)'
|
$$(PRINTF) "%s" '$$($1_OVERVIEW_TEXT)' > $$@
|
||||||
endef
|
endef
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
@@ -322,7 +318,9 @@ define SetupApiDocsGenerationBody
|
|||||||
# Ignore the doclint warnings in certain packages
|
# Ignore the doclint warnings in certain packages
|
||||||
$1_OPTIONS += -Xdoclint/package:$$(call CommaList, $$(addprefix -, \
|
$1_OPTIONS += -Xdoclint/package:$$(call CommaList, $$(addprefix -, \
|
||||||
$$(JAVADOC_DISABLED_DOCLINT_PACKAGES)))
|
$$(JAVADOC_DISABLED_DOCLINT_PACKAGES)))
|
||||||
$1_OPTIONS += $$(JAVA_WARNINGS_ARE_ERRORS)
|
ifeq ($$(JAVA_WARNINGS_AS_ERRORS), true)
|
||||||
|
$1_OPTIONS += -Werror
|
||||||
|
endif
|
||||||
|
|
||||||
$1_DOC_TITLE := $$($1_LONG_NAME)<br>Version $$(VERSION_SPECIFICATION) API \
|
$1_DOC_TITLE := $$($1_LONG_NAME)<br>Version $$(VERSION_SPECIFICATION) API \
|
||||||
Specification
|
Specification
|
||||||
@@ -542,7 +540,9 @@ $(eval $(call SetupApiDocsGeneration, REFERENCE_API, \
|
|||||||
# Format: space-delimited list of names, including at most one '%' as a
|
# Format: space-delimited list of names, including at most one '%' as a
|
||||||
# wildcard. Spec source files match if their filename or any enclosing folder
|
# wildcard. Spec source files match if their filename or any enclosing folder
|
||||||
# name matches one of the items in SPEC_FILTER.
|
# name matches one of the items in SPEC_FILTER.
|
||||||
SPEC_FILTER := %
|
ifeq ($(SPEC_FILTER), )
|
||||||
|
SPEC_FILTER := %
|
||||||
|
endif
|
||||||
|
|
||||||
ApplySpecFilter = \
|
ApplySpecFilter = \
|
||||||
$(strip $(foreach file, $(1), \
|
$(strip $(foreach file, $(1), \
|
||||||
|
|||||||
@@ -76,10 +76,14 @@ $(CLASSLIST_FILE): $(INTERIM_IMAGE_DIR)/bin/java$(EXECUTABLE_SUFFIX) $(CLASSLIST
|
|||||||
$(call LogInfo, Generating $(patsubst $(OUTPUTDIR)/%, %, $(JLI_TRACE_FILE)))
|
$(call LogInfo, Generating $(patsubst $(OUTPUTDIR)/%, %, $(JLI_TRACE_FILE)))
|
||||||
$(FIXPATH) $(INTERIM_IMAGE_DIR)/bin/java -XX:DumpLoadedClassList=$@.raw \
|
$(FIXPATH) $(INTERIM_IMAGE_DIR)/bin/java -XX:DumpLoadedClassList=$@.raw \
|
||||||
$(CLASSLIST_FILE_VM_OPTS) \
|
$(CLASSLIST_FILE_VM_OPTS) \
|
||||||
|
-Xlog:aot=off \
|
||||||
|
-Xlog:cds=off \
|
||||||
-cp $(SUPPORT_OUTPUTDIR)/classlist.jar \
|
-cp $(SUPPORT_OUTPUTDIR)/classlist.jar \
|
||||||
build.tools.classlist.HelloClasslist $(LOG_DEBUG)
|
build.tools.classlist.HelloClasslist $(LOG_DEBUG)
|
||||||
$(GREP) -v HelloClasslist $@.raw > $@.interim
|
$(GREP) -v HelloClasslist $@.raw > $@.interim
|
||||||
$(FIXPATH) $(INTERIM_IMAGE_DIR)/bin/java -Xshare:dump \
|
$(FIXPATH) $(INTERIM_IMAGE_DIR)/bin/java -Xshare:dump \
|
||||||
|
-Xlog:aot=off \
|
||||||
|
-Xlog:cds=off \
|
||||||
-XX:SharedClassListFile=$@.interim -XX:SharedArchiveFile=$@.jsa \
|
-XX:SharedClassListFile=$@.interim -XX:SharedArchiveFile=$@.jsa \
|
||||||
-Xmx128M -Xms128M $(LOG_INFO)
|
-Xmx128M -Xms128M $(LOG_INFO)
|
||||||
$(FIXPATH) $(INTERIM_IMAGE_DIR)/bin/java -XX:DumpLoadedClassList=$@.raw.2 \
|
$(FIXPATH) $(INTERIM_IMAGE_DIR)/bin/java -XX:DumpLoadedClassList=$@.raw.2 \
|
||||||
@@ -87,6 +91,8 @@ $(CLASSLIST_FILE): $(INTERIM_IMAGE_DIR)/bin/java$(EXECUTABLE_SUFFIX) $(CLASSLIST
|
|||||||
-Djava.lang.invoke.MethodHandle.TRACE_RESOLVE=true \
|
-Djava.lang.invoke.MethodHandle.TRACE_RESOLVE=true \
|
||||||
$(CLASSLIST_FILE_VM_OPTS) \
|
$(CLASSLIST_FILE_VM_OPTS) \
|
||||||
--module-path $(SUPPORT_OUTPUTDIR)/classlist.jar \
|
--module-path $(SUPPORT_OUTPUTDIR)/classlist.jar \
|
||||||
|
-Xlog:aot=off \
|
||||||
|
-Xlog:cds=off \
|
||||||
-cp $(SUPPORT_OUTPUTDIR)/classlist.jar \
|
-cp $(SUPPORT_OUTPUTDIR)/classlist.jar \
|
||||||
build.tools.classlist.HelloClasslist \
|
build.tools.classlist.HelloClasslist \
|
||||||
2> $(LINK_OPT_DIR)/stderr > $(JLI_TRACE_FILE) \
|
2> $(LINK_OPT_DIR)/stderr > $(JLI_TRACE_FILE) \
|
||||||
@@ -100,6 +106,8 @@ $(CLASSLIST_FILE): $(INTERIM_IMAGE_DIR)/bin/java$(EXECUTABLE_SUFFIX) $(CLASSLIST
|
|||||||
$(GREP) -v HelloClasslist $@.raw.2 > $@.raw.3
|
$(GREP) -v HelloClasslist $@.raw.2 > $@.raw.3
|
||||||
$(GREP) -v @cp $@.raw.3 > $@.raw.4
|
$(GREP) -v @cp $@.raw.3 > $@.raw.4
|
||||||
$(FIXPATH) $(INTERIM_IMAGE_DIR)/bin/java \
|
$(FIXPATH) $(INTERIM_IMAGE_DIR)/bin/java \
|
||||||
|
-Xlog:aot=off \
|
||||||
|
-Xlog:cds=off \
|
||||||
-cp $(SUPPORT_OUTPUTDIR)/classlist.jar \
|
-cp $(SUPPORT_OUTPUTDIR)/classlist.jar \
|
||||||
build.tools.classlist.SortClasslist $@.raw.4 > $@
|
build.tools.classlist.SortClasslist $@.raw.4 > $@
|
||||||
|
|
||||||
|
|||||||
@@ -162,7 +162,7 @@ define CreateCDSArchive
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(DEBUG_CDS_ARCHIVE), true)
|
ifeq ($(DEBUG_CDS_ARCHIVE), true)
|
||||||
$1_$2_CDS_DUMP_FLAGS += -Xlog:cds+map*=trace:file=$$(JDK_IMAGE_DIR)/$$($1_$2_CDS_ARCHIVE).cdsmap:none:filesize=0
|
$1_$2_CDS_DUMP_FLAGS += -Xlog:aot+map*=trace:file=$$(JDK_IMAGE_DIR)/$$($1_$2_CDS_ARCHIVE).cdsmap:none:filesize=0
|
||||||
endif
|
endif
|
||||||
|
|
||||||
$$(eval $$(call SetupExecute, $1_$2_gen_cds_archive_jdk, \
|
$$(eval $$(call SetupExecute, $1_$2_gen_cds_archive_jdk, \
|
||||||
|
|||||||
@@ -37,12 +37,6 @@ include MakeFileStart.gmk
|
|||||||
include $(TOPDIR)/make/InitSupport.gmk
|
include $(TOPDIR)/make/InitSupport.gmk
|
||||||
include LogUtils.gmk
|
include LogUtils.gmk
|
||||||
|
|
||||||
# Force early generation of module-deps.gmk and find-tests.gmk
|
|
||||||
GENERATE_MODULE_DEPS_FILE := true
|
|
||||||
include Modules.gmk
|
|
||||||
GENERATE_FIND_TESTS_FILE := true
|
|
||||||
include FindTests.gmk
|
|
||||||
|
|
||||||
# Inclusion of this pseudo-target will cause make to execute this file
|
# Inclusion of this pseudo-target will cause make to execute this file
|
||||||
# serially, regardless of -j.
|
# serially, regardless of -j.
|
||||||
.NOTPARALLEL:
|
.NOTPARALLEL:
|
||||||
@@ -116,7 +110,18 @@ reconfigure:
|
|||||||
CUSTOM_CONFIG_DIR="$(CUSTOM_CONFIG_DIR)" \
|
CUSTOM_CONFIG_DIR="$(CUSTOM_CONFIG_DIR)" \
|
||||||
$(RECONFIGURE_COMMAND) )
|
$(RECONFIGURE_COMMAND) )
|
||||||
|
|
||||||
.PHONY: print-modules print-targets print-tests print-configuration reconfigure
|
# Create files that are needed to run most targets in Main.gmk
|
||||||
|
create-make-helpers:
|
||||||
|
( cd $(TOPDIR) && \
|
||||||
|
$(MAKE) $(MAKE_ARGS) -j 1 -f make/GenerateFindTests.gmk \
|
||||||
|
$(USER_MAKE_VARS) )
|
||||||
|
( cd $(TOPDIR) && \
|
||||||
|
$(MAKE) $(MAKE_ARGS) -j 1 -f make/Main.gmk $(USER_MAKE_VARS) \
|
||||||
|
UPDATE_MODULE_DEPS=true NO_RECIPES=true \
|
||||||
|
create-main-targets-include )
|
||||||
|
|
||||||
|
.PHONY: print-modules print-targets print-tests print-configuration \
|
||||||
|
reconfigure create-make-helpers
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
# The main target. This will delegate all other targets into Main.gmk.
|
# The main target. This will delegate all other targets into Main.gmk.
|
||||||
@@ -136,16 +141,19 @@ TARGET_DESCRIPTION := target$(if $(word 2, $(MAIN_TARGETS)),s) \
|
|||||||
# variables are explicitly propagated using $(USER_MAKE_VARS).
|
# variables are explicitly propagated using $(USER_MAKE_VARS).
|
||||||
main: MAKEOVERRIDES :=
|
main: MAKEOVERRIDES :=
|
||||||
|
|
||||||
main: $(INIT_TARGETS)
|
main: $(INIT_TARGETS) create-make-helpers
|
||||||
ifneq ($(SEQUENTIAL_TARGETS)$(PARALLEL_TARGETS), )
|
ifneq ($(SEQUENTIAL_TARGETS)$(PARALLEL_TARGETS), )
|
||||||
$(call RotateLogFiles)
|
$(call RotateLogFiles)
|
||||||
$(PRINTF) "Building $(TARGET_DESCRIPTION)\n" $(BUILD_LOG_PIPE_SIMPLE)
|
$(ECHO) "Building $(TARGET_DESCRIPTION)" $(BUILD_LOG_PIPE_SIMPLE)
|
||||||
ifneq ($(SEQUENTIAL_TARGETS), )
|
ifneq ($(SEQUENTIAL_TARGETS), )
|
||||||
# Don't touch build output dir since we might be cleaning. That
|
# Don't touch build output dir since we might be cleaning. That
|
||||||
# means no log pipe.
|
# means no log pipe.
|
||||||
( cd $(TOPDIR) && \
|
( cd $(TOPDIR) && \
|
||||||
$(MAKE) $(MAKE_ARGS) -j 1 -f make/Main.gmk $(USER_MAKE_VARS) \
|
$(MAKE) $(MAKE_ARGS) -j 1 -f make/Main.gmk $(USER_MAKE_VARS) \
|
||||||
$(SEQUENTIAL_TARGETS) )
|
$(SEQUENTIAL_TARGETS) )
|
||||||
|
# We might have cleaned away essential files, recreate them.
|
||||||
|
( cd $(TOPDIR) && \
|
||||||
|
$(MAKE) $(MAKE_ARGS) -j 1 -f make/Init.gmk create-make-helpers )
|
||||||
endif
|
endif
|
||||||
ifneq ($(PARALLEL_TARGETS), )
|
ifneq ($(PARALLEL_TARGETS), )
|
||||||
$(call PrepareFailureLogs)
|
$(call PrepareFailureLogs)
|
||||||
@@ -160,7 +168,8 @@ main: $(INIT_TARGETS)
|
|||||||
-f make/Main.gmk $(USER_MAKE_VARS) \
|
-f make/Main.gmk $(USER_MAKE_VARS) \
|
||||||
$(PARALLEL_TARGETS) $(COMPARE_BUILD_MAKE) $(BUILD_LOG_PIPE) || \
|
$(PARALLEL_TARGETS) $(COMPARE_BUILD_MAKE) $(BUILD_LOG_PIPE) || \
|
||||||
( exitcode=$$? && \
|
( exitcode=$$? && \
|
||||||
$(PRINTF) "\nERROR: Build failed for $(TARGET_DESCRIPTION) (exit code $$exitcode) \n" \
|
$(ECHO) "" $(BUILD_LOG_PIPE_SIMPLE) && \
|
||||||
|
$(ECHO) "ERROR: Build failed for $(TARGET_DESCRIPTION) (exit code $$exitcode)" \
|
||||||
$(BUILD_LOG_PIPE_SIMPLE) && \
|
$(BUILD_LOG_PIPE_SIMPLE) && \
|
||||||
cd $(TOPDIR) && $(MAKE) $(MAKE_ARGS) -j 1 -f make/Init.gmk \
|
cd $(TOPDIR) && $(MAKE) $(MAKE_ARGS) -j 1 -f make/Init.gmk \
|
||||||
on-failure ; \
|
on-failure ; \
|
||||||
@@ -172,7 +181,7 @@ main: $(INIT_TARGETS)
|
|||||||
if test -f $(MAKESUPPORT_OUTPUTDIR)/exit-with-error ; then \
|
if test -f $(MAKESUPPORT_OUTPUTDIR)/exit-with-error ; then \
|
||||||
exit 1 ; \
|
exit 1 ; \
|
||||||
fi
|
fi
|
||||||
$(PRINTF) "Finished building $(TARGET_DESCRIPTION)\n" $(BUILD_LOG_PIPE_SIMPLE)
|
$(ECHO) "Finished building $(TARGET_DESCRIPTION)" $(BUILD_LOG_PIPE_SIMPLE)
|
||||||
$(call ReportProfileTimes)
|
$(call ReportProfileTimes)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -183,7 +192,8 @@ on-failure:
|
|||||||
$(call PrintFailureReports)
|
$(call PrintFailureReports)
|
||||||
$(call PrintBuildLogFailures)
|
$(call PrintBuildLogFailures)
|
||||||
$(call ReportProfileTimes)
|
$(call ReportProfileTimes)
|
||||||
$(PRINTF) "HELP: Run 'make doctor' to diagnose build problems.\n\n"
|
$(ECHO) "HELP: Run 'make doctor' to diagnose build problems."
|
||||||
|
$(ECHO) ""
|
||||||
ifneq ($(COMPARE_BUILD), )
|
ifneq ($(COMPARE_BUILD), )
|
||||||
$(call CleanupCompareBuild)
|
$(call CleanupCompareBuild)
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -173,9 +173,10 @@ define PrintFailureReports
|
|||||||
$(RM) $(MAKESUPPORT_OUTPUTDIR)/failure-summary.log ; \
|
$(RM) $(MAKESUPPORT_OUTPUTDIR)/failure-summary.log ; \
|
||||||
$(if $(wildcard $(MAKESUPPORT_OUTPUTDIR)/failure-logs/*.log), \
|
$(if $(wildcard $(MAKESUPPORT_OUTPUTDIR)/failure-logs/*.log), \
|
||||||
( \
|
( \
|
||||||
$(PRINTF) "\n=== Output from failing command(s) repeated here ===\n" ; \
|
$(ECHO) "" ; \
|
||||||
|
$(ECHO) "=== Output from failing command(s) repeated here ===" ; \
|
||||||
$(foreach logfile, $(sort $(wildcard $(MAKESUPPORT_OUTPUTDIR)/failure-logs/*.log)), \
|
$(foreach logfile, $(sort $(wildcard $(MAKESUPPORT_OUTPUTDIR)/failure-logs/*.log)), \
|
||||||
$(PRINTF) "* For target $(notdir $(basename $(logfile))):\n" ; \
|
$(ECHO) "* For target $(notdir $(basename $(logfile))):" ; \
|
||||||
$(if $(filter all, $(LOG_REPORT)), \
|
$(if $(filter all, $(LOG_REPORT)), \
|
||||||
$(GREP) -v -e "^Note: including file:" < $(logfile) || true ; \
|
$(GREP) -v -e "^Note: including file:" < $(logfile) || true ; \
|
||||||
, \
|
, \
|
||||||
@@ -185,8 +186,9 @@ define PrintFailureReports
|
|||||||
fi ; \
|
fi ; \
|
||||||
) \
|
) \
|
||||||
) \
|
) \
|
||||||
$(PRINTF) "\n* All command lines available in $(MAKESUPPORT_OUTPUTDIR)/failure-logs.\n" ; \
|
$(ECHO) "" ; \
|
||||||
$(PRINTF) "=== End of repeated output ===\n" ; \
|
$(ECHO) "* All command lines available in $(MAKESUPPORT_OUTPUTDIR)/failure-logs." ; \
|
||||||
|
$(ECHO) "=== End of repeated output ===" ; \
|
||||||
) >> $(MAKESUPPORT_OUTPUTDIR)/failure-summary.log \
|
) >> $(MAKESUPPORT_OUTPUTDIR)/failure-summary.log \
|
||||||
) \
|
) \
|
||||||
)
|
)
|
||||||
@@ -195,13 +197,16 @@ endef
|
|||||||
define PrintBuildLogFailures
|
define PrintBuildLogFailures
|
||||||
$(if $(filter none, $(LOG_REPORT)), , \
|
$(if $(filter none, $(LOG_REPORT)), , \
|
||||||
if $(GREP) -q "recipe for target .* failed" $(BUILD_LOG) 2> /dev/null; then \
|
if $(GREP) -q "recipe for target .* failed" $(BUILD_LOG) 2> /dev/null; then \
|
||||||
$(PRINTF) "\n=== Make failed targets repeated here ===\n" ; \
|
$(ECHO) "" ; \
|
||||||
|
$(ECHO) "=== Make failed targets repeated here ===" ; \
|
||||||
$(GREP) "recipe for target .* failed" $(BUILD_LOG) ; \
|
$(GREP) "recipe for target .* failed" $(BUILD_LOG) ; \
|
||||||
$(PRINTF) "=== End of repeated output ===\n" ; \
|
$(ECHO) "=== End of repeated output ===" ; \
|
||||||
$(PRINTF) "\nHELP: Try searching the build log for the name of the first failed target.\n" ; \
|
$(ECHO) "" ; \
|
||||||
|
$(ECHO) "HELP: Try searching the build log for the name of the first failed target." ; \
|
||||||
else \
|
else \
|
||||||
$(PRINTF) "\nNo indication of failed target found.\n" ; \
|
$(ECHO) "" ; \
|
||||||
$(PRINTF) "HELP: Try searching the build log for '] Error'.\n" ; \
|
$(ECHO) "No indication of failed target found." ; \
|
||||||
|
$(ECHO) "HELP: Try searching the build log for '] Error'." ; \
|
||||||
fi >> $(MAKESUPPORT_OUTPUTDIR)/failure-summary.log ; \
|
fi >> $(MAKESUPPORT_OUTPUTDIR)/failure-summary.log ; \
|
||||||
$(CAT) $(MAKESUPPORT_OUTPUTDIR)/failure-summary.log \
|
$(CAT) $(MAKESUPPORT_OUTPUTDIR)/failure-summary.log \
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -42,6 +42,12 @@ include MakeFileStart.gmk
|
|||||||
include $(TOPDIR)/make/MainSupport.gmk
|
include $(TOPDIR)/make/MainSupport.gmk
|
||||||
|
|
||||||
include FindTests.gmk
|
include FindTests.gmk
|
||||||
|
|
||||||
|
ifeq ($(UPDATE_MODULE_DEPS), true)
|
||||||
|
# Update module-deps.gmk if requested. This is read in Modules.gmk.
|
||||||
|
GENERATE_MODULE_DEPS_FILE := true
|
||||||
|
endif
|
||||||
|
|
||||||
include Modules.gmk
|
include Modules.gmk
|
||||||
|
|
||||||
# Are we requested to ignore dependencies?
|
# Are we requested to ignore dependencies?
|
||||||
@@ -411,12 +417,14 @@ $(eval $(call SetupTarget, create-source-revision-tracker, \
|
|||||||
))
|
))
|
||||||
|
|
||||||
BOOTCYCLE_TARGET := product-images
|
BOOTCYCLE_TARGET := product-images
|
||||||
|
BOOTCYCLE_SPEC := $(dir $(SPEC))bootcycle-spec.gmk
|
||||||
|
|
||||||
bootcycle-images:
|
bootcycle-images:
|
||||||
ifneq ($(COMPILE_TYPE), cross)
|
ifneq ($(COMPILE_TYPE), cross)
|
||||||
$(call LogWarn, Boot cycle build step 2: Building a new JDK image using previously built image)
|
$(call LogWarn, Boot cycle build step 2: Building a new JDK image using previously built image)
|
||||||
$(call MakeDir, $(OUTPUTDIR)/bootcycle-build)
|
$(call MakeDir, $(OUTPUTDIR)/bootcycle-build)
|
||||||
+$(MAKE) $(MAKE_ARGS) -f $(TOPDIR)/make/Init.gmk PARALLEL_TARGETS=$(BOOTCYCLE_TARGET) \
|
+$(MAKE) $(MAKE_ARGS) -f $(TOPDIR)/make/Init.gmk PARALLEL_TARGETS=$(BOOTCYCLE_TARGET) \
|
||||||
LOG_PREFIX="[bootcycle] " JOBS= SPEC=$(dir $(SPEC))bootcycle-spec.gmk main
|
LOG_PREFIX="[bootcycle] " JOBS= SPEC=$(BOOTCYCLE_SPEC) main
|
||||||
else
|
else
|
||||||
$(call LogWarn, Boot cycle build disabled when cross compiling)
|
$(call LogWarn, Boot cycle build disabled when cross compiling)
|
||||||
endif
|
endif
|
||||||
@@ -875,6 +883,12 @@ $(eval $(call SetupTarget, static-libs-graal-bundles, \
|
|||||||
DEPS := static-libs-graal-image, \
|
DEPS := static-libs-graal-image, \
|
||||||
))
|
))
|
||||||
|
|
||||||
|
$(eval $(call SetupTarget, static-jdk-bundles, \
|
||||||
|
MAKEFILE := Bundles, \
|
||||||
|
TARGET := static-jdk-bundles, \
|
||||||
|
DEPS := static-jdk-image, \
|
||||||
|
))
|
||||||
|
|
||||||
ifeq ($(JCOV_ENABLED), true)
|
ifeq ($(JCOV_ENABLED), true)
|
||||||
$(eval $(call SetupTarget, jcov-bundles, \
|
$(eval $(call SetupTarget, jcov-bundles, \
|
||||||
MAKEFILE := Bundles, \
|
MAKEFILE := Bundles, \
|
||||||
|
|||||||
@@ -58,76 +58,76 @@ endef
|
|||||||
|
|
||||||
define CleanDocs
|
define CleanDocs
|
||||||
@$(PRINTF) "Cleaning docs ..."
|
@$(PRINTF) "Cleaning docs ..."
|
||||||
@$(PRINTF) "\n" $(LOG_DEBUG)
|
@$(ECHO) "" $(LOG_DEBUG)
|
||||||
$(RM) -r $(SUPPORT_OUTPUTDIR)/docs
|
$(RM) -r $(SUPPORT_OUTPUTDIR)/docs
|
||||||
$(RM) -r $(SUPPORT_OUTPUTDIR)/javadoc
|
$(RM) -r $(SUPPORT_OUTPUTDIR)/javadoc
|
||||||
$(RM) -r $(IMAGES_OUTPUTDIR)/docs
|
$(RM) -r $(IMAGES_OUTPUTDIR)/docs
|
||||||
@$(PRINTF) " done\n"
|
@$(ECHO) " done"
|
||||||
endef
|
endef
|
||||||
|
|
||||||
# Cleans the dir given as $1
|
# Cleans the dir given as $1
|
||||||
define CleanDir
|
define CleanDir
|
||||||
@$(PRINTF) "Cleaning $(strip $1) build artifacts ..."
|
@$(PRINTF) "Cleaning %s build artifacts ..." "$(strip $1)"
|
||||||
@$(PRINTF) "\n" $(LOG_DEBUG)
|
@$(ECHO) "" $(LOG_DEBUG)
|
||||||
($(CD) $(OUTPUTDIR) && $(RM) -r $1)
|
($(CD) $(OUTPUTDIR) && $(RM) -r $1)
|
||||||
@$(PRINTF) " done\n"
|
@$(ECHO) " done"
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define CleanSupportDir
|
define CleanSupportDir
|
||||||
@$(PRINTF) "Cleaning $(strip $1) build artifacts ..."
|
@$(PRINTF) "Cleaning %s build artifacts ..." "$(strip $1)"
|
||||||
@$(PRINTF) "\n" $(LOG_DEBUG)
|
@$(ECHO) "" $(LOG_DEBUG)
|
||||||
$(RM) -r $(SUPPORT_OUTPUTDIR)/$(strip $1)
|
$(RM) -r $(SUPPORT_OUTPUTDIR)/$(strip $1)
|
||||||
@$(PRINTF) " done\n"
|
@$(ECHO) " done"
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define CleanMakeSupportDir
|
define CleanMakeSupportDir
|
||||||
@$(PRINTF) "Cleaning $(strip $1) make support artifacts ..."
|
@$(PRINTF) "Cleaning %s make support artifacts ..." "$(strip $1)"
|
||||||
@$(PRINTF) "\n" $(LOG_DEBUG)
|
@$(ECHO) "" $(LOG_DEBUG)
|
||||||
$(RM) -r $(MAKESUPPORT_OUTPUTDIR)/$(strip $1)
|
$(RM) -r $(MAKESUPPORT_OUTPUTDIR)/$(strip $1)
|
||||||
@$(PRINTF) " done\n"
|
@$(ECHO) " done"
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define CleanTest
|
define CleanTest
|
||||||
@$(PRINTF) "Cleaning test $(strip $1) ..."
|
@$(PRINTF) "Cleaning test %s ..." "$(strip $1)"
|
||||||
@$(PRINTF) "\n" $(LOG_DEBUG)
|
@$(ECHO) "" $(LOG_DEBUG)
|
||||||
$(RM) -r $(SUPPORT_OUTPUTDIR)/test/$(strip $(subst -,/,$1))
|
$(RM) -r $(SUPPORT_OUTPUTDIR)/test/$(strip $(subst -,/,$1))
|
||||||
# Remove as much of the test directory structure as is empty
|
# Remove as much of the test directory structure as is empty
|
||||||
$(RMDIR) -p $(dir $(SUPPORT_OUTPUTDIR)/test/$(strip $(subst -,/,$1))) 2> /dev/null || true
|
$(RMDIR) -p $(dir $(SUPPORT_OUTPUTDIR)/test/$(strip $(subst -,/,$1))) 2> /dev/null || true
|
||||||
@$(PRINTF) " done\n"
|
@$(ECHO) " done"
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Clean-gensrc
|
define Clean-gensrc
|
||||||
@$(PRINTF) "Cleaning gensrc $(if $1,for $(strip $1) )..."
|
@$(PRINTF) "Cleaning gensrc %s..." "$(if $1,for $(strip $1) )"
|
||||||
@$(PRINTF) "\n" $(LOG_DEBUG)
|
@$(ECHO) "" $(LOG_DEBUG)
|
||||||
$(RM) -r $(SUPPORT_OUTPUTDIR)/gensrc/$(strip $1)
|
$(RM) -r $(SUPPORT_OUTPUTDIR)/gensrc/$(strip $1)
|
||||||
@$(PRINTF) " done\n"
|
@$(ECHO) " done"
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Clean-java
|
define Clean-java
|
||||||
@$(PRINTF) "Cleaning java $(if $1,for $(strip $1) )..."
|
@$(PRINTF) "Cleaning java %s..." "$(if $1,for $(strip $1) )"
|
||||||
@$(PRINTF) "\n" $(LOG_DEBUG)
|
@$(ECHO) "" $(LOG_DEBUG)
|
||||||
$(RM) -r $(JDK_OUTPUTDIR)/modules/$(strip $1)
|
$(RM) -r $(JDK_OUTPUTDIR)/modules/$(strip $1)
|
||||||
$(RM) -r $(SUPPORT_OUTPUTDIR)/special_classes/$(strip $1)
|
$(RM) -r $(SUPPORT_OUTPUTDIR)/special_classes/$(strip $1)
|
||||||
$(PRINTF) " done\n"
|
$(ECHO) " done"
|
||||||
$(PRINTF) "Cleaning headers $(if $1,for $(strip $1)) ..."
|
$(PRINTF) "Cleaning headers %s..." "$(if $1,for $(strip $1) )"
|
||||||
$(RM) -r $(SUPPORT_OUTPUTDIR)/headers/$(strip $1)
|
$(RM) -r $(SUPPORT_OUTPUTDIR)/headers/$(strip $1)
|
||||||
@$(PRINTF) " done\n"
|
@$(ECHO) " done"
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Clean-native
|
define Clean-native
|
||||||
@$(PRINTF) "Cleaning native $(if $1,for $(strip $1) )..."
|
@$(PRINTF) "Cleaning native %s..." "$(if $1,for $(strip $1) )"
|
||||||
@$(PRINTF) "\n" $(LOG_DEBUG)
|
@$(ECHO) "" $(LOG_DEBUG)
|
||||||
$(RM) -r $(SUPPORT_OUTPUTDIR)/native/$(strip $1)
|
$(RM) -r $(SUPPORT_OUTPUTDIR)/native/$(strip $1)
|
||||||
$(RM) -r $(SUPPORT_OUTPUTDIR)/modules_libs/$(strip $1)
|
$(RM) -r $(SUPPORT_OUTPUTDIR)/modules_libs/$(strip $1)
|
||||||
$(RM) -r $(SUPPORT_OUTPUTDIR)/modules_cmds/$(strip $1)
|
$(RM) -r $(SUPPORT_OUTPUTDIR)/modules_cmds/$(strip $1)
|
||||||
@$(PRINTF) " done\n"
|
@$(ECHO) " done"
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Clean-include
|
define Clean-include
|
||||||
@$(PRINTF) "Cleaning include $(if $1,for $(strip $1) )..."
|
@$(PRINTF) "Cleaning include %s..." "$(if $1,for $(strip $1) )"
|
||||||
@$(PRINTF) "\n" $(LOG_DEBUG)
|
@$(ECHO) "" $(LOG_DEBUG)
|
||||||
$(RM) -r $(SUPPORT_OUTPUTDIR)/modules_include/$(strip $1)
|
$(RM) -r $(SUPPORT_OUTPUTDIR)/modules_include/$(strip $1)
|
||||||
@$(PRINTF) " done\n"
|
@$(ECHO) " done"
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define CleanModule
|
define CleanModule
|
||||||
|
|||||||
@@ -48,6 +48,11 @@ include $(TOPDIR)/make/common/LogUtils.gmk
|
|||||||
# a configuration. This will define ALL_GLOBAL_TARGETS.
|
# a configuration. This will define ALL_GLOBAL_TARGETS.
|
||||||
include $(TOPDIR)/make/Global.gmk
|
include $(TOPDIR)/make/Global.gmk
|
||||||
|
|
||||||
|
# Targets provided by Init.gmk.
|
||||||
|
ALL_INIT_TARGETS := print-modules print-targets print-configuration \
|
||||||
|
print-tests reconfigure pre-compare-build post-compare-build \
|
||||||
|
create-make-helpers
|
||||||
|
|
||||||
# CALLED_TARGETS is the list of targets that the user provided,
|
# CALLED_TARGETS is the list of targets that the user provided,
|
||||||
# or "default" if unspecified.
|
# or "default" if unspecified.
|
||||||
CALLED_TARGETS := $(if $(MAKECMDGOALS), $(MAKECMDGOALS), default)
|
CALLED_TARGETS := $(if $(MAKECMDGOALS), $(MAKECMDGOALS), default)
|
||||||
@@ -93,10 +98,6 @@ ifneq ($(SKIP_SPEC), true)
|
|||||||
# This will setup ALL_MAIN_TARGETS.
|
# This will setup ALL_MAIN_TARGETS.
|
||||||
$(eval $(call DefineMainTargets, FORCE, $(firstword $(SPECS))))
|
$(eval $(call DefineMainTargets, FORCE, $(firstword $(SPECS))))
|
||||||
|
|
||||||
# Targets provided by Init.gmk.
|
|
||||||
ALL_INIT_TARGETS := print-modules print-targets print-configuration \
|
|
||||||
print-tests reconfigure pre-compare-build post-compare-build
|
|
||||||
|
|
||||||
# Separate called targets depending on type.
|
# Separate called targets depending on type.
|
||||||
INIT_TARGETS := $(filter $(ALL_INIT_TARGETS), $(CALLED_SPEC_TARGETS))
|
INIT_TARGETS := $(filter $(ALL_INIT_TARGETS), $(CALLED_SPEC_TARGETS))
|
||||||
MAIN_TARGETS := $(filter $(ALL_MAIN_TARGETS), $(CALLED_SPEC_TARGETS))
|
MAIN_TARGETS := $(filter $(ALL_MAIN_TARGETS), $(CALLED_SPEC_TARGETS))
|
||||||
@@ -161,19 +162,19 @@ ifneq ($(SKIP_SPEC), true)
|
|||||||
( cd $(TOPDIR) && \
|
( cd $(TOPDIR) && \
|
||||||
$(foreach spec, $(SPECS), \
|
$(foreach spec, $(SPECS), \
|
||||||
$(MAKE) $(MAKE_INIT_ARGS) -j 1 -f $(TOPDIR)/make/Init.gmk \
|
$(MAKE) $(MAKE_INIT_ARGS) -j 1 -f $(TOPDIR)/make/Init.gmk \
|
||||||
SPEC=$(spec) $(MAKE_INIT_MAIN_TARGET_ARGS) \
|
SPEC=$(spec) TOPDIR_ALT=$(TOPDIR) \
|
||||||
main && \
|
$(MAKE_INIT_MAIN_TARGET_ARGS) main && \
|
||||||
$(if $(and $(COMPARE_BUILD), $(PARALLEL_TARGETS)), \
|
$(if $(and $(COMPARE_BUILD), $(PARALLEL_TARGETS)), \
|
||||||
$(MAKE) $(MAKE_INIT_ARGS) -f $(TOPDIR)/make/Init.gmk \
|
$(MAKE) $(MAKE_INIT_ARGS) -f $(TOPDIR)/make/Init.gmk \
|
||||||
SPEC=$(spec) \
|
SPEC=$(spec) TOPDIR_ALT=$(TOPDIR) \
|
||||||
COMPARE_BUILD="$(COMPARE_BUILD)" \
|
COMPARE_BUILD="$(COMPARE_BUILD)" \
|
||||||
pre-compare-build && \
|
pre-compare-build && \
|
||||||
$(MAKE) $(MAKE_INIT_ARGS) -j 1 -f $(TOPDIR)/make/Init.gmk \
|
$(MAKE) $(MAKE_INIT_ARGS) -j 1 -f $(TOPDIR)/make/Init.gmk \
|
||||||
SPEC=$(spec) $(MAKE_INIT_MAIN_TARGET_ARGS) \
|
SPEC=$(spec) TOPDIR_ALT=$(TOPDIR) \
|
||||||
COMPARE_BUILD="$(COMPARE_BUILD):NODRYRUN=true" \
|
COMPARE_BUILD="$(COMPARE_BUILD):NODRYRUN=true" \
|
||||||
main && \
|
$(MAKE_INIT_MAIN_TARGET_ARGS) main && \
|
||||||
$(MAKE) $(MAKE_INIT_ARGS) -f $(TOPDIR)/make/Init.gmk \
|
$(MAKE) $(MAKE_INIT_ARGS) -f $(TOPDIR)/make/Init.gmk \
|
||||||
SPEC=$(spec) \
|
SPEC=$(spec) TOPDIR_ALT=$(TOPDIR) \
|
||||||
COMPARE_BUILD="$(COMPARE_BUILD):NODRYRUN=true" \
|
COMPARE_BUILD="$(COMPARE_BUILD):NODRYRUN=true" \
|
||||||
post-compare-build && \
|
post-compare-build && \
|
||||||
) \
|
) \
|
||||||
|
|||||||
@@ -250,13 +250,14 @@ endef
|
|||||||
# Param 1: FORCE = force generation of main-targets.gmk or LAZY = do not force.
|
# Param 1: FORCE = force generation of main-targets.gmk or LAZY = do not force.
|
||||||
# Param 2: The SPEC file to use.
|
# Param 2: The SPEC file to use.
|
||||||
define DefineMainTargets
|
define DefineMainTargets
|
||||||
|
SPEC_FILE := $(strip $2)
|
||||||
|
|
||||||
# We will start by making sure the main-targets.gmk file is removed, if
|
# We will start by making sure the main-targets.gmk file is removed, if
|
||||||
# make has not been restarted. By the -include, we will trigger the
|
# make has not been restarted. By the -include, we will trigger the
|
||||||
# rule for generating the file (which is never there since we removed it),
|
# rule for generating the file (which is never there since we removed it),
|
||||||
# thus generating it fresh, and make will restart, incrementing the restart
|
# thus generating it fresh, and make will restart, incrementing the restart
|
||||||
# count.
|
# count.
|
||||||
main_targets_file := $$(dir $(strip $2))make-support/main-targets.gmk
|
main_targets_file := $$(dir $$(SPEC_FILE))make-support/main-targets.gmk
|
||||||
|
|
||||||
ifeq ($$(MAKE_RESTARTS), )
|
ifeq ($$(MAKE_RESTARTS), )
|
||||||
# Only do this if make has not been restarted, and if we do not force it.
|
# Only do this if make has not been restarted, and if we do not force it.
|
||||||
@@ -267,8 +268,12 @@ define DefineMainTargets
|
|||||||
|
|
||||||
$$(main_targets_file):
|
$$(main_targets_file):
|
||||||
@( cd $$(TOPDIR) && \
|
@( cd $$(TOPDIR) && \
|
||||||
$$(MAKE) $$(MAKE_LOG_FLAGS) -r -R -f $$(TOPDIR)/make/Main.gmk \
|
$$(MAKE) $$(MAKE_LOG_FLAGS) -s -r -R -f $$(TOPDIR)/make/GenerateFindTests.gmk \
|
||||||
-I $$(TOPDIR)/make/common SPEC=$(strip $2) NO_RECIPES=true \
|
-I $$(TOPDIR)/make/common SPEC=$$(SPEC_FILE) TOPDIR_ALT=$$(TOPDIR))
|
||||||
|
@( cd $$(TOPDIR) && \
|
||||||
|
$$(MAKE) $$(MAKE_LOG_FLAGS) -s -r -R -f $$(TOPDIR)/make/Main.gmk \
|
||||||
|
-I $$(TOPDIR)/make/common SPEC=$$(SPEC_FILE) TOPDIR_ALT=$$(TOPDIR) \
|
||||||
|
UPDATE_MODULE_DEPS=true NO_RECIPES=true \
|
||||||
$$(MAKE_LOG_VARS) \
|
$$(MAKE_LOG_VARS) \
|
||||||
create-main-targets-include )
|
create-main-targets-include )
|
||||||
|
|
||||||
|
|||||||
@@ -75,9 +75,6 @@ endif
|
|||||||
|
|
||||||
# This is the JDK that we will test
|
# This is the JDK that we will test
|
||||||
JDK_UNDER_TEST := $(JDK_IMAGE_DIR)
|
JDK_UNDER_TEST := $(JDK_IMAGE_DIR)
|
||||||
# The JDK used to compile jtreg test code. By default it is the same as
|
|
||||||
# JDK_UNDER_TEST.
|
|
||||||
JDK_FOR_COMPILE := $(JDK_IMAGE_DIR)
|
|
||||||
|
|
||||||
TEST_RESULTS_DIR := $(OUTPUTDIR)/test-results
|
TEST_RESULTS_DIR := $(OUTPUTDIR)/test-results
|
||||||
TEST_SUPPORT_DIR := $(OUTPUTDIR)/test-support
|
TEST_SUPPORT_DIR := $(OUTPUTDIR)/test-support
|
||||||
@@ -118,6 +115,7 @@ JTREG_COV_OPTIONS :=
|
|||||||
|
|
||||||
ifeq ($(TEST_OPTS_JCOV), true)
|
ifeq ($(TEST_OPTS_JCOV), true)
|
||||||
JCOV_OUTPUT_DIR := $(TEST_RESULTS_DIR)/jcov-output
|
JCOV_OUTPUT_DIR := $(TEST_RESULTS_DIR)/jcov-output
|
||||||
|
JCOV_SUPPORT_DIR := $(TEST_SUPPORT_DIR)/jcov-support
|
||||||
JCOV_GRABBER_LOG := $(JCOV_OUTPUT_DIR)/grabber.log
|
JCOV_GRABBER_LOG := $(JCOV_OUTPUT_DIR)/grabber.log
|
||||||
JCOV_RESULT_FILE := $(JCOV_OUTPUT_DIR)/result.xml
|
JCOV_RESULT_FILE := $(JCOV_OUTPUT_DIR)/result.xml
|
||||||
JCOV_REPORT := $(JCOV_OUTPUT_DIR)/report
|
JCOV_REPORT := $(JCOV_OUTPUT_DIR)/report
|
||||||
@@ -537,22 +535,21 @@ define SetupRunGtestTestBody
|
|||||||
$$(eval $1_PASSED := $$(shell $$(AWK) '/\[ PASSED \] .* tests?./ \
|
$$(eval $1_PASSED := $$(shell $$(AWK) '/\[ PASSED \] .* tests?./ \
|
||||||
{ print $$$$4 }' $$($1_RESULT_FILE))) \
|
{ print $$$$4 }' $$($1_RESULT_FILE))) \
|
||||||
$$(if $$($1_PASSED), , $$(eval $1_PASSED := 0)) \
|
$$(if $$($1_PASSED), , $$(eval $1_PASSED := 0)) \
|
||||||
$$(eval $1_SKIPPED := $$(shell $$(AWK) \
|
$$(eval $1_GTEST_DISABLED := $$(shell $$(AWK) '/YOU HAVE .* DISABLED TEST/ \
|
||||||
'/YOU HAVE [0-9]+ DISABLED TEST/ { \
|
{ print $$$$3 }' $$($1_RESULT_FILE))) \
|
||||||
if (match($$$$0, /[0-9]+/, arr)) { \
|
$$(if $$($1_GTEST_DISABLED), , $$(eval $1_GTEST_DISABLED := 0)) \
|
||||||
print arr[0]; \
|
$$(eval $1_GTEST_SKIPPED := $$(shell $$(AWK) '/\[ SKIPPED \] .* tests?.*/ \
|
||||||
found=1; \
|
{ print $$$$4 }' $$($1_RESULT_FILE))) \
|
||||||
} \
|
$$(if $$($1_GTEST_SKIPPED), , $$(eval $1_GTEST_SKIPPED := 0)) \
|
||||||
} \
|
$$(eval $1_SKIPPED := $$(shell \
|
||||||
END { if (!found) print 0; }' \
|
$$(EXPR) $$($1_GTEST_DISABLED) + $$($1_GTEST_SKIPPED))) \
|
||||||
$$($1_RESULT_FILE))) \
|
|
||||||
$$(eval $1_FAILED := $$(shell $$(AWK) '/\[ FAILED \] .* tests?, \
|
$$(eval $1_FAILED := $$(shell $$(AWK) '/\[ FAILED \] .* tests?, \
|
||||||
listed below/ { print $$$$4 }' $$($1_RESULT_FILE))) \
|
listed below/ { print $$$$4 }' $$($1_RESULT_FILE))) \
|
||||||
$$(if $$($1_FAILED), , $$(eval $1_FAILED := 0)) \
|
$$(if $$($1_FAILED), , $$(eval $1_FAILED := 0)) \
|
||||||
$$(eval $1_ERROR := $$(shell \
|
$$(eval $1_ERROR := $$(shell \
|
||||||
$$(EXPR) $$($1_RUN) - $$($1_PASSED) - $$($1_FAILED))) \
|
$$(EXPR) $$($1_RUN) - $$($1_PASSED) - $$($1_FAILED) - $$($1_GTEST_SKIPPED))) \
|
||||||
$$(eval $1_TOTAL := $$(shell \
|
$$(eval $1_TOTAL := $$(shell \
|
||||||
$$(EXPR) $$($1_RUN) + $$($1_SKIPPED))) \
|
$$(EXPR) $$($1_RUN) + $$($1_GTEST_DISABLED))) \
|
||||||
, \
|
, \
|
||||||
$$(eval $1_PASSED := 0) \
|
$$(eval $1_PASSED := 0) \
|
||||||
$$(eval $1_FAILED := 0) \
|
$$(eval $1_FAILED := 0) \
|
||||||
@@ -586,6 +583,8 @@ define SetMicroValue
|
|||||||
else
|
else
|
||||||
ifneq ($3, )
|
ifneq ($3, )
|
||||||
$1_$2 := $3
|
$1_$2 := $3
|
||||||
|
else
|
||||||
|
$1_$2 :=
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
endef
|
endef
|
||||||
@@ -712,6 +711,8 @@ define SetJtregValue
|
|||||||
else
|
else
|
||||||
ifneq ($3, )
|
ifneq ($3, )
|
||||||
$1_$2 := $3
|
$1_$2 := $3
|
||||||
|
else
|
||||||
|
$1_$2 :=
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
@@ -724,6 +725,7 @@ endef
|
|||||||
# Parameter 1 is the name of the rule.
|
# Parameter 1 is the name of the rule.
|
||||||
#
|
#
|
||||||
# Remaining parameters are named arguments.
|
# Remaining parameters are named arguments.
|
||||||
|
# TRAINING The AOT training mode: onestep or twostep
|
||||||
# VM_OPTIONS List of JVM arguments to use when creating AOT cache
|
# VM_OPTIONS List of JVM arguments to use when creating AOT cache
|
||||||
#
|
#
|
||||||
# After calling this, the following variables are defined
|
# After calling this, the following variables are defined
|
||||||
@@ -752,23 +754,39 @@ define SetupAOTBody
|
|||||||
$$($1_AOT_JDK_CACHE): $$(JDK_IMAGE_DIR)/release
|
$$($1_AOT_JDK_CACHE): $$(JDK_IMAGE_DIR)/release
|
||||||
$$(call MakeDir, $$($1_AOT_JDK_OUTPUT_DIR))
|
$$(call MakeDir, $$($1_AOT_JDK_OUTPUT_DIR))
|
||||||
|
|
||||||
$$(call LogWarn, AOT: Create cache configuration) \
|
ifeq ($$($1_TRAINING), onestep)
|
||||||
$$(call ExecuteWithLog, $$($1_AOT_JDK_OUTPUT_DIR), ( \
|
|
||||||
cd $$($1_AOT_JDK_OUTPUT_DIR); \
|
|
||||||
$(JAR) --extract --file $(TEST_IMAGE_DIR)/setup_aot/TestSetupAOT.jar; \
|
|
||||||
$$(FIXPATH) $(JDK_UNDER_TEST)/bin/java $$($1_VM_OPTIONS) \
|
|
||||||
-Xlog:class+load,cds,cds+class=debug:file=$$($1_AOT_JDK_CONF).log -Xlog:cds*=error \
|
|
||||||
-XX:AOTMode=record -XX:AOTConfiguration=$$($1_AOT_JDK_CONF) \
|
|
||||||
TestSetupAOT $$($1_AOT_JDK_OUTPUT_DIR) > $$($1_AOT_JDK_LOG) \
|
|
||||||
))
|
|
||||||
|
|
||||||
$$(call LogWarn, AOT: Generate AOT cache $$($1_AOT_JDK_CACHE) with flags: $$($1_VM_OPTIONS))
|
$$(call LogWarn, AOT: Create AOT cache $$($1_AOT_JDK_CACHE) in one step with flags: $$($1_VM_OPTIONS)) \
|
||||||
$$(call ExecuteWithLog, $$($1_AOT_JDK_OUTPUT_DIR), ( \
|
$$(call ExecuteWithLog, $$($1_AOT_JDK_OUTPUT_DIR), ( \
|
||||||
$$(FIXPATH) $(JDK_UNDER_TEST)/bin/java \
|
cd $$($1_AOT_JDK_OUTPUT_DIR); \
|
||||||
$$($1_VM_OPTIONS) -Xlog:cds,cds+class=debug:file=$$($1_AOT_JDK_CACHE).log -Xlog:cds*=error \
|
$(JAR) --extract --file $(TEST_IMAGE_DIR)/setup_aot/TestSetupAOT.jar; \
|
||||||
-XX:ExtraSharedClassListFile=$(JDK_UNDER_TEST)/lib/classlist \
|
$$(FIXPATH) $(JDK_UNDER_TEST)/bin/java $$($1_VM_OPTIONS) \
|
||||||
-XX:AOTMode=create -XX:AOTConfiguration=$$($1_AOT_JDK_CONF) -XX:AOTCache=$$($1_AOT_JDK_CACHE) \
|
-Xlog:class+load,aot,aot+class=debug:file=$$($1_AOT_JDK_CACHE).log -Xlog:cds*=error -Xlog:aot*=error \
|
||||||
))
|
-XX:AOTMode=record -XX:AOTCacheOutput=$$($1_AOT_JDK_CACHE) \
|
||||||
|
TestSetupAOT $$($1_AOT_JDK_OUTPUT_DIR) > $$($1_AOT_JDK_LOG) \
|
||||||
|
))
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
$$(call LogWarn, AOT: Create cache configuration) \
|
||||||
|
$$(call ExecuteWithLog, $$($1_AOT_JDK_OUTPUT_DIR), ( \
|
||||||
|
cd $$($1_AOT_JDK_OUTPUT_DIR); \
|
||||||
|
$(JAR) --extract --file $(TEST_IMAGE_DIR)/setup_aot/TestSetupAOT.jar; \
|
||||||
|
$$(FIXPATH) $(JDK_UNDER_TEST)/bin/java $$($1_VM_OPTIONS) \
|
||||||
|
-Xlog:class+load,aot,aot+class=debug:file=$$($1_AOT_JDK_CONF).log -Xlog:cds*=error -Xlog:aot*=error \
|
||||||
|
-XX:AOTMode=record -XX:AOTConfiguration=$$($1_AOT_JDK_CONF) \
|
||||||
|
TestSetupAOT $$($1_AOT_JDK_OUTPUT_DIR) > $$($1_AOT_JDK_LOG) \
|
||||||
|
))
|
||||||
|
|
||||||
|
$$(call LogWarn, AOT: Generate AOT cache $$($1_AOT_JDK_CACHE) with flags: $$($1_VM_OPTIONS))
|
||||||
|
$$(call ExecuteWithLog, $$($1_AOT_JDK_OUTPUT_DIR), ( \
|
||||||
|
$$(FIXPATH) $(JDK_UNDER_TEST)/bin/java \
|
||||||
|
$$($1_VM_OPTIONS) -Xlog:aot,aot+class=debug:file=$$($1_AOT_JDK_CACHE).log -Xlog:cds*=error -Xlog:aot*=error \
|
||||||
|
-XX:ExtraSharedClassListFile=$(JDK_UNDER_TEST)/lib/classlist \
|
||||||
|
-XX:AOTMode=create -XX:AOTConfiguration=$$($1_AOT_JDK_CONF) -XX:AOTCache=$$($1_AOT_JDK_CACHE) \
|
||||||
|
))
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
$1_AOT_TARGETS += $$($1_AOT_JDK_CACHE)
|
$1_AOT_TARGETS += $$($1_AOT_JDK_CACHE)
|
||||||
|
|
||||||
@@ -834,7 +852,7 @@ define SetupRunJtregTestBody
|
|||||||
JTREG_RETRY_COUNT ?= 0
|
JTREG_RETRY_COUNT ?= 0
|
||||||
JTREG_REPEAT_COUNT ?= 0
|
JTREG_REPEAT_COUNT ?= 0
|
||||||
JTREG_REPORT ?= files
|
JTREG_REPORT ?= files
|
||||||
JTREG_AOT_JDK ?= false
|
JTREG_AOT_JDK ?= none
|
||||||
|
|
||||||
ifneq ($$(JTREG_RETRY_COUNT), 0)
|
ifneq ($$(JTREG_RETRY_COUNT), 0)
|
||||||
ifneq ($$(JTREG_REPEAT_COUNT), 0)
|
ifneq ($$(JTREG_REPEAT_COUNT), 0)
|
||||||
@@ -844,6 +862,12 @@ define SetupRunJtregTestBody
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($$(JTREG_RUN_PROBLEM_LISTS), true)
|
||||||
|
JTREG_PROBLEM_LIST_PREFIX := -match:
|
||||||
|
else
|
||||||
|
JTREG_PROBLEM_LIST_PREFIX := -exclude:
|
||||||
|
endif
|
||||||
|
|
||||||
ifneq ($$(JTREG_TEST_THREAD_FACTORY), )
|
ifneq ($$(JTREG_TEST_THREAD_FACTORY), )
|
||||||
$1_JTREG_BASIC_OPTIONS += -testThreadFactoryPath:$$(JTREG_TEST_THREAD_FACTORY_JAR)
|
$1_JTREG_BASIC_OPTIONS += -testThreadFactoryPath:$$(JTREG_TEST_THREAD_FACTORY_JAR)
|
||||||
$1_JTREG_BASIC_OPTIONS += -testThreadFactory:$$(JTREG_TEST_THREAD_FACTORY)
|
$1_JTREG_BASIC_OPTIONS += -testThreadFactory:$$(JTREG_TEST_THREAD_FACTORY)
|
||||||
@@ -872,7 +896,7 @@ define SetupRunJtregTestBody
|
|||||||
# version of the JDK.
|
# version of the JDK.
|
||||||
$1_JTREG_BASIC_OPTIONS += -$$($1_JTREG_TEST_MODE) \
|
$1_JTREG_BASIC_OPTIONS += -$$($1_JTREG_TEST_MODE) \
|
||||||
-verbose:$$(JTREG_VERBOSE) -retain:$$(JTREG_RETAIN) \
|
-verbose:$$(JTREG_VERBOSE) -retain:$$(JTREG_RETAIN) \
|
||||||
-concurrency:$$($1_JTREG_JOBS) -timeoutFactor:$$(JTREG_TIMEOUT_FACTOR) \
|
-concurrency:$$($1_JTREG_JOBS) \
|
||||||
-vmoption:-XX:MaxRAMPercentage=$$($1_JTREG_MAX_RAM_PERCENTAGE) \
|
-vmoption:-XX:MaxRAMPercentage=$$($1_JTREG_MAX_RAM_PERCENTAGE) \
|
||||||
-vmoption:-Dtest.boot.jdk="$$(BOOT_JDK)" \
|
-vmoption:-Dtest.boot.jdk="$$(BOOT_JDK)" \
|
||||||
-vmoption:-Djava.io.tmpdir="$$($1_TEST_TMP_DIR)"
|
-vmoption:-Djava.io.tmpdir="$$($1_TEST_TMP_DIR)"
|
||||||
@@ -905,12 +929,6 @@ define SetupRunJtregTestBody
|
|||||||
$1_JTREG_BASIC_OPTIONS += -nativepath:$$($1_JTREG_NATIVEPATH)
|
$1_JTREG_BASIC_OPTIONS += -nativepath:$$($1_JTREG_NATIVEPATH)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($$(JTREG_RUN_PROBLEM_LISTS), true)
|
|
||||||
JTREG_PROBLEM_LIST_PREFIX := -match:
|
|
||||||
else
|
|
||||||
JTREG_PROBLEM_LIST_PREFIX := -exclude:
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifneq ($$($1_JTREG_PROBLEM_LIST), )
|
ifneq ($$($1_JTREG_PROBLEM_LIST), )
|
||||||
$1_JTREG_BASIC_OPTIONS += $$(addprefix $$(JTREG_PROBLEM_LIST_PREFIX), $$($1_JTREG_PROBLEM_LIST))
|
$1_JTREG_BASIC_OPTIONS += $$(addprefix $$(JTREG_PROBLEM_LIST_PREFIX), $$($1_JTREG_PROBLEM_LIST))
|
||||||
endif
|
endif
|
||||||
@@ -933,6 +951,11 @@ define SetupRunJtregTestBody
|
|||||||
JTREG_AUTO_PROBLEM_LISTS += ProblemList-shenandoah.txt
|
JTREG_AUTO_PROBLEM_LISTS += ProblemList-shenandoah.txt
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifneq ($$(findstring --enable-preview, $$(JTREG_ALL_OPTIONS)), )
|
||||||
|
JTREG_AUTO_PROBLEM_LISTS += ProblemList-enable-preview.txt
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
ifneq ($$(JTREG_EXTRA_PROBLEM_LISTS), )
|
ifneq ($$(JTREG_EXTRA_PROBLEM_LISTS), )
|
||||||
# Accept both absolute paths as well as relative to the current test root.
|
# Accept both absolute paths as well as relative to the current test root.
|
||||||
$1_JTREG_BASIC_OPTIONS += $$(addprefix $$(JTREG_PROBLEM_LIST_PREFIX), $$(wildcard \
|
$1_JTREG_BASIC_OPTIONS += $$(addprefix $$(JTREG_PROBLEM_LIST_PREFIX), $$(wildcard \
|
||||||
@@ -945,6 +968,11 @@ define SetupRunJtregTestBody
|
|||||||
$1_JTREG_BASIC_OPTIONS += -e:JIB_HOME=$$(JIB_HOME)
|
$1_JTREG_BASIC_OPTIONS += -e:JIB_HOME=$$(JIB_HOME)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifneq ($$(JDK_FOR_COMPILE), )
|
||||||
|
# Allow overriding the JDK used for compilation from the command line
|
||||||
|
$1_JTREG_BASIC_OPTIONS += -compilejdk:$$(JDK_FOR_COMPILE)
|
||||||
|
endif
|
||||||
|
|
||||||
$1_JTREG_BASIC_OPTIONS += -e:TEST_IMAGE_DIR=$(TEST_IMAGE_DIR)
|
$1_JTREG_BASIC_OPTIONS += -e:TEST_IMAGE_DIR=$(TEST_IMAGE_DIR)
|
||||||
|
|
||||||
$1_JTREG_BASIC_OPTIONS += -e:DOCS_JDK_IMAGE_DIR=$$(DOCS_JDK_IMAGE_DIR)
|
$1_JTREG_BASIC_OPTIONS += -e:DOCS_JDK_IMAGE_DIR=$$(DOCS_JDK_IMAGE_DIR)
|
||||||
@@ -964,12 +992,12 @@ define SetupRunJtregTestBody
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($$(JTREG_AOT_JDK), true)
|
ifneq ($$(filter $$(JTREG_AOT_JDK), onestep twostep), )
|
||||||
$$(call LogWarn, Add AOT target for $1)
|
$$(call LogWarn, Add AOT target for $1)
|
||||||
$$(eval $$(call SetupAOT, $1, VM_OPTIONS := $$(JTREG_ALL_OPTIONS) ))
|
$$(eval $$(call SetupAOT, $1, \
|
||||||
|
TRAINING := $$(JTREG_AOT_JDK), \
|
||||||
|
VM_OPTIONS := $$(JTREG_ALL_OPTIONS) ))
|
||||||
$$(call LogWarn, AOT_JDK_CACHE=$$($1_AOT_JDK_CACHE))
|
$$(call LogWarn, AOT_JDK_CACHE=$$($1_AOT_JDK_CACHE))
|
||||||
|
|
||||||
$1_JTREG_BASIC_OPTIONS += -vmoption:-XX:AOTCache="$$($1_AOT_JDK_CACHE)"
|
$1_JTREG_BASIC_OPTIONS += -vmoption:-XX:AOTCache="$$($1_AOT_JDK_CACHE)"
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -987,6 +1015,7 @@ define SetupRunJtregTestBody
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
JTREG_TIMEOUT_FACTOR ?= $$(JTREG_AUTO_TIMEOUT_FACTOR)
|
JTREG_TIMEOUT_FACTOR ?= $$(JTREG_AUTO_TIMEOUT_FACTOR)
|
||||||
|
$1_JTREG_BASIC_OPTIONS += -timeoutFactor:$$(JTREG_TIMEOUT_FACTOR)
|
||||||
|
|
||||||
clean-outputdirs-$1:
|
clean-outputdirs-$1:
|
||||||
$$(call LogWarn, Clean up dirs for $1)
|
$$(call LogWarn, Clean up dirs for $1)
|
||||||
@@ -997,7 +1026,6 @@ define SetupRunJtregTestBody
|
|||||||
$$(JTREG_JAVA) $$($1_JTREG_LAUNCHER_OPTIONS) \
|
$$(JTREG_JAVA) $$($1_JTREG_LAUNCHER_OPTIONS) \
|
||||||
-Dprogram=jtreg -jar $$(JT_HOME)/lib/jtreg.jar \
|
-Dprogram=jtreg -jar $$(JT_HOME)/lib/jtreg.jar \
|
||||||
$$($1_JTREG_BASIC_OPTIONS) \
|
$$($1_JTREG_BASIC_OPTIONS) \
|
||||||
-compilejdk:$$(JDK_FOR_COMPILE) \
|
|
||||||
-testjdk:$$(JDK_UNDER_TEST) \
|
-testjdk:$$(JDK_UNDER_TEST) \
|
||||||
-dir:$$(JTREG_TOPDIR) \
|
-dir:$$(JTREG_TOPDIR) \
|
||||||
-reportDir:$$($1_TEST_RESULTS_DIR) \
|
-reportDir:$$($1_TEST_RESULTS_DIR) \
|
||||||
@@ -1016,7 +1044,8 @@ define SetupRunJtregTestBody
|
|||||||
$1_COMMAND_LINE := \
|
$1_COMMAND_LINE := \
|
||||||
for i in {0..$$(JTREG_RETRY_COUNT)}; do \
|
for i in {0..$$(JTREG_RETRY_COUNT)}; do \
|
||||||
if [ "$$$$i" != 0 ]; then \
|
if [ "$$$$i" != 0 ]; then \
|
||||||
$$(PRINTF) "\nRetrying Jtreg run. Attempt: $$$$i\n"; \
|
$$(ECHO) ""; \
|
||||||
|
$$(ECHO) "Retrying Jtreg run. Attempt: $$$$i"; \
|
||||||
fi; \
|
fi; \
|
||||||
$$($1_COMMAND_LINE); \
|
$$($1_COMMAND_LINE); \
|
||||||
if [ "`$$(CAT) $$($1_EXITCODE)`" = "0" ]; then \
|
if [ "`$$(CAT) $$($1_EXITCODE)`" = "0" ]; then \
|
||||||
@@ -1029,10 +1058,12 @@ define SetupRunJtregTestBody
|
|||||||
ifneq ($$(JTREG_REPEAT_COUNT), 0)
|
ifneq ($$(JTREG_REPEAT_COUNT), 0)
|
||||||
$1_COMMAND_LINE := \
|
$1_COMMAND_LINE := \
|
||||||
for i in {1..$$(JTREG_REPEAT_COUNT)}; do \
|
for i in {1..$$(JTREG_REPEAT_COUNT)}; do \
|
||||||
$$(PRINTF) "\nRepeating Jtreg run: $$$$i out of $$(JTREG_REPEAT_COUNT)\n"; \
|
$$(ECHO) ""; \
|
||||||
|
$$(ECHO) "Repeating Jtreg run: $$$$i out of $$(JTREG_REPEAT_COUNT)"; \
|
||||||
$$($1_COMMAND_LINE); \
|
$$($1_COMMAND_LINE); \
|
||||||
if [ "`$$(CAT) $$($1_EXITCODE)`" != "0" ]; then \
|
if [ "`$$(CAT) $$($1_EXITCODE)`" != "0" ]; then \
|
||||||
$$(PRINTF) "\nFailures detected, no more repeats.\n"; \
|
$$(ECHO) ""; \
|
||||||
|
$$(ECHO) "Failures detected, no more repeats."; \
|
||||||
break; \
|
break; \
|
||||||
fi; \
|
fi; \
|
||||||
done
|
done
|
||||||
@@ -1335,12 +1366,14 @@ TARGETS += run-all-tests pre-run-test post-run-test run-test-report run-test
|
|||||||
|
|
||||||
ifeq ($(TEST_OPTS_JCOV), true)
|
ifeq ($(TEST_OPTS_JCOV), true)
|
||||||
|
|
||||||
|
JCOV_VM_OPTS := -Xmx4g -Djdk.xml.totalEntitySizeLimit=0 -Djdk.xml.maxGeneralEntitySizeLimit=0
|
||||||
|
|
||||||
jcov-do-start-grabber:
|
jcov-do-start-grabber:
|
||||||
$(call MakeDir, $(JCOV_OUTPUT_DIR))
|
$(call MakeDir, $(JCOV_OUTPUT_DIR))
|
||||||
if $(JAVA) -jar $(JCOV_HOME)/lib/jcov.jar GrabberManager -status 1>/dev/null 2>&1 ; then \
|
if $(JAVA) -jar $(JCOV_HOME)/lib/jcov.jar GrabberManager -status 1>/dev/null 2>&1 ; then \
|
||||||
$(JAVA) -jar $(JCOV_HOME)/lib/jcov.jar GrabberManager -stop -stoptimeout 3600 ; \
|
$(JAVA) -jar $(JCOV_HOME)/lib/jcov.jar GrabberManager -stop -stoptimeout 3600 ; \
|
||||||
fi
|
fi
|
||||||
$(JAVA) -Xmx4g -jar $(JCOV_HOME)/lib/jcov.jar Grabber -v -t \
|
$(JAVA) $(JCOV_VM_OPTS) -jar $(JCOV_HOME)/lib/jcov.jar Grabber -v -t \
|
||||||
$(JCOV_IMAGE_DIR)/template.xml -o $(JCOV_RESULT_FILE) \
|
$(JCOV_IMAGE_DIR)/template.xml -o $(JCOV_RESULT_FILE) \
|
||||||
1>$(JCOV_GRABBER_LOG) 2>&1 &
|
1>$(JCOV_GRABBER_LOG) 2>&1 &
|
||||||
|
|
||||||
@@ -1353,6 +1386,10 @@ ifeq ($(TEST_OPTS_JCOV), true)
|
|||||||
$(JAVA) -jar $(JCOV_HOME)/lib/jcov.jar GrabberManager -stop -stoptimeout 3600
|
$(JAVA) -jar $(JCOV_HOME)/lib/jcov.jar GrabberManager -stop -stoptimeout 3600
|
||||||
|
|
||||||
JCOV_REPORT_TITLE := JDK code coverage report<br/>
|
JCOV_REPORT_TITLE := JDK code coverage report<br/>
|
||||||
|
ifneq ($(JCOV_MODULES), )
|
||||||
|
JCOV_MODULES_FILTER := $(foreach m, $(JCOV_MODULES), -include_module $m)
|
||||||
|
JCOV_REPORT_TITLE += Included modules: $(JCOV_MODULES)<br>
|
||||||
|
endif
|
||||||
ifneq ($(JCOV_FILTERS), )
|
ifneq ($(JCOV_FILTERS), )
|
||||||
JCOV_REPORT_TITLE += Code filters: $(JCOV_FILTERS)<br>
|
JCOV_REPORT_TITLE += Code filters: $(JCOV_FILTERS)<br>
|
||||||
endif
|
endif
|
||||||
@@ -1360,11 +1397,12 @@ ifeq ($(TEST_OPTS_JCOV), true)
|
|||||||
|
|
||||||
jcov-gen-report: jcov-stop-grabber
|
jcov-gen-report: jcov-stop-grabber
|
||||||
$(call LogWarn, Generating JCov report ...)
|
$(call LogWarn, Generating JCov report ...)
|
||||||
$(JAVA) -Xmx4g -jar $(JCOV_HOME)/lib/jcov.jar RepGen -sourcepath \
|
$(call ExecuteWithLog, $(JCOV_SUPPORT_DIR)/run-jcov-repgen, \
|
||||||
|
$(JAVA) $(JCOV_VM_OPTS) -jar $(JCOV_HOME)/lib/jcov.jar RepGen -sourcepath \
|
||||||
`$(ECHO) $(TOPDIR)/src/*/share/classes/ | $(TR) ' ' ':'` -fmt html \
|
`$(ECHO) $(TOPDIR)/src/*/share/classes/ | $(TR) ' ' ':'` -fmt html \
|
||||||
$(JCOV_FILTERS) \
|
$(JCOV_MODULES_FILTER) $(JCOV_FILTERS) \
|
||||||
-mainReportTitle "$(JCOV_REPORT_TITLE)" \
|
-mainReportTitle "$(JCOV_REPORT_TITLE)" \
|
||||||
-o $(JCOV_REPORT) $(JCOV_RESULT_FILE)
|
-o $(JCOV_REPORT) $(JCOV_RESULT_FILE))
|
||||||
|
|
||||||
TARGETS += jcov-do-start-grabber jcov-start-grabber jcov-stop-grabber \
|
TARGETS += jcov-do-start-grabber jcov-start-grabber jcov-stop-grabber \
|
||||||
jcov-gen-report
|
jcov-gen-report
|
||||||
@@ -1384,7 +1422,7 @@ ifeq ($(TEST_OPTS_JCOV), true)
|
|||||||
jcov-gen-diffcoverage: jcov-stop-grabber
|
jcov-gen-diffcoverage: jcov-stop-grabber
|
||||||
$(call LogWarn, Generating diff coverage with changeset $(TEST_OPTS_JCOV_DIFF_CHANGESET) ... )
|
$(call LogWarn, Generating diff coverage with changeset $(TEST_OPTS_JCOV_DIFF_CHANGESET) ... )
|
||||||
$(DIFF_COMMAND)
|
$(DIFF_COMMAND)
|
||||||
$(JAVA) -Xmx4g -jar $(JCOV_HOME)/lib/jcov.jar \
|
$(JAVA) $(JCOV_VM_OPTS) -jar $(JCOV_HOME)/lib/jcov.jar \
|
||||||
DiffCoverage -replaceDiff "src/.*/classes/:" -all \
|
DiffCoverage -replaceDiff "src/.*/classes/:" -all \
|
||||||
$(JCOV_RESULT_FILE) $(JCOV_SOURCE_DIFF) > \
|
$(JCOV_RESULT_FILE) $(JCOV_SOURCE_DIFF) > \
|
||||||
$(JCOV_DIFF_COVERAGE_REPORT)
|
$(JCOV_DIFF_COVERAGE_REPORT)
|
||||||
|
|||||||
@@ -217,9 +217,9 @@ else ifeq ($(OPENJDK_TARGET_OS), macosx)
|
|||||||
else ifeq ($(OPENJDK_TARGET_OS), windows)
|
else ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||||
NUM_CORES := $(NUMBER_OF_PROCESSORS)
|
NUM_CORES := $(NUMBER_OF_PROCESSORS)
|
||||||
MEMORY_SIZE := $(shell \
|
MEMORY_SIZE := $(shell \
|
||||||
$(EXPR) `wmic computersystem get totalphysicalmemory -value \
|
$(EXPR) `powershell -Command \
|
||||||
| $(GREP) = | $(SED) 's/\\r//g' \
|
"(Get-CimInstance Win32_ComputerSystem).TotalPhysicalMemory" \
|
||||||
| $(CUT) -d "=" -f 2-` / 1024 / 1024 \
|
| $(SED) 's/\\r//g' ` / 1024 / 1024 \
|
||||||
)
|
)
|
||||||
endif
|
endif
|
||||||
ifeq ($(NUM_CORES), )
|
ifeq ($(NUM_CORES), )
|
||||||
@@ -298,7 +298,7 @@ test-prebuilt:
|
|||||||
@$(RM) -f $(MAKESUPPORT_OUTPUTDIR)/exit-with-error
|
@$(RM) -f $(MAKESUPPORT_OUTPUTDIR)/exit-with-error
|
||||||
# We need to fill the FindTest cache before entering RunTests.gmk.
|
# We need to fill the FindTest cache before entering RunTests.gmk.
|
||||||
@cd $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) SPEC=$(SPEC) \
|
@cd $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) SPEC=$(SPEC) \
|
||||||
-f RunTestsPrebuiltFindTests.gmk
|
-f GenerateFindTests.gmk
|
||||||
@cd $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f RunTests.gmk run-test \
|
@cd $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f RunTests.gmk run-test \
|
||||||
TEST="$(TEST)"
|
TEST="$(TEST)"
|
||||||
|
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ ifneq ($(and $(GIT), $(wildcard $(TOPDIR)/.git)), )
|
|||||||
SCM_DIR := .git
|
SCM_DIR := .git
|
||||||
ID_COMMAND := $(PRINTF) "git:%s%s\n" \
|
ID_COMMAND := $(PRINTF) "git:%s%s\n" \
|
||||||
"$$($(GIT) log -n1 --format=%H | cut -c1-12)" \
|
"$$($(GIT) log -n1 --format=%H | cut -c1-12)" \
|
||||||
"$$(if test -n "$$($(GIT) status --porcelain)"; then printf '+'; fi)"
|
"$$(if test -n "$$($(GIT) status --porcelain)"; then $(PRINTF) '+'; fi)"
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(USE_SCM), true)
|
ifeq ($(USE_SCM), true)
|
||||||
|
|||||||
@@ -134,17 +134,33 @@ AC_DEFUN_ONCE([BASIC_SETUP_BUILD_ENV],
|
|||||||
)
|
)
|
||||||
AC_SUBST(BUILD_ENV)
|
AC_SUBST(BUILD_ENV)
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([for locale to use])
|
||||||
if test "x$LOCALE" != x; then
|
if test "x$LOCALE" != x; then
|
||||||
# Check if we actually have C.UTF-8; if so, use it
|
# Check if we actually have C.UTF-8; if so, use it
|
||||||
if $LOCALE -a | $GREP -q -E "^C\.(utf8|UTF-8)$"; then
|
if $LOCALE -a | $GREP -q -E "^C\.(utf8|UTF-8)$"; then
|
||||||
LOCALE_USED=C.UTF-8
|
LOCALE_USED=C.UTF-8
|
||||||
|
AC_MSG_RESULT([C.UTF-8 (recommended)])
|
||||||
|
elif $LOCALE -a | $GREP -q -E "^en_US\.(utf8|UTF-8)$"; then
|
||||||
|
LOCALE_USED=en_US.UTF-8
|
||||||
|
AC_MSG_RESULT([en_US.UTF-8 (acceptable fallback)])
|
||||||
else
|
else
|
||||||
AC_MSG_WARN([C.UTF-8 locale not found, using C locale])
|
# As a fallback, check if users locale is UTF-8. USER_LOCALE was saved
|
||||||
LOCALE_USED=C
|
# by the wrapper configure script before autconf messed up LC_ALL.
|
||||||
|
if $ECHO $USER_LOCALE | $GREP -q -E "\.(utf8|UTF-8)$"; then
|
||||||
|
LOCALE_USED=$USER_LOCALE
|
||||||
|
AC_MSG_RESULT([$USER_LOCALE (untested fallback)])
|
||||||
|
AC_MSG_WARN([Could not find C.UTF-8 or en_US.UTF-8 locale. This is not supported, and the build might fail unexpectedly.])
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT([no UTF-8 locale found])
|
||||||
|
AC_MSG_WARN([No UTF-8 locale found. This is not supported. Proceeding with the C locale, but the build might fail unexpectedly.])
|
||||||
|
LOCALE_USED=C
|
||||||
|
fi
|
||||||
|
AC_MSG_NOTICE([The recommended locale is C.UTF-8, but en_US.UTF-8 is also accepted.])
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
AC_MSG_WARN([locale command not not found, using C locale])
|
LOCALE_USED=C.UTF-8
|
||||||
LOCALE_USED=C
|
AC_MSG_RESULT([C.UTF-8 (default)])
|
||||||
|
AC_MSG_WARN([locale command not not found, using C.UTF-8 locale])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
export LC_ALL=$LOCALE_USED
|
export LC_ALL=$LOCALE_USED
|
||||||
@@ -399,11 +415,21 @@ AC_DEFUN_ONCE([BASIC_SETUP_OUTPUT_DIR],
|
|||||||
[ CONF_NAME=${with_conf_name} ])
|
[ CONF_NAME=${with_conf_name} ])
|
||||||
|
|
||||||
# Test from where we are running configure, in or outside of src root.
|
# Test from where we are running configure, in or outside of src root.
|
||||||
|
if test "x$OPENJDK_BUILD_OS" = xwindows || test "x$OPENJDK_BUILD_OS" = "xmacosx"; then
|
||||||
|
# These systems have case insensitive paths, so convert them to lower case.
|
||||||
|
[ cmp_configure_start_dir=`$ECHO $CONFIGURE_START_DIR | $TR '[:upper:]' '[:lower:]'` ]
|
||||||
|
[ cmp_topdir=`$ECHO $TOPDIR | $TR '[:upper:]' '[:lower:]'` ]
|
||||||
|
[ cmp_custom_root=`$ECHO $CUSTOM_ROOT | $TR '[:upper:]' '[:lower:]'` ]
|
||||||
|
else
|
||||||
|
cmp_configure_start_dir="$CONFIGURE_START_DIR"
|
||||||
|
cmp_topdir="$TOPDIR"
|
||||||
|
cmp_custom_root="$CUSTOM_ROOT"
|
||||||
|
fi
|
||||||
AC_MSG_CHECKING([where to store configuration])
|
AC_MSG_CHECKING([where to store configuration])
|
||||||
if test "x$CONFIGURE_START_DIR" = "x$TOPDIR" \
|
if test "x$cmp_configure_start_dir" = "x$cmp_topdir" \
|
||||||
|| test "x$CONFIGURE_START_DIR" = "x$CUSTOM_ROOT" \
|
|| test "x$cmp_configure_start_dir" = "x$cmp_custom_root" \
|
||||||
|| test "x$CONFIGURE_START_DIR" = "x$TOPDIR/make/autoconf" \
|
|| test "x$cmp_configure_start_dir" = "x$cmp_topdir/make/autoconf" \
|
||||||
|| test "x$CONFIGURE_START_DIR" = "x$TOPDIR/make" ; then
|
|| test "x$cmp_configure_start_dir" = "x$cmp_topdir/make" ; then
|
||||||
# We are running configure from the src root.
|
# We are running configure from the src root.
|
||||||
# Create a default ./build/target-variant-debuglevel output root.
|
# Create a default ./build/target-variant-debuglevel output root.
|
||||||
if test "x${CONF_NAME}" = x; then
|
if test "x${CONF_NAME}" = x; then
|
||||||
@@ -424,7 +450,12 @@ AC_DEFUN_ONCE([BASIC_SETUP_OUTPUT_DIR],
|
|||||||
# If configuration is situated in normal build directory, just use the build
|
# If configuration is situated in normal build directory, just use the build
|
||||||
# directory name as configuration name, otherwise use the complete path.
|
# directory name as configuration name, otherwise use the complete path.
|
||||||
if test "x${CONF_NAME}" = x; then
|
if test "x${CONF_NAME}" = x; then
|
||||||
CONF_NAME=`$ECHO $CONFIGURE_START_DIR | $SED -e "s!^${TOPDIR}/build/!!"`
|
[ if [[ "$cmp_configure_start_dir" =~ ^${cmp_topdir}/build/[^/]+$ ||
|
||||||
|
"$cmp_configure_start_dir" =~ ^${cmp_custom_root}/build/[^/]+$ ]]; then ]
|
||||||
|
CONF_NAME="${CONFIGURE_START_DIR##*/}"
|
||||||
|
else
|
||||||
|
CONF_NAME="$CONFIGURE_START_DIR"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
OUTPUTDIR="$CONFIGURE_START_DIR"
|
OUTPUTDIR="$CONFIGURE_START_DIR"
|
||||||
AC_MSG_RESULT([in current directory])
|
AC_MSG_RESULT([in current directory])
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2025, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -57,6 +57,7 @@ AC_DEFUN_ONCE([BASIC_SETUP_FUNDAMENTAL_TOOLS],
|
|||||||
UTIL_LOOKUP_PROGS(LOCALE, locale)
|
UTIL_LOOKUP_PROGS(LOCALE, locale)
|
||||||
UTIL_LOOKUP_PROGS(PATHTOOL, cygpath wslpath)
|
UTIL_LOOKUP_PROGS(PATHTOOL, cygpath wslpath)
|
||||||
UTIL_LOOKUP_PROGS(CMD, cmd.exe, $PATH:/cygdrive/c/windows/system32:/mnt/c/windows/system32:/c/windows/system32)
|
UTIL_LOOKUP_PROGS(CMD, cmd.exe, $PATH:/cygdrive/c/windows/system32:/mnt/c/windows/system32:/c/windows/system32)
|
||||||
|
UTIL_LOOKUP_PROGS(LSB_RELEASE, lsb_release)
|
||||||
])
|
])
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
@@ -106,9 +107,6 @@ AC_DEFUN_ONCE([BASIC_SETUP_TOOLS],
|
|||||||
UTIL_LOOKUP_PROGS(READLINK, greadlink readlink)
|
UTIL_LOOKUP_PROGS(READLINK, greadlink readlink)
|
||||||
UTIL_LOOKUP_PROGS(WHOAMI, whoami)
|
UTIL_LOOKUP_PROGS(WHOAMI, whoami)
|
||||||
|
|
||||||
# Tools only needed on some platforms
|
|
||||||
UTIL_LOOKUP_PROGS(LSB_RELEASE, lsb_release)
|
|
||||||
|
|
||||||
# For compare.sh only
|
# For compare.sh only
|
||||||
UTIL_LOOKUP_PROGS(CMP, cmp)
|
UTIL_LOOKUP_PROGS(CMP, cmp)
|
||||||
UTIL_LOOKUP_PROGS(UNIQ, uniq)
|
UTIL_LOOKUP_PROGS(UNIQ, uniq)
|
||||||
@@ -470,7 +468,15 @@ AC_DEFUN_ONCE([BASIC_SETUP_PANDOC],
|
|||||||
AC_MSG_CHECKING([if the pandoc smart extension needs to be disabled for markdown])
|
AC_MSG_CHECKING([if the pandoc smart extension needs to be disabled for markdown])
|
||||||
if $PANDOC --list-extensions | $GREP -q '+smart'; then
|
if $PANDOC --list-extensions | $GREP -q '+smart'; then
|
||||||
AC_MSG_RESULT([yes])
|
AC_MSG_RESULT([yes])
|
||||||
PANDOC_MARKDOWN_FLAG="markdown-smart"
|
PANDOC_MARKDOWN_FLAG="$PANDOC_MARKDOWN_FLAG-smart"
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT([no])
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([if the pandoc tex_math_dollars extension needs to be disabled for markdown])
|
||||||
|
if $PANDOC --list-extensions | $GREP -q '+tex_math_dollars'; then
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
PANDOC_MARKDOWN_FLAG="$PANDOC_MARKDOWN_FLAG-tex_math_dollars"
|
||||||
else
|
else
|
||||||
AC_MSG_RESULT([no])
|
AC_MSG_RESULT([no])
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2022, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2025, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -159,7 +159,7 @@ AC_DEFUN([BASIC_SETUP_PATHS_WINDOWS],
|
|||||||
else
|
else
|
||||||
WINENV_PREFIX_ARG="$WINENV_PREFIX"
|
WINENV_PREFIX_ARG="$WINENV_PREFIX"
|
||||||
fi
|
fi
|
||||||
FIXPATH_ARGS="-e $PATHTOOL -p $WINENV_PREFIX_ARG -r ${WINENV_ROOT//\\/\\\\} -t $WINENV_TEMP_DIR -c $CMD -q"
|
FIXPATH_ARGS="-e $PATHTOOL -p $WINENV_PREFIX_ARG -r ${WINENV_ROOT//\\/\\\\} -t $WINENV_TEMP_DIR -c $CMD"
|
||||||
FIXPATH_BASE="$BASH $FIXPATH_DIR/fixpath.sh $FIXPATH_ARGS"
|
FIXPATH_BASE="$BASH $FIXPATH_DIR/fixpath.sh $FIXPATH_ARGS"
|
||||||
FIXPATH="$FIXPATH_BASE exec"
|
FIXPATH="$FIXPATH_BASE exec"
|
||||||
|
|
||||||
@@ -215,7 +215,7 @@ AC_DEFUN([BASIC_WINDOWS_FINALIZE_FIXPATH],
|
|||||||
if test "x$OPENJDK_BUILD_OS" = xwindows; then
|
if test "x$OPENJDK_BUILD_OS" = xwindows; then
|
||||||
FIXPATH_CMDLINE=". $TOPDIR/make/scripts/fixpath.sh -e $PATHTOOL \
|
FIXPATH_CMDLINE=". $TOPDIR/make/scripts/fixpath.sh -e $PATHTOOL \
|
||||||
-p $WINENV_PREFIX_ARG -r ${WINENV_ROOT//\\/\\\\} -t $WINENV_TEMP_DIR \
|
-p $WINENV_PREFIX_ARG -r ${WINENV_ROOT//\\/\\\\} -t $WINENV_TEMP_DIR \
|
||||||
-c $CMD -q"
|
-c $CMD"
|
||||||
$ECHO > $OUTPUTDIR/fixpath '#!/bin/bash'
|
$ECHO > $OUTPUTDIR/fixpath '#!/bin/bash'
|
||||||
$ECHO >> $OUTPUTDIR/fixpath export PATH='"[$]PATH:'$PATH'"'
|
$ECHO >> $OUTPUTDIR/fixpath export PATH='"[$]PATH:'$PATH'"'
|
||||||
$ECHO >> $OUTPUTDIR/fixpath $FIXPATH_CMDLINE '"[$]@"'
|
$ECHO >> $OUTPUTDIR/fixpath $FIXPATH_CMDLINE '"[$]@"'
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2025, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -180,11 +180,13 @@ AC_DEFUN([BOOTJDK_CHECK_JAVA_HOME],
|
|||||||
# Test: Is there a java or javac in the PATH, which is a symlink to the JDK?
|
# Test: Is there a java or javac in the PATH, which is a symlink to the JDK?
|
||||||
AC_DEFUN([BOOTJDK_CHECK_JAVA_IN_PATH_IS_SYMLINK],
|
AC_DEFUN([BOOTJDK_CHECK_JAVA_IN_PATH_IS_SYMLINK],
|
||||||
[
|
[
|
||||||
UTIL_LOOKUP_PROGS(JAVAC_CHECK, javac, , NOFIXPATH)
|
UTIL_LOOKUP_PROGS(JAVAC_CHECK, javac)
|
||||||
UTIL_LOOKUP_PROGS(JAVA_CHECK, java, , NOFIXPATH)
|
UTIL_GET_EXECUTABLE(JAVAC_CHECK) # Will setup JAVAC_CHECK_EXECUTABLE
|
||||||
BINARY="$JAVAC_CHECK"
|
UTIL_LOOKUP_PROGS(JAVA_CHECK, java)
|
||||||
if test "x$JAVAC_CHECK" = x; then
|
UTIL_GET_EXECUTABLE(JAVA_CHECK) # Will setup JAVA_CHECK_EXECUTABLE
|
||||||
BINARY="$JAVA_CHECK"
|
BINARY="$JAVAC_CHECK_EXECUTABLE"
|
||||||
|
if test "x$JAVAC_CHECK_EXECUTABLE" = x; then
|
||||||
|
BINARY="$JAVA_CHECK_EXECUTABLE"
|
||||||
fi
|
fi
|
||||||
if test "x$BINARY" != x; then
|
if test "x$BINARY" != x; then
|
||||||
# So there is a java(c) binary, it might be part of a JDK.
|
# So there is a java(c) binary, it might be part of a JDK.
|
||||||
|
|||||||
12
make/autoconf/build-aux/config.guess
vendored
12
make/autoconf/build-aux/config.guess
vendored
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#
|
#
|
||||||
# Copyright (c) 2012, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2012, 2025, Oracle and/or its affiliates. All rights reserved.
|
||||||
# Copyright (c) 2021, Azul Systems, Inc. All rights reserved.
|
# Copyright (c) 2021, Azul Systems, Inc. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
@@ -53,10 +53,10 @@ if [ "x$OUT" = x ]; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Test and fix cygwin on x86_64
|
# Test and fix cygwin/msys CPUs
|
||||||
echo $OUT | grep 86-pc-cygwin > /dev/null 2> /dev/null
|
echo $OUT | grep -e "-pc-cygwin" > /dev/null 2> /dev/null
|
||||||
if test $? != 0; then
|
if test $? != 0; then
|
||||||
echo $OUT | grep 86-pc-mingw > /dev/null 2> /dev/null
|
echo $OUT | grep -e "-pc-mingw" > /dev/null 2> /dev/null
|
||||||
fi
|
fi
|
||||||
if test $? = 0; then
|
if test $? = 0; then
|
||||||
case `echo $PROCESSOR_IDENTIFIER | cut -f1 -d' '` in
|
case `echo $PROCESSOR_IDENTIFIER | cut -f1 -d' '` in
|
||||||
@@ -64,6 +64,10 @@ if test $? = 0; then
|
|||||||
REAL_CPU=x86_64
|
REAL_CPU=x86_64
|
||||||
OUT=$REAL_CPU`echo $OUT | sed -e 's/[^-]*//'`
|
OUT=$REAL_CPU`echo $OUT | sed -e 's/[^-]*//'`
|
||||||
;;
|
;;
|
||||||
|
ARMv8)
|
||||||
|
REAL_CPU=aarch64
|
||||||
|
OUT=$REAL_CPU`echo $OUT | sed -e 's/[^-]*//'`
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2025, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -75,7 +75,8 @@ AC_DEFUN([BPERF_CHECK_MEMORY_SIZE],
|
|||||||
FOUND_MEM=yes
|
FOUND_MEM=yes
|
||||||
elif test "x$OPENJDK_BUILD_OS" = xwindows; then
|
elif test "x$OPENJDK_BUILD_OS" = xwindows; then
|
||||||
# Windows, but without cygwin
|
# Windows, but without cygwin
|
||||||
MEMORY_SIZE=`wmic computersystem get totalphysicalmemory -value | grep = | cut -d "=" -f 2-`
|
MEMORY_SIZE=`powershell -Command \
|
||||||
|
"(Get-CimInstance Win32_ComputerSystem).TotalPhysicalMemory" | $SED 's/\\r//g' `
|
||||||
MEMORY_SIZE=`expr $MEMORY_SIZE / 1024 / 1024`
|
MEMORY_SIZE=`expr $MEMORY_SIZE / 1024 / 1024`
|
||||||
FOUND_MEM=yes
|
FOUND_MEM=yes
|
||||||
fi
|
fi
|
||||||
|
|||||||
4
make/autoconf/configure
vendored
4
make/autoconf/configure
vendored
@@ -49,7 +49,9 @@ fi
|
|||||||
export CONFIG_SHELL=$BASH
|
export CONFIG_SHELL=$BASH
|
||||||
export _as_can_reexec=no
|
export _as_can_reexec=no
|
||||||
|
|
||||||
# Make sure all shell commands are executed with the C locale
|
# Save user's current locale, but make sure all future shell commands are
|
||||||
|
# executed with the C locale
|
||||||
|
export USER_LOCALE=$LC_ALL
|
||||||
export LC_ALL=C
|
export LC_ALL=C
|
||||||
|
|
||||||
if test "x$CUSTOM_CONFIG_DIR" != x; then
|
if test "x$CUSTOM_CONFIG_DIR" != x; then
|
||||||
|
|||||||
@@ -261,6 +261,7 @@ JDKOPT_ENABLE_DISABLE_CDS_ARCHIVE_COH
|
|||||||
JDKOPT_ENABLE_DISABLE_COMPATIBLE_CDS_ALIGNMENT
|
JDKOPT_ENABLE_DISABLE_COMPATIBLE_CDS_ALIGNMENT
|
||||||
JDKOPT_SETUP_MACOSX_SIGNING
|
JDKOPT_SETUP_MACOSX_SIGNING
|
||||||
JDKOPT_SETUP_SIGNING_HOOK
|
JDKOPT_SETUP_SIGNING_HOOK
|
||||||
|
JDKOPT_SETUP_JAVA_WARNINGS
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -573,12 +573,20 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
|
|||||||
TOOLCHAIN_CFLAGS_JDK="$TOOLCHAIN_CFLAGS_JDK -fvisibility=hidden -fstack-protector"
|
TOOLCHAIN_CFLAGS_JDK="$TOOLCHAIN_CFLAGS_JDK -fvisibility=hidden -fstack-protector"
|
||||||
|
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||||
# The -utf-8 option sets source and execution character sets to UTF-8 to enable correct
|
TOOLCHAIN_CFLAGS_JVM="-nologo -MD -Zc:preprocessor -Zc:inline -Zc:throwingNew -permissive- -MP"
|
||||||
# compilation of all source files regardless of the active code page on Windows.
|
TOOLCHAIN_CFLAGS_JDK="-nologo -MD -Zc:preprocessor -Zc:inline -Zc:throwingNew -permissive- -Zc:wchar_t-"
|
||||||
TOOLCHAIN_CFLAGS_JVM="-nologo -MD -Zc:preprocessor -Zc:inline -Zc:throwingNew -permissive- -utf-8 -MP"
|
|
||||||
TOOLCHAIN_CFLAGS_JDK="-nologo -MD -Zc:preprocessor -Zc:inline -Zc:throwingNew -permissive- -utf-8 -Zc:wchar_t-"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Set character encoding in source
|
||||||
|
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||||
|
CHARSET_CFLAGS="-finput-charset=utf-8"
|
||||||
|
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||||
|
# The -utf-8 option sets both source and execution character sets
|
||||||
|
CHARSET_CFLAGS="-utf-8 -validate-charset"
|
||||||
|
fi
|
||||||
|
TOOLCHAIN_CFLAGS_JVM="$TOOLCHAIN_CFLAGS_JVM $CHARSET_CFLAGS"
|
||||||
|
TOOLCHAIN_CFLAGS_JDK="$TOOLCHAIN_CFLAGS_JDK $CHARSET_CFLAGS"
|
||||||
|
|
||||||
# CFLAGS C language level for JDK sources (hotspot only uses C++)
|
# CFLAGS C language level for JDK sources (hotspot only uses C++)
|
||||||
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
|
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||||
LANGSTD_CFLAGS="-std=c11"
|
LANGSTD_CFLAGS="-std=c11"
|
||||||
@@ -721,11 +729,10 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP],
|
|||||||
$1_CFLAGS_CPU="-fsigned-char -Wno-psabi $ARM_ARCH_TYPE_FLAGS $ARM_FLOAT_TYPE_FLAGS -DJDK_ARCH_ABI_PROP_NAME='\"\$(JDK_ARCH_ABI_PROP_NAME)\"'"
|
$1_CFLAGS_CPU="-fsigned-char -Wno-psabi $ARM_ARCH_TYPE_FLAGS $ARM_FLOAT_TYPE_FLAGS -DJDK_ARCH_ABI_PROP_NAME='\"\$(JDK_ARCH_ABI_PROP_NAME)\"'"
|
||||||
$1_CFLAGS_CPU_JVM="-DARM"
|
$1_CFLAGS_CPU_JVM="-DARM"
|
||||||
elif test "x$FLAGS_CPU_ARCH" = xppc; then
|
elif test "x$FLAGS_CPU_ARCH" = xppc; then
|
||||||
$1_CFLAGS_CPU_JVM="-minsert-sched-nops=regroup_exact -mno-multiple -mno-string"
|
$1_CFLAGS_CPU_JVM="-mno-multiple -mno-string"
|
||||||
if test "x$FLAGS_CPU" = xppc64; then
|
if test "x$FLAGS_CPU" = xppc64; then
|
||||||
# -mminimal-toc fixes `relocation truncated to fit' error for gcc 4.1.
|
# -mminimal-toc fixes `relocation truncated to fit' error for gcc 4.1.
|
||||||
# Use ppc64 instructions, but schedule for power5
|
$1_CFLAGS_CPU="-mcpu=power8 -mtune=power8"
|
||||||
$1_CFLAGS_CPU="-mcpu=powerpc64 -mtune=power5"
|
|
||||||
$1_CFLAGS_CPU_JVM="${$1_CFLAGS_CPU_JVM} -mminimal-toc"
|
$1_CFLAGS_CPU_JVM="${$1_CFLAGS_CPU_JVM} -mminimal-toc"
|
||||||
elif test "x$FLAGS_CPU" = xppc64le; then
|
elif test "x$FLAGS_CPU" = xppc64le; then
|
||||||
# Little endian machine uses ELFv2 ABI.
|
# Little endian machine uses ELFv2 ABI.
|
||||||
|
|||||||
@@ -228,19 +228,19 @@ AC_DEFUN_ONCE([HELP_PRINT_ADDITIONAL_HELP_AND_EXIT],
|
|||||||
if test "x$CONFIGURE_PRINT_ADDITIONAL_HELP" != x; then
|
if test "x$CONFIGURE_PRINT_ADDITIONAL_HELP" != x; then
|
||||||
|
|
||||||
# Print available toolchains
|
# Print available toolchains
|
||||||
$PRINTF "The following toolchains are valid as arguments to --with-toolchain-type.\n"
|
$ECHO "The following toolchains are valid as arguments to --with-toolchain-type."
|
||||||
$PRINTF "Which are available to use depends on the build platform.\n"
|
$ECHO "Which are available to use depends on the build platform."
|
||||||
for toolchain in $VALID_TOOLCHAINS_all; do
|
for toolchain in $VALID_TOOLCHAINS_all; do
|
||||||
# Use indirect variable referencing
|
# Use indirect variable referencing
|
||||||
toolchain_var_name=TOOLCHAIN_DESCRIPTION_$toolchain
|
toolchain_var_name=TOOLCHAIN_DESCRIPTION_$toolchain
|
||||||
TOOLCHAIN_DESCRIPTION=${!toolchain_var_name}
|
TOOLCHAIN_DESCRIPTION=${!toolchain_var_name}
|
||||||
$PRINTF " %-22s %s\n" $toolchain "$TOOLCHAIN_DESCRIPTION"
|
$PRINTF " %-22s %s\n" $toolchain "$TOOLCHAIN_DESCRIPTION"
|
||||||
done
|
done
|
||||||
$PRINTF "\n"
|
$ECHO ""
|
||||||
|
|
||||||
# Print available JVM features
|
# Print available JVM features
|
||||||
$PRINTF "The following JVM features are valid as arguments to --with-jvm-features.\n"
|
$ECHO "The following JVM features are valid as arguments to --with-jvm-features."
|
||||||
$PRINTF "Which are available to use depends on the environment and JVM variant.\n"
|
$ECHO "Which are available to use depends on the environment and JVM variant."
|
||||||
m4_foreach(FEATURE, m4_split(jvm_features_valid), [
|
m4_foreach(FEATURE, m4_split(jvm_features_valid), [
|
||||||
# Create an m4 variable containing the description for FEATURE.
|
# Create an m4 variable containing the description for FEATURE.
|
||||||
m4_define(FEATURE_DESCRIPTION, [jvm_feature_desc_]m4_translit(FEATURE, -, _))
|
m4_define(FEATURE_DESCRIPTION, [jvm_feature_desc_]m4_translit(FEATURE, -, _))
|
||||||
@@ -257,115 +257,117 @@ AC_DEFUN_ONCE([HELP_PRINT_SUMMARY_AND_WARNINGS],
|
|||||||
[
|
[
|
||||||
# Finally output some useful information to the user
|
# Finally output some useful information to the user
|
||||||
|
|
||||||
printf "\n"
|
$ECHO ""
|
||||||
printf "====================================================\n"
|
$ECHO "===================================================="
|
||||||
if test "x$no_create" != "xyes"; then
|
if test "x$no_create" != "xyes"; then
|
||||||
if test "x$IS_RECONFIGURE" != "xyes"; then
|
if test "x$IS_RECONFIGURE" != "xyes"; then
|
||||||
printf "A new configuration has been successfully created in\n%s\n" "$OUTPUTDIR"
|
$ECHO "A new configuration has been successfully created in"
|
||||||
|
$ECHO "$OUTPUTDIR"
|
||||||
else
|
else
|
||||||
printf "The existing configuration has been successfully updated in\n%s\n" "$OUTPUTDIR"
|
$ECHO "The existing configuration has been successfully updated in"
|
||||||
|
$ECHO "$OUTPUTDIR"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
if test "x$IS_RECONFIGURE" != "xyes"; then
|
if test "x$IS_RECONFIGURE" != "xyes"; then
|
||||||
printf "A configuration has been successfully checked but not created\n"
|
$ECHO "A configuration has been successfully checked but not created"
|
||||||
else
|
else
|
||||||
printf "The existing configuration has been successfully checked in\n%s\n" "$OUTPUTDIR"
|
$ECHO "The existing configuration has been successfully checked in"
|
||||||
|
$ECHO "$OUTPUTDIR"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if test "x$CONFIGURE_COMMAND_LINE" != x; then
|
if test "x$CONFIGURE_COMMAND_LINE" != x; then
|
||||||
printf "using configure arguments '$CONFIGURE_COMMAND_LINE'.\n"
|
$ECHO "using configure arguments '$CONFIGURE_COMMAND_LINE'."
|
||||||
else
|
else
|
||||||
printf "using default settings.\n"
|
$ECHO "using default settings."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "x$REAL_CONFIGURE_COMMAND_EXEC_FULL" != x; then
|
if test "x$REAL_CONFIGURE_COMMAND_EXEC_FULL" != x; then
|
||||||
printf "\n"
|
$ECHO ""
|
||||||
printf "The original configure invocation was '$REAL_CONFIGURE_COMMAND_EXEC_SHORT $REAL_CONFIGURE_COMMAND_LINE'.\n"
|
$ECHO "The original configure invocation was '$REAL_CONFIGURE_COMMAND_EXEC_SHORT $REAL_CONFIGURE_COMMAND_LINE'."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
printf "\n"
|
$ECHO ""
|
||||||
printf "Configuration summary:\n"
|
$ECHO "Configuration summary:"
|
||||||
printf "* Name: $CONF_NAME\n"
|
$ECHO "* Name: $CONF_NAME"
|
||||||
printf "* Debug level: $DEBUG_LEVEL\n"
|
$ECHO "* Debug level: $DEBUG_LEVEL"
|
||||||
printf "* HS debug level: $HOTSPOT_DEBUG_LEVEL\n"
|
$ECHO "* HS debug level: $HOTSPOT_DEBUG_LEVEL"
|
||||||
printf "* JVM variants: $JVM_VARIANTS\n"
|
$ECHO "* JVM variants: $JVM_VARIANTS"
|
||||||
printf "* JVM features: "
|
$PRINTF "* JVM features: "
|
||||||
|
|
||||||
for variant in $JVM_VARIANTS; do
|
for variant in $JVM_VARIANTS; do
|
||||||
features_var_name=JVM_FEATURES_$variant
|
features_var_name=JVM_FEATURES_$variant
|
||||||
JVM_FEATURES_FOR_VARIANT=${!features_var_name}
|
JVM_FEATURES_FOR_VARIANT=${!features_var_name}
|
||||||
printf "$variant: \'$JVM_FEATURES_FOR_VARIANT\' "
|
$PRINTF "%s: \'%s\' " "$variant" "$JVM_FEATURES_FOR_VARIANT"
|
||||||
done
|
done
|
||||||
printf "\n"
|
$ECHO ""
|
||||||
|
|
||||||
printf "* OpenJDK target: OS: $OPENJDK_TARGET_OS, CPU architecture: $OPENJDK_TARGET_CPU_ARCH, address length: $OPENJDK_TARGET_CPU_BITS\n"
|
$ECHO "* OpenJDK target: OS: $OPENJDK_TARGET_OS, CPU architecture: $OPENJDK_TARGET_CPU_ARCH, address length: $OPENJDK_TARGET_CPU_BITS"
|
||||||
printf "* Version string: $VERSION_STRING ($VERSION_SHORT)\n"
|
$ECHO "* Version string: $VERSION_STRING ($VERSION_SHORT)"
|
||||||
|
|
||||||
if test "x$SOURCE_DATE" != xupdated; then
|
if test "x$SOURCE_DATE" != xupdated; then
|
||||||
source_date_info="$SOURCE_DATE ($SOURCE_DATE_ISO_8601)"
|
source_date_info="$SOURCE_DATE ($SOURCE_DATE_ISO_8601)"
|
||||||
else
|
else
|
||||||
source_date_info="Determined at build time"
|
source_date_info="Determined at build time"
|
||||||
fi
|
fi
|
||||||
printf "* Source date: $source_date_info\n"
|
$ECHO "* Source date: $source_date_info"
|
||||||
|
|
||||||
printf "\n"
|
$ECHO ""
|
||||||
printf "Tools summary:\n"
|
$ECHO "Tools summary:"
|
||||||
if test "x$OPENJDK_BUILD_OS" = "xwindows"; then
|
if test "x$OPENJDK_BUILD_OS" = "xwindows"; then
|
||||||
printf "* Environment: %s version %s; windows version %s; prefix \"%s\"; root \"%s\"\n" \
|
$ECHO "* Environment: $WINENV_VENDOR version $WINENV_VERSION; windows version $WINDOWS_VERSION; prefix \"$WINENV_PREFIX\"; root \"$WINENV_ROOT\""
|
||||||
"$WINENV_VENDOR" "$WINENV_VERSION" "$WINDOWS_VERSION" "$WINENV_PREFIX" "$WINENV_ROOT"
|
|
||||||
fi
|
fi
|
||||||
printf "* Boot JDK: $BOOT_JDK_VERSION (at $BOOT_JDK)\n"
|
$ECHO "* Boot JDK: $BOOT_JDK_VERSION (at $BOOT_JDK)"
|
||||||
printf "* Toolchain: $TOOLCHAIN_TYPE ($TOOLCHAIN_DESCRIPTION)\n"
|
$ECHO "* Toolchain: $TOOLCHAIN_TYPE ($TOOLCHAIN_DESCRIPTION)"
|
||||||
if test "x$DEVKIT_NAME" != x; then
|
if test "x$DEVKIT_NAME" != x; then
|
||||||
printf "* Devkit: $DEVKIT_NAME ($DEVKIT_ROOT)\n"
|
$ECHO "* Devkit: $DEVKIT_NAME ($DEVKIT_ROOT)"
|
||||||
elif test "x$DEVKIT_ROOT" != x; then
|
elif test "x$DEVKIT_ROOT" != x; then
|
||||||
printf "* Devkit: $DEVKIT_ROOT\n"
|
$ECHO "* Devkit: $DEVKIT_ROOT"
|
||||||
elif test "x$SYSROOT" != x; then
|
elif test "x$SYSROOT" != x; then
|
||||||
printf "* Sysroot: $SYSROOT\n"
|
$ECHO "* Sysroot: $SYSROOT"
|
||||||
fi
|
fi
|
||||||
printf "* C Compiler: Version $CC_VERSION_NUMBER (at ${CC#"$FIXPATH "})\n"
|
$ECHO "* C Compiler: Version $CC_VERSION_NUMBER (at ${CC#"$FIXPATH "})"
|
||||||
printf "* C++ Compiler: Version $CXX_VERSION_NUMBER (at ${CXX#"$FIXPATH "})\n"
|
$ECHO "* C++ Compiler: Version $CXX_VERSION_NUMBER (at ${CXX#"$FIXPATH "})"
|
||||||
|
|
||||||
printf "\n"
|
$ECHO ""
|
||||||
printf "Build performance summary:\n"
|
$ECHO "Build performance summary:"
|
||||||
printf "* Build jobs: $JOBS\n"
|
$ECHO "* Build jobs: $JOBS"
|
||||||
printf "* Memory limit: $MEMORY_SIZE MB\n"
|
$ECHO "* Memory limit: $MEMORY_SIZE MB"
|
||||||
if test "x$CCACHE_STATUS" != "x"; then
|
if test "x$CCACHE_STATUS" != "x"; then
|
||||||
printf "* ccache status: $CCACHE_STATUS\n"
|
$ECHO "* ccache status: $CCACHE_STATUS"
|
||||||
fi
|
fi
|
||||||
printf "\n"
|
$ECHO ""
|
||||||
|
|
||||||
if test "x$BUILDING_MULTIPLE_JVM_VARIANTS" = "xtrue"; then
|
if test "x$BUILDING_MULTIPLE_JVM_VARIANTS" = "xtrue"; then
|
||||||
printf "NOTE: You have requested to build more than one version of the JVM, which\n"
|
$ECHO "NOTE: You have requested to build more than one version of the JVM, which"
|
||||||
printf "will result in longer build times.\n"
|
$ECHO "will result in longer build times."
|
||||||
printf "\n"
|
$ECHO ""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "x$OUTPUT_DIR_IS_LOCAL" != "xyes"; then
|
if test "x$OUTPUT_DIR_IS_LOCAL" != "xyes"; then
|
||||||
printf "WARNING: Your build output directory is not on a local disk.\n"
|
$ECHO "WARNING: Your build output directory is not on a local disk."
|
||||||
printf "This will severely degrade build performance!\n"
|
$ECHO "This will severely degrade build performance!"
|
||||||
printf "It is recommended that you create an output directory on a local disk,\n"
|
$ECHO "It is recommended that you create an output directory on a local disk,"
|
||||||
printf "and run the configure script again from that directory.\n"
|
$ECHO "and run the configure script again from that directory."
|
||||||
printf "\n"
|
$ECHO ""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "x$IS_RECONFIGURE" = "xyes" && test "x$no_create" != "xyes"; then
|
if test "x$IS_RECONFIGURE" = "xyes" && test "x$no_create" != "xyes"; then
|
||||||
printf "WARNING: The result of this configuration has overridden an older\n"
|
$ECHO "WARNING: The result of this configuration has overridden an older"
|
||||||
printf "configuration. You *should* run 'make clean' to make sure you get a\n"
|
$ECHO "configuration. You *should* run 'make clean' to make sure you get a"
|
||||||
printf "proper build. Failure to do so might result in strange build problems.\n"
|
$ECHO "proper build. Failure to do so might result in strange build problems."
|
||||||
printf "\n"
|
$ECHO ""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "x$IS_RECONFIGURE" != "xyes" && test "x$no_create" = "xyes"; then
|
if test "x$IS_RECONFIGURE" != "xyes" && test "x$no_create" = "xyes"; then
|
||||||
printf "WARNING: The result of this configuration was not saved.\n"
|
$ECHO "WARNING: The result of this configuration was not saved."
|
||||||
printf "You should run without '--no-create | -n' to create the configuration.\n"
|
$ECHO "You should run without '--no-create | -n' to create the configuration."
|
||||||
printf "\n"
|
$ECHO ""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "x$UNSUPPORTED_TOOLCHAIN_VERSION" = "xyes"; then
|
if test "x$UNSUPPORTED_TOOLCHAIN_VERSION" = "xyes"; then
|
||||||
printf "WARNING: The toolchain version used is known to have issues. Please\n"
|
$ECHO "WARNING: The toolchain version used is known to have issues. Please"
|
||||||
printf "consider using a supported version unless you know what you are doing.\n"
|
$ECHO "consider using a supported version unless you know what you are doing."
|
||||||
printf "\n"
|
$ECHO ""
|
||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
|
|
||||||
@@ -381,10 +383,10 @@ AC_DEFUN_ONCE([HELP_REPEAT_WARNINGS],
|
|||||||
if test -e "$CONFIG_LOG_PATH/config.log"; then
|
if test -e "$CONFIG_LOG_PATH/config.log"; then
|
||||||
$GREP '^configure:.*: WARNING:' "$CONFIG_LOG_PATH/config.log" > /dev/null 2>&1
|
$GREP '^configure:.*: WARNING:' "$CONFIG_LOG_PATH/config.log" > /dev/null 2>&1
|
||||||
if test $? -eq 0; then
|
if test $? -eq 0; then
|
||||||
printf "The following warnings were produced. Repeated here for convenience:\n"
|
$ECHO "The following warnings were produced. Repeated here for convenience:"
|
||||||
# We must quote sed expression (using []) to stop m4 from eating the [].
|
# We must quote sed expression (using []) to stop m4 from eating the [].
|
||||||
$GREP '^configure:.*: WARNING:' "$CONFIG_LOG_PATH/config.log" | $SED -e [ 's/^configure:[0-9]*: //' ]
|
$GREP '^configure:.*: WARNING:' "$CONFIG_LOG_PATH/config.log" | $SED -e [ 's/^configure:[0-9]*: //' ]
|
||||||
printf "\n"
|
$ECHO ""
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
|
|||||||
@@ -405,10 +405,19 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_CODE_COVERAGE],
|
|||||||
JCOV_FILTERS="$with_jcov_filters"
|
JCOV_FILTERS="$with_jcov_filters"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
UTIL_ARG_WITH(NAME: jcov-modules, TYPE: string,
|
||||||
|
DEFAULT: [], RESULT: JCOV_MODULES_COMMMA_SEPARATED,
|
||||||
|
DESC: [which modules to include in jcov (comma-separated)],
|
||||||
|
OPTIONAL: true)
|
||||||
|
|
||||||
|
# Replace "," with " ".
|
||||||
|
JCOV_MODULES=${JCOV_MODULES_COMMMA_SEPARATED//,/ }
|
||||||
AC_SUBST(JCOV_ENABLED)
|
AC_SUBST(JCOV_ENABLED)
|
||||||
AC_SUBST(JCOV_HOME)
|
AC_SUBST(JCOV_HOME)
|
||||||
AC_SUBST(JCOV_INPUT_JDK)
|
AC_SUBST(JCOV_INPUT_JDK)
|
||||||
AC_SUBST(JCOV_FILTERS)
|
AC_SUBST(JCOV_FILTERS)
|
||||||
|
AC_SUBST(JCOV_MODULES)
|
||||||
])
|
])
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
@@ -520,8 +529,21 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_UNDEFINED_BEHAVIOR_SANITIZER],
|
|||||||
# Silence them for now.
|
# Silence them for now.
|
||||||
UBSAN_CHECKS="-fsanitize=undefined -fsanitize=float-divide-by-zero -fno-sanitize=shift-base -fno-sanitize=alignment \
|
UBSAN_CHECKS="-fsanitize=undefined -fsanitize=float-divide-by-zero -fno-sanitize=shift-base -fno-sanitize=alignment \
|
||||||
$ADDITIONAL_UBSAN_CHECKS"
|
$ADDITIONAL_UBSAN_CHECKS"
|
||||||
UBSAN_CFLAGS="$UBSAN_CHECKS -Wno-stringop-truncation -Wno-format-overflow -Wno-array-bounds -Wno-stringop-overflow -fno-omit-frame-pointer -DUNDEFINED_BEHAVIOR_SANITIZER"
|
UBSAN_CFLAGS="$UBSAN_CHECKS -Wno-array-bounds -fno-omit-frame-pointer -DUNDEFINED_BEHAVIOR_SANITIZER"
|
||||||
|
if test "x$TOOLCHAIN_TYPE" = "xgcc"; then
|
||||||
|
UBSAN_CFLAGS="$UBSAN_CFLAGS -Wno-format-overflow -Wno-stringop-overflow -Wno-stringop-truncation"
|
||||||
|
fi
|
||||||
UBSAN_LDFLAGS="$UBSAN_CHECKS"
|
UBSAN_LDFLAGS="$UBSAN_CHECKS"
|
||||||
|
# On AIX, the llvm_symbolizer is not found out of the box, so we have to provide the
|
||||||
|
# full qualified llvm_symbolizer path in the __ubsan_default_options() function in
|
||||||
|
# make/data/ubsan/ubsan_default_options.c. To get it there we compile our sources
|
||||||
|
# with an additional define LLVM_SYMBOLIZER, which we set here.
|
||||||
|
# To calculate the correct llvm_symbolizer path we can use the location of the compiler, because
|
||||||
|
# their relation is fixed.
|
||||||
|
if test "x$TOOLCHAIN_TYPE" = "xclang" && test "x$OPENJDK_TARGET_OS" = "xaix"; then
|
||||||
|
UBSAN_CFLAGS="$UBSAN_CFLAGS -fno-sanitize=function,vptr -DLLVM_SYMBOLIZER=$(dirname $(dirname $CC))/tools/ibm-llvm-symbolizer"
|
||||||
|
UBSAN_LDFLAGS="$UBSAN_LDFLAGS -fno-sanitize=function,vptr -Wl,-bbigtoc"
|
||||||
|
fi
|
||||||
UTIL_ARG_ENABLE(NAME: ubsan, DEFAULT: false, RESULT: UBSAN_ENABLED,
|
UTIL_ARG_ENABLE(NAME: ubsan, DEFAULT: false, RESULT: UBSAN_ENABLED,
|
||||||
DESC: [enable UndefinedBehaviorSanitizer],
|
DESC: [enable UndefinedBehaviorSanitizer],
|
||||||
CHECK_AVAILABLE: [
|
CHECK_AVAILABLE: [
|
||||||
@@ -988,6 +1010,18 @@ AC_DEFUN([JDKOPT_SETUP_SIGNING_HOOK],
|
|||||||
AC_SUBST(SIGNING_HOOK)
|
AC_SUBST(SIGNING_HOOK)
|
||||||
])
|
])
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Setup how javac should handle warnings.
|
||||||
|
#
|
||||||
|
AC_DEFUN([JDKOPT_SETUP_JAVA_WARNINGS],
|
||||||
|
[
|
||||||
|
UTIL_ARG_ENABLE(NAME: java-warnings-as-errors, DEFAULT: true,
|
||||||
|
RESULT: JAVA_WARNINGS_AS_ERRORS,
|
||||||
|
DESC: [consider java warnings to be an error])
|
||||||
|
AC_SUBST(JAVA_WARNINGS_AS_ERRORS)
|
||||||
|
])
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
#
|
#
|
||||||
# fallback linker
|
# fallback linker
|
||||||
|
|||||||
@@ -62,19 +62,29 @@ AC_DEFUN_ONCE([LIB_SETUP_LIBJPEG],
|
|||||||
|
|
||||||
if test "x${with_libjpeg}" = "xbundled"; then
|
if test "x${with_libjpeg}" = "xbundled"; then
|
||||||
USE_EXTERNAL_LIBJPEG=false
|
USE_EXTERNAL_LIBJPEG=false
|
||||||
|
LIBJPEG_CFLAGS=""
|
||||||
|
LIBJPEG_LIBS=""
|
||||||
elif test "x${with_libjpeg}" = "xsystem"; then
|
elif test "x${with_libjpeg}" = "xsystem"; then
|
||||||
AC_CHECK_HEADER(jpeglib.h, [],
|
PKG_CHECK_MODULES(LIBJPEG, libjpeg, [LIBJPEG_FOUND=yes], [LIBJPEG_FOUND=no])
|
||||||
[ AC_MSG_ERROR([--with-libjpeg=system specified, but jpeglib.h not found!])])
|
if test "x${LIBJPEG_FOUND}" = "xyes"; then
|
||||||
AC_CHECK_LIB(jpeg, jpeg_CreateDecompress, [],
|
# PKG_CHECK_MODULES will set LIBJPEG_CFLAGS and LIBJPEG_LIBS
|
||||||
[ AC_MSG_ERROR([--with-libjpeg=system specified, but no libjpeg found])])
|
USE_EXTERNAL_LIBJPEG=true
|
||||||
|
else
|
||||||
|
AC_CHECK_HEADER(jpeglib.h, [],
|
||||||
|
[ AC_MSG_ERROR([--with-libjpeg=system specified, but jpeglib.h not found!])])
|
||||||
|
AC_CHECK_LIB(jpeg, jpeg_CreateDecompress, [],
|
||||||
|
[ AC_MSG_ERROR([--with-libjpeg=system specified, but no libjpeg found])])
|
||||||
|
|
||||||
USE_EXTERNAL_LIBJPEG=true
|
USE_EXTERNAL_LIBJPEG=true
|
||||||
LIBJPEG_LIBS="-ljpeg"
|
LIBJPEG_CFLAGS=""
|
||||||
|
LIBJPEG_LIBS="-ljpeg"
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
AC_MSG_ERROR([Invalid use of --with-libjpeg: ${with_libjpeg}, use 'system' or 'bundled'])
|
AC_MSG_ERROR([Invalid use of --with-libjpeg: ${with_libjpeg}, use 'system' or 'bundled'])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
AC_SUBST(USE_EXTERNAL_LIBJPEG)
|
AC_SUBST(USE_EXTERNAL_LIBJPEG)
|
||||||
|
AC_SUBST(LIBJPEG_CFLAGS)
|
||||||
AC_SUBST(LIBJPEG_LIBS)
|
AC_SUBST(LIBJPEG_LIBS)
|
||||||
])
|
])
|
||||||
|
|
||||||
@@ -85,6 +95,10 @@ AC_DEFUN_ONCE([LIB_SETUP_GIFLIB],
|
|||||||
[
|
[
|
||||||
AC_ARG_WITH(giflib, [AS_HELP_STRING([--with-giflib],
|
AC_ARG_WITH(giflib, [AS_HELP_STRING([--with-giflib],
|
||||||
[use giflib from build system or OpenJDK source (system, bundled) @<:@bundled@:>@])])
|
[use giflib from build system or OpenJDK source (system, bundled) @<:@bundled@:>@])])
|
||||||
|
AC_ARG_WITH(giflib-include, [AS_HELP_STRING([--with-giflib-include],
|
||||||
|
[specify directory for the system giflib include files])])
|
||||||
|
AC_ARG_WITH(giflib-lib, [AS_HELP_STRING([--with-giflib-lib],
|
||||||
|
[specify directory for the system giflib library])])
|
||||||
|
|
||||||
AC_MSG_CHECKING([for which giflib to use])
|
AC_MSG_CHECKING([for which giflib to use])
|
||||||
# default is bundled
|
# default is bundled
|
||||||
@@ -97,11 +111,40 @@ AC_DEFUN_ONCE([LIB_SETUP_GIFLIB],
|
|||||||
|
|
||||||
if test "x${with_giflib}" = "xbundled"; then
|
if test "x${with_giflib}" = "xbundled"; then
|
||||||
USE_EXTERNAL_LIBGIF=false
|
USE_EXTERNAL_LIBGIF=false
|
||||||
|
GIFLIB_CFLAGS=""
|
||||||
|
GIFLIB_LIBS=""
|
||||||
elif test "x${with_giflib}" = "xsystem"; then
|
elif test "x${with_giflib}" = "xsystem"; then
|
||||||
AC_CHECK_HEADER(gif_lib.h, [],
|
GIFLIB_H_FOUND=no
|
||||||
[ AC_MSG_ERROR([--with-giflib=system specified, but gif_lib.h not found!])])
|
if test "x${with_giflib_include}" != x; then
|
||||||
AC_CHECK_LIB(gif, DGifGetCode, [],
|
GIFLIB_CFLAGS="-I${with_giflib_include}"
|
||||||
[ AC_MSG_ERROR([--with-giflib=system specified, but no giflib found!])])
|
GIFLIB_H_FOUND=yes
|
||||||
|
fi
|
||||||
|
if test "x$GIFLIB_H_FOUND" = xno; then
|
||||||
|
AC_CHECK_HEADER(gif_lib.h,
|
||||||
|
[
|
||||||
|
GIFLIB_CFLAGS=""
|
||||||
|
GIFLIB_H_FOUND=yes
|
||||||
|
])
|
||||||
|
fi
|
||||||
|
if test "x$GIFLIB_H_FOUND" = xno; then
|
||||||
|
AC_MSG_ERROR([--with-giflib=system specified, but gif_lib.h not found!])
|
||||||
|
fi
|
||||||
|
|
||||||
|
GIFLIB_LIB_FOUND=no
|
||||||
|
if test "x${with_giflib_lib}" != x; then
|
||||||
|
GIFLIB_LIBS="-L${with_giflib_lib} -lgif"
|
||||||
|
GIFLIB_LIB_FOUND=yes
|
||||||
|
fi
|
||||||
|
if test "x$GIFLIB_LIB_FOUND" = xno; then
|
||||||
|
AC_CHECK_LIB(gif, DGifGetCode,
|
||||||
|
[
|
||||||
|
GIFLIB_LIBS="-lgif"
|
||||||
|
GIFLIB_LIB_FOUND=yes
|
||||||
|
])
|
||||||
|
fi
|
||||||
|
if test "x$GIFLIB_LIB_FOUND" = xno; then
|
||||||
|
AC_MSG_ERROR([--with-giflib=system specified, but no giflib found!])
|
||||||
|
fi
|
||||||
|
|
||||||
USE_EXTERNAL_LIBGIF=true
|
USE_EXTERNAL_LIBGIF=true
|
||||||
GIFLIB_LIBS=-lgif
|
GIFLIB_LIBS=-lgif
|
||||||
@@ -110,6 +153,7 @@ AC_DEFUN_ONCE([LIB_SETUP_GIFLIB],
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
AC_SUBST(USE_EXTERNAL_LIBGIF)
|
AC_SUBST(USE_EXTERNAL_LIBGIF)
|
||||||
|
AC_SUBST(GIFLIB_CFLAGS)
|
||||||
AC_SUBST(GIFLIB_LIBS)
|
AC_SUBST(GIFLIB_LIBS)
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2025, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -98,13 +98,7 @@ AC_DEFUN([LIB_SETUP_JVM_LIBS],
|
|||||||
# 32-bit platforms needs fallback library for 8-byte atomic ops on Zero
|
# 32-bit platforms needs fallback library for 8-byte atomic ops on Zero
|
||||||
if HOTSPOT_CHECK_JVM_VARIANT(zero); then
|
if HOTSPOT_CHECK_JVM_VARIANT(zero); then
|
||||||
if test "x$OPENJDK_$1_OS" = xlinux &&
|
if test "x$OPENJDK_$1_OS" = xlinux &&
|
||||||
(test "x$OPENJDK_$1_CPU" = xarm ||
|
test "x$OPENJDK_TARGET_CPU_BITS" = "x32"; then
|
||||||
test "x$OPENJDK_$1_CPU" = xm68k ||
|
|
||||||
test "x$OPENJDK_$1_CPU" = xmips ||
|
|
||||||
test "x$OPENJDK_$1_CPU" = xmipsel ||
|
|
||||||
test "x$OPENJDK_$1_CPU" = xppc ||
|
|
||||||
test "x$OPENJDK_$1_CPU" = xsh ||
|
|
||||||
test "x$OPENJDK_$1_CPU" = xriscv32); then
|
|
||||||
BASIC_JVM_LIBS_$1="$BASIC_JVM_LIBS_$1 -latomic"
|
BASIC_JVM_LIBS_$1="$BASIC_JVM_LIBS_$1 -latomic"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2025, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -454,6 +454,7 @@ JCOV_ENABLED := @JCOV_ENABLED@
|
|||||||
JCOV_HOME := @JCOV_HOME@
|
JCOV_HOME := @JCOV_HOME@
|
||||||
JCOV_INPUT_JDK := @JCOV_INPUT_JDK@
|
JCOV_INPUT_JDK := @JCOV_INPUT_JDK@
|
||||||
JCOV_FILTERS := @JCOV_FILTERS@
|
JCOV_FILTERS := @JCOV_FILTERS@
|
||||||
|
JCOV_MODULES := @JCOV_MODULES@
|
||||||
|
|
||||||
# AddressSanitizer
|
# AddressSanitizer
|
||||||
ASAN_ENABLED := @ASAN_ENABLED@
|
ASAN_ENABLED := @ASAN_ENABLED@
|
||||||
@@ -517,6 +518,7 @@ DISABLED_WARNINGS_CXX := @DISABLED_WARNINGS_CXX@
|
|||||||
|
|
||||||
# A global flag (true or false) determining if native warnings are considered errors.
|
# A global flag (true or false) determining if native warnings are considered errors.
|
||||||
WARNINGS_AS_ERRORS := @WARNINGS_AS_ERRORS@
|
WARNINGS_AS_ERRORS := @WARNINGS_AS_ERRORS@
|
||||||
|
JAVA_WARNINGS_AS_ERRORS := @JAVA_WARNINGS_AS_ERRORS@
|
||||||
|
|
||||||
CFLAGS_CCACHE := @CFLAGS_CCACHE@
|
CFLAGS_CCACHE := @CFLAGS_CCACHE@
|
||||||
ADLC_LANGSTD_CXXFLAGS := @ADLC_LANGSTD_CXXFLAGS@
|
ADLC_LANGSTD_CXXFLAGS := @ADLC_LANGSTD_CXXFLAGS@
|
||||||
@@ -800,8 +802,10 @@ TAR_SUPPORTS_TRANSFORM := @TAR_SUPPORTS_TRANSFORM@
|
|||||||
|
|
||||||
# Build setup
|
# Build setup
|
||||||
USE_EXTERNAL_LIBJPEG := @USE_EXTERNAL_LIBJPEG@
|
USE_EXTERNAL_LIBJPEG := @USE_EXTERNAL_LIBJPEG@
|
||||||
|
LIBJPEG_CFLAGS := @LIBJPEG_CFLAGS@
|
||||||
LIBJPEG_LIBS := @LIBJPEG_LIBS@
|
LIBJPEG_LIBS := @LIBJPEG_LIBS@
|
||||||
USE_EXTERNAL_LIBGIF := @USE_EXTERNAL_LIBGIF@
|
USE_EXTERNAL_LIBGIF := @USE_EXTERNAL_LIBGIF@
|
||||||
|
GIFLIB_CFLAGS := @GIFLIB_CFLAGS@
|
||||||
GIFLIB_LIBS := @GIFLIB_LIBS@
|
GIFLIB_LIBS := @GIFLIB_LIBS@
|
||||||
USE_EXTERNAL_LIBZ := @USE_EXTERNAL_LIBZ@
|
USE_EXTERNAL_LIBZ := @USE_EXTERNAL_LIBZ@
|
||||||
LIBZ_CFLAGS := @LIBZ_CFLAGS@
|
LIBZ_CFLAGS := @LIBZ_CFLAGS@
|
||||||
@@ -843,10 +847,12 @@ SVE_CFLAGS := @SVE_CFLAGS@
|
|||||||
JDK_IMAGE_SUBDIR := jdk
|
JDK_IMAGE_SUBDIR := jdk
|
||||||
JRE_IMAGE_SUBDIR := jre
|
JRE_IMAGE_SUBDIR := jre
|
||||||
JCOV_IMAGE_SUBDIR := jdk-jcov
|
JCOV_IMAGE_SUBDIR := jdk-jcov
|
||||||
|
STATIC_JDK_IMAGE_SUBDIR := static-jdk
|
||||||
|
|
||||||
# Colon left out to be able to override output dir for bootcycle-images
|
# Colon left out to be able to override output dir for bootcycle-images
|
||||||
JDK_IMAGE_DIR = $(IMAGES_OUTPUTDIR)/$(JDK_IMAGE_SUBDIR)
|
JDK_IMAGE_DIR = $(IMAGES_OUTPUTDIR)/$(JDK_IMAGE_SUBDIR)
|
||||||
JRE_IMAGE_DIR = $(IMAGES_OUTPUTDIR)/$(JRE_IMAGE_SUBDIR)
|
JRE_IMAGE_DIR = $(IMAGES_OUTPUTDIR)/$(JRE_IMAGE_SUBDIR)
|
||||||
|
STATIC_JDK_IMAGE_DIR = $(IMAGES_OUTPUTDIR)/$(STATIC_JDK_IMAGE_SUBDIR)
|
||||||
JCOV_IMAGE_DIR = $(IMAGES_OUTPUTDIR)/$(JCOV_IMAGE_SUBDIR)
|
JCOV_IMAGE_DIR = $(IMAGES_OUTPUTDIR)/$(JCOV_IMAGE_SUBDIR)
|
||||||
|
|
||||||
# Test image, as above
|
# Test image, as above
|
||||||
@@ -926,6 +932,7 @@ DOCS_JAVASE_BUNDLE_NAME := javase-$(BASE_NAME)_doc-api-spec$(DEBUG_PART).tar.gz
|
|||||||
DOCS_REFERENCE_BUNDLE_NAME := jdk-reference-$(BASE_NAME)_doc-api-spec$(DEBUG_PART).tar.gz
|
DOCS_REFERENCE_BUNDLE_NAME := jdk-reference-$(BASE_NAME)_doc-api-spec$(DEBUG_PART).tar.gz
|
||||||
STATIC_LIBS_BUNDLE_NAME := jdk-$(BASE_NAME)_bin-static-libs$(DEBUG_PART).tar.gz
|
STATIC_LIBS_BUNDLE_NAME := jdk-$(BASE_NAME)_bin-static-libs$(DEBUG_PART).tar.gz
|
||||||
STATIC_LIBS_GRAAL_BUNDLE_NAME := jdk-$(BASE_NAME)_bin-static-libs-graal$(DEBUG_PART).tar.gz
|
STATIC_LIBS_GRAAL_BUNDLE_NAME := jdk-$(BASE_NAME)_bin-static-libs-graal$(DEBUG_PART).tar.gz
|
||||||
|
STATIC_JDK_BUNDLE_NAME := static-jdk-$(BASE_NAME)_bin$(DEBUG_PART).$(JDK_BUNDLE_EXTENSION)
|
||||||
JCOV_BUNDLE_NAME := jdk-jcov-$(BASE_NAME)_bin$(DEBUG_PART).$(JDK_BUNDLE_EXTENSION)
|
JCOV_BUNDLE_NAME := jdk-jcov-$(BASE_NAME)_bin$(DEBUG_PART).$(JDK_BUNDLE_EXTENSION)
|
||||||
|
|
||||||
JDK_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(JDK_BUNDLE_NAME)
|
JDK_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(JDK_BUNDLE_NAME)
|
||||||
@@ -936,6 +943,7 @@ TEST_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(TEST_BUNDLE_NAME)
|
|||||||
DOCS_JDK_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(DOCS_JDK_BUNDLE_NAME)
|
DOCS_JDK_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(DOCS_JDK_BUNDLE_NAME)
|
||||||
DOCS_JAVASE_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(DOCS_JAVASE_BUNDLE_NAME)
|
DOCS_JAVASE_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(DOCS_JAVASE_BUNDLE_NAME)
|
||||||
DOCS_REFERENCE_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(DOCS_REFERENCE_BUNDLE_NAME)
|
DOCS_REFERENCE_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(DOCS_REFERENCE_BUNDLE_NAME)
|
||||||
|
STATIC_JDK_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(STATIC_JDK_BUNDLE_NAME)
|
||||||
JCOV_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(JCOV_BUNDLE_NAME)
|
JCOV_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(JCOV_BUNDLE_NAME)
|
||||||
|
|
||||||
# This macro is called to allow inclusion of closed source counterparts.
|
# This macro is called to allow inclusion of closed source counterparts.
|
||||||
|
|||||||
@@ -291,6 +291,11 @@ AC_DEFUN_ONCE([TOOLCHAIN_PRE_DETECTION],
|
|||||||
# For Xcode, we set the Xcode version as TOOLCHAIN_VERSION
|
# For Xcode, we set the Xcode version as TOOLCHAIN_VERSION
|
||||||
TOOLCHAIN_VERSION=`$ECHO $XCODE_VERSION_OUTPUT | $CUT -f 2 -d ' '`
|
TOOLCHAIN_VERSION=`$ECHO $XCODE_VERSION_OUTPUT | $CUT -f 2 -d ' '`
|
||||||
TOOLCHAIN_DESCRIPTION="$TOOLCHAIN_DESCRIPTION from Xcode $TOOLCHAIN_VERSION"
|
TOOLCHAIN_DESCRIPTION="$TOOLCHAIN_DESCRIPTION from Xcode $TOOLCHAIN_VERSION"
|
||||||
|
if test "x$TOOLCHAIN_VERSION" = "x16" || test "x$TOOLCHAIN_VERSION" = "x16.1" ; then
|
||||||
|
AC_MSG_NOTICE([Xcode $TOOLCHAIN_VERSION has a compiler bug that causes the build to fail.])
|
||||||
|
AC_MSG_NOTICE([Please use Xcode 16.2 or later, or a version prior to 16.])
|
||||||
|
AC_MSG_ERROR([Compiler version is not supported.])
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
AC_SUBST(TOOLCHAIN_VERSION)
|
AC_SUBST(TOOLCHAIN_VERSION)
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2025, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -87,7 +87,7 @@ AC_DEFUN([TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT],
|
|||||||
elif test "x$TARGET_CPU" = xaarch64; then
|
elif test "x$TARGET_CPU" = xaarch64; then
|
||||||
# for host x86-64, target aarch64
|
# for host x86-64, target aarch64
|
||||||
# aarch64 requires Visual Studio 16.8 or higher
|
# aarch64 requires Visual Studio 16.8 or higher
|
||||||
VCVARSFILES="vcvarsamd64_arm64.bat vcvarsx86_arm64.bat"
|
VCVARSFILES="vcvarsarm64.bat vcvarsamd64_arm64.bat vcvarsx86_arm64.bat"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
for VCVARSFILE in $VCVARSFILES; do
|
for VCVARSFILE in $VCVARSFILES; do
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2025, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -58,21 +58,32 @@ AC_DEFUN([UTIL_PREPEND_TO_PATH],
|
|||||||
# 2) The path will be absolute, and it will be in unix-style (on
|
# 2) The path will be absolute, and it will be in unix-style (on
|
||||||
# cygwin).
|
# cygwin).
|
||||||
# $1: The name of the variable to fix
|
# $1: The name of the variable to fix
|
||||||
# $2: if NOFAIL, errors will be silently ignored
|
# $2: if NOFAIL, if the path cannot be resolved then errors will not be
|
||||||
|
# reported and an empty path will be set
|
||||||
AC_DEFUN([UTIL_FIXUP_PATH],
|
AC_DEFUN([UTIL_FIXUP_PATH],
|
||||||
[
|
[
|
||||||
# Only process if variable expands to non-empty
|
# Only process if variable expands to non-empty
|
||||||
path="[$]$1"
|
path="[$]$1"
|
||||||
if test "x$path" != x; then
|
if test "x$path" != x; then
|
||||||
if test "x$OPENJDK_BUILD_OS" = "xwindows"; then
|
if test "x$OPENJDK_BUILD_OS" = "xwindows"; then
|
||||||
if test "x$2" = "xNOFAIL"; then
|
imported_path=`$FIXPATH_BASE -q import "$path"`
|
||||||
quiet_option="-q"
|
if test $? -ne 0 || test ! -e $imported_path; then
|
||||||
|
if test "x$2" != "xNOFAIL"; then
|
||||||
|
AC_MSG_NOTICE([The path of $1, which is given as "$path", can not be properly resolved.])
|
||||||
|
AC_MSG_NOTICE([Please see the section "Special Considerations" in building.md.])
|
||||||
|
AC_MSG_NOTICE([This is the error message given by fixpath:])
|
||||||
|
# Rerun fixpath without -q to get an error message
|
||||||
|
$FIXPATH_BASE import "$path"
|
||||||
|
AC_MSG_ERROR([Cannot continue])
|
||||||
|
else
|
||||||
|
imported_path=""
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
imported_path=`$FIXPATH_BASE $quiet_option import "$path"`
|
|
||||||
$FIXPATH_BASE verify "$imported_path"
|
$FIXPATH_BASE -q verify "$imported_path"
|
||||||
if test $? -ne 0; then
|
if test $? -ne 0; then
|
||||||
if test "x$2" != "xNOFAIL"; then
|
if test "x$2" != "xNOFAIL"; then
|
||||||
AC_MSG_ERROR([The path of $1, which resolves as "$path", could not be imported.])
|
AC_MSG_ERROR([The path of $1, which resolves as "$path", could not be verified.])
|
||||||
else
|
else
|
||||||
imported_path=""
|
imported_path=""
|
||||||
fi
|
fi
|
||||||
@@ -83,7 +94,7 @@ AC_DEFUN([UTIL_FIXUP_PATH],
|
|||||||
if test "x$imported_path_lower" != "x$orig_path_lower"; then
|
if test "x$imported_path_lower" != "x$orig_path_lower"; then
|
||||||
$1="$imported_path"
|
$1="$imported_path"
|
||||||
fi
|
fi
|
||||||
else
|
else # non-Windows
|
||||||
[ if [[ "$path" =~ " " ]]; then ]
|
[ if [[ "$path" =~ " " ]]; then ]
|
||||||
if test "x$2" != "xNOFAIL"; then
|
if test "x$2" != "xNOFAIL"; then
|
||||||
AC_MSG_NOTICE([The path of $1, which resolves as "$path", is invalid.])
|
AC_MSG_NOTICE([The path of $1, which resolves as "$path", is invalid.])
|
||||||
@@ -186,7 +197,6 @@ AC_DEFUN([UTIL_CHECK_WINENV_EXEC_TYPE],
|
|||||||
# it need to be in the PATH.
|
# it need to be in the PATH.
|
||||||
# $1: The name of the variable to fix
|
# $1: The name of the variable to fix
|
||||||
# $2: Where to look for the command (replaces $PATH)
|
# $2: Where to look for the command (replaces $PATH)
|
||||||
# $3: set to NOFIXPATH to skip prefixing FIXPATH, even if needed on platform
|
|
||||||
AC_DEFUN([UTIL_FIXUP_EXECUTABLE],
|
AC_DEFUN([UTIL_FIXUP_EXECUTABLE],
|
||||||
[
|
[
|
||||||
input="[$]$1"
|
input="[$]$1"
|
||||||
@@ -233,15 +243,19 @@ AC_DEFUN([UTIL_FIXUP_EXECUTABLE],
|
|||||||
# This is a path with slashes, don't look at $PATH
|
# This is a path with slashes, don't look at $PATH
|
||||||
if test "x$OPENJDK_BUILD_OS" = "xwindows"; then
|
if test "x$OPENJDK_BUILD_OS" = "xwindows"; then
|
||||||
# fixpath.sh import will do all heavy lifting for us
|
# fixpath.sh import will do all heavy lifting for us
|
||||||
new_path=`$FIXPATH_BASE import "$path"`
|
new_path=`$FIXPATH_BASE -q import "$path"`
|
||||||
|
|
||||||
if test ! -e $new_path; then
|
if test $? -ne 0 || test ! -e $new_path; then
|
||||||
# It failed, but maybe spaces were part of the path and not separating
|
# It failed, but maybe spaces were part of the path and not separating
|
||||||
# the command and argument. Retry using that assumption.
|
# the command and argument. Retry using that assumption.
|
||||||
new_path=`$FIXPATH_BASE import "$input"`
|
new_path=`$FIXPATH_BASE -q import "$input"`
|
||||||
if test ! -e $new_path; then
|
if test $? -ne 0 || test ! -e $new_path; then
|
||||||
AC_MSG_NOTICE([The command for $1, which resolves as "$input", can not be found.])
|
AC_MSG_NOTICE([The command for $1, which is given as "$input", can not be properly resolved.])
|
||||||
AC_MSG_ERROR([Cannot locate $input])
|
AC_MSG_NOTICE([Please see the section "Special Considerations" in building.md.])
|
||||||
|
AC_MSG_NOTICE([This is the error message given by fixpath:])
|
||||||
|
# Rerun fixpath without -q to get an error message
|
||||||
|
$FIXPATH_BASE import "$input"
|
||||||
|
AC_MSG_ERROR([Cannot continue])
|
||||||
fi
|
fi
|
||||||
# It worked, clear all "arguments"
|
# It worked, clear all "arguments"
|
||||||
arguments=""
|
arguments=""
|
||||||
@@ -282,10 +296,6 @@ AC_DEFUN([UTIL_FIXUP_EXECUTABLE],
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "x$3" = xNOFIXPATH; then
|
|
||||||
fixpath_prefix=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Now join together the path and the arguments once again
|
# Now join together the path and the arguments once again
|
||||||
new_complete="$fixpath_prefix$new_path$arguments"
|
new_complete="$fixpath_prefix$new_path$arguments"
|
||||||
$1="$new_complete"
|
$1="$new_complete"
|
||||||
@@ -353,7 +363,15 @@ AC_DEFUN([UTIL_SETUP_TOOL],
|
|||||||
else
|
else
|
||||||
# Otherwise we believe it is a complete path. Use it as it is.
|
# Otherwise we believe it is a complete path. Use it as it is.
|
||||||
if test ! -x "$tool_command" && test ! -x "${tool_command}.exe"; then
|
if test ! -x "$tool_command" && test ! -x "${tool_command}.exe"; then
|
||||||
AC_MSG_ERROR([User supplied tool $1="$tool_command" does not exist or is not executable])
|
# Maybe the path had spaces in it; try again with the entire argument
|
||||||
|
if test ! -x "$tool_override" && test ! -x "${tool_override}.exe"; then
|
||||||
|
AC_MSG_ERROR([User supplied tool $1="$tool_override" does not exist or is not executable])
|
||||||
|
else
|
||||||
|
# We successfully located the executable assuming the spaces were part of the path.
|
||||||
|
# We can't combine using paths with spaces and arguments, so assume tool_args is empty.
|
||||||
|
tool_command="$tool_override"
|
||||||
|
tool_args=""
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
if test ! -x "$tool_command"; then
|
if test ! -x "$tool_command"; then
|
||||||
tool_command="${tool_command}.exe"
|
tool_command="${tool_command}.exe"
|
||||||
@@ -379,7 +397,6 @@ AC_DEFUN([UTIL_SETUP_TOOL],
|
|||||||
# $1: variable to set
|
# $1: variable to set
|
||||||
# $2: executable name (or list of names) to look for
|
# $2: executable name (or list of names) to look for
|
||||||
# $3: [path]
|
# $3: [path]
|
||||||
# $4: set to NOFIXPATH to skip prefixing FIXPATH, even if needed on platform
|
|
||||||
AC_DEFUN([UTIL_LOOKUP_PROGS],
|
AC_DEFUN([UTIL_LOOKUP_PROGS],
|
||||||
[
|
[
|
||||||
UTIL_SETUP_TOOL($1, [
|
UTIL_SETUP_TOOL($1, [
|
||||||
@@ -421,10 +438,8 @@ AC_DEFUN([UTIL_LOOKUP_PROGS],
|
|||||||
|
|
||||||
# If we have FIXPATH enabled, strip all instances of it and prepend
|
# If we have FIXPATH enabled, strip all instances of it and prepend
|
||||||
# a single one, to avoid double fixpath prefixing.
|
# a single one, to avoid double fixpath prefixing.
|
||||||
if test "x$4" != xNOFIXPATH; then
|
[ if [[ $FIXPATH != "" && $result =~ ^"$FIXPATH " ]]; then ]
|
||||||
[ if [[ $FIXPATH != "" && $result =~ ^"$FIXPATH " ]]; then ]
|
result="\$FIXPATH ${result#"$FIXPATH "}"
|
||||||
result="\$FIXPATH ${result#"$FIXPATH "}"
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
AC_MSG_RESULT([$result])
|
AC_MSG_RESULT([$result])
|
||||||
break 2;
|
break 2;
|
||||||
@@ -515,6 +530,24 @@ AC_DEFUN([UTIL_ADD_FIXPATH],
|
|||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Return a path to the executable binary from a command line, stripping away
|
||||||
|
# any FIXPATH prefix or arguments. The resulting value can be checked for
|
||||||
|
# existence using "test -e". The result is returned in a variable named
|
||||||
|
# "$1_EXECUTABLE".
|
||||||
|
#
|
||||||
|
# $1: variable describing the command to get the binary for
|
||||||
|
AC_DEFUN([UTIL_GET_EXECUTABLE],
|
||||||
|
[
|
||||||
|
# Strip the FIXPATH prefix, if any
|
||||||
|
fixpath_stripped="[$]$1"
|
||||||
|
[ if [[ $FIXPATH != "" && $fixpath_stripped =~ ^"$FIXPATH " ]]; then ]
|
||||||
|
fixpath_stripped="${fixpath_stripped#"$FIXPATH "}"
|
||||||
|
fi
|
||||||
|
# Remove any arguments following the binary
|
||||||
|
$1_EXECUTABLE="${fixpath_stripped%% *}"
|
||||||
|
])
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
AC_DEFUN([UTIL_REMOVE_SYMBOLIC_LINKS],
|
AC_DEFUN([UTIL_REMOVE_SYMBOLIC_LINKS],
|
||||||
[
|
[
|
||||||
|
|||||||
@@ -58,13 +58,15 @@ ifeq ($(GENERATE_FIND_TESTS_FILE), true)
|
|||||||
$(TOPDIR)/test/make/TestMake.gmk
|
$(TOPDIR)/test/make/TestMake.gmk
|
||||||
$(call MakeTargetDir)
|
$(call MakeTargetDir)
|
||||||
( $(foreach root, $(JTREG_TESTROOTS), \
|
( $(foreach root, $(JTREG_TESTROOTS), \
|
||||||
$(PRINTF) "\n$(root)_JTREG_TEST_GROUPS := " ; \
|
$(ECHO) ""; \
|
||||||
|
$(PRINTF) "\n%s_JTREG_TEST_GROUPS := " "$(root)"; \
|
||||||
$(SED) -n -e 's/^\#.*//g' -e 's/\([^ ]*\)\w*=.*/\1/gp' \
|
$(SED) -n -e 's/^\#.*//g' -e 's/\([^ ]*\)\w*=.*/\1/gp' \
|
||||||
$($(root)_JTREG_GROUP_FILES) \
|
$($(root)_JTREG_GROUP_FILES) \
|
||||||
| $(SORT) -u | $(TR) '\n' ' ' ; \
|
| $(SORT) -u | $(TR) '\n' ' ' ; \
|
||||||
) \
|
) \
|
||||||
) > $@
|
) > $@
|
||||||
$(PRINTF) "\nMAKE_TEST_TARGETS := " >> $@
|
$(ECHO) "" >> $@
|
||||||
|
$(PRINTF) "MAKE_TEST_TARGETS := " >> $@
|
||||||
$(MAKE) -s --no-print-directory $(MAKE_ARGS) \
|
$(MAKE) -s --no-print-directory $(MAKE_ARGS) \
|
||||||
SPEC=$(SPEC) -f $(TOPDIR)/test/make/TestMake.gmk print-targets \
|
SPEC=$(SPEC) -f $(TOPDIR)/test/make/TestMake.gmk print-targets \
|
||||||
TARGETS_FILE=$@
|
TARGETS_FILE=$@
|
||||||
|
|||||||
@@ -256,7 +256,7 @@ define SetupJarArchiveBody
|
|||||||
$$(if $$($1_JARMAIN), \
|
$$(if $$($1_JARMAIN), \
|
||||||
$(ECHO) "Main-Class: $$(strip $$($1_JARMAIN))" >> $$($1_MANIFEST_FILE) $$(NEWLINE)) \
|
$(ECHO) "Main-Class: $$(strip $$($1_JARMAIN))" >> $$($1_MANIFEST_FILE) $$(NEWLINE)) \
|
||||||
$$(if $$($1_EXTRA_MANIFEST_ATTR), \
|
$$(if $$($1_EXTRA_MANIFEST_ATTR), \
|
||||||
$(PRINTF) "$$($1_EXTRA_MANIFEST_ATTR)\n" >> $$($1_MANIFEST_FILE) $$(NEWLINE)) \
|
$(ECHO) "$$($1_EXTRA_MANIFEST_ATTR)" >> $$($1_MANIFEST_FILE) $$(NEWLINE)) \
|
||||||
$(ECHO) Creating $$($1_NAME) $$(NEWLINE) \
|
$(ECHO) Creating $$($1_NAME) $$(NEWLINE) \
|
||||||
$$($1_JAR_CMD) --create $$($1_JAR_OPTIONS) --file $$@ --manifest $$($1_MANIFEST_FILE) $$(NEWLINE) \
|
$$($1_JAR_CMD) --create $$($1_JAR_OPTIONS) --file $$@ --manifest $$($1_MANIFEST_FILE) $$(NEWLINE) \
|
||||||
$$($1_SCAPTURE_CONTENTS) \
|
$$($1_SCAPTURE_CONTENTS) \
|
||||||
|
|||||||
@@ -80,15 +80,13 @@ endef
|
|||||||
#
|
#
|
||||||
# The sed expression does this:
|
# The sed expression does this:
|
||||||
# 1. Add a backslash before any :, = or ! that do not have a backslash already.
|
# 1. Add a backslash before any :, = or ! that do not have a backslash already.
|
||||||
# 2. Apply the file unicode2x.sed which does a whole bunch of \u00XX to \xXX
|
# 2. Delete all lines starting with #.
|
||||||
# conversions.
|
# 3. Delete empty lines.
|
||||||
# 3. Delete all lines starting with #.
|
# 4. Append lines ending with \ with the next line.
|
||||||
# 4. Delete empty lines.
|
# 5. Remove leading and trailing white space. Note that tabs must be explicit
|
||||||
# 5. Append lines ending with \ with the next line.
|
|
||||||
# 6. Remove leading and trailing white space. Note that tabs must be explicit
|
|
||||||
# as sed on macosx does not understand '\t'.
|
# as sed on macosx does not understand '\t'.
|
||||||
# 7. Replace the first \= with just =.
|
# 6. Replace the first \= with just =.
|
||||||
# 8. Finally it's all sorted to create a stable output.
|
# 7. Finally it's all sorted to create a stable output.
|
||||||
#
|
#
|
||||||
# It is assumed that = is the character used for separating names and values.
|
# It is assumed that = is the character used for separating names and values.
|
||||||
define add_file_to_clean
|
define add_file_to_clean
|
||||||
@@ -108,7 +106,6 @@ define add_file_to_clean
|
|||||||
( $(CAT) $$< && $(ECHO) "" ) \
|
( $(CAT) $$< && $(ECHO) "" ) \
|
||||||
| $(SED) -e 's/\([^\\]\):/\1\\:/g' -e 's/\([^\\]\)=/\1\\=/g' \
|
| $(SED) -e 's/\([^\\]\):/\1\\:/g' -e 's/\([^\\]\)=/\1\\=/g' \
|
||||||
-e 's/\([^\\]\)!/\1\\!/g' -e 's/^[ ]*#.*/#/g' \
|
-e 's/\([^\\]\)!/\1\\!/g' -e 's/^[ ]*#.*/#/g' \
|
||||||
| $(SED) -f "$$(TOPDIR)/make/common/support/unicode2x.sed" \
|
|
||||||
| $(SED) -e '/^#/d' -e '/^$$$$/d' \
|
| $(SED) -e '/^#/d' -e '/^$$$$/d' \
|
||||||
-e :a -e '/\\$$$$/N; s/\\\n//; ta' \
|
-e :a -e '/\\$$$$/N; s/\\\n//; ta' \
|
||||||
-e 's/^[ ]*//;s/[ ]*$$$$//' \
|
-e 's/^[ ]*//;s/[ ]*$$$$//' \
|
||||||
@@ -155,6 +152,7 @@ endef
|
|||||||
# INCLUDE_FILES "com/sun/SolarisFoobar.java" means only compile this file!
|
# INCLUDE_FILES "com/sun/SolarisFoobar.java" means only compile this file!
|
||||||
# EXCLUDE_FILES "com/sun/SolarisFoobar.java" means do not compile this particular file!
|
# EXCLUDE_FILES "com/sun/SolarisFoobar.java" means do not compile this particular file!
|
||||||
# "SolarisFoobar.java" means do not compile SolarisFoobar, wherever it is found.
|
# "SolarisFoobar.java" means do not compile SolarisFoobar, wherever it is found.
|
||||||
|
# EXCLUDE_PATTERNS Exclude files matching any of these substrings
|
||||||
# EXTRA_FILES List of extra source files to include in compilation. Can be used to
|
# EXTRA_FILES List of extra source files to include in compilation. Can be used to
|
||||||
# specify files that need to be generated by other rules first.
|
# specify files that need to be generated by other rules first.
|
||||||
# HEADERS path to directory where all generated c-headers are written.
|
# HEADERS path to directory where all generated c-headers are written.
|
||||||
@@ -264,14 +262,17 @@ define SetupJavaCompilationBody
|
|||||||
$$(error Invalid value for COMPILER in SetupJavaCompilation for $1: '$$($1_COMPILER)')
|
$$(error Invalid value for COMPILER in SetupJavaCompilation for $1: '$$($1_COMPILER)')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Allow overriding on the command line
|
|
||||||
JAVA_WARNINGS_ARE_ERRORS ?= -Werror
|
|
||||||
|
|
||||||
# Tell javac to do exactly as told and no more
|
# Tell javac to do exactly as told and no more
|
||||||
PARANOIA_FLAGS := -implicit:none -Xprefer:source -XDignore.symbol.file=true -encoding ascii
|
PARANOIA_FLAGS := -implicit:none -Xprefer:source -XDignore.symbol.file=true
|
||||||
|
|
||||||
$1_FLAGS += -g -Xlint:all $$($1_TARGET_RELEASE) $$(PARANOIA_FLAGS) $$(JAVA_WARNINGS_ARE_ERRORS)
|
$1_FLAGS += -g -Xlint:all $$($1_TARGET_RELEASE) $$(PARANOIA_FLAGS)
|
||||||
$1_FLAGS += $$($1_JAVAC_FLAGS)
|
$1_FLAGS += $$($1_JAVAC_FLAGS)
|
||||||
|
# Set character encoding in source
|
||||||
|
$1_FLAGS += -encoding utf-8
|
||||||
|
|
||||||
|
ifeq ($$(JAVA_WARNINGS_AS_ERRORS), true)
|
||||||
|
$1_FLAGS += -Werror
|
||||||
|
endif
|
||||||
|
|
||||||
ifneq ($$($1_DISABLED_WARNINGS), )
|
ifneq ($$($1_DISABLED_WARNINGS), )
|
||||||
$1_FLAGS += -Xlint:$$(call CommaList, $$(addprefix -, $$($1_DISABLED_WARNINGS)))
|
$1_FLAGS += -Xlint:$$(call CommaList, $$(addprefix -, $$($1_DISABLED_WARNINGS)))
|
||||||
@@ -332,6 +333,20 @@ define SetupJavaCompilationBody
|
|||||||
$1_INCLUDE_PATTERN += $$(foreach i, $$($1_SRC), $$(addprefix $$i/, $$(addsuffix /%, $$($1_INCLUDES))))
|
$1_INCLUDE_PATTERN += $$(foreach i, $$($1_SRC), $$(addprefix $$i/, $$(addsuffix /%, $$($1_INCLUDES))))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifneq ($$($1_EXCLUDE_PATTERNS), )
|
||||||
|
# We must not match the exclude pattern against the src roots, so first
|
||||||
|
# strip the src prefixes from the absolute file paths in SRCS.
|
||||||
|
$1_SRCS_WITHOUT_ROOTS := $$(foreach i, $$($1_SRC), \
|
||||||
|
$$(patsubst $$i/%,%, $$(filter $$i/%, $$($1_SRCS))))
|
||||||
|
$1_EXCLUDE_PATTERNS_WITHOUT_ROOTS := $$(call containing, \
|
||||||
|
$$($1_EXCLUDE_PATTERNS), $$($1_SRCS_WITHOUT_ROOTS))
|
||||||
|
# The add back all possible src prefixes; this will generate more paths
|
||||||
|
# than really exists, but it does not matter since we will use this as
|
||||||
|
# input to filter-out.
|
||||||
|
$1_EXCLUDE_PATTERN += $$(foreach i, $$($1_SRC), $$(addprefix $$i/, \
|
||||||
|
$$($1_EXCLUDE_PATTERNS_WITHOUT_ROOTS)))
|
||||||
|
endif
|
||||||
|
|
||||||
# Apply include/exclude patterns to java sources
|
# Apply include/exclude patterns to java sources
|
||||||
ifneq ($$($1_EXCLUDE_PATTERN), )
|
ifneq ($$($1_EXCLUDE_PATTERN), )
|
||||||
$1_SRCS := $$(filter-out $$($1_EXCLUDE_PATTERN), $$($1_SRCS))
|
$1_SRCS := $$(filter-out $$($1_EXCLUDE_PATTERN), $$($1_SRCS))
|
||||||
|
|||||||
@@ -227,6 +227,8 @@ endef
|
|||||||
|
|
||||||
GLOBAL_VERSION_INFO_RESOURCE := $(TOPDIR)/src/java.base/windows/native/common/version.rc
|
GLOBAL_VERSION_INFO_RESOURCE := $(TOPDIR)/src/java.base/windows/native/common/version.rc
|
||||||
|
|
||||||
|
# \xA9 is the copyright symbol in ANSI encoding (Windows-1252), which rc.exe
|
||||||
|
# assumes the resource file is in.
|
||||||
JDK_RCFLAGS=$(RCFLAGS) \
|
JDK_RCFLAGS=$(RCFLAGS) \
|
||||||
-D"JDK_VERSION_STRING=$(VERSION_STRING)" \
|
-D"JDK_VERSION_STRING=$(VERSION_STRING)" \
|
||||||
-D"JDK_COMPANY=$(JDK_RC_COMPANY_NAME)" \
|
-D"JDK_COMPANY=$(JDK_RC_COMPANY_NAME)" \
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ endif
|
|||||||
# We need spec.gmk to get $(TOPDIR)
|
# We need spec.gmk to get $(TOPDIR)
|
||||||
include $(SPEC)
|
include $(SPEC)
|
||||||
|
|
||||||
THIS_MAKEFILE := $(patsubst make/%,%,$(patsubst $(TOPDIR)/%,%,$(THIS_MAKEFILE_PATH)))
|
THIS_MAKEFILE := $(patsubst make/%,%,$(patsubst $(TOPDIR_ALT)/make/%,%,$(patsubst $(TOPDIR)/%,%,$(THIS_MAKEFILE_PATH))))
|
||||||
|
|
||||||
ifeq ($(LOG_FLOW), true)
|
ifeq ($(LOG_FLOW), true)
|
||||||
$(info :Enter $(THIS_MAKEFILE))
|
$(info :Enter $(THIS_MAKEFILE))
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
|
|
||||||
# Get the next to last word (by prepending a padding element)
|
# Get the next to last word (by prepending a padding element)
|
||||||
THIS_INCLUDE_PATH := $(word $(words ${MAKEFILE_LIST}),padding ${MAKEFILE_LIST})
|
THIS_INCLUDE_PATH := $(word $(words ${MAKEFILE_LIST}),padding ${MAKEFILE_LIST})
|
||||||
THIS_INCLUDE := $(patsubst $(TOPDIR)/make/%,%,$(THIS_INCLUDE_PATH))
|
THIS_INCLUDE := $(patsubst $(TOPDIR_ALT)/make/%,%,$(patsubst $(TOPDIR)/make/%,%,$(THIS_INCLUDE_PATH)))
|
||||||
|
|
||||||
# Print an indented message, also counting the top-level makefile as a level
|
# Print an indented message, also counting the top-level makefile as a level
|
||||||
ifneq ($(INCLUDE_GUARD_$(THIS_INCLUDE)), true)
|
ifneq ($(INCLUDE_GUARD_$(THIS_INCLUDE)), true)
|
||||||
|
|||||||
@@ -180,7 +180,7 @@ ifeq ($(GENERATE_MODULE_DEPS_FILE), true)
|
|||||||
$(call MakeTargetDir)
|
$(call MakeTargetDir)
|
||||||
$(RM) $@
|
$(RM) $@
|
||||||
$(foreach m, $(MODULE_INFOS), \
|
$(foreach m, $(MODULE_INFOS), \
|
||||||
( $(PRINTF) "DEPS_$(call GetModuleNameFromModuleInfo, $m) := " && \
|
( $(PRINTF) "DEPS_%s := " "$(call GetModuleNameFromModuleInfo, $m)" && \
|
||||||
$(AWK) -v MODULE=$(call GetModuleNameFromModuleInfo, $m) ' \
|
$(AWK) -v MODULE=$(call GetModuleNameFromModuleInfo, $m) ' \
|
||||||
BEGIN { if (MODULE != "java.base") printf(" java.base"); } \
|
BEGIN { if (MODULE != "java.base") printf(" java.base"); } \
|
||||||
/^ *requires/ { sub(/;/, ""); \
|
/^ *requires/ { sub(/;/, ""); \
|
||||||
@@ -194,7 +194,7 @@ ifeq ($(GENERATE_MODULE_DEPS_FILE), true)
|
|||||||
gsub(/\r/, ""); \
|
gsub(/\r/, ""); \
|
||||||
printf(" %s", $$0) } \
|
printf(" %s", $$0) } \
|
||||||
END { printf("\n") }' $m && \
|
END { printf("\n") }' $m && \
|
||||||
$(PRINTF) "TRANSITIVE_MODULES_$(call GetModuleNameFromModuleInfo, $m) := " && \
|
$(PRINTF) "TRANSITIVE_MODULES_%s := " "$(call GetModuleNameFromModuleInfo, $m)" && \
|
||||||
$(AWK) -v MODULE=$(call GetModuleNameFromModuleInfo, $m) ' \
|
$(AWK) -v MODULE=$(call GetModuleNameFromModuleInfo, $m) ' \
|
||||||
BEGIN { if (MODULE != "java.base") printf(" java.base"); } \
|
BEGIN { if (MODULE != "java.base") printf(" java.base"); } \
|
||||||
/^ *requires *transitive/ { \
|
/^ *requires *transitive/ { \
|
||||||
|
|||||||
@@ -41,8 +41,8 @@ include $(TOPDIR)/make/ToolsJdk.gmk
|
|||||||
define SetupVersionProperties
|
define SetupVersionProperties
|
||||||
$(SUPPORT_OUTPUTDIR)/gensrc/$(MODULE)/$$(strip $2):
|
$(SUPPORT_OUTPUTDIR)/gensrc/$(MODULE)/$$(strip $2):
|
||||||
$$(call MakeTargetDir)
|
$$(call MakeTargetDir)
|
||||||
$(PRINTF) "jdk=$(VERSION_NUMBER)\nfull=$(VERSION_STRING)\nrelease=$(VERSION_SHORT)\n" \
|
$(PRINTF) "jdk=%s\nfull=%s\nrelease=%s\n" \
|
||||||
> $$@
|
$(VERSION_NUMBER) $(VERSION_STRING) $(VERSION_SHORT) > $$@
|
||||||
|
|
||||||
$$(strip $1) += $(SUPPORT_OUTPUTDIR)/gensrc/$(MODULE)/$$(strip $2)
|
$$(strip $1) += $(SUPPORT_OUTPUTDIR)/gensrc/$(MODULE)/$$(strip $2)
|
||||||
endef
|
endef
|
||||||
|
|||||||
@@ -128,10 +128,9 @@ define SetupSourceFiles
|
|||||||
# Extract the C/C++ files.
|
# Extract the C/C++ files.
|
||||||
ifneq ($$($1_EXCLUDE_PATTERNS), )
|
ifneq ($$($1_EXCLUDE_PATTERNS), )
|
||||||
# We must not match the exclude pattern against the src root(s).
|
# We must not match the exclude pattern against the src root(s).
|
||||||
$1_SRCS_WITHOUT_ROOTS := $$($1_SRCS)
|
$1_SRCS_WITHOUT_ROOTS := $$(foreach i, $$($1_SRC), \
|
||||||
$$(foreach i, $$($1_SRC), $$(eval $1_SRCS_WITHOUT_ROOTS := $$(patsubst \
|
$$(patsubst $$i/%,%, $$(filter $$i/%, $$($1_SRCS))))
|
||||||
$$i/%,%, $$($1_SRCS_WITHOUT_ROOTS))))
|
$1_ALL_EXCLUDE_FILES := $$(call containing, $$($1_EXCLUDE_PATTERNS), \
|
||||||
$1_ALL_EXCLUDE_FILES := $$(call containing, $$($1_EXCLUDE_PATTERNS), \
|
|
||||||
$$($1_SRCS_WITHOUT_ROOTS))
|
$$($1_SRCS_WITHOUT_ROOTS))
|
||||||
endif
|
endif
|
||||||
ifneq ($$($1_EXCLUDE_FILES), )
|
ifneq ($$($1_EXCLUDE_FILES), )
|
||||||
|
|||||||
@@ -1,100 +0,0 @@
|
|||||||
s/\\u0020/\x20/g
|
|
||||||
s/\\u003A/\x3A/g
|
|
||||||
s/\\u006B/\x6B/g
|
|
||||||
s/\\u0075/\x75/g
|
|
||||||
s/\\u00A0/\xA0/g
|
|
||||||
s/\\u00A3/\xA3/g
|
|
||||||
s/\\u00B0/\xB0/g
|
|
||||||
s/\\u00B7/\xB7/g
|
|
||||||
s/\\u00BA/\xBA/g
|
|
||||||
s/\\u00BF/\xBF/g
|
|
||||||
s/\\u00C0/\xC0/g
|
|
||||||
s/\\u00C1/\xC1/g
|
|
||||||
s/\\u00C2/\xC2/g
|
|
||||||
s/\\u00C4/\xC4/g
|
|
||||||
s/\\u00C5/\xC5/g
|
|
||||||
s/\\u00C8/\xC8/g
|
|
||||||
s/\\u00C9/\xC9/g
|
|
||||||
s/\\u00CA/\xCA/g
|
|
||||||
s/\\u00CD/\xCD/g
|
|
||||||
s/\\u00CE/\xCE/g
|
|
||||||
s/\\u00D3/\xD3/g
|
|
||||||
s/\\u00D4/\xD4/g
|
|
||||||
s/\\u00D6/\xD6/g
|
|
||||||
s/\\u00DA/\xDA/g
|
|
||||||
s/\\u00DC/\xDC/g
|
|
||||||
s/\\u00DD/\xDD/g
|
|
||||||
s/\\u00DF/\xDF/g
|
|
||||||
s/\\u00E0/\xE0/g
|
|
||||||
s/\\u00E1/\xE1/g
|
|
||||||
s/\\u00E2/\xE2/g
|
|
||||||
s/\\u00E3/\xE3/g
|
|
||||||
s/\\u00E4/\xE4/g
|
|
||||||
s/\\u00E5/\xE5/g
|
|
||||||
s/\\u00E6/\xE6/g
|
|
||||||
s/\\u00E7/\xE7/g
|
|
||||||
s/\\u00E8/\xE8/g
|
|
||||||
s/\\u00E9/\xE9/g
|
|
||||||
s/\\u00EA/\xEA/g
|
|
||||||
s/\\u00EB/\xEB/g
|
|
||||||
s/\\u00EC/\xEC/g
|
|
||||||
s/\\u00ED/\xED/g
|
|
||||||
s/\\u00EE/\xEE/g
|
|
||||||
s/\\u00EF/\xEF/g
|
|
||||||
s/\\u00F1/\xF1/g
|
|
||||||
s/\\u00F2/\xF2/g
|
|
||||||
s/\\u00F3/\xF3/g
|
|
||||||
s/\\u00F4/\xF4/g
|
|
||||||
s/\\u00F5/\xF5/g
|
|
||||||
s/\\u00F6/\xF6/g
|
|
||||||
s/\\u00F9/\xF9/g
|
|
||||||
s/\\u00FA/\xFA/g
|
|
||||||
s/\\u00FC/\xFC/g
|
|
||||||
s/\\u0020/\x20/g
|
|
||||||
s/\\u003f/\x3f/g
|
|
||||||
s/\\u006f/\x6f/g
|
|
||||||
s/\\u0075/\x75/g
|
|
||||||
s/\\u00a0/\xa0/g
|
|
||||||
s/\\u00a3/\xa3/g
|
|
||||||
s/\\u00b0/\xb0/g
|
|
||||||
s/\\u00ba/\xba/g
|
|
||||||
s/\\u00bf/\xbf/g
|
|
||||||
s/\\u00c1/\xc1/g
|
|
||||||
s/\\u00c4/\xc4/g
|
|
||||||
s/\\u00c5/\xc5/g
|
|
||||||
s/\\u00c8/\xc8/g
|
|
||||||
s/\\u00c9/\xc9/g
|
|
||||||
s/\\u00ca/\xca/g
|
|
||||||
s/\\u00cd/\xcd/g
|
|
||||||
s/\\u00d6/\xd6/g
|
|
||||||
s/\\u00dc/\xdc/g
|
|
||||||
s/\\u00dd/\xdd/g
|
|
||||||
s/\\u00df/\xdf/g
|
|
||||||
s/\\u00e0/\xe0/g
|
|
||||||
s/\\u00e1/\xe1/g
|
|
||||||
s/\\u00e2/\xe2/g
|
|
||||||
s/\\u00e3/\xe3/g
|
|
||||||
s/\\u00e4/\xe4/g
|
|
||||||
s/\\u00e5/\xe5/g
|
|
||||||
s/\\u00e7/\xe7/g
|
|
||||||
s/\\u00e8/\xe8/g
|
|
||||||
s/\\u00e9/\xe9/g
|
|
||||||
s/\\u00ea/\xea/g
|
|
||||||
s/\\u00eb/\xeb/g
|
|
||||||
s/\\u00ec/\xec/g
|
|
||||||
s/\\u00ed/\xed/g
|
|
||||||
s/\\u00ee/\xee/g
|
|
||||||
s/\\u00ef/\xef/g
|
|
||||||
s/\\u00f0/\xf0/g
|
|
||||||
s/\\u00f1/\xf1/g
|
|
||||||
s/\\u00f2/\xf2/g
|
|
||||||
s/\\u00f3/\xf3/g
|
|
||||||
s/\\u00f4/\xf4/g
|
|
||||||
s/\\u00f5/\xf5/g
|
|
||||||
s/\\u00f6/\xf6/g
|
|
||||||
s/\\u00f7/\xf7/g
|
|
||||||
s/\\u00f8/\xf8/g
|
|
||||||
s/\\u00f9/\xf9/g
|
|
||||||
s/\\u00fa/\xfa/g
|
|
||||||
s/\\u00fc/\xfc/g
|
|
||||||
s/\\u00ff/\xff/g
|
|
||||||
@@ -33,8 +33,8 @@ LINUX_X64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk24/1f9ff9062db4449d8
|
|||||||
LINUX_X64_BOOT_JDK_SHA256=88b090fa80c6c1d084ec9a755233967458788e2c0777ae2e172230c5c692d7ef
|
LINUX_X64_BOOT_JDK_SHA256=88b090fa80c6c1d084ec9a755233967458788e2c0777ae2e172230c5c692d7ef
|
||||||
|
|
||||||
ALPINE_LINUX_X64_BOOT_JDK_EXT=tar.gz
|
ALPINE_LINUX_X64_BOOT_JDK_EXT=tar.gz
|
||||||
ALPINE_LINUX_X64_BOOT_JDK_URL=https://github.com/adoptium/temurin24-binaries/releases/download/jdk-24%2B36/OpenJDK24U-jdk_aarch64_alpine-linux_hotspot_24_36.tar.gz
|
ALPINE_LINUX_X64_BOOT_JDK_URL=https://github.com/adoptium/temurin24-binaries/releases/download/jdk-24%2B36/OpenJDK24U-jdk_x64_alpine-linux_hotspot_24_36.tar.gz
|
||||||
ALPINE_LINUX_X64_BOOT_JDK_SHA256=4a673456aa6e726b86108a095a21868b7ebcdde050a92b3073d50105ff92f07f
|
ALPINE_LINUX_X64_BOOT_JDK_SHA256=a642608f0da78344ee6812fb1490b8bc1d7ad5a18064c70994d6f330568c51cb
|
||||||
|
|
||||||
MACOS_AARCH64_BOOT_JDK_EXT=tar.gz
|
MACOS_AARCH64_BOOT_JDK_EXT=tar.gz
|
||||||
MACOS_AARCH64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_macos-aarch64_bin.tar.gz
|
MACOS_AARCH64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_macos-aarch64_bin.tar.gz
|
||||||
|
|||||||
@@ -241,10 +241,10 @@ var getJibProfilesCommon = function (input, data) {
|
|||||||
|
|
||||||
// List of the main profile names used for iteration
|
// List of the main profile names used for iteration
|
||||||
common.main_profile_names = [
|
common.main_profile_names = [
|
||||||
"linux-x64", "linux-x86", "macosx-x64", "macosx-aarch64",
|
"macosx-x64", "macosx-aarch64",
|
||||||
"windows-x64", "windows-aarch64",
|
"windows-x64", "windows-aarch64",
|
||||||
"linux-aarch64", "linux-arm32", "linux-ppc64le", "linux-s390x",
|
"linux-x64", "linux-aarch64",
|
||||||
"linux-riscv64"
|
"linux-arm32", "linux-ppc64le", "linux-s390x", "linux-riscv64"
|
||||||
];
|
];
|
||||||
|
|
||||||
// These are the base settings for all the main build profiles.
|
// These are the base settings for all the main build profiles.
|
||||||
@@ -254,7 +254,6 @@ var getJibProfilesCommon = function (input, data) {
|
|||||||
configure_args: concat(
|
configure_args: concat(
|
||||||
"--with-exclude-translations=es,fr,it,ko,pt_BR,sv,ca,tr,cs,sk,ja_JP_A,ja_JP_HA,ja_JP_HI,ja_JP_I,zh_TW,zh_HK",
|
"--with-exclude-translations=es,fr,it,ko,pt_BR,sv,ca,tr,cs,sk,ja_JP_A,ja_JP_HA,ja_JP_HI,ja_JP_I,zh_TW,zh_HK",
|
||||||
"--disable-jvm-feature-shenandoahgc",
|
"--disable-jvm-feature-shenandoahgc",
|
||||||
"--disable-cds-archive-coh",
|
|
||||||
versionArgs(input, common))
|
versionArgs(input, common))
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -283,9 +282,6 @@ var getJibProfilesCommon = function (input, data) {
|
|||||||
labels: "open"
|
labels: "open"
|
||||||
};
|
};
|
||||||
|
|
||||||
common.configure_args_64bit = ["--with-target-bits=64"];
|
|
||||||
common.configure_args_32bit = ["--with-target-bits=32"];
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Define common artifacts template for all main profiles
|
* Define common artifacts template for all main profiles
|
||||||
* @param o - Object containing data for artifacts
|
* @param o - Object containing data for artifacts
|
||||||
@@ -412,58 +408,34 @@ var getJibProfilesProfiles = function (input, common, data) {
|
|||||||
|
|
||||||
// Main SE profiles
|
// Main SE profiles
|
||||||
var profiles = {
|
var profiles = {
|
||||||
|
|
||||||
"linux-x64": {
|
|
||||||
target_os: "linux",
|
|
||||||
target_cpu: "x64",
|
|
||||||
dependencies: ["devkit", "gtest", "build_devkit", "graphviz", "pandoc", "tidy"],
|
|
||||||
configure_args: concat(
|
|
||||||
(input.build_cpu == "x64" ? common.configure_args_64bit
|
|
||||||
: "--openjdk-target=x86_64-linux-gnu"),
|
|
||||||
"--with-zlib=system", "--disable-dtrace",
|
|
||||||
(isWsl(input) ? [ "--host=x86_64-unknown-linux-gnu",
|
|
||||||
"--build=x86_64-unknown-linux-gnu" ] : [])),
|
|
||||||
},
|
|
||||||
|
|
||||||
"linux-x86": {
|
|
||||||
target_os: "linux",
|
|
||||||
target_cpu: "x86",
|
|
||||||
build_cpu: "x64",
|
|
||||||
dependencies: ["devkit", "gtest", "libffi"],
|
|
||||||
configure_args: concat(common.configure_args_32bit, [
|
|
||||||
"--with-jvm-variants=minimal,server",
|
|
||||||
"--with-zlib=system",
|
|
||||||
"--with-libffi=" + input.get("libffi", "home_path"),
|
|
||||||
"--enable-libffi-bundling",
|
|
||||||
"--enable-fallback-linker"
|
|
||||||
])
|
|
||||||
},
|
|
||||||
|
|
||||||
"macosx-x64": {
|
"macosx-x64": {
|
||||||
target_os: "macosx",
|
target_os: "macosx",
|
||||||
target_cpu: "x64",
|
target_cpu: "x64",
|
||||||
dependencies: ["devkit", "gtest", "graphviz", "pandoc", "tidy"],
|
dependencies: ["devkit", "gtest", "graphviz", "pandoc", "tidy"],
|
||||||
configure_args: concat(common.configure_args_64bit, "--with-zlib=system",
|
configure_args: [
|
||||||
|
"--with-zlib=system",
|
||||||
"--with-macosx-version-max=11.00.00",
|
"--with-macosx-version-max=11.00.00",
|
||||||
"--enable-compatible-cds-alignment",
|
"--enable-compatible-cds-alignment",
|
||||||
// Use system SetFile instead of the one in the devkit as the
|
// Use system SetFile instead of the one in the devkit as the
|
||||||
// devkit one may not work on Catalina.
|
// devkit one may not work on Catalina.
|
||||||
"SETFILE=/usr/bin/SetFile"),
|
"SETFILE=/usr/bin/SetFile"
|
||||||
|
],
|
||||||
},
|
},
|
||||||
|
|
||||||
"macosx-aarch64": {
|
"macosx-aarch64": {
|
||||||
target_os: "macosx",
|
target_os: "macosx",
|
||||||
target_cpu: "aarch64",
|
target_cpu: "aarch64",
|
||||||
dependencies: ["devkit", "gtest", "graphviz", "pandoc", "tidy"],
|
dependencies: ["devkit", "gtest", "graphviz", "pandoc", "tidy"],
|
||||||
configure_args: concat(common.configure_args_64bit,
|
configure_args: [
|
||||||
"--with-macosx-version-max=11.00.00"),
|
"--with-macosx-version-max=11.00.00"
|
||||||
|
],
|
||||||
},
|
},
|
||||||
|
|
||||||
"windows-x64": {
|
"windows-x64": {
|
||||||
target_os: "windows",
|
target_os: "windows",
|
||||||
target_cpu: "x64",
|
target_cpu: "x64",
|
||||||
dependencies: ["devkit", "gtest", "pandoc"],
|
dependencies: ["devkit", "gtest", "pandoc"],
|
||||||
configure_args: concat(common.configure_args_64bit),
|
configure_args: [],
|
||||||
},
|
},
|
||||||
|
|
||||||
"windows-aarch64": {
|
"windows-aarch64": {
|
||||||
@@ -475,7 +447,19 @@ var getJibProfilesProfiles = function (input, common, data) {
|
|||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
|
||||||
"linux-aarch64": {
|
"linux-x64": {
|
||||||
|
target_os: "linux",
|
||||||
|
target_cpu: "x64",
|
||||||
|
dependencies: ["devkit", "gtest", "build_devkit", "graphviz", "pandoc", "tidy"],
|
||||||
|
configure_args: concat(
|
||||||
|
"--with-zlib=system",
|
||||||
|
"--disable-dtrace",
|
||||||
|
(cross_compiling ? [ "--openjdk-target=x86_64-linux-gnu" ] : []),
|
||||||
|
(isWsl(input) ? [ "--host=x86_64-unknown-linux-gnu",
|
||||||
|
"--build=x86_64-unknown-linux-gnu" ] : [])),
|
||||||
|
},
|
||||||
|
|
||||||
|
"linux-aarch64": {
|
||||||
target_os: "linux",
|
target_os: "linux",
|
||||||
target_cpu: "aarch64",
|
target_cpu: "aarch64",
|
||||||
dependencies: ["devkit", "gtest", "build_devkit", "graphviz", "pandoc", "tidy"],
|
dependencies: ["devkit", "gtest", "build_devkit", "graphviz", "pandoc", "tidy"],
|
||||||
@@ -492,8 +476,10 @@ var getJibProfilesProfiles = function (input, common, data) {
|
|||||||
build_cpu: "x64",
|
build_cpu: "x64",
|
||||||
dependencies: ["devkit", "gtest", "build_devkit"],
|
dependencies: ["devkit", "gtest", "build_devkit"],
|
||||||
configure_args: [
|
configure_args: [
|
||||||
"--openjdk-target=arm-linux-gnueabihf", "--with-freetype=bundled",
|
"--openjdk-target=arm-linux-gnueabihf",
|
||||||
"--with-abi-profile=arm-vfp-hflt", "--disable-warnings-as-errors"
|
"--with-freetype=bundled",
|
||||||
|
"--with-abi-profile=arm-vfp-hflt",
|
||||||
|
"--disable-warnings-as-errors"
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -503,7 +489,8 @@ var getJibProfilesProfiles = function (input, common, data) {
|
|||||||
build_cpu: "x64",
|
build_cpu: "x64",
|
||||||
dependencies: ["devkit", "gtest", "build_devkit"],
|
dependencies: ["devkit", "gtest", "build_devkit"],
|
||||||
configure_args: [
|
configure_args: [
|
||||||
"--openjdk-target=ppc64le-linux-gnu", "--with-freetype=bundled",
|
"--openjdk-target=ppc64le-linux-gnu",
|
||||||
|
"--with-freetype=bundled",
|
||||||
"--disable-warnings-as-errors"
|
"--disable-warnings-as-errors"
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
@@ -514,7 +501,8 @@ var getJibProfilesProfiles = function (input, common, data) {
|
|||||||
build_cpu: "x64",
|
build_cpu: "x64",
|
||||||
dependencies: ["devkit", "gtest", "build_devkit"],
|
dependencies: ["devkit", "gtest", "build_devkit"],
|
||||||
configure_args: [
|
configure_args: [
|
||||||
"--openjdk-target=s390x-linux-gnu", "--with-freetype=bundled",
|
"--openjdk-target=s390x-linux-gnu",
|
||||||
|
"--with-freetype=bundled",
|
||||||
"--disable-warnings-as-errors"
|
"--disable-warnings-as-errors"
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
@@ -525,7 +513,8 @@ var getJibProfilesProfiles = function (input, common, data) {
|
|||||||
build_cpu: "x64",
|
build_cpu: "x64",
|
||||||
dependencies: ["devkit", "gtest", "build_devkit"],
|
dependencies: ["devkit", "gtest", "build_devkit"],
|
||||||
configure_args: [
|
configure_args: [
|
||||||
"--openjdk-target=riscv64-linux-gnu", "--with-freetype=bundled",
|
"--openjdk-target=riscv64-linux-gnu",
|
||||||
|
"--with-freetype=bundled",
|
||||||
"--disable-warnings-as-errors"
|
"--disable-warnings-as-errors"
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
@@ -586,24 +575,24 @@ var getJibProfilesProfiles = function (input, common, data) {
|
|||||||
target_os: "linux",
|
target_os: "linux",
|
||||||
target_cpu: "x64",
|
target_cpu: "x64",
|
||||||
dependencies: ["devkit", "gtest", "libffi"],
|
dependencies: ["devkit", "gtest", "libffi"],
|
||||||
configure_args: concat(common.configure_args_64bit, [
|
configure_args: [
|
||||||
"--with-zlib=system",
|
"--with-zlib=system",
|
||||||
"--with-jvm-variants=zero",
|
"--with-jvm-variants=zero",
|
||||||
"--with-libffi=" + input.get("libffi", "home_path"),
|
"--with-libffi=" + input.get("libffi", "home_path"),
|
||||||
"--enable-libffi-bundling",
|
"--enable-libffi-bundling",
|
||||||
])
|
]
|
||||||
},
|
},
|
||||||
|
|
||||||
"linux-aarch64-zero": {
|
"linux-aarch64-zero": {
|
||||||
target_os: "linux",
|
target_os: "linux",
|
||||||
target_cpu: "aarch64",
|
target_cpu: "aarch64",
|
||||||
dependencies: ["devkit", "gtest", "libffi"],
|
dependencies: ["devkit", "gtest", "libffi"],
|
||||||
configure_args: concat(common.configure_args_64bit, [
|
configure_args: [
|
||||||
"--with-zlib=system",
|
"--with-zlib=system",
|
||||||
"--with-jvm-variants=zero",
|
"--with-jvm-variants=zero",
|
||||||
"--with-libffi=" + input.get("libffi", "home_path"),
|
"--with-libffi=" + input.get("libffi", "home_path"),
|
||||||
"--enable-libffi-bundling"
|
"--enable-libffi-bundling"
|
||||||
])
|
]
|
||||||
},
|
},
|
||||||
|
|
||||||
"linux-x86-zero": {
|
"linux-x86-zero": {
|
||||||
@@ -611,12 +600,13 @@ var getJibProfilesProfiles = function (input, common, data) {
|
|||||||
target_cpu: "x86",
|
target_cpu: "x86",
|
||||||
build_cpu: "x64",
|
build_cpu: "x64",
|
||||||
dependencies: ["devkit", "gtest", "libffi"],
|
dependencies: ["devkit", "gtest", "libffi"],
|
||||||
configure_args: concat(common.configure_args_32bit, [
|
configure_args: [
|
||||||
|
"--with-target-bits=32",
|
||||||
"--with-zlib=system",
|
"--with-zlib=system",
|
||||||
"--with-jvm-variants=zero",
|
"--with-jvm-variants=zero",
|
||||||
"--with-libffi=" + input.get("libffi", "home_path"),
|
"--with-libffi=" + input.get("libffi", "home_path"),
|
||||||
"--enable-libffi-bundling"
|
"--enable-libffi-bundling"
|
||||||
])
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
profiles = concatObjects(profiles, zeroProfiles);
|
profiles = concatObjects(profiles, zeroProfiles);
|
||||||
@@ -635,8 +625,10 @@ var getJibProfilesProfiles = function (input, common, data) {
|
|||||||
target_os: "linux",
|
target_os: "linux",
|
||||||
target_cpu: "x64",
|
target_cpu: "x64",
|
||||||
dependencies: ["devkit", "gtest"],
|
dependencies: ["devkit", "gtest"],
|
||||||
configure_args: concat(common.configure_args_64bit,
|
configure_args: [
|
||||||
"--with-zlib=system", "--disable-precompiled-headers"),
|
"--with-zlib=system",
|
||||||
|
"--disable-precompiled-headers"
|
||||||
|
],
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
profiles = concatObjects(profiles, noPchProfiles);
|
profiles = concatObjects(profiles, noPchProfiles);
|
||||||
@@ -693,9 +685,6 @@ var getJibProfilesProfiles = function (input, common, data) {
|
|||||||
"linux-x64": {
|
"linux-x64": {
|
||||||
platform: "linux-x64",
|
platform: "linux-x64",
|
||||||
},
|
},
|
||||||
"linux-x86": {
|
|
||||||
platform: "linux-x86",
|
|
||||||
},
|
|
||||||
"macosx-x64": {
|
"macosx-x64": {
|
||||||
platform: "macos-x64",
|
platform: "macos-x64",
|
||||||
jdk_subdir: "jdk-" + data.version + ".jdk/Contents/Home",
|
jdk_subdir: "jdk-" + data.version + ".jdk/Contents/Home",
|
||||||
@@ -872,7 +861,8 @@ var getJibProfilesProfiles = function (input, common, data) {
|
|||||||
profiles[cmpBaselineName].configure_args = concat(
|
profiles[cmpBaselineName].configure_args = concat(
|
||||||
profiles[cmpBaselineName].configure_args,
|
profiles[cmpBaselineName].configure_args,
|
||||||
"--with-hotspot-build-time=n/a",
|
"--with-hotspot-build-time=n/a",
|
||||||
"--disable-precompiled-headers");
|
"--disable-precompiled-headers",
|
||||||
|
"--with-source-date=version");
|
||||||
// Do not inherit artifact definitions from base profile
|
// Do not inherit artifact definitions from base profile
|
||||||
delete profiles[cmpBaselineName].artifacts;
|
delete profiles[cmpBaselineName].artifacts;
|
||||||
});
|
});
|
||||||
@@ -1088,14 +1078,14 @@ var getJibProfilesProfiles = function (input, common, data) {
|
|||||||
var getJibProfilesDependencies = function (input, common) {
|
var getJibProfilesDependencies = function (input, common) {
|
||||||
|
|
||||||
var devkit_platform_revisions = {
|
var devkit_platform_revisions = {
|
||||||
linux_x64: "gcc13.2.0-OL6.4+1.0",
|
linux_x64: "gcc14.2.0-OL6.4+1.0",
|
||||||
macosx: "Xcode14.3.1+1.0",
|
macosx: "Xcode15.4+1.0",
|
||||||
windows_x64: "VS2022-17.6.5+1.0",
|
windows_x64: "VS2022-17.13.2+1.0",
|
||||||
linux_aarch64: "gcc13.2.0-OL7.6+1.0",
|
linux_aarch64: "gcc14.2.0-OL7.6+1.0",
|
||||||
linux_arm: "gcc8.2.0-Fedora27+1.0",
|
linux_arm: "gcc8.2.0-Fedora27+1.0",
|
||||||
linux_ppc64le: "gcc13.2.0-Fedora_41+1.0",
|
linux_ppc64le: "gcc14.2.0-Fedora_41+1.0",
|
||||||
linux_s390x: "gcc13.2.0-Fedora_41+1.0",
|
linux_s390x: "gcc14.2.0-Fedora_41+1.0",
|
||||||
linux_riscv64: "gcc13.2.0-Fedora_41+1.0"
|
linux_riscv64: "gcc14.2.0-Fedora_41+1.0"
|
||||||
};
|
};
|
||||||
|
|
||||||
var devkit_platform = (input.target_cpu == "x86"
|
var devkit_platform = (input.target_cpu == "x86"
|
||||||
@@ -1161,10 +1151,7 @@ var getJibProfilesDependencies = function (input, common) {
|
|||||||
organization: common.organization,
|
organization: common.organization,
|
||||||
ext: "tar.gz",
|
ext: "tar.gz",
|
||||||
module: "devkit-" + devkit_cross_prefix + devkit_platform,
|
module: "devkit-" + devkit_cross_prefix + devkit_platform,
|
||||||
revision: devkit_platform_revisions[devkit_platform],
|
revision: devkit_platform_revisions[devkit_platform]
|
||||||
environment: {
|
|
||||||
"DEVKIT_HOME": input.get("devkit", "home_path"),
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
|
||||||
build_devkit: {
|
build_devkit: {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
UNICODE LICENSE V3
|
UNICODE LICENSE V3
|
||||||
|
|
||||||
COPYRIGHT AND PERMISSION NOTICE
|
COPYRIGHT AND PERMISSION NOTICE
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2022, 2023, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2022, 2025, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -43,6 +43,18 @@
|
|||||||
#define ATTRIBUTE_USED
|
#define ATTRIBUTE_USED
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// On AIX, the llvm_symbolizer is not found out of the box, so we have to provide the
|
||||||
|
// full qualified llvm_symbolizer path in the __ubsan_default_options() function.
|
||||||
|
// To get it here we compile our sources with an additional define LLVM_SYMBOLIZER
|
||||||
|
// containing the path, which we set in make/autoconf/jdk-options.m4.
|
||||||
|
#ifdef LLVM_SYMBOLIZER
|
||||||
|
#define _LLVM_SYMBOLIZER(X) ",external_symbolizer_path=" X_LLVM_SYMBOLIZER(X)
|
||||||
|
#define X_LLVM_SYMBOLIZER(X) #X
|
||||||
|
#else
|
||||||
|
#define LLVM_SYMBOLIZER
|
||||||
|
#define _LLVM_SYMBOLIZER(X)
|
||||||
|
#endif
|
||||||
|
|
||||||
// Override weak symbol exposed by UBSan to override default options. This is called by UBSan
|
// Override weak symbol exposed by UBSan to override default options. This is called by UBSan
|
||||||
// extremely early during library loading, before main is called. We need to override the default
|
// extremely early during library loading, before main is called. We need to override the default
|
||||||
// options because by default UBSan only prints a warning for each occurrence. We want jtreg tests
|
// options because by default UBSan only prints a warning for each occurrence. We want jtreg tests
|
||||||
@@ -50,5 +62,5 @@
|
|||||||
// thread so it is easier to track down. You can override these options by setting the environment
|
// thread so it is easier to track down. You can override these options by setting the environment
|
||||||
// variable UBSAN_OPTIONS.
|
// variable UBSAN_OPTIONS.
|
||||||
ATTRIBUTE_DEFAULT_VISIBILITY ATTRIBUTE_USED const char* __ubsan_default_options() {
|
ATTRIBUTE_DEFAULT_VISIBILITY ATTRIBUTE_USED const char* __ubsan_default_options() {
|
||||||
return "halt_on_error=1,print_stacktrace=1";
|
return "halt_on_error=1,print_stacktrace=1" _LLVM_SYMBOLIZER(LLVM_SYMBOLIZER);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,6 +39,8 @@
|
|||||||
# Fix this...
|
# Fix this...
|
||||||
#
|
#
|
||||||
|
|
||||||
|
uppercase = $(shell echo $1 | tr a-z A-Z)
|
||||||
|
|
||||||
$(info TARGET=$(TARGET))
|
$(info TARGET=$(TARGET))
|
||||||
$(info HOST=$(HOST))
|
$(info HOST=$(HOST))
|
||||||
$(info BUILD=$(BUILD))
|
$(info BUILD=$(BUILD))
|
||||||
@@ -91,89 +93,28 @@ endif
|
|||||||
################################################################################
|
################################################################################
|
||||||
# Define external dependencies
|
# Define external dependencies
|
||||||
|
|
||||||
# Latest that could be made to work.
|
gcc_ver_only := 14.2.0
|
||||||
GCC_VER := 13.2.0
|
binutils_ver_only := 2.43
|
||||||
ifeq ($(GCC_VER), 13.2.0)
|
ccache_ver_only := 4.10.2
|
||||||
gcc_ver := gcc-13.2.0
|
CCACHE_CMAKE_BASED := 1
|
||||||
binutils_ver := binutils-2.41
|
mpfr_ver_only := 4.2.1
|
||||||
ccache_ver := ccache-3.7.12
|
gmp_ver_only := 6.3.0
|
||||||
mpfr_ver := mpfr-4.2.0
|
mpc_ver_only := 1.3.1
|
||||||
gmp_ver := gmp-6.3.0
|
gdb_ver_only := 15.2
|
||||||
mpc_ver := mpc-1.3.1
|
|
||||||
gdb_ver := gdb-13.2
|
|
||||||
REQUIRED_MIN_MAKE_MAJOR_VERSION := 4
|
|
||||||
else ifeq ($(GCC_VER), 11.3.0)
|
|
||||||
gcc_ver := gcc-11.3.0
|
|
||||||
binutils_ver := binutils-2.39
|
|
||||||
ccache_ver := ccache-3.7.12
|
|
||||||
mpfr_ver := mpfr-4.1.1
|
|
||||||
gmp_ver := gmp-6.2.1
|
|
||||||
mpc_ver := mpc-1.2.1
|
|
||||||
gdb_ver := gdb-11.2
|
|
||||||
REQUIRED_MIN_MAKE_MAJOR_VERSION := 4
|
|
||||||
else ifeq ($(GCC_VER), 11.2.0)
|
|
||||||
gcc_ver := gcc-11.2.0
|
|
||||||
binutils_ver := binutils-2.37
|
|
||||||
ccache_ver := ccache-3.7.12
|
|
||||||
mpfr_ver := mpfr-4.1.0
|
|
||||||
gmp_ver := gmp-6.2.1
|
|
||||||
mpc_ver := mpc-1.2.1
|
|
||||||
gdb_ver := gdb-11.1
|
|
||||||
REQUIRED_MIN_MAKE_MAJOR_VERSION := 4
|
|
||||||
else ifeq ($(GCC_VER), 10.3.0)
|
|
||||||
gcc_ver := gcc-10.3.0
|
|
||||||
binutils_ver := binutils-2.36.1
|
|
||||||
ccache_ver := ccache-3.7.11
|
|
||||||
mpfr_ver := mpfr-4.1.0
|
|
||||||
gmp_ver := gmp-6.2.0
|
|
||||||
mpc_ver := mpc-1.1.0
|
|
||||||
gdb_ver := gdb-10.1
|
|
||||||
REQUIRED_MIN_MAKE_MAJOR_VERSION := 4
|
|
||||||
else ifeq ($(GCC_VER), 10.2.0)
|
|
||||||
gcc_ver := gcc-10.2.0
|
|
||||||
binutils_ver := binutils-2.35
|
|
||||||
ccache_ver := ccache-3.7.11
|
|
||||||
mpfr_ver := mpfr-4.1.0
|
|
||||||
gmp_ver := gmp-6.2.0
|
|
||||||
mpc_ver := mpc-1.1.0
|
|
||||||
gdb_ver := gdb-9.2
|
|
||||||
REQUIRED_MIN_MAKE_MAJOR_VERSION := 4
|
|
||||||
else ifeq ($(GCC_VER), 9.2.0)
|
|
||||||
gcc_ver := gcc-9.2.0
|
|
||||||
binutils_ver := binutils-2.34
|
|
||||||
ccache_ver := ccache-3.7.3
|
|
||||||
mpfr_ver := mpfr-3.1.5
|
|
||||||
gmp_ver := gmp-6.1.2
|
|
||||||
mpc_ver := mpc-1.0.3
|
|
||||||
gdb_ver := gdb-8.3
|
|
||||||
else ifeq ($(GCC_VER), 8.3.0)
|
|
||||||
gcc_ver := gcc-8.3.0
|
|
||||||
binutils_ver := binutils-2.32
|
|
||||||
ccache_ver := ccache-3.7.3
|
|
||||||
mpfr_ver := mpfr-3.1.5
|
|
||||||
gmp_ver := gmp-6.1.2
|
|
||||||
mpc_ver := mpc-1.0.3
|
|
||||||
gdb_ver := gdb-8.3
|
|
||||||
else ifeq ($(GCC_VER), 7.3.0)
|
|
||||||
gcc_ver := gcc-7.3.0
|
|
||||||
binutils_ver := binutils-2.30
|
|
||||||
ccache_ver := ccache-3.3.6
|
|
||||||
mpfr_ver := mpfr-3.1.5
|
|
||||||
gmp_ver := gmp-6.1.2
|
|
||||||
mpc_ver := mpc-1.0.3
|
|
||||||
gdb_ver := gdb-8.1
|
|
||||||
else ifeq ($(GCC_VER), 4.9.2)
|
|
||||||
gcc_ver := gcc-4.9.2
|
|
||||||
binutils_ver := binutils-2.25
|
|
||||||
ccache_ver := ccache-3.2.1
|
|
||||||
mpfr_ver := mpfr-3.0.1
|
|
||||||
gmp_ver := gmp-4.3.2
|
|
||||||
mpc_ver := mpc-1.0.1
|
|
||||||
gdb_ver := gdb-7.12.1
|
|
||||||
else
|
|
||||||
$(error Unsupported GCC version)
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
dependencies := gcc binutils ccache mpfr gmp mpc gdb
|
||||||
|
|
||||||
|
$(foreach dep,$(dependencies),$(eval $(dep)_ver := $(dep)-$($(dep)_ver_only)))
|
||||||
|
|
||||||
|
GCC := http://ftp.gnu.org/pub/gnu/gcc/$(gcc_ver)/$(gcc_ver).tar.xz
|
||||||
|
BINUTILS := http://ftp.gnu.org/pub/gnu/binutils/$(binutils_ver).tar.gz
|
||||||
|
CCACHE := https://github.com/ccache/ccache/releases/download/v$(ccache_ver_only)/$(ccache_ver).tar.xz
|
||||||
|
MPFR := https://www.mpfr.org/$(mpfr_ver)/$(mpfr_ver).tar.bz2
|
||||||
|
GMP := http://ftp.gnu.org/pub/gnu/gmp/$(gmp_ver).tar.bz2
|
||||||
|
MPC := http://ftp.gnu.org/pub/gnu/mpc/$(mpc_ver).tar.gz
|
||||||
|
GDB := http://ftp.gnu.org/gnu/gdb/$(gdb_ver).tar.xz
|
||||||
|
|
||||||
|
REQUIRED_MIN_MAKE_MAJOR_VERSION := 4
|
||||||
ifneq ($(REQUIRED_MIN_MAKE_MAJOR_VERSION),)
|
ifneq ($(REQUIRED_MIN_MAKE_MAJOR_VERSION),)
|
||||||
MAKE_MAJOR_VERSION := $(word 1,$(subst ., ,$(MAKE_VERSION)))
|
MAKE_MAJOR_VERSION := $(word 1,$(subst ., ,$(MAKE_VERSION)))
|
||||||
SUPPORTED_MAKE_VERSION := $(shell [ $(MAKE_MAJOR_VERSION) -ge $(REQUIRED_MIN_MAKE_MAJOR_VERSION) ] && echo true)
|
SUPPORTED_MAKE_VERSION := $(shell [ $(MAKE_MAJOR_VERSION) -ge $(REQUIRED_MIN_MAKE_MAJOR_VERSION) ] && echo true)
|
||||||
@@ -182,17 +123,6 @@ ifneq ($(REQUIRED_MIN_MAKE_MAJOR_VERSION),)
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ccache_ver_only := $(patsubst ccache-%,%,$(ccache_ver))
|
|
||||||
|
|
||||||
|
|
||||||
GCC := http://ftp.gnu.org/pub/gnu/gcc/$(gcc_ver)/$(gcc_ver).tar.xz
|
|
||||||
BINUTILS := http://ftp.gnu.org/pub/gnu/binutils/$(binutils_ver).tar.gz
|
|
||||||
CCACHE := https://github.com/ccache/ccache/releases/download/v$(ccache_ver_only)/$(ccache_ver).tar.xz
|
|
||||||
MPFR := https://www.mpfr.org/${mpfr_ver}/${mpfr_ver}.tar.bz2
|
|
||||||
GMP := http://ftp.gnu.org/pub/gnu/gmp/${gmp_ver}.tar.bz2
|
|
||||||
MPC := http://ftp.gnu.org/pub/gnu/mpc/${mpc_ver}.tar.gz
|
|
||||||
GDB := http://ftp.gnu.org/gnu/gdb/${gdb_ver}.tar.xz
|
|
||||||
|
|
||||||
# RPMs used by all BASE_OS
|
# RPMs used by all BASE_OS
|
||||||
RPM_LIST := \
|
RPM_LIST := \
|
||||||
$(KERNEL_HEADERS_RPM) \
|
$(KERNEL_HEADERS_RPM) \
|
||||||
@@ -262,10 +192,18 @@ define Download
|
|||||||
# Allow override
|
# Allow override
|
||||||
$(1)_DIRNAME ?= $(basename $(basename $(notdir $($(1)))))
|
$(1)_DIRNAME ?= $(basename $(basename $(notdir $($(1)))))
|
||||||
$(1)_DIR = $(abspath $(SRCDIR)/$$($(1)_DIRNAME))
|
$(1)_DIR = $(abspath $(SRCDIR)/$$($(1)_DIRNAME))
|
||||||
$(1)_CFG = $$($(1)_DIR)/configure
|
ifeq ($$($(1)_CMAKE_BASED),)
|
||||||
|
$(1)_CFG = $$($(1)_DIR)/configure
|
||||||
|
$(1)_SRC_MARKER = $$($(1)_DIR)/configure
|
||||||
|
$(1)_CONFIG = $(CONFIG)
|
||||||
|
else
|
||||||
|
$(1)_CFG = cmake
|
||||||
|
$(1)_SRC_MARKER = $$($(1)_DIR)/CMakeLists.txt
|
||||||
|
$(1)_CONFIG = $$(CMAKE_CONFIG) $$($(1)_DIR)
|
||||||
|
endif
|
||||||
$(1)_FILE = $(DOWNLOAD)/$(notdir $($(1)))
|
$(1)_FILE = $(DOWNLOAD)/$(notdir $($(1)))
|
||||||
|
|
||||||
$$($(1)_CFG) : $$($(1)_FILE)
|
$$($(1)_SRC_MARKER) : $$($(1)_FILE)
|
||||||
mkdir -p $$(SRCDIR)
|
mkdir -p $$(SRCDIR)
|
||||||
tar -C $$(SRCDIR) -xf $$<
|
tar -C $$(SRCDIR) -xf $$<
|
||||||
$$(foreach p,$$(abspath $$(wildcard patches/$$(ARCH)-$$(notdir $$($(1)_DIR)).patch)), \
|
$$(foreach p,$$(abspath $$(wildcard patches/$$(ARCH)-$$(notdir $$($(1)_DIR)).patch)), \
|
||||||
@@ -279,7 +217,7 @@ define Download
|
|||||||
endef
|
endef
|
||||||
|
|
||||||
# Download and unpack all source packages
|
# Download and unpack all source packages
|
||||||
$(foreach p,GCC BINUTILS CCACHE MPFR GMP MPC GDB,$(eval $(call Download,$(p))))
|
$(foreach dep,$(dependencies),$(eval $(call Download,$(call uppercase,$(dep)))))
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Unpack RPMS
|
# Unpack RPMS
|
||||||
@@ -356,7 +294,7 @@ endif
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
# Define marker files for each source package to be compiled
|
# Define marker files for each source package to be compiled
|
||||||
$(foreach t,binutils mpfr gmp mpc gcc ccache gdb,$(eval $(t) = $(TARGETDIR)/$($(t)_ver).done))
|
$(foreach dep,$(dependencies),$(eval $(dep) = $(TARGETDIR)/$($(dep)_ver).done))
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
@@ -365,6 +303,8 @@ CONFIG = --target=$(TARGET) \
|
|||||||
--host=$(HOST) --build=$(BUILD) \
|
--host=$(HOST) --build=$(BUILD) \
|
||||||
--prefix=$(PREFIX)
|
--prefix=$(PREFIX)
|
||||||
|
|
||||||
|
CMAKE_CONFIG = -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$(PREFIX)
|
||||||
|
|
||||||
PATHEXT = $(PREFIX)/bin:
|
PATHEXT = $(PREFIX)/bin:
|
||||||
|
|
||||||
PATHPRE = PATH=$(PATHEXT)$(PATH)
|
PATHPRE = PATH=$(PATHEXT)$(PATH)
|
||||||
@@ -576,6 +516,8 @@ ifeq ($(HOST), $(TARGET))
|
|||||||
$(PATHPRE) $(ENVS) CFLAGS="$(CFLAGS)" $(GDB_CFG) \
|
$(PATHPRE) $(ENVS) CFLAGS="$(CFLAGS)" $(GDB_CFG) \
|
||||||
$(CONFIG) \
|
$(CONFIG) \
|
||||||
--with-sysroot=$(SYSROOT) \
|
--with-sysroot=$(SYSROOT) \
|
||||||
|
--with-mpfr=$(PREFIX) \
|
||||||
|
--with-gmp=$(PREFIX) \
|
||||||
) > $(@D)/log.config 2>&1
|
) > $(@D)/log.config 2>&1
|
||||||
@echo 'done'
|
@echo 'done'
|
||||||
|
|
||||||
@@ -591,13 +533,13 @@ endif
|
|||||||
################################################################################
|
################################################################################
|
||||||
# very straightforward. just build a ccache. it is only for host.
|
# very straightforward. just build a ccache. it is only for host.
|
||||||
$(BUILDDIR)/$(ccache_ver)/Makefile \
|
$(BUILDDIR)/$(ccache_ver)/Makefile \
|
||||||
: $(CCACHE_CFG)
|
: $(CCACHE_SRC_MARKER)
|
||||||
$(info Configuring $@. Log in $(@D)/log.config)
|
$(info Configuring $@. Log in $(@D)/log.config)
|
||||||
@mkdir -p $(@D)
|
@mkdir -p $(@D)
|
||||||
@( \
|
@( \
|
||||||
cd $(@D) ; \
|
cd $(@D) ; \
|
||||||
$(PATHPRE) $(ENVS) $(CCACHE_CFG) \
|
$(PATHPRE) $(ENVS) $(CCACHE_CFG) \
|
||||||
$(CONFIG) \
|
$(CCACHE_CONFIG) \
|
||||||
) > $(@D)/log.config 2>&1
|
) > $(@D)/log.config 2>&1
|
||||||
@echo 'done'
|
@echo 'done'
|
||||||
|
|
||||||
@@ -699,10 +641,18 @@ ifeq ($(TARGET), $(HOST))
|
|||||||
ln -s $(TARGET)-$* $@
|
ln -s $(TARGET)-$* $@
|
||||||
|
|
||||||
missing-links := $(addprefix $(PREFIX)/bin/, \
|
missing-links := $(addprefix $(PREFIX)/bin/, \
|
||||||
addr2line ar as c++ c++filt dwp elfedit g++ gcc gcc-$(GCC_VER) gprof ld ld.bfd \
|
addr2line ar as c++ c++filt dwp elfedit g++ gcc gcc-$(gcc_ver_only) gprof ld ld.bfd \
|
||||||
ld.gold nm objcopy objdump ranlib readelf size strings strip)
|
ld.gold nm objcopy objdump ranlib readelf size strings strip)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# Add link to work around "plugin needed to handle lto object" (JDK-8344272)
|
||||||
|
$(PREFIX)/lib/bfd-plugins/liblto_plugin.so: $(PREFIX)/libexec/gcc/$(TARGET)/$(gcc_ver_only)/liblto_plugin.so
|
||||||
|
@echo 'Creating missing $(@F) soft link'
|
||||||
|
@mkdir -p $(@D)
|
||||||
|
ln -s $$(realpath -s --relative-to=$(@D) $<) $@
|
||||||
|
|
||||||
|
missing-links += $(PREFIX)/lib/bfd-plugins/liblto_plugin.so
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
bfdlib : $(bfdlib)
|
bfdlib : $(bfdlib)
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash -e
|
#!/bin/bash -e
|
||||||
#
|
#
|
||||||
# Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2018, 2025, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -24,10 +24,21 @@
|
|||||||
# questions.
|
# questions.
|
||||||
#
|
#
|
||||||
|
|
||||||
# Create a bundle in the current directory, containing what's needed to run
|
# Create a bundle in OpenJDK build folder, containing what's needed to run
|
||||||
# the 'autoconf' program by the OpenJDK build. To override TARGET_PLATFORM
|
# the 'autoconf' program by the OpenJDK build. To override TARGET_PLATFORM
|
||||||
# just set the variable before running this script.
|
# just set the variable before running this script.
|
||||||
|
|
||||||
|
# This script fetches sources from network so make sure your proxy is setup appropriately.
|
||||||
|
|
||||||
|
# colored print to highlight some of the logs
|
||||||
|
function print_log()
|
||||||
|
{
|
||||||
|
Color_Cyan='\033[1;36m' # Cyan
|
||||||
|
Color_Off='\033[0m' # Reset color
|
||||||
|
printf "${Color_Cyan}> $1${Color_Off}\n"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
# Autoconf depends on m4, so download and build that first.
|
# Autoconf depends on m4, so download and build that first.
|
||||||
AUTOCONF_VERSION=2.69
|
AUTOCONF_VERSION=2.69
|
||||||
M4_VERSION=1.4.18
|
M4_VERSION=1.4.18
|
||||||
@@ -58,11 +69,12 @@ MODULE_NAME=autoconf-$TARGET_PLATFORM-$AUTOCONF_VERSION+$PACKAGE_VERSION
|
|||||||
BUNDLE_NAME=$MODULE_NAME.tar.gz
|
BUNDLE_NAME=$MODULE_NAME.tar.gz
|
||||||
|
|
||||||
SCRIPT_DIR="$(cd "$(dirname $0)" > /dev/null && pwd)"
|
SCRIPT_DIR="$(cd "$(dirname $0)" > /dev/null && pwd)"
|
||||||
OUTPUT_ROOT="${SCRIPT_DIR}/../../build/autoconf"
|
BASEDIR="$(cd "$SCRIPT_DIR/../.." > /dev/null && pwd)"
|
||||||
|
OUTPUT_ROOT="$BASEDIR/build/autoconf"
|
||||||
|
|
||||||
cd $OUTPUT_ROOT
|
|
||||||
IMAGE_DIR=$OUTPUT_ROOT/$MODULE_NAME
|
IMAGE_DIR=$OUTPUT_ROOT/$MODULE_NAME
|
||||||
mkdir -p $IMAGE_DIR/usr
|
mkdir -p $IMAGE_DIR/usr
|
||||||
|
cd $OUTPUT_ROOT
|
||||||
|
|
||||||
# Download and build m4
|
# Download and build m4
|
||||||
|
|
||||||
@@ -76,7 +88,7 @@ elif test "x$TARGET_PLATFORM" = xcygwin_x86; then
|
|||||||
cp /usr/bin/m4 $IMAGE_DIR/usr/bin
|
cp /usr/bin/m4 $IMAGE_DIR/usr/bin
|
||||||
elif test "x$TARGET_PLATFORM" = xlinux_x64; then
|
elif test "x$TARGET_PLATFORM" = xlinux_x64; then
|
||||||
M4_VERSION=1.4.13-5
|
M4_VERSION=1.4.13-5
|
||||||
wget http://yum.oracle.com/repo/OracleLinux/OL6/latest/x86_64/getPackage/m4-$M4_VERSION.el6.x86_64.rpm
|
wget https://yum.oracle.com/repo/OracleLinux/OL6/latest/x86_64/getPackage/m4-$M4_VERSION.el6.x86_64.rpm
|
||||||
cd $IMAGE_DIR
|
cd $IMAGE_DIR
|
||||||
rpm2cpio $OUTPUT_ROOT/m4-$M4_VERSION.el6.x86_64.rpm | cpio -d -i
|
rpm2cpio $OUTPUT_ROOT/m4-$M4_VERSION.el6.x86_64.rpm | cpio -d -i
|
||||||
elif test "x$TARGET_PLATFORM" = xlinux_x86; then
|
elif test "x$TARGET_PLATFORM" = xlinux_x86; then
|
||||||
@@ -85,27 +97,38 @@ elif test "x$TARGET_PLATFORM" = xlinux_x86; then
|
|||||||
cd $IMAGE_DIR
|
cd $IMAGE_DIR
|
||||||
rpm2cpio $OUTPUT_ROOT/m4-$M4_VERSION.el6.i686.rpm | cpio -d -i
|
rpm2cpio $OUTPUT_ROOT/m4-$M4_VERSION.el6.i686.rpm | cpio -d -i
|
||||||
else
|
else
|
||||||
|
print_log "m4: download"
|
||||||
wget https://ftp.gnu.org/gnu/m4/m4-$M4_VERSION.tar.gz
|
wget https://ftp.gnu.org/gnu/m4/m4-$M4_VERSION.tar.gz
|
||||||
tar xzf m4-$M4_VERSION.tar.gz
|
tar -xzf m4-$M4_VERSION.tar.gz
|
||||||
cd m4-$M4_VERSION
|
cd m4-$M4_VERSION
|
||||||
|
print_log "m4: configure"
|
||||||
./configure --prefix=$IMAGE_DIR/usr CFLAGS="-w -Wno-everything"
|
./configure --prefix=$IMAGE_DIR/usr CFLAGS="-w -Wno-everything"
|
||||||
|
print_log "m4: make"
|
||||||
make
|
make
|
||||||
|
print_log "m4: make install"
|
||||||
make install
|
make install
|
||||||
cd ..
|
cd ..
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Download and build autoconf
|
# Download and build autoconf
|
||||||
|
|
||||||
|
print_log "autoconf: download"
|
||||||
wget https://ftp.gnu.org/gnu/autoconf/autoconf-$AUTOCONF_VERSION.tar.gz
|
wget https://ftp.gnu.org/gnu/autoconf/autoconf-$AUTOCONF_VERSION.tar.gz
|
||||||
tar xzf autoconf-$AUTOCONF_VERSION.tar.gz
|
tar -xzf autoconf-$AUTOCONF_VERSION.tar.gz
|
||||||
cd autoconf-$AUTOCONF_VERSION
|
cd autoconf-$AUTOCONF_VERSION
|
||||||
|
print_log "autoconf: configure"
|
||||||
./configure --prefix=$IMAGE_DIR/usr M4=$IMAGE_DIR/usr/bin/m4
|
./configure --prefix=$IMAGE_DIR/usr M4=$IMAGE_DIR/usr/bin/m4
|
||||||
|
print_log "autoconf: make"
|
||||||
make
|
make
|
||||||
|
print_log "autoconf: make install"
|
||||||
make install
|
make install
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
|
# The resulting scripts from installation folder use absolute paths to reference other files within installation folder
|
||||||
|
print_log "replace absolue paths from installation files with a relative ."
|
||||||
perl -pi -e "s!$IMAGE_DIR/!./!" $IMAGE_DIR/usr/bin/auto* $IMAGE_DIR/usr/share/autoconf/autom4te.cfg
|
perl -pi -e "s!$IMAGE_DIR/!./!" $IMAGE_DIR/usr/bin/auto* $IMAGE_DIR/usr/share/autoconf/autom4te.cfg
|
||||||
|
|
||||||
|
print_log "creating $IMAGE_DIR/autoconf wrapper script"
|
||||||
cat > $IMAGE_DIR/autoconf << EOF
|
cat > $IMAGE_DIR/autoconf << EOF
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Get an absolute path to this script
|
# Get an absolute path to this script
|
||||||
@@ -123,6 +146,9 @@ PREPEND_INCLUDE="--prepend-include \$this_script_dir/usr/share/autoconf"
|
|||||||
|
|
||||||
exec \$this_script_dir/usr/bin/autoconf \$PREPEND_INCLUDE "\$@"
|
exec \$this_script_dir/usr/bin/autoconf \$PREPEND_INCLUDE "\$@"
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
chmod +x $IMAGE_DIR/autoconf
|
chmod +x $IMAGE_DIR/autoconf
|
||||||
|
|
||||||
|
print_log "archiving $IMAGE_DIR directory as $OUTPUT_ROOT/$BUNDLE_NAME"
|
||||||
cd $IMAGE_DIR
|
cd $IMAGE_DIR
|
||||||
tar -cvzf $OUTPUT_ROOT/$BUNDLE_NAME *
|
tar -cvzf $OUTPUT_ROOT/$BUNDLE_NAME *
|
||||||
|
|||||||
@@ -56,16 +56,22 @@ BUILD_DIR="${SCRIPT_DIR}/../../build/devkit"
|
|||||||
|
|
||||||
UNAME_SYSTEM=`uname -s`
|
UNAME_SYSTEM=`uname -s`
|
||||||
UNAME_RELEASE=`uname -r`
|
UNAME_RELEASE=`uname -r`
|
||||||
|
UNAME_OS=`uname -o`
|
||||||
|
|
||||||
# Detect cygwin or WSL
|
# Detect cygwin or WSL
|
||||||
IS_CYGWIN=`echo $UNAME_SYSTEM | grep -i CYGWIN`
|
IS_CYGWIN=`echo $UNAME_SYSTEM | grep -i CYGWIN`
|
||||||
IS_WSL=`echo $UNAME_RELEASE | grep Microsoft`
|
IS_WSL=`echo $UNAME_RELEASE | grep Microsoft`
|
||||||
|
IS_MSYS=`echo $UNAME_OS | grep -i Msys`
|
||||||
|
MSYS2_ARG_CONV_EXCL="*" # make "cmd.exe /c" work for msys2
|
||||||
|
CMD_EXE="cmd.exe /c"
|
||||||
if test "x$IS_CYGWIN" != "x"; then
|
if test "x$IS_CYGWIN" != "x"; then
|
||||||
BUILD_ENV="cygwin"
|
BUILD_ENV="cygwin"
|
||||||
|
elif test "x$IS_MSYS" != "x"; then
|
||||||
|
BUILD_ENV="cygwin"
|
||||||
elif test "x$IS_WSL" != "x"; then
|
elif test "x$IS_WSL" != "x"; then
|
||||||
BUILD_ENV="wsl"
|
BUILD_ENV="wsl"
|
||||||
else
|
else
|
||||||
echo "Unknown environment; only Cygwin and WSL are supported."
|
echo "Unknown environment; only Cygwin/MSYS2/WSL are supported."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -76,7 +82,7 @@ elif test "x$BUILD_ENV" = "xwsl"; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Work around the insanely named ProgramFiles(x86) env variable
|
# Work around the insanely named ProgramFiles(x86) env variable
|
||||||
PROGRAMFILES_X86="$($WINDOWS_PATH_TO_UNIX_PATH "$(cmd.exe /c set | sed -n 's/^ProgramFiles(x86)=//p' | tr -d '\r')")"
|
PROGRAMFILES_X86="$($WINDOWS_PATH_TO_UNIX_PATH "$(${CMD_EXE} set | sed -n 's/^ProgramFiles(x86)=//p' | tr -d '\r')")"
|
||||||
PROGRAMFILES="$($WINDOWS_PATH_TO_UNIX_PATH "$PROGRAMFILES")"
|
PROGRAMFILES="$($WINDOWS_PATH_TO_UNIX_PATH "$PROGRAMFILES")"
|
||||||
|
|
||||||
case $VS_VERSION in
|
case $VS_VERSION in
|
||||||
@@ -99,13 +105,15 @@ esac
|
|||||||
|
|
||||||
|
|
||||||
# Find Visual Studio installation dir
|
# Find Visual Studio installation dir
|
||||||
VSNNNCOMNTOOLS=`cmd.exe /c echo %VS${VS_VERSION_NUM_NODOT}COMNTOOLS% | tr -d '\r'`
|
VSNNNCOMNTOOLS=`${CMD_EXE} echo %VS${VS_VERSION_NUM_NODOT}COMNTOOLS% | tr -d '\r'`
|
||||||
|
VSNNNCOMNTOOLS="$($WINDOWS_PATH_TO_UNIX_PATH "$VSNNNCOMNTOOLS")"
|
||||||
if [ -d "$VSNNNCOMNTOOLS" ]; then
|
if [ -d "$VSNNNCOMNTOOLS" ]; then
|
||||||
VS_INSTALL_DIR="$($WINDOWS_PATH_TO_UNIX_PATH "$VSNNNCOMNTOOLS/../..")"
|
VS_INSTALL_DIR="$VSNNNCOMNTOOLS/../.."
|
||||||
else
|
else
|
||||||
VS_INSTALL_DIR="${MSVC_PROGRAMFILES_DIR}/Microsoft Visual Studio/$VS_VERSION"
|
VS_INSTALL_DIR="${MSVC_PROGRAMFILES_DIR}/Microsoft Visual Studio/$VS_VERSION"
|
||||||
VS_INSTALL_DIR="$(ls -d "${VS_INSTALL_DIR}/"{Community,Professional,Enterprise} 2>/dev/null | head -n1)"
|
VS_INSTALL_DIR="$(ls -d "${VS_INSTALL_DIR}/"{Community,Professional,Enterprise} 2>/dev/null | head -n1)"
|
||||||
fi
|
fi
|
||||||
|
echo "VSNNNCOMNTOOLS: $VSNNNCOMNTOOLS"
|
||||||
echo "VS_INSTALL_DIR: $VS_INSTALL_DIR"
|
echo "VS_INSTALL_DIR: $VS_INSTALL_DIR"
|
||||||
|
|
||||||
# Extract semantic version
|
# Extract semantic version
|
||||||
@@ -180,7 +188,11 @@ cp $DEVKIT_ROOT/VC/redist/arm64/$MSVCP_DLL $DEVKIT_ROOT/VC/bin/arm64
|
|||||||
################################################################################
|
################################################################################
|
||||||
# Copy SDK files
|
# Copy SDK files
|
||||||
|
|
||||||
SDK_INSTALL_DIR="$PROGRAMFILES_X86/Windows Kits/$SDK_VERSION"
|
SDK_INSTALL_DIR=`${CMD_EXE} echo %WindowsSdkDir% | tr -d '\r'`
|
||||||
|
SDK_INSTALL_DIR="$($WINDOWS_PATH_TO_UNIX_PATH "$SDK_INSTALL_DIR")"
|
||||||
|
if [ ! -d "$SDK_INSTALL_DIR" ]; then
|
||||||
|
SDK_INSTALL_DIR="$PROGRAMFILES_X86/Windows Kits/$SDK_VERSION"
|
||||||
|
fi
|
||||||
echo "SDK_INSTALL_DIR: $SDK_INSTALL_DIR"
|
echo "SDK_INSTALL_DIR: $SDK_INSTALL_DIR"
|
||||||
|
|
||||||
SDK_FULL_VERSION="$(ls "$SDK_INSTALL_DIR/bin" | sort -r -n | head -n1)"
|
SDK_FULL_VERSION="$(ls "$SDK_INSTALL_DIR/bin" | sort -r -n | head -n1)"
|
||||||
|
|||||||
@@ -125,9 +125,11 @@ endif
|
|||||||
ifneq ($(call check-jvm-feature, cds), true)
|
ifneq ($(call check-jvm-feature, cds), true)
|
||||||
JVM_CFLAGS_FEATURES += -DINCLUDE_CDS=0
|
JVM_CFLAGS_FEATURES += -DINCLUDE_CDS=0
|
||||||
JVM_EXCLUDE_FILES += \
|
JVM_EXCLUDE_FILES += \
|
||||||
|
aotCodeCache.cpp \
|
||||||
classLoaderDataShared.cpp \
|
classLoaderDataShared.cpp \
|
||||||
classLoaderExt.cpp \
|
classLoaderExt.cpp \
|
||||||
systemDictionaryShared.cpp
|
systemDictionaryShared.cpp \
|
||||||
|
trainingData.cpp
|
||||||
JVM_EXCLUDE_PATTERNS += cds/
|
JVM_EXCLUDE_PATTERNS += cds/
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2016, 2025, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -59,6 +59,7 @@ public class HelloClasslist {
|
|||||||
|
|
||||||
private static final Logger LOGGER = Logger.getLogger("Hello");
|
private static final Logger LOGGER = Logger.getLogger("Hello");
|
||||||
|
|
||||||
|
@SuppressWarnings("restricted")
|
||||||
public static void main(String ... args) throws Throwable {
|
public static void main(String ... args) throws Throwable {
|
||||||
|
|
||||||
FileSystems.getDefault();
|
FileSystems.getDefault();
|
||||||
@@ -141,6 +142,7 @@ public class HelloClasslist {
|
|||||||
HelloClasslist.class.getMethod("staticMethod_V").invoke(null);
|
HelloClasslist.class.getMethod("staticMethod_V").invoke(null);
|
||||||
var obj = HelloClasslist.class.getMethod("staticMethod_L_L", Object.class).invoke(null, instance);
|
var obj = HelloClasslist.class.getMethod("staticMethod_L_L", Object.class).invoke(null, instance);
|
||||||
HelloClasslist.class.getField("field").get(instance);
|
HelloClasslist.class.getField("field").get(instance);
|
||||||
|
MethodHandles.Lookup.ClassOption.class.getEnumConstants();
|
||||||
|
|
||||||
// A selection of trivial and relatively common MH operations
|
// A selection of trivial and relatively common MH operations
|
||||||
invoke(MethodHandles.identity(double.class), 1.0);
|
invoke(MethodHandles.identity(double.class), 1.0);
|
||||||
@@ -160,6 +162,9 @@ public class HelloClasslist {
|
|||||||
case B b -> b.b;
|
case B b -> b.b;
|
||||||
default -> 17;
|
default -> 17;
|
||||||
};
|
};
|
||||||
|
// record run-time methods
|
||||||
|
o.equals(new B(5));
|
||||||
|
o.hashCode();
|
||||||
LOGGER.log(Level.FINE, "Value: " + value);
|
LOGGER.log(Level.FINE, "Value: " + value);
|
||||||
|
|
||||||
// The Striped64$Cell is loaded rarely only when there's a contention among
|
// The Striped64$Cell is loaded rarely only when there's a contention among
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2002, 2023, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2002, 2025, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -1190,7 +1190,7 @@ OUTER: for (int i = 0; i < n; i += m) {
|
|||||||
if (Csyntax)
|
if (Csyntax)
|
||||||
result.append(" static ");
|
result.append(" static ");
|
||||||
else
|
else
|
||||||
result.append(" static final ");
|
result.append(" @Stable static final ");
|
||||||
result.append(atype);
|
result.append(atype);
|
||||||
result.append(" ").append(name).append("[");
|
result.append(" ").append(name).append("[");
|
||||||
if (Csyntax)
|
if (Csyntax)
|
||||||
@@ -1347,7 +1347,7 @@ OUTER: for (int i = 0; i < n; i += m) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void genCaseMapTableDeclaration(StringBuffer result) {
|
static void genCaseMapTableDeclaration(StringBuffer result) {
|
||||||
result.append(" static final char[][][] charMap;\n");
|
result.append(" @Stable static final char[][][] charMap;\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void genCaseMapTable(StringBuffer result, SpecialCaseMap[] specialCaseMaps){
|
static void genCaseMapTable(StringBuffer result, SpecialCaseMap[] specialCaseMaps){
|
||||||
|
|||||||
@@ -1,3 +1,26 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
|
*
|
||||||
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
* under the terms of the GNU General Public License version 2 only, as
|
||||||
|
* published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* 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.pandocfilter;
|
package build.tools.pandocfilter;
|
||||||
|
|
||||||
import build.tools.pandocfilter.json.JSON;
|
import build.tools.pandocfilter.json.JSON;
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -99,7 +99,7 @@ JVMCFG := $(LIB_DST_DIR)/jvm.cfg
|
|||||||
|
|
||||||
define print-cfg-line
|
define print-cfg-line
|
||||||
$(call LogInfo, Adding -$1 $2 to jvm.cfg)
|
$(call LogInfo, Adding -$1 $2 to jvm.cfg)
|
||||||
$(PRINTF) -- "-$1 $2\n" >> $@ $(NEWLINE)
|
$(ECHO) "-$1 $2" >> $@ $(NEWLINE)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
$(JVMCFG): $(call DependOnVariable, ORDERED_CFG_VARIANTS)
|
$(JVMCFG): $(call DependOnVariable, ORDERED_CFG_VARIANTS)
|
||||||
|
|||||||
@@ -41,11 +41,6 @@ CLEAN += intrinsic.properties
|
|||||||
EXCLUDE_FILES += \
|
EXCLUDE_FILES += \
|
||||||
$(TOPDIR)/src/java.base/share/classes/jdk/internal/module/ModuleLoaderMap.java
|
$(TOPDIR)/src/java.base/share/classes/jdk/internal/module/ModuleLoaderMap.java
|
||||||
|
|
||||||
EXCLUDES += java/lang/doc-files \
|
|
||||||
java/lang/classfile/snippet-files \
|
|
||||||
java/lang/classfile/components/snippet-files \
|
|
||||||
java/lang/foreign/snippet-files
|
|
||||||
|
|
||||||
# Exclude BreakIterator classes that are just used in compile process to generate
|
# Exclude BreakIterator classes that are just used in compile process to generate
|
||||||
# data files and shouldn't go in the product
|
# data files and shouldn't go in the product
|
||||||
EXCLUDE_FILES += sun/text/resources/BreakIteratorRules.java
|
EXCLUDE_FILES += sun/text/resources/BreakIteratorRules.java
|
||||||
|
|||||||
@@ -158,6 +158,7 @@ endif
|
|||||||
|
|
||||||
$(eval $(call SetupJdkLibrary, BUILD_LIBSYSLOOKUP, \
|
$(eval $(call SetupJdkLibrary, BUILD_LIBSYSLOOKUP, \
|
||||||
NAME := syslookup, \
|
NAME := syslookup, \
|
||||||
|
EXTRA_HEADER_DIRS := java.base:libjava, \
|
||||||
LD_SET_ORIGIN := false, \
|
LD_SET_ORIGIN := false, \
|
||||||
LDFLAGS_linux := -Wl$(COMMA)--no-as-needed, \
|
LDFLAGS_linux := -Wl$(COMMA)--no-as-needed, \
|
||||||
LDFLAGS_aix := -brtl -bexpfull, \
|
LDFLAGS_aix := -brtl -bexpfull, \
|
||||||
|
|||||||
@@ -272,7 +272,7 @@ define SetupGenBuffer
|
|||||||
$$($1_long_CMD) -i$$($1_SRC_BIN) -o$$($1_DST).tmp
|
$$($1_long_CMD) -i$$($1_SRC_BIN) -o$$($1_DST).tmp
|
||||||
$$($1_float_CMD) -i$$($1_SRC_BIN) -o$$($1_DST).tmp
|
$$($1_float_CMD) -i$$($1_SRC_BIN) -o$$($1_DST).tmp
|
||||||
$$($1_double_CMD) -i$$($1_SRC_BIN) -o$$($1_DST).tmp
|
$$($1_double_CMD) -i$$($1_SRC_BIN) -o$$($1_DST).tmp
|
||||||
$(PRINTF) "}\n" >> $$($1_DST).tmp
|
$(ECHO) "}" >> $$($1_DST).tmp
|
||||||
mv $$($1_DST).tmp $$($1_DST)
|
mv $$($1_DST).tmp $$($1_DST)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|||||||
@@ -163,7 +163,7 @@ $(SCOPED_MEMORY_ACCESS_DEST): $(BUILD_TOOLS_JDK) $(SCOPED_MEMORY_ACCESS_TEMPLATE
|
|||||||
$(foreach t, $(SCOPE_MEMORY_ACCESS_TYPES), \
|
$(foreach t, $(SCOPE_MEMORY_ACCESS_TYPES), \
|
||||||
$(TOOL_SPP) -nel -K$(BIN_$t_type) -Dtype=$(BIN_$t_type) -DType=$(BIN_$t_Type) $(BIN_$t_ARGS) \
|
$(TOOL_SPP) -nel -K$(BIN_$t_type) -Dtype=$(BIN_$t_type) -DType=$(BIN_$t_Type) $(BIN_$t_ARGS) \
|
||||||
-i$(SCOPED_MEMORY_ACCESS_BIN_TEMPLATE) -o$(SCOPED_MEMORY_ACCESS_DEST) ;)
|
-i$(SCOPED_MEMORY_ACCESS_BIN_TEMPLATE) -o$(SCOPED_MEMORY_ACCESS_DEST) ;)
|
||||||
$(PRINTF) "}\n" >> $(SCOPED_MEMORY_ACCESS_DEST)
|
$(ECHO) "}" >> $(SCOPED_MEMORY_ACCESS_DEST)
|
||||||
|
|
||||||
TARGETS += $(SCOPED_MEMORY_ACCESS_DEST)
|
TARGETS += $(SCOPED_MEMORY_ACCESS_DEST)
|
||||||
|
|
||||||
|
|||||||
@@ -32,6 +32,4 @@
|
|||||||
DOCLINT += -Xdoclint:all/protected \
|
DOCLINT += -Xdoclint:all/protected \
|
||||||
'-Xdoclint/package:java.*,javax.*'
|
'-Xdoclint/package:java.*,javax.*'
|
||||||
|
|
||||||
EXCLUDES += javax/tools/snippet-files
|
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|||||||
@@ -31,15 +31,6 @@ DOCLINT += -Xdoclint:all/protected \
|
|||||||
COPY += .gif .png .wav .txt .xml .css .pf
|
COPY += .gif .png .wav .txt .xml .css .pf
|
||||||
CLEAN += iio-plugin.properties cursors.properties
|
CLEAN += iio-plugin.properties cursors.properties
|
||||||
|
|
||||||
EXCLUDES += \
|
|
||||||
java/awt/doc-files \
|
|
||||||
javax/swing/doc-files \
|
|
||||||
javax/swing/text/doc-files \
|
|
||||||
javax/swing/plaf/synth/doc-files \
|
|
||||||
javax/swing/undo/doc-files \
|
|
||||||
sun/awt/X11/doc-files \
|
|
||||||
#
|
|
||||||
|
|
||||||
EXCLUDE_FILES += \
|
EXCLUDE_FILES += \
|
||||||
javax/swing/plaf/nimbus/InternalFrameTitlePanePainter.java \
|
javax/swing/plaf/nimbus/InternalFrameTitlePanePainter.java \
|
||||||
javax/swing/plaf/nimbus/OptionPaneMessageAreaPainter.java \
|
javax/swing/plaf/nimbus/OptionPaneMessageAreaPainter.java \
|
||||||
|
|||||||
@@ -278,7 +278,6 @@ ifeq ($(call isTargetOs, windows macosx)+$(ENABLE_HEADLESS_ONLY), false+false)
|
|||||||
DISABLED_WARNINGS_gcc_X11TextRenderer_md.c := unused-but-set-variable, \
|
DISABLED_WARNINGS_gcc_X11TextRenderer_md.c := unused-but-set-variable, \
|
||||||
DISABLED_WARNINGS_gcc_XlibWrapper.c := type-limits pointer-to-int-cast, \
|
DISABLED_WARNINGS_gcc_XlibWrapper.c := type-limits pointer-to-int-cast, \
|
||||||
DISABLED_WARNINGS_gcc_XRBackendNative.c := maybe-uninitialized, \
|
DISABLED_WARNINGS_gcc_XRBackendNative.c := maybe-uninitialized, \
|
||||||
DISABLED_WARNINGS_gcc_XToolkit.c := unused-result, \
|
|
||||||
DISABLED_WARNINGS_gcc_XWindow.c := unused-function, \
|
DISABLED_WARNINGS_gcc_XWindow.c := unused-function, \
|
||||||
DISABLED_WARNINGS_clang_awt_Taskbar.c := parentheses, \
|
DISABLED_WARNINGS_clang_awt_Taskbar.c := parentheses, \
|
||||||
DISABLED_WARNINGS_clang_gtk3_interface.c := unused-function parentheses, \
|
DISABLED_WARNINGS_clang_gtk3_interface.c := unused-function parentheses, \
|
||||||
|
|||||||
@@ -87,7 +87,7 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBLCMS, \
|
|||||||
libawt/java2d \
|
libawt/java2d \
|
||||||
java.base:libjvm, \
|
java.base:libjvm, \
|
||||||
HEADERS_FROM_SRC := $(LIBLCMS_HEADERS_FROM_SRC), \
|
HEADERS_FROM_SRC := $(LIBLCMS_HEADERS_FROM_SRC), \
|
||||||
DISABLED_WARNINGS_gcc := format-nonliteral stringop-truncation type-limits \
|
DISABLED_WARNINGS_gcc := format-nonliteral stringop-truncation \
|
||||||
unused-variable, \
|
unused-variable, \
|
||||||
DISABLED_WARNINGS_clang := format-nonliteral, \
|
DISABLED_WARNINGS_clang := format-nonliteral, \
|
||||||
JDK_LIBS := libawt java.base:libjava, \
|
JDK_LIBS := libawt java.base:libjava, \
|
||||||
|
|||||||
@@ -53,7 +53,6 @@ COMPILECREATESYMBOLS_ADD_EXPORTS := \
|
|||||||
--add-exports jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED \
|
--add-exports jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED \
|
||||||
--add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED \
|
--add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED \
|
||||||
--add-exports jdk.compiler/com.sun.tools.javac.jvm=ALL-UNNAMED \
|
--add-exports jdk.compiler/com.sun.tools.javac.jvm=ALL-UNNAMED \
|
||||||
--add-exports jdk.jdeps/com.sun.tools.classfile=ALL-UNNAMED \
|
|
||||||
#
|
#
|
||||||
|
|
||||||
# TODO: Unify with jdk.javadoc-gendata. Should only compile this once and share.
|
# TODO: Unify with jdk.javadoc-gendata. Should only compile this once and share.
|
||||||
@@ -61,7 +60,7 @@ $(eval $(call SetupJavaCompilation, COMPILE_CREATE_SYMBOLS, \
|
|||||||
TARGET_RELEASE := $(TARGET_RELEASE_NEWJDK), \
|
TARGET_RELEASE := $(TARGET_RELEASE_NEWJDK), \
|
||||||
COMPILER := buildjdk, \
|
COMPILER := buildjdk, \
|
||||||
SRC := $(TOPDIR)/make/langtools/src/classes, \
|
SRC := $(TOPDIR)/make/langtools/src/classes, \
|
||||||
INCLUDES := build/tools/symbolgenerator com/sun/tools/classfile, \
|
INCLUDES := build/tools/symbolgenerator, \
|
||||||
BIN := $(BUILDTOOLS_OUTPUTDIR)/create_symbols_javac, \
|
BIN := $(BUILDTOOLS_OUTPUTDIR)/create_symbols_javac, \
|
||||||
DISABLED_WARNINGS := options, \
|
DISABLED_WARNINGS := options, \
|
||||||
JAVAC_FLAGS := \
|
JAVAC_FLAGS := \
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ $(eval $(call SetupJavaCompilation, COMPILE_CREATE_SYMBOLS, \
|
|||||||
TARGET_RELEASE := $(TARGET_RELEASE_BOOTJDK), \
|
TARGET_RELEASE := $(TARGET_RELEASE_BOOTJDK), \
|
||||||
SRC := $(TOPDIR)/make/langtools/src/classes \
|
SRC := $(TOPDIR)/make/langtools/src/classes \
|
||||||
$(TOPDIR)/src/jdk.jdeps/share/classes, \
|
$(TOPDIR)/src/jdk.jdeps/share/classes, \
|
||||||
INCLUDES := build/tools/symbolgenerator com/sun/tools/classfile, \
|
INCLUDES := build/tools/symbolgenerator, \
|
||||||
BIN := $(BUILDTOOLS_OUTPUTDIR)/create_symbols_javadoc, \
|
BIN := $(BUILDTOOLS_OUTPUTDIR)/create_symbols_javadoc, \
|
||||||
DISABLED_WARNINGS := options, \
|
DISABLED_WARNINGS := options, \
|
||||||
JAVAC_FLAGS := \
|
JAVAC_FLAGS := \
|
||||||
|
|||||||
@@ -31,7 +31,6 @@ EXCLUDES += \
|
|||||||
com/sun/tools/example/debug/bdi \
|
com/sun/tools/example/debug/bdi \
|
||||||
com/sun/tools/example/debug/event \
|
com/sun/tools/example/debug/event \
|
||||||
com/sun/tools/example/debug/gui \
|
com/sun/tools/example/debug/gui \
|
||||||
com/sun/jdi/doc-files \
|
|
||||||
#
|
#
|
||||||
|
|
||||||
EXCLUDE_FILES += jdi-overview.html
|
EXCLUDE_FILES += jdi-overview.html
|
||||||
|
|||||||
@@ -68,6 +68,7 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBJDWP, \
|
|||||||
DISABLED_WARNINGS_clang_threadControl.c := unused-but-set-variable \
|
DISABLED_WARNINGS_clang_threadControl.c := unused-but-set-variable \
|
||||||
unused-variable, \
|
unused-variable, \
|
||||||
DISABLED_WARNINGS_clang_utf_util.c := unused-but-set-variable, \
|
DISABLED_WARNINGS_clang_utf_util.c := unused-but-set-variable, \
|
||||||
|
DISABLED_WARNINGS_microsoft_debugInit.c := 5287, \
|
||||||
LDFLAGS := $(ICONV_LDFLAGS), \
|
LDFLAGS := $(ICONV_LDFLAGS), \
|
||||||
EXTRA_HEADER_DIRS := \
|
EXTRA_HEADER_DIRS := \
|
||||||
include \
|
include \
|
||||||
|
|||||||
32
make/modules/jdk.jlink/Java.gmk
Normal file
32
make/modules/jdk.jlink/Java.gmk
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2025, 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
# Instruct SetupJavaCompilation for the jdk.jlink module to include
|
||||||
|
# upgrade_files_<module-name>.conf files
|
||||||
|
COPY += .conf
|
||||||
|
|
||||||
|
################################################################################
|
||||||
@@ -203,12 +203,12 @@ compare_permissions() {
|
|||||||
do
|
do
|
||||||
if [ ! -f ${OTHER_DIR}/$f ]; then continue; fi
|
if [ ! -f ${OTHER_DIR}/$f ]; then continue; fi
|
||||||
if [ ! -f ${THIS_DIR}/$f ]; then continue; fi
|
if [ ! -f ${THIS_DIR}/$f ]; then continue; fi
|
||||||
OP=`ls -l ${OTHER_DIR}/$f | awk '{printf("%.10s\n", $1);}'`
|
OP=`ls -l ${OTHER_DIR}/$f | $AWK '{printf("%.10s\n", $1);}'`
|
||||||
TP=`ls -l ${THIS_DIR}/$f | awk '{printf("%.10s\n", $1);}'`
|
TP=`ls -l ${THIS_DIR}/$f | $AWK '{printf("%.10s\n", $1);}'`
|
||||||
if [ "$OP" != "$TP" ]
|
if [ "$OP" != "$TP" ]
|
||||||
then
|
then
|
||||||
if [ -z "$found" ]; then echo ; found="yes"; fi
|
if [ -z "$found" ]; then echo ; found="yes"; fi
|
||||||
$PRINTF "\tother: ${OP} this: ${TP}\t$f\n"
|
$PRINTF "\tother: %s this: %s\t%s\n" "${OP}" "${TP}" "$f"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
if [ -z "$found" ]; then
|
if [ -z "$found" ]; then
|
||||||
@@ -260,7 +260,7 @@ compare_file_types() {
|
|||||||
continue
|
continue
|
||||||
else
|
else
|
||||||
if [ -z "$found" ]; then echo ; found="yes"; fi
|
if [ -z "$found" ]; then echo ; found="yes"; fi
|
||||||
$PRINTF "\tother: ${OF}\n\tthis : ${TF}\n"
|
$PRINTF "\tother: %s\n\tthis : %s\n" "${OF}" "${TF}"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
#
|
#
|
||||||
# Copyright (c) 2020, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2020, 2025, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -157,11 +157,21 @@ function import_path() {
|
|||||||
if [[ $? -eq 0 && -e "$unixpath" ]]; then
|
if [[ $? -eq 0 && -e "$unixpath" ]]; then
|
||||||
if [[ ! "$winpath" =~ ^"$ENVROOT"\\.*$ ]] ; then
|
if [[ ! "$winpath" =~ ^"$ENVROOT"\\.*$ ]] ; then
|
||||||
# If it is not in envroot, it's a generic windows path
|
# If it is not in envroot, it's a generic windows path
|
||||||
if [[ ! $winpath =~ ^[-_.:\\a-zA-Z0-9]*$ ]] ; then
|
if [[ ! $winpath =~ ^[-_.:~+\\a-zA-Z0-9]*$ ]] ; then
|
||||||
# Path has forbidden characters, rewrite as short name
|
# Path has forbidden characters, rewrite as short name
|
||||||
# This monster of a command uses the %~s support from cmd.exe to
|
# This monster of a command uses the %~s support from cmd.exe to
|
||||||
# reliably convert to short paths on all winenvs.
|
# reliably convert to short paths on all winenvs.
|
||||||
shortpath="$($CMD /q /c for %I in \( "$winpath" \) do echo %~sI 2>/dev/null | tr -d \\n\\r)"
|
shortpath="$($CMD /q /c for %I in \( "$winpath" \) do echo %~sI 2>/dev/null | tr -d \\n\\r)"
|
||||||
|
if [[ ! $shortpath =~ ^[-_.:~+\\a-zA-Z0-9]*$ ]] ; then
|
||||||
|
if [[ $QUIET != true ]]; then
|
||||||
|
echo fixpath: failure: Path "'"$path"'" could not be converted to short path >&2
|
||||||
|
fi
|
||||||
|
if [[ $IGNOREFAILURES != true ]]; then
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
shortpath=""
|
||||||
|
fi
|
||||||
|
fi
|
||||||
unixpath="$($PATHTOOL -u "$shortpath")"
|
unixpath="$($PATHTOOL -u "$shortpath")"
|
||||||
# unixpath is based on short name
|
# unixpath is based on short name
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -68,8 +68,7 @@ if [ "`git status --porcelain=v1 .`x" != "x" ] ; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi;
|
fi;
|
||||||
|
|
||||||
$1/bin/java --add-exports jdk.jdeps/com.sun.tools.classfile=ALL-UNNAMED \
|
$1/bin/java --add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED \
|
||||||
--add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED \
|
|
||||||
--add-exports jdk.compiler/com.sun.tools.javac.jvm=ALL-UNNAMED \
|
--add-exports jdk.compiler/com.sun.tools.javac.jvm=ALL-UNNAMED \
|
||||||
--add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED \
|
--add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED \
|
||||||
--add-modules jdk.jdeps \
|
--add-modules jdk.jdeps \
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/bin/bash -f
|
#!/bin/bash -f
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2010, 2024, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2010, 2025, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -41,10 +41,6 @@ set -e
|
|||||||
# To allow total changes counting
|
# To allow total changes counting
|
||||||
shopt -s lastpipe
|
shopt -s lastpipe
|
||||||
|
|
||||||
# Get an absolute path to this script, since that determines the top-level directory.
|
|
||||||
this_script_dir=`dirname $0`
|
|
||||||
this_script_dir=`cd $this_script_dir > /dev/null && pwd`
|
|
||||||
|
|
||||||
# Temp area
|
# Temp area
|
||||||
tmp=/tmp/`basename $0`.${USER}.$$
|
tmp=/tmp/`basename $0`.${USER}.$$
|
||||||
rm -f -r ${tmp}
|
rm -f -r ${tmp}
|
||||||
@@ -98,10 +94,16 @@ while getopts "c:fhy:" option; do
|
|||||||
done
|
done
|
||||||
|
|
||||||
# VCS check
|
# VCS check
|
||||||
|
git_installed=false
|
||||||
|
which git > /dev/null && git_installed=true
|
||||||
|
if [ "$git_installed" != "true" ]; then
|
||||||
|
echo "Error: This script requires git. Please install it."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
git_found=false
|
git_found=false
|
||||||
[ -d "${this_script_dir}/../../.git" ] && git_found=true
|
git status &> /dev/null && git_found=true
|
||||||
if [ "$git_found" != "true" ]; then
|
if [ "$git_found" != "true" ]; then
|
||||||
echo "Error: Please execute script from within make/scripts."
|
echo "Error: Please execute script from within a JDK git repository."
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
echo "Using Git version control system"
|
echo "Using Git version control system"
|
||||||
|
|||||||
@@ -119,7 +119,6 @@ $(JMH_UNPACKED_JARS_DONE): $(JMH_RUNTIME_JARS)
|
|||||||
$(foreach jar, $(JMH_RUNTIME_JARS), \
|
$(foreach jar, $(JMH_RUNTIME_JARS), \
|
||||||
$$($(UNZIP) -oq $(jar) -d $(JMH_UNPACKED_DIR)))
|
$$($(UNZIP) -oq $(jar) -d $(JMH_UNPACKED_DIR)))
|
||||||
$(RM) -r $(JMH_UNPACKED_DIR)/META-INF
|
$(RM) -r $(JMH_UNPACKED_DIR)/META-INF
|
||||||
$(RM) $(JMH_UNPACKED_DIR)/*.xml
|
|
||||||
$(TOUCH) $@
|
$(TOUCH) $@
|
||||||
|
|
||||||
# Copy dependency files for inclusion in the benchmark JARs
|
# Copy dependency files for inclusion in the benchmark JARs
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
ما هي الشفرة الموحدة "يونِكود" ؟
|
ما هي الشفرة الموحدة "يونِكود" ؟
|
||||||
|
|
||||||
أساسًا، تتعامل الحواسيب فقط مع الأرقام، وتقوم بتخزين الأحرف والمحارف الأخرى بعد أن تُعطي رقما معينا لكل واحد منها. وقبل اختراع "يونِكود"، كان هناك مئات الأنظمة للتشفير وتخصيص هذه الأرقام للمحارف، ولم يوجد نظام تشفير واحد يحتوي على جميع المحارف الضرورية. وعلى سبيل المثال، فإن الاتحاد الأوروبي لوحده، احتوى العديد من الشفرات المختلفة ليغطي جميع اللغات المستخدمة في الاتحاد. وحتى لو اعتبرنا لغة واحدة، كاللغة الإنجليزية، فإن جدول شفرة واحد لم يكف لاستيعاب جميع الأحرف وعلامات الترقيم والرموز الفنية والعلمية الشائعة الاستعمال.
|
أساسًا، تتعامل الحواسيب فقط مع الأرقام، وتقوم بتخزين الأحرف والمحارف الأخرى بعد أن تُعطي رقما معينا لكل واحد منها. وقبل اختراع "يونِكود"، كان هناك مئات الأنظمة للتشفير وتخصيص هذه الأرقام للمحارف، ولم يوجد نظام تشفير واحد يحتوي على جميع المحارف الضرورية. وعلى سبيل المثال، فإن الاتحاد الأوروبي لوحده، احتوى العديد من الشفرات المختلفة ليغطي جميع اللغات المستخدمة في الاتحاد. وحتى لو اعتبرنا لغة واحدة، كاللغة الإنجليزية، فإن جدول شفرة واحد لم يكف لاستيعاب جميع الأحرف وعلامات الترقيم والرموز الفنية والعلمية الشائعة الاستعمال.
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
What is Unicode?
|
What is Unicode?
|
||||||
Unicode provides a unique number for every character,
|
Unicode provides a unique number for every character,
|
||||||
no matter what the platform,
|
no matter what the platform,
|
||||||
no matter what the program,
|
no matter what the program,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
Τι είναι το Unicode?
|
Τι είναι το Unicode?
|
||||||
|
|
||||||
Η κωδικοσελίδα Unicode προτείνει έναν και μοναδικό αριθμό για κάθε χαρακτήρα,
|
Η κωδικοσελίδα Unicode προτείνει έναν και μοναδικό αριθμό για κάθε χαρακτήρα,
|
||||||
ανεξάρτητα από το λειτουργικό σύστημα,
|
ανεξάρτητα από το λειτουργικό σύστημα,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
|
|
||||||
יוניקוד מקצה מספר ייחודי לכל תו,
|
יוניקוד מקצה מספר ייחודי לכל תו,
|
||||||
לא משנה על איזו פלטפורמה,
|
לא משנה על איזו פלטפורמה,
|
||||||
לא משנה באיזו תוכנית,
|
לא משנה באיזו תוכנית,
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user