Compare commits
918 Commits
metal_text
...
client-are
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
183debd3ef | ||
|
|
d0acd2b182 | ||
|
|
fbb8ed8326 | ||
|
|
54bb2dd097 | ||
|
|
fe6bc5f94d | ||
|
|
2a8bced104 | ||
|
|
b0366b1c0d | ||
|
|
33001a74d0 | ||
|
|
85dfaefecb | ||
|
|
7d1cd2b825 | ||
|
|
7aa5324011 | ||
|
|
434166fe63 | ||
|
|
148b7ed39c | ||
|
|
4ae5115c38 | ||
|
|
3c08825f26 | ||
|
|
207c6b92ff | ||
|
|
165597441b | ||
|
|
69fea5acae | ||
|
|
2edc09cf1a | ||
|
|
d3de2e6f03 | ||
|
|
b105cb9dd5 | ||
|
|
67e827a88f | ||
|
|
98c6738d08 | ||
|
|
335812c56c | ||
|
|
df8c9852f0 | ||
|
|
8eea0ad423 | ||
|
|
bab1257ca0 | ||
|
|
ef4fa2cbe5 | ||
|
|
ee46cf4a7f | ||
|
|
a1cccc09e9 | ||
|
|
1bae86d422 | ||
|
|
9b30a18ab0 | ||
|
|
bfdc57751e | ||
|
|
874324a521 | ||
|
|
d721ca49f1 | ||
|
|
1775d38e43 | ||
|
|
9c878aabdc | ||
|
|
9908ad8a42 | ||
|
|
448be98742 | ||
|
|
2763564edb | ||
|
|
0589670380 | ||
|
|
45898700f2 | ||
|
|
a3d96bb10f | ||
|
|
20ade329ea | ||
|
|
303bbcbd49 | ||
|
|
3c118f9869 | ||
|
|
65895d26d8 | ||
|
|
3f11249c43 | ||
|
|
826568cc79 | ||
|
|
da69b70295 | ||
|
|
97cacd17cd | ||
|
|
3db162c6e0 | ||
|
|
b2ea6b8614 | ||
|
|
1e93ed46bf | ||
|
|
d2da323bba | ||
|
|
ae9e8f53ab | ||
|
|
5c880cee6a | ||
|
|
e6dfbc06c8 | ||
|
|
9ff295b635 | ||
|
|
84c797155d | ||
|
|
d402451e8d | ||
|
|
8829dbc435 | ||
|
|
468bd0610f | ||
|
|
28055ca921 | ||
|
|
bb95afade0 | ||
|
|
f87b95cebc | ||
|
|
72d2103586 | ||
|
|
8b1b703d7a | ||
|
|
c65daf33b9 | ||
|
|
b511cec345 | ||
|
|
e88cbc2f1d | ||
|
|
68aaf0eacd | ||
|
|
ca1c5693ad | ||
|
|
ab5b2f66eb | ||
|
|
588a2e65a4 | ||
|
|
8eb594bc07 | ||
|
|
6268945a2d | ||
|
|
2509740631 | ||
|
|
f93e7b0fb9 | ||
|
|
4d26eb7e23 | ||
|
|
6b876c8318 | ||
|
|
25021522cf | ||
|
|
b6228e99ba | ||
|
|
3714265873 | ||
|
|
216125d9c9 | ||
|
|
1030c22316 | ||
|
|
8cf44f203a | ||
|
|
83397588a8 | ||
|
|
a0d8b1e251 | ||
|
|
69c3e4846b | ||
|
|
81e3a0d870 | ||
|
|
4712c0918e | ||
|
|
b713ec1985 | ||
|
|
567b48cab3 | ||
|
|
c0420921ce | ||
|
|
716254c447 | ||
|
|
63b80b2b4d | ||
|
|
392f9a2901 | ||
|
|
6cb29aac35 | ||
|
|
db5d580447 | ||
|
|
20dcc833f6 | ||
|
|
6dcd516fa3 | ||
|
|
577364a426 | ||
|
|
1d81c1f463 | ||
|
|
6b594eaab5 | ||
|
|
a3b55b44f0 | ||
|
|
dcede2ffa5 | ||
|
|
cde258e50f | ||
|
|
327368ecc9 | ||
|
|
60db74211d | ||
|
|
f4128def6b | ||
|
|
a99aa18578 | ||
|
|
e7c90d3aa8 | ||
|
|
8f27913925 | ||
|
|
c311d0165b | ||
|
|
19f1edea6e | ||
|
|
756c492c6c | ||
|
|
05079b182b | ||
|
|
5bd162986f | ||
|
|
86823b171d | ||
|
|
95df9908f4 | ||
|
|
4476063ebf | ||
|
|
7eb4cef588 | ||
|
|
2b99dfed40 | ||
|
|
a5948894bf | ||
|
|
01e2a516cf | ||
|
|
013d3dfcf2 | ||
|
|
2dd4163bc4 | ||
|
|
e2a2f99cef | ||
|
|
84286e9c67 | ||
|
|
f092ff3962 | ||
|
|
e5324ac253 | ||
|
|
7c202c52ba | ||
|
|
e0e1205ab0 | ||
|
|
b203fe6e17 | ||
|
|
f3f37db654 | ||
|
|
c88a550a3b | ||
|
|
809d66a387 | ||
|
|
e07cf33b28 | ||
|
|
bceea77552 | ||
|
|
3c9c599a2d | ||
|
|
06d35de069 | ||
|
|
3a09f6c1db | ||
|
|
4bd3f7835e | ||
|
|
c0b795d04e | ||
|
|
0617bf25b8 | ||
|
|
501aeec5e5 | ||
|
|
ee05f360c5 | ||
|
|
2db9a870e7 | ||
|
|
260319ec74 | ||
|
|
9179718cb6 | ||
|
|
90276e6c00 | ||
|
|
cb188edaab | ||
|
|
589b93be04 | ||
|
|
63572dcc76 | ||
|
|
480a2f5a34 | ||
|
|
763414f5f0 | ||
|
|
e3ba0bd651 | ||
|
|
7db46ce2b2 | ||
|
|
81916a92af | ||
|
|
b85a2171c3 | ||
|
|
05dc889841 | ||
|
|
4a754a0fa2 | ||
|
|
be9b80a30a | ||
|
|
f691fe2f03 | ||
|
|
a879ad5739 | ||
|
|
94c75b0537 | ||
|
|
bff7dfddfb | ||
|
|
6ecbc2736b | ||
|
|
8cde9502f1 | ||
|
|
af0360f3ea | ||
|
|
02e0f6f078 | ||
|
|
094f03f5b3 | ||
|
|
71ee90cd7b | ||
|
|
426055c320 | ||
|
|
30ce36030d | ||
|
|
6012cd1180 | ||
|
|
1d31d1f8ff | ||
|
|
04112e6f90 | ||
|
|
e0c79eb54f | ||
|
|
6ad54fb1ea | ||
|
|
dc7abebe17 | ||
|
|
6d35b8fe59 | ||
|
|
9552363525 | ||
|
|
6a9a917161 | ||
|
|
916fec8145 | ||
|
|
a53989e85a | ||
|
|
4efa7eab3e | ||
|
|
07bf36928d | ||
|
|
c2e756ec4f | ||
|
|
3d7ac30072 | ||
|
|
3d0ec88046 | ||
|
|
2b8f6f70a0 | ||
|
|
c8d631a142 | ||
|
|
37739127c3 | ||
|
|
a26b70568a | ||
|
|
1e6f37320b | ||
|
|
f368f0f101 | ||
|
|
48b7dd874f | ||
|
|
5bb4c2a1d6 | ||
|
|
094306dc24 | ||
|
|
9b1114df30 | ||
|
|
366ceeb857 | ||
|
|
315b0ed151 | ||
|
|
2a68808b1d | ||
|
|
8bc90e970e | ||
|
|
d2820524a1 | ||
|
|
d68dcbfa37 | ||
|
|
34fa047463 | ||
|
|
a4e7fdb61c | ||
|
|
ec0d6d6b14 | ||
|
|
903775e751 | ||
|
|
13fbc2beca | ||
|
|
6f4be20e39 | ||
|
|
e5dd1ec919 | ||
|
|
ad87675353 | ||
|
|
764909ce2a | ||
|
|
74f6d29013 | ||
|
|
9820ecb77c | ||
|
|
a1fcf9fcbc | ||
|
|
8637715ecc | ||
|
|
52ee651a09 | ||
|
|
a47c5fadca | ||
|
|
33b68747b2 | ||
|
|
d53601a541 | ||
|
|
a03103bbe6 | ||
|
|
8fb03809dc | ||
|
|
3d988754d4 | ||
|
|
53c4bf9f26 | ||
|
|
140750c24d | ||
|
|
7c60ba27c5 | ||
|
|
5bd82eb264 | ||
|
|
ba6e4eb906 | ||
|
|
46fc019eeb | ||
|
|
04eebb8c56 | ||
|
|
c7257c1dae | ||
|
|
eab256a14a | ||
|
|
9065b4c506 | ||
|
|
c06c4c69d3 | ||
|
|
d45e86456a | ||
|
|
924d33c6d1 | ||
|
|
f411142ab5 | ||
|
|
a35d10033f | ||
|
|
63b1f82e1c | ||
|
|
39501a3d4a | ||
|
|
6003593f78 | ||
|
|
9e06cc8f01 | ||
|
|
be4f8c0d9d | ||
|
|
b89e6aed0b | ||
|
|
3d898a8024 | ||
|
|
96da48c589 | ||
|
|
241af853ea | ||
|
|
b808be6a6a | ||
|
|
0be0a018b5 | ||
|
|
48e7b547ae | ||
|
|
d4b529ad49 | ||
|
|
f779f6248c | ||
|
|
c0c871c5f9 | ||
|
|
53b86e4272 | ||
|
|
483af71639 | ||
|
|
5a9b273098 | ||
|
|
212888416b | ||
|
|
14e2b7a4ad | ||
|
|
bbdbe17e2a | ||
|
|
422fa59643 | ||
|
|
0b5119ca89 | ||
|
|
dfaa777ff5 | ||
|
|
d45e80b422 | ||
|
|
a29f19e6a2 | ||
|
|
c2eee9426f | ||
|
|
0e1d23c807 | ||
|
|
2847be73c6 | ||
|
|
6851dc3441 | ||
|
|
61dc0ea151 | ||
|
|
d295bb0bbd | ||
|
|
703cdf6b6a | ||
|
|
c606d1f8c6 | ||
|
|
65a5e450d5 | ||
|
|
c6fed2cf58 | ||
|
|
9caaac4a5a | ||
|
|
5d704a963b | ||
|
|
e9bd5f5dad | ||
|
|
32ce109355 | ||
|
|
2b03305a5f | ||
|
|
89c99c1999 | ||
|
|
8da6cec22a | ||
|
|
394e055ae6 | ||
|
|
5b814d6b34 | ||
|
|
67b1e552d8 | ||
|
|
fc2b95ea8e | ||
|
|
690696bb52 | ||
|
|
cbf4d301ee | ||
|
|
72fb9ff7c4 | ||
|
|
030f15834c | ||
|
|
c30407cb87 | ||
|
|
dbc15fb84e | ||
|
|
d6b588bdab | ||
|
|
a949f9d220 | ||
|
|
c3c85ad548 | ||
|
|
f3ca8c7869 | ||
|
|
ff04fd9429 | ||
|
|
339d11fa0d | ||
|
|
24dfabe6c3 | ||
|
|
8e6fc9365c | ||
|
|
adacc3a6f6 | ||
|
|
6aee6ac680 | ||
|
|
6b52af6446 | ||
|
|
86ca0039c0 | ||
|
|
fcdbfc43af | ||
|
|
09b06c2254 | ||
|
|
7919c20137 | ||
|
|
25777c7a28 | ||
|
|
d08b441e3c | ||
|
|
97ab23c7d5 | ||
|
|
1440ca5841 | ||
|
|
8e7d110d73 | ||
|
|
968c24866d | ||
|
|
e722edf104 | ||
|
|
fc8100802a | ||
|
|
d31903acce | ||
|
|
55e86e53bc | ||
|
|
a2dd06ca62 | ||
|
|
785032941d | ||
|
|
3ce2665aae | ||
|
|
3524ee07e7 | ||
|
|
32cbdd4cef | ||
|
|
b5bf240fd8 | ||
|
|
c3b4add398 | ||
|
|
bc7cd26d17 | ||
|
|
5f5b589458 | ||
|
|
a9bc2e51f4 | ||
|
|
a6c21c912e | ||
|
|
d3731df79d | ||
|
|
00a29ad129 | ||
|
|
7fc924f065 | ||
|
|
63130fd461 | ||
|
|
f925b24d5e | ||
|
|
9e6301fd03 | ||
|
|
4c588271e2 | ||
|
|
9699d0763a | ||
|
|
786cee5d97 | ||
|
|
37e7661f85 | ||
|
|
de1e4a9d71 | ||
|
|
9662d45e36 | ||
|
|
dffea9d701 | ||
|
|
c358cff18b | ||
|
|
2c1ee18b78 | ||
|
|
eaed1780be | ||
|
|
666e2ed685 | ||
|
|
fe339f5eab | ||
|
|
5904c3ce30 | ||
|
|
7cd1d0bc10 | ||
|
|
0a36774a6e | ||
|
|
54bd0ddc20 | ||
|
|
2fe5289178 | ||
|
|
cf7e3f86f5 | ||
|
|
acc636fa2d | ||
|
|
833d9f85a8 | ||
|
|
cef970e1ba | ||
|
|
3f02c651e5 | ||
|
|
f9902f7611 | ||
|
|
a8ec2d4116 | ||
|
|
9a20d85614 | ||
|
|
98041ba69a | ||
|
|
068ee17dc4 | ||
|
|
4b53b59313 | ||
|
|
95a43caeba | ||
|
|
34f70fb425 | ||
|
|
86316d0205 | ||
|
|
b1941dcb80 | ||
|
|
a56cb06c61 | ||
|
|
3d687d001b | ||
|
|
6e44f31b7d | ||
|
|
d68f22fe9a | ||
|
|
5f4ecfc278 | ||
|
|
7282448b4d | ||
|
|
65c02bb7e6 | ||
|
|
293c224f35 | ||
|
|
e8af601d73 | ||
|
|
df5bcf148a | ||
|
|
8453ad0462 | ||
|
|
3c09162059 | ||
|
|
916ccc45f1 | ||
|
|
4bcecb07e5 | ||
|
|
2fdb898177 | ||
|
|
bcb5ba34ac | ||
|
|
0f7c26186a | ||
|
|
6fc369e8bf | ||
|
|
6d73b25130 | ||
|
|
5d98c94ee9 | ||
|
|
28774d6878 | ||
|
|
a68dea068c | ||
|
|
45f1ff7490 | ||
|
|
be707de431 | ||
|
|
3db09e43d8 | ||
|
|
9f079c66e9 | ||
|
|
1a1fa31545 | ||
|
|
e79502c708 | ||
|
|
ef490fa465 | ||
|
|
5c13d63217 | ||
|
|
614396d63f | ||
|
|
c9c255ec78 | ||
|
|
b6bdd04e41 | ||
|
|
c75c1ef8b2 | ||
|
|
cc0faf953f | ||
|
|
0a4fdad0f2 | ||
|
|
1fd4615c04 | ||
|
|
66e5c5bc22 | ||
|
|
4f70a712e0 | ||
|
|
ee05ba1b33 | ||
|
|
6b30858be0 | ||
|
|
ab613b0f7e | ||
|
|
99fe494c59 | ||
|
|
1ac5433cb8 | ||
|
|
7326b13db1 | ||
|
|
7262736e7e | ||
|
|
8669d9d28b | ||
|
|
c8f248a936 | ||
|
|
9ea664c299 | ||
|
|
82cd480619 | ||
|
|
4a14c6f15a | ||
|
|
c4a1277c1b | ||
|
|
1ce8c3ce82 | ||
|
|
0026095202 | ||
|
|
82adbe9c25 | ||
|
|
3a43f4557f | ||
|
|
d04debc847 | ||
|
|
37dc13c603 | ||
|
|
cb4453b1d1 | ||
|
|
9d0157c362 | ||
|
|
3a7b3c67b0 | ||
|
|
c7b0ac686f | ||
|
|
15693661cc | ||
|
|
1f4ad38d23 | ||
|
|
236bd38d1b | ||
|
|
65e9ec3602 | ||
|
|
5b523f049e | ||
|
|
0e0b0d13f9 | ||
|
|
fb2bbc47fe | ||
|
|
2ac273a456 | ||
|
|
cec93cf1fd | ||
|
|
f3f2667a4c | ||
|
|
091d74a791 | ||
|
|
b1c49c3b27 | ||
|
|
431e14429c | ||
|
|
f80497c4f0 | ||
|
|
44fcbdabf8 | ||
|
|
e6f0055704 | ||
|
|
ad92fe9071 | ||
|
|
d93a5f1598 | ||
|
|
a3c220da70 | ||
|
|
a62d8b2387 | ||
|
|
d1ed8ab118 | ||
|
|
cdea1cb75d | ||
|
|
1019d8f0f2 | ||
|
|
f3ccc53e02 | ||
|
|
8d532d3f81 | ||
|
|
6df193a2af | ||
|
|
ccfe65be7f | ||
|
|
e496262aa1 | ||
|
|
641a09dd52 | ||
|
|
9279d80110 | ||
|
|
da3a816e50 | ||
|
|
277357ae73 | ||
|
|
6fb2c36529 | ||
|
|
34234263fb | ||
|
|
6dc45410b0 | ||
|
|
2bf5a7ca5c | ||
|
|
35571ba1ad | ||
|
|
cdd3529046 | ||
|
|
ba22b31a49 | ||
|
|
e2d1655703 | ||
|
|
6ea1d45fd1 | ||
|
|
6ce31e0a32 | ||
|
|
864999209d | ||
|
|
8c56d9389a | ||
|
|
0b2bdf3c49 | ||
|
|
48c9ea3f09 | ||
|
|
6246abc72f | ||
|
|
38466cbab0 | ||
|
|
ef2870ee38 | ||
|
|
c5cc28d85d | ||
|
|
9ea2011948 | ||
|
|
0651b45e13 | ||
|
|
5e183c397b | ||
|
|
deeda6fada | ||
|
|
4f46d6ba2c | ||
|
|
b965f85c1b | ||
|
|
aa09fa2c85 | ||
|
|
11a0911d65 | ||
|
|
985908cf10 | ||
|
|
c17bc728ee | ||
|
|
4851fdea0a | ||
|
|
aeea6c1ca3 | ||
|
|
adb3a4be16 | ||
|
|
b95ae60bc0 | ||
|
|
cba1501d3e | ||
|
|
7e250841df | ||
|
|
cec49aaa38 | ||
|
|
7d1d43bfa1 | ||
|
|
60be76b725 | ||
|
|
c044245410 | ||
|
|
20edebdefa | ||
|
|
ca32a66f85 | ||
|
|
dbc9f3cf91 | ||
|
|
aef17f16be | ||
|
|
fd615a5b45 | ||
|
|
b8f4b4a9ed | ||
|
|
8a44e1bb37 | ||
|
|
5faebc73d5 | ||
|
|
771ddf16ad | ||
|
|
0456745afb | ||
|
|
9b4b3fb698 | ||
|
|
1d32ff4742 | ||
|
|
a75dc73f88 | ||
|
|
6f825670bb | ||
|
|
2a92eec59d | ||
|
|
34d91c979d | ||
|
|
ccf0176c32 | ||
|
|
8fd21b3746 | ||
|
|
b71d92478d | ||
|
|
f1bb150edb | ||
|
|
1d7ed0ff75 | ||
|
|
0a92b01c17 | ||
|
|
3e4fa31780 | ||
|
|
ef104967bf | ||
|
|
70e7eb9b95 | ||
|
|
0226ce81da | ||
|
|
689f55d8c9 | ||
|
|
362b676929 | ||
|
|
49262f2949 | ||
|
|
10ecf7e128 | ||
|
|
d1074728a6 | ||
|
|
c7f7e2f151 | ||
|
|
7d363d79d0 | ||
|
|
198c9bb4ab | ||
|
|
a0cda76c21 | ||
|
|
4b336df04e | ||
|
|
69c61ab949 | ||
|
|
cd41084251 | ||
|
|
51ec95af88 | ||
|
|
ba17db73bd | ||
|
|
d5462c2cef | ||
|
|
423dcfc970 | ||
|
|
bedc8520dd | ||
|
|
16d1b94f94 | ||
|
|
3cf28effe1 | ||
|
|
5a5e15e18b | ||
|
|
7dba01e79f | ||
|
|
eccdb1f14f | ||
|
|
5b8962ed96 | ||
|
|
66b73f466c | ||
|
|
c28542a8e6 | ||
|
|
e89d10dd59 | ||
|
|
0ee4e09146 | ||
|
|
2d46b53d62 | ||
|
|
617403d4e7 | ||
|
|
c3321dba9d | ||
|
|
3c21dc3870 | ||
|
|
0659a3ec70 | ||
|
|
28275f307a | ||
|
|
238d3c2619 | ||
|
|
caef3c06eb | ||
|
|
f0aa9f2afe | ||
|
|
61337e6324 | ||
|
|
7fd80ed6e7 | ||
|
|
66df7657db | ||
|
|
5f26901bb2 | ||
|
|
82d5dccb9c | ||
|
|
f100a29359 | ||
|
|
457ba2c868 | ||
|
|
706e78a8ae | ||
|
|
96e0fece75 | ||
|
|
cb6bcb8a7c | ||
|
|
967487ae6b | ||
|
|
a3dd16bdc6 | ||
|
|
ff218db768 | ||
|
|
1cafa0cc6b | ||
|
|
fb73f2b80c | ||
|
|
f345db0f21 | ||
|
|
a57362ee46 | ||
|
|
ce8e8d0015 | ||
|
|
4f59895a8f | ||
|
|
2b237bcff8 | ||
|
|
d83ca9aa51 | ||
|
|
0b8ff29a39 | ||
|
|
fb5b270c4a | ||
|
|
d2874c082f | ||
|
|
d7183d35bd | ||
|
|
2975f3b40d | ||
|
|
ccd16314a1 | ||
|
|
6801590dba | ||
|
|
8c25fd56c8 | ||
|
|
3b09ee6202 | ||
|
|
f3b2fb98d0 | ||
|
|
30aaeb8f6b | ||
|
|
efbfb194a2 | ||
|
|
fbe3d13f92 | ||
|
|
13fb0a0a90 | ||
|
|
abce6eb5b4 | ||
|
|
90e9e74c7d | ||
|
|
a71b39711d | ||
|
|
dc78f14e5c | ||
|
|
b1cd1e6efb | ||
|
|
aaacdefc62 | ||
|
|
a7637cfbe7 | ||
|
|
9053faed85 | ||
|
|
29141d043c | ||
|
|
9786117fda | ||
|
|
2e48404128 | ||
|
|
46960fd7cf | ||
|
|
b34e7cfa89 | ||
|
|
bdf8e4a4fa | ||
|
|
ec272b5d47 | ||
|
|
0a55044838 | ||
|
|
8c0d367821 | ||
|
|
bfee75fe1c | ||
|
|
7852bb0071 | ||
|
|
6e35a0c8df | ||
|
|
c2e4b01938 | ||
|
|
61a14f2f38 | ||
|
|
4b05106209 | ||
|
|
2fafa7b0d3 | ||
|
|
1a38a42322 | ||
|
|
8a3f606f56 | ||
|
|
dade60074f | ||
|
|
58b7e57325 | ||
|
|
e48a796b11 | ||
|
|
8667cd337c | ||
|
|
8c362ebfac | ||
|
|
d06b664934 | ||
|
|
383bda6e13 | ||
|
|
939ed14890 | ||
|
|
302c233dd6 | ||
|
|
07b31a9dfa | ||
|
|
5501009055 | ||
|
|
2cd52e48c9 | ||
|
|
addaa1b9d4 | ||
|
|
40682fda86 | ||
|
|
f09f44fe8f | ||
|
|
dd224c1d40 | ||
|
|
a6ee08fc25 | ||
|
|
d3c1913a2c | ||
|
|
90a9f06cf5 | ||
|
|
1758532023 | ||
|
|
66d3463d9e | ||
|
|
7b5b42fd98 | ||
|
|
6088a38c27 | ||
|
|
5f0f87a5ca | ||
|
|
fcc2680578 | ||
|
|
ad3eae1183 | ||
|
|
e3e0f7da98 | ||
|
|
fc115fb46d | ||
|
|
20d4b2fd52 | ||
|
|
eadeafa47c | ||
|
|
3e0acd7d21 | ||
|
|
510a702f80 | ||
|
|
91be41626c | ||
|
|
c55d12445a | ||
|
|
d7fd765d00 | ||
|
|
f2f4a878bb | ||
|
|
ad133c4e90 | ||
|
|
611167a6f0 | ||
|
|
114395d1a6 | ||
|
|
2c422cd7ec | ||
|
|
8bc1ce8121 | ||
|
|
5a46d31178 | ||
|
|
75042dfbe2 | ||
|
|
2c4fcc33b4 | ||
|
|
5f7bb930a3 | ||
|
|
7895806553 | ||
|
|
813bf5725d | ||
|
|
acc9fb0ef5 | ||
|
|
6aedb8c638 | ||
|
|
8573713414 | ||
|
|
ea5b430954 | ||
|
|
464fd1fa3a | ||
|
|
8850da8154 | ||
|
|
df5eba1b6d | ||
|
|
85ceaa7cee | ||
|
|
8a6d966b4a | ||
|
|
200d4d76ae | ||
|
|
8d049aaf13 | ||
|
|
d2620b24c2 | ||
|
|
3bc9a425fd | ||
|
|
9dd15fe96d | ||
|
|
dc81b214d7 | ||
|
|
108b0eed34 | ||
|
|
3ffe343445 | ||
|
|
100c0e7520 | ||
|
|
51f8d1270e | ||
|
|
fac78f209b | ||
|
|
43f8c1cc80 | ||
|
|
45b85a037e | ||
|
|
14b1aefc44 | ||
|
|
a23f32edda | ||
|
|
04c5891310 | ||
|
|
685984b3ae | ||
|
|
56dbf4c030 | ||
|
|
678d6abea5 | ||
|
|
0a89591d53 | ||
|
|
ceab2649f2 | ||
|
|
3250016c32 | ||
|
|
4d65e4c106 | ||
|
|
0512db0d5c | ||
|
|
5f0329469d | ||
|
|
2d8bb1f375 | ||
|
|
b9beee7d8d | ||
|
|
6376477816 | ||
|
|
82861fdbe9 | ||
|
|
92b96d783d | ||
|
|
b167354e88 | ||
|
|
0fffc06e1e | ||
|
|
2421f1b4ed | ||
|
|
9dd2ee85f1 | ||
|
|
c1cfe2076f | ||
|
|
3809b83c14 | ||
|
|
8e00066428 | ||
|
|
5dfa231b9d | ||
|
|
bdf087afe8 | ||
|
|
d87f64b932 | ||
|
|
157c0b160c | ||
|
|
57defdaf4b | ||
|
|
2959ce1dd3 | ||
|
|
9fc32a98e8 | ||
|
|
06bbd8174e | ||
|
|
32088d3af9 | ||
|
|
f1dfd68ff2 | ||
|
|
08444cd3d0 | ||
|
|
b3335e3e70 | ||
|
|
67c65bc94f | ||
|
|
e20460be77 | ||
|
|
a1062812ea | ||
|
|
55cab5b6b7 | ||
|
|
fcaf1cc372 | ||
|
|
4e564437bd | ||
|
|
bdf71347d2 | ||
|
|
91948d110a | ||
|
|
e82779f29b | ||
|
|
7d9de7e33a | ||
|
|
48f970aaeb | ||
|
|
0187f4e734 | ||
|
|
62855f55cf | ||
|
|
853fc3a1a7 | ||
|
|
bdaf49b110 | ||
|
|
59f1497ba8 | ||
|
|
63dbd1c51c | ||
|
|
ee037d9a16 | ||
|
|
2d438b48de | ||
|
|
79583dd0d4 | ||
|
|
939a61ea41 | ||
|
|
6a75289c31 | ||
|
|
81daeaa1fa | ||
|
|
7d4cfde66c | ||
|
|
1b3855a417 | ||
|
|
1eafda450b | ||
|
|
345d7d1578 | ||
|
|
173e773654 | ||
|
|
1c8afe6679 | ||
|
|
a869311ab1 | ||
|
|
69df6da856 | ||
|
|
a7dc7c8c6d | ||
|
|
d8fe5d7bba | ||
|
|
6f1a0a6c97 | ||
|
|
32fa7e6367 | ||
|
|
349f2df220 | ||
|
|
f0d5be6ada | ||
|
|
c4b272ec82 | ||
|
|
8d9253d226 | ||
|
|
fbfb87bf48 | ||
|
|
a5f5420f56 | ||
|
|
a2dbd61165 | ||
|
|
cfd4680373 | ||
|
|
3d021ee6f6 | ||
|
|
ced8423d93 | ||
|
|
1f9e4a2a25 | ||
|
|
02b8f55309 | ||
|
|
fab0dafdd0 | ||
|
|
b9bb2185eb | ||
|
|
95982b4e86 | ||
|
|
d250bf17ac | ||
|
|
4c22c70256 | ||
|
|
6ecbab0766 | ||
|
|
ab6e7a3250 | ||
|
|
9b2a30c95d | ||
|
|
937b93ae6f | ||
|
|
62b9687f20 | ||
|
|
d52a23e8b3 | ||
|
|
603db743bc | ||
|
|
a5c0c4f860 | ||
|
|
b2d03e9f5b | ||
|
|
c934138d19 | ||
|
|
0f535abdae | ||
|
|
891062b7f3 | ||
|
|
ede6cd91f5 | ||
|
|
70d1e087e7 | ||
|
|
cec82061b0 | ||
|
|
350103ead9 | ||
|
|
e951de27e1 | ||
|
|
1d80826df6 | ||
|
|
d7785270e9 | ||
|
|
ee0356e4a7 | ||
|
|
9ee918596f | ||
|
|
bc5e663bf4 | ||
|
|
75028759fb | ||
|
|
7dee7512ff | ||
|
|
b2a316bf94 | ||
|
|
1f41d2d80b | ||
|
|
80f913d4dc | ||
|
|
f96c1f63c1 | ||
|
|
2c5c0cdd1e | ||
|
|
0fb6fa994f | ||
|
|
16e435b16c | ||
|
|
e9daef9fa4 | ||
|
|
1598c2a93e | ||
|
|
f786455db4 | ||
|
|
3ac71a8d87 | ||
|
|
dd95580052 | ||
|
|
0684c1e697 | ||
|
|
28c1511c1b | ||
|
|
fdf04a8131 | ||
|
|
52140ddc30 | ||
|
|
e008a044db | ||
|
|
38c38362b4 | ||
|
|
53cd4eb255 | ||
|
|
0a6f8c2b03 | ||
|
|
7fad94819d | ||
|
|
5dafe6f9ee | ||
|
|
eedb5110a3 | ||
|
|
327c6e23b1 | ||
|
|
0cbde8338c | ||
|
|
34d89fd061 | ||
|
|
0f0d9c9b46 | ||
|
|
16037bbf81 | ||
|
|
5a733c7e85 | ||
|
|
3088cceca6 | ||
|
|
846b8623de | ||
|
|
3484d28dbd | ||
|
|
c629f89826 | ||
|
|
6aea092774 | ||
|
|
6c568845f2 | ||
|
|
f57cd2127c | ||
|
|
176117027a | ||
|
|
f6b6932cf6 | ||
|
|
8b751dcd05 | ||
|
|
097a808b68 | ||
|
|
4dc831c49f | ||
|
|
74a762bf79 | ||
|
|
cec288559a | ||
|
|
b6564ce596 | ||
|
|
a75a235455 | ||
|
|
31d01c7d7c | ||
|
|
0c80a34131 | ||
|
|
b677f0ea07 | ||
|
|
ab89104c79 | ||
|
|
390a55feeb | ||
|
|
21531ab68c | ||
|
|
23a92ca0c5 | ||
|
|
e4d29f7c80 | ||
|
|
dbde1c8867 | ||
|
|
940cc89d7c | ||
|
|
0d5803ff05 | ||
|
|
98403cc35d | ||
|
|
fd359e7be8 | ||
|
|
57549e1710 | ||
|
|
71f67597b5 | ||
|
|
c3d17fbe2e | ||
|
|
a74dc22d8c | ||
|
|
8221cf8f44 | ||
|
|
f93adcbed4 | ||
|
|
3a3d1bec13 | ||
|
|
c19608e77c | ||
|
|
e01962d9b6 | ||
|
|
d20d26b050 | ||
|
|
42f3899284 | ||
|
|
8be6d7874e | ||
|
|
8371f06bc6 | ||
|
|
5a71fae39e | ||
|
|
e1eda1d3c9 | ||
|
|
5bf285c17e | ||
|
|
7b86de7b86 | ||
|
|
244ca917ab | ||
|
|
fb444dd6e9 | ||
|
|
5b8ace4f45 | ||
|
|
9b620a16c1 | ||
|
|
0160750dfa | ||
|
|
7a67044595 | ||
|
|
1b1fa3188a | ||
|
|
b8bd5779b0 | ||
|
|
3ad25e799e | ||
|
|
907a6e29b8 | ||
|
|
69503a83fc | ||
|
|
6de291790e | ||
|
|
e601d82122 | ||
|
|
78bc37111f | ||
|
|
c5c51870d1 | ||
|
|
fcdfddca6f | ||
|
|
58ee4f83bf | ||
|
|
4e42a66e4b | ||
|
|
caac8a3001 | ||
|
|
2fc2a0e275 | ||
|
|
aeafbbb0a3 | ||
|
|
185abbac66 | ||
|
|
2570465231 | ||
|
|
5be701c685 | ||
|
|
2309074396 | ||
|
|
b241c3eed2 | ||
|
|
c2b8247563 | ||
|
|
d9bad0aaa8 | ||
|
|
f51770e6b8 | ||
|
|
66f9be5fc1 | ||
|
|
de873cd587 | ||
|
|
2d15dc1bb5 | ||
|
|
f2f8e940e8 | ||
|
|
bb48a3f04f | ||
|
|
46c6dd5e71 | ||
|
|
a9792e0529 | ||
|
|
189946f2a3 |
20
.gitignore
vendored
@@ -1,15 +1,5 @@
|
||||
/build/
|
||||
/dist/
|
||||
/.idea/
|
||||
nbproject/private/
|
||||
/webrev
|
||||
/.src-rev
|
||||
/.jib/
|
||||
.DS_Store
|
||||
.metadata/
|
||||
.recommenders/
|
||||
test/nashorn/script/external
|
||||
test/nashorn/lib
|
||||
NashornProfile.txt
|
||||
**/JTreport/**
|
||||
**/JTwork/**
|
||||
JTwork
|
||||
JTreport
|
||||
*.class
|
||||
.idea/workspace.xml
|
||||
build/
|
||||
|
||||
91
.hgtags
@@ -490,62 +490,55 @@ a11c1cb542bbd1671d25b85efe7d09b983c48525 jdk-11+15
|
||||
02934b0d661b82b7fe1052a04998d2091352e08d jdk-11+16
|
||||
64e4b1686141e57a681936a8283983341484676e jdk-11+17
|
||||
e1b3def126240d5433902f3cb0e91a4c27f6db50 jdk-11+18
|
||||
fb8b3f4672774e15654958295558a1af1b576919 jdk-11+19
|
||||
fb8b3f4672774e15654958295558a1af1b576919 jdk-11+19
|
||||
36ca515343e00b021dcfc902e986d26ec994a2e5 jdk-11+19
|
||||
95aad0c785e497f1bade3955c4e4a677b629fa9d jdk-12+0
|
||||
9816d7cc655e53ba081f938b656e31971b8f097a jdk-11+20
|
||||
14708e1acdc3974f4539027cbbcfa6d69f83cf51 jdk-11+21
|
||||
00b16d0457e43d23f6ca5ade6b243edce62750a0 jdk-12+1
|
||||
9937ef7499dcd7673714517fd5e450410c14ba4e jdk-11+22
|
||||
69b438908512d3dfef5852c6a843a5778333a309 jdk-12+2
|
||||
1edcf36fe15f79d6228d1a63eb680878e2386480 jdk-11+23
|
||||
990db216e7199b2ba9989d8fa20b657e0ca7d969 jdk-12+3
|
||||
ea900a7dc7d77dee30865c60eabd87fc24b1037c jdk-11+24
|
||||
499b873761d8e8a1cc4aa649daf04cbe98cbce77 jdk-12+4
|
||||
331888ea4a788df801b1edf8836646cd25fc758b jdk-11+25
|
||||
f8696e0ab9b795030429fc3374ec03e378fd9ed7 jdk-12+5
|
||||
945ba9278a272a5477ffb1b3ea1b04174fed8036 jdk-11+26
|
||||
7939b3c4e4088bf4f70ec5bbd8030393b653372f jdk-12+6
|
||||
9d7d74c6f2cbe522e39fa22dc557fdd3f79b32ad jdk-11+27
|
||||
ef57958c7c511162da8d9a75f0b977f0f7ac464e jdk-12+7
|
||||
76072a077ee1d815152d45d1692c4b36c53c5c49 jdk-11+28
|
||||
492b366f8e5784cc4927c2c98f9b8a3f16c067eb jdk-12+8
|
||||
31b159f30fb281016c5f0c103552809aeda84063 jdk-12+9
|
||||
8f594f75e0547d4ca16649cb3501659e3155e81b jdk-12+10
|
||||
f0f5d23449d31f1b3580c8a73313918cafeaefd7 jdk-12+11
|
||||
15094d12a632f452a2064318a4e416d0c7a9ce0c jdk-12+12
|
||||
511a9946f83e3e3c7b9dbe1840367063fb39b4e1 jdk-12+13
|
||||
8897e41b327c0a5601c6ba2bba5d07f15a3ffc91 jdk-12+14
|
||||
8897e41b327c0a5601c6ba2bba5d07f15a3ffc91 jdk-12+14
|
||||
6f04692c7d5137ee34a6bd94c0c8a6c9219cb127 jdk-12+14
|
||||
f8626bcc169813a4b2a15880386b952719d1d6d1 jdk-12+15
|
||||
199658d1ef860cdc17055b4fd3e94b057f292fe9 jdk-12+16
|
||||
eefa65e142af305923d2adcd596fab9c639723a1 jdk-12+17
|
||||
e38473506688e0995e701fc7f77d5a91b438ef93 jdk-12+18
|
||||
dc1f9dec2018a37fedba47d8a2aedef99faaec64 jdk-12+19
|
||||
40098289d5804c3b5e7074bc75501a81e70d9b0d jdk-12+20
|
||||
f8fb0c86f2b3d24294d39c5685a628e1beb14ba7 jdk-12+21
|
||||
732bec44c89e8b93a38296bf690f97b7230c5b6d jdk-12+22
|
||||
eef755718cb24813031a842bbfc716a6cea18e9a jdk-12+23
|
||||
cc4098b3bc10d1c390384289025fea7b0d4b9e93 jdk-13+0
|
||||
7d4397b43fa305806160785a4c7210600d59581a jdk-12+24
|
||||
11033c4ada542f9c9a873314b6ecf60af19e8256 jdk-13+1
|
||||
7496df94b3b79f3da53925d2d137317715f11d97 jdk-12+25
|
||||
50677f43ac3df9a8684222b8893543c60f3aa0bd jdk-13+2
|
||||
de9fd809bb475401aad188eab2264226788aad81 jdk-12+26
|
||||
642346a11059b9f283110dc301a24ed43b76a94e jdk-13+3
|
||||
f15d443f97318e9b40e6f451e327ff69ed4ec361 jdk-12+27
|
||||
a47b8125b7cc9ef59619745c163975fe935b57ed jdk-13+4
|
||||
659b004b6a1bd8c31e766cbdf328d8f8473fd4d7 jdk-12+28
|
||||
e3ed960609927b5fdfd0a797159835cd83a81a31 jdk-13+5
|
||||
44f41693631f9b5ac78ff4d2bfabd6734fe46df2 jdk-12+29
|
||||
b5f05fe4a6f8b3996a000c20078b356d991ca8ec jdk-13+6
|
||||
6c377af36a5c4203f16aed8a5e4c2ecc08fcd8bd jdk-12+30
|
||||
021917019cda1c0c5853255322274f37693a2431 jdk-13+7
|
||||
b5f7bb57de2f797be34f6c75d45c3245ad37ab97 jdk-12+31
|
||||
a535ba736cabc6886acdff36de3a096c46e5ddc5 jdk-13+8
|
||||
4ce47bc1fb92cf94c6e3d1f49d582f02dcb851ab jdk-12+32
|
||||
c081f3ea6b9300265a4a34e38f970b1e3ddaae9f jdk-13+9
|
||||
b67884871b5fff79c5ef3eb8ac74dd48d71ea9b1 jdk-12+33
|
||||
8e069f7b4fabfe05d9f500783e6d56cb0196d25c jdk-13+10
|
||||
21ea4076a275a0f498afa517e9ee1b94a9cf0255 jdk-13+11
|
||||
1d7aec80147a6d92b101a76aef92f3ddc88bedf4 jdk-13+12
|
||||
c01cc45790f871adec30acc90742b521d57a2fff jdk-11.0.1+0
|
||||
1353ec839c82de926bfacd2c7976b6b652d4afb0 jdk-11.0.1+1
|
||||
a285bd7cfedb40cb3086e61e17fc04c96b739d03 jdk-11.0.1+2
|
||||
a285bd7cfedb40cb3086e61e17fc04c96b739d03 jdk-11.0.1+2
|
||||
0000000000000000000000000000000000000000 jdk-11.0.1+2
|
||||
fc55f0667af5ea3b21e40a59e2a88b1b82e65e62 jdk-11.0.1+2
|
||||
781b5d8f2f75ae4dfdafc85630e5dbd31e324ed1 jdk-11.0.1+3
|
||||
b5b1dd7e6f9d86aedf7141e9279342fae257bd67 jdk-11.0.1+4
|
||||
d6efeebf554c918bfab50f89939eb11121e18432 jdk-11.0.1+5
|
||||
db768cfe2141b3eb9ef53d7104002a0532c8c977 jdk-11.0.1+6
|
||||
88a221c0bad0cee441767106776628550d660a82 jdk-11.0.1+7
|
||||
c2b23a17d3ff92235aed8e8d04642d7a6eaecf54 jdk-11.0.1+8
|
||||
adb9933aa8c68e6dec6b441133f3955fe7366206 jdk-11.0.1+9
|
||||
a86e14193fc8ea98835fd3e2f867447164c7af53 jdk-11.0.1+10
|
||||
0343f9aacae2d4a9e6df4e61087837166a6a477c jdk-11.0.1+11
|
||||
c0431cf9c38e5c56eedc680e007a94c4279a8f13 jdk-11.0.1+12
|
||||
8513ac27b65198d2e6562fb7da6e9c99b9fdcf51 jdk-11.0.1+13
|
||||
7da060835810b5fbd4a7493ea1c98e9a4338f30d jdk-11.0.2+0
|
||||
2be95a1bf50877cafba791c2f342953bd4a6412e jdk-11.0.2+1
|
||||
b4b16f510f48e2dd4bea007b60fddf69af0f6c10 jdk-11.0.2+2
|
||||
8a8606a3bdf2dbe0698bef375e6a4b47df0efb1a jdk-11.0.2+3
|
||||
0db90dec8c39bc38058afa11b7fda607ee259d01 jdk-11.0.2+4
|
||||
ff1f7723c4e88822fd60bcacd55824e1d3da6d36 jdk-11.0.2+5
|
||||
c6fd7ff3e96f3e6f4913d026a90c6c454a7a35c8 jdk-11.0.2+6
|
||||
a01e0cc0105972acc3b5e213dbe2b84acaee5be3 jdk-11.0.2+7
|
||||
a01e0cc0105972acc3b5e213dbe2b84acaee5be3 jdk-11.0.2-ga
|
||||
fe85e2f43a1c893cb410308106b0f31b814aebb8 jdk-11.0.2+8
|
||||
144d476b6efe527c5e9ebf19af93398913c5450f jdk-11.0.2+9
|
||||
a01e0cc0105972acc3b5e213dbe2b84acaee5be3 jdk-11.0.2-ga
|
||||
0000000000000000000000000000000000000000 jdk-11.0.2-ga
|
||||
144d476b6efe527c5e9ebf19af93398913c5450f jdk-11.0.2-ga
|
||||
98e7354165d3a2443a8b845a5a526cc55d1b0dd7 jdk-11.0.3+0
|
||||
cd1c042181e934a1a91f9ee59a0066f64c8bad7a jdk-11.0.3+1
|
||||
9de3f198995c6c384fd6431c97089c311ec6a7ff jdk-11.0.3+2
|
||||
d17a1764a0f318ab72beadb589c998d40951493a jdk-11.0.3+3
|
||||
43d6759c3b2e36c1118e9753a080372294e1f17a jdk-11.0.3+4
|
||||
c9865fee1a6d39a7bd2a5313f54c812d9a0852f5 jdk-11.0.3+5
|
||||
8e139b8b4f62c0a1c4b13fa216f6fd975df81c1c jdk-11.0.3+6
|
||||
175eb80c253addb5b49a91c53daa7e204f124581 jdk-11.0.3+7
|
||||
175eb80c253addb5b49a91c53daa7e204f124581 jdk-11.0.3-ga
|
||||
|
||||
5
.idea/codeStyles/Project.xml
generated
Normal file
@@ -0,0 +1,5 @@
|
||||
<component name="ProjectCodeStyleConfiguration">
|
||||
<code_scheme name="Project" version="173">
|
||||
<option name="LINE_SEPARATOR" value=" " />
|
||||
</code_scheme>
|
||||
</component>
|
||||
5
.idea/codeStyles/codeStyleConfig.xml
generated
Normal file
@@ -0,0 +1,5 @@
|
||||
<component name="ProjectCodeStyleConfiguration">
|
||||
<state>
|
||||
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
|
||||
</state>
|
||||
</component>
|
||||
9
.idea/copyright/JetBrains.xml
generated
Normal file
@@ -0,0 +1,9 @@
|
||||
<component name="CopyrightManager">
|
||||
<copyright>
|
||||
<option name="notice" value="Copyright 2000-&#36;today.year JetBrains s.r.o. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License." />
|
||||
<option name="keyword" value="Copyright" />
|
||||
<option name="allowReplaceKeyword" value="JetBrains" />
|
||||
<option name="myName" value="JetBrains" />
|
||||
<option name="myLocal" value="true" />
|
||||
</copyright>
|
||||
</component>
|
||||
3
.idea/copyright/profiles_settings.xml
generated
Normal file
@@ -0,0 +1,3 @@
|
||||
<component name="CopyrightManager">
|
||||
<settings default="JetBrains" />
|
||||
</component>
|
||||
6
.idea/vcs.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
||||
@@ -1,2 +1,2 @@
|
||||
project=jdk
|
||||
project=jdk10
|
||||
bugids=dup
|
||||
|
||||
60
README.md
Normal file
@@ -0,0 +1,60 @@
|
||||
[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
|
||||
|
||||
# Downloads
|
||||
|
||||
|Windows-x64 |macOS |Linux-x64 |
|
||||
|-------------|-------------|-------------|
|
||||
|<a href="https://bintray.com/jetbrains/intellij-jdk/openjdk9-windows-x64/_latestVersion"> <img src="https://api.bintray.com/packages/jetbrains/intellij-jdk/openjdk9-windows-x64/images/download.svg"/></a>|<a href="https://bintray.com/jetbrains/intellij-jdk/openjdk9-osx-x64/_latestVersion"> <img src="https://api.bintray.com/packages/jetbrains/intellij-jdk/openjdk9-osx-x64/images/download.svg"/></a>|<a href="https://bintray.com/jetbrains/intellij-jdk/openjdk9-linux-x64/_latestVersion"><img src="https://api.bintray.com/packages/jetbrains/intellij-jdk/openjdk9-linux-x64/images/download.svg"/></a>|
|
||||
|
||||
|
||||
# How JetBrains Runtime is organised
|
||||
## Workspaces
|
||||
|
||||
[github.com/JetBrains/JetBrainsRuntime](https://github.com/JetBrains/JetBrainsRuntime)
|
||||
|
||||
## Getting sources
|
||||
__OSX, Linux:__
|
||||
```
|
||||
git config --global core.autocrlf input
|
||||
git clone git@github.com:JetBrains/JetBrainsRuntime.git
|
||||
```
|
||||
|
||||
__Windows:__
|
||||
```
|
||||
git config --global core.autocrlf false
|
||||
git clone git@github.com:JetBrains/JetBrainsRuntime.git
|
||||
```
|
||||
|
||||
# Configure Local Build Environment
|
||||
## Linux (docker)
|
||||
```
|
||||
$ cd jb/project/docker
|
||||
$ docker build .
|
||||
...
|
||||
Successfully built 942ea9900054
|
||||
|
||||
$ docker run -v `pwd`../../../../:/JetBrainsRuntime -it 942ea9900054
|
||||
|
||||
# cd /JetBrainsRuntime
|
||||
# sh ./configure
|
||||
# make images CONF=linux-x86_64-normal-server-release
|
||||
|
||||
```
|
||||
|
||||
## Linux (Ubuntu 18.10 desktop)
|
||||
```
|
||||
$ sudo apt-get install autoconf make build-essential libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev install libcups2-dev libfontconfig1-dev libasound2-dev
|
||||
|
||||
$ cd JetBrainsRuntime
|
||||
$ sh ./configure --disable-warnings-as-errors
|
||||
$ make images
|
||||
```
|
||||
|
||||
## Windows
|
||||
#### TBD
|
||||
|
||||
## OSX
|
||||
#### TBD
|
||||
|
||||
## Contribution
|
||||
We will be happy to receive your pull requests. Before you submit one, please sign our Contributor License Agreement (CLA) https://www.jetbrains.com/agreements/cla/
|
||||
157
bin/idea.sh
@@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (c) 2009, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2009, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@@ -49,7 +49,7 @@ do
|
||||
;;
|
||||
|
||||
-o | --output )
|
||||
IDEA_OUTPUT=$2/.idea
|
||||
IDEA_OUTPUT=$2
|
||||
shift
|
||||
;;
|
||||
|
||||
@@ -64,25 +64,28 @@ do
|
||||
shift
|
||||
done
|
||||
|
||||
mkdir -p $IDEA_OUTPUT || exit 1
|
||||
mkdir $IDEA_OUTPUT || exit 1
|
||||
cd $IDEA_OUTPUT; IDEA_OUTPUT=`pwd`
|
||||
|
||||
if [ "x$TOPLEVEL_DIR" = "x" ] ; then
|
||||
cd $SCRIPT_DIR/..
|
||||
TOPLEVEL_DIR=`pwd`
|
||||
cd $IDEA_OUTPUT
|
||||
fi
|
||||
|
||||
MAKE_DIR="$SCRIPT_DIR/../make"
|
||||
IDEA_MAKE="$MAKE_DIR/idea"
|
||||
IDEA_TEMPLATE="$IDEA_MAKE/template"
|
||||
|
||||
cp -r "$IDEA_TEMPLATE"/* "$IDEA_OUTPUT"
|
||||
|
||||
#override template
|
||||
#init template variables
|
||||
for file in `ls -p $IDEA_TEMPLATE | grep -v /`; do
|
||||
VAR_SUFFIX=`echo $file | cut -d'.' -f1 | tr [:lower:] [:upper:]`
|
||||
eval "$VAR_SUFFIX"_TEMPLATE="$IDEA_TEMPLATE"/$file
|
||||
eval IDEA_"$VAR_SUFFIX"="$IDEA_OUTPUT"/$file
|
||||
done
|
||||
|
||||
#override template variables
|
||||
if [ -d "$TEMPLATES_OVERRIDE" ] ; then
|
||||
for file in `ls -p "$TEMPLATES_OVERRIDE" | grep -v /`; do
|
||||
cp "$TEMPLATES_OVERRIDE"/$file "$IDEA_OUTPUT"/
|
||||
VAR_SUFFIX=`echo $file | cut -d'.' -f1 | tr [:lower:] [:upper:]`
|
||||
eval "$VAR_SUFFIX"_TEMPLATE="$TEMPLATES_OVERRIDE"/$file
|
||||
done
|
||||
fi
|
||||
|
||||
@@ -91,6 +94,14 @@ if [ "$VERBOSE" = "true" ] ; then
|
||||
echo "idea template dir: $IDEA_TEMPLATE"
|
||||
fi
|
||||
|
||||
if [ ! -f "$JDK_TEMPLATE" ] ; then
|
||||
echo "FATAL: cannot find $JDK_TEMPLATE" >&2; exit 1
|
||||
fi
|
||||
|
||||
if [ ! -f "$ANT_TEMPLATE" ] ; then
|
||||
echo "FATAL: cannot find $ANT_TEMPLATE" >&2; exit 1
|
||||
fi
|
||||
|
||||
cd $TOP ; make -f "$IDEA_MAKE/idea.gmk" -I $MAKE_DIR/.. idea MAKEOVERRIDES= OUT=$IDEA_OUTPUT/env.cfg MODULES="$*" || exit 1
|
||||
cd $SCRIPT_DIR
|
||||
|
||||
@@ -113,62 +124,94 @@ if [ "x$SPEC" = "x" ] ; then
|
||||
echo "FATAL: SPEC is empty" >&2; exit 1
|
||||
fi
|
||||
|
||||
### Replace template variables
|
||||
SOURCE_FOLDER=" <sourceFolder url=\"file://\$MODULE_DIR\$/####\" isTestSource=\"false\" />"
|
||||
SOURCE_FOLDERS_DONE="false"
|
||||
|
||||
NUM_REPLACEMENTS=0
|
||||
|
||||
replace_template_file() {
|
||||
for i in $(seq 1 $NUM_REPLACEMENTS); do
|
||||
eval "sed \"s|\${FROM${i}}|\${TO${i}}|g\" $1 > $1.tmp"
|
||||
mv $1.tmp $1
|
||||
done
|
||||
addSourceFolder() {
|
||||
root=$@
|
||||
relativePath="`echo "$root" | sed -e s@"$TOP/\(.*$\)"@"\1"@`"
|
||||
folder="`echo "$SOURCE_FOLDER" | sed -e s@"\(.*/\)####\(.*\)"@"\1$relativePath\2"@`"
|
||||
printf "%s\n" "$folder" >> $IDEA_JDK
|
||||
}
|
||||
|
||||
replace_template_dir() {
|
||||
for f in `find $1 -type f` ; do
|
||||
replace_template_file $f
|
||||
done
|
||||
}
|
||||
### Generate project iml
|
||||
|
||||
add_replacement() {
|
||||
NUM_REPLACEMENTS=`expr $NUM_REPLACEMENTS + 1`
|
||||
eval FROM$NUM_REPLACEMENTS='$1'
|
||||
eval TO$NUM_REPLACEMENTS='$2'
|
||||
}
|
||||
|
||||
add_replacement "###MODULE_NAMES###" "$MODULE_NAMES"
|
||||
SPEC_DIR=`dirname $SPEC`
|
||||
if [ "x$CYGPATH" = "x" ]; then
|
||||
add_replacement "###BUILD_DIR###" "$SPEC_DIR"
|
||||
add_replacement "###JTREG_HOME###" "$JT_HOME"
|
||||
add_replacement "###IMAGES_DIR###" "$SPEC_DIR/images/jdk"
|
||||
add_replacement "###ROOT_DIR###" "$TOPLEVEL_DIR"
|
||||
add_replacement "###IDEA_DIR###" "$IDEA_OUTPUT"
|
||||
else
|
||||
add_replacement "###BUILD_DIR###" "`cygpath -am $SPEC_DIR`"
|
||||
add_replacement "###IMAGES_DIR###" "`cygpath -am $SPEC_DIR`/images/jdk"
|
||||
add_replacement "###ROOT_DIR###" "`cygpath -am $TOPLEVEL_DIR`"
|
||||
add_replacement "###IDEA_DIR###" "`cygpath -am $IDEA_OUTPUT`"
|
||||
if [ "x$JT_HOME" = "x" ]; then
|
||||
add_replacement "###JTREG_HOME###" ""
|
||||
else
|
||||
add_replacement "###JTREG_HOME###" "`cygpath -am $JT_HOME`"
|
||||
rm -f $IDEA_JDK
|
||||
while IFS= read -r line
|
||||
do
|
||||
if echo "$line" | egrep "^ .* <sourceFolder.*####" > /dev/null ; then
|
||||
if [ "$SOURCE_FOLDERS_DONE" = "false" ] ; then
|
||||
SOURCE_FOLDERS_DONE="true"
|
||||
for root in $MODULE_ROOTS; do
|
||||
addSourceFolder $root
|
||||
done
|
||||
fi
|
||||
fi
|
||||
else
|
||||
printf "%s\n" "$line" >> $IDEA_JDK
|
||||
fi
|
||||
done < "$JDK_TEMPLATE"
|
||||
|
||||
SOURCE_PREFIX="<sourceFolder url=\"file://"
|
||||
SOURCE_POSTFIX="\" isTestSource=\"false\" />"
|
||||
|
||||
for root in $MODULE_ROOTS; do
|
||||
if [ "x$CYGPATH" != "x" ]; then
|
||||
root=`cygpath -am $root`
|
||||
fi
|
||||
SOURCES=$SOURCES" $SOURCE_PREFIX""$root""$SOURCE_POSTFIX"
|
||||
done
|
||||
MODULE_NAME=" <property name=\"module.name\" value=\"####\" />"
|
||||
|
||||
add_replacement "###SOURCE_ROOTS###" "$SOURCES"
|
||||
addModuleName() {
|
||||
mn="`echo "$MODULE_NAME" | sed -e s@"\(.*\)####\(.*\)"@"\1$MODULE_NAMES\2"@`"
|
||||
printf "%s\n" "$mn" >> $IDEA_ANT
|
||||
}
|
||||
|
||||
replace_template_dir "$IDEA_OUTPUT"
|
||||
BUILD_DIR=" <property name=\"build.target.dir\" value=\"####\" />"
|
||||
|
||||
addBuildDir() {
|
||||
DIR=`dirname $SPEC`
|
||||
mn="`echo "$BUILD_DIR" | sed -e s@"\(.*\)####\(.*\)"@"\1$DIR\2"@`"
|
||||
printf "%s\n" "$mn" >> $IDEA_ANT
|
||||
}
|
||||
|
||||
### Generate ant.xml
|
||||
|
||||
rm -f $IDEA_ANT
|
||||
while IFS= read -r line
|
||||
do
|
||||
if echo "$line" | egrep "^ .* <property name=\"module.name\"" > /dev/null ; then
|
||||
addModuleName
|
||||
elif echo "$line" | egrep "^ .* <property name=\"build.target.dir\"" > /dev/null ; then
|
||||
addBuildDir
|
||||
else
|
||||
printf "%s\n" "$line" >> $IDEA_ANT
|
||||
fi
|
||||
done < "$ANT_TEMPLATE"
|
||||
|
||||
### Generate misc.xml
|
||||
|
||||
rm -f $IDEA_MISC
|
||||
|
||||
JTREG_HOME=" <path>####</path>"
|
||||
|
||||
IMAGES_DIR=" <jre alt=\"true\" value=\"####\" />"
|
||||
|
||||
addImagesDir() {
|
||||
DIR=`dirname $SPEC`/images/jdk
|
||||
mn="`echo "$IMAGES_DIR" | sed -e s@"\(.*\)####\(.*\)"@"\1$DIR\2"@`"
|
||||
printf "%s\n" "$mn" >> $IDEA_MISC
|
||||
}
|
||||
|
||||
addJtregHome() {
|
||||
DIR=`dirname $SPEC`
|
||||
mn="`echo "$JTREG_HOME" | sed -e s@"\(.*\)####\(.*\)"@"\1$JT_HOME\2"@`"
|
||||
printf "%s\n" "$mn" >> $IDEA_MISC
|
||||
}
|
||||
|
||||
rm -f $MISC_ANT
|
||||
while IFS= read -r line
|
||||
do
|
||||
if echo "$line" | egrep "^ .*<path>jtreg_home</path>" > /dev/null ; then
|
||||
addJtregHome
|
||||
elif echo "$line" | egrep "^ .*<jre alt=\"true\" value=\"images_jdk\"" > /dev/null ; then
|
||||
addImagesDir
|
||||
else
|
||||
printf "%s\n" "$line" >> $IDEA_MISC
|
||||
fi
|
||||
done < "$MISC_TEMPLATE"
|
||||
|
||||
### Compile the custom Logger
|
||||
|
||||
|
||||
@@ -1,24 +1,19 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="generator" content="pandoc" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
||||
<meta charset="utf-8">
|
||||
<meta name="generator" content="pandoc">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
|
||||
<title>Building the JDK</title>
|
||||
<style type="text/css">
|
||||
code{white-space: pre-wrap;}
|
||||
span.smallcaps{font-variant: small-caps;}
|
||||
span.underline{text-decoration: underline;}
|
||||
div.column{display: inline-block; vertical-align: top; width: 50%;}
|
||||
</style>
|
||||
<link rel="stylesheet" href="../make/data/docs-resources/resources/jdk-default.css" />
|
||||
<style type="text/css">code{white-space: pre;}</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]-->
|
||||
<style type="text/css">pre, code, tt { color: #1d6ae5; }</style>
|
||||
</head>
|
||||
<body>
|
||||
<header id="title-block-header">
|
||||
<header>
|
||||
<h1 class="title">Building the JDK</h1>
|
||||
</header>
|
||||
<nav id="TOC">
|
||||
@@ -31,8 +26,7 @@
|
||||
<li><a href="#build-hardware-requirements">Build Hardware Requirements</a><ul>
|
||||
<li><a href="#building-on-x86">Building on x86</a></li>
|
||||
<li><a href="#building-on-sparc">Building on sparc</a></li>
|
||||
<li><a href="#building-on-aarch64">Building on aarch64</a></li>
|
||||
<li><a href="#building-on-32-bit-arm">Building on 32-bit arm</a></li>
|
||||
<li><a href="#building-on-armaarch64">Building on arm/aarch64</a></li>
|
||||
</ul></li>
|
||||
<li><a href="#operating-system-requirements">Operating System Requirements</a><ul>
|
||||
<li><a href="#windows">Windows</a></li>
|
||||
@@ -74,12 +68,10 @@
|
||||
</ul></li>
|
||||
<li><a href="#running-tests">Running Tests</a></li>
|
||||
<li><a href="#cross-compiling">Cross-compiling</a><ul>
|
||||
<li><a href="#cross-compiling-the-easy-way-with-openjdk-devkits">Cross compiling the easy way with OpenJDK devkits</a></li>
|
||||
<li><a href="#boot-jdk-and-build-jdk">Boot JDK and Build JDK</a></li>
|
||||
<li><a href="#specifying-the-target-platform">Specifying the Target Platform</a></li>
|
||||
<li><a href="#toolchain-considerations">Toolchain Considerations</a></li>
|
||||
<li><a href="#native-libraries">Native Libraries</a></li>
|
||||
<li><a href="#creating-and-using-sysroots-with-qemu-deboostrap">Creating And Using Sysroots With qemu-deboostrap</a></li>
|
||||
<li><a href="#building-for-armaarch64">Building for ARM/aarch64</a></li>
|
||||
<li><a href="#verifying-the-build">Verifying the Build</a></li>
|
||||
</ul></li>
|
||||
@@ -99,7 +91,7 @@
|
||||
<li><a href="#getting-help">Getting Help</a></li>
|
||||
</ul></li>
|
||||
<li><a href="#hints-and-suggestions-for-advanced-users">Hints and Suggestions for Advanced Users</a><ul>
|
||||
<li><a href="#setting-up-a-repository-for-pushing-changes-defpath">Setting Up a Repository for Pushing Changes (defpath)</a></li>
|
||||
<li><a href="#setting-up-a-forest-for-pushing-changes-defpath">Setting Up a Forest for Pushing Changes (defpath)</a></li>
|
||||
<li><a href="#bash-completion">Bash Completion</a></li>
|
||||
<li><a href="#using-multiple-configurations">Using Multiple Configurations</a></li>
|
||||
<li><a href="#handling-reconfigurations">Handling Reconfigurations</a></li>
|
||||
@@ -137,7 +129,7 @@
|
||||
<p>The JDK is a complex software project. Building it requires a certain amount of technical expertise, a fair number of dependencies on external software, and reasonably powerful hardware.</p>
|
||||
<p>If you just want to use the JDK and not build it yourself, this document is not for you. See for instance <a href="http://openjdk.java.net/install">OpenJDK installation</a> for some methods of installing a prebuilt JDK.</p>
|
||||
<h2 id="getting-the-source-code">Getting the Source Code</h2>
|
||||
<p>Make sure you are getting the correct version. As of JDK 10, the source is no longer split into separate repositories so you only need to clone one single repository. At the <a href="http://hg.openjdk.java.net/">OpenJDK Mercurial server</a> you can see a list of all available repositories. If you want to build an older version, e.g. JDK 8, it is recommended that you get the <code>jdk8u</code> forest, which contains incremental updates, instead of the <code>jdk8</code> forest, which was frozen at JDK 8 GA.</p>
|
||||
<p>Make sure you are getting the correct version. As of JDK 10, the source is no longer split into separate repositories so you only need to clone one single repository. At the <a href="http://hg.openjdk.java.net/">OpenJDK Mercurial server</a> you can see a list of all available forests. If you want to build an older version, e.g. JDK 8, it is recommended that you get the <code>jdk8u</code> forest, which contains incremental updates, instead of the <code>jdk8</code> forest, which was frozen at JDK 8 GA.</p>
|
||||
<p>If you are new to Mercurial, a good place to start is the <a href="http://www.mercurial-scm.org/guide">Mercurial Beginner's Guide</a>. The rest of this document assumes a working knowledge of Mercurial.</p>
|
||||
<h3 id="special-considerations">Special Considerations</h3>
|
||||
<p>For a smooth building experience, it is recommended that you follow these rules on where and how to check out the source code.</p>
|
||||
@@ -145,7 +137,7 @@
|
||||
<li><p>Do not check out the source code in a path which contains spaces. Chances are the build will not work. This is most likely to be an issue on Windows systems.</p></li>
|
||||
<li><p>Do not check out the source code in a path which has a very long name or is nested many levels deep. Chances are you will hit an OS limitation during the build.</p></li>
|
||||
<li><p>Put the source code on a local disk, not a network share. If possible, use an SSD. The build process is very disk intensive, and having slow disk access will significantly increase build times. If you 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>
|
||||
<li><p>On Windows, if using <a href="#cygwin">Cygwin</a>, extra care must be taken to make sure the environment is consistent. It is recommended that you follow this procedure:</p>
|
||||
<li><p>On Windows, extra care must be taken to make sure the <a href="#cygwin">Cygwin</a> environment is consistent. It is recommended that you follow this procedure:</p>
|
||||
<ul>
|
||||
<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 bash shell. That is, do <em>not</em> create it using Windows Explorer. This will ensure that it will have proper Cygwin attributes, and that it's children will inherit those attributes.</p></li>
|
||||
<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 spaces and/or mixed upper and lower case letters.</p></li>
|
||||
@@ -161,10 +153,7 @@
|
||||
<p>Even for 32-bit builds, it is recommended to use a 64-bit build machine, and instead create a 32-bit target using <code>--with-target-bits=32</code>.</p>
|
||||
<h3 id="building-on-sparc">Building on sparc</h3>
|
||||
<p>At a minimum, a machine with 4 cores is advisable, as well as 4 GB of RAM. (The more cores to use, the more memory you need.) At least 8 GB of free disk space is required.</p>
|
||||
<h3 id="building-on-aarch64">Building on aarch64</h3>
|
||||
<p>At a minimum, a machine with 8 cores is advisable, as well as 8 GB of RAM. (The more cores to use, the more memory you need.) At least 6 GB of free disk space is required.</p>
|
||||
<p>If you do not have access to sufficiently powerful hardware, it is also possible to use <a href="#cross-compiling">cross-compiling</a>.</p>
|
||||
<h3 id="building-on-32-bit-arm">Building on 32-bit arm</h3>
|
||||
<h3 id="building-on-armaarch64">Building on arm/aarch64</h3>
|
||||
<p>This is not recommended. Instead, see the section on <a href="#cross-compiling">Cross-compiling</a>.</p>
|
||||
<h2 id="operating-system-requirements">Operating System Requirements</h2>
|
||||
<p>The mainline JDK project supports Linux, Solaris, macOS, AIX and Windows. Support for other operating system, e.g. BSD, exists in separate "port" projects.</p>
|
||||
@@ -201,12 +190,12 @@
|
||||
<h3 id="windows">Windows</h3>
|
||||
<p>Windows XP is not a supported platform, but all newer Windows should be able to build the JDK.</p>
|
||||
<p>On Windows, it is important that you pay attention to the instructions in the <a href="#special-considerations">Special Considerations</a>.</p>
|
||||
<p>Windows is the only non-POSIX OS supported by the JDK, and as such, requires some extra care. A POSIX support layer is required to build on Windows. Currently, the only supported such layers are Cygwin and Windows Subsystem for Linux (WSL). (Msys is no longer supported due to a too old bash; msys2 would likely be possible to support in a future version but that would require effort to implement.)</p>
|
||||
<p>Windows is the only non-POSIX OS supported by the JDK, and as such, requires some extra care. A POSIX support layer is required to build on Windows. Currently, the only supported such layer is Cygwin. (Msys is no longer supported due to a too old bash; msys2 and the new Windows Subsystem for Linux (WSL) would likely be possible to support in a future version but that would require effort to implement.)</p>
|
||||
<p>Internally in the build system, all paths are represented as Unix-style paths, e.g. <code>/cygdrive/c/hg/jdk9/Makefile</code> rather than <code>C:\hg\jdk9\Makefile</code>. This rule also applies to input to the build system, e.g. in arguments to <code>configure</code>. So, use <code>--with-msvcr-dll=/cygdrive/c/msvcr100.dll</code> rather than <code>--with-msvcr-dll=c:\msvcr100.dll</code>. For details on this conversion, see the section on <a href="#fixpath">Fixpath</a>.</p>
|
||||
<h4 id="cygwin">Cygwin</h4>
|
||||
<p>A functioning <a href="http://www.cygwin.com/">Cygwin</a> environment is required for building the JDK on Windows. If you have a 64-bit OS, we strongly recommend using the 64-bit version of Cygwin.</p>
|
||||
<p>A functioning <a href="http://www.cygwin.com/">Cygwin</a> environment is thus required for building the JDK on Windows. If you have a 64-bit OS, we strongly recommend using the 64-bit version of Cygwin.</p>
|
||||
<p><strong>Note:</strong> Cygwin has a model of continuously updating all packages without any easy way to install or revert to a specific version of a package. This means that whenever you add or update a package in Cygwin, you might (inadvertently) update tools that are used by the JDK build process, and that can cause unexpected build problems.</p>
|
||||
<p>The JDK requires GNU Make 4.0 or greater in Cygwin. This is usually not a problem, since Cygwin currently only distributes GNU Make at a version above 4.0.</p>
|
||||
<p>The JDK requires GNU Make 4.0 or greater on Windows. This is usually not a problem, since Cygwin currently only distributes GNU Make at a version above 4.0.</p>
|
||||
<p>Apart from the basic Cygwin installation, the following packages must also be installed:</p>
|
||||
<ul>
|
||||
<li><code>autoconf</code></li>
|
||||
@@ -217,11 +206,6 @@
|
||||
<p>Often, you can install these packages using the following command line:</p>
|
||||
<pre><code><path to Cygwin setup>/setup-x86_64 -q -P autoconf -P make -P unzip -P zip</code></pre>
|
||||
<p>Unfortunately, Cygwin can be unreliable in certain circumstances. If you experience build tool crashes or strange issues when building on Windows, please check the Cygwin FAQ on the <a href="https://cygwin.com/faq/faq.html#faq.using.bloda">"BLODA" list</a> and the section on <a href="https://cygwin.com/faq/faq.html#faq.using.fixing-fork-failures">fork() failures</a>.</p>
|
||||
<h4 id="windows-subsystem-for-linux-wsl">Windows Subsystem for Linux (WSL)</h4>
|
||||
<p>Windows 10 1809 or newer is supported due to a dependency on the wslpath utility and support for environment variable sharing through WSLENV. Version 1803 can work but intermittent build failures have been observed.</p>
|
||||
<p>It's possible to build both Windows and Linux binaries from WSL. To build Windows binaries, you must use a Windows boot JDK (located in a Windows-accessible directory). To build Linux binaries, you must use a Linux boot JDK. The default behavior is to build for Windows. To build for Linux, pass <code>--build=x86_64-unknown-linux-gnu --host=x86_64-unknown-linux-gnu</code> to <code>configure</code>.</p>
|
||||
<p>If building Windows binaries, the source code must be located in a Windows- accessible directory. This is because Windows executables (such as Visual Studio and the boot JDK) must be able to access the source code. Also, the drive where the source is stored must be mounted as case-insensitive by changing either /etc/fstab or /etc/wsl.conf in WSL. Individual directories may be corrected using the fsutil tool in case the source was cloned before changing the mount options.</p>
|
||||
<p>Note that while it's possible to build on WSL, testing is still not fully supported.</p>
|
||||
<h3 id="solaris">Solaris</h3>
|
||||
<p>See <code>make/devkit/solaris11.1-package-list.txt</code> for a list of recommended packages to install when building on Solaris. The versions specified in this list is the versions used by the daily builds at Oracle, and is likely to work properly.</p>
|
||||
<p>Older versions of Solaris shipped a broken version of <code>objcopy</code>. At least version 2.21.1 is needed, which is provided by Solaris 11 Update 1. Objcopy is needed if you want to have external debug symbols. Please make sure you are using at least version 2.21.1 of objcopy, or that you disable external debug symbols.</p>
|
||||
@@ -237,7 +221,7 @@
|
||||
<p>For rpm-based distributions (Fedora, Red Hat, etc), try this:</p>
|
||||
<pre><code>sudo yum groupinstall "Development Tools"</code></pre>
|
||||
<h3 id="aix">AIX</h3>
|
||||
<p>Please consult the AIX section of the <a href="https://wiki.openjdk.java.net/display/Build/Supported+Build+Platforms">Supported Build Platforms</a> OpenJDK Build Wiki page for details about which versions of AIX are supported.</p>
|
||||
<p>The regular builds by SAP is using AIX version 7.1, but AIX 5.3 is also supported. See the <a href="http://cr.openjdk.java.net/~simonis/ppc-aix-port">OpenJDK PowerPC Port Status Page</a> for details.</p>
|
||||
<h2 id="native-compiler-toolchain-requirements">Native Compiler (Toolchain) Requirements</h2>
|
||||
<p>Large portions of the JDK consists of native code, that needs to be compiled to be able to run on the target platform. In theory, toolchain and operating system should be independent factors, but in practice there's more or less a one-to-one correlation between target operating system and toolchain.</p>
|
||||
<table>
|
||||
@@ -373,7 +357,8 @@ CC: Sun C++ 5.13 SunOS_i386 151846-10 2015/10/30</code></pre>
|
||||
<p>If you have multiple versions of Visual Studio installed, <code>configure</code> will by default pick the latest. You can request a specific version to be used by setting <code>--with-toolchain-version</code>, e.g. <code>--with-toolchain-version=2015</code>.</p>
|
||||
<p>If you get <code>LINK: fatal error LNK1123: failure during conversion to COFF: file invalid</code> when building using Visual Studio 2010, you have encountered <a href="http://support.microsoft.com/kb/2757355">KB2757355</a>, a bug triggered by a specific installation order. However, the solution suggested by the KB article does not always resolve the problem. See <a href="https://stackoverflow.com/questions/10888391">this stackoverflow discussion</a> for other suggestions.</p>
|
||||
<h3 id="ibm-xl-cc">IBM XL C/C++</h3>
|
||||
<p>Please consult the AIX section of the <a href="https://wiki.openjdk.java.net/display/Build/Supported+Build+Platforms">Supported Build Platforms</a> OpenJDK Build Wiki page for details about which versions of XLC are supported.</p>
|
||||
<p>The regular builds by SAP is using version 12.1, described as <code>IBM XL C/C++ for AIX, V12.1 (5765-J02, 5725-C72) Version: 12.01.0000.0017</code>.</p>
|
||||
<p>See the <a href="http://cr.openjdk.java.net/~simonis/ppc-aix-port">OpenJDK PowerPC Port Status Page</a> for details.</p>
|
||||
<h2 id="boot-jdk-requirements">Boot JDK Requirements</h2>
|
||||
<p>Paradoxically, building the JDK requires a pre-existing JDK. This is called the "boot JDK". The boot JDK does not, however, have to be a JDK built directly from the source code available in the OpenJDK Community. If you are porting the JDK to a new platform, chances are that there already exists another JDK for that platform that is usable as boot JDK.</p>
|
||||
<p>The rule of thumb is that the boot JDK for building JDK major version <em>N</em> should be a JDK of major version <em>N-1</em>, so for building JDK 9 a JDK 8 would be suitable as boot JDK. However, the JDK should be able to "build itself", so an up-to-date build of the current JDK source is an acceptable alternative. If you are following the <em>N-1</em> rule, make sure you've got the latest update version, since JDK 8 GA might not be able to build JDK 9 on all platforms.</p>
|
||||
@@ -405,9 +390,9 @@ CC: Sun C++ 5.13 SunOS_i386 151846-10 2015/10/30</code></pre>
|
||||
<h3 id="x11">X11</h3>
|
||||
<p>Certain <a href="http://www.x.org/">X11</a> libraries and include files are required on Linux and Solaris.</p>
|
||||
<ul>
|
||||
<li>To install on an apt-based Linux, try running <code>sudo apt-get install libx11-dev libxext-dev libxrender-dev libxrandr-dev libxtst-dev libxt-dev</code>.</li>
|
||||
<li>To install on an rpm-based Linux, try running <code>sudo yum install libXtst-devel libXt-devel libXrender-devel libXrandr-devel libXi-devel</code>.</li>
|
||||
<li>To install on Solaris, try running <code>pkg install x11/header/x11-protocols x11/library/libice x11/library/libpthread-stubs x11/library/libsm x11/library/libx11 x11/library/libxau x11/library/libxcb x11/library/libxdmcp x11/library/libxevie x11/library/libxext x11/library/libxrender x11/library/libxrandr x11/library/libxscrnsaver x11/library/libxtst x11/library/toolkit/libxt</code>.</li>
|
||||
<li>To install on an apt-based Linux, try running <code>sudo apt-get install libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev</code>.</li>
|
||||
<li>To install on an rpm-based Linux, try running <code>sudo yum install libXtst-devel libXt-devel libXrender-devel libXi-devel</code>.</li>
|
||||
<li>To install on Solaris, try running <code>pkg install x11/header/x11-protocols x11/library/libice x11/library/libpthread-stubs x11/library/libsm x11/library/libx11 x11/library/libxau x11/library/libxcb x11/library/libxdmcp x11/library/libxevie x11/library/libxext x11/library/libxrender x11/library/libxscrnsaver x11/library/libxtst x11/library/toolkit/libxt</code>.</li>
|
||||
</ul>
|
||||
<p>Use <code>--with-x=<path></code> if <code>configure</code> does not properly locate your X11 files.</p>
|
||||
<h3 id="alsa">ALSA</h3>
|
||||
@@ -473,10 +458,6 @@ CC: Sun C++ 5.13 SunOS_i386 151846-10 2015/10/30</code></pre>
|
||||
<li><code>--with-jvm-features=<feature>[,<feature>...]</code> - Use the specified JVM features when building Hotspot. The list of features will be enabled on top of the default list. For the <code>custom</code> JVM variant, this default list is empty. A complete list of available JVM features can be found using <code>bash configure --help</code>.</li>
|
||||
<li><code>--with-target-bits=<bits></code> - Create a target binary suitable for running on a <code><bits></code> platform. Use this to create 32-bit output on a 64-bit build platform, instead of doing a full cross-compile. (This is known as a <em>reduced</em> build.)</li>
|
||||
</ul>
|
||||
<p>On Linux, BSD and AIX, it is possible to override where Java by default searches for runtime/JNI libraries. This can be useful in situations where there is a special shared directory for system JNI libraries. This setting can in turn be overriden at runtime by setting the <code>java.library.path</code> property.</p>
|
||||
<ul>
|
||||
<li><code>--with-jni-libpath=<path></code> - Use the specified path as a default when searching for runtime libraries.</li>
|
||||
</ul>
|
||||
<h4 id="configure-arguments-for-native-compilation">Configure Arguments for Native Compilation</h4>
|
||||
<ul>
|
||||
<li><code>--with-devkit=<path></code> - Use this devkit for compilers, tools and resources</li>
|
||||
@@ -584,47 +565,6 @@ CC: Sun C++ 5.13 SunOS_i386 151846-10 2015/10/30</code></pre>
|
||||
<p>This requires a more complex setup and build procedure. This section assumes you are familiar with cross-compiling in general, and will only deal with the particularities of cross-compiling the JDK. If you are new to cross-compiling, please see the <a href="https://en.wikipedia.org/wiki/Cross_compiler#External_links">external links at Wikipedia</a> for a good start on reading materials.</p>
|
||||
<p>Cross-compiling the JDK requires you to be able to build both for the build platform and for the target platform. The reason for the former is that we need to build and execute tools during the build process, both native tools and Java tools.</p>
|
||||
<p>If all you want to do is to compile a 32-bit version, for the same OS, on a 64-bit machine, consider using <code>--with-target-bits=32</code> instead of doing a full-blown cross-compilation. (While this surely is possible, it's a lot more work and will take much longer to build.)</p>
|
||||
<h3 id="cross-compiling-the-easy-way-with-openjdk-devkits">Cross compiling the easy way with OpenJDK devkits</h3>
|
||||
<p>The OpenJDK build system provides out-of-the box support for creating and using so called devkits. A <code>devkit</code> is basically a collection of a cross-compiling toolchain and a sysroot environment which can easily be used together with the <code>--with-devkit</code> configure option to cross compile the OpenJDK. On Linux/x86_64, the following command:</p>
|
||||
<pre><code>bash configure --with-devkit=<devkit-path> --openjdk-target=ppc64-linux-gnu && make</code></pre>
|
||||
<p>will configure and build OpenJDK for Linux/ppc64 assuming that <code><devkit-path></code> points to a Linux/x86_64 to Linux/ppc64 devkit.</p>
|
||||
<p>Devkits can be created from the <code>make/devkit</code> directory by executing:</p>
|
||||
<pre><code>make [ TARGETS="<TARGET_TRIPLET>+" ] [ BASE_OS=<OS> ] [ BASE_OS_VERSION=<VER> ]</code></pre>
|
||||
<p>where <code>TARGETS</code> contains one or more <code>TARGET_TRIPLET</code>s of the form described in <a href="https://sourceware.org/autobook/autobook/autobook_17.html">section 3.4 of the GNU Autobook</a>. If no targets are given, a native toolchain for the current platform will be created. Currently, at least the following targets are known to work:</p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr class="header">
|
||||
<th style="text-align: left;">Supported devkit targets</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="odd">
|
||||
<td style="text-align: left;">x86_64-linux-gnu</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td style="text-align: left;">aarch64-linux-gnu</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td style="text-align: left;">arm-linux-gnueabihf</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td style="text-align: left;">ppc64-linux-gnu</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td style="text-align: left;">ppc64le-linux-gnu</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td style="text-align: left;">s390x-linux-gnu</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p><code>BASE_OS</code> must be one of "OEL6" for Oracle Enterprise Linux 6 or "Fedora" (if not specified "OEL6" will be the default). If the base OS is "Fedora" the corresponding Fedora release can be specified with the help of the <code>BASE_OS_VERSION</code> option (with "27" as default version). If the build is successful, the new devkits can be found in the <code>build/devkit/result</code> subdirectory:</p>
|
||||
<pre><code>cd make/devkit
|
||||
make TARGETS="ppc64le-linux-gnu aarch64-linux-gnu" BASE_OS=Fedora BASE_OS_VERSION=21
|
||||
ls -1 ../../build/devkit/result/
|
||||
x86_64-linux-gnu-to-aarch64-linux-gnu
|
||||
x86_64-linux-gnu-to-ppc64le-linux-gnu</code></pre>
|
||||
<p>Notice that devkits are not only useful for targeting different build platforms. Because they contain the full build dependencies for a system (i.e. compiler and root file system), they can easily be used to build well-known, reliable and reproducible build environments. You can for example create and use a devkit with GCC 7.3 and a Fedora 12 sysroot environment (with glibc 2.11) on Ubuntu 14.04 (which doesn't have GCC 7.3 by default) to produce OpenJDK binaries which will run on all Linux systems with runtime libraries newer than the ones from Fedora 12 (e.g. Ubuntu 16.04, SLES 11 or RHEL 6).</p>
|
||||
<h3 id="boot-jdk-and-build-jdk">Boot JDK and Build JDK</h3>
|
||||
<p>When cross-compiling, make sure you use a boot JDK that runs on the <em>build</em> system, and not on the <em>target</em> system.</p>
|
||||
<p>To be able to build, we need a "Build JDK", which is a JDK built from the current sources (that is, the same as the end result of the entire build process), but able to run on the <em>build</em> system, and not the <em>target</em> system. (In contrast, the Boot JDK should be from an older release, e.g. JDK 8 when building JDK 9.)</p>
|
||||
@@ -649,13 +589,11 @@ x86_64-linux-gnu-to-ppc64le-linux-gnu</code></pre>
|
||||
<p>Note that alsa is needed even if you only want to build a headless JDK.</p>
|
||||
<ul>
|
||||
<li><p>Go to <a href="https://www.debian.org/distrib/packages">Debian Package Search</a> and search for the <code>libasound2</code> and <code>libasound2-dev</code> packages for your <em>target</em> system. Download them to /tmp.</p></li>
|
||||
<li>Install the libraries into the cross-compilation toolchain. For instance:</li>
|
||||
</ul>
|
||||
<li><p>Install the libraries into the cross-compilation toolchain. For instance:</p>
|
||||
<pre><code>cd /tools/gcc-linaro-arm-linux-gnueabihf-raspbian-2012.09-20120921_linux/arm-linux-gnueabihf/libc
|
||||
dpkg-deb -x /tmp/libasound2_1.0.25-4_armhf.deb .
|
||||
dpkg-deb -x /tmp/libasound2-dev_1.0.25-4_armhf.deb .</code></pre>
|
||||
<ul>
|
||||
<li>If alsa is not properly detected by <code>configure</code>, you can point it out by <code>--with-alsa</code>.</li>
|
||||
dpkg-deb -x /tmp/libasound2-dev_1.0.25-4_armhf.deb .</code></pre></li>
|
||||
<li><p>If alsa is not properly detected by <code>configure</code>, you can point it out by <code>--with-alsa</code>.</p></li>
|
||||
</ul>
|
||||
<h4 id="x11-1">X11</h4>
|
||||
<p>You will need X11 libraries suitable for your <em>target</em> system. For most cases, using Debian's pre-built libraries work fine.</p>
|
||||
@@ -673,7 +611,6 @@ dpkg-deb -x /tmp/libasound2-dev_1.0.25-4_armhf.deb .</code></pre>
|
||||
<li>libice-dev</li>
|
||||
<li>libxrender</li>
|
||||
<li>libxrender-dev</li>
|
||||
<li>libxrandr-dev</li>
|
||||
<li>libsm-dev</li>
|
||||
<li>libxt-dev</li>
|
||||
<li>libx11</li>
|
||||
@@ -697,78 +634,9 @@ cp: cannot stat `arm-linux-gnueabihf/libSM.so': No such file or directory
|
||||
cp: cannot stat `arm-linux-gnueabihf/libXt.so': No such file or directory</code></pre></li>
|
||||
<li><p>If the X11 libraries are not properly detected by <code>configure</code>, you can point them out by <code>--with-x</code>.</p></li>
|
||||
</ul>
|
||||
<h3 id="creating-and-using-sysroots-with-qemu-deboostrap">Creating And Using Sysroots With qemu-deboostrap</h3>
|
||||
<p>Fortunately, you can create sysroots for foreign architectures with tools provided by your OS. On Debian/Ubuntu systems, one could use <code>qemu-deboostrap</code> to create the <em>target</em> system chroot, which would have the native libraries and headers specific to that <em>target</em> system. After that, we can use the cross-compiler on the <em>build</em> system, pointing into chroot to get the build dependencies right. This allows building for foreign architectures with native compilation speed.</p>
|
||||
<p>For example, cross-compiling to AArch64 from x86_64 could be done like this:</p>
|
||||
<ul>
|
||||
<li>Install cross-compiler on the <em>build</em> system:</li>
|
||||
</ul>
|
||||
<pre><code>apt install g++-aarch64-linux-gnu gcc-aarch64-linux-gnu</code></pre>
|
||||
<ul>
|
||||
<li>Create chroot on the <em>build</em> system, configuring it for <em>target</em> system:</li>
|
||||
</ul>
|
||||
<pre><code>sudo qemu-debootstrap --arch=arm64 --verbose \
|
||||
--include=fakeroot,build-essential,libx11-dev,libxext-dev,libxrender-dev,libxrandr-dev,libxtst-dev,libxt-dev,libcups2-dev,libfontconfig1-dev,libasound2-dev,libfreetype6-dev,libpng12-dev \
|
||||
--resolve-deps jessie /chroots/arm64 http://httpredir.debian.org/debian/</code></pre>
|
||||
<ul>
|
||||
<li>Configure and build with newly created chroot as sysroot/toolchain-path:</li>
|
||||
</ul>
|
||||
<pre><code>CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ sh ./configure --openjdk-target=aarch64-linux-gnu --with-sysroot=/chroots/arm64/ --with-toolchain-path=/chroots/arm64/
|
||||
make images
|
||||
ls build/linux-aarch64-normal-server-release/</code></pre>
|
||||
<p>The build does not create new files in that chroot, so it can be reused for multiple builds without additional cleanup.</p>
|
||||
<p>Architectures that are known to successfully cross-compile like this are:</p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr class="header">
|
||||
<th style="text-align: left;">Target</th>
|
||||
<th style="text-align: left;"><code>CC</code></th>
|
||||
<th style="text-align: left;"><code>CXX</code></th>
|
||||
<th style="text-align: left;"><code>--arch=...</code></th>
|
||||
<th style="text-align: left;"><code>--openjdk-target=...</code></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="odd">
|
||||
<td style="text-align: left;">x86</td>
|
||||
<td style="text-align: left;">default</td>
|
||||
<td style="text-align: left;">default</td>
|
||||
<td style="text-align: left;">i386</td>
|
||||
<td style="text-align: left;">i386-linux-gnu</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td style="text-align: left;">armhf</td>
|
||||
<td style="text-align: left;">gcc-arm-linux-gnueabihf</td>
|
||||
<td style="text-align: left;">g++-arm-linux-gnueabihf</td>
|
||||
<td style="text-align: left;">armhf</td>
|
||||
<td style="text-align: left;">arm-linux-gnueabihf</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td style="text-align: left;">aarch64</td>
|
||||
<td style="text-align: left;">gcc-aarch64-linux-gnu</td>
|
||||
<td style="text-align: left;">g++-aarch64-linux-gnu</td>
|
||||
<td style="text-align: left;">arm64</td>
|
||||
<td style="text-align: left;">aarch64-linux-gnu</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td style="text-align: left;">ppc64el</td>
|
||||
<td style="text-align: left;">gcc-powerpc64le-linux-gnu</td>
|
||||
<td style="text-align: left;">g++-powerpc64le-linux-gnu</td>
|
||||
<td style="text-align: left;">ppc64el</td>
|
||||
<td style="text-align: left;">powerpc64le-linux-gnu</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td style="text-align: left;">s390x</td>
|
||||
<td style="text-align: left;">gcc-s390x-linux-gnu</td>
|
||||
<td style="text-align: left;">g++-s390x-linux-gnu</td>
|
||||
<td style="text-align: left;">s390x</td>
|
||||
<td style="text-align: left;">s390x-linux-gnu</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>Additional architectures might be supported by Debian/Ubuntu Ports.</p>
|
||||
<h3 id="building-for-armaarch64">Building for ARM/aarch64</h3>
|
||||
<p>A common cross-compilation target is the ARM CPU. When building for ARM, it is useful to set the ABI profile. A number of pre-defined ABI profiles are available using <code>--with-abi-profile</code>: arm-vfp-sflt, arm-vfp-hflt, arm-sflt, armv5-vfp-sflt, armv6-vfp-hflt. Note that soft-float ABIs are no longer properly supported by the JDK.</p>
|
||||
<p>The JDK contains two different ports for the aarch64 platform, one is the original aarch64 port from the <a href="http://openjdk.java.net/projects/aarch64-port">AArch64 Port Project</a> and one is a 64-bit version of the Oracle contributed ARM port. When targeting aarch64, by the default the original aarch64 port is used. To select the Oracle ARM 64 port, use <code>--with-cpu-port=arm64</code>. Also set the corresponding value (<code>aarch64</code> or <code>arm64</code>) to --with-abi-profile, to ensure a consistent build.</p>
|
||||
<h3 id="verifying-the-build">Verifying the Build</h3>
|
||||
<p>The build will end up in a directory named like <code>build/linux-arm-normal-server-release</code>.</p>
|
||||
<p>Inside this build output directory, the <code>images/jdk</code> will contain the newly built JDK, for your <em>target</em> system.</p>
|
||||
@@ -842,11 +710,11 @@ Hint: If caused by a warning, try configure --disable-warnings-as-errors.</code>
|
||||
<p>Verify that the summary at the end looks correct. Are you indeed using the Boot JDK and native toolchain that you expect?</p>
|
||||
<p>By default, the JDK has a strict approach where warnings from the compiler is considered errors which fail the build. For very new or very old compiler versions, this can trigger new classes of warnings, which thus fails the build. Run <code>configure</code> with <code>--disable-warnings-as-errors</code> to turn of this behavior. (The warnings will still show, but not make the build fail.)</p>
|
||||
<h4 id="problems-with-incremental-rebuilds">Problems with Incremental Rebuilds</h4>
|
||||
<p>Incremental rebuilds mean that when you modify part of the product, only the affected parts get rebuilt. While this works great in most cases, and significantly speed up the development process, from time to time complex interdependencies will result in an incorrect build result. This is the most common cause for unexpected build problems.</p>
|
||||
<p>Incremental rebuilds mean that when you modify part of the product, only the affected parts get rebuilt. While this works great in most cases, and significantly speed up the development process, from time to time complex interdependencies will result in an incorrect build result. This is the most common cause for unexpected build problems, together with inconsistencies between the different Mercurial repositories in the forest.</p>
|
||||
<p>Here are a suggested list of things to try if you are having unexpected build problems. Each step requires more time than the one before, so try them in order. Most issues will be solved at step 1 or 2.</p>
|
||||
<ol type="1">
|
||||
<li><p>Make sure your repository is up-to-date</p>
|
||||
<p>Run <code>hg pull -u</code> to make sure you have the latest changes.</p></li>
|
||||
<li><p>Make sure your forest is up-to-date</p>
|
||||
<p>Run <code>bash get_source.sh</code> to make sure you have the latest version of all repositories.</p></li>
|
||||
<li><p>Clean build results</p>
|
||||
<p>The simplest way to fix incremental rebuild issues is to run <code>make clean</code>. This will remove all build results, but not the configuration or any build system support artifacts. In most cases, this will solve build errors resulting from incremental build mismatches.</p></li>
|
||||
<li><p>Completely clean the build directory.</p>
|
||||
@@ -855,8 +723,8 @@ Hint: If caused by a warning, try configure --disable-warnings-as-errors.</code>
|
||||
make dist-clean
|
||||
bash configure $(cat current-configuration)
|
||||
make</code></pre></li>
|
||||
<li><p>Re-clone the Mercurial repository</p>
|
||||
<p>Sometimes the Mercurial repository gets in a state that causes the product to be un-buildable. In such a case, the simplest solution is often the "sledgehammer approach": delete the entire repository, and re-clone it. If you have local changes, save them first to a different location using <code>hg export</code>.</p></li>
|
||||
<li><p>Re-clone the Mercurial forest</p>
|
||||
<p>Sometimes the Mercurial repositories themselves gets in a state that causes the product to be un-buildable. In such a case, the simplest solution is often the "sledgehammer approach": delete the entire forest, and re-clone it. If you have local changes, save them first to a different location using <code>hg export</code>.</p></li>
|
||||
</ol>
|
||||
<h3 id="specific-build-issues">Specific Build Issues</h3>
|
||||
<h4 id="clock-skew">Clock Skew</h4>
|
||||
@@ -878,7 +746,7 @@ spawn failed</code></pre>
|
||||
<p>If none of the suggestions in this document helps you, or if you find what you believe is a bug in the build system, please contact the Build Group by sending a mail to <a href="mailto:build-dev@openjdk.java.net">build-dev@openjdk.java.net</a>. Please include the relevant parts of the configure and/or build log.</p>
|
||||
<p>If you need general help or advice about developing for the JDK, you can also contact the Adoption Group. See the section on <a href="#contributing-to-openjdk">Contributing to OpenJDK</a> for more information.</p>
|
||||
<h2 id="hints-and-suggestions-for-advanced-users">Hints and Suggestions for Advanced Users</h2>
|
||||
<h3 id="setting-up-a-repository-for-pushing-changes-defpath">Setting Up a Repository for Pushing Changes (defpath)</h3>
|
||||
<h3 id="setting-up-a-forest-for-pushing-changes-defpath">Setting Up a Forest for Pushing Changes (defpath)</h3>
|
||||
<p>To help you prepare a proper push path for a Mercurial repository, there exists a useful tool known as <a href="http://openjdk.java.net/projects/code-tools/defpath">defpath</a>. It will help you setup a proper push path for pushing changes to the JDK.</p>
|
||||
<p>Install the extension by cloning <code>http://hg.openjdk.java.net/code-tools/defpath</code> and updating your <code>.hgrc</code> file. Here's one way to do this:</p>
|
||||
<pre><code>cd ~
|
||||
@@ -891,6 +759,7 @@ defpath=~/hg-ext/defpath/defpath.py
|
||||
EOT</code></pre>
|
||||
<p>You can now setup a proper push path using:</p>
|
||||
<pre><code>hg defpath -d -u <your OpenJDK username></code></pre>
|
||||
<p>If you also have the <code>trees</code> extension installed in Mercurial, you will automatically get a <code>tdefpath</code> command, which is even more useful. By running <code>hg tdefpath -du <username></code> in the top repository of your forest, all repos will get setup automatically. This is the recommended usage.</p>
|
||||
<h3 id="bash-completion">Bash Completion</h3>
|
||||
<p>The <code>configure</code> and <code>make</code> commands tries to play nice with bash command-line completion (using <code><tab></code> or <code><tab><tab></code>). To use this functionality, make sure you enable completion in your <code>~/.bashrc</code> (see instructions for bash in your operating system).</p>
|
||||
<p>Make completion will work out of the box, and will complete valid make targets. For instance, typing <code>make jdk-i<tab></code> will complete to <code>make jdk-image</code>.</p>
|
||||
@@ -908,10 +777,10 @@ chmod +x /tmp/configure
|
||||
sudo mv /tmp/configure /usr/local/bin</code></pre>
|
||||
<p>Now <code>configure --en<tab>-dt<tab></code> will result in <code>configure --enable-dtrace</code>.</p>
|
||||
<h3 id="using-multiple-configurations">Using Multiple Configurations</h3>
|
||||
<p>You can have multiple configurations for a single source repository. When you create a new configuration, run <code>configure --with-conf-name=<name></code> to create a configuration with the name <code><name></code>. Alternatively, you can create a directory under <code>build</code> and run <code>configure</code> from there, e.g. <code>mkdir build/<name> && cd build/<name> && bash ../../configure</code>.</p>
|
||||
<p>You can have multiple configurations for a single source forest. When you create a new configuration, run <code>configure --with-conf-name=<name></code> to create a configuration with the name <code><name></code>. Alternatively, you can create a directory under <code>build</code> and run <code>configure</code> from there, e.g. <code>mkdir build/<name> && cd build/<name> && bash ../../configure</code>.</p>
|
||||
<p>Then you can build that configuration using <code>make CONF_NAME=<name></code> or <code>make CONF=<pattern></code>, where <code><pattern></code> is a substring matching one or several configurations, e.g. <code>CONF=debug</code>. The special empty pattern (<code>CONF=</code>) will match <em>all</em> available configuration, so <code>make CONF= hotspot</code> will build the <code>hotspot</code> target for all configurations. Alternatively, you can execute <code>make</code> in the configuration directory, e.g. <code>cd build/<name> && make</code>.</p>
|
||||
<h3 id="handling-reconfigurations">Handling Reconfigurations</h3>
|
||||
<p>If you update the repository and part of the configure script has changed, the build system will force you to re-run <code>configure</code>.</p>
|
||||
<p>If you update the forest and part of the configure script has changed, the build system will force you to re-run <code>configure</code>.</p>
|
||||
<p>Most of the time, you will be fine by running <code>configure</code> again with the same arguments as the last time, which can easily be performed by <code>make reconfigure</code>. To simplify this, you can use the <code>CONF_CHECK</code> make control variable, either as <code>make CONF_CHECK=auto</code>, or by setting an environment variable. For instance, if you add <code>export CONF_CHECK=auto</code> to your <code>.bashrc</code> file, <code>make</code> will always run <code>reconfigure</code> automatically whenever the configure script has changed.</p>
|
||||
<p>You can also use <code>CONF_CHECK=ignore</code> to skip the check for a needed configure update. This might speed up the build, but comes at the risk of an incorrect build result. This is only recommended if you know what you're doing.</p>
|
||||
<p>From time to time, you will also need to modify the command line to <code>configure</code> due to changes. Use <code>make print-configure</code> to show the command line used for your current configuration.</p>
|
||||
|
||||
225
doc/building.md
@@ -48,7 +48,7 @@ JDK.
|
||||
Make sure you are getting the correct version. As of JDK 10, the source is no
|
||||
longer split into separate repositories so you only need to clone one single
|
||||
repository. At the [OpenJDK Mercurial server](http://hg.openjdk.java.net/) you
|
||||
can see a list of all available repositories. If you want to build an older version,
|
||||
can see a list of all available forests. If you want to build an older version,
|
||||
e.g. JDK 8, it is recommended that you get the `jdk8u` forest, which contains
|
||||
incremental updates, instead of the `jdk8` forest, which was frozen at JDK 8 GA.
|
||||
|
||||
@@ -75,8 +75,8 @@ on where and how to check out the source code.
|
||||
network share for the source code, see below for suggestions on how to keep
|
||||
the build artifacts on a local disk.
|
||||
|
||||
* On Windows, if using [Cygwin](#cygwin), extra care must be taken to make sure
|
||||
the environment is consistent. It is recommended that you follow this
|
||||
* On Windows, extra care must be taken to make sure the [Cygwin](#cygwin)
|
||||
environment is consistent. It is recommended that you follow this
|
||||
procedure:
|
||||
|
||||
* Create the directory that is going to contain the top directory of the
|
||||
@@ -120,16 +120,7 @@ At a minimum, a machine with 4 cores is advisable, as well as 4 GB of RAM. (The
|
||||
more cores to use, the more memory you need.) At least 8 GB of free disk space
|
||||
is required.
|
||||
|
||||
### Building on aarch64
|
||||
|
||||
At a minimum, a machine with 8 cores is advisable, as well as 8 GB of RAM.
|
||||
(The more cores to use, the more memory you need.) At least 6 GB of free disk
|
||||
space is required.
|
||||
|
||||
If you do not have access to sufficiently powerful hardware, it is also
|
||||
possible to use [cross-compiling](#cross-compiling).
|
||||
|
||||
### Building on 32-bit arm
|
||||
### Building on arm/aarch64
|
||||
|
||||
This is not recommended. Instead, see the section on [Cross-compiling](
|
||||
#cross-compiling).
|
||||
@@ -174,10 +165,10 @@ On Windows, it is important that you pay attention to the instructions in the
|
||||
|
||||
Windows is the only non-POSIX OS supported by the JDK, and as such, requires
|
||||
some extra care. A POSIX support layer is required to build on Windows.
|
||||
Currently, the only supported such layers are Cygwin and Windows Subsystem for
|
||||
Linux (WSL). (Msys is no longer supported due to a too old bash; msys2 would
|
||||
likely be possible to support in a future version but that would require effort
|
||||
to implement.)
|
||||
Currently, the only supported such layer is Cygwin. (Msys is no longer
|
||||
supported due to a too old bash; msys2 and the new Windows Subsystem for Linux
|
||||
(WSL) would likely be possible to support in a future version but that would
|
||||
require effort to implement.)
|
||||
|
||||
Internally in the build system, all paths are represented as Unix-style paths,
|
||||
e.g. `/cygdrive/c/hg/jdk9/Makefile` rather than `C:\hg\jdk9\Makefile`. This
|
||||
@@ -188,7 +179,7 @@ on [Fixpath](#fixpath).
|
||||
|
||||
#### Cygwin
|
||||
|
||||
A functioning [Cygwin](http://www.cygwin.com/) environment is required for
|
||||
A functioning [Cygwin](http://www.cygwin.com/) environment is thus required for
|
||||
building the JDK on Windows. If you have a 64-bit OS, we strongly recommend
|
||||
using the 64-bit version of Cygwin.
|
||||
|
||||
@@ -198,7 +189,7 @@ that whenever you add or update a package in Cygwin, you might (inadvertently)
|
||||
update tools that are used by the JDK build process, and that can cause
|
||||
unexpected build problems.
|
||||
|
||||
The JDK requires GNU Make 4.0 or greater in Cygwin. This is usually not a
|
||||
The JDK requires GNU Make 4.0 or greater on Windows. This is usually not a
|
||||
problem, since Cygwin currently only distributes GNU Make at a version above
|
||||
4.0.
|
||||
|
||||
@@ -221,30 +212,6 @@ please check the Cygwin FAQ on the ["BLODA" list](
|
||||
https://cygwin.com/faq/faq.html#faq.using.bloda) and the section on [fork()
|
||||
failures](https://cygwin.com/faq/faq.html#faq.using.fixing-fork-failures).
|
||||
|
||||
#### Windows Subsystem for Linux (WSL)
|
||||
|
||||
Windows 10 1809 or newer is supported due to a dependency on the wslpath utility
|
||||
and support for environment variable sharing through WSLENV. Version 1803 can
|
||||
work but intermittent build failures have been observed.
|
||||
|
||||
It's possible to build both Windows and Linux binaries from WSL. To build
|
||||
Windows binaries, you must use a Windows boot JDK (located in a
|
||||
Windows-accessible directory). To build Linux binaries, you must use a Linux
|
||||
boot JDK. The default behavior is to build for Windows. To build for Linux, pass
|
||||
`--build=x86_64-unknown-linux-gnu --host=x86_64-unknown-linux-gnu` to
|
||||
`configure`.
|
||||
|
||||
If building Windows binaries, the source code must be located in a Windows-
|
||||
accessible directory. This is because Windows executables (such as Visual Studio
|
||||
and the boot JDK) must be able to access the source code. Also, the drive where
|
||||
the source is stored must be mounted as case-insensitive by changing either
|
||||
/etc/fstab or /etc/wsl.conf in WSL. Individual directories may be corrected
|
||||
using the fsutil tool in case the source was cloned before changing the mount
|
||||
options.
|
||||
|
||||
Note that while it's possible to build on WSL, testing is still not fully
|
||||
supported.
|
||||
|
||||
### Solaris
|
||||
|
||||
See `make/devkit/solaris11.1-package-list.txt` for a list of recommended
|
||||
@@ -295,9 +262,9 @@ sudo yum groupinstall "Development Tools"
|
||||
|
||||
### AIX
|
||||
|
||||
Please consult the AIX section of the [Supported Build Platforms](
|
||||
https://wiki.openjdk.java.net/display/Build/Supported+Build+Platforms) OpenJDK
|
||||
Build Wiki page for details about which versions of AIX are supported.
|
||||
The regular builds by SAP is using AIX version 7.1, but AIX 5.3 is also
|
||||
supported. See the [OpenJDK PowerPC Port Status Page](
|
||||
http://cr.openjdk.java.net/~simonis/ppc-aix-port) for details.
|
||||
|
||||
## Native Compiler (Toolchain) Requirements
|
||||
|
||||
@@ -419,10 +386,11 @@ https://stackoverflow.com/questions/10888391) for other suggestions.
|
||||
|
||||
### IBM XL C/C++
|
||||
|
||||
Please consult the AIX section of the [Supported Build Platforms](
|
||||
https://wiki.openjdk.java.net/display/Build/Supported+Build+Platforms) OpenJDK
|
||||
Build Wiki page for details about which versions of XLC are supported.
|
||||
The regular builds by SAP is using version 12.1, described as `IBM XL C/C++ for
|
||||
AIX, V12.1 (5765-J02, 5725-C72) Version: 12.01.0000.0017`.
|
||||
|
||||
See the [OpenJDK PowerPC Port Status Page](
|
||||
http://cr.openjdk.java.net/~simonis/ppc-aix-port) for details.
|
||||
|
||||
## Boot JDK Requirements
|
||||
|
||||
@@ -511,15 +479,15 @@ Certain [X11](http://www.x.org/) libraries and include files are required on
|
||||
Linux and Solaris.
|
||||
|
||||
* To install on an apt-based Linux, try running `sudo apt-get install
|
||||
libx11-dev libxext-dev libxrender-dev libxrandr-dev libxtst-dev libxt-dev`.
|
||||
libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev`.
|
||||
* To install on an rpm-based Linux, try running `sudo yum install
|
||||
libXtst-devel libXt-devel libXrender-devel libXrandr-devel libXi-devel`.
|
||||
libXtst-devel libXt-devel libXrender-devel libXi-devel`.
|
||||
* To install on Solaris, try running `pkg install x11/header/x11-protocols
|
||||
x11/library/libice x11/library/libpthread-stubs x11/library/libsm
|
||||
x11/library/libx11 x11/library/libxau x11/library/libxcb
|
||||
x11/library/libxdmcp x11/library/libxevie x11/library/libxext
|
||||
x11/library/libxrender x11/library/libxrandr x11/library/libxscrnsaver
|
||||
x11/library/libxtst x11/library/toolkit/libxt`.
|
||||
x11/library/libxrender x11/library/libxscrnsaver x11/library/libxtst
|
||||
x11/library/toolkit/libxt`.
|
||||
|
||||
Use `--with-x=<path>` if `configure` does not properly locate your X11 files.
|
||||
|
||||
@@ -685,14 +653,6 @@ features, use `bash configure --help=short` instead.)
|
||||
platform, instead of doing a full cross-compile. (This is known as a
|
||||
*reduced* build.)
|
||||
|
||||
On Linux, BSD and AIX, it is possible to override where Java by default
|
||||
searches for runtime/JNI libraries. This can be useful in situations where
|
||||
there is a special shared directory for system JNI libraries. This setting
|
||||
can in turn be overriden at runtime by setting the `java.library.path` property.
|
||||
|
||||
* `--with-jni-libpath=<path>` - Use the specified path as a default
|
||||
when searching for runtime libraries.
|
||||
|
||||
#### Configure Arguments for Native Compilation
|
||||
|
||||
* `--with-devkit=<path>` - Use this devkit for compilers, tools and resources
|
||||
@@ -915,64 +875,6 @@ If all you want to do is to compile a 32-bit version, for the same OS, on a
|
||||
full-blown cross-compilation. (While this surely is possible, it's a lot more
|
||||
work and will take much longer to build.)
|
||||
|
||||
### Cross compiling the easy way with OpenJDK devkits
|
||||
|
||||
The OpenJDK build system provides out-of-the box support for creating and using
|
||||
so called devkits. A `devkit` is basically a collection of a cross-compiling
|
||||
toolchain and a sysroot environment which can easily be used together with the
|
||||
`--with-devkit` configure option to cross compile the OpenJDK. On Linux/x86_64,
|
||||
the following command:
|
||||
```
|
||||
bash configure --with-devkit=<devkit-path> --openjdk-target=ppc64-linux-gnu && make
|
||||
```
|
||||
|
||||
will configure and build OpenJDK for Linux/ppc64 assuming that `<devkit-path>`
|
||||
points to a Linux/x86_64 to Linux/ppc64 devkit.
|
||||
|
||||
Devkits can be created from the `make/devkit` directory by executing:
|
||||
```
|
||||
make [ TARGETS="<TARGET_TRIPLET>+" ] [ BASE_OS=<OS> ] [ BASE_OS_VERSION=<VER> ]
|
||||
```
|
||||
|
||||
where `TARGETS` contains one or more `TARGET_TRIPLET`s of the form
|
||||
described in [section 3.4 of the GNU Autobook](
|
||||
https://sourceware.org/autobook/autobook/autobook_17.html). If no
|
||||
targets are given, a native toolchain for the current platform will be
|
||||
created. Currently, at least the following targets are known to work:
|
||||
|
||||
Supported devkit targets
|
||||
-------------------------
|
||||
x86_64-linux-gnu
|
||||
aarch64-linux-gnu
|
||||
arm-linux-gnueabihf
|
||||
ppc64-linux-gnu
|
||||
ppc64le-linux-gnu
|
||||
s390x-linux-gnu
|
||||
|
||||
`BASE_OS` must be one of "OEL6" for Oracle Enterprise Linux 6 or
|
||||
"Fedora" (if not specified "OEL6" will be the default). If the base OS
|
||||
is "Fedora" the corresponding Fedora release can be specified with the
|
||||
help of the `BASE_OS_VERSION` option (with "27" as default version).
|
||||
If the build is successful, the new devkits can be found in the
|
||||
`build/devkit/result` subdirectory:
|
||||
```
|
||||
cd make/devkit
|
||||
make TARGETS="ppc64le-linux-gnu aarch64-linux-gnu" BASE_OS=Fedora BASE_OS_VERSION=21
|
||||
ls -1 ../../build/devkit/result/
|
||||
x86_64-linux-gnu-to-aarch64-linux-gnu
|
||||
x86_64-linux-gnu-to-ppc64le-linux-gnu
|
||||
```
|
||||
|
||||
Notice that devkits are not only useful for targeting different build
|
||||
platforms. Because they contain the full build dependencies for a
|
||||
system (i.e. compiler and root file system), they can easily be used
|
||||
to build well-known, reliable and reproducible build environments. You
|
||||
can for example create and use a devkit with GCC 7.3 and a Fedora 12
|
||||
sysroot environment (with glibc 2.11) on Ubuntu 14.04 (which doesn't
|
||||
have GCC 7.3 by default) to produce OpenJDK binaries which will run on
|
||||
all Linux systems with runtime libraries newer than the ones from
|
||||
Fedora 12 (e.g. Ubuntu 16.04, SLES 11 or RHEL 6).
|
||||
|
||||
### Boot JDK and Build JDK
|
||||
|
||||
When cross-compiling, make sure you use a boot JDK that runs on the *build*
|
||||
@@ -1085,7 +987,6 @@ Note that X11 is needed even if you only want to build a headless JDK.
|
||||
* libice-dev
|
||||
* libxrender
|
||||
* libxrender-dev
|
||||
* libxrandr-dev
|
||||
* libsm-dev
|
||||
* libxt-dev
|
||||
* libx11
|
||||
@@ -1117,51 +1018,6 @@ Note that X11 is needed even if you only want to build a headless JDK.
|
||||
* If the X11 libraries are not properly detected by `configure`, you can
|
||||
point them out by `--with-x`.
|
||||
|
||||
### Creating And Using Sysroots With qemu-deboostrap
|
||||
|
||||
Fortunately, you can create sysroots for foreign architectures with tools
|
||||
provided by your OS. On Debian/Ubuntu systems, one could use `qemu-deboostrap` to
|
||||
create the *target* system chroot, which would have the native libraries and headers
|
||||
specific to that *target* system. After that, we can use the cross-compiler on the *build*
|
||||
system, pointing into chroot to get the build dependencies right. This allows building
|
||||
for foreign architectures with native compilation speed.
|
||||
|
||||
For example, cross-compiling to AArch64 from x86_64 could be done like this:
|
||||
|
||||
* Install cross-compiler on the *build* system:
|
||||
```
|
||||
apt install g++-aarch64-linux-gnu gcc-aarch64-linux-gnu
|
||||
```
|
||||
|
||||
* Create chroot on the *build* system, configuring it for *target* system:
|
||||
```
|
||||
sudo qemu-debootstrap --arch=arm64 --verbose \
|
||||
--include=fakeroot,build-essential,libx11-dev,libxext-dev,libxrender-dev,libxrandr-dev,libxtst-dev,libxt-dev,libcups2-dev,libfontconfig1-dev,libasound2-dev,libfreetype6-dev,libpng12-dev \
|
||||
--resolve-deps jessie /chroots/arm64 http://httpredir.debian.org/debian/
|
||||
```
|
||||
|
||||
* Configure and build with newly created chroot as sysroot/toolchain-path:
|
||||
```
|
||||
CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ sh ./configure --openjdk-target=aarch64-linux-gnu --with-sysroot=/chroots/arm64/ --with-toolchain-path=/chroots/arm64/
|
||||
make images
|
||||
ls build/linux-aarch64-normal-server-release/
|
||||
```
|
||||
|
||||
The build does not create new files in that chroot, so it can be reused for multiple builds
|
||||
without additional cleanup.
|
||||
|
||||
Architectures that are known to successfully cross-compile like this are:
|
||||
|
||||
Target `CC` `CXX` `--arch=...` `--openjdk-target=...`
|
||||
------------ ------------------------- --------------------------- ------------- -----------------------
|
||||
x86 default default i386 i386-linux-gnu
|
||||
armhf gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf armhf arm-linux-gnueabihf
|
||||
aarch64 gcc-aarch64-linux-gnu g++-aarch64-linux-gnu arm64 aarch64-linux-gnu
|
||||
ppc64el gcc-powerpc64le-linux-gnu g++-powerpc64le-linux-gnu ppc64el powerpc64le-linux-gnu
|
||||
s390x gcc-s390x-linux-gnu g++-s390x-linux-gnu s390x s390x-linux-gnu
|
||||
|
||||
Additional architectures might be supported by Debian/Ubuntu Ports.
|
||||
|
||||
### Building for ARM/aarch64
|
||||
|
||||
A common cross-compilation target is the ARM CPU. When building for ARM, it is
|
||||
@@ -1170,6 +1026,14 @@ available using `--with-abi-profile`: arm-vfp-sflt, arm-vfp-hflt, arm-sflt,
|
||||
armv5-vfp-sflt, armv6-vfp-hflt. Note that soft-float ABIs are no longer
|
||||
properly supported by the JDK.
|
||||
|
||||
The JDK contains two different ports for the aarch64 platform, one is the
|
||||
original aarch64 port from the [AArch64 Port Project](
|
||||
http://openjdk.java.net/projects/aarch64-port) and one is a 64-bit version of
|
||||
the Oracle contributed ARM port. When targeting aarch64, by the default the
|
||||
original aarch64 port is used. To select the Oracle ARM 64 port, use
|
||||
`--with-cpu-port=arm64`. Also set the corresponding value (`aarch64` or
|
||||
`arm64`) to --with-abi-profile, to ensure a consistent build.
|
||||
|
||||
### Verifying the Build
|
||||
|
||||
The build will end up in a directory named like
|
||||
@@ -1391,15 +1255,17 @@ Incremental rebuilds mean that when you modify part of the product, only the
|
||||
affected parts get rebuilt. While this works great in most cases, and
|
||||
significantly speed up the development process, from time to time complex
|
||||
interdependencies will result in an incorrect build result. This is the most
|
||||
common cause for unexpected build problems.
|
||||
common cause for unexpected build problems, together with inconsistencies
|
||||
between the different Mercurial repositories in the forest.
|
||||
|
||||
Here are a suggested list of things to try if you are having unexpected build
|
||||
problems. Each step requires more time than the one before, so try them in
|
||||
order. Most issues will be solved at step 1 or 2.
|
||||
|
||||
1. Make sure your repository is up-to-date
|
||||
1. Make sure your forest is up-to-date
|
||||
|
||||
Run `hg pull -u` to make sure you have the latest changes.
|
||||
Run `bash get_source.sh` to make sure you have the latest version of all
|
||||
repositories.
|
||||
|
||||
2. Clean build results
|
||||
|
||||
@@ -1424,13 +1290,13 @@ order. Most issues will be solved at step 1 or 2.
|
||||
make
|
||||
```
|
||||
|
||||
4. Re-clone the Mercurial repository
|
||||
4. Re-clone the Mercurial forest
|
||||
|
||||
Sometimes the Mercurial repository gets in a state that causes the product
|
||||
to be un-buildable. In such a case, the simplest solution is often the
|
||||
"sledgehammer approach": delete the entire repository, and re-clone it.
|
||||
If you have local changes, save them first to a different location using
|
||||
`hg export`.
|
||||
Sometimes the Mercurial repositories themselves gets in a state that causes
|
||||
the product to be un-buildable. In such a case, the simplest solution is
|
||||
often the "sledgehammer approach": delete the entire forest, and re-clone
|
||||
it. If you have local changes, save them first to a different location
|
||||
using `hg export`.
|
||||
|
||||
### Specific Build Issues
|
||||
|
||||
@@ -1481,7 +1347,7 @@ contact the Adoption Group. See the section on [Contributing to OpenJDK](
|
||||
|
||||
## Hints and Suggestions for Advanced Users
|
||||
|
||||
### Setting Up a Repository for Pushing Changes (defpath)
|
||||
### Setting Up a Forest for Pushing Changes (defpath)
|
||||
|
||||
To help you prepare a proper push path for a Mercurial repository, there exists
|
||||
a useful tool known as [defpath](
|
||||
@@ -1508,6 +1374,11 @@ You can now setup a proper push path using:
|
||||
hg defpath -d -u <your OpenJDK username>
|
||||
```
|
||||
|
||||
If you also have the `trees` extension installed in Mercurial, you will
|
||||
automatically get a `tdefpath` command, which is even more useful. By running
|
||||
`hg tdefpath -du <username>` in the top repository of your forest, all repos
|
||||
will get setup automatically. This is the recommended usage.
|
||||
|
||||
### Bash Completion
|
||||
|
||||
The `configure` and `make` commands tries to play nice with bash command-line
|
||||
@@ -1542,7 +1413,7 @@ Now `configure --en<tab>-dt<tab>` will result in `configure --enable-dtrace`.
|
||||
|
||||
### Using Multiple Configurations
|
||||
|
||||
You can have multiple configurations for a single source repository. When you
|
||||
You can have multiple configurations for a single source forest. When you
|
||||
create a new configuration, run `configure --with-conf-name=<name>` to create a
|
||||
configuration with the name `<name>`. Alternatively, you can create a directory
|
||||
under `build` and run `configure` from there, e.g. `mkdir build/<name> && cd
|
||||
@@ -1557,7 +1428,7 @@ in the configuration directory, e.g. `cd build/<name> && make`.
|
||||
|
||||
### Handling Reconfigurations
|
||||
|
||||
If you update the repository and part of the configure script has changed, the
|
||||
If you update the forest and part of the configure script has changed, the
|
||||
build system will force you to re-run `configure`.
|
||||
|
||||
Most of the time, you will be fine by running `configure` again with the same
|
||||
|
||||
121
doc/testing.html
@@ -1,11 +1,16 @@
|
||||
<!DOCTYPE html>
|
||||
<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">
|
||||
<meta charset="utf-8" />
|
||||
<meta name="generator" content="pandoc" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
||||
<title>Testing the JDK</title>
|
||||
<style type="text/css">code{white-space: pre;}</style>
|
||||
<style type="text/css">
|
||||
code{white-space: pre-wrap;}
|
||||
span.smallcaps{font-variant: small-caps;}
|
||||
span.underline{text-decoration: underline;}
|
||||
div.column{display: inline-block; vertical-align: top; width: 50%;}
|
||||
</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>
|
||||
@@ -18,43 +23,36 @@
|
||||
</header>
|
||||
<nav id="TOC">
|
||||
<ul>
|
||||
<li><a href="#using-make-test-the-run-test-framework">Using "make test" (the run-test framework)</a><ul>
|
||||
<li><a href="#using-the-run-test-framework">Using the run-test framework</a><ul>
|
||||
<li><a href="#configuration">Configuration</a></li>
|
||||
</ul></li>
|
||||
<li><a href="#test-selection">Test selection</a><ul>
|
||||
<li><a href="#jtreg">JTReg</a></li>
|
||||
<li><a href="#gtest">Gtest</a></li>
|
||||
<li><a href="#microbenchmarks">Microbenchmarks</a></li>
|
||||
<li><a href="#special-tests">Special tests</a></li>
|
||||
</ul></li>
|
||||
<li><a href="#test-results-and-summary">Test results and summary</a></li>
|
||||
<li><a href="#test-suite-control">Test suite control</a><ul>
|
||||
<li><a href="#general-keywords-test_opts">General keywords (TEST_OPTS)</a></li>
|
||||
<li><a href="#jtreg-keywords">JTReg keywords</a></li>
|
||||
<li><a href="#gtest-keywords">Gtest keywords</a></li>
|
||||
<li><a href="#microbenchmark-keywords">Microbenchmark keywords</a></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
</nav>
|
||||
<h2 id="using-make-test-the-run-test-framework">Using "make test" (the run-test framework)</h2>
|
||||
<h2 id="using-the-run-test-framework">Using the run-test framework</h2>
|
||||
<p>This new way of running tests is developer-centric. It assumes that you have built a JDK locally and want to test it. Running common test targets is simple, and more complex ad-hoc combination of tests is possible. The user interface is forgiving, and clearly report errors it cannot resolve.</p>
|
||||
<p>The main target <code>test</code> uses the jdk-image as the tested product. There is also an alternate target <code>exploded-test</code> that uses the exploded image instead. Not all tests will run successfully on the exploded image, but using this target can greatly improve rebuild times for certain workflows.</p>
|
||||
<p>Previously, <code>make test</code> was used invoke an old system for running test, and <code>make run-test</code> was used for the new test framework. For backward compatibility with scripts and muscle memory, <code>run-test</code> (and variants like <code>exploded-run-test</code> or <code>run-test-tier1</code>) are kept as aliases. The old system can still be accessed for some time using <code>cd test && make</code>.</p>
|
||||
<p>The main target “run-test” uses the jdk-image as the tested product. There is also an alternate target “exploded-run-test” that uses the exploded image instead. Not all tests will run successfully on the exploded image, but using this target can greatly improve rebuild times for certain workflows.</p>
|
||||
<p>Some example command-lines:</p>
|
||||
<pre><code>$ make test-tier1
|
||||
$ make test-jdk_lang JTREG="JOBS=8"
|
||||
$ make test TEST=jdk_lang
|
||||
$ make test-only TEST="gtest:LogTagSet gtest:LogTagSetDescriptions" GTEST="REPEAT=-1"
|
||||
$ make test TEST="hotspot:hotspot_gc" JTREG="JOBS=1;TIMEOUT=8;VM_OPTIONS=-XshowSettings -Xlog:gc+ref=debug"
|
||||
$ make test TEST="jtreg:test/hotspot:hotspot_gc test/hotspot/jtreg/native_sanity/JniVersion.java"
|
||||
$ make test TEST="micro:java.lang.reflect" MICRO="FORK=1;WARMUP_ITER=2"
|
||||
$ make exploded-test TEST=tier2</code></pre>
|
||||
<pre><code>$ make run-test-tier1
|
||||
$ make run-test-jdk_lang JTREG="JOBS=8"
|
||||
$ make run-test TEST=jdk_lang
|
||||
$ make run-test-only TEST="gtest:LogTagSet gtest:LogTagSetDescriptions" GTEST="REPEAT=-1"
|
||||
$ make run-test TEST="hotspot:hotspot_gc" JTREG="JOBS=1;TIMEOUT=8;VM_OPTIONS=-XshowSettings -Xlog:gc+ref=debug"
|
||||
$ make run-test TEST="jtreg:test/hotspot:hotspot_gc test/hotspot/jtreg/native_sanity/JniVersion.java"
|
||||
$ make exploded-run-test TEST=tier2</code></pre>
|
||||
<h3 id="configuration">Configuration</h3>
|
||||
<p>To be able to run JTReg tests, <code>configure</code> needs to know where to find the JTReg test framework. If it is not picked up automatically by configure, use the <code>--with-jtreg=<path to jtreg home></code> option to point to the JTReg framework. Note that this option should point to the JTReg home, i.e. the top directory, containing <code>lib/jtreg.jar</code> etc. (An alternative is to set the <code>JT_HOME</code> environment variable to point to the JTReg home before running <code>configure</code>.)</p>
|
||||
<p>To be able to run microbenchmarks, <code>configure</code> needs to know where to find the JMH dependency. Use <code>--with-jmh=<path to JMH jars></code> to point to a directory containing the core JMH and transitive dependencies. The recommended dependencies can be retrieved by running <code>sh make/devkit/createJMHBundle.sh</code>, after which <code>--with-jmh=build/jmh/jars</code> should work.</p>
|
||||
<p>To be able to run JTReg tests, <code>configure</code> needs to know where to find the JTReg test framework. If it is not picked up automatically by configure, use the <code>--with-jtreg=<path to jtreg home></code> option to point to the JTReg framework. Note that this option should point to the JTReg home, i.e. the top directory, containing <code>lib/jtreg.jar</code> etc. (An alternative is to set the <code>JT_HOME</code> environment variable to point to the JTReg home before running <code>configure</code>.)</p>
|
||||
<h2 id="test-selection">Test selection</h2>
|
||||
<p>All functionality is available using the <code>test</code> make target. In this use case, the test or tests to be executed is controlled using the <code>TEST</code> variable. To speed up subsequent test runs with no source code changes, <code>test-only</code> can be used instead, which do not depend on the source and test image build.</p>
|
||||
<p>For some common top-level tests, direct make targets have been generated. This includes all JTReg test groups, the hotspot gtest, and custom tests (if present). This means that <code>make test-tier1</code> is equivalent to <code>make test TEST="tier1"</code>, but the latter is more tab-completion friendly. For more complex test runs, the <code>test TEST="x"</code> solution needs to be used.</p>
|
||||
<p>All functionality is available using the run-test make target. In this use case, the test or tests to be executed is controlled using the <code>TEST</code> variable. To speed up subsequent test runs with no source code changes, run-test-only can be used instead, which do not depend on the source and test image build.</p>
|
||||
<p>For some common top-level tests, direct make targets have been generated. This includes all JTReg test groups, the hotspot gtest, and custom tests (if present). This means that <code>make run-test-tier1</code> is equivalent to <code>make run-test TEST="tier1"</code>, but the latter is more tab-completion friendly. For more complex test runs, the <code>run-test TEST="x"</code> solution needs to be used.</p>
|
||||
<p>The test specifications given in <code>TEST</code> is parsed into fully qualified test descriptors, which clearly and unambigously show which tests will be run. As an example, <code>:tier1</code> will expand to <code>jtreg:$(TOPDIR)/test/hotspot/jtreg:tier1 jtreg:$(TOPDIR)/test/jdk:tier1 jtreg:$(TOPDIR)/test/langtools:tier1 jtreg:$(TOPDIR)/test/nashorn:tier1 jtreg:$(TOPDIR)/test/jaxp:tier1</code>. You can always submit a list of fully qualified test descriptors in the <code>TEST</code> variable if you want to shortcut the parser.</p>
|
||||
<h3 id="jtreg">JTReg</h3>
|
||||
<p>JTReg tests can be selected either by picking a JTReg test group, or a selection of files or directories containing JTReg tests.</p>
|
||||
@@ -65,17 +63,7 @@ $ make exploded-test TEST=tier2</code></pre>
|
||||
<h3 id="gtest">Gtest</h3>
|
||||
<p>Since the Hotspot Gtest suite is so quick, the default is to run all tests. This is specified by just <code>gtest</code>, or as a fully qualified test descriptor <code>gtest:all</code>.</p>
|
||||
<p>If you want, you can single out an individual test or a group of tests, for instance <code>gtest:LogDecorations</code> or <code>gtest:LogDecorations.level_test_vm</code>. This can be particularly useful if you want to run a shaky test repeatedly.</p>
|
||||
<p>For Gtest, there is a separate test suite for each JVM variant. The JVM variant is defined by adding <code>/<variant></code> to the test descriptor, e.g. <code>gtest:Log/client</code>. If you specify no variant, gtest will run once for each JVM variant present (e.g. server, client). So if you only have the server JVM present, then <code>gtest:all</code> will be equivalent to <code>gtest:all/server</code>.</p>
|
||||
<h3 id="microbenchmarks">Microbenchmarks</h3>
|
||||
<p>Which microbenchmarks to run is selected using a regular expression following the <code>micro:</code> test descriptor, e.g., <code>micro:java.lang.reflect</code>. This delegates the test selection to JMH, meaning package name, class name and even benchmark method names can be used to select tests.</p>
|
||||
<p>Using special characters like <code>|</code> in the regular expression is possible, but needs to be escaped multiple times: <code>micro:ArrayCopy\\\\\|reflect</code>.</p>
|
||||
<h3 id="special-tests">Special tests</h3>
|
||||
<p>A handful of odd tests that are not covered by any other testing framework are accessible using the <code>special:</code> test descriptor. Currently, this includes <code>failure-handler</code> and <code>make</code>.</p>
|
||||
<ul>
|
||||
<li><p>Failure handler testing is run using <code>special:failure-handler</code> or just <code>failure-handler</code> as test descriptor.</p></li>
|
||||
<li><p>Tests for the build system, including both makefiles and related functionality, is run using <code>special:make</code> or just <code>make</code> as test descriptor. This is equivalent to <code>special:make:all</code>.</p>
|
||||
<p>A specific make test can be run by supplying it as argument, e.g. <code>special:make:idea</code>. As a special syntax, this can also be expressed as <code>make-idea</code>, which allows for command lines as <code>make test-make-idea</code>.</p></li>
|
||||
</ul>
|
||||
<p>For Gtest, there is a separate test suite for each JVM variant. The JVM variant is defined by adding <code>/<variant></code> to the test descriptor, e.g. <code>gtest:Log/client</code>. If you specify no variant, gtest will run once for each JVM variant present (e.g. server, client). So if you only have the server JVM present, then <code>gtest:all</code> will be equivalent to <code>gtest:all/server</code>.</p>
|
||||
<h2 id="test-results-and-summary">Test results and summary</h2>
|
||||
<p>At the end of the test run, a summary of all tests run will be presented. This will have a consistent look, regardless of what test suites were used. This is a sample summary:</p>
|
||||
<pre><code>==============================
|
||||
@@ -89,38 +77,20 @@ Test summary
|
||||
TEST FAILURE</code></pre>
|
||||
<p>Tests where the number of TOTAL tests does not equal the number of PASSed tests will be considered a test failure. These are marked with the <code>>> ... <<</code> marker for easy identification.</p>
|
||||
<p>The classification of non-passed tests differs a bit between test suites. In the summary, ERROR is used as a catch-all for tests that neither passed nor are classified as failed by the framework. This might indicate test framework error, timeout or other problems.</p>
|
||||
<p>In case of test failures, <code>make test</code> will exit with a non-zero exit value.</p>
|
||||
<p>All tests have their result stored in <code>build/$BUILD/test-results/$TEST_ID</code>, where TEST_ID is a path-safe conversion from the fully qualified test descriptor, e.g. for <code>jtreg:jdk/test:tier1</code> the TEST_ID is <code>jtreg_jdk_test_tier1</code>. This path is also printed in the log at the end of the test run.</p>
|
||||
<p>In case of test failures, <code>make run-test</code> will exit with a non-zero exit value.</p>
|
||||
<p>All tests have their result stored in <code>build/$BUILD/test-results/$TEST_ID</code>, where TEST_ID is a path-safe conversion from the fully qualified test descriptor, e.g. for <code>jtreg:jdk/test:tier1</code> the TEST_ID is <code>jtreg_jdk_test_tier1</code>. This path is also printed in the log at the end of the test run.</p>
|
||||
<p>Additional work data is stored in <code>build/$BUILD/test-support/$TEST_ID</code>. For some frameworks, this directory might contain information that is useful in determining the cause of a failed test.</p>
|
||||
<h2 id="test-suite-control">Test suite control</h2>
|
||||
<p>It is possible to control various aspects of the test suites using make control variables.</p>
|
||||
<p>These variables use a keyword=value approach to allow multiple values to be set. So, for instance, <code>JTREG="JOBS=1;TIMEOUT=8"</code> will set the JTReg concurrency level to 1 and the timeout factor to 8. This is equivalent to setting <code>JTREG_JOBS=1 JTREG_TIMEOUT=8</code>, but using the keyword format means that the <code>JTREG</code> variable is parsed and verified for correctness, so <code>JTREG="TMIEOUT=8"</code> would give an error, while <code>JTREG_TMIEOUT=8</code> would just pass unnoticed.</p>
|
||||
<p>To separate multiple keyword=value pairs, use <code>;</code> (semicolon). Since the shell normally eats <code>;</code>, the recommended usage is to write the assignment inside qoutes, e.g. <code>JTREG="...;..."</code>. This will also make sure spaces are preserved, as in <code>JTREG="VM_OPTIONS=-XshowSettings -Xlog:gc+ref=debug"</code>.</p>
|
||||
<p>(Other ways are possible, e.g. using backslash: <code>JTREG=JOBS=1\;TIMEOUT=8</code>. Also, as a special technique, the string <code>%20</code> will be replaced with space for certain options, e.g. <code>JTREG=VM_OPTIONS=-XshowSettings%20-Xlog:gc+ref=debug</code>. This can be useful if you have layers of scripts and have trouble getting proper quoting of command line arguments through.)</p>
|
||||
<p>(Other ways are possible, e.g. using backslash: <code>JTREG=JOBS=1\;TIMEOUT=8</code>. Also, as a special technique, the string <code>%20</code> will be replaced with space for certain options, e.g. <code>JTREG=VM_OPTIONS=-XshowSettings%20-Xlog:gc+ref=debug</code>. This can be useful if you have layers of scripts and have trouble getting proper quoting of command line arguments through.)</p>
|
||||
<p>As far as possible, the names of the keywords have been standardized between test suites.</p>
|
||||
<h3 id="general-keywords-test_opts">General keywords (TEST_OPTS)</h3>
|
||||
<p>Some keywords are valid across different test suites. If you want to run tests from multiple test suites, or just don't want to care which test suite specific control variable to use, then you can use the general TEST_OPTS control variable.</p>
|
||||
<p>There are also some keywords that applies globally to the test runner system, not to any specific test suites. These are also available as TEST_OPTS keywords.</p>
|
||||
<h4 id="jobs">JOBS</h4>
|
||||
<p>Currently only applies to JTReg.</p>
|
||||
<h4 id="timeout_factor">TIMEOUT_FACTOR</h4>
|
||||
<p>Currently only applies to JTReg.</p>
|
||||
<h4 id="vm_options">VM_OPTIONS</h4>
|
||||
<p>Applies to JTReg, GTest and Micro.</p>
|
||||
<h4 id="java_options">JAVA_OPTIONS</h4>
|
||||
<p>Applies to JTReg, GTest and Micro.</p>
|
||||
<h4 id="aot_modules">AOT_MODULES</h4>
|
||||
<p>Applies to JTReg and GTest.</p>
|
||||
<h4 id="jcov">JCOV</h4>
|
||||
<p>This keywords applies globally to the test runner system. If set to <code>true</code>, it enables JCov coverage reporting for all tests run. To be useful, the JDK under test must be run with a JDK built with JCov instrumentation (<code>configure --with-jcov=<path to directory containing lib/jcov.jar></code>, <code>make jcov-image</code>).</p>
|
||||
<p>The simplest way to run tests with JCov coverage report is to use the 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 image is built, and that JCov reporting is enabled.</p>
|
||||
<p>The JCov report is stored in <code>build/$BUILD/test-results/jcov-output</code>.</p>
|
||||
<p>Please note that running with JCov reporting can be very memory intensive.</p>
|
||||
<h3 id="jtreg-keywords">JTReg keywords</h3>
|
||||
<h4 id="jobs-1">JOBS</h4>
|
||||
<h4 id="jobs">JOBS</h4>
|
||||
<p>The test concurrency (<code>-concurrency</code>).</p>
|
||||
<p>Defaults to TEST_JOBS (if set by <code>--with-test-jobs=</code>), otherwise it defaults to JOBS, except for Hotspot, where the default is <em>number of CPU cores/2</em> (for sparc, if more than 16 cpus, then <em>number of CPU cores/5</em>, otherwise <em>number of CPU cores/4</em>), but never more than <em>memory size in GB/2</em>.</p>
|
||||
<h4 id="timeout_factor-1">TIMEOUT_FACTOR</h4>
|
||||
<p>Defaults to TEST_JOBS (if set by <code>--with-test-jobs=</code>), otherwise it defaults to JOBS, except for Hotspot, where the default is <em>number of CPU cores/2</em>, but never more than 12.</p>
|
||||
<h4 id="timeout">TIMEOUT</h4>
|
||||
<p>The timeout factor (<code>-timeoutFactor</code>).</p>
|
||||
<p>Defaults to 4.</p>
|
||||
<h4 id="test_mode">TEST_MODE</h4>
|
||||
@@ -139,21 +109,13 @@ TEST FAILURE</code></pre>
|
||||
<p>Limit memory consumption (<code>-Xmx</code> and <code>-vmoption:-Xmx</code>, or none).</p>
|
||||
<p>Limit memory consumption for JTReg test framework and VM under test. Set to 0 to disable the limits.</p>
|
||||
<p>Defaults to 512m, except for hotspot, where it defaults to 0 (no limit).</p>
|
||||
<h4 id="keywords">KEYWORDS</h4>
|
||||
<p>JTReg kewords sent to JTReg using <code>-k</code>. Please be careful in making sure that spaces and special characters (like <code>!</code>) are properly quoted. To avoid some issues, the special value <code>%20</code> can be used instead of space.</p>
|
||||
<h4 id="extra_problem_lists">EXTRA_PROBLEM_LISTS</h4>
|
||||
<p>Use additional problem lists file or files, in addition to the default ProblemList.txt located at the JTReg test roots.</p>
|
||||
<p>If multiple file names are specified, they should be separated by space (or, to help avoid quoting issues, the special value <code>%20</code>).</p>
|
||||
<p>The file names should be either absolute, or relative to the JTReg test root of the tests to be run.</p>
|
||||
<h4 id="options">OPTIONS</h4>
|
||||
<p>Additional options to the JTReg test framework.</p>
|
||||
<p>Use <code>JTREG="OPTIONS=--help all"</code> to see all available JTReg options.</p>
|
||||
<h4 id="java_options-1">JAVA_OPTIONS</h4>
|
||||
<h4 id="java_options">JAVA_OPTIONS</h4>
|
||||
<p>Additional Java options to JTReg (<code>-javaoption</code>).</p>
|
||||
<h4 id="vm_options-1">VM_OPTIONS</h4>
|
||||
<h4 id="vm_options">VM_OPTIONS</h4>
|
||||
<p>Additional VM options to JTReg (<code>-vmoption</code>).</p>
|
||||
<h4 id="aot_modules-1">AOT_MODULES</h4>
|
||||
<p>Generate AOT modules before testing for the specified module, or set of modules. If multiple modules are specified, they should be separated by space (or, to help avoid quoting issues, the special value <code>%20</code>).</p>
|
||||
<h3 id="gtest-keywords">Gtest keywords</h3>
|
||||
<h4 id="repeat">REPEAT</h4>
|
||||
<p>The number of times to repeat the tests (<code>--gtest_repeat</code>).</p>
|
||||
@@ -161,24 +123,5 @@ TEST FAILURE</code></pre>
|
||||
<h4 id="options-1">OPTIONS</h4>
|
||||
<p>Additional options to the Gtest test framework.</p>
|
||||
<p>Use <code>GTEST="OPTIONS=--help"</code> to see all available Gtest options.</p>
|
||||
<h4 id="aot_modules-2">AOT_MODULES</h4>
|
||||
<p>Generate AOT modules before testing for the specified module, or set of modules. If multiple modules are specified, they should be separated by space (or, to help avoid quoting issues, the special value <code>%20</code>).</p>
|
||||
<h3 id="microbenchmark-keywords">Microbenchmark keywords</h3>
|
||||
<h4 id="fork">FORK</h4>
|
||||
<p>Override the number of benchmark forks to spawn. Same as specifying <code>-f <num></code>.</p>
|
||||
<h4 id="iter">ITER</h4>
|
||||
<p>Number of measurement iterations per fork. Same as specifying <code>-i <num></code>.</p>
|
||||
<h4 id="time">TIME</h4>
|
||||
<p>Amount of time to spend in each measurement iteration, in seconds. Same as specifying <code>-r <num></code></p>
|
||||
<h4 id="warmup_iter">WARMUP_ITER</h4>
|
||||
<p>Number of warmup iterations to run before the measurement phase in each fork. Same as specifying <code>-wi <num></code>.</p>
|
||||
<h4 id="warmup_time">WARMUP_TIME</h4>
|
||||
<p>Amount of time to spend in each warmup iteration. Same as specifying <code>-w <num></code>.</p>
|
||||
<h4 id="results_format">RESULTS_FORMAT</h4>
|
||||
<p>Specify to have the test run save a log of the values. Accepts the same values as <code>-rff</code>, i.e., <code>text</code>, <code>csv</code>, <code>scsv</code>, <code>json</code>, or <code>latex</code>.</p>
|
||||
<h4 id="vm_options-2">VM_OPTIONS</h4>
|
||||
<p>Additional VM arguments to provide to forked off VMs. Same as <code>-jvmArgs <args></code></p>
|
||||
<h4 id="options-2">OPTIONS</h4>
|
||||
<p>Additional arguments to send to JMH.</p>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
184
doc/testing.md
@@ -1,33 +1,26 @@
|
||||
% Testing the JDK
|
||||
|
||||
## Using "make test" (the run-test framework)
|
||||
## Using the run-test framework
|
||||
|
||||
This new way of running tests is developer-centric. It assumes that you have
|
||||
built a JDK locally and want to test it. Running common test targets is simple,
|
||||
and more complex ad-hoc combination of tests is possible. The user interface is
|
||||
forgiving, and clearly report errors it cannot resolve.
|
||||
|
||||
The main target `test` uses the jdk-image as the tested product. There is
|
||||
also an alternate target `exploded-test` that uses the exploded image
|
||||
The main target "run-test" uses the jdk-image as the tested product. There is
|
||||
also an alternate target "exploded-run-test" that uses the exploded image
|
||||
instead. Not all tests will run successfully on the exploded image, but using
|
||||
this target can greatly improve rebuild times for certain workflows.
|
||||
|
||||
Previously, `make test` was used invoke an old system for running test, and
|
||||
`make run-test` was used for the new test framework. For backward compatibility
|
||||
with scripts and muscle memory, `run-test` (and variants like
|
||||
`exploded-run-test` or `run-test-tier1`) are kept as aliases. The old system
|
||||
can still be accessed for some time using `cd test && make`.
|
||||
|
||||
Some example command-lines:
|
||||
|
||||
$ make test-tier1
|
||||
$ make test-jdk_lang JTREG="JOBS=8"
|
||||
$ make test TEST=jdk_lang
|
||||
$ make test-only TEST="gtest:LogTagSet gtest:LogTagSetDescriptions" GTEST="REPEAT=-1"
|
||||
$ make test TEST="hotspot:hotspot_gc" JTREG="JOBS=1;TIMEOUT=8;VM_OPTIONS=-XshowSettings -Xlog:gc+ref=debug"
|
||||
$ make test TEST="jtreg:test/hotspot:hotspot_gc test/hotspot/jtreg/native_sanity/JniVersion.java"
|
||||
$ make test TEST="micro:java.lang.reflect" MICRO="FORK=1;WARMUP_ITER=2"
|
||||
$ make exploded-test TEST=tier2
|
||||
$ make run-test-tier1
|
||||
$ make run-test-jdk_lang JTREG="JOBS=8"
|
||||
$ make run-test TEST=jdk_lang
|
||||
$ make run-test-only TEST="gtest:LogTagSet gtest:LogTagSetDescriptions" GTEST="REPEAT=-1"
|
||||
$ make run-test TEST="hotspot:hotspot_gc" JTREG="JOBS=1;TIMEOUT=8;VM_OPTIONS=-XshowSettings -Xlog:gc+ref=debug"
|
||||
$ make run-test TEST="jtreg:test/hotspot:hotspot_gc test/hotspot/jtreg/native_sanity/JniVersion.java"
|
||||
$ make exploded-run-test TEST=tier2
|
||||
|
||||
### Configuration
|
||||
|
||||
@@ -38,24 +31,18 @@ Note that this option should point to the JTReg home, i.e. the top directory,
|
||||
containing `lib/jtreg.jar` etc. (An alternative is to set the `JT_HOME`
|
||||
environment variable to point to the JTReg home before running `configure`.)
|
||||
|
||||
To be able to run microbenchmarks, `configure` needs to know where to find
|
||||
the JMH dependency. Use `--with-jmh=<path to JMH jars>` to point to a directory
|
||||
containing the core JMH and transitive dependencies. The recommended dependencies
|
||||
can be retrieved by running `sh make/devkit/createJMHBundle.sh`, after which
|
||||
`--with-jmh=build/jmh/jars` should work.
|
||||
|
||||
## Test selection
|
||||
|
||||
All functionality is available using the `test` make target. In this use case,
|
||||
the test or tests to be executed is controlled using the `TEST` variable. To
|
||||
speed up subsequent test runs with no source code changes, `test-only` can be
|
||||
used instead, which do not depend on the source and test image build.
|
||||
All functionality is available using the run-test make target. In this use
|
||||
case, the test or tests to be executed is controlled using the `TEST` variable.
|
||||
To speed up subsequent test runs with no source code changes, run-test-only can
|
||||
be used instead, which do not depend on the source and test image build.
|
||||
|
||||
For some common top-level tests, direct make targets have been generated. This
|
||||
includes all JTReg test groups, the hotspot gtest, and custom tests (if
|
||||
present). This means that `make test-tier1` is equivalent to `make test
|
||||
present). This means that `make run-test-tier1` is equivalent to `make run-test
|
||||
TEST="tier1"`, but the latter is more tab-completion friendly. For more complex
|
||||
test runs, the `test TEST="x"` solution needs to be used.
|
||||
test runs, the `run-test TEST="x"` solution needs to be used.
|
||||
|
||||
The test specifications given in `TEST` is parsed into fully qualified test
|
||||
descriptors, which clearly and unambigously show which tests will be run. As an
|
||||
@@ -111,33 +98,6 @@ is defined by adding `/<variant>` to the test descriptor, e.g.
|
||||
variant present (e.g. server, client). So if you only have the server JVM
|
||||
present, then `gtest:all` will be equivalent to `gtest:all/server`.
|
||||
|
||||
### Microbenchmarks
|
||||
|
||||
Which microbenchmarks to run is selected using a regular expression
|
||||
following the `micro:` test descriptor, e.g., `micro:java.lang.reflect`. This
|
||||
delegates the test selection to JMH, meaning package name, class name and even
|
||||
benchmark method names can be used to select tests.
|
||||
|
||||
Using special characters like `|` in the regular expression is possible, but
|
||||
needs to be escaped multiple times: `micro:ArrayCopy\\\\\|reflect`.
|
||||
|
||||
### Special tests
|
||||
|
||||
A handful of odd tests that are not covered by any other testing framework are
|
||||
accessible using the `special:` test descriptor. Currently, this includes
|
||||
`failure-handler` and `make`.
|
||||
|
||||
* Failure handler testing is run using `special:failure-handler` or just
|
||||
`failure-handler` as test descriptor.
|
||||
|
||||
* Tests for the build system, including both makefiles and related
|
||||
functionality, is run using `special:make` or just `make` as test
|
||||
descriptor. This is equivalent to `special:make:all`.
|
||||
|
||||
A specific make test can be run by supplying it as argument, e.g.
|
||||
`special:make:idea`. As a special syntax, this can also be expressed as
|
||||
`make-idea`, which allows for command lines as `make test-make-idea`.
|
||||
|
||||
## Test results and summary
|
||||
|
||||
At the end of the test run, a summary of all tests run will be presented. This
|
||||
@@ -163,7 +123,7 @@ the summary, ERROR is used as a catch-all for tests that neither passed nor are
|
||||
classified as failed by the framework. This might indicate test framework
|
||||
error, timeout or other problems.
|
||||
|
||||
In case of test failures, `make test` will exit with a non-zero exit value.
|
||||
In case of test failures, `make run-test` will exit with a non-zero exit value.
|
||||
|
||||
All tests have their result stored in `build/$BUILD/test-results/$TEST_ID`,
|
||||
where TEST_ID is a path-safe conversion from the fully qualified test
|
||||
@@ -202,61 +162,16 @@ proper quoting of command line arguments through.)
|
||||
As far as possible, the names of the keywords have been standardized between
|
||||
test suites.
|
||||
|
||||
### General keywords (TEST_OPTS)
|
||||
|
||||
Some keywords are valid across different test suites. If you want to run
|
||||
tests from multiple test suites, or just don't want to care which test suite specific
|
||||
control variable to use, then you can use the general TEST_OPTS control variable.
|
||||
|
||||
There are also some keywords that applies globally to the test runner system,
|
||||
not to any specific test suites. These are also available as TEST_OPTS keywords.
|
||||
|
||||
#### JOBS
|
||||
|
||||
Currently only applies to JTReg.
|
||||
|
||||
#### TIMEOUT_FACTOR
|
||||
|
||||
Currently only applies to JTReg.
|
||||
|
||||
#### VM_OPTIONS
|
||||
|
||||
Applies to JTReg, GTest and Micro.
|
||||
|
||||
#### JAVA_OPTIONS
|
||||
|
||||
Applies to JTReg, GTest and Micro.
|
||||
|
||||
#### AOT_MODULES
|
||||
|
||||
Applies to JTReg and GTest.
|
||||
|
||||
#### JCOV
|
||||
|
||||
This keywords applies globally to the test runner system. If set to `true`, it
|
||||
enables JCov coverage reporting for all tests run. To be useful, the JDK under
|
||||
test must be run with a JDK built with JCov instrumentation (`configure
|
||||
--with-jcov=<path to directory containing lib/jcov.jar>`, `make jcov-image`).
|
||||
|
||||
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
|
||||
will make sure the JCov image is built, and that JCov reporting is enabled.
|
||||
|
||||
The JCov report is stored in `build/$BUILD/test-results/jcov-output`.
|
||||
|
||||
Please note that running with JCov reporting can be very memory intensive.
|
||||
|
||||
### JTReg keywords
|
||||
|
||||
#### JOBS
|
||||
The test concurrency (`-concurrency`).
|
||||
|
||||
Defaults to TEST_JOBS (if set by `--with-test-jobs=`), otherwise it defaults to
|
||||
JOBS, except for Hotspot, where the default is *number of CPU cores/2* (for
|
||||
sparc, if more than 16 cpus, then *number of CPU cores/5*, otherwise *number of
|
||||
CPU cores/4*), but never more than *memory size in GB/2*.
|
||||
JOBS, except for Hotspot, where the default is *number of CPU cores/2*, but
|
||||
never more than 12.
|
||||
|
||||
#### TIMEOUT_FACTOR
|
||||
#### TIMEOUT
|
||||
The timeout factor (`-timeoutFactor`).
|
||||
|
||||
Defaults to 4.
|
||||
@@ -290,24 +205,6 @@ to disable the limits.
|
||||
|
||||
Defaults to 512m, except for hotspot, where it defaults to 0 (no limit).
|
||||
|
||||
#### KEYWORDS
|
||||
|
||||
JTReg kewords sent to JTReg using `-k`. Please be careful in making sure that
|
||||
spaces and special characters (like `!`) are properly quoted. To avoid some
|
||||
issues, the special value `%20` can be used instead of space.
|
||||
|
||||
#### EXTRA_PROBLEM_LISTS
|
||||
|
||||
Use additional problem lists file or files, in addition to the default
|
||||
ProblemList.txt located at the JTReg test roots.
|
||||
|
||||
If multiple file names are specified, they should be separated by space (or, to
|
||||
help avoid quoting issues, the special value `%20`).
|
||||
|
||||
The file names should be either absolute, or relative to the JTReg test root of
|
||||
the tests to be run.
|
||||
|
||||
|
||||
#### OPTIONS
|
||||
Additional options to the JTReg test framework.
|
||||
|
||||
@@ -319,12 +216,6 @@ Additional Java options to JTReg (`-javaoption`).
|
||||
#### VM_OPTIONS
|
||||
Additional VM options to JTReg (`-vmoption`).
|
||||
|
||||
#### AOT_MODULES
|
||||
|
||||
Generate AOT modules before testing for the specified module, or set of
|
||||
modules. If multiple modules are specified, they should be separated by space
|
||||
(or, to help avoid quoting issues, the special value `%20`).
|
||||
|
||||
### Gtest keywords
|
||||
|
||||
#### REPEAT
|
||||
@@ -339,41 +230,6 @@ Additional options to the Gtest test framework.
|
||||
|
||||
Use `GTEST="OPTIONS=--help"` to see all available Gtest options.
|
||||
|
||||
#### AOT_MODULES
|
||||
|
||||
Generate AOT modules before testing for the specified module, or set of
|
||||
modules. If multiple modules are specified, they should be separated by space
|
||||
(or, to help avoid quoting issues, the special value `%20`).
|
||||
|
||||
### Microbenchmark keywords
|
||||
|
||||
#### FORK
|
||||
Override the number of benchmark forks to spawn. Same as specifying `-f <num>`.
|
||||
|
||||
#### ITER
|
||||
Number of measurement iterations per fork. Same as specifying `-i <num>`.
|
||||
|
||||
#### TIME
|
||||
Amount of time to spend in each measurement iteration, in seconds. Same as
|
||||
specifying `-r <num>`
|
||||
|
||||
#### WARMUP_ITER
|
||||
Number of warmup iterations to run before the measurement phase in each fork.
|
||||
Same as specifying `-wi <num>`.
|
||||
|
||||
#### WARMUP_TIME
|
||||
Amount of time to spend in each warmup iteration. Same as specifying `-w <num>`.
|
||||
|
||||
#### RESULTS_FORMAT
|
||||
Specify to have the test run save a log of the values. Accepts the same values
|
||||
as `-rff`, i.e., `text`, `csv`, `scsv`, `json`, or `latex`.
|
||||
|
||||
#### VM_OPTIONS
|
||||
Additional VM arguments to provide to forked off VMs. Same as `-jvmArgs <args>`
|
||||
|
||||
#### OPTIONS
|
||||
Additional arguments to send to JMH.
|
||||
|
||||
---
|
||||
# Override some definitions in the global css file that are not optimal for
|
||||
# this document.
|
||||
|
||||
9
jb/project/docker/Dockerfile
Normal file
@@ -0,0 +1,9 @@
|
||||
FROM centos:7
|
||||
|
||||
RUN yum -y install zip bzip2 unzip tar wget make autoconf automake libtool gcc gcc-c++ libstdc++-devel alsa-devel cups-devel xorg-x11-devel libjpeg62-devel giflib-devel freetype-devel file which libXtst-devel libXt-devel libXrender-devel alsa-lib-devel fontconfig-devel
|
||||
|
||||
# Install Java 11
|
||||
RUN wget --no-check-certificate -q --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/11.0.1+13/90cf5d8f270a4347a95050320eef3fb7/jdk-11.0.1_linux-x64_bin.tar.gz" \
|
||||
-O - | tar xz -C /
|
||||
ENV JAVA_HOME /jdk-11.0.1
|
||||
ENV PATH $JAVA_HOME/bin:$PATH
|
||||
9
jb/project/java-gradle/.idea/compiler.xml
generated
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="CompilerConfiguration">
|
||||
<bytecodeTargetLevel>
|
||||
<module name="java-gradle.main" target="11" />
|
||||
<module name="java-gradle.test" target="11" />
|
||||
</bytecodeTargetLevel>
|
||||
</component>
|
||||
</project>
|
||||
20
jb/project/java-gradle/.idea/gradle.xml
generated
Normal file
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="GradleSettings">
|
||||
<option name="linkedExternalProjectsSettings">
|
||||
<GradleProjectSettings>
|
||||
<option name="distributionType" value="DEFAULT_WRAPPED" />
|
||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||
<option name="gradleHome" value="/usr/share/gradle" />
|
||||
<option name="gradleJvm" value="11" />
|
||||
<option name="modules">
|
||||
<set>
|
||||
<option value="$PROJECT_DIR$" />
|
||||
</set>
|
||||
</option>
|
||||
<option name="useAutoImport" value="true" />
|
||||
<option name="useQualifiedModuleNames" value="true" />
|
||||
</GradleProjectSettings>
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
||||
11
jb/project/java-gradle/.idea/libraries/Gradle__com_twelvemonkeys_common_common_image_3_3_2.xml
generated
Normal file
@@ -0,0 +1,11 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Gradle: com.twelvemonkeys.common:common-image:3.3.2">
|
||||
<CLASSES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.twelvemonkeys.common/common-image/3.3.2/9c975152864050c6dbb7226ca1100694f0aa099d/common-image-3.3.2.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.twelvemonkeys.common/common-image/3.3.2/e6fb35a9825421ec5a634af328e22546992d536d/common-image-3.3.2-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
11
jb/project/java-gradle/.idea/libraries/Gradle__com_twelvemonkeys_common_common_io_3_3_2.xml
generated
Normal file
@@ -0,0 +1,11 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Gradle: com.twelvemonkeys.common:common-io:3.3.2">
|
||||
<CLASSES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.twelvemonkeys.common/common-io/3.3.2/e00b1c744993864d3c8dc698ba7d356122019398/common-io-3.3.2.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.twelvemonkeys.common/common-io/3.3.2/dbb242585fdfd353dc4c2c0e8b3d8b0383dffbb2/common-io-3.3.2-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
11
jb/project/java-gradle/.idea/libraries/Gradle__com_twelvemonkeys_common_common_lang_3_3_2.xml
generated
Normal file
@@ -0,0 +1,11 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Gradle: com.twelvemonkeys.common:common-lang:3.3.2">
|
||||
<CLASSES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.twelvemonkeys.common/common-lang/3.3.2/ffbc5e05208c5c9cb43052438294c3ec5546aecf/common-lang-3.3.2.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.twelvemonkeys.common/common-lang/3.3.2/b695db345614a2b9344fd43a44d9ce722df4b39/common-lang-3.3.2-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
11
jb/project/java-gradle/.idea/libraries/Gradle__com_twelvemonkeys_imageio_imageio_core_3_3_2.xml
generated
Normal file
@@ -0,0 +1,11 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Gradle: com.twelvemonkeys.imageio:imageio-core:3.3.2">
|
||||
<CLASSES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.twelvemonkeys.imageio/imageio-core/3.3.2/8def41c756831dde3c23f2d525e5667cfbfa1847/imageio-core-3.3.2.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.twelvemonkeys.imageio/imageio-core/3.3.2/abcb2beaf21364467afe0e33824dce5730bef0c3/imageio-core-3.3.2-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
11
jb/project/java-gradle/.idea/libraries/Gradle__com_twelvemonkeys_imageio_imageio_metadata_3_3_2.xml
generated
Normal file
@@ -0,0 +1,11 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Gradle: com.twelvemonkeys.imageio:imageio-metadata:3.3.2">
|
||||
<CLASSES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.twelvemonkeys.imageio/imageio-metadata/3.3.2/b8a31725bde0dc6f4e6b01711784f5ca0a2275f3/imageio-metadata-3.3.2.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.twelvemonkeys.imageio/imageio-metadata/3.3.2/6fc3b223c81afbd4b829e2c924c096aab3ed0e9e/imageio-metadata-3.3.2-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
11
jb/project/java-gradle/.idea/libraries/Gradle__com_twelvemonkeys_imageio_imageio_tiff_3_3_2.xml
generated
Normal file
@@ -0,0 +1,11 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Gradle: com.twelvemonkeys.imageio:imageio-tiff:3.3.2">
|
||||
<CLASSES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.twelvemonkeys.imageio/imageio-tiff/3.3.2/9bea1214eae7d287dc0c685fb6be75102318d080/imageio-tiff-3.3.2.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.twelvemonkeys.imageio/imageio-tiff/3.3.2/cae5b3540dc01889dc9560db86f5f61bdc253107/imageio-tiff-3.3.2-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
11
jb/project/java-gradle/.idea/libraries/Gradle__junit_junit_4_12.xml
generated
Normal file
@@ -0,0 +1,11 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Gradle: junit:junit:4.12">
|
||||
<CLASSES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/junit/junit/4.12/2973d150c0dc1fefe998f834810d68f278ea58ec/junit-4.12.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/junit/junit/4.12/a6c32b40bf3d76eca54e3c601e5d1470c86fcdfa/junit-4.12-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
11
jb/project/java-gradle/.idea/libraries/Gradle__net_java_dev_jna_jna_4_4_0.xml
generated
Normal file
@@ -0,0 +1,11 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Gradle: net.java.dev.jna:jna:4.4.0">
|
||||
<CLASSES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.java.dev.jna/jna/4.4.0/cb208278274bf12ebdb56c61bd7407e6f774d65a/jna-4.4.0.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.java.dev.jna/jna/4.4.0/9d45d3dc35711eef7267d8b4fc2c0dc482ef9fd2/jna-4.4.0-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
11
jb/project/java-gradle/.idea/libraries/Gradle__org_apache_commons_commons_lang3_3_0.xml
generated
Normal file
@@ -0,0 +1,11 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Gradle: org.apache.commons:commons-lang3:3.0">
|
||||
<CLASSES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-lang3/3.0/8873bd0bb5cb9ee37f1b04578eb7e26fcdd44cb0/commons-lang3-3.0.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-lang3/3.0/d48f964b56a931ec2712ce5d411a40d114a69753/commons-lang3-3.0-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
11
jb/project/java-gradle/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3.xml
generated
Normal file
@@ -0,0 +1,11 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Gradle: org.hamcrest:hamcrest-core:1.3">
|
||||
<CLASSES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-core/1.3/42a25dc3219429f0e5d060061f71acb49bf010a0/hamcrest-core-1.3.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-core/1.3/1dc37250fbc78e23a65a67fbbaf71d2e9cbc3c0b/hamcrest-core-1.3-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
11
jb/project/java-gradle/.idea/libraries/Gradle__org_hamcrest_hamcrest_library_1_3.xml
generated
Normal file
@@ -0,0 +1,11 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Gradle: org.hamcrest:hamcrest-library:1.3">
|
||||
<CLASSES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-library/1.3/4785a3c21320980282f9f33d0d1264a69040538f/hamcrest-library-1.3.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-library/1.3/47a7ee46628ab7133129cd7cef1e92657bc275e/hamcrest-library-1.3-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
6
jb/project/java-gradle/.idea/misc.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" project-jdk-name="11" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/classes" />
|
||||
</component>
|
||||
</project>
|
||||
11
jb/project/java-gradle/.idea/modules.xml
generated
Normal file
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/modules/java-gradle.iml" filepath="$PROJECT_DIR$/.idea/modules/java-gradle.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/java-gradle.iml" filepath="$PROJECT_DIR$/java-gradle.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/modules/java-gradle.main.iml" filepath="$PROJECT_DIR$/.idea/modules/java-gradle.main.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/modules/java-gradle.test.iml" filepath="$PROJECT_DIR$/.idea/modules/java-gradle.test.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
||||
34
jb/project/java-gradle/.idea/modules/java-gradle.main.iml
generated
Normal file
@@ -0,0 +1,34 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module external.linked.project.id="java-gradle:main" external.linked.project.path="$MODULE_DIR$/../.." external.root.project.path="$MODULE_DIR$/../.." external.system.id="GRADLE" external.system.module.group="" external.system.module.type="sourceSet" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_11">
|
||||
<output url="file://$MODULE_DIR$/../../out/production/classes" />
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$/../../src/main" />
|
||||
<content url="file://$MODULE_DIR$/../../../../../src">
|
||||
<sourceFolder url="file://$MODULE_DIR$/../../../../../src/java.base/share/classes" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/../../../../../src/java.datatransfer/share/classes" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/../../../../../src/java.desktop/share/classes" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/../../../../../src/java.instrument/share/classes" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/../../../../../src/java.logging/share/classes" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/../../../../../src/java.management.rmi/share/classes" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/../../../../../src/java.management/share/classes" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/../../../../../src/java.naming/share/classes" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/../../../../../src/java.prefs/share/classes" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/../../../../../src/java.rmi/share/classes" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/../../../../../src/java.scripting/share/classes" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/../../../../../src/java.se/share/classes" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/../../../../../src/java.security.jgss/share/classes" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/../../../../../src/java.security.sasl/share/classes" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/../../../../../src/java.smartcardio/share/classes" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/../../../../../src/java.sql.rowset/share/classes" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/../../../../../src/java.sql/share/classes" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/../../../../../src/java.xml.crypto/share/classes" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/../../../../../src/java.base/macosx/classes" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/../../../../../src/java.datatransfer/macosx/classes" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/../../../../../src/java.desktop/macosx/classes" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/../../../../../src/java.prefs/macosx/classes" isTestSource="false" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
||||
26
jb/project/java-gradle/.idea/modules/java-gradle.test.iml
generated
Normal file
@@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module external.linked.project.id="java-gradle:test" external.linked.project.path="$MODULE_DIR$/../.." external.root.project.path="$MODULE_DIR$/../.." external.system.id="GRADLE" external.system.module.group="" external.system.module.type="sourceSet" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_11">
|
||||
<output-test url="file://$MODULE_DIR$/../../out/test/classes" />
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$/../../src/test" />
|
||||
<content url="file://$MODULE_DIR$/../../../../../test">
|
||||
<sourceFolder url="file://$MODULE_DIR$/../../../../../test/jdk/jbu" isTestSource="true" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
<orderEntry type="module" module-name="java-gradle.main" />
|
||||
<orderEntry type="library" name="Gradle: junit:junit:4.12" level="project" />
|
||||
<orderEntry type="library" name="Gradle: org.hamcrest:hamcrest-library:1.3" level="project" />
|
||||
<orderEntry type="library" name="Gradle: net.java.dev.jna:jna:4.4.0" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.twelvemonkeys.imageio:imageio-tiff:3.3.2" level="project" />
|
||||
<orderEntry type="library" name="Gradle: org.apache.commons:commons-lang3:3.0" level="project" />
|
||||
<orderEntry type="library" name="Gradle: org.hamcrest:hamcrest-core:1.3" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.twelvemonkeys.imageio:imageio-metadata:3.3.2" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.twelvemonkeys.imageio:imageio-core:3.3.2" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.twelvemonkeys.common:common-image:3.3.2" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.twelvemonkeys.common:common-io:3.3.2" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.twelvemonkeys.common:common-lang:3.3.2" level="project" />
|
||||
</component>
|
||||
<component name="TestModuleProperties" production-module="java-gradle.main" />
|
||||
</module>
|
||||
6
jb/project/java-gradle/.idea/vcs.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$/../../.." vcs="Git" />
|
||||
</component>
|
||||
</project>
|
||||
@@ -10,11 +10,11 @@ def test_jvm = {
|
||||
file(jbsdkhome + (OperatingSystem.current().isWindows()?"/bin/java.exe" : "/bin/java")).absolutePath
|
||||
} else {
|
||||
if (OperatingSystem.current().isMacOsX()) {
|
||||
file('../../../build/macosx-x86_64-server-release/images/jdk-bundle/jdk-13.jdk/Contents/Home/bin/java').absolutePath
|
||||
file('../../../build/macosx-x86_64-normal-server-release/images/jdk-bundle/jdk-11.jdk/Contents/Home/bin/java').absolutePath
|
||||
} else if (OperatingSystem.current().isLinux()) {
|
||||
file('../../../build/linux-x86_64-server-release/images/jdk/bin/java').absolutePath
|
||||
file('../../../build/linux-x86_64-normal-server-release/images/jdk/bin/java').absolutePath
|
||||
} else {
|
||||
file('../../../build/windows-x86_64-server-release/images/j2sdk-image/bin/java.exe').absolutePath
|
||||
file('../../../build/windows-x86_64-normal-server-release/images/j2sdk-image/bin/java.exe').absolutePath
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -75,21 +75,15 @@ test.dependsOn tasks.compileTestJava
|
||||
|
||||
test {
|
||||
systemProperty "jb.java2d.metal", "true"
|
||||
systemProperty "testdata", file('../../../test/jdk/jbu/testdata').absolutePath
|
||||
systemProperty "testdata", file('../../../jb/tests/testdata').absolutePath
|
||||
|
||||
// Generate golden images for DroidFontTest and MixedTextTest
|
||||
// systemProperty "gentestdata", ""
|
||||
|
||||
// Enable Java2D logging (https://confluence.jetbrains.com/display/JRE/Java2D+Rendering+Logging)
|
||||
// systemProperty "sun.java2d.trace", "log"
|
||||
// systemProperty "sun.java2d.trace", "log,pimpl"
|
||||
|
||||
outputs.upToDateWhen { false }
|
||||
executable = test_jvm()
|
||||
|
||||
// Enable async/dtrace profiler
|
||||
jvmArgs "-XX:+PreserveFramePointer"
|
||||
// Enable native J2D logging (only in debug build)
|
||||
// Enable J2D logging (only in debug build)
|
||||
// Can be turned on for J2D by adding "#define DEBUG 1" into jdk/src/share/native/sun/java2d/Trace.h
|
||||
|
||||
// environment 'J2D_TRACE_LEVEL', '4'
|
||||
@@ -102,14 +96,12 @@ if (OperatingSystem.current().isWindows()) {
|
||||
def cyg_make_cmd = new File("c:/cygwin64/bin/make.exe")
|
||||
if (cyg_make_cmd.exists()) make_cmd = cyg_make_cmd.absolutePath
|
||||
}
|
||||
def test_run = false
|
||||
|
||||
task make_images << {
|
||||
if (!test_run) {
|
||||
def pb = new ProcessBuilder().command(make_cmd.toString(), "-C", buildDir.absolutePath, "images")
|
||||
def proc = pb.redirectErrorStream(true).start()
|
||||
proc.inputStream.eachLine { println it }
|
||||
assert proc.waitFor() == 0
|
||||
}
|
||||
def pb = new ProcessBuilder().command(make_cmd.toString(), "-C", buildDir.absolutePath, "images")
|
||||
def proc = pb.redirectErrorStream(true).start()
|
||||
proc.inputStream.eachLine {println it}
|
||||
assert proc.waitFor() == 0
|
||||
}
|
||||
|
||||
task make_clean << {
|
||||
@@ -119,11 +111,9 @@ task make_clean << {
|
||||
assert proc.waitFor() == 0
|
||||
}
|
||||
|
||||
task run_test << {
|
||||
test_run = true
|
||||
}
|
||||
|
||||
tasks.cleanTest.dependsOn tasks.run_test
|
||||
tasks.compileJava.enabled = false
|
||||
tasks.compileTestJava.dependsOn.clear()
|
||||
classes.dependsOn.clear()
|
||||
classes.dependsOn tasks.make_images
|
||||
tasks.cleanClasses.dependsOn tasks.make_clean
|
||||
|
||||
BIN
jb/project/java-gradle/gradle/wrapper/gradle-wrapper.jar
vendored
Normal file
6
jb/project/java-gradle/gradle/wrapper/gradle-wrapper.properties
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
#Thu Dec 06 20:31:44 MSK 2018
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.3-all.zip
|
||||
172
jb/project/java-gradle/gradlew
vendored
Executable file
@@ -0,0 +1,172 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
##############################################################################
|
||||
##
|
||||
## Gradle start up script for UN*X
|
||||
##
|
||||
##############################################################################
|
||||
|
||||
# Attempt to set APP_HOME
|
||||
# Resolve links: $0 may be a link
|
||||
PRG="$0"
|
||||
# Need this for relative symlinks.
|
||||
while [ -h "$PRG" ] ; do
|
||||
ls=`ls -ld "$PRG"`
|
||||
link=`expr "$ls" : '.*-> \(.*\)$'`
|
||||
if expr "$link" : '/.*' > /dev/null; then
|
||||
PRG="$link"
|
||||
else
|
||||
PRG=`dirname "$PRG"`"/$link"
|
||||
fi
|
||||
done
|
||||
SAVED="`pwd`"
|
||||
cd "`dirname \"$PRG\"`/" >/dev/null
|
||||
APP_HOME="`pwd -P`"
|
||||
cd "$SAVED" >/dev/null
|
||||
|
||||
APP_NAME="Gradle"
|
||||
APP_BASE_NAME=`basename "$0"`
|
||||
|
||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
DEFAULT_JVM_OPTS=""
|
||||
|
||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||
MAX_FD="maximum"
|
||||
|
||||
warn () {
|
||||
echo "$*"
|
||||
}
|
||||
|
||||
die () {
|
||||
echo
|
||||
echo "$*"
|
||||
echo
|
||||
exit 1
|
||||
}
|
||||
|
||||
# OS specific support (must be 'true' or 'false').
|
||||
cygwin=false
|
||||
msys=false
|
||||
darwin=false
|
||||
nonstop=false
|
||||
case "`uname`" in
|
||||
CYGWIN* )
|
||||
cygwin=true
|
||||
;;
|
||||
Darwin* )
|
||||
darwin=true
|
||||
;;
|
||||
MINGW* )
|
||||
msys=true
|
||||
;;
|
||||
NONSTOP* )
|
||||
nonstop=true
|
||||
;;
|
||||
esac
|
||||
|
||||
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
||||
|
||||
# Determine the Java command to use to start the JVM.
|
||||
if [ -n "$JAVA_HOME" ] ; then
|
||||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
||||
# IBM's JDK on AIX uses strange locations for the executables
|
||||
JAVACMD="$JAVA_HOME/jre/sh/java"
|
||||
else
|
||||
JAVACMD="$JAVA_HOME/bin/java"
|
||||
fi
|
||||
if [ ! -x "$JAVACMD" ] ; then
|
||||
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
else
|
||||
JAVACMD="java"
|
||||
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
|
||||
# Increase the maximum file descriptors if we can.
|
||||
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
|
||||
MAX_FD_LIMIT=`ulimit -H -n`
|
||||
if [ $? -eq 0 ] ; then
|
||||
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
|
||||
MAX_FD="$MAX_FD_LIMIT"
|
||||
fi
|
||||
ulimit -n $MAX_FD
|
||||
if [ $? -ne 0 ] ; then
|
||||
warn "Could not set maximum file descriptor limit: $MAX_FD"
|
||||
fi
|
||||
else
|
||||
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
|
||||
fi
|
||||
fi
|
||||
|
||||
# For Darwin, add options to specify how the application appears in the dock
|
||||
if $darwin; then
|
||||
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
|
||||
fi
|
||||
|
||||
# For Cygwin, switch paths to Windows format before running java
|
||||
if $cygwin ; then
|
||||
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
|
||||
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
|
||||
JAVACMD=`cygpath --unix "$JAVACMD"`
|
||||
|
||||
# We build the pattern for arguments to be converted via cygpath
|
||||
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
|
||||
SEP=""
|
||||
for dir in $ROOTDIRSRAW ; do
|
||||
ROOTDIRS="$ROOTDIRS$SEP$dir"
|
||||
SEP="|"
|
||||
done
|
||||
OURCYGPATTERN="(^($ROOTDIRS))"
|
||||
# Add a user-defined pattern to the cygpath arguments
|
||||
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
|
||||
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
|
||||
fi
|
||||
# Now convert the arguments - kludge to limit ourselves to /bin/sh
|
||||
i=0
|
||||
for arg in "$@" ; do
|
||||
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
|
||||
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
|
||||
|
||||
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
|
||||
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
|
||||
else
|
||||
eval `echo args$i`="\"$arg\""
|
||||
fi
|
||||
i=$((i+1))
|
||||
done
|
||||
case $i in
|
||||
(0) set -- ;;
|
||||
(1) set -- "$args0" ;;
|
||||
(2) set -- "$args0" "$args1" ;;
|
||||
(3) set -- "$args0" "$args1" "$args2" ;;
|
||||
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
|
||||
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
|
||||
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
|
||||
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
|
||||
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
|
||||
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# Escape application args
|
||||
save () {
|
||||
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
|
||||
echo " "
|
||||
}
|
||||
APP_ARGS=$(save "$@")
|
||||
|
||||
# Collect all arguments for the java command, following the shell quoting and substitution rules
|
||||
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
|
||||
|
||||
# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
|
||||
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
|
||||
cd "$(dirname "$0")"
|
||||
fi
|
||||
|
||||
exec "$JAVACMD" "$@"
|
||||
@@ -6,87 +6,63 @@ include(../java-common.cmake)
|
||||
include_directories(
|
||||
../../../src/java.base/share/native/include
|
||||
../../../src/java.base/share/native/libjava
|
||||
../../../src/java.desktop/share/native
|
||||
../../../src/java.desktop/share/native/libjsound
|
||||
../../../src/java.desktop/share/native/libmlib_image
|
||||
../../../src/java.desktop/share/native/libfreetype
|
||||
../../../src/java.desktop/share/native/common
|
||||
../../../src/java.desktop/share/native/common/awt/debug
|
||||
../../../src/java.desktop/share/native/common/font
|
||||
../../../src/java.desktop/share/native/common/java2d/opengl
|
||||
../../../src/java.desktop/share/native/common/java2d/opengl/J2D_GL
|
||||
../../../src/java.desktop/share/native/include
|
||||
../../../src/java.desktop/share/native/libawt/awt/image
|
||||
../../../src/java.desktop/share/native/libawt/awt/image/cvutils
|
||||
../../../src/java.desktop/share/native/libawt/awt/medialib
|
||||
../../../src/java.desktop/share/native/libawt/java2d
|
||||
../../../src/java.desktop/share/native/libawt/java2d/loops
|
||||
../../../src/java.desktop/share/native/libawt/java2d/pipe
|
||||
../../../src/java.desktop/share/native/libfontmanager
|
||||
../../../src/java.desktop/share/native/libfontmanager/harfbuzz
|
||||
../../../src/java.desktop/share/native/libfreetype/include
|
||||
../../../src/java.desktop/share/native/libfreetype/include/freetype
|
||||
../../../src/java.desktop/share/native/libfreetype/include/freetype/config
|
||||
../../../src/java.desktop/share/native/libfreetype/include/freetype/internal
|
||||
../../../src/java.desktop/share/native/libfreetype/include/freetype/internal/services
|
||||
../../../src/java.desktop/share/native/libfreetype/src
|
||||
../../../src/java.desktop/share/native/libfreetype/src/type1
|
||||
../../../src/java.desktop/share/native/libfreetype/src/autofit
|
||||
../../../src/java.desktop/share/native/libfreetype/src/base
|
||||
../../../src/java.desktop/share/native/libfreetype/src/cff
|
||||
../../../src/java.desktop/share/native/libfreetype/src/cid
|
||||
../../../src/java.desktop/share/native/libfreetype/src/psaux
|
||||
../../../src/java.desktop/share/native/libfreetype/src/pshinter
|
||||
../../../src/java.desktop/share/native/libfreetype/src/psnames
|
||||
../../../src/java.desktop/share/native/libfreetype/src/raster
|
||||
../../../src/java.desktop/share/native/libfreetype/src/sfnt
|
||||
../../../src/java.desktop/share/native/libfreetype/src/smooth
|
||||
../../../src/java.desktop/share/native/libfreetype/src/cff
|
||||
../../../src/java.desktop/share/native/libfreetype/src/psaux
|
||||
../../../src/java.desktop/share/native/libfreetype/src/cid
|
||||
../../../src/java.desktop/share/native/libfreetype/src/autofit
|
||||
../../../src/java.desktop/share/native/libfreetype/src/pshinter
|
||||
../../../src/java.desktop/share/native/libfreetype/src/truetype
|
||||
../../../src/java.desktop/share/native/libfreetype/src/raster
|
||||
../../../src/java.desktop/share/native/libfreetype/src/psnames
|
||||
../../../src/java.desktop/share/native/libfreetype/src/base
|
||||
../../../src/java.desktop/share/native/include
|
||||
../../../src/java.desktop/share/native/common
|
||||
../../../src/java.desktop/share/native/common/java2d
|
||||
../../../src/java.desktop/share/native/common/java2d/opengl
|
||||
../../../src/java.desktop/share/native/common/java2d/opengl/J2D_GL
|
||||
../../../src/java.desktop/share/native/common/awt
|
||||
../../../src/java.desktop/share/native/common/awt/medialib
|
||||
../../../src/java.desktop/share/native/common/awt/debug
|
||||
../../../src/java.desktop/share/native/common/awt/utility
|
||||
../../../src/java.desktop/share/native/common/font
|
||||
../../../src/java.desktop/share/native/libawt
|
||||
../../../src/java.desktop/share/native/libawt/java2d
|
||||
../../../src/java.desktop/share/native/libawt/java2d/pipe
|
||||
../../../src/java.desktop/share/native/libawt/java2d/loops
|
||||
../../../src/java.desktop/share/native/libawt/awt
|
||||
../../../src/java.desktop/share/native/libawt/awt/image
|
||||
../../../src/java.desktop/share/native/libawt/awt/image/cvutils
|
||||
../../../src/java.desktop/share/native/libawt/awt/image/gif
|
||||
../../../src/java.desktop/share/native/libawt/awt/medialib
|
||||
../../../src/java.desktop/share/native/libfreetype/src/type1
|
||||
../../../src/java.desktop/share/native/libjavajpeg
|
||||
../../../src/java.desktop/share/native/libfontmanager
|
||||
../../../src/java.desktop/share/native/libfontmanager/harfbuzz
|
||||
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ucdn
|
||||
../../../src/java.desktop/share/native/libjsound
|
||||
../../../src/java.desktop/share/native/liblcms
|
||||
../../../src/java.desktop/share/native/libmlib_image
|
||||
../../../src/java.desktop/share/native/libsplashscreen
|
||||
../../../src/java.desktop/share/native/libsplashscreen/giflib
|
||||
../../../src/java.desktop/share/native/libsplashscreen/libpng
|
||||
../../../src/java.desktop/share/native/libsplashscreen/giflib)
|
||||
)
|
||||
|
||||
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin" OR ${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
||||
include_directories(
|
||||
../../../src/hotspot/os/posix/include
|
||||
../../../src/java.base/unix/native/include
|
||||
../../../src/java.base/unix/native/libjava
|
||||
../../../src/java.desktop/unix/native
|
||||
../../../src/java.desktop/unix/native/libawt_headless
|
||||
../../../src/java.desktop/unix/native/libawt_headless/awt
|
||||
../../../src/java.desktop/unix/native/libmlib_image
|
||||
../../../src/java.desktop/unix/native/include
|
||||
../../../src/java.desktop/unix/native/libjawt
|
||||
../../../src/java.desktop/unix/native/common
|
||||
../../../src/java.desktop/unix/native/common/java2d
|
||||
../../../src/java.desktop/unix/native/common/java2d/x11
|
||||
../../../src/java.desktop/unix/native/common/java2d/opengl
|
||||
../../../src/java.desktop/unix/native/common/java2d/opengl/J2D_GL
|
||||
../../../src/java.desktop/unix/native/common/awt
|
||||
../../../src/java.desktop/unix/native/common/awt/systemscale
|
||||
../../../src/java.desktop/unix/native/common/awt/medialib
|
||||
../../../src/java.desktop/unix/native/common/awt/systemscale
|
||||
../../../src/java.desktop/unix/native/common/awt/utility
|
||||
../../../src/java.desktop/unix/native/common/font
|
||||
../../../src/java.desktop/unix/native/libawt
|
||||
../../../src/java.desktop/unix/native/common/java2d/opengl
|
||||
../../../src/java.desktop/unix/native/common/java2d/opengl/J2D_GL
|
||||
../../../src/java.desktop/unix/native/common
|
||||
../../../src/java.desktop/unix/native/include
|
||||
../../../src/java.desktop/unix/native/libawt/java2d
|
||||
../../../src/java.desktop/unix/native/libawt/java2d/loops
|
||||
../../../src/java.desktop/unix/native/libawt/awt
|
||||
../../../src/java.desktop/unix/native/libawt_xawt
|
||||
../../../src/java.desktop/unix/native/libawt_xawt/java2d
|
||||
../../../src/java.desktop/unix/native/libawt_xawt/java2d/x11
|
||||
../../../src/java.desktop/unix/native/libawt_xawt/awt
|
||||
../../../src/java.desktop/unix/native/libawt_xawt/xawt
|
||||
../../../src/java.desktop/unix/native/libfontmanager
|
||||
../../../src/java.desktop/unix/native/libmlib_image
|
||||
../../../src/java.desktop/unix/native/libsplashscreen)
|
||||
endif()
|
||||
|
||||
@@ -95,7 +71,7 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||
find_library(JAVA_NATIVE_FOUNDATION JavaNativeFoundation)
|
||||
include_directories(
|
||||
../../../src/java.desktop/macosx/native/libosxapp
|
||||
../../../build/macosx-x86_64-server-release/support/headers/java.desktop
|
||||
../../../build//macosx-x86_64-normal-server-release//support/headers/java.desktop
|
||||
)
|
||||
|
||||
elseif(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
||||
@@ -107,22 +83,16 @@ elseif("${CMAKE_SYSTEM_NAME}" MATCHES "CYGWIN")
|
||||
../../../src/hotspot/os/windows/include
|
||||
../../../src/java.base/windows/native/include
|
||||
../../../src/java.base/windows/native/libjava
|
||||
../../../src/java.desktop/windows/native/
|
||||
../../../src/java.desktop/windows/native/libjsound
|
||||
../../../src/java.desktop/windows/native/include
|
||||
../../../src/java.desktop/windows/native/libjawt
|
||||
../../../src/java.desktop/windows/native/common
|
||||
../../../src/java.desktop/windows/native/common/awt
|
||||
../../../src/java.desktop/windows/native/common/awt/systemscale
|
||||
../../../src/java.desktop/windows/native/common/awt/utility
|
||||
../../../src/java.desktop/windows/native/libawt
|
||||
../../../src/java.desktop/windows/native/include
|
||||
../../../src/java.desktop/windows/native/libawt/java2d
|
||||
../../../src/java.desktop/windows/native/libawt/java2d/windows
|
||||
../../../src/java.desktop/windows/native/libawt/java2d/d3d
|
||||
../../../src/java.desktop/windows/native/libawt/java2d/opengl
|
||||
../../../src/java.desktop/windows/native/libawt/java2d/opengl/J2D_GL
|
||||
../../../src/java.desktop/windows/native/libawt/java2d/d3d
|
||||
../../../src/java.desktop/windows/native/libawt/java2d/windows
|
||||
../../../src/java.desktop/windows/native/libawt/windows
|
||||
../../../src/java.desktop/windows/native/libfontmanager
|
||||
../../../src/java.desktop/windows/native/libjsound
|
||||
../../../src/java.desktop/windows/native/libsplashscreen)
|
||||
endif()
|
||||
|
||||
@@ -803,8 +773,10 @@ set(SOURCE_FILES
|
||||
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ft.h
|
||||
../../../src/java.desktop/share/native/libfontmanager/glyphblitting.h
|
||||
../../../src/java.desktop/share/native/libfontmanager/hb-jdk.h
|
||||
../../../src/java.desktop/share/native/libfontmanager/fontconfig.h
|
||||
../../../src/java.desktop/share/native/libfontmanager/freetypeScaler.c
|
||||
../../../src/java.desktop/share/native/libfontmanager/scriptMapping.h
|
||||
../../../src/java.desktop/share/native/libfontmanager/ColorGlyphSurfaceData.c
|
||||
../../../src/java.desktop/share/native/libfontmanager/sunFont.c
|
||||
../../../src/java.desktop/share/native/libfontmanager/fontscaler.h
|
||||
../../../src/java.desktop/share/native/liblcms/cmsps2.c
|
||||
@@ -871,6 +843,9 @@ set(SOURCE_FILES
|
||||
../../../src/java.desktop/share/native/libsplashscreen/java_awt_SplashScreen.c
|
||||
../../../src/java.desktop/share/native/libsplashscreen/splashscreen_gfx_impl.c
|
||||
../../../src/java.desktop/share/native/libsplashscreen/splashscreen_impl.c
|
||||
|
||||
|
||||
../../../src/java.desktop/share/native/include/jawt.h
|
||||
../../../src/jdk.jdwp.agent/share/native/include/jdwpTransport.h
|
||||
../../../src/hotspot/share/include/jmm.h
|
||||
../../../src/java.base/share/native/include/jni.h
|
||||
@@ -879,6 +854,7 @@ set(SOURCE_FILES
|
||||
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||
set(SOURCE_FILES
|
||||
${SOURCE_FILES}
|
||||
../../../src/java.desktop/macosx/native/include/jawt_md.h
|
||||
|
||||
../../../src/java.desktop/macosx/native/libjsound/PLATFORM_API_MacOSX_MidiOut.c
|
||||
../../../src/java.desktop/macosx/native/libjsound/PLATFORM_API_MacOSX_Utils.cpp
|
||||
@@ -889,41 +865,9 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||
../../../src/java.desktop/macosx/native/libjsound/PLATFORM_API_MacOSX_PCM.cpp
|
||||
../../../src/java.desktop/macosx/native/libjsound/PLATFORM_API_MacOSX_MidiUtils.c
|
||||
../../../src/java.desktop/macosx/native/include/jawt_md.h
|
||||
../../../src/java.desktop/macosx/native/libosx/Dispatch.m
|
||||
../../../src/java.desktop/macosx/native/libosx/CFileManager.m
|
||||
../../../src/java.desktop/macosx/native/libjawt/jawt.m
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLBufImgOps.m
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLGraphicsConfig.h
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLContext.m
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLPaints.h
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLVertexCache.m
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLLayer.h
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLRenderQueue.m
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLMaskFill.m
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLTextRenderer.m
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLBlitLoops.h
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLSurfaceData.m
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLFuncs.m
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLRenderer.h
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLMaskBlit.h
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLVertexCache.h
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLLayer.m
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLPaints.m
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLContext.h
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLGraphicsConfig.m
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLBufImgOps.h
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLSurfaceDataBase.h
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLRenderQueue.h
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLBlitLoops.m
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLTextRenderer.h
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLMaskFill.h
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLMaskBlit.m
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLRenderer.m
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLFuncs.h
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLSurfaceData.h
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLUtils.h
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLUtils.m
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLTexturePool.h
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLTexturePool.m
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/java2d/opengl/CGLSurfaceData.h
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/java2d/opengl/J2D_GL/cglext.h
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/java2d/opengl/CGLGraphicsConfig.h
|
||||
@@ -967,6 +911,7 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/awt/CFileDialog.h
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/awt/AWTWindow.h
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/awt/LWCToolkit.h
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/awt/CGraphicsConfig.m
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/awt/CDesktopPeer.m
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/awt/PrintModel.h
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/awt/CTrayIcon.m
|
||||
@@ -982,7 +927,6 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/awt/CPrinterJob.m
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/awt/CMenuBar.m
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/awt/QuartzSurfaceData.m
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/awt/common.h
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/awt/CMenu.m
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/awt/ImageSurfaceData.m
|
||||
../../../src/java.desktop/macosx/native/libawt_lwawt/awt/CDragSource.h
|
||||
@@ -1032,6 +976,7 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||
../../../src/java.desktop/macosx/native/libosxapp/QueuingApplicationDelegate.h
|
||||
../../../src/java.desktop/macosx/native/libosxapp/PropertiesUtilities.h
|
||||
../../../src/java.desktop/macosx/native/libosxapp/AWT_debug.h
|
||||
../../../src/java.desktop/macosx/native/libsplashscreen/libpng/zlibwrapper/zlib.h
|
||||
../../../src/java.desktop/macosx/native/libsplashscreen/splashscreen_config.h
|
||||
../../../src/java.desktop/macosx/native/libsplashscreen/splashscreen_sys.m
|
||||
../../../src/java.desktop/macosx/native/libosxui/JRSUIController.m
|
||||
@@ -1207,6 +1152,7 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin" OR ${CMAKE_SYSTEM_NAME} MATCHES "Linux"
|
||||
../../../src/java.desktop/unix/native/libawt_xawt/java2d/x11/XRBackendNative.c
|
||||
../../../src/java.desktop/unix/native/libawt_xawt/java2d/x11/XRSurfaceData.c
|
||||
../../../src/java.desktop/unix/native/libawt_xawt/awt/gtk2_interface.c
|
||||
../../../src/java.desktop/unix/native/libawt_xawt/awt/randr.h
|
||||
../../../src/java.desktop/unix/native/libawt_xawt/awt/list.c
|
||||
../../../src/java.desktop/unix/native/libawt_xawt/awt/awt_DrawingSurface.c
|
||||
../../../src/java.desktop/unix/native/libawt_xawt/awt/swing_GTKStyle.c
|
||||
@@ -1221,6 +1167,8 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin" OR ${CMAKE_SYSTEM_NAME} MATCHES "Linux"
|
||||
../../../src/java.desktop/unix/native/libawt_xawt/awt/multi_font.c
|
||||
../../../src/java.desktop/unix/native/libawt_xawt/awt/multiVis.h
|
||||
../../../src/java.desktop/unix/native/libawt_xawt/awt/awt_Event.c
|
||||
../../../src/java.desktop/unix/native/libawt_xawt/awt/Xrandr.h
|
||||
../../../src/java.desktop/unix/native/libawt_xawt/awt/robot_common.c
|
||||
../../../src/java.desktop/unix/native/libawt_xawt/awt/awt_util.c
|
||||
../../../src/java.desktop/unix/native/libawt_xawt/awt/list.h
|
||||
../../../src/java.desktop/unix/native/libawt_xawt/awt/gtk2_interface.h
|
||||
@@ -1228,11 +1176,13 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin" OR ${CMAKE_SYSTEM_NAME} MATCHES "Linux"
|
||||
../../../src/java.desktop/unix/native/libawt_xawt/awt/gtk3_interface.c
|
||||
../../../src/java.desktop/unix/native/libawt_xawt/awt/gtk_interface.h
|
||||
../../../src/java.desktop/unix/native/libawt_xawt/awt/awt_Robot.c
|
||||
../../../src/java.desktop/unix/native/libawt_xawt/awt/HPkeysym.h
|
||||
../../../src/java.desktop/unix/native/libawt_xawt/awt/awt_Event.h
|
||||
../../../src/java.desktop/unix/native/libawt_xawt/awt/multiVis.c
|
||||
../../../src/java.desktop/unix/native/libawt_xawt/awt/canvas.h
|
||||
../../../src/java.desktop/unix/native/libawt_xawt/awt/awt_AWTEvent.c
|
||||
../../../src/java.desktop/unix/native/libawt_xawt/awt/multi_font.h
|
||||
../../../src/java.desktop/unix/native/libawt_xawt/awt/robot_common.h
|
||||
../../../src/java.desktop/unix/native/libawt_xawt/awt/sun_awt_X11_GtkFileDialogPeer.c
|
||||
../../../src/java.desktop/unix/native/libawt_xawt/awt/awt_GraphicsEnv.c
|
||||
../../../src/java.desktop/unix/native/libawt_xawt/awt/awt_InputMethod.c
|
||||
@@ -1267,6 +1217,7 @@ elseif("${CMAKE_SYSTEM_NAME}" MATCHES "CYGWIN")
|
||||
../../../src/java.desktop/windows/native/libjsound/PLATFORM_API_WinOS_Ports.c
|
||||
../../../src/java.desktop/windows/native/include/jawt_md.h
|
||||
../../../src/java.desktop/windows/native/libjawt/jawt.cpp
|
||||
../../../src/java.desktop/windows/native/common/awt_makecube.cpp
|
||||
../../../src/java.desktop/windows/native/common/awt/systemscale/systemScale.h
|
||||
../../../src/java.desktop/windows/native/common/awt/systemscale/systemScale.cpp
|
||||
../../../src/java.desktop/windows/native/common/awt/utility/rect.h
|
||||
@@ -1473,6 +1424,7 @@ elseif("${CMAKE_SYSTEM_NAME}" MATCHES "CYGWIN")
|
||||
../../../src/java.desktop/windows/native/libawt/windows/awt_Window.h
|
||||
../../../src/java.desktop/windows/native/libawt/windows/awt_Checkbox.cpp
|
||||
../../../src/java.desktop/windows/native/libawt/windows/awt_Palette.cpp
|
||||
../../../src/java.desktop/windows/native/libfontmanager/lcdglyphDW.cpp
|
||||
../../../src/java.desktop/windows/native/libfontmanager/fontpath.c
|
||||
../../../src/java.desktop/windows/native/libfontmanager/lcdglyph.c
|
||||
../../../src/java.desktop/windows/native/libsplashscreen/splashscreen_config.h
|
||||
|
||||
BIN
jb/tests/testdata/quality/text/osx_software_rendering/droidsans0_20.png
vendored
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
jb/tests/testdata/quality/text/osx_software_rendering/droidsans1_20.png
vendored
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
jb/tests/testdata/quality/text/osx_software_rendering/droidsansmono0_20.png
vendored
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
jb/tests/testdata/quality/text/osx_software_rendering/droidsansmonodotted0_20.png
vendored
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
jb/tests/testdata/quality/text/osx_software_rendering/droidsansmonoslashed0_20.png
vendored
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
jb/tests/testdata/quality/text/osx_software_rendering/droidserif0_20.png
vendored
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
jb/tests/testdata/quality/text/osx_software_rendering/droidserif1_20.png
vendored
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
jb/tests/testdata/quality/text/osx_software_rendering/droidserif2_20.png
vendored
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
jb/tests/testdata/quality/text/osx_software_rendering/droidserif3_20.png
vendored
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
47
jb/tests/tests.iml
Normal file
@@ -0,0 +1,47 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
||||
</content>
|
||||
<content url="file://$MODULE_DIR$/../../../test/java/awt/Graphics2D">
|
||||
<sourceFolder url="file://$MODULE_DIR$/../../../test/java/awt/Graphics2D" isTestSource="false" />
|
||||
</content>
|
||||
<content url="file://$MODULE_DIR$/../../../test/sun/java2d">
|
||||
<sourceFolder url="file://$MODULE_DIR$/../../../test/sun/java2d" isTestSource="false" />
|
||||
</content>
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="module-library">
|
||||
<library>
|
||||
<CLASSES>
|
||||
<root url="file://$APPLICATION_HOME_DIR$/lib/junit-4.12.jar" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES />
|
||||
<jarDirectory url="file://$APPLICATION_HOME_DIR$/lib/junit-4.12.jar" recursive="false" />
|
||||
</library>
|
||||
</orderEntry>
|
||||
<orderEntry type="module-library">
|
||||
<library>
|
||||
<CLASSES>
|
||||
<root url="file://$APPLICATION_HOME_DIR$/lib/junit.jar" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES />
|
||||
<jarDirectory url="file://$APPLICATION_HOME_DIR$/lib/junit.jar" recursive="false" />
|
||||
</library>
|
||||
</orderEntry>
|
||||
<orderEntry type="module-library">
|
||||
<library name="JUnit4">
|
||||
<CLASSES>
|
||||
<root url="jar://$APPLICATION_HOME_DIR$/lib/junit-4.12.jar!/" />
|
||||
<root url="jar://$APPLICATION_HOME_DIR$/lib/hamcrest-core-1.3.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES />
|
||||
</library>
|
||||
</orderEntry>
|
||||
</component>
|
||||
</module>
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2015, 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
|
||||
@@ -42,7 +42,7 @@ MODULES_SYMBOLS_FILES := $(foreach module, $(EXPORTED_SYMBOLS_MODULES), \
|
||||
|
||||
$(GLOBAL_SYMBOLS_FILE): $(MODULES_SYMBOLS_FILES)
|
||||
$(call LogInfo, Generating global exported.symbols file)
|
||||
$(call MakeTargetDir)
|
||||
$(MKDIR) -p $(@D)
|
||||
$(CAT) $^ > $@
|
||||
|
||||
TARGETS += $(GLOBAL_SYMBOLS_FILE)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2016, 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
|
||||
@@ -35,7 +35,7 @@ DOCS_TARGETS :=
|
||||
# On Windows tar frequently complains that "file changed as we read it" for
|
||||
# some random source files. This seems to be cause by anti virus scanners and
|
||||
# is most likely safe to ignore. When it happens, tar returns '1'.
|
||||
ifeq ($(call isBuildOs, windows), true)
|
||||
ifeq ($(OPENJDK_BUILD_OS), windows)
|
||||
TAR_IGNORE_EXIT_VALUE := || test "$$$$?" = "1"
|
||||
endif
|
||||
|
||||
@@ -70,7 +70,6 @@ define SetupBundleFileBody
|
||||
$$(call SetIfEmpty, $1_UNZIP_DEBUGINFO, false)
|
||||
|
||||
$(BUNDLES_OUTPUTDIR)/$$($1_BUNDLE_NAME): $$($1_FILES)
|
||||
$$(call MakeTargetDir)
|
||||
# If any of the files contain a space in the file name, CacheFind
|
||||
# will have replaced it with ?. Tar does not accept that so need to
|
||||
# switch it back.
|
||||
@@ -80,6 +79,7 @@ define SetupBundleFileBody
|
||||
$$(CAT) $$($1_$$d_LIST_FILE) | $$(TR) '?' ' ' > $$($1_$$d_LIST_FILE).tmp \
|
||||
&& $(MV) $$($1_$$d_LIST_FILE).tmp $$($1_$$d_LIST_FILE) $$(NEWLINE) \
|
||||
)
|
||||
$$(call MakeDir, $$(@D))
|
||||
ifneq ($$($1_SPECIAL_INCLUDES), )
|
||||
$$(foreach i, $$($1_SPECIAL_INCLUDES), \
|
||||
$$(foreach d, $$($1_BASE_DIRS), \
|
||||
@@ -144,7 +144,7 @@ endef
|
||||
|
||||
# On Macosx, we bundle up the macosx specific images which already have the
|
||||
# correct base directories.
|
||||
ifeq ($(call isTargetOs, macosx)+$(DEBUG_LEVEL), true+release)
|
||||
ifeq ($(OPENJDK_TARGET_OS)-$(DEBUG_LEVEL), macosx-release)
|
||||
JDK_IMAGE_DIR := $(JDK_MACOSX_BUNDLE_DIR)
|
||||
JDK_IMAGE_HOMEDIR := $(JDK_MACOSX_CONTENTS_DIR)/Home
|
||||
JDK_BUNDLE_SUBDIR :=
|
||||
@@ -167,7 +167,7 @@ ifneq ($(filter product-bundles, $(MAKECMDGOALS)), )
|
||||
|
||||
# Create special filter rules when dealing with unzipped .dSYM directories on
|
||||
# macosx
|
||||
ifeq ($(call isTargetOs, macosx), true)
|
||||
ifeq ($(OPENJDK_TARGET_OS), macosx)
|
||||
ifeq ($(ZIP_EXTERNAL_DEBUG_SYMBOLS), false)
|
||||
JDK_SYMBOLS_EXCLUDE_PATTERN := $(addprefix %, \
|
||||
$(call containing, .dSYM/, $(patsubst $(JDK_IMAGE_DIR)/%, %, $(ALL_JDK_FILES))))
|
||||
@@ -262,21 +262,6 @@ endif
|
||||
|
||||
################################################################################
|
||||
|
||||
ifneq ($(filter jcov-bundles, $(MAKECMDGOALS)), )
|
||||
JCOV_BUNDLE_FILES := $(call CacheFind, $(JCOV_IMAGE_DIR))
|
||||
|
||||
$(eval $(call SetupBundleFile, BUILD_JCOV_BUNDLE, \
|
||||
BUNDLE_NAME := $(JCOV_BUNDLE_NAME), \
|
||||
FILES := $(JCOV_BUNDLE_FILES), \
|
||||
BASE_DIRS := $(JCOV_IMAGE_DIR), \
|
||||
SUBDIR := $(JDK_BUNDLE_SUBDIR), \
|
||||
))
|
||||
|
||||
JCOV_TARGETS += $(BUILD_JCOV_BUNDLE)
|
||||
endif
|
||||
|
||||
################################################################################
|
||||
|
||||
# Hook to include the corresponding custom file, if present.
|
||||
$(eval $(call IncludeCustomExtension, Bundles.gmk))
|
||||
|
||||
@@ -285,6 +270,5 @@ $(eval $(call IncludeCustomExtension, Bundles.gmk))
|
||||
product-bundles: $(PRODUCT_TARGETS)
|
||||
test-bundles: $(TEST_TARGETS)
|
||||
docs-bundles: $(DOCS_TARGETS)
|
||||
jcov-bundles: $(JCOV_TARGETS)
|
||||
|
||||
.PHONY: all default product-bundles test-bundles docs-bundles jcov-bundles
|
||||
.PHONY: all default product-bundles test-bundles docs-bundles
|
||||
|
||||
@@ -1,60 +0,0 @@
|
||||
#
|
||||
# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
default: all
|
||||
|
||||
include $(SPEC)
|
||||
include MakeBase.gmk
|
||||
|
||||
# When FIXPATH is set, let it process the file to make sure all paths are usable
|
||||
# by system native tools. The FIXPATH tool assumes arguments preceeded by an @
|
||||
# character points to a text file containing further arguments (similar to a
|
||||
# linker). It replaces any such arguments with a different temporary filename,
|
||||
# whose contents has been processed to make any paths native. To obtain a
|
||||
# properly processed compile_commands.json, FIXPATH is then made to invoke an
|
||||
# AWK script with the unprocessed json file as the only argument, prepended with
|
||||
# an @ character. The AWK script simply copies the contents of this processed
|
||||
# file.
|
||||
#
|
||||
# The sed command encloses the fragments inside brackets and removes the final
|
||||
# trailing comma.
|
||||
$(OUTPUTDIR)/compile_commands.json: $(wildcard $(MAKESUPPORT_OUTPUTDIR)/compile-commands/*.json)
|
||||
$(call LogWarn, Updating compile_commands.json)
|
||||
$(RM) $@
|
||||
$(FIND) $(MAKESUPPORT_OUTPUTDIR)/compile-commands/ -name \*.json | \
|
||||
$(SORT) | $(XARGS) $(CAT) >> $@.tmp
|
||||
$(if $(FIXPATH),$(FIXPATH) $(AWK) 'BEGIN { \
|
||||
tmpfile = substr(ARGV[2],2); \
|
||||
cmd = "$(CP) " "\047" tmpfile "\047" " $@.tmp"; \
|
||||
system(cmd); \
|
||||
}' -- @$@.tmp)
|
||||
$(SED) -e '1s/^/[\$(NEWLINE)/' -e '$(DOLLAR)s/,\s\{0,\}$(DOLLAR)/\$(NEWLINE)]/' $@.tmp > $@
|
||||
$(RM) $@.tmp
|
||||
|
||||
TARGETS += $(OUTPUTDIR)/compile_commands.json
|
||||
|
||||
all: $(TARGETS)
|
||||
|
||||
.PHONY: all
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2016, 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
|
||||
@@ -234,7 +234,7 @@ $(SUPPORT_OUTPUTDIR)/demos/image/nbproject/%: $(DEMO_SHARE_SRC)/nbproject/%
|
||||
$(call install-file)
|
||||
$(CHMOD) -f ug+w $@
|
||||
|
||||
ifeq ($(call isTargetOs, solaris), true)
|
||||
ifeq ($(OPENJDK_TARGET_OS), solaris)
|
||||
TARGETS += $(patsubst $(DEMO_SHARE_SRC)/nbproject/%, \
|
||||
$(SUPPORT_OUTPUTDIR)/demos/image/nbproject/%, \
|
||||
$(call CacheFind, $(DEMO_SHARE_SRC)/nbproject))
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2014, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2014, 2018, 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
|
||||
@@ -38,7 +38,7 @@ $(eval $(call IncludeCustomExtension, CompileJavaModules.gmk))
|
||||
################################################################################
|
||||
# Module specific build settings
|
||||
|
||||
java.base_ADD_JAVAC_FLAGS += -Xdoclint:all/protected,-reference,-accessibility '-Xdoclint/package:java.*,javax.*' -XDstringConcat=inline
|
||||
java.base_ADD_JAVAC_FLAGS += -Xdoclint:all/protected,-reference '-Xdoclint/package:java.*,javax.*' -XDstringConcat=inline
|
||||
java.base_COPY += .icu .dat .spp content-types.properties hijrah-config-islamic-umalqura.properties
|
||||
java.base_CLEAN += intrinsic.properties
|
||||
|
||||
@@ -51,18 +51,21 @@ java.base_EXCLUDES += java/lang/doc-files
|
||||
# data files and shouldn't go in the product
|
||||
java.base_EXCLUDE_FILES += sun/text/resources/BreakIteratorRules.java
|
||||
|
||||
ifeq ($(call isTargetOs, solaris), false)
|
||||
ifneq ($(OPENJDK_TARGET_OS), solaris)
|
||||
java.base_EXCLUDE_FILES += \
|
||||
SolarisLoginModule.java \
|
||||
SolarisSystem.java \
|
||||
#
|
||||
endif
|
||||
|
||||
ifeq ($(call isTargetOs, solaris macosx aix), false)
|
||||
ifeq ($(filter $(OPENJDK_TARGET_OS), solaris macosx aix), )
|
||||
#
|
||||
# only solaris, macosx and aix
|
||||
#
|
||||
java.base_EXCLUDE_FILES += sun/nio/fs/PollingWatchService.java
|
||||
endif
|
||||
|
||||
ifeq ($(call isTargetOs, windows), true)
|
||||
ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
java.base_EXCLUDE_FILES += \
|
||||
sun/nio/ch/SimpleAsynchronousFileChannelImpl.java \
|
||||
#
|
||||
@@ -79,8 +82,8 @@ java.datatransfer_COPY += flavormap.properties
|
||||
|
||||
################################################################################
|
||||
|
||||
java.desktop_ADD_JAVAC_FLAGS += -Xdoclint:all/protected,-reference,-accessibility \
|
||||
'-Xdoclint/package:java.*,javax.*' -Xlint:exports \
|
||||
java.desktop_ADD_JAVAC_FLAGS += -Xdoclint:all/protected,-reference \
|
||||
'-Xdoclint/package:java.*,javax.*' -Xlint:exports -Xlint:-serial \
|
||||
--doclint-format html4
|
||||
java.desktop_COPY += .gif .png .wav .txt .xml .css .pf
|
||||
java.desktop_CLEAN += iio-plugin.properties cursors.properties
|
||||
@@ -121,7 +124,7 @@ java.desktop_EXCLUDE_FILES += \
|
||||
.template \
|
||||
#
|
||||
|
||||
ifeq ($(call isTargetOs, macosx), true)
|
||||
ifeq ($(OPENJDK_TARGET_OS), macosx)
|
||||
# exclude all X11 on Mac.
|
||||
java.desktop_EXCLUDES += \
|
||||
sun/awt/X11 \
|
||||
@@ -183,7 +186,7 @@ else
|
||||
sun/awt/X11/XwcTextItem.java
|
||||
endif
|
||||
|
||||
ifeq ($(call isTargetOs, windows), true)
|
||||
ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
java.desktop_EXCLUDES += com/sun/java/swing/plaf/gtk
|
||||
endif
|
||||
|
||||
@@ -191,7 +194,8 @@ ifdef BUILD_HEADLESS_ONLY
|
||||
java.desktop_EXCLUDES += sun/applet
|
||||
endif
|
||||
|
||||
ifeq ($(call isTargetOs, windows macosx), false)
|
||||
# Used on windows and macosx
|
||||
ifeq ($(filter $(OPENJDK_TARGET_OS), windows macosx), )
|
||||
java.desktop_EXCLUDE_FILES += sun/awt/AWTCharset.java
|
||||
endif
|
||||
|
||||
@@ -220,15 +224,15 @@ java.scripting_CLEAN += .properties
|
||||
|
||||
################################################################################
|
||||
|
||||
java.instrument_ADD_JAVAC_FLAGS += -Xdoclint:all/protected,-accessibility '-Xdoclint/package:java.*,javax.*'
|
||||
java.instrument_ADD_JAVAC_FLAGS += -Xdoclint:all/protected '-Xdoclint/package:java.*,javax.*'
|
||||
|
||||
################################################################################
|
||||
|
||||
java.logging_ADD_JAVAC_FLAGS += -Xdoclint:all/protected,-reference,-accessibility '-Xdoclint/package:java.*,javax.*'
|
||||
java.logging_ADD_JAVAC_FLAGS += -Xdoclint:all/protected,-reference '-Xdoclint/package:java.*,javax.*'
|
||||
|
||||
################################################################################
|
||||
|
||||
java.management_ADD_JAVAC_FLAGS += -Xdoclint:all/protected,-reference,-accessibility '-Xdoclint/package:java.*,javax.*'
|
||||
java.management_ADD_JAVAC_FLAGS += -Xdoclint:all/protected,-reference '-Xdoclint/package:java.*,javax.*'
|
||||
|
||||
################################################################################
|
||||
|
||||
@@ -249,7 +253,7 @@ java.sql_SETUP := GENERATE_JDKBYTECODE_NOWARNINGS
|
||||
|
||||
################################################################################
|
||||
|
||||
java.sql.rowset_ADD_JAVAC_FLAGS += -Xdoclint:all/protected,-accessibility '-Xdoclint/package:java.*,javax.*'
|
||||
java.sql.rowset_ADD_JAVAC_FLAGS += -Xdoclint:all/protected '-Xdoclint/package:java.*,javax.*'
|
||||
java.sql.rowset_CLEAN_FILES += $(wildcard \
|
||||
$(TOPDIR)/src/java.sql.rowset/share/classes/com/sun/rowset/*.properties \
|
||||
$(TOPDIR)/src/java.sql.rowset/share/classes/javax/sql/rowset/*.properties)
|
||||
@@ -263,14 +267,14 @@ java.rmi_CLEAN_FILES += $(wildcard \
|
||||
|
||||
################################################################################
|
||||
|
||||
java.xml_ADD_JAVAC_FLAGS += -Xdoclint:all/protected,-accessibility \
|
||||
java.xml_ADD_JAVAC_FLAGS += -Xdoclint:all/protected \
|
||||
'-Xdoclint/package:$(call CommaList, javax.xml.catalog javax.xml.datatype \
|
||||
javax.xml.transform javax.xml.validation javax.xml.xpath)'
|
||||
java.xml_CLEAN += .properties
|
||||
|
||||
################################################################################
|
||||
|
||||
java.naming_ADD_JAVAC_FLAGS += -Xdoclint:all/protected,-accessibility '-Xdoclint/package:java.*,javax.*' -Xlint:-exports
|
||||
java.naming_ADD_JAVAC_FLAGS += -Xdoclint:all/protected '-Xdoclint/package:java.*,javax.*' -Xlint:-exports
|
||||
java.naming_CLEAN += jndiprovider.properties
|
||||
|
||||
################################################################################
|
||||
@@ -279,7 +283,7 @@ java.security.jgss_ADD_JAVAC_FLAGS += -Xdoclint:all/protected '-Xdoclint/package
|
||||
|
||||
################################################################################
|
||||
|
||||
java.smartcardio_ADD_JAVAC_FLAGS += -Xdoclint:all/protected,-accessibility '-Xdoclint/package:java.*,javax.*'
|
||||
java.smartcardio_ADD_JAVAC_FLAGS += -Xdoclint:all/protected '-Xdoclint/package:java.*,javax.*'
|
||||
|
||||
################################################################################
|
||||
|
||||
@@ -317,7 +321,7 @@ jdk.jshell_COPY += .jsh .properties
|
||||
|
||||
################################################################################
|
||||
|
||||
jdk.internal.le_COPY += .properties .caps .txt
|
||||
jdk.internal.le_COPY += .properties
|
||||
|
||||
################################################################################
|
||||
|
||||
@@ -370,11 +374,11 @@ SCTP_IMPL_CLASSES = \
|
||||
$(TOPDIR)/src/jdk.sctp/unix/classes/sun/nio/ch/sctp/SendFailed.java \
|
||||
$(TOPDIR)/src/jdk.sctp/unix/classes/sun/nio/ch/sctp/Shutdown.java
|
||||
|
||||
ifeq ($(call isTargetOs, macosx), true)
|
||||
ifeq ($(OPENJDK_TARGET_OS), macosx)
|
||||
jdk.sctp_EXCLUDE_FILES += $(SCTP_IMPL_CLASSES)
|
||||
endif
|
||||
|
||||
ifeq ($(call isTargetOs, aix), true)
|
||||
ifeq ($(OPENJDK_TARGET_OS),aix)
|
||||
jdk.sctp_EXCLUDE_FILES += $(SCTP_IMPL_CLASSES)
|
||||
endif
|
||||
|
||||
@@ -446,22 +450,25 @@ jdk.internal.vm.compiler_ADD_JAVAC_FLAGS += -parameters -XDstringConcat=inline \
|
||||
|
||||
jdk.internal.vm.compiler_EXCLUDES += \
|
||||
jdk.internal.vm.compiler.collections.test \
|
||||
jdk.tools.jaotc.test \
|
||||
org.graalvm.compiler.processor \
|
||||
org.graalvm.compiler.core.match.processor \
|
||||
org.graalvm.compiler.nodeinfo.processor \
|
||||
org.graalvm.compiler.options.processor \
|
||||
org.graalvm.compiler.serviceprovider.processor \
|
||||
org.graalvm.compiler.replacements.processor \
|
||||
org.graalvm.compiler.replacements.jdk9.test \
|
||||
org.graalvm.compiler.api.directives.test \
|
||||
org.graalvm.compiler.api.test \
|
||||
org.graalvm.compiler.asm.aarch64.test \
|
||||
org.graalvm.compiler.asm.amd64.test \
|
||||
org.graalvm.compiler.asm.sparc.test \
|
||||
org.graalvm.compiler.asm.test \
|
||||
org.graalvm.compiler.core.aarch64.test \
|
||||
org.graalvm.compiler.core.amd64.test \
|
||||
org.graalvm.compiler.core.jdk9.test \
|
||||
org.graalvm.compiler.core.match.processor \
|
||||
org.graalvm.compiler.core.sparc.test \
|
||||
org.graalvm.compiler.core.test \
|
||||
org.graalvm.compiler.debug.test \
|
||||
org.graalvm.compiler.graph.test \
|
||||
org.graalvm.compiler.hotspot.amd64.test \
|
||||
org.graalvm.compiler.hotspot.jdk9.test \
|
||||
org.graalvm.compiler.hotspot.lir.test \
|
||||
org.graalvm.compiler.hotspot.sparc.test \
|
||||
org.graalvm.compiler.hotspot.test \
|
||||
@@ -470,17 +477,10 @@ jdk.internal.vm.compiler_EXCLUDES += \
|
||||
org.graalvm.compiler.lir.test \
|
||||
org.graalvm.compiler.loop.test \
|
||||
org.graalvm.compiler.microbenchmarks \
|
||||
org.graalvm.compiler.nodeinfo.processor \
|
||||
org.graalvm.compiler.nodes.test \
|
||||
org.graalvm.compiler.options.processor \
|
||||
org.graalvm.compiler.options.test \
|
||||
org.graalvm.compiler.phases.common.test \
|
||||
org.graalvm.compiler.processor \
|
||||
org.graalvm.compiler.replacements.jdk12.test \
|
||||
org.graalvm.compiler.replacements.jdk9.test \
|
||||
org.graalvm.compiler.replacements.processor \
|
||||
org.graalvm.compiler.replacements.test \
|
||||
org.graalvm.compiler.serviceprovider.processor \
|
||||
org.graalvm.compiler.test \
|
||||
org.graalvm.compiler.virtual.bench \
|
||||
org.graalvm.micro.benchmarks \
|
||||
@@ -511,10 +511,6 @@ jdk.aot_ADD_JAVAC_FLAGS += -parameters -XDstringConcat=inline \
|
||||
--add-exports jdk.internal.vm.ci/jdk.vm.ci.sparc=jdk.internal.vm.compiler,jdk.aot \
|
||||
#
|
||||
|
||||
jdk.aot_EXCLUDES += \
|
||||
jdk.tools.jaotc.test
|
||||
#
|
||||
|
||||
################################################################################
|
||||
|
||||
sun.charsets_COPY += .dat
|
||||
@@ -539,13 +535,8 @@ jdk.jfr_ADD_JAVAC_FLAGS := -XDstringConcat=inline -Xlint:-exports
|
||||
################################################################################
|
||||
# If this is an imported module that has prebuilt classes, only compile
|
||||
# module-info.java.
|
||||
ifneq ($(IMPORT_MODULES_CLASSES), )
|
||||
IMPORT_MODULE_DIR := $(IMPORT_MODULES_CLASSES)/$(MODULE)
|
||||
ifneq ($(wildcard $(IMPORT_MODULE_DIR)), )
|
||||
$(MODULE)_INCLUDE_FILES := module-info.java
|
||||
endif
|
||||
else
|
||||
IMPORT_MODULE_DIR :=
|
||||
ifneq ($(wildcard $(IMPORT_MODULES_CLASSES)/$(MODULE)), )
|
||||
$(MODULE)_INCLUDE_FILES := module-info.java
|
||||
endif
|
||||
|
||||
################################################################################
|
||||
@@ -651,13 +642,13 @@ endif
|
||||
# If this is an imported module, copy the pre built classes and resources into
|
||||
# the modules output dir
|
||||
|
||||
ifneq ($(wildcard $(IMPORT_MODULE_DIR)), )
|
||||
ifneq ($(wildcard $(IMPORT_MODULES_CLASSES)/$(MODULE)), )
|
||||
$(JDK_OUTPUTDIR)/modules/$(MODULE)/_imported.marker: \
|
||||
$(call CacheFind, $(IMPORT_MODULE_DIR))
|
||||
$(call CacheFind, $(IMPORT_MODULES_CLASSES)/$(MODULE))
|
||||
$(call MakeDir, $(@D))
|
||||
# Do not delete marker and build meta data files
|
||||
$(RM) -r $(filter-out $(@D)/_%, $(wildcard $(@D)/*))
|
||||
$(CP) -R $(IMPORT_MODULE_DIR)/* $(@D)/
|
||||
$(CP) -R $(IMPORT_MODULES_CLASSES)/$(MODULE)/* $(@D)/
|
||||
$(TOUCH) $@
|
||||
|
||||
TARGETS += $(JDK_OUTPUTDIR)/modules/$(MODULE)/_imported.marker
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2016, 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
|
||||
|
||||
@@ -29,7 +29,6 @@ include $(SPEC)
|
||||
include MakeBase.gmk
|
||||
include JavaCompilation.gmk
|
||||
include SetupJavaCompilers.gmk
|
||||
include TextFileProcessing.gmk
|
||||
|
||||
################################################################################
|
||||
|
||||
@@ -47,7 +46,6 @@ $(eval $(call SetupJavaCompilation,BUILD_TOOLS_JDK, \
|
||||
SETUP := GENERATE_OLDBYTECODE, \
|
||||
SRC := $(BUILD_TOOLS_SRC_DIRS), \
|
||||
EXCLUDES := \
|
||||
build/tools/classlist \
|
||||
build/tools/deps \
|
||||
build/tools/docs \
|
||||
build/tools/jigsaw \
|
||||
@@ -88,56 +86,4 @@ TARGETS += $(COMPILE_DEPEND) $(DEPEND_SERVICE_PROVIDER)
|
||||
|
||||
################################################################################
|
||||
|
||||
# To be able to call the javascript filter when generating man pages using
|
||||
# pandoc, we need to create this executable wrapper script.
|
||||
ifeq ($(ENABLE_PANDOC), true)
|
||||
# PANDOC_TROFF_MANPAGE_FILTER is duplicated for export in ToolsJdk.gmk.
|
||||
PANDOC_TROFF_MANPAGE_FILTER := \
|
||||
$(BUILDTOOLS_OUTPUTDIR)/manpages/pandoc-troff-manpage-filter
|
||||
PANDOC_TROFF_MANPAGE_FILTER_SETUP := \
|
||||
$(BUILDTOOLS_OUTPUTDIR)/manpages/_pandoc_troff_manpage_filter_setup.marker
|
||||
|
||||
# Create a usable instance of the wrapper script that calls the pandoc filter
|
||||
# (which is written in javascript).
|
||||
$(eval $(call SetupTextFileProcessing, CREATE_PANDOC_TROFF_MANPAGE_FILTER, \
|
||||
SOURCE_FILES := $(TOPDIR)/make/scripts/pandoc-troff-manpage-filter.sh.template, \
|
||||
OUTPUT_FILE := $(PANDOC_TROFF_MANPAGE_FILTER), \
|
||||
REPLACEMENTS := \
|
||||
@@BOOT_JDK@@ => $(BOOT_JDK) ; \
|
||||
@@TOPDIR@@ => $(TOPDIR) ; \
|
||||
@@JJS_FLAGS@@ => $(addprefix -J, $(JAVA_FLAGS_SMALL)), \
|
||||
))
|
||||
|
||||
# Created script must be made executable
|
||||
$(PANDOC_TROFF_MANPAGE_FILTER_SETUP): $(CREATE_PANDOC_TROFF_MANPAGE_FILTER)
|
||||
$(CHMOD) a+rx $(PANDOC_TROFF_MANPAGE_FILTER)
|
||||
$(TOUCH) $@
|
||||
|
||||
TARGETS += $(PANDOC_TROFF_MANPAGE_FILTER_SETUP)
|
||||
|
||||
# PANDOC_HTML_MANPAGE_FILTER is duplicated for export in ToolsJdk.gmk.
|
||||
PANDOC_HTML_MANPAGE_FILTER := \
|
||||
$(BUILDTOOLS_OUTPUTDIR)/manpages/pandoc-html-manpage-filter
|
||||
PANDOC_HTML_MANPAGE_FILTER_SETUP := \
|
||||
$(BUILDTOOLS_OUTPUTDIR)/manpages/_pandoc_html_manpage_filter_setup.marker
|
||||
|
||||
# Create a usable instance of the wrapper script that calls the pandoc filter
|
||||
# (which is written in javascript).
|
||||
$(eval $(call SetupTextFileProcessing, CREATE_PANDOC_HTML_MANPAGE_FILTER, \
|
||||
SOURCE_FILES := $(TOPDIR)/make/scripts/pandoc-html-manpage-filter.sh.template, \
|
||||
OUTPUT_FILE := $(PANDOC_HTML_MANPAGE_FILTER), \
|
||||
REPLACEMENTS := \
|
||||
@@BOOT_JDK@@ => $(BOOT_JDK) ; \
|
||||
@@TOPDIR@@ => $(TOPDIR) ; \
|
||||
@@JJS_FLAGS@@ => $(addprefix -J, $(JAVA_FLAGS_SMALL)), \
|
||||
))
|
||||
|
||||
# Created script must be made executable
|
||||
$(PANDOC_HTML_MANPAGE_FILTER_SETUP): $(CREATE_PANDOC_HTML_MANPAGE_FILTER)
|
||||
$(CHMOD) a+rx $(PANDOC_HTML_MANPAGE_FILTER)
|
||||
$(TOUCH) $@
|
||||
|
||||
TARGETS += $(PANDOC_HTML_MANPAGE_FILTER_SETUP)
|
||||
endif
|
||||
|
||||
all: $(TARGETS)
|
||||
|
||||
@@ -38,7 +38,7 @@ CONF_DIR := $(wildcard $(addsuffix /$(MODULE), $(IMPORT_MODULES_CONF)))
|
||||
$(eval $(call FillCacheFind, $(LIBS_DIR) $(CMDS_DIR) $(CONF_DIR)))
|
||||
|
||||
ifneq ($(LIBS_DIR), )
|
||||
ifeq ($(call isTargetOs, windows), true)
|
||||
ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
TO_BIN_FILTER := %$(SHARED_LIBRARY_SUFFIX) %.diz %.pdb %.map
|
||||
|
||||
$(eval $(call SetupCopyFiles, COPY_LIBS_TO_BIN, \
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@@ -33,7 +33,7 @@ include MakeBase.gmk
|
||||
### CLDRConverter needs the JRE time zone names from the java.base source.
|
||||
|
||||
define cldrconverter_copytznames
|
||||
$(call MakeTargetDir)
|
||||
$(MKDIR) -p '$(@D)'
|
||||
$(RM) '$@'
|
||||
$(SED) -e "s/package sun.util.resources/package build.tools.cldrconverter/" \
|
||||
-e "s/extends TimeZoneNamesBundle//" \
|
||||
@@ -46,7 +46,7 @@ $(eval $(call SetupCopyFiles,COPY_INTERIM_CLDRCONVERTER, \
|
||||
DEST := $(BUILDTOOLS_OUTPUTDIR)/interim_cldrconverter_classes/build/tools/cldrconverter, \
|
||||
FILES := TimeZoneNames.java, \
|
||||
MACRO := cldrconverter_copytznames))
|
||||
|
||||
|
||||
##########################################################################################
|
||||
|
||||
all: $(COPY_INTERIM_CLDRCONVERTER)
|
||||
|
||||
@@ -1,56 +0,0 @@
|
||||
#
|
||||
# Copyright (c) 2018, 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.
|
||||
|
||||
include $(SPEC)
|
||||
include MakeBase.gmk
|
||||
|
||||
################################################################################
|
||||
|
||||
JCOV_INPUT_IMAGE_DIR :=
|
||||
|
||||
ifneq ($(JCOV_INPUT_JDK), )
|
||||
JCOV_INPUT_IMAGE_DIR := $(JCOV_INPUT_JDK)
|
||||
else
|
||||
JCOV_INPUT_IMAGE_DIR := $(JDK_IMAGE_DIR)
|
||||
endif
|
||||
|
||||
#moving instrumented jdk image in and out of jcov_temp because of CODETOOLS-7902299
|
||||
JCOV_TEMP := $(SUPPORT_OUTPUTDIR)/jcov_temp
|
||||
|
||||
$(JCOV_IMAGE_DIR)/release: $(JCOV_INPUT_IMAGE_DIR)/release
|
||||
$(call LogWarn, Creating instrumented jdk image with JCov)
|
||||
$(call MakeDir, $(JCOV_TEMP) $(IMAGES_OUTPUTDIR))
|
||||
$(RM) -r $(JCOV_IMAGE_DIR) $(JCOV_TEMP)/*
|
||||
$(CP) -r $(JCOV_INPUT_IMAGE_DIR) $(JCOV_TEMP)/$(JCOV_IMAGE_SUBDIR)
|
||||
$(JAVA) -Xmx3g -jar $(JCOV_HOME)/lib/jcov.jar JREInstr \
|
||||
-t $(JCOV_TEMP)/$(JCOV_IMAGE_SUBDIR)/template.xml \
|
||||
-rt $(JCOV_HOME)/lib/jcov_network_saver.jar \
|
||||
-exclude 'java.lang.Object' \
|
||||
-exclude 'jdk.internal.org.objectweb.**' \
|
||||
-exclude jdk.test.Main -exclude '**\$Proxy*' \
|
||||
$(JCOV_TEMP)/$(JCOV_IMAGE_SUBDIR)
|
||||
$(MV) $(JCOV_TEMP)/$(JCOV_IMAGE_SUBDIR) $(JCOV_IMAGE_DIR)
|
||||
$(RMDIR) $(JCOV_TEMP)
|
||||
|
||||
jcov-image: $(JCOV_IMAGE_DIR)/release
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@@ -41,7 +41,7 @@ COPY_CLASSES_TARGET := $(BUILDJDK_OUTPUTDIR)/jdk/modules/java.base/_the.buildjdk
|
||||
|
||||
$(COPY_CLASSES_TARGET): $(call CacheFind, $(wildcard \
|
||||
$(addprefix $(JDK_OUTPUTDIR)/modules/, $(MODULES_TO_COPY))))
|
||||
$(call LogInfo, Copying java modules to buildjdk: $(MODULES_TO_COPY))
|
||||
$(ECHO) $(LOG_INFO) "Copying java modules to buildjdk: $(MODULES_TO_COPY)"
|
||||
$(RM) -r $(BUILDJDK_OUTPUTDIR)/jdk/modules
|
||||
$(MKDIR) -p $(BUILDJDK_OUTPUTDIR)/jdk/modules
|
||||
$(foreach m, $(MODULES_TO_COPY), \
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright (c) 2014, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2014, 2017, 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
|
||||
@@ -26,7 +26,6 @@ default: all
|
||||
|
||||
include $(SPEC)
|
||||
include MakeBase.gmk
|
||||
include Execute.gmk
|
||||
include Modules.gmk
|
||||
|
||||
ifeq ($(MODULE), )
|
||||
@@ -38,8 +37,7 @@ $(eval $(call IncludeCustomExtension, CreateJmods.gmk))
|
||||
################################################################################
|
||||
|
||||
JMODS_DIR := $(IMAGES_OUTPUTDIR)/jmods
|
||||
JMODS_SUPPORT_DIR := $(SUPPORT_OUTPUTDIR)/images/jmods
|
||||
JMOD_FILE := $(MODULE).jmod
|
||||
JMODS_TEMPDIR := $(SUPPORT_OUTPUTDIR)/jmods
|
||||
|
||||
LIBS_DIR ?= $(firstword $(wildcard $(addsuffix /$(MODULE), \
|
||||
$(SUPPORT_OUTPUTDIR)/modules_libs $(IMPORT_MODULES_LIBS))))
|
||||
@@ -120,7 +118,7 @@ ifeq ($(MODULE), java.base)
|
||||
endif
|
||||
endif
|
||||
else # not java.base
|
||||
ifeq ($(call isTargetOs, windows), true)
|
||||
ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
# Only java.base needs to include the MSVC*_DLLs. Make sure no other module
|
||||
# tries to include them (typically imported ones).
|
||||
ifneq ($(MSVCR_DLL), )
|
||||
@@ -154,27 +152,26 @@ endif
|
||||
# to avoid false incremental rebuilds.
|
||||
ifeq ($(INTERIM_JMOD), true)
|
||||
DEPS := $(filter-out $(SUPPORT_OUTPUTDIR)/modules_libs/java.base/classlist, $(DEPS))
|
||||
INTERIM_MSG := interim$(SPACE)
|
||||
endif
|
||||
|
||||
JMOD_FLAGS += --exclude '**{_the.*,_*.marker,*.diz,*.debuginfo,*.dSYM/**,*.dSYM,*.pdb,*.map}'
|
||||
|
||||
# Create jmods in the support dir and then move them into place to keep the
|
||||
# Create jmods in a temp dir and then move them into place to keep the
|
||||
# module path in $(IMAGES_OUTPUTDIR)/jmods valid at all times.
|
||||
$(eval $(call SetupExecute, create_$(JMOD_FILE), \
|
||||
WARN := Creating $(INTERIM_MSG)$(JMOD_FILE), \
|
||||
DEPS := $(DEPS), \
|
||||
OUTPUT_FILE := $(JMODS_DIR)/$(JMOD_FILE), \
|
||||
SUPPORT_DIR := $(JMODS_SUPPORT_DIR), \
|
||||
PRE_COMMAND := $(RM) $(JMODS_DIR)/$(JMOD_FILE) $(JMODS_SUPPORT_DIR)/$(JMOD_FILE), \
|
||||
COMMAND := $(JMOD) create --module-version $(VERSION_SHORT) \
|
||||
--target-platform '$(OPENJDK_MODULE_TARGET_PLATFORM)' \
|
||||
--module-path $(JMODS_DIR) $(JMOD_FLAGS) \
|
||||
$(JMODS_SUPPORT_DIR)/$(JMOD_FILE), \
|
||||
POST_COMMAND := $(MV) $(JMODS_SUPPORT_DIR)/$(JMOD_FILE) $(JMODS_DIR)/$(JMOD_FILE), \
|
||||
))
|
||||
$(JMODS_DIR)/$(MODULE).jmod: $(DEPS)
|
||||
$(call LogWarn, Creating $(patsubst $(OUTPUTDIR)/%, %, $@))
|
||||
$(call MakeDir, $(JMODS_DIR) $(JMODS_TEMPDIR))
|
||||
$(RM) $@ $(JMODS_TEMPDIR)/$(notdir $@)
|
||||
$(call ExecuteWithLog, $(SUPPORT_OUTPUTDIR)/jmods/$(MODULE).jmod, \
|
||||
$(JMOD) create \
|
||||
--module-version $(VERSION_SHORT) \
|
||||
--target-platform '$(OPENJDK_MODULE_TARGET_PLATFORM)' \
|
||||
--module-path $(JMODS_DIR) \
|
||||
$(JMOD_FLAGS) $(JMODS_TEMPDIR)/$(notdir $@) \
|
||||
)
|
||||
$(MV) $(JMODS_TEMPDIR)/$(notdir $@) $@
|
||||
|
||||
TARGETS += $(create_$(JMOD_FILE))
|
||||
TARGETS += $(JMODS_DIR)/$(MODULE).jmod
|
||||
|
||||
################################################################################
|
||||
|
||||
|
||||
128
make/Docs.gmk
@@ -1,4 +1,4 @@
|
||||
# Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 1997, 2018, 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
|
||||
@@ -26,12 +26,11 @@ default: all
|
||||
|
||||
include $(SPEC)
|
||||
include MakeBase.gmk
|
||||
include Execute.gmk
|
||||
include Modules.gmk
|
||||
include ModuleTools.gmk
|
||||
include ProcessMarkdown.gmk
|
||||
include ToolsJdk.gmk
|
||||
include ZipArchive.gmk
|
||||
include $(TOPDIR)/make/ToolsJdk.gmk
|
||||
include $(TOPDIR)/make/ModuleTools.gmk
|
||||
|
||||
# This is needed to properly setup DOCS_MODULES.
|
||||
$(eval $(call ReadImportMetaData))
|
||||
@@ -62,11 +61,11 @@ MODULES_SOURCE_PATH := $(call PathList, $(call GetModuleSrcPath) \
|
||||
$(SUPPORT_OUTPUTDIR)/rmic/* $(TOPDIR)/src/*/share/doc/stub)
|
||||
|
||||
# URLs
|
||||
JAVADOC_BASE_URL := https://docs.oracle.com/pls/topic/lookup?ctx=javase$(VERSION_NUMBER)&id=homepage
|
||||
BUG_SUBMIT_URL := https://bugreport.java.com/bugreport/
|
||||
JAVADOC_BASE_URL := http://www.oracle.com/pls/topic/lookup?ctx=javase$(VERSION_NUMBER)&id=homepage
|
||||
BUG_SUBMIT_URL := http://bugreport.java.com/bugreport/
|
||||
COPYRIGHT_URL := {@docroot}/../legal/copyright.html
|
||||
LICENSE_URL := https://www.oracle.com/technetwork/java/javase/terms/license/java$(VERSION_NUMBER)speclicense.html
|
||||
REDISTRIBUTION_URL := https://www.oracle.com/technetwork/java/redist-137594.html
|
||||
LICENSE_URL := http://www.oracle.com/technetwork/java/javase/terms/license/java$(VERSION_NUMBER)speclicense.html
|
||||
REDISTRIBUTION_URL := http://www.oracle.com/technetwork/java/redist-137594.html
|
||||
|
||||
# In order to get a specific ordering it's necessary to specify the total
|
||||
# ordering of tags as the tags are otherwise ordered in order of definition.
|
||||
@@ -169,6 +168,14 @@ JAVADOC_TOP := \
|
||||
font-family: DejaVu Sans, Arial, Helvetica, sans-serif; \
|
||||
font-weight: normal;">$(DRAFT_TEXT)</div>
|
||||
|
||||
JDK_INDEX_CONTENT := \
|
||||
<!DOCTYPE html> \
|
||||
<html lang="en"> \
|
||||
<head> \
|
||||
<meta http-equiv="refresh" content="0;url=api/index.html"> \
|
||||
</head> \
|
||||
</html>
|
||||
|
||||
################################################################################
|
||||
# JDK javadoc titles/text snippets
|
||||
|
||||
@@ -196,13 +203,10 @@ define setup_gengraph_dot_to_png
|
||||
|
||||
# For each module needing a graph, create a png file from the dot file
|
||||
# generated by the GenGraphs tool and store it in the target dir.
|
||||
$$(eval $$(call SetupExecute, gengraphs_png_$1_$2, \
|
||||
INFO := Running dot for module graphs for $2, \
|
||||
DEPS := $$(gengraphs_$1_TARGET), \
|
||||
OUTPUT_FILE := $$($1_$2_PNG_TARGET), \
|
||||
SUPPORT_DIR := $$($1_GENGRAPHS_DIR), \
|
||||
COMMAND := $$(DOT) -Tpng -o $$($1_$2_PNG_TARGET) $$($1_$2_DOT_SRC), \
|
||||
))
|
||||
$$($1_$2_PNG_TARGET): $$($1_GENGRAPHS_MARKER)
|
||||
$$(call MakeDir, $$(@D))
|
||||
$$(call ExecuteWithLog, $$($1_$2_DOT_SRC), \
|
||||
$$(DOT) -Tpng -o $$($1_$2_PNG_TARGET) $$($1_$2_DOT_SRC))
|
||||
|
||||
$1_MODULEGRAPH_TARGETS += $$($1_$2_PNG_TARGET)
|
||||
endef
|
||||
@@ -224,7 +228,7 @@ define create_overview_file
|
||||
<blockquote><dl> \
|
||||
#
|
||||
$1_OVERVIEW_TEXT += $$(foreach g, $$($1_GROUPS), \
|
||||
<dt style="margin-top: 8px;">$$($$g_GROUP_NAME)</dt> \
|
||||
<dt style="margin-top: 8px;"><a href="\#$$g">$$($$g_GROUP_NAME)</a></dt> \
|
||||
<dd style="margin-top: 8px;">$$($$g_GROUP_DESCRIPTION)</dd> \
|
||||
)
|
||||
$1_OVERVIEW_TEXT += \
|
||||
@@ -328,7 +332,7 @@ define SetupApiDocsGenerationBody
|
||||
$1_JAVADOC_CMD := $$(JAVA) -Djava.awt.headless=true $$($1_JAVA_ARGS) \
|
||||
$$(NEW_JAVADOC)
|
||||
else
|
||||
$1_OPTIONS += $$(addprefix -J, $$($1_JAVA_ARGS))
|
||||
$1_OPTIONS += $$(addprefix -J, $$($1_JAVA_ARGS))
|
||||
endif
|
||||
|
||||
$1_VARDEPS := $$($1_JAVA_ARGS) $$($1_OPTIONS) $$(MODULES_SOURCE_PATH) \
|
||||
@@ -340,18 +344,18 @@ define SetupApiDocsGenerationBody
|
||||
$1_SOURCE_DEPS := $$(call CacheFind, $$(wildcard $$(foreach module, \
|
||||
$$($1_ALL_MODULES), $$(call FindModuleSrcDirs, $$(module)))))
|
||||
|
||||
$$(eval $$(call SetupExecute, javadoc_$1, \
|
||||
WARN := Generating $1 javadoc for $$(words $$($1_ALL_MODULES)) modules, \
|
||||
INFO := Javadoc modules: $$($1_ALL_MODULES), \
|
||||
DEPS := $$(BUILD_TOOLS_JDK) $$($1_VARDEPS_FILE) $$($1_SOURCE_DEPS) \
|
||||
$$($1_OVERVIEW), \
|
||||
OUTPUT_DIR := $$($1_TARGET_DIR), \
|
||||
SUPPORT_DIR := $$(SUPPORT_OUTPUTDIR)/docs, \
|
||||
COMMAND := $$($1_JAVADOC_CMD) -d $$($1_TARGET_DIR) $$($1_OPTIONS) \
|
||||
$$($1_LOG_OPTION), \
|
||||
))
|
||||
# Javadoc creates a lot of files but use index.html as a marker
|
||||
$$($1_TARGET_DIR)/index.html: $$(BUILD_TOOLS_JDK) $$($1_VARDEPS_FILE) \
|
||||
$$($1_SOURCE_DEPS) $$($1_OVERVIEW)
|
||||
$$(call LogWarn, Generating $1 javadoc for \
|
||||
$$(words $$($1_ALL_MODULES)) modules)
|
||||
$$(call LogInfo, Javadoc modules: $$($1_ALL_MODULES))
|
||||
$$(call MakeDir, $$($1_TARGET_DIR))
|
||||
$$(call ExecuteWithLog, $$(SUPPORT_OUTPUTDIR)/docs/$1, \
|
||||
$$($1_JAVADOC_CMD) -d $$($1_TARGET_DIR) \
|
||||
$$($1_OPTIONS) $$($1_LOG_OPTION))
|
||||
|
||||
$1_JAVADOC_TARGETS := $$(javadoc_$1_TARGET)
|
||||
$1_JAVADOC_TARGETS := $$($1_TARGET_DIR)/index.html
|
||||
|
||||
ifeq ($$(ENABLE_FULL_DOCS), true)
|
||||
# We have asked ModuleGraph to generate links to png files. Now we must
|
||||
@@ -371,18 +375,19 @@ define SetupApiDocsGenerationBody
|
||||
$$(TOPDIR)/make/jdk/src/classes/build/tools/jigsaw/javadoc-graphs.properties
|
||||
|
||||
$1_GENGRAPHS_DIR := $$(SUPPORT_OUTPUTDIR)/docs/$1-gengraphs
|
||||
$1_GENGRAPHS_MARKER := $$($1_GENGRAPHS_DIR)/_gengraphs_run.marker
|
||||
|
||||
$$(eval $$(call SetupExecute, gengraphs_$1, \
|
||||
INFO := Running gengraphs for $1 documentation, \
|
||||
DEPS := $$(BUILD_JIGSAW_TOOLS) $$(GENGRAPHS_PROPS), \
|
||||
OUTPUT_DIR := $$($1_GENGRAPHS_DIR), \
|
||||
COMMAND := $$(TOOL_GENGRAPHS) --spec --output $$($1_GENGRAPHS_DIR) \
|
||||
--dot-attributes $$(GENGRAPHS_PROPS), \
|
||||
))
|
||||
$$($1_GENGRAPHS_MARKER): $$(BUILD_JIGSAW_TOOLS) $$(GENGRAPHS_PROPS)
|
||||
$$(call LogInfo, Running gengraphs for $1 documentation)
|
||||
$$(call MakeDir, $$($1_GENGRAPHS_DIR))
|
||||
$$(call ExecuteWithLog, $$($1_GENGRAPHS_DIR)/gengraphs, \
|
||||
$$(TOOL_GENGRAPHS) --spec --output $$($1_GENGRAPHS_DIR) \
|
||||
--dot-attributes $$(GENGRAPHS_PROPS) && \
|
||||
$$(TOUCH) $$($1_GENGRAPHS_MARKER))
|
||||
|
||||
# For each module needing a graph, create a png file from the dot file
|
||||
# generated by the GenGraphs tool and store it in the target dir.
|
||||
# They will depend on gengraphs_$1_TARGET, and will be added to $1.
|
||||
# They will depend on $1_GENGRAPHS_MARKER, and will be added to $1.
|
||||
$$(foreach m, $$($1_MODULES_NEEDING_GRAPH), \
|
||||
$$(eval $$(call setup_gengraph_dot_to_png,$1,$$m)) \
|
||||
)
|
||||
@@ -461,7 +466,7 @@ $(eval $(call SetupApiDocsGeneration, JAVASE_API, \
|
||||
# Setup generation of the reference Java SE API documentation (javadoc + modulegraph)
|
||||
|
||||
# The reference javadoc is just the same as javase, but using the BootJDK javadoc
|
||||
# and a stable set of javadoc options. Typically it is used for generating
|
||||
# and a stable set of javadoc options. Typically it is used for generating
|
||||
# diffs between the reference javadoc and a javadoc bundle of a specific build
|
||||
# generated in the same way.
|
||||
|
||||
@@ -480,7 +485,14 @@ $(eval $(call SetupApiDocsGeneration, REFERENCE_API, \
|
||||
|
||||
################################################################################
|
||||
|
||||
# Copy the global resources, including the top-level redirect index.html
|
||||
JDK_INDEX_HTML := $(DOCS_OUTPUTDIR)/index.html
|
||||
|
||||
$(JDK_INDEX_HTML):
|
||||
$(ECHO) '$(JDK_INDEX_CONTENT)' > $@
|
||||
|
||||
JDK_INDEX_TARGETS += $(JDK_INDEX_HTML)
|
||||
|
||||
# Copy the global resources
|
||||
GLOBAL_SPECS_RESOURCES_DIR := $(TOPDIR)/make/data/docs-resources/
|
||||
$(eval $(call SetupCopyFiles, COPY_GLOBAL_RESOURCES, \
|
||||
SRC := $(GLOBAL_SPECS_RESOURCES_DIR), \
|
||||
@@ -520,9 +532,9 @@ $(foreach m, $(ALL_MODULES), \
|
||||
) \
|
||||
)
|
||||
|
||||
ifeq ($(ENABLE_PANDOC), true)
|
||||
ifeq ($(ENABLE_FULL_DOCS), true)
|
||||
# For all markdown files in $module/share/specs directories, convert them to
|
||||
# html, if we have pandoc (otherwise we'll just skip this).
|
||||
# html.
|
||||
|
||||
GLOBAL_SPECS_DEFAULT_CSS_FILE := $(DOCS_OUTPUTDIR)/resources/jdk-default.css
|
||||
|
||||
@@ -530,7 +542,7 @@ ifeq ($(ENABLE_PANDOC), true)
|
||||
$(eval SPECS_$m := $(call FindModuleSpecsDirs, $m)) \
|
||||
$(foreach d, $(SPECS_$m), \
|
||||
$(if $(filter %.md, $(call CacheFind, $d)), \
|
||||
$(eval $m_$d_NAME := SPECS_TO_HTML_$m_$(strip $(call RelativePath, $d, $(TOPDIR)))) \
|
||||
$(eval $m_$d_NAME := CONVERT_MARKDOWN_$m_$(strip $(call RelativePath, $d, $(TOPDIR)))) \
|
||||
$(eval $(call SetupProcessMarkdown, $($m_$d_NAME), \
|
||||
SRC := $d, \
|
||||
FILES := $(filter %.md, $(call CacheFind, $d)), \
|
||||
@@ -541,40 +553,6 @@ ifeq ($(ENABLE_PANDOC), true)
|
||||
) \
|
||||
) \
|
||||
)
|
||||
|
||||
# For all markdown files in $module/share/man directories, convert them to
|
||||
# html.
|
||||
|
||||
# Create dynamic man pages from markdown using pandoc. We need
|
||||
# PANDOC_HTML_MANPAGE_FILTER, a wrapper around
|
||||
# PANDOC_HTML_MANPAGE_FILTER_JAVASCRIPT. This is created by buildtools-jdk.
|
||||
|
||||
# We should also depend on the source javascript filter
|
||||
PANDOC_HTML_MANPAGE_FILTER_JAVASCRIPT := \
|
||||
$(TOPDIR)/make/scripts/pandoc-html-manpage-filter.js
|
||||
|
||||
$(foreach m, $(ALL_MODULES), \
|
||||
$(eval MAN_$m := $(call FindModuleManDirs, $m)) \
|
||||
$(foreach d, $(MAN_$m), \
|
||||
$(if $(filter %.md, $(call CacheFind, $d)), \
|
||||
$(eval $m_$d_NAME := MAN_TO_HTML_$m_$(strip $(call RelativePath, $d, $(TOPDIR)))) \
|
||||
$(eval $(call SetupProcessMarkdown, $($m_$d_NAME), \
|
||||
SRC := $d, \
|
||||
FILES := $(filter %.md, $(call CacheFind, $d)), \
|
||||
DEST := $(DOCS_OUTPUTDIR)/specs/man, \
|
||||
FILTER := $(PANDOC_HTML_MANPAGE_FILTER), \
|
||||
CSS := $(GLOBAL_SPECS_DEFAULT_CSS_FILE), \
|
||||
REPLACEMENTS := @@VERSION_SHORT@@ => $(VERSION_SHORT), \
|
||||
EXTRA_DEPS := $(PANDOC_HTML_MANPAGE_FILTER) \
|
||||
$(PANDOC_HTML_MANPAGE_FILTER_JAVASCRIPT), \
|
||||
)) \
|
||||
$(eval JDK_SPECS_TARGETS += $($($m_$d_NAME))) \
|
||||
) \
|
||||
) \
|
||||
)
|
||||
|
||||
# The html generated from markdown also needs the css file
|
||||
JDK_SPECS_TARGETS += $(COPY_GLOBAL_RESOURCES)
|
||||
endif
|
||||
|
||||
# Special treatment for generated documentation
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2016, 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
|
||||
@@ -29,21 +29,19 @@ default: all
|
||||
|
||||
include $(SPEC)
|
||||
include MakeBase.gmk
|
||||
include Execute.gmk
|
||||
include $(TOPDIR)/make/ModuleTools.gmk
|
||||
|
||||
################################################################################
|
||||
|
||||
ALL_MODULEINFO_CLASSES := $(wildcard $(JDK_OUTPUTDIR)/modules/*/module-info.class)
|
||||
PACKAGES_ATTRIBUTE_TARGET := $(JDK_OUTPUTDIR)/_packages_attribute.done
|
||||
ALL_MODULEINFO_CLASSES := $(wildcard $(JDK_OUTPUTDIR)/modules/*/module_info.class)
|
||||
|
||||
$(eval $(call SetupExecute, optimize_image, \
|
||||
INFO := Optimizing the exploded image, \
|
||||
DEPS := $(ALL_MODULEINFO_CLASSES) $(BUILD_JIGSAW_CLASSES), \
|
||||
OUTPUT_DIR := $(JDK_OUTPUTDIR), \
|
||||
COMMAND := $(TOOL_ADD_PACKAGES_ATTRIBUTE) $(JDK_OUTPUTDIR), \
|
||||
))
|
||||
$(PACKAGES_ATTRIBUTE_TARGET): $(ALL_MODULEINFO_CLASSES) $(BUILD_JIGSAW_CLASSES)
|
||||
$(call LogInfo, Optimizing the exploded image)
|
||||
$(TOOL_ADD_PACKAGES_ATTRIBUTE) $(JDK_OUTPUTDIR)
|
||||
$(TOUCH) $@
|
||||
|
||||
TARGETS := $(optimize_image_TARGET)
|
||||
TARGETS := $(PACKAGES_ATTRIBUTE_TARGET)
|
||||
|
||||
################################################################################
|
||||
|
||||
|
||||
@@ -31,17 +31,15 @@ default: all
|
||||
|
||||
include $(SPEC)
|
||||
include MakeBase.gmk
|
||||
include SetupJavaCompilers.gmk
|
||||
include JarArchive.gmk
|
||||
|
||||
################################################################################
|
||||
# Create a jar with our generator class. Using a jar is intentional since it
|
||||
# will load more classes
|
||||
|
||||
$(eval $(call SetupJavaCompilation, CLASSLIST_JAR, \
|
||||
SETUP := GENERATE_JDKBYTECODE, \
|
||||
SRC := $(TOPDIR)/make/jdk/src/classes, \
|
||||
$(eval $(call SetupJarArchive, CLASSLIST_JAR, \
|
||||
SRCS := $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes, \
|
||||
INCLUDES := build/tools/classlist, \
|
||||
BIN := $(BUILDTOOLS_OUTPUTDIR)/classlist_classes, \
|
||||
JAR := $(SUPPORT_OUTPUTDIR)/classlist.jar, \
|
||||
))
|
||||
|
||||
@@ -59,8 +57,6 @@ ifeq ($(EXTERNAL_BUILDJDK), true)
|
||||
INTERIM_IMAGE_DIR := $(BUILD_JDK)
|
||||
endif
|
||||
|
||||
# Save the stderr output of the command and print it along with stdout in case
|
||||
# something goes wrong.
|
||||
$(CLASSLIST_FILE): $(INTERIM_IMAGE_DIR)/bin/java$(EXE_SUFFIX) $(CLASSLIST_JAR)
|
||||
$(call MakeDir, $(LINK_OPT_DIR))
|
||||
$(call LogInfo, Generating $(patsubst $(OUTPUTDIR)/%, %, $@))
|
||||
@@ -69,14 +65,7 @@ $(CLASSLIST_FILE): $(INTERIM_IMAGE_DIR)/bin/java$(EXE_SUFFIX) $(CLASSLIST_JAR)
|
||||
-Djava.lang.invoke.MethodHandle.TRACE_RESOLVE=true \
|
||||
-cp $(SUPPORT_OUTPUTDIR)/classlist.jar \
|
||||
build.tools.classlist.HelloClasslist \
|
||||
2> $(LINK_OPT_DIR)/stderr > $(JLI_TRACE_FILE) \
|
||||
|| ( \
|
||||
exitcode=$$? ; \
|
||||
$(ECHO) "ERROR: Failed to generate link optimization data." \
|
||||
"This is likely a problem with the newly built JVM/JDK." ; \
|
||||
$(CAT) $(LINK_OPT_DIR)/stderr $(JLI_TRACE_FILE) ; \
|
||||
exit $$exitcode \
|
||||
)
|
||||
$(LOG_DEBUG) 2>&1 > $(JLI_TRACE_FILE)
|
||||
$(GREP) -v HelloClasslist $@.raw > $@
|
||||
|
||||
# The jli trace is created by the same recipe as classlist. By declaring these
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2014, 2017, 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
|
||||
@@ -35,18 +35,18 @@ SPEC_DOTFILES_DIR := $(GENGRAPHS_DIR)/spec-dotfiles
|
||||
TOOLS_MODULE_SRCDIR := $(TOPDIR)/make/jdk/src/classes/build/tools/jigsaw
|
||||
|
||||
$(GENGRAPHS_DIR)/jdk.dot: $(BUILD_JIGSAW_TOOLS)
|
||||
$(call MakeTargetDir)
|
||||
$(MKDIR) -p $(@D)
|
||||
$(TOOL_GENGRAPHS) --output $(GENGRAPHS_DIR)
|
||||
|
||||
$(SPEC_DOTFILES_DIR)/java.se.dot: $(BUILD_JIGSAW_TOOLS)
|
||||
$(call MakeTargetDir)
|
||||
$(MKDIR) -p $(@D)
|
||||
$(TOOL_GENGRAPHS) --spec --output $(SPEC_DOTFILES_DIR)
|
||||
|
||||
$(GENGRAPHS_DIR)/technology-summary.html: $(TOOLS_MODULE_SRCDIR)/technology-summary.html
|
||||
$(install-file)
|
||||
|
||||
$(GENGRAPHS_DIR)/module-summary.html: $(BUILD_JIGSAW_TOOLS) $(GENGRAPHS_DIR)/technology-summary.html
|
||||
$(call MakeTargetDir)
|
||||
$(MKDIR) -p $(@D)
|
||||
$(TOOL_MODULESUMMARY) -o $@ --module-path $(IMAGES_OUTPUTDIR)/jmods
|
||||
|
||||
all: $(GENGRAPHS_DIR)/jdk.dot $(GENGRAPHS_DIR)/module-summary.html $(SPEC_DOTFILES_DIR)/java.se.dot
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2015, 2016, 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
|
||||
@@ -79,7 +79,7 @@ ifneq ($(MOD_FILES), )
|
||||
$(BUILD_TOOLS_JDK) \
|
||||
$(MOD_FILES) \
|
||||
$(call DependOnVariable, ALL_MODULES)
|
||||
$(call MakeTargetDir)
|
||||
$(MKDIR) -p $(@D)
|
||||
$(RM) $@ $@.tmp
|
||||
$(TOOL_GENMODULEINFOSOURCE) -o $@.tmp \
|
||||
--source-file $< \
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2012, 2017, 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
|
||||
@@ -55,10 +55,10 @@ help:
|
||||
$(info $(_) make install # Install the generated images locally)
|
||||
$(info $(_) make reconfigure # Rerun configure with the same arguments as last time)
|
||||
$(info $(_) make help # Give some help on using make)
|
||||
$(info $(_) make check # Run basic testing (currently tier1))
|
||||
$(info $(_) make test-<test> # Run test, e.g. test-tier1)
|
||||
$(info $(_) make test TEST=<t> # Run test(s) given by TEST specification)
|
||||
$(info $(_) make exploded-test TEST=<t> # Run test(s) on the exploded image instead of)
|
||||
$(info $(_) make test # Run tests, default is all tests (see TEST below))
|
||||
$(info $(_) make run-test-<test> # Run test, e.g. run-test-tier1)
|
||||
$(info $(_) make run-test TEST=<t> # Run test(s) given by TEST specification)
|
||||
$(info $(_) make exploded-run-test TEST=<t> # Run test(s) on the exploded image instead of)
|
||||
$(info $(_) # the full jdk image)
|
||||
$(info )
|
||||
$(info Targets for cleaning)
|
||||
@@ -99,13 +99,10 @@ help:
|
||||
$(info $(_) TEST_JOBS=<n> # Run <n> parallel test jobs)
|
||||
$(info $(_) CONF_CHECK=<method> # What to do if spec file is out of date)
|
||||
$(info $(_) # method is 'auto', 'ignore' or 'fail' (default))
|
||||
$(info $(_) TEST="test1 ..." # Use the given test descriptor(s) for testing, e.g.)
|
||||
$(info $(_) # make test TEST="jdk_lang gtest:all")
|
||||
$(info $(_) JTREG="OPT1=x;OPT2=y" # Control the JTREG test harness)
|
||||
$(info $(_) GTEST="OPT1=x;OPT2=y" # Control the GTEST test harness)
|
||||
$(info $(_) MICRO="OPT1=x;OPT2=y" # Control the MICRO test harness)
|
||||
$(info $(_) TEST_OPTS="OPT1=x;..." # Generic control of all test harnesses)
|
||||
$(info $(_) TEST_VM_OPTS="ARG ..." # Same as setting TEST_OPTS to VM_OPTIONS="ARG ...")
|
||||
$(info $(_) make test TEST=<test> # Only run the given test or tests, e.g.)
|
||||
$(info $(_) # make test TEST="jdk_lang jdk_net")
|
||||
$(info $(_) JTREG="OPT1=x;OPT2=y" # Control the JTREG test harness for run-test)
|
||||
$(info $(_) GTEST="OPT1=x;OPT2=y" # Control the GTEST test harness for run-test)
|
||||
$(info )
|
||||
$(if $(all_confs), $(info Available configurations in $(build_dir):) $(foreach var,$(all_confs),$(info * $(var))),\
|
||||
$(info No configurations were found in $(build_dir).) $(info Run 'bash configure' to create a configuration.))
|
||||
@@ -122,7 +119,7 @@ print-configurations:
|
||||
run-test-prebuilt:
|
||||
@( cd $(topdir) && \
|
||||
$(MAKE) --no-print-directory -r -R -I make/common/ -f make/RunTestsPrebuilt.gmk \
|
||||
run-test-prebuilt CUSTOM_MAKE_DIR=$(CUSTOM_MAKE_DIR) TEST="$(TEST)" )
|
||||
run-test-prebuilt TEST="$(TEST)" )
|
||||
|
||||
ALL_GLOBAL_TARGETS := help print-configurations run-test-prebuilt
|
||||
|
||||
|
||||
207
make/Images.gmk
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2014, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2014, 2018, 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
|
||||
@@ -27,16 +27,16 @@ default: all
|
||||
|
||||
include $(SPEC)
|
||||
include MakeBase.gmk
|
||||
include Execute.gmk
|
||||
include Modules.gmk
|
||||
|
||||
TOOL_TARGETS :=
|
||||
JDK_TARGETS :=
|
||||
JRE_TARGETS :=
|
||||
|
||||
# Hook to include the corresponding custom file, if present.
|
||||
$(eval $(call IncludeCustomExtension, Images-pre.gmk))
|
||||
|
||||
################################################################################
|
||||
############################################################################
|
||||
|
||||
# All modules for the current target platform.
|
||||
ALL_MODULES := $(call FindAllModules)
|
||||
@@ -56,6 +56,9 @@ BASE_RELEASE_FILE := $(JDK_OUTPUTDIR)/release
|
||||
|
||||
JMODS := $(wildcard $(IMAGES_OUTPUTDIR)/jmods/*.jmod)
|
||||
|
||||
# Use this file inside the image as target for make rule
|
||||
JIMAGE_TARGET_FILE := bin/java$(EXE_SUFFIX)
|
||||
|
||||
JLINK_ORDER_RESOURCES := **module-info.class
|
||||
JLINK_JLI_CLASSES :=
|
||||
ifeq ($(ENABLE_GENERATE_CLASSLIST), true)
|
||||
@@ -85,61 +88,151 @@ ifeq ($(JLINK_KEEP_PACKAGED_MODULES), true)
|
||||
JLINK_JDK_EXTRA_OPTS := --keep-packaged-modules $(JDK_IMAGE_DIR)/jmods
|
||||
endif
|
||||
|
||||
$(eval $(call SetupExecute, jlink_jdk, \
|
||||
WARN := Creating jdk image, \
|
||||
DEPS := $(JMODS) $(BASE_RELEASE_FILE) \
|
||||
$(call DependOnVariable, JDK_MODULES_LIST), \
|
||||
OUTPUT_DIR := $(JDK_IMAGE_DIR), \
|
||||
SUPPORT_DIR := $(SUPPORT_OUTPUTDIR)/images/jdk, \
|
||||
PRE_COMMAND := $(RM) -r $(JDK_IMAGE_DIR), \
|
||||
COMMAND := $(JLINK_TOOL) --add-modules $(JDK_MODULES_LIST) \
|
||||
$(JLINK_JDK_EXTRA_OPTS) --output $(JDK_IMAGE_DIR), \
|
||||
))
|
||||
$(JDK_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(JMODS) \
|
||||
$(call DependOnVariable, JDK_MODULES_LIST) $(BASE_RELEASE_FILE)
|
||||
$(ECHO) Creating jdk image
|
||||
$(RM) -r $(JDK_IMAGE_DIR)
|
||||
$(call ExecuteWithLog, $(SUPPORT_OUTPUTDIR)/images/jdk, \
|
||||
$(JLINK_TOOL) --add-modules $(JDK_MODULES_LIST) \
|
||||
$(JLINK_JDK_EXTRA_OPTS) \
|
||||
--output $(JDK_IMAGE_DIR) \
|
||||
)
|
||||
$(TOUCH) $@
|
||||
|
||||
JLINK_JDK_TARGETS := $(jlink_jdk)
|
||||
$(JRE_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(JMODS) \
|
||||
$(call DependOnVariable, JRE_MODULES_LIST) $(BASE_RELEASE_FILE)
|
||||
$(ECHO) Creating legacy jre image
|
||||
$(RM) -r $(JRE_IMAGE_DIR)
|
||||
$(call ExecuteWithLog, $(SUPPORT_OUTPUTDIR)/images/jre, \
|
||||
$(JLINK_TOOL) --add-modules $(JRE_MODULES_LIST) \
|
||||
$(JLINK_JRE_EXTRA_OPTS) \
|
||||
--output $(JRE_IMAGE_DIR) \
|
||||
)
|
||||
$(TOUCH) $@
|
||||
|
||||
$(eval $(call SetupExecute, jlink_jre, \
|
||||
WARN := Creating legacy jre image, \
|
||||
DEPS := $(JMODS) $(BASE_RELEASE_FILE) \
|
||||
$(call DependOnVariable, JDK_MODULES_LIST), \
|
||||
OUTPUT_DIR := $(JDK_IMAGE_DIR), \
|
||||
SUPPORT_DIR := $(SUPPORT_OUTPUTDIR)/images/jre, \
|
||||
PRE_COMMAND := $(RM) -r $(JRE_IMAGE_DIR), \
|
||||
COMMAND := $(JLINK_TOOL) --add-modules $(JRE_MODULES_LIST) \
|
||||
$(JLINK_JRE_EXTRA_OPTS) --output $(JRE_IMAGE_DIR), \
|
||||
))
|
||||
TOOL_JRE_TARGETS := $(JRE_IMAGE_DIR)/$(JIMAGE_TARGET_FILE)
|
||||
TOOL_JDK_TARGETS := $(JDK_IMAGE_DIR)/$(JIMAGE_TARGET_FILE)
|
||||
|
||||
JLINK_JRE_TARGETS := $(jlink_jre)
|
||||
################################################################################
|
||||
# /man dir
|
||||
#
|
||||
# All variables in this section are assigned with simple =, without :, to enable
|
||||
# more selective overriding from the custom version of this file.
|
||||
#
|
||||
# Avoid evaluating this whole section on windows for speed and stability
|
||||
ifneq ($(OPENJDK_TARGET_OS), windows)
|
||||
ifeq ($(BUILD_MANPAGES), true)
|
||||
JRE_MAN_PAGES += \
|
||||
java.1 \
|
||||
jjs.1 \
|
||||
keytool.1 \
|
||||
orbd.1 \
|
||||
pack200.1 \
|
||||
rmid.1 \
|
||||
rmiregistry.1 \
|
||||
servertool.1 \
|
||||
unpack200.1
|
||||
|
||||
ifeq ($(BUILD_CDS_ARCHIVE), true)
|
||||
ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
CDS_ARCHIVE := bin/server/classes.jsa
|
||||
else
|
||||
CDS_ARCHIVE := lib/server/classes.jsa
|
||||
endif
|
||||
JDK_MAN_PAGES += \
|
||||
$(JRE_MAN_PAGES) \
|
||||
idlj.1 \
|
||||
jar.1 \
|
||||
jarsigner.1 \
|
||||
javac.1 \
|
||||
javadoc.1 \
|
||||
javap.1 \
|
||||
jconsole.1 \
|
||||
jcmd.1 \
|
||||
jdb.1 \
|
||||
jdeps.1 \
|
||||
jinfo.1 \
|
||||
jmap.1 \
|
||||
jps.1 \
|
||||
jrunscript.1 \
|
||||
jstack.1 \
|
||||
jstat.1 \
|
||||
jstatd.1 \
|
||||
rmic.1 \
|
||||
serialver.1
|
||||
|
||||
$(eval $(call SetupExecute, gen_cds_archive_jdk, \
|
||||
WARN := Creating CDS archive for jdk image, \
|
||||
DEPS := $(jlink_jdk), \
|
||||
OUTPUT_FILE := $(JDK_IMAGE_DIR)/$(CDS_ARCHIVE), \
|
||||
SUPPORT_DIR := $(SUPPORT_OUTPUTDIR)/images/jdk, \
|
||||
COMMAND := $(FIXPATH) $(JDK_IMAGE_DIR)/bin/java -Xshare:dump \
|
||||
-Xmx128M -Xms128M $(LOG_INFO), \
|
||||
))
|
||||
# This variable is potentially overridden in the closed makefile.
|
||||
MAN_SRC_BASEDIR ?= $(TOPDIR)/src
|
||||
|
||||
JDK_TARGETS += $(gen_cds_archive_jdk)
|
||||
ifeq ($(OPENJDK_TARGET_OS), linux)
|
||||
MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/linux/doc
|
||||
MAN1_SUBDIR = man
|
||||
endif
|
||||
ifeq ($(OPENJDK_TARGET_OS), solaris)
|
||||
MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/solaris/doc
|
||||
MAN1_SUBDIR = sun/man/man1
|
||||
endif
|
||||
ifeq ($(OPENJDK_TARGET_OS), macosx)
|
||||
MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/bsd/doc
|
||||
MAN1_SUBDIR = man
|
||||
endif
|
||||
|
||||
$(eval $(call SetupExecute, gen_cds_archive_jre, \
|
||||
WARN := Creating CDS archive for jre image, \
|
||||
DEPS := $(jlink_jre), \
|
||||
OUTPUT_FILE := $(JRE_IMAGE_DIR)/$(CDS_ARCHIVE), \
|
||||
SUPPORT_DIR := $(SUPPORT_OUTPUTDIR)/images/jre, \
|
||||
COMMAND := $(FIXPATH) $(JRE_IMAGE_DIR)/bin/java -Xshare:dump \
|
||||
-Xmx128M -Xms128M $(LOG_INFO), \
|
||||
))
|
||||
$(JRE_IMAGE_DIR)/man/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/%
|
||||
$(call LogInfo, Copying $(patsubst $(OUTPUTDIR)/%,%,$@))
|
||||
$(install-file)
|
||||
|
||||
JDK_TARGETS += $(gen_cds_archive_jdk)
|
||||
endif
|
||||
$(JDK_IMAGE_DIR)/man/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/%
|
||||
$(call LogInfo, Copying $(patsubst $(OUTPUTDIR)/%,%,$@))
|
||||
$(install-file)
|
||||
|
||||
$(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/%
|
||||
$(call LogInfo, Copying $(patsubst $(OUTPUTDIR)/%,%,$@))
|
||||
$(install-file)
|
||||
|
||||
$(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/%
|
||||
$(call LogInfo, Copying $(patsubst $(OUTPUTDIR)/%,%,$@))
|
||||
$(install-file)
|
||||
|
||||
ifeq ($(OPENJDK_TARGET_OS), solaris)
|
||||
$(JRE_IMAGE_DIR)/man/ja/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/%
|
||||
$(call LogInfo, Converting $(patsubst $(OUTPUTDIR)/%,%,$@))
|
||||
$(install-file)
|
||||
|
||||
$(JDK_IMAGE_DIR)/man/ja/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/%
|
||||
$(call LogInfo, Converting $(patsubst $(OUTPUTDIR)/%,%,$@))
|
||||
$(install-file)
|
||||
endif
|
||||
|
||||
ifneq ($(findstring $(OPENJDK_TARGET_OS), linux macosx), )
|
||||
$(JRE_IMAGE_DIR)/man/ja:
|
||||
$(call LogInfo, Creating $(patsubst $(OUTPUTDIR)/%,%,$@))
|
||||
$(CD) $(@D) && $(RM) ja && $(LN) -s ja_JP.UTF-8 ja
|
||||
|
||||
$(JDK_IMAGE_DIR)/man/ja:
|
||||
$(call LogInfo, Creating $(patsubst $(OUTPUTDIR)/%,%,$@))
|
||||
$(CD) $(@D) && $(RM) ja && $(LN) -s ja_JP.UTF-8 ja
|
||||
endif
|
||||
|
||||
ifeq ($(OPENJDK_TARGET_OS), solaris)
|
||||
JRE_MAN_PAGE_LIST = $(addprefix $(JRE_IMAGE_DIR)/man/man1/, $(JRE_MAN_PAGES)) \
|
||||
$(addprefix $(JRE_IMAGE_DIR)/man/ja/man1/, $(JRE_MAN_PAGES)) \
|
||||
$(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JRE_MAN_PAGES)) \
|
||||
$(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.PCK/man1/, $(JRE_MAN_PAGES))
|
||||
|
||||
JDK_MAN_PAGE_LIST = $(addprefix $(JDK_IMAGE_DIR)/man/man1/, $(JDK_MAN_PAGES)) \
|
||||
$(addprefix $(JDK_IMAGE_DIR)/man/ja/man1/, $(JDK_MAN_PAGES)) \
|
||||
$(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JDK_MAN_PAGES)) \
|
||||
$(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.PCK/man1/, $(JDK_MAN_PAGES))
|
||||
endif
|
||||
|
||||
ifneq ($(findstring $(OPENJDK_TARGET_OS), linux macosx), )
|
||||
JRE_MAN_PAGE_LIST = $(addprefix $(JRE_IMAGE_DIR)/man/man1/, $(JRE_MAN_PAGES)) \
|
||||
$(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JRE_MAN_PAGES)) \
|
||||
$(JRE_IMAGE_DIR)/man/ja
|
||||
|
||||
JDK_MAN_PAGE_LIST = $(addprefix $(JDK_IMAGE_DIR)/man/man1/, $(JDK_MAN_PAGES)) \
|
||||
$(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JDK_MAN_PAGES)) \
|
||||
$(JDK_IMAGE_DIR)/man/ja
|
||||
endif
|
||||
|
||||
JRE_TARGETS += $(JRE_MAN_PAGE_LIST)
|
||||
JDK_TARGETS += $(JDK_MAN_PAGE_LIST)
|
||||
endif # BUILD_MANPAGES
|
||||
endif # Windows
|
||||
|
||||
################################################################################
|
||||
# src.zip
|
||||
@@ -162,7 +255,7 @@ ifneq ($(filter jdk, $(MAKECMDGOALS)), )
|
||||
)
|
||||
|
||||
ifeq ($(ZIP_EXTERNAL_DEBUG_SYMBOLS), true)
|
||||
ifeq ($(call isTargetOs, macosx), true)
|
||||
ifeq ($(OPENJDK_TARGET_OS), macosx)
|
||||
DEMO_FILES := $(call not-containing, .dSYM, $(DEMO_FILES))
|
||||
else
|
||||
DEMO_FILES := $(filter-out %.debuginfo %.pdb %.map, $(DEMO_FILES))
|
||||
@@ -210,7 +303,7 @@ ALL_JDK_MODULES := $(JDK_MODULES)
|
||||
ALL_JRE_MODULES := $(sort $(JRE_MODULES), $(foreach m, $(JRE_MODULES), \
|
||||
$(call FindTransitiveDepsForModule, $m)))
|
||||
|
||||
ifeq ($(call isTargetOs, windows), true)
|
||||
ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
LIBS_TARGET_SUBDIR := bin
|
||||
else
|
||||
LIBS_TARGET_SUBDIR := lib
|
||||
@@ -229,7 +322,7 @@ else
|
||||
DEBUGINFO_SUFFIXES := .debuginfo .pdb .map
|
||||
# On Macosx, if debug symbols have not been zipped, find all files inside *.dSYM
|
||||
# dirs.
|
||||
ifeq ($(call isTargetOs, macosx), true)
|
||||
ifeq ($(OPENJDK_TARGET_OS), macosx)
|
||||
$(eval $(call FillCacheFind, \
|
||||
$(SUPPORT_OUTPUTDIR)/modules_cmds $(SUPPORT_OUTPUTDIR)/modules_libs))
|
||||
FindDebuginfoFiles = \
|
||||
@@ -262,11 +355,11 @@ $(eval $(call IncludeCustomExtension, Images-post.gmk))
|
||||
|
||||
################################################################################
|
||||
|
||||
$(JRE_TARGETS): $(JLINK_JRE_TARGETS)
|
||||
$(JDK_TARGETS): $(JLINK_JDK_TARGETS)
|
||||
$(JRE_TARGETS): $(TOOL_JRE_TARGETS)
|
||||
$(JDK_TARGETS): $(TOOL_JDK_TARGETS)
|
||||
|
||||
jdk: $(JLINK_JDK_TARGETS) $(JDK_TARGETS)
|
||||
jre: $(JLINK_JRE_TARGETS) $(JRE_TARGETS)
|
||||
jdk: $(TOOL_JDK_TARGETS) $(JDK_TARGETS)
|
||||
jre: $(TOOL_JRE_TARGETS) $(JRE_TARGETS)
|
||||
symbols: $(SYMBOLS_TARGETS)
|
||||
|
||||
all: jdk jre symbols
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2012, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2012, 2018, 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
|
||||
@@ -240,11 +240,6 @@ else # HAS_SPEC=true
|
||||
override BUILD_LOG_PIPE :=
|
||||
endif
|
||||
|
||||
ifeq ($(filter dist-clean, $(SEQUENTIAL_TARGETS)), dist-clean)
|
||||
# We can't have a log file if we're about to remove it.
|
||||
override BUILD_LOG_PIPE :=
|
||||
endif
|
||||
|
||||
ifeq ($(OUTPUT_SYNC_SUPPORTED), true)
|
||||
OUTPUT_SYNC_FLAG := -O$(OUTPUT_SYNC)
|
||||
endif
|
||||
@@ -277,7 +272,7 @@ else # HAS_SPEC=true
|
||||
else
|
||||
$(ECHO) "Re-running configure using default settings"
|
||||
endif
|
||||
( cd $(OUTPUTDIR) && PATH="$(ORIGINAL_PATH)" AUTOCONF="$(AUTOCONF)" \
|
||||
( cd $(OUTPUTDIR) && PATH="$(ORIGINAL_PATH)" \
|
||||
CUSTOM_ROOT="$(CUSTOM_ROOT)" \
|
||||
CUSTOM_CONFIG_DIR="$(CUSTOM_CONFIG_DIR)" \
|
||||
$(BASH) $(TOPDIR)/configure $(CONFIGURE_COMMAND_LINE) )
|
||||
|
||||
@@ -50,7 +50,7 @@ ifeq ($(HAS_SPEC),)
|
||||
|
||||
# Make control variables, handled by Init.gmk
|
||||
INIT_CONTROL_VARIABLES += LOG CONF CONF_NAME SPEC JOBS TEST_JOBS CONF_CHECK \
|
||||
COMPARE_BUILD JTREG GTEST MICRO TEST_OPTS TEST_VM_OPTS
|
||||
COMPARE_BUILD JTREG GTEST TEST_OPTS TEST_VM_OPTS
|
||||
|
||||
# All known make control variables
|
||||
MAKE_CONTROL_VARIABLES := $(INIT_CONTROL_VARIABLES) TEST JDK_FILTER
|
||||
@@ -264,13 +264,9 @@ ifeq ($(HAS_SPEC),)
|
||||
endif
|
||||
endif
|
||||
|
||||
# The --no-print-directory is needed to make the call from
|
||||
# FindTest.gmk to Test.gmk work with LOG=debug/trace. See
|
||||
# JDK-8213736
|
||||
$$(main_targets_file):
|
||||
@( cd $$(topdir) && \
|
||||
$$(MAKE) $$(MAKE_LOG_FLAGS) -r -R --no-print-directory \
|
||||
-f $$(topdir)/make/Main.gmk \
|
||||
$$(MAKE) $$(MAKE_LOG_FLAGS) -r -R -f $$(topdir)/make/Main.gmk \
|
||||
-I $$(topdir)/make/common SPEC=$(strip $2) NO_RECIPES=true \
|
||||
$$(MAKE_LOG_VARS) \
|
||||
create-main-targets-include )
|
||||
@@ -483,7 +479,7 @@ else # $(HAS_SPEC)=true
|
||||
$(TOUCH) $(SJAVAC_SERVER_DIR)/server.port.stop; true
|
||||
endef
|
||||
|
||||
ifeq ($(call isBuildOs, windows), true)
|
||||
ifeq ($(OPENJDK_BUILD_OS), windows)
|
||||
# On windows we need to synchronize with the javac server to be able to
|
||||
# move or remove the build output directory. Since we have no proper
|
||||
# synchronization process, wait for a while and hope it helps. This is only
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2016, 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
|
||||
|
||||
107
make/Jprt.gmk
Normal file
@@ -0,0 +1,107 @@
|
||||
#
|
||||
# Copyright (c) 2012, 2016, 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.
|
||||
#
|
||||
|
||||
# This file contains targets and utilities needed by JPRT.
|
||||
|
||||
# Cygpath is only defined when running on Cygwin
|
||||
ifneq ($(CYGPATH), )
|
||||
# If we get JPRT_ARCHIVE_*BUNDLE externally, make sure they have /cygdrive
|
||||
# style paths
|
||||
ifdef JPRT_ARCHIVE_BUNDLE
|
||||
override JPRT_ARCHIVE_BUNDLE := $(shell $(CYGPATH) -u $(JPRT_ARCHIVE_BUNDLE))
|
||||
endif
|
||||
ifdef JPRT_ARCHIVE_TEST_BUNDLE
|
||||
override JPRT_ARCHIVE_TEST_BUNDLE := \
|
||||
$(shell $(CYGPATH) -u $(JPRT_ARCHIVE_TEST_BUNDLE))
|
||||
endif
|
||||
ifdef JPRT_ARCHIVE_SYMBOLS_BUNDLE
|
||||
override JPRT_ARCHIVE_SYMBOLS_BUNDLE := \
|
||||
$(shell $(CYGPATH) -u $(JPRT_ARCHIVE_SYMBOLS_BUNDLE))
|
||||
endif
|
||||
endif
|
||||
|
||||
# When running in JPRT these will be provided. Need defaults so that this makefile
|
||||
# is valid anyway.
|
||||
ifndef JPRT_ARCHIVE_BUNDLE
|
||||
JPRT_ARCHIVE_BUNDLE=/tmp/jprt_bundles/jdk-image.zip
|
||||
endif
|
||||
ifndef JPRT_ARCHIVE_TEST_BUNDLE
|
||||
JPRT_ARCHIVE_TEST_BUNDLE=/tmp/jprt_bundles/test-image.zip
|
||||
endif
|
||||
ifndef JPRT_ARCHIVE_SYMBOLS_BUNDLE
|
||||
JPRT_ARCHIVE_SYMBOLS_BUNDLE=/tmp/jprt_bundles/symbols-image.zip
|
||||
endif
|
||||
|
||||
ifeq ($(SKIP_BOOT_CYCLE), false)
|
||||
jprt_bundle: bootcycle-images
|
||||
endif
|
||||
|
||||
################################################################################
|
||||
# JPRT specific bundling targets
|
||||
JPRT_TARGET ?= $(DEFAULT_MAKE_TARGET)
|
||||
ifeq ($(JPRT_TARGET), $(DEFAULT_MAKE_TARGET))
|
||||
jprt_bundle: $(DEFAULT_MAKE_TARGET) $(JPRT_ARCHIVE_BUNDLE) \
|
||||
$(JPRT_ARCHIVE_TEST_BUNDLE)
|
||||
|
||||
SRC_JDK_IMAGE_DIR := $(JDK_IMAGE_DIR)
|
||||
SRC_TEST_IMAGE_DIR := $(TEST_IMAGE_DIR)
|
||||
|
||||
# This target must be called in the context of a SPEC file
|
||||
$(JPRT_ARCHIVE_BUNDLE): product-images
|
||||
$(call MakeDir, $(@D))
|
||||
$(CD) $(SRC_JDK_IMAGE_DIR) && $(ZIPEXE) -y -q -r $@ .
|
||||
|
||||
$(JPRT_ARCHIVE_TEST_BUNDLE): test-image
|
||||
$(call MakeDir, $(@D))
|
||||
$(CD) $(SRC_TEST_IMAGE_DIR) && $(ZIPEXE) -y -q -r $@ .
|
||||
|
||||
##############################################################################
|
||||
# Optional symbols bundle
|
||||
ifeq ($(GCOV_ENABLED), true)
|
||||
jprt_bundle: $(JPRT_ARCHIVE_SYMBOLS_BUNDLE)
|
||||
|
||||
$(JPRT_ARCHIVE_SYMBOLS_BUNDLE): product-images
|
||||
$(call MakeDir, $(@D))
|
||||
$(CD) $(SYMBOLS_IMAGE_DIR) && $(ZIPEXE) -y -q -r $@ .
|
||||
|
||||
endif
|
||||
|
||||
##############################################################################
|
||||
|
||||
else
|
||||
# Just fake the main bundle to satisfy JPRT
|
||||
jprt_bundle: $(JPRT_TARGET)
|
||||
@$(call TargetEnter)
|
||||
$(MKDIR) -p $(OUTPUTDIR)/bundles
|
||||
$(CD) $(TOPDIR) && $(TAR) cf - README | $(GZIP) > \
|
||||
$(JPRT_ARCHIVE_BUNDLE)
|
||||
@$(call TargetExit)
|
||||
endif
|
||||
|
||||
ALL_TARGETS += jprt_bundle
|
||||
|
||||
################################################################################
|
||||
|
||||
$(eval $(call IncludeCustomExtension, Jprt.gmk))
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2017, 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
|
||||
@@ -30,7 +30,7 @@ include TextFileProcessing.gmk
|
||||
default: bundles
|
||||
|
||||
# Only macosx has bundles defined.
|
||||
ifeq ($(call isTargetOs, macosx), true)
|
||||
ifeq ($(OPENJDK_TARGET_OS), macosx)
|
||||
|
||||
bundles: jre-bundle jdk-bundle
|
||||
|
||||
@@ -63,15 +63,15 @@ ifeq ($(call isTargetOs, macosx), true)
|
||||
|
||||
$(JDK_MACOSX_CONTENTS_DIR)/MacOS/libjli.dylib:
|
||||
$(call LogInfo, Creating link $(patsubst $(OUTPUTDIR)/%,%,$@))
|
||||
$(call MakeTargetDir)
|
||||
$(MKDIR) -p $(@D)
|
||||
$(RM) $@
|
||||
$(LN) -s ../Home/lib/libjli.dylib $@
|
||||
$(LN) -s ../Home/lib/jli/libjli.dylib $@
|
||||
|
||||
$(JRE_MACOSX_CONTENTS_DIR)/MacOS/libjli.dylib:
|
||||
$(call LogInfo, Creating link $(patsubst $(OUTPUTDIR)/%,%,$@))
|
||||
$(call MakeTargetDir)
|
||||
$(MKDIR) -p $(@D)
|
||||
$(RM) $@
|
||||
$(LN) -s ../Home/lib/libjli.dylib $@
|
||||
$(LN) -s ../Home/lib/jli/libjli.dylib $@
|
||||
|
||||
$(eval $(call SetupTextFileProcessing, BUILD_JDK_PLIST, \
|
||||
SOURCE_FILES := $(MACOSX_PLIST_SRC)/JDK-Info.plist, \
|
||||
|
||||
221
make/Main.gmk
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2018, 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
|
||||
@@ -262,31 +262,6 @@ hotspot-ide-project:
|
||||
ALL_TARGETS += $(HOTSPOT_VARIANT_TARGETS) $(HOTSPOT_VARIANT_GENSRC_TARGETS) \
|
||||
$(HOTSPOT_VARIANT_LIBS_TARGETS) hotspot-ide-project
|
||||
|
||||
################################################################################
|
||||
# Generate libs and launcher targets for creating compile_commands.json fragments
|
||||
define DeclareCompileCommandsRecipe
|
||||
$1-compile-commands:
|
||||
$$(call LogInfo, Generating compile_commands.json fragments for $1)
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Main.gmk $1-only \
|
||||
GENERATE_COMPILE_COMMANDS_ONLY=true)
|
||||
|
||||
COMPILE_COMMANDS_TARGETS_$2 += $1-compile-commands
|
||||
endef
|
||||
|
||||
$(foreach t, $(HOTSPOT_VARIANT_LIBS_TARGETS), \
|
||||
$(eval $(call DeclareCompileCommandsRecipe,$t,HOTSPOT)) \
|
||||
)
|
||||
|
||||
$(foreach t, $(LIBS_TARGETS) $(LAUNCHER_TARGETS), \
|
||||
$(eval $(call DeclareCompileCommandsRecipe,$t,JDK)) \
|
||||
)
|
||||
|
||||
compile-commands compile-commands-hotspot:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileCommands.gmk)
|
||||
|
||||
ALL_TARGETS += $(COMPILE_COMMANDS_TARGETS_HOTSPOT) $(COMPILE_COMMANDS_TARGETS_JDK)
|
||||
ALL_TARGETS += compile-commands compile-commands-hotspot
|
||||
|
||||
################################################################################
|
||||
# Build demos targets
|
||||
|
||||
@@ -371,15 +346,10 @@ release-file:
|
||||
exploded-image-optimize:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f ExplodedImageOptimize.gmk)
|
||||
|
||||
ifeq ($(JCOV_ENABLED), true)
|
||||
jcov-image:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Coverage.gmk jcov-image)
|
||||
endif
|
||||
|
||||
ALL_TARGETS += store-source-revision create-source-revision-tracker bootcycle-images zip-security \
|
||||
zip-source jrtfs-jar jdk-image legacy-jre-image \
|
||||
symbols-image mac-jdk-bundle mac-legacy-jre-bundle \
|
||||
release-file exploded-image-optimize jcov-image
|
||||
release-file exploded-image-optimize
|
||||
|
||||
################################################################################
|
||||
# Docs targets
|
||||
@@ -456,7 +426,7 @@ define DeclareInterimJmodRecipe
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CreateJmods.gmk \
|
||||
MODULE=$1 \
|
||||
JMODS_DIR=$(INTERIM_JMODS_DIR) \
|
||||
JMODS_SUPPORT_DIR=$(INTERIM_JMODS_DIR)/support \
|
||||
JMODS_TEMPDIR=$(INTERIM_JMODS_DIR)/temp \
|
||||
INTERIM_JMOD=true \
|
||||
)
|
||||
endef
|
||||
@@ -478,27 +448,24 @@ ALL_TARGETS += $(INTERIM_JMOD_TARGETS) interim-image generate-link-opt-data
|
||||
#
|
||||
|
||||
define DeclareRunTestRecipe
|
||||
test-$1:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f RunTests.gmk \
|
||||
TEST="$1")
|
||||
run-test-$1:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f RunTests.gmk run-test TEST="$1")
|
||||
|
||||
exploded-test-$1:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f RunTests.gmk \
|
||||
exploded-run-test-$1:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f RunTests.gmk run-test \
|
||||
TEST="$1" JDK_IMAGE_DIR=$(JDK_OUTPUTDIR))
|
||||
|
||||
endef
|
||||
|
||||
# ALL_NAMED_TESTS is defined in FindTests.gmk
|
||||
$(foreach t, $(ALL_NAMED_TESTS), $(eval $(call DeclareRunTestRecipe,$t)))
|
||||
ALL_TEST_TARGETS := $(addprefix test-, $(ALL_NAMED_TESTS))
|
||||
|
||||
# We only support the "exploded-test-gtest" shortcut
|
||||
ALL_EXPLODED_TESTS := gtest
|
||||
ALL_EXPLODED_TEST_TARGETS := $(addprefix exploded-test-, $(ALL_EXPLODED_TESTS))
|
||||
ALL_TEST_TARGETS := $(addprefix run-test-, $(ALL_NAMED_TESTS))
|
||||
ALL_EXPLODED_TEST_TARGETS := $(addprefix exploded-run-test-, $(ALL_NAMED_TESTS))
|
||||
|
||||
ALL_TARGETS += $(ALL_TEST_TARGETS) $(ALL_EXPLODED_TEST_TARGETS)
|
||||
|
||||
################################################################################
|
||||
# Build tests and microbenchmarks
|
||||
# Build tests
|
||||
#
|
||||
|
||||
prepare-test-image:
|
||||
@@ -528,6 +495,13 @@ test-image-hotspot-jtreg-graal:
|
||||
+($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) -f JtregGraalUnit.gmk \
|
||||
test-image-hotspot-jtreg-graal)
|
||||
|
||||
run-test:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f RunTests.gmk run-test TEST="$(TEST)")
|
||||
|
||||
exploded-run-test:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f RunTests.gmk run-test \
|
||||
TEST="$(TEST)" JDK_IMAGE_DIR=$(JDK_OUTPUTDIR))
|
||||
|
||||
ifeq ($(BUILD_GTEST), true)
|
||||
test-image-hotspot-gtest:
|
||||
+($(CD) $(TOPDIR)/make/hotspot/test && $(MAKE) $(MAKE_ARGS) -f GtestImage.gmk)
|
||||
@@ -542,38 +516,51 @@ ifeq ($(BUILD_FAILURE_HANDLER), true)
|
||||
+($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) \
|
||||
-f BuildFailureHandler.gmk build)
|
||||
|
||||
# Runs the tests for the failure handler jtreg extension
|
||||
test-failure-handler:
|
||||
+($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) \
|
||||
-f BuildFailureHandler.gmk test)
|
||||
|
||||
# Copies the failure handler jtreg extension into the test image
|
||||
test-image-failure-handler:
|
||||
+($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) \
|
||||
-f BuildFailureHandler.gmk images)
|
||||
endif
|
||||
|
||||
build-microbenchmark:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f test/BuildMicrobenchmark.gmk)
|
||||
|
||||
ALL_TARGETS += prepare-test-image build-test-hotspot-jtreg-native \
|
||||
test-image-hotspot-jtreg-native build-test-jdk-jtreg-native \
|
||||
test-image-jdk-jtreg-native build-test-lib build-test-failure-handler \
|
||||
test-failure-handler test-image-failure-handler test-image-hotspot-gtest \
|
||||
test-image-hotspot-jtreg-graal build-test-hotspot-jtreg-graal \
|
||||
build-microbenchmark
|
||||
run-test exploded-run-test
|
||||
|
||||
################################################################################
|
||||
# Run tests
|
||||
|
||||
# Run tests specified by $(TEST), or the default test set.
|
||||
test:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f RunTests.gmk \
|
||||
TEST="$(TEST)")
|
||||
$(call RunTests, $(TEST), $(JDK_IMAGE_DIR))
|
||||
|
||||
exploded-test:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f RunTests.gmk \
|
||||
TEST="$(TEST)" JDK_IMAGE_DIR=$(JDK_OUTPUTDIR))
|
||||
test-hotspot-jtreg:
|
||||
$(call RunTests, "hotspot_all", $(JDK_IMAGE_DIR))
|
||||
|
||||
jcov-test:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f RunTests.gmk \
|
||||
TEST="$(TEST)" TEST_OPTS_JCOV=true)
|
||||
test-hotspot-jtreg-native:
|
||||
$(call RunTests, "hotspot_native_sanity", $(JDK_IMAGE_DIR))
|
||||
|
||||
ALL_TARGETS += test exploded-test jcov-test
|
||||
test-hotspot-internal:
|
||||
$(call RunTests, "hotspot_internal", $(JDK_OUTPUTDIR))
|
||||
|
||||
test-hotspot-gtest:
|
||||
$(call RunTests, "hotspot_gtest", $(JDK_OUTPUTDIR))
|
||||
|
||||
test-jdk-jtreg-native:
|
||||
$(call RunTests, "jdk_native_sanity", $(JDK_IMAGE_DIR))
|
||||
|
||||
test-make:
|
||||
($(CD) $(TOPDIR)/test/make && $(MAKE) $(MAKE_ARGS) -f TestMake.gmk $(TEST_TARGET))
|
||||
|
||||
ALL_TARGETS += test test-hotspot-jtreg test-hotspot-jtreg-native \
|
||||
test-hotspot-internal test-hotspot-gtest test-jdk-jtreg-native test-make
|
||||
|
||||
################################################################################
|
||||
# Bundles
|
||||
@@ -587,12 +574,7 @@ test-bundles:
|
||||
docs-bundles:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Bundles.gmk docs-bundles)
|
||||
|
||||
ifeq ($(JCOV_ENABLED), true)
|
||||
jcov-bundles:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Bundles.gmk jcov-bundles)
|
||||
endif
|
||||
|
||||
ALL_TARGETS += product-bundles test-bundles docs-bundles jcov-bundles
|
||||
ALL_TARGETS += product-bundles test-bundles docs-bundles
|
||||
|
||||
################################################################################
|
||||
# Install targets
|
||||
@@ -648,7 +630,6 @@ else
|
||||
# Declare dependencies between hotspot-<variant>* targets
|
||||
$(foreach v, $(JVM_VARIANTS), \
|
||||
$(eval hotspot-$v: hotspot-$v-gensrc hotspot-$v-libs) \
|
||||
$(eval hotspot-$v-gensrc: java.base-copy) \
|
||||
$(eval hotspot-$v-libs: hotspot-$v-gensrc java.base-copy) \
|
||||
)
|
||||
|
||||
@@ -710,17 +691,16 @@ else
|
||||
# copied and processed.
|
||||
java.desktop-gensrc-src: java.base-gensrc java.base-copy
|
||||
|
||||
# The annotation processing for jdk.internal.vm.compiler
|
||||
# and jdk.internal.vm.compiler.management needs classes from the current JDK.
|
||||
# The annotation processing for jdk.internal.vm.ci and jdk.internal.vm.compiler
|
||||
# needs classes from the current JDK.
|
||||
jdk.internal.vm.ci-gensrc-src: $(addsuffix -java, \
|
||||
$(call FindTransitiveDepsForModule, jdk.internal.vm.ci))
|
||||
jdk.internal.vm.compiler-gensrc-src: $(addsuffix -java, \
|
||||
$(call FindTransitiveDepsForModule, jdk.internal.vm.compiler))
|
||||
jdk.internal.vm.compiler.management-gensrc-src: $(addsuffix -java, \
|
||||
$(call FindTransitiveDepsForModule, jdk.internal.vm.compiler.management))
|
||||
|
||||
# For these modules, the gensrc step is generating a module-info.java.extra
|
||||
# For jdk.internal.vm.compiler, the gensrc step is generating a module-info.java.extra
|
||||
# file to be processed by the gensrc-moduleinfo target.
|
||||
jdk.internal.vm.compiler-gensrc-moduleinfo: jdk.internal.vm.compiler-gensrc-src
|
||||
jdk.internal.vm.compiler.management-gensrc-moduleinfo: jdk.internal.vm.compiler.management-gensrc-src
|
||||
|
||||
jdk.jdeps-gendata: java rmic
|
||||
|
||||
@@ -755,22 +735,6 @@ else
|
||||
$(foreach m, $(ALL_MODULES), $(eval $m-jmod: $($(m)_JMOD_DEPS)))
|
||||
$(foreach m, $(INTERIM_IMAGE_MODULES), $(eval $m-interim-jmod: $($(m)_JMOD_DEPS)))
|
||||
|
||||
# Setup the minimal set of generated native source dependencies for hotspot
|
||||
$(foreach v, $(JVM_VARIANTS), \
|
||||
$(eval hotspot-$v-libs-compile-commands: hotspot-$v-gensrc) \
|
||||
$(foreach m, $(filter java.desktop jdk.hotspot.agent, $(GENSRC_MODULES)), \
|
||||
$(eval hotspot-$v-libs-compile-commands: $m-gensrc)) \
|
||||
)
|
||||
|
||||
# For the full JDK compile commands, create all possible generated sources
|
||||
$(foreach m, $(GENSRC_MODULES), $(eval $m-libs-compile-commands: $m-gensrc))
|
||||
$(foreach m, $(filter $(JAVA_MODULES), $(LIBS_MODULES)), $(eval $m-libs-compile-commands: $m-java))
|
||||
|
||||
$(COMPILE_COMMANDS_TARGETS_HOTSPOT): clean-compile-commands
|
||||
$(COMPILE_COMMANDS_TARGETS_JDK): clean-compile-commands
|
||||
compile-commands-hotspot: $(COMPILE_COMMANDS_TARGETS_HOTSPOT)
|
||||
compile-commands: $(COMPILE_COMMANDS_TARGETS_HOTSPOT) $(COMPILE_COMMANDS_TARGETS_JDK)
|
||||
|
||||
# Jmods cannot be created until we have the jmod tool ready to run. During
|
||||
# a normal build we run it from the exploded image, but when cross compiling
|
||||
# it's run from the buildjdk, which is either created at build time or user
|
||||
@@ -811,8 +775,6 @@ else
|
||||
|
||||
jrtfs-jar: interim-langtools
|
||||
|
||||
build-microbenchmark: interim-langtools exploded-image
|
||||
|
||||
ifeq ($(ENABLE_GENERATE_CLASSLIST), true)
|
||||
ifeq ($(CREATE_BUILDJDK), true)
|
||||
# If creating a buildjdk, the interim image needs to be based on that.
|
||||
@@ -838,10 +800,6 @@ else
|
||||
mac-jdk-bundle: jdk-image
|
||||
mac-legacy-jre-bundle: legacy-jre-image
|
||||
|
||||
ifeq ($(JCOV_INPUT_JDK), )
|
||||
jcov-image: jdk-image
|
||||
endif
|
||||
|
||||
# The optimize target can run as soon as the modules dir has been completely
|
||||
# populated (java, copy and gendata targets) and the basic libs and launchers
|
||||
# have been built.
|
||||
@@ -869,21 +827,17 @@ else
|
||||
docs-jdk-specs: $(JVM_DOCS_TARGETS) jdk.jdi-gensrc \
|
||||
docs-jdk-index
|
||||
|
||||
docs-jdk-index: exploded-image buildtools-modules
|
||||
|
||||
docs-zip: docs-jdk
|
||||
|
||||
# Tests
|
||||
test: jdk-image test-image
|
||||
|
||||
exploded-test: exploded-image test-image
|
||||
|
||||
jcov-test: jcov-image test-image
|
||||
|
||||
test-make: clean-test-make compile-commands
|
||||
|
||||
test-make-compile-commands: compile-commands
|
||||
run-test: jdk-image test-image
|
||||
exploded-run-test: exploded-image test-image
|
||||
|
||||
# Declare dependency for all generated test targets
|
||||
$(foreach t, $(filter-out test-make%, $(ALL_TEST_TARGETS)), $(eval $t: jdk-image test-image))
|
||||
$(foreach t, $(ALL_TEST_TARGETS), $(eval $t: jdk-image test-image))
|
||||
$(foreach t, $(ALL_EXPLODED_TEST_TARGETS), $(eval $t: exploded-image test-image))
|
||||
|
||||
create-buildjdk-copy: jdk.jlink-java java.base-gendata \
|
||||
@@ -893,10 +847,14 @@ else
|
||||
|
||||
interim-image: $(INTERIM_JMOD_TARGETS)
|
||||
|
||||
test-make: clean-test-make
|
||||
|
||||
build-test-lib: exploded-image-optimize
|
||||
|
||||
build-test-failure-handler: interim-langtools
|
||||
|
||||
test-failure-handler: build-test-failure-handler
|
||||
|
||||
test-image-failure-handler: build-test-failure-handler
|
||||
|
||||
build-test-hotspot-jtreg-native: buildtools-jdk \
|
||||
@@ -914,6 +872,12 @@ else
|
||||
|
||||
test-image-hotspot-gtest: hotspot
|
||||
|
||||
test-hotspot-internal: exploded-image
|
||||
|
||||
test-hotspot-jtreg: jdk-image test-image
|
||||
|
||||
test-hotspot-gtest: exploded-image test-image-hotspot-gtest
|
||||
|
||||
install: product-images
|
||||
|
||||
product-bundles: product-images
|
||||
@@ -922,8 +886,6 @@ else
|
||||
|
||||
docs-bundles: docs-image
|
||||
|
||||
jcov-bundles: jcov-image
|
||||
|
||||
generate-summary: jmods buildtools-modules
|
||||
|
||||
update-x11wrappers: java.base-copy buildtools-jdk
|
||||
@@ -1034,7 +996,7 @@ ifneq ($(CREATE_BUILDJDK), true)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(call isTargetOs, macosx), true)
|
||||
ifeq ($(OPENJDK_TARGET_OS), macosx)
|
||||
product-images: mac-jdk-bundle
|
||||
endif
|
||||
|
||||
@@ -1053,10 +1015,6 @@ test-image: prepare-test-image \
|
||||
test-image-jdk-jtreg-native test-image-failure-handler \
|
||||
test-image-demos-jdk $(JVM_TEST_IMAGE_TARGETS)
|
||||
|
||||
ifneq ($(JMH_CORE_JAR), )
|
||||
test-image: build-microbenchmark
|
||||
endif
|
||||
|
||||
################################################################################
|
||||
|
||||
# all-images builds all our deliverables as images.
|
||||
@@ -1088,28 +1046,6 @@ all: all-images
|
||||
|
||||
ALL_TARGETS += default jdk images docs bundles all
|
||||
|
||||
# Aliases used for running tests.
|
||||
|
||||
# Let "run-test" be an alias for "test"
|
||||
$(foreach t, $(ALL_NAMED_TESTS), $(eval run-test-$t: test-$t))
|
||||
RUN_TEST_TARGETS := $(addprefix run-test-, $(ALL_NAMED_TESTS))
|
||||
|
||||
run-test: test
|
||||
exploded-run-test: exploded-test
|
||||
|
||||
# "make check" is a common idiom for running basic testing
|
||||
check: test-tier1
|
||||
|
||||
# Keep some old names as aliases
|
||||
test-hotspot-jtreg: test-hotspot_all
|
||||
test-hotspot-jtreg-native: test-hotspot_native_sanity
|
||||
test-hotspot-gtest: exploded-test-gtest
|
||||
test-jdk-jtreg-native: test-jdk_native_sanity
|
||||
|
||||
ALL_TARGETS += $(RUN_TEST_TARGETS) run-test exploded-run-test check \
|
||||
test-hotspot-jtreg test-hotspot-jtreg-native test-hotspot-gtest \
|
||||
test-jdk-jtreg-native
|
||||
|
||||
################################################################################
|
||||
################################################################################
|
||||
#
|
||||
@@ -1120,8 +1056,7 @@ ALL_TARGETS += $(RUN_TEST_TARGETS) run-test exploded-run-test check \
|
||||
# file.
|
||||
|
||||
CLEAN_DIRS += hotspot jdk bootcycle-build test buildtools support \
|
||||
images make-support test-make bundles buildjdk test-results test-support \
|
||||
support/images
|
||||
images make-support test-make bundles buildjdk test-results test-support
|
||||
CLEAN_DIR_TARGETS := $(addprefix clean-, $(CLEAN_DIRS))
|
||||
CLEAN_SUPPORT_DIRS += demos
|
||||
CLEAN_SUPPORT_DIR_TARGETS := $(addprefix clean-, $(CLEAN_SUPPORT_DIRS))
|
||||
@@ -1136,15 +1071,12 @@ CLEAN_MODULE_PHASE_TARGETS := $(addprefix clean-, $(foreach m, $(ALL_MODULES), \
|
||||
|
||||
# Remove everything, except the output from configure.
|
||||
clean: $(CLEAN_DIR_TARGETS)
|
||||
($(CD) $(OUTPUTDIR) && $(RM) -r build*.log* compile_commands.json)
|
||||
($(CD) $(OUTPUTDIR) && $(RM) -r build*.log*)
|
||||
$(ECHO) Cleaned all build artifacts.
|
||||
|
||||
clean-docs:
|
||||
$(call CleanDocs)
|
||||
|
||||
clean-compile-commands:
|
||||
$(call CleanMakeSupportDir,compile-commands)
|
||||
|
||||
$(CLEAN_DIR_TARGETS):
|
||||
$(call CleanDir,$(patsubst clean-%, %, $@))
|
||||
|
||||
@@ -1171,15 +1103,11 @@ clean-support: clean-jdk
|
||||
|
||||
clean-test: clean-test-results clean-test-support
|
||||
|
||||
# When cleaning images, also clean the support/images directory.
|
||||
clean-images: clean-support/images
|
||||
|
||||
# Remove everything, including configure configuration. If the output
|
||||
# directory was created by configure and now becomes empty, remove it as well.
|
||||
dist-clean: clean
|
||||
($(CD) $(OUTPUTDIR) && \
|
||||
$(RM) -r *spec.gmk $(CONFIGURESUPPORT_OUTPUTDIR) Makefile compare.sh ide \
|
||||
configure.log* build.log*)
|
||||
$(RM) -r *spec.gmk $(CONFIGURESUPPORT_OUTPUTDIR) Makefile compare.sh ide)
|
||||
$(if $(filter $(CONF_NAME),$(notdir $(OUTPUTDIR))), \
|
||||
if test "x`$(LS) $(OUTPUTDIR)`" != x; then \
|
||||
$(ECHO) "Warning: Not removing non-empty configuration directory for '$(CONF_NAME)'" ; \
|
||||
@@ -1190,9 +1118,9 @@ dist-clean: clean
|
||||
)
|
||||
$(ECHO) Cleaned everything, you will have to re-run configure.
|
||||
|
||||
ALL_TARGETS += clean clean-docs clean-compile-commands dist-clean $(CLEAN_DIR_TARGETS) \
|
||||
$(CLEAN_SUPPORT_DIR_TARGETS) $(CLEAN_TEST_TARGETS) $(CLEAN_PHASE_TARGETS) \
|
||||
$(CLEAN_MODULE_TARGETS) $(CLEAN_MODULE_PHASE_TARGETS)
|
||||
ALL_TARGETS += clean clean-docs dist-clean $(CLEAN_DIR_TARGETS) $(CLEAN_SUPPORT_DIR_TARGETS) \
|
||||
$(CLEAN_TEST_TARGETS) $(CLEAN_PHASE_TARGETS) $(CLEAN_MODULE_TARGETS) \
|
||||
$(CLEAN_MODULE_PHASE_TARGETS)
|
||||
|
||||
################################################################################
|
||||
# Declare *-only targets for each normal target
|
||||
@@ -1202,6 +1130,11 @@ ALL_TARGETS += $(addsuffix -only, $(filter-out dist-clean clean%, $(ALL_TARGETS)
|
||||
|
||||
################################################################################
|
||||
|
||||
# Include JPRT targets
|
||||
include $(TOPDIR)/make/Jprt.gmk
|
||||
|
||||
################################################################################
|
||||
|
||||
# The following targets are intentionally not added to ALL_TARGETS since they
|
||||
# are internal only, to support Init.gmk.
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2017, 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
|
||||
@@ -30,6 +30,17 @@
|
||||
ifndef _MAINSUPPORT_GMK
|
||||
_MAINSUPPORT_GMK := 1
|
||||
|
||||
# Run the tests specified by $1, with PRODUCT_HOME specified by $2
|
||||
# JT_JAVA is picked up by the jtreg launcher and used to run Jtreg itself.
|
||||
define RunTests
|
||||
($(CD) $(TOPDIR)/test && $(MAKE) $(MAKE_ARGS) -j1 -k MAKEFLAGS= \
|
||||
JT_HOME=$(JT_HOME) PRODUCT_HOME=$(strip $2) \
|
||||
TEST_IMAGE_DIR=$(TEST_IMAGE_DIR) \
|
||||
ALT_OUTPUTDIR=$(OUTPUTDIR) TEST_JOBS=$(TEST_JOBS) \
|
||||
JT_JAVA=$(BOOT_JDK) JIB_JAR=$(JIB_JAR) \
|
||||
JOBS=$(JOBS) $1) || true
|
||||
endef
|
||||
|
||||
define CleanDocs
|
||||
@$(PRINTF) "Cleaning docs ..."
|
||||
@$(PRINTF) "\n" $(LOG_DEBUG)
|
||||
@@ -54,13 +65,6 @@ define CleanSupportDir
|
||||
@$(PRINTF) " done\n"
|
||||
endef
|
||||
|
||||
define CleanMakeSupportDir
|
||||
@$(PRINTF) "Cleaning $(strip $1) make support artifacts ..."
|
||||
@$(PRINTF) "\n" $(LOG_DEBUG)
|
||||
$(RM) -r $(MAKESUPPORT_OUTPUTDIR)/$(strip $1)
|
||||
@$(PRINTF) " done\n"
|
||||
endef
|
||||
|
||||
define CleanTest
|
||||
@$(PRINTF) "Cleaning test $(strip $1) ..."
|
||||
@$(PRINTF) "\n" $(LOG_DEBUG)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2014, 2016, 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
|
||||
@@ -42,7 +42,7 @@ TARGETS :=
|
||||
include $(MAKEFILE_PREFIX)-$(MODULE).gmk
|
||||
|
||||
# Setup copy rules from the modules directories to the jdk image directory.
|
||||
ifeq ($(call isTargetOs, windows), true)
|
||||
ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
TO_BIN_FILTER := %$(SHARED_LIBRARY_SUFFIX) %.diz %.pdb %.map
|
||||
|
||||
$(eval $(call SetupCopyFiles, COPY_LIBS_TO_BIN, \
|
||||
@@ -93,12 +93,6 @@ $(eval $(call SetupCopyFiles, COPY_CMDS, \
|
||||
FILES := $(filter $(SUPPORT_OUTPUTDIR)/modules_cmds/$(MODULE)/%, $(TARGETS)), \
|
||||
))
|
||||
|
||||
$(eval $(call SetupCopyFiles, COPY_MAN, \
|
||||
SRC := $(SUPPORT_OUTPUTDIR)/modules_man/$(MODULE), \
|
||||
DEST := $(JDK_OUTPUTDIR)/man, \
|
||||
FILES := $(filter $(SUPPORT_OUTPUTDIR)/modules_man/$(MODULE)/%, $(TARGETS)), \
|
||||
))
|
||||
|
||||
$(eval $(call SetupCopyFiles, COPY_CONF, \
|
||||
SRC := $(SUPPORT_OUTPUTDIR)/modules_conf/$(MODULE), \
|
||||
DEST := $(JDK_OUTPUTDIR)/conf, \
|
||||
@@ -106,9 +100,5 @@ $(eval $(call SetupCopyFiles, COPY_CONF, \
|
||||
$(TARGETS)), \
|
||||
))
|
||||
|
||||
ifeq ($(GENERATE_COMPILE_COMMANDS_ONLY), true)
|
||||
all: $(filter $(MAKESUPPORT_OUTPUTDIR)/compile-commands/%, $(TARGETS))
|
||||
else
|
||||
all: $(TARGETS) $(COPY_LIBS_TO_BIN) $(COPY_LIBS_TO_LIB) \
|
||||
$(COPY_INCLUDE) $(COPY_CMDS) $(COPY_MAN) $(COPY_CONF) $(LINK_LIBS_TO_LIB)
|
||||
endif
|
||||
all: $(TARGETS) $(COPY_LIBS_TO_BIN) $(COPY_LIBS_TO_LIB) \
|
||||
$(COPY_INCLUDE) $(COPY_CMDS) $(COPY_CONF) $(LINK_LIBS_TO_LIB)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@@ -32,6 +32,31 @@ include FindTests.gmk
|
||||
# We will always run multiple tests serially
|
||||
.NOTPARALLEL:
|
||||
|
||||
################################################################################
|
||||
# Setup global test running parameters
|
||||
################################################################################
|
||||
|
||||
# Each factor variable comes in 3 variants. The first one is reserved for users
|
||||
# to use on command line. The other two are for predifined configurations in JDL
|
||||
# and for machine specific configurations respectively.
|
||||
TEST_JOBS_FACTOR ?= 1
|
||||
TEST_JOBS_FACTOR_JDL ?= 1
|
||||
TEST_JOBS_FACTOR_MACHINE ?= 1
|
||||
|
||||
ifeq ($(TEST_JOBS), 0)
|
||||
# Concurrency based on min(cores / 2, 12) * TEST_JOBS_FACTOR
|
||||
TEST_JOBS := $(shell $(AWK) \
|
||||
'BEGIN { \
|
||||
c = $(NUM_CORES) / 2; \
|
||||
if (c > 12) c = 12; \
|
||||
c = c * $(TEST_JOBS_FACTOR); \
|
||||
c = c * $(TEST_JOBS_FACTOR_JDL); \
|
||||
c = c * $(TEST_JOBS_FACTOR_MACHINE); \
|
||||
if (c < 1) c = 1; \
|
||||
printf "%.0f", c; \
|
||||
}')
|
||||
endif
|
||||
|
||||
################################################################################
|
||||
# Parse global control variables
|
||||
################################################################################
|
||||
@@ -45,8 +70,8 @@ ifneq ($(TEST_VM_OPTS), )
|
||||
endif
|
||||
|
||||
$(eval $(call ParseKeywordVariable, TEST_OPTS, \
|
||||
SINGLE_KEYWORDS := JOBS TIMEOUT_FACTOR JCOV, \
|
||||
STRING_KEYWORDS := VM_OPTIONS JAVA_OPTIONS AOT_MODULES, \
|
||||
KEYWORDS := JOBS TIMEOUT, \
|
||||
STRING_KEYWORDS := VM_OPTIONS, \
|
||||
))
|
||||
|
||||
# Helper function to propagate TEST_OPTS values.
|
||||
@@ -61,18 +86,14 @@ define SetTestOpt
|
||||
endef
|
||||
|
||||
# Setup _NT_SYMBOL_PATH on Windows
|
||||
ifeq ($(call isTargetOs, windows), true)
|
||||
ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
ifndef _NT_SYMBOL_PATH
|
||||
# Can't use PathList here as it adds quotes around the value.
|
||||
_NT_SYMBOL_PATH := \
|
||||
$(subst $(SPACE),;,$(strip \
|
||||
$(foreach p, $(sort $(dir $(wildcard \
|
||||
$(addprefix $(SYMBOLS_IMAGE_DIR)/bin/, *.pdb */*.pdb)))), \
|
||||
$(call FixPath, $p) \
|
||||
) \
|
||||
))
|
||||
$(subst $(SPACE),;, $(foreach p, $(sort $(dir $(wildcard \
|
||||
$(addprefix $(SYMBOLS_IMAGE_DIR)/bin/, *.pdb */*.pdb)))), $(call FixPath, $p)))
|
||||
export _NT_SYMBOL_PATH
|
||||
$(call LogDebug, Rewriting _NT_SYMBOL_PATH to $(_NT_SYMBOL_PATH))
|
||||
$(info _NT_SYMBOL_PATH $(_NT_SYMBOL_PATH))
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -81,9 +102,6 @@ endif
|
||||
$(eval $(call IncludeCustomExtension, RunTests.gmk))
|
||||
################################################################################
|
||||
|
||||
# This is the JDK that we will test
|
||||
JDK_UNDER_TEST := $(JDK_IMAGE_DIR)
|
||||
|
||||
TEST_RESULTS_DIR := $(OUTPUTDIR)/test-results
|
||||
TEST_SUPPORT_DIR := $(OUTPUTDIR)/test-support
|
||||
TEST_SUMMARY := $(TEST_RESULTS_DIR)/test-summary.txt
|
||||
@@ -107,156 +125,8 @@ ifneq ($(wildcard $(JTREG_FAILURE_HANDLER)), )
|
||||
-timeoutHandlerTimeout:0
|
||||
endif
|
||||
|
||||
GTEST_LAUNCHER_DIRS := $(patsubst %/gtestLauncher, %, \
|
||||
$(wildcard $(TEST_IMAGE_DIR)/hotspot/gtest/*/gtestLauncher))
|
||||
GTEST_VARIANTS := $(strip $(patsubst $(TEST_IMAGE_DIR)/hotspot/gtest/%, %, \
|
||||
$(GTEST_LAUNCHER_DIRS)))
|
||||
|
||||
COV_ENVIRONMENT :=
|
||||
JTREG_COV_OPTIONS :=
|
||||
|
||||
ifeq ($(TEST_OPTS_JCOV), true)
|
||||
JCOV_OUTPUT_DIR := $(TEST_RESULTS_DIR)/jcov-output
|
||||
JCOV_GRABBER_LOG := $(JCOV_OUTPUT_DIR)/grabber.log
|
||||
JCOV_RESULT_FILE := $(JCOV_OUTPUT_DIR)/result.xml
|
||||
JCOV_REPORT := $(JCOV_OUTPUT_DIR)/report
|
||||
JCOV_MEM_OPTIONS := -Xms64m -Xmx4g
|
||||
|
||||
# Replace our normal test JDK with the JCov image.
|
||||
JDK_UNDER_TEST := $(JCOV_IMAGE_DIR)
|
||||
|
||||
COV_ENVIRONMENT += JAVA_TOOL_OPTIONS="$(JCOV_MEM_OPTIONS)" \
|
||||
_JAVA_OPTIONS="$(JCOV_MEM_OPTIONS)"
|
||||
JTREG_COV_OPTIONS += -e:JAVA_TOOL_OPTIONS='$(JCOV_MEM_OPTIONS)' \
|
||||
-e:_JAVA_OPTIONS='$(JCOV_MEM_OPTIONS)'
|
||||
endif
|
||||
|
||||
ifeq ($(GCOV_ENABLED), true)
|
||||
GCOV_OUTPUT_DIR := $(TEST_RESULTS_DIR)/gcov-output
|
||||
COV_ENVIRONMENT += GCOV_PREFIX="$(GCOV_OUTPUT_DIR)"
|
||||
JTREG_COV_OPTIONS += -e:GCOV_PREFIX="$(GCOV_OUTPUT_DIR)"
|
||||
endif
|
||||
|
||||
################################################################################
|
||||
# Optionally create AOT libraries for specified modules before running tests.
|
||||
# Note, this could not be done during JDK build time.
|
||||
################################################################################
|
||||
|
||||
# Note, this could not be done during JDK build time.
|
||||
|
||||
# Parameter 1 is the name of the rule.
|
||||
#
|
||||
# Remaining parameters are named arguments.
|
||||
# MODULE The module to generate a library for
|
||||
# BIN Output directory in which to put the library
|
||||
# VM_OPTIONS List of JVM arguments to use when creating library
|
||||
# OPTIONS_VAR Name of variable to put AOT java options in
|
||||
# PREREQS_VAR Name of variable to put all AOT prerequisite rule targets in
|
||||
# for test rules to depend on
|
||||
#
|
||||
SetupAotModule = $(NamedParamsMacroTemplate)
|
||||
define SetupAotModuleBody
|
||||
$1_AOT_LIB := $$($1_BIN)/$$(call SHARED_LIBRARY,$$($1_MODULE))
|
||||
$1_AOT_CCLIST := $$(wildcard $$(TOPDIR)/test/hotspot/jtreg/compiler/aot/scripts/$$($1_MODULE)-list.txt)
|
||||
|
||||
# Create jaotc flags.
|
||||
# VM flags which don't affect AOT code generation are filtered out:
|
||||
# -Xcomp, -XX:+-TieredCompilation
|
||||
$1_JAOTC_OPTS := \
|
||||
-J-Xmx4g --info \
|
||||
$$(addprefix -J, $$(filter-out -Xcomp %TieredCompilation, $$($1_VM_OPTIONS))) \
|
||||
$$(addprefix --compile-commands$(SPACE), $$($1_AOT_CCLIST)) \
|
||||
--linker-path $$(LD_JAOTC) \
|
||||
#
|
||||
|
||||
ifneq ($$(filter -ea, $$($1_VM_OPTIONS)), )
|
||||
$1_JAOTC_OPTS += --compile-with-assertions
|
||||
endif
|
||||
|
||||
$$($1_AOT_LIB): $$(JDK_UNDER_TEST)/release \
|
||||
$$(call DependOnVariable, $1_JAOTC_OPTS) \
|
||||
$$(call DependOnVariable, JDK_UNDER_TEST)
|
||||
$$(call LogWarn, Generating $$(patsubst $$(OUTPUTDIR)/%, %, $$@))
|
||||
$$(call MakeTargetDir)
|
||||
$$(call ExecuteWithLog, $$@, \
|
||||
$((COV_ENVIRONMENT) \
|
||||
$$(FIXPATH) $$(JDK_UNDER_TEST)/bin/jaotc \
|
||||
$$($1_JAOTC_OPTS) --output $$@ --module $$($1_MODULE) \
|
||||
)
|
||||
$$(call ExecuteWithLog, $$@.check, \
|
||||
$$(FIXPATH) $$(JDK_UNDER_TEST)/bin/java \
|
||||
$$($1_VM_OPTIONS) -XX:+UnlockDiagnosticVMOptions \
|
||||
-XX:+PrintAOT -XX:+UseAOTStrictLoading \
|
||||
-XX:AOTLibrary=$$@ -version \
|
||||
> $$@.verify-aot \
|
||||
)
|
||||
|
||||
$1_AOT_OPTIONS += -XX:AOTLibrary=$$($1_AOT_LIB)
|
||||
$1_AOT_TARGETS += $$($1_AOT_LIB)
|
||||
endef
|
||||
|
||||
# Parameter 1 is the name of the rule.
|
||||
#
|
||||
# Remaining parameters are named arguments.
|
||||
# MODULES The modules to generate a library for
|
||||
# VM_OPTIONS List of JVM arguments to use when creating libraries
|
||||
#
|
||||
# After calling this, the following variables are defined
|
||||
# $1_AOT_OPTIONS List of all java options needed to use the AOT libraries
|
||||
# $1_AOT_TARGETS List of all targets that the test rule will need to depend on
|
||||
#
|
||||
SetupAot = $(NamedParamsMacroTemplate)
|
||||
define SetupAotBody
|
||||
$$(info Running with AOTd libraries for $$($1_MODULES))
|
||||
# Put aot libraries in a separate directory so they are not deleted between
|
||||
# test runs and may be reused between make invocations.
|
||||
$$(foreach m, $$($1_MODULES), \
|
||||
$$(eval $$(call SetupAotModule, $1_$$m, \
|
||||
MODULE := $$m, \
|
||||
BIN := $$(TEST_SUPPORT_DIR)/aot/$1, \
|
||||
VM_OPTIONS := $$($1_VM_OPTIONS), \
|
||||
)) \
|
||||
$$(eval $1_AOT_OPTIONS += $$($1_$$m_AOT_OPTIONS)) \
|
||||
$$(eval $1_AOT_TARGETS += $$($1_$$m_AOT_TARGETS)) \
|
||||
)
|
||||
endef
|
||||
|
||||
################################################################################
|
||||
# Setup global test running parameters
|
||||
################################################################################
|
||||
|
||||
# Each factor variable comes in 3 variants. The first one is reserved for users
|
||||
# to use on command line. The other two are for predifined configurations in JDL
|
||||
# and for machine specific configurations respectively.
|
||||
TEST_JOBS_FACTOR ?= 1
|
||||
TEST_JOBS_FACTOR_JDL ?= 1
|
||||
TEST_JOBS_FACTOR_MACHINE ?= 1
|
||||
|
||||
ifeq ($(TEST_JOBS), 0)
|
||||
CORES_DIVIDER := 2
|
||||
ifeq ($(call isTargetCpuArch, sparc), true)
|
||||
# For smaller SPARC machines we see reasonable scaling of throughput up to
|
||||
# cpus/4 without affecting test reliability. On the bigger machines, cpus/4
|
||||
# causes intermittent timeouts.
|
||||
ifeq ($(shell $(EXPR) $(NUM_CORES) \> 16), 1)
|
||||
CORES_DIVIDER := 5
|
||||
else
|
||||
CORES_DIVIDER := 4
|
||||
endif
|
||||
endif
|
||||
MEMORY_DIVIDER := 2048
|
||||
TEST_JOBS := $(shell $(AWK) \
|
||||
'BEGIN { \
|
||||
c = $(NUM_CORES) / $(CORES_DIVIDER); \
|
||||
m = $(MEMORY_SIZE) / $(MEMORY_DIVIDER); \
|
||||
if (c > m) c = m; \
|
||||
c = c * $(TEST_JOBS_FACTOR); \
|
||||
c = c * $(TEST_JOBS_FACTOR_JDL); \
|
||||
c = c * $(TEST_JOBS_FACTOR_MACHINE); \
|
||||
if (c < 1) c = 1; \
|
||||
printf "%.0f", c; \
|
||||
}')
|
||||
endif
|
||||
GTEST_LAUNCHER_DIRS := $(patsubst %/gtestLauncher, %, $(wildcard $(TEST_IMAGE_DIR)/hotspot/gtest/*/gtestLauncher))
|
||||
GTEST_VARIANTS := $(strip $(patsubst $(TEST_IMAGE_DIR)/hotspot/gtest/%, %, $(GTEST_LAUNCHER_DIRS)))
|
||||
|
||||
################################################################################
|
||||
# Parse control variables
|
||||
@@ -265,22 +135,17 @@ endif
|
||||
ifneq ($(TEST_OPTS), )
|
||||
# Inform the user
|
||||
$(info Running tests using TEST_OPTS control variable '$(TEST_OPTS)')
|
||||
|
||||
$(eval $(call SetTestOpt,VM_OPTIONS,JTREG))
|
||||
$(eval $(call SetTestOpt,VM_OPTIONS,GTEST))
|
||||
|
||||
$(eval $(call SetTestOpt,JOBS,JTREG))
|
||||
$(eval $(call SetTestOpt,TIMEOUT,JTREG))
|
||||
endif
|
||||
|
||||
### Jtreg
|
||||
|
||||
$(eval $(call SetTestOpt,VM_OPTIONS,JTREG))
|
||||
$(eval $(call SetTestOpt,JAVA_OPTIONS,JTREG))
|
||||
$(eval $(call SetTestOpt,AOT_MODULES,JTREG))
|
||||
|
||||
$(eval $(call SetTestOpt,JOBS,JTREG))
|
||||
$(eval $(call SetTestOpt,TIMEOUT_FACTOR,JTREG))
|
||||
|
||||
$(eval $(call ParseKeywordVariable, JTREG, \
|
||||
SINGLE_KEYWORDS := JOBS TIMEOUT_FACTOR TEST_MODE ASSERT VERBOSE RETAIN \
|
||||
MAX_MEM, \
|
||||
STRING_KEYWORDS := OPTIONS JAVA_OPTIONS VM_OPTIONS KEYWORDS \
|
||||
EXTRA_PROBLEM_LISTS AOT_MODULES, \
|
||||
KEYWORDS := JOBS TIMEOUT TEST_MODE ASSERT VERBOSE RETAIN MAX_MEM, \
|
||||
STRING_KEYWORDS := OPTIONS JAVA_OPTIONS VM_OPTIONS, \
|
||||
))
|
||||
|
||||
ifneq ($(JTREG), )
|
||||
@@ -288,15 +153,9 @@ ifneq ($(JTREG), )
|
||||
$(info Running tests using JTREG control variable '$(JTREG)')
|
||||
endif
|
||||
|
||||
### Gtest
|
||||
|
||||
$(eval $(call SetTestOpt,VM_OPTIONS,GTEST))
|
||||
$(eval $(call SetTestOpt,JAVA_OPTIONS,GTEST))
|
||||
$(eval $(call SetTestOpt,AOT_MODULES,GTEST))
|
||||
|
||||
$(eval $(call ParseKeywordVariable, GTEST, \
|
||||
SINGLE_KEYWORDS := REPEAT, \
|
||||
STRING_KEYWORDS := OPTIONS VM_OPTIONS JAVA_OPTIONS AOT_MODULES, \
|
||||
KEYWORDS := REPEAT, \
|
||||
STRING_KEYWORDS := OPTIONS VM_OPTIONS, \
|
||||
))
|
||||
|
||||
ifneq ($(GTEST), )
|
||||
@@ -304,22 +163,6 @@ ifneq ($(GTEST), )
|
||||
$(info Running tests using GTEST control variable '$(GTEST)')
|
||||
endif
|
||||
|
||||
### Microbenchmarks
|
||||
|
||||
$(eval $(call SetTestOpt,VM_OPTIONS,MICRO))
|
||||
$(eval $(call SetTestOpt,JAVA_OPTIONS,MICRO))
|
||||
|
||||
$(eval $(call ParseKeywordVariable, MICRO, \
|
||||
SINGLE_KEYWORDS := ITER FORK TIME WARMUP_ITER WARMUP_TIME, \
|
||||
STRING_KEYWORDS := OPTIONS JAVA_OPTIONS VM_OPTIONS RESULTS_FORMAT TEST_JDK \
|
||||
BENCHMARKS_JAR, \
|
||||
))
|
||||
|
||||
ifneq ($(MICRO), )
|
||||
# Inform the user
|
||||
$(info Running tests using MICRO control variable '$(MICRO)')
|
||||
endif
|
||||
|
||||
|
||||
################################################################################
|
||||
# Component-specific Jtreg settings
|
||||
@@ -376,24 +219,6 @@ define ParseGtestTestSelection
|
||||
)
|
||||
endef
|
||||
|
||||
# Helper function to determine if a test specification is a microbenchmark test
|
||||
#
|
||||
# It is a microbenchmark test if it is either "micro", or "micro:" followed by
|
||||
# an optional test filter string.
|
||||
define ParseMicroTestSelection
|
||||
$(if $(filter micro%, $1), \
|
||||
$(if $(filter micro, $1), \
|
||||
micro:all \
|
||||
, \
|
||||
$(if $(filter micro:, $1), \
|
||||
micro:all \
|
||||
, \
|
||||
$1 \
|
||||
) \
|
||||
) \
|
||||
)
|
||||
endef
|
||||
|
||||
# Helper function that removes the TOPDIR part
|
||||
CleanupJtregPath = \
|
||||
$(strip $(patsubst %/, %, $(subst $(JTREG_TOPDIR)/,, $1)))
|
||||
@@ -468,32 +293,16 @@ endef
|
||||
|
||||
# Helper function to determine if a test specification is a special test
|
||||
#
|
||||
# It is a special test if it is "special:" followed by a test name,
|
||||
# if it is "make:" or "make-" followed by a make test, or any of the special
|
||||
# test names as a single word.
|
||||
# It is a special test if it is "special:" followed by a test name.
|
||||
define ParseSpecialTestSelection
|
||||
$(if $(filter special:%, $1), \
|
||||
$1 \
|
||||
) \
|
||||
$(if $(filter make%, $1), \
|
||||
$(if $(filter make:%, $1), \
|
||||
special:$(strip $1) \
|
||||
) \
|
||||
$(if $(filter make-%, $1), \
|
||||
special:$(patsubst make-%,make:%, $1) \
|
||||
) \
|
||||
$(if $(filter make, $1), \
|
||||
special:make:all \
|
||||
)
|
||||
) \
|
||||
$(if $(filter failure-handler, $1), \
|
||||
special:$(strip $1) \
|
||||
)
|
||||
endef
|
||||
|
||||
ifeq ($(TEST), )
|
||||
$(info No test selection given in TEST!)
|
||||
$(info Please use e.g. 'make test TEST=tier1' or 'make test-tier1')
|
||||
$(info Please use e.g. 'run-test TEST=tier1' or 'run-test-tier1')
|
||||
$(info See doc/testing.[md|html] for help)
|
||||
$(error Cannot continue)
|
||||
endif
|
||||
@@ -506,9 +315,6 @@ $(foreach test, $(TEST), \
|
||||
$(if $(strip $(PARSED_TESTS)), , \
|
||||
$(eval PARSED_TESTS += $(call ParseGtestTestSelection, $(test))) \
|
||||
) \
|
||||
$(if $(strip $(PARSED_TESTS)), , \
|
||||
$(eval PARSED_TESTS += $(call ParseMicroTestSelection, $(test))) \
|
||||
) \
|
||||
$(if $(strip $(PARSED_TESTS)), , \
|
||||
$(eval PARSED_TESTS += $(call ParseJtregTestSelection, $(test))) \
|
||||
) \
|
||||
@@ -578,23 +384,15 @@ define SetupRunGtestTestBody
|
||||
$1_GTEST_REPEAT :=--gtest_repeat=$$(GTEST_REPEAT)
|
||||
endif
|
||||
|
||||
ifneq ($$(GTEST_AOT_MODULES), )
|
||||
$$(eval $$(call SetupAot, $1, \
|
||||
MODULES := $$(GTEST_AOT_MODULES), \
|
||||
VM_OPTIONS := $$(GTEST_VM_OPTIONS) $$(GTEST_JAVA_OPTIONS), \
|
||||
))
|
||||
endif
|
||||
|
||||
run-test-$1: pre-run-test $$($1_AOT_TARGETS)
|
||||
run-test-$1:
|
||||
$$(call LogWarn)
|
||||
$$(call LogWarn, Running test '$$($1_TEST)')
|
||||
$$(call MakeDir, $$($1_TEST_RESULTS_DIR) $$($1_TEST_SUPPORT_DIR))
|
||||
$$(call ExecuteWithLog, $$($1_TEST_SUPPORT_DIR)/gtest, \
|
||||
$$(FIXPATH) $$(TEST_IMAGE_DIR)/hotspot/gtest/$$($1_VARIANT)/gtestLauncher \
|
||||
-jdk $(JDK_UNDER_TEST) $$($1_GTEST_FILTER) \
|
||||
--gtest_output=xml:$$($1_TEST_RESULTS_DIR)/gtest.xml \
|
||||
$$($1_GTEST_REPEAT) $$(GTEST_OPTIONS) $$(GTEST_VM_OPTIONS) \
|
||||
$$(GTEST_JAVA_OPTIONS) $$($1_AOT_OPTIONS) \
|
||||
-jdk $(JDK_IMAGE_DIR) $$($1_GTEST_FILTER) \
|
||||
--gtest_output=xml:$$($1_TEST_RESULTS_DIR)/gtest.xml \
|
||||
$$($1_GTEST_REPEAT) $$(GTEST_OPTIONS) $$(GTEST_VM_OPTIONS) \
|
||||
> >($(TEE) $$($1_TEST_RESULTS_DIR)/gtest.txt) \
|
||||
&& $$(ECHO) $$$$? > $$($1_EXITCODE) \
|
||||
|| $$(ECHO) $$$$? > $$($1_EXITCODE) \
|
||||
@@ -627,122 +425,7 @@ define SetupRunGtestTestBody
|
||||
|
||||
$1: run-test-$1 parse-test-$1
|
||||
|
||||
TARGETS += $1 run-test-$1 parse-test-$1
|
||||
TEST_TARGETS += parse-test-$1
|
||||
|
||||
endef
|
||||
|
||||
################################################################################
|
||||
|
||||
### Rules for Microbenchmarks
|
||||
|
||||
# Helper function for SetupRunMicroTest. Set a MICRO_* variable from, in order:
|
||||
# 1) Specified by user on command line
|
||||
# 2) Generic default
|
||||
#
|
||||
# Note: No spaces are allowed around the arguments.
|
||||
# Arg $1 The test ID (i.e. $1 in SetupRunMicroTest)
|
||||
# Arg $2 Base variable, e.g. MICRO_TEST_JDK
|
||||
# Arg $3 The default value (optional)
|
||||
define SetMicroValue
|
||||
ifneq ($$($2), )
|
||||
$1_$2 := $$($2)
|
||||
else
|
||||
ifneq ($3, )
|
||||
$1_$2 := $3
|
||||
endif
|
||||
endif
|
||||
endef
|
||||
|
||||
SetupRunMicroTest = $(NamedParamsMacroTemplate)
|
||||
define SetupRunMicroTestBody
|
||||
$1_TEST_RESULTS_DIR := $$(TEST_RESULTS_DIR)/$1
|
||||
$1_TEST_SUPPORT_DIR := $$(TEST_SUPPORT_DIR)/$1
|
||||
$1_EXITCODE := $$($1_TEST_RESULTS_DIR)/exitcode.txt
|
||||
|
||||
$1_TEST_NAME := $$(strip $$(patsubst micro:%, %, $$($1_TEST)))
|
||||
|
||||
$$(eval $$(call SetMicroValue,$1,MICRO_BENCHMARKS_JAR,$$(TEST_IMAGE_DIR)/micro/benchmarks.jar))
|
||||
$$(eval $$(call SetMicroValue,$1,MICRO_TEST_JDK,$$(JDK_UNDER_TEST)))
|
||||
$$(eval $$(call SetMicroValue,$1,MICRO_JAVA_OPTIONS))
|
||||
|
||||
# Current tests needs to open java.io
|
||||
$1_MICRO_JAVA_OPTIONS += --add-opens=java.base/java.io=ALL-UNNAMED
|
||||
# Set library path for native dependencies
|
||||
$1_MICRO_JAVA_OPTIONS += -Djava.library.path=$$(TEST_IMAGE_DIR)/micro/native
|
||||
|
||||
# Save output as JSON or CSV file
|
||||
ifneq ($$(MICRO_RESULTS_FORMAT), )
|
||||
$1_MICRO_BASIC_OPTIONS += -rf $$(MICRO_RESULTS_FORMAT)
|
||||
$1_MICRO_BASIC_OPTIONS += -rff $$($1_TEST_RESULTS_DIR)/jmh-result.$(MICRO_RESULTS_FORMAT)
|
||||
endif
|
||||
|
||||
ifneq ($$(MICRO_VM_OPTIONS)$$(MICRO_JAVA_OPTIONS), )
|
||||
$1_MICRO_VM_OPTIONS := -jvmArgs $$(MICRO_VM_OPTIONS) $$(MICRO_JAVA_OPTIONS)
|
||||
endif
|
||||
|
||||
ifneq ($$(MICRO_ITER), )
|
||||
$1_MICRO_ITER := -i $$(MICRO_ITER)
|
||||
endif
|
||||
ifneq ($$(MICRO_FORK), )
|
||||
$1_MICRO_FORK := -f $$(MICRO_FORK)
|
||||
endif
|
||||
ifneq ($$(MICRO_TIME), )
|
||||
$1_MICRO_TIME := -r $$(MICRO_TIME)
|
||||
endif
|
||||
ifneq ($$(MICRO_WARMUP_ITER), )
|
||||
$1_MICRO_WARMUP_ITER := -wi $$(MICRO_WARMUP_ITER)
|
||||
endif
|
||||
ifneq ($$(MICRO_WARMUP_TIME), )
|
||||
$1_MICRO_WARMUP_TIME := -w $$(MICRO_WARMUP_TIME)
|
||||
endif
|
||||
|
||||
run-test-$1: pre-run-test
|
||||
$$(call LogWarn)
|
||||
$$(call LogWarn, Running test '$$($1_TEST)')
|
||||
$$(call MakeDir, $$($1_TEST_RESULTS_DIR) $$($1_TEST_SUPPORT_DIR))
|
||||
$$(call ExecuteWithLog, $$($1_TEST_SUPPORT_DIR)/micro, \
|
||||
$$(FIXPATH) $$($1_MICRO_TEST_JDK)/bin/java $$($1_MICRO_JAVA_OPTIONS) \
|
||||
-jar $$($1_MICRO_BENCHMARKS_JAR) \
|
||||
$$($1_MICRO_ITER) $$($1_MICRO_FORK) $$($1_MICRO_TIME) \
|
||||
$$($1_MICRO_WARMUP_ITER) $$($1_MICRO_WARMUP_TIME) \
|
||||
$$($1_MICRO_VM_OPTIONS) $$($1_MICRO_BASIC_OPTIONS) $$(MICRO_OPTIONS) \
|
||||
$$($1_TEST_NAME) \
|
||||
> >($(TEE) $$($1_TEST_RESULTS_DIR)/micro.txt) \
|
||||
&& $$(ECHO) $$$$? > $$($1_EXITCODE) \
|
||||
|| $$(ECHO) $$$$? > $$($1_EXITCODE) \
|
||||
)
|
||||
|
||||
$1_RESULT_FILE := $$($1_TEST_RESULTS_DIR)/micro.txt
|
||||
|
||||
parse-test-$1: run-test-$1
|
||||
$$(call LogWarn, Finished running test '$$($1_TEST)')
|
||||
$$(call LogWarn, Test report is stored in $$(strip \
|
||||
$$(subst $$(TOPDIR)/, , $$($1_TEST_RESULTS_DIR))))
|
||||
$$(if $$(wildcard $$($1_EXITCODE)), \
|
||||
$$(eval $1_EXIT_CODE := $$(shell $$(CAT) $$($1_EXITCODE))) \
|
||||
$$(if $$(filter 0, $$($1_EXIT_CODE)), \
|
||||
$$(eval $1_PASSED := 1) \
|
||||
$$(eval $1_ERROR := 0) \
|
||||
, \
|
||||
$$(eval $1_PASSED := 0) \
|
||||
$$(eval $1_ERROR := 1) \
|
||||
) \
|
||||
$$(eval $1_FAILED := 0) \
|
||||
$$(eval $1_TOTAL := $$(shell \
|
||||
$$(EXPR) $$($1_PASSED) + $$($1_ERROR))) \
|
||||
, \
|
||||
$$(eval $1_PASSED := 0) \
|
||||
$$(eval $1_FAILED := 0) \
|
||||
$$(eval $1_ERROR := 1) \
|
||||
$$(eval $1_TOTAL := 1) \
|
||||
)
|
||||
|
||||
$1: run-test-$1 parse-test-$1
|
||||
|
||||
TARGETS += $1 run-test-$1 parse-test-$1
|
||||
TEST_TARGETS += parse-test-$1
|
||||
|
||||
TARGETS += $1
|
||||
endef
|
||||
|
||||
################################################################################
|
||||
@@ -780,11 +463,12 @@ define SetupRunJtregTestBody
|
||||
|
||||
$1_TEST_NAME := $$(strip $$(patsubst jtreg:%, %, $$($1_TEST)))
|
||||
|
||||
$1_TEST_ROOT := \
|
||||
$1_COMPONENT := \
|
||||
$$(strip $$(foreach root, $$(JTREG_TESTROOTS), \
|
||||
$$(if $$(filter $$(root)%, $$(JTREG_TOPDIR)/$$($1_TEST_NAME)), $$(root)) \
|
||||
$$(if $$(filter $$(root)%, $$(JTREG_TOPDIR)/$$($1_TEST_NAME)), \
|
||||
$$(lastword $$(subst /, $$(SPACE), $$(root))) \
|
||||
) \
|
||||
))
|
||||
$1_COMPONENT := $$(lastword $$(subst /, $$(SPACE), $$($1_TEST_ROOT)))
|
||||
# This will work only as long as just hotspot has the additional "jtreg" directory
|
||||
ifeq ($$($1_COMPONENT), jtreg)
|
||||
$1_COMPONENT := hotspot
|
||||
@@ -807,9 +491,6 @@ define SetupRunJtregTestBody
|
||||
$$(eval $$(call SetJtregValue,$1,JTREG_BASIC_OPTIONS))
|
||||
$$(eval $$(call SetJtregValue,$1,JTREG_PROBLEM_LIST))
|
||||
|
||||
# Only the problem list for the current test root should be used.
|
||||
$1_JTREG_PROBLEM_LIST := $$(filter $$($1_TEST_ROOT)%, $$($1_JTREG_PROBLEM_LIST))
|
||||
|
||||
ifneq ($(TEST_JOBS), 0)
|
||||
$$(eval $$(call SetJtregValue,$1,JTREG_JOBS,$$(TEST_JOBS)))
|
||||
else
|
||||
@@ -820,12 +501,7 @@ define SetupRunJtregTestBody
|
||||
# we may end up with a lot of JVM's
|
||||
$1_JTREG_MAX_RAM_PERCENTAGE := $$(shell $$(EXPR) 25 / $$($1_JTREG_JOBS))
|
||||
|
||||
# SPARC is in general slower per core so need to scale up timeouts a bit.
|
||||
ifeq ($(call isTargetCpuArch, sparc), true)
|
||||
JTREG_TIMEOUT_FACTOR ?= 8
|
||||
else
|
||||
JTREG_TIMEOUT_FACTOR ?= 4
|
||||
endif
|
||||
JTREG_TIMEOUT ?= 4
|
||||
JTREG_VERBOSE ?= fail,error,summary
|
||||
JTREG_RETAIN ?= fail,error
|
||||
|
||||
@@ -836,10 +512,10 @@ define SetupRunJtregTestBody
|
||||
|
||||
$1_JTREG_BASIC_OPTIONS += -$$($1_JTREG_TEST_MODE) \
|
||||
-verbose:$$(JTREG_VERBOSE) -retain:$$(JTREG_RETAIN) \
|
||||
-concurrency:$$($1_JTREG_JOBS) -timeoutFactor:$$(JTREG_TIMEOUT_FACTOR) \
|
||||
-concurrency:$$($1_JTREG_JOBS) -timeoutFactor:$$(JTREG_TIMEOUT) \
|
||||
-vmoption:-XX:MaxRAMPercentage=$$($1_JTREG_MAX_RAM_PERCENTAGE)
|
||||
|
||||
$1_JTREG_BASIC_OPTIONS += -automatic -ignore:quiet
|
||||
$1_JTREG_BASIC_OPTIONS += -automatic -keywords:\!ignore -ignore:quiet
|
||||
|
||||
# Make it possible to specify the JIB_DATA_DIR for tests using the
|
||||
# JIB Artifact resolver
|
||||
@@ -848,7 +524,7 @@ define SetupRunJtregTestBody
|
||||
$1_JTREG_BASIC_OPTIONS += -e:JDK8_HOME=$$(BOOT_JDK)
|
||||
# If running on Windows, propagate the _NT_SYMBOL_PATH to enable
|
||||
# symbol lookup in hserr files
|
||||
ifeq ($$(call isTargetOs, windows), true)
|
||||
ifeq ($$(OPENJDK_TARGET_OS), windows)
|
||||
$1_JTREG_BASIC_OPTIONS += -e:_NT_SYMBOL_PATH
|
||||
endif
|
||||
|
||||
@@ -869,16 +545,8 @@ define SetupRunJtregTestBody
|
||||
$1_JTREG_BASIC_OPTIONS += $$(addprefix -exclude:, $$($1_JTREG_PROBLEM_LIST))
|
||||
endif
|
||||
|
||||
ifneq ($$(JTREG_EXTRA_PROBLEM_LISTS), )
|
||||
# Accept both absolute paths as well as relative to the current test root.
|
||||
$1_JTREG_BASIC_OPTIONS += $$(addprefix -exclude:, $$(wildcard \
|
||||
$$(JTREG_EXTRA_PROBLEM_LISTS) \
|
||||
$$(addprefix $$($1_TEST_ROOT)/, $$(JTREG_EXTRA_PROBLEM_LISTS)) \
|
||||
))
|
||||
endif
|
||||
|
||||
ifneq ($$(JIB_HOME), )
|
||||
$1_JTREG_BASIC_OPTIONS += -e:JIB_HOME=$$(JIB_HOME)
|
||||
ifneq ($$(JIB_JAR), )
|
||||
$1_JTREG_BASIC_OPTIONS += -cpa:$$(JIB_JAR)
|
||||
endif
|
||||
|
||||
$1_JTREG_BASIC_OPTIONS += -e:TEST_IMAGE_GRAAL_DIR=${TEST_IMAGE_DIR}/hotspot/jtreg/graal
|
||||
@@ -887,47 +555,23 @@ define SetupRunJtregTestBody
|
||||
$1_JTREG_LAUNCHER_OPTIONS += -Djava.library.path="$(JTREG_FAILURE_HANDLER_DIR)"
|
||||
endif
|
||||
|
||||
ifneq ($$(JTREG_KEYWORDS), )
|
||||
# The keywords string may contain problematic characters and may be quoted
|
||||
# already when it arrives here. Remove any existing quotes and replace them
|
||||
# with one set of single quotes.
|
||||
$1_JTREG_KEYWORDS := \
|
||||
$$(strip $$(subst $$(SQUOTE),,$$(subst $$(DQUOTE),,$$(JTREG_KEYWORDS))))
|
||||
ifneq ($$($1_JTREG_KEYWORDS), )
|
||||
$1_JTREG_BASIC_OPTIONS += -k:'$$($1_JTREG_KEYWORDS)'
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($$(JTREG_AOT_MODULES), )
|
||||
$$(eval $$(call SetupAot, $1, \
|
||||
MODULES := $$(JTREG_AOT_MODULES), \
|
||||
VM_OPTIONS := $$(JTREG_VM_OPTIONS) $$(JTREG_JAVA_OPTIONS), \
|
||||
))
|
||||
endif
|
||||
|
||||
ifneq ($$($1_AOT_OPTIONS), )
|
||||
$1_JTREG_BASIC_OPTIONS += -vmoptions:"$$($1_AOT_OPTIONS)"
|
||||
endif
|
||||
|
||||
clean-workdir-$1:
|
||||
$$(RM) -r $$($1_TEST_SUPPORT_DIR)
|
||||
|
||||
run-test-$1: pre-run-test clean-workdir-$1 $$($1_AOT_TARGETS)
|
||||
run-test-$1: clean-workdir-$1
|
||||
$$(call LogWarn)
|
||||
$$(call LogWarn, Running test '$$($1_TEST)')
|
||||
$$(call MakeDir, $$($1_TEST_RESULTS_DIR) $$($1_TEST_SUPPORT_DIR))
|
||||
$$(call ExecuteWithLog, $$($1_TEST_SUPPORT_DIR)/jtreg, \
|
||||
$$(COV_ENVIRONMENT) \
|
||||
$$(JAVA) $$($1_JTREG_LAUNCHER_OPTIONS) \
|
||||
-Dprogram=jtreg -jar $$(JT_HOME)/lib/jtreg.jar \
|
||||
$$($1_JTREG_BASIC_OPTIONS) \
|
||||
-testjdk:$$(JDK_UNDER_TEST) \
|
||||
-testjdk:$$(JDK_IMAGE_DIR) \
|
||||
-dir:$$(JTREG_TOPDIR) \
|
||||
-reportDir:$$($1_TEST_RESULTS_DIR) \
|
||||
-workDir:$$($1_TEST_SUPPORT_DIR) \
|
||||
$$(JTREG_OPTIONS) \
|
||||
$$(JTREG_FAILURE_HANDLER_OPTIONS) \
|
||||
$$(JTREG_COV_OPTIONS) \
|
||||
$$($1_TEST_NAME) \
|
||||
&& $$(ECHO) $$$$? > $$($1_EXITCODE) \
|
||||
|| $$(ECHO) $$$$? > $$($1_EXITCODE) \
|
||||
@@ -961,11 +605,9 @@ define SetupRunJtregTestBody
|
||||
$$(eval $1_TOTAL := 1) \
|
||||
)
|
||||
|
||||
$1: run-test-$1 parse-test-$1 clean-workdir-$1
|
||||
|
||||
TARGETS += $1 run-test-$1 parse-test-$1 clean-workdir-$1
|
||||
TEST_TARGETS += parse-test-$1
|
||||
$1: run-test-$1 parse-test-$1
|
||||
|
||||
TARGETS += $1
|
||||
endef
|
||||
|
||||
################################################################################
|
||||
@@ -987,14 +629,14 @@ define SetupRunSpecialTestBody
|
||||
$1_TEST_ARGS :=
|
||||
endif
|
||||
|
||||
ifeq ($$($1_TEST_NAME), failure-handler)
|
||||
ifeq ($(BUILD_FAILURE_HANDLER), true)
|
||||
$1_TEST_COMMAND_LINE := \
|
||||
($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) -f \
|
||||
BuildFailureHandler.gmk test)
|
||||
else
|
||||
$$(error Cannot test failure handler if it is not built)
|
||||
endif
|
||||
ifeq ($$($1_TEST_NAME), hotspot-internal)
|
||||
$1_TEST_COMMAND_LINE := \
|
||||
$$(JDK_IMAGE_DIR)/bin/java -XX:+ExecuteInternalVMTests \
|
||||
-XX:+ShowMessageBoxOnError -version
|
||||
else ifeq ($$($1_TEST_NAME), failure-handler)
|
||||
$1_TEST_COMMAND_LINE := \
|
||||
($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) -f \
|
||||
BuildFailureHandler.gmk test)
|
||||
else ifeq ($$($1_TEST_NAME), make)
|
||||
$1_TEST_COMMAND_LINE := \
|
||||
($(CD) $(TOPDIR)/test/make && $(MAKE) $(MAKE_ARGS) -f \
|
||||
@@ -1003,7 +645,7 @@ define SetupRunSpecialTestBody
|
||||
$$(error Invalid special test specification: $$($1_TEST_NAME))
|
||||
endif
|
||||
|
||||
run-test-$1: pre-run-test
|
||||
run-test-$1:
|
||||
$$(call LogWarn)
|
||||
$$(call LogWarn, Running test '$$($1_TEST)')
|
||||
$$(call MakeDir, $$($1_TEST_RESULTS_DIR) $$($1_TEST_SUPPORT_DIR))
|
||||
@@ -1029,9 +671,7 @@ define SetupRunSpecialTestBody
|
||||
|
||||
$1: run-test-$1 parse-test-$1
|
||||
|
||||
TARGETS += $1 run-test-$1 parse-test-$1
|
||||
TEST_TARGETS += parse-test-$1
|
||||
|
||||
TARGETS += $1
|
||||
endef
|
||||
|
||||
################################################################################
|
||||
@@ -1042,9 +682,6 @@ endef
|
||||
UseGtestTestHandler = \
|
||||
$(if $(filter gtest:%, $1), true)
|
||||
|
||||
UseMicroTestHandler = \
|
||||
$(if $(filter micro:%, $1), true)
|
||||
|
||||
UseJtregTestHandler = \
|
||||
$(if $(filter jtreg:%, $1), true)
|
||||
|
||||
@@ -1066,11 +703,6 @@ $(foreach test, $(TESTS_TO_RUN), \
|
||||
TEST := $(test), \
|
||||
)) \
|
||||
) \
|
||||
$(if $(call UseMicroTestHandler, $(test)), \
|
||||
$(eval $(call SetupRunMicroTest, $(TEST_ID), \
|
||||
TEST := $(test), \
|
||||
)) \
|
||||
) \
|
||||
$(if $(call UseJtregTestHandler, $(test)), \
|
||||
$(eval $(call SetupRunJtregTest, $(TEST_ID), \
|
||||
TEST := $(test), \
|
||||
@@ -1093,36 +725,12 @@ endif
|
||||
# The main target for RunTests.gmk
|
||||
################################################################################
|
||||
|
||||
#
|
||||
# Provide hooks for adding functionality before and after all tests are run.
|
||||
#
|
||||
# The SetupRun*Test functions have populated TARGETS.
|
||||
|
||||
$(call LogInfo, RunTest setup starting)
|
||||
|
||||
# This target depends on all actual test having been run (TEST_TARGETS has beeen
|
||||
# populated by the SetupRun*Test functions). If you need to provide a teardown
|
||||
# hook, you must let it depend on this target.
|
||||
run-all-tests: $(TEST_TARGETS)
|
||||
$(call LogInfo, RunTest teardown starting)
|
||||
|
||||
# This is an abstract target that will be run before any actual tests. Add your
|
||||
# target as a dependency to thisif you need "setup" type functionality executed
|
||||
# before all tests.
|
||||
pre-run-test:
|
||||
$(call LogInfo, RunTest setup done)
|
||||
|
||||
# This is an abstract target that will be run after all actual tests, but before
|
||||
# the test summary. If you need "teardown" type functionality, add your target
|
||||
# as a dependency on this, and let the teardown target depend on run-all-tests.
|
||||
post-run-test: run-all-tests
|
||||
$(call LogInfo, RunTest teardown done)
|
||||
|
||||
#
|
||||
# Create and print a table of the result of all tests run
|
||||
#
|
||||
TEST_FAILURE := false
|
||||
|
||||
run-test-report: post-run-test
|
||||
run-test: $(TARGETS)
|
||||
# Create and print a table of the result of all tests run
|
||||
$(RM) $(TEST_SUMMARY).old 2> /dev/null
|
||||
$(MV) $(TEST_SUMMARY) $(TEST_SUMMARY).old 2> /dev/null || true
|
||||
$(RM) $(TEST_LAST_IDS).old 2> /dev/null
|
||||
@@ -1166,54 +774,8 @@ run-test-report: post-run-test
|
||||
$(CAT) $(TEST_SUMMARY)
|
||||
$(ECHO)
|
||||
|
||||
# The main run-test target
|
||||
run-test: run-test-report
|
||||
|
||||
TARGETS += run-all-tests pre-run-test post-run-test run-test-report run-test
|
||||
|
||||
################################################################################
|
||||
# Setup JCov
|
||||
################################################################################
|
||||
|
||||
ifeq ($(TEST_OPTS_JCOV), true)
|
||||
|
||||
jcov-do-start-grabber:
|
||||
$(call MakeDir, $(JCOV_OUTPUT_DIR))
|
||||
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 ; \
|
||||
fi
|
||||
$(JAVA) -Xmx4g -jar $(JCOV_HOME)/lib/jcov.jar Grabber -v -t \
|
||||
$(JCOV_IMAGE_DIR)/template.xml -o $(JCOV_RESULT_FILE) \
|
||||
1>$(JCOV_GRABBER_LOG) 2>&1 &
|
||||
|
||||
jcov-start-grabber: jcov-do-start-grabber
|
||||
$(call LogWarn, Starting JCov Grabber...)
|
||||
$(JAVA) -jar $(JCOV_HOME)/lib/jcov.jar GrabberManager -t 600 -wait
|
||||
|
||||
jcov-stop-grabber:
|
||||
$(call LogWarn, Stopping JCov Grabber...)
|
||||
$(JAVA) -jar $(JCOV_HOME)/lib/jcov.jar GrabberManager -stop -stoptimeout 3600
|
||||
|
||||
jcov-gen-report: jcov-stop-grabber
|
||||
$(call LogWarn, Generating JCov report ...)
|
||||
$(JAVA) -Xmx4g -jar $(JCOV_HOME)/lib/jcov.jar RepGen -sourcepath \
|
||||
`$(ECHO) $(TOPDIR)/src/*/share/classes/ | $(TR) ' ' ':'` -fmt html \
|
||||
-o $(JCOV_REPORT) $(JCOV_RESULT_FILE)
|
||||
|
||||
TARGETS += jcov-do-start-grabber jcov-start-grabber jcov-stop-grabber \
|
||||
jcov-gen-report
|
||||
|
||||
# Hook this into the framework at appropriate places
|
||||
pre-run-test: jcov-start-grabber
|
||||
|
||||
post-run-test: jcov-gen-report
|
||||
|
||||
jcov-gen-report: run-all-tests
|
||||
|
||||
endif
|
||||
|
||||
################################################################################
|
||||
|
||||
all: run-test
|
||||
|
||||
.PHONY: default all $(TARGETS)
|
||||
.PHONY: default all run-test $(TARGETS)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@@ -49,11 +49,10 @@ TOPDIR := $(strip $(patsubst %/make/, %, $(dir $(makefile_path))))
|
||||
# given.
|
||||
# Note: No spaces are allowed around the arguments.
|
||||
#
|
||||
# $1: The name of the variable
|
||||
# $1: The name of the argument
|
||||
# $2: The default value, if any, or OPTIONAL (do not provide a default but
|
||||
# do not exit if it is missing)
|
||||
# $3: If NO_CHECK, disable checking for target file/directory existence
|
||||
# If MKDIR, create the default directory
|
||||
define SetupVariable
|
||||
ifeq ($$($1), )
|
||||
ifeq ($2, )
|
||||
@@ -76,17 +75,10 @@ define SetupVariable
|
||||
endif
|
||||
# If $1 has a value (is not optional), and $3 is not set (to NO_CHECK),
|
||||
# and if wildcard is empty, then complain that the file is missing.
|
||||
ifeq ($3, MKDIR)
|
||||
ifneq ($$(findstring $$(LOG), info debug trace), )
|
||||
$$(info Creating directory for $1)
|
||||
endif
|
||||
$$(shell mkdir -p $$($1))
|
||||
else ifneq ($3, NO_CHECK)
|
||||
ifeq ($$(strip $$(if $$($1), , OPTIONAL) $$(wildcard $$($1))), )
|
||||
$$(info Error: Prebuilt variable $1 points to missing file/directory:)
|
||||
$$(info '$$($1)')
|
||||
$$(error Cannot continue.)
|
||||
endif
|
||||
ifeq ($$(strip $$(if $$($1), , OPTIONAL) $$(wildcard $$($1)) $3), )
|
||||
$$(info Error: Prebuilt variable $1 points to missing file/directory:)
|
||||
$$(info '$$($1)')
|
||||
$$(error Cannot continue.)
|
||||
endif
|
||||
endef
|
||||
|
||||
@@ -95,12 +87,12 @@ endef
|
||||
# $1: The output file name
|
||||
# $2..$N: The lines to output to the file
|
||||
define CreateNewSpec
|
||||
$(if $(strip $(33)), \
|
||||
$(if $(strip $(26)), \
|
||||
$(error Internal makefile error: \
|
||||
Too many arguments to macro, please update CreateNewSpec in RunTestsPrebuilt.gmk) \
|
||||
) \
|
||||
$(shell $(RM) $1) \
|
||||
$(foreach i, $(call sequence, 2, 32), \
|
||||
$(foreach i, $(call sequence, 2, 25), \
|
||||
$(if $(strip $($i)), \
|
||||
$(call AppendFile, $(strip $($i)), $1) \
|
||||
) \
|
||||
@@ -114,14 +106,14 @@ endef
|
||||
# Verify that user has given correct additional input.
|
||||
|
||||
# These variables are absolutely necessary
|
||||
$(eval $(call SetupVariable,OUTPUTDIR,$(TOPDIR)/build/run-test-prebuilt,MKDIR))
|
||||
$(eval $(call SetupVariable,OUTPUTDIR))
|
||||
$(eval $(call SetupVariable,BOOT_JDK))
|
||||
$(eval $(call SetupVariable,JT_HOME))
|
||||
|
||||
# These can have default values based on the ones above
|
||||
$(eval $(call SetupVariable,JDK_IMAGE_DIR,$(OUTPUTDIR)/images/jdk))
|
||||
$(eval $(call SetupVariable,TEST_IMAGE_DIR,$(OUTPUTDIR)/images/test))
|
||||
$(eval $(call SetupVariable,SYMBOLS_IMAGE_DIR,$(OUTPUTDIR)/images/symbols,NO_CHECK))
|
||||
$(eval $(call SetupVariable,SYMBOLS_IMAGE_DIR,$(OUTPUTDIR)/images/symbols))
|
||||
|
||||
# Provide default values for tools that we need
|
||||
$(eval $(call SetupVariable,MAKE,make,NO_CHECK))
|
||||
@@ -210,8 +202,8 @@ endif
|
||||
|
||||
ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
ifeq ($(wildcard $(TEST_IMAGE_DIR)/bin/fixpath.exe), )
|
||||
$(info Error: fixpath is missing from test image '$(TEST_IMAGE_DIR)')
|
||||
$(error Cannot continue.)
|
||||
$$(info Error: fixpath is missing from test image '$(TEST_IMAGE_DIR)')
|
||||
$$(error Cannot continue.)
|
||||
endif
|
||||
FIXPATH := $(TEST_IMAGE_DIR)/bin/fixpath.exe -c
|
||||
PATH_SEP:=;
|
||||
@@ -220,67 +212,17 @@ else
|
||||
PATH_SEP:=:
|
||||
endif
|
||||
|
||||
# Check number of cores and memory in MB
|
||||
# Check number of cores
|
||||
ifeq ($(OPENJDK_TARGET_OS), linux)
|
||||
NUM_CORES := $(shell $(CAT) /proc/cpuinfo | $(GREP) -c processor)
|
||||
MEMORY_SIZE := $(shell \
|
||||
$(EXPR) `$(CAT) /proc/meminfo | $(GREP) MemTotal | $(AWK) '{print $$2}'` / 1024 \
|
||||
)
|
||||
NUM_CORES := $(shell $(CAT) /proc/cpuinfo | $(GREP) -c processor)
|
||||
else ifeq ($(OPENJDK_TARGET_OS), macosx)
|
||||
NUM_CORES := $(shell /usr/sbin/sysctl -n hw.ncpu)
|
||||
MEMORY_SIZE := $(shell $(EXPR) `/usr/sbin/sysctl -n hw.memsize` / 1024 / 1024)
|
||||
NUM_CORES := $(shell /usr/sbin/sysctl -n hw.ncpu)
|
||||
else ifeq ($(OPENJDK_TARGET_OS), solaris)
|
||||
NUM_CORES := $(shell LC_MESSAGES=C /usr/sbin/psrinfo -v | $(GREP) -c on-line)
|
||||
MEMORY_SIZE := $(shell \
|
||||
/usr/sbin/prtconf 2> /dev/null | $(GREP) "^Memory [Ss]ize" | $(AWK) '{print $$3}' \
|
||||
)
|
||||
NUM_CORES := $(shell LC_MESSAGES=C /usr/sbin/psrinfo -v | $(GREP) -c on-line)
|
||||
else ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
NUM_CORES := $(NUMBER_OF_PROCESSORS)
|
||||
MEMORY_SIZE := $(shell \
|
||||
$(EXPR) `wmic computersystem get totalphysicalmemory -value \
|
||||
| $(GREP) = | $(SED) 's/\\r//g' \
|
||||
| $(CUT) -d "=" -f 2-` / 1024 / 1024 \
|
||||
)
|
||||
endif
|
||||
ifeq ($(NUM_CORES), )
|
||||
$(warn Could not find number of CPUs, assuming 1)
|
||||
NUM_CORES := 1
|
||||
endif
|
||||
ifeq ($(MEMORY_SIZE), )
|
||||
$(warn Could not find memory size, assuming 1024 MB)
|
||||
MEMORY_SIZE := 1024
|
||||
endif
|
||||
|
||||
# Setup LD for AOT support
|
||||
ifneq ($(DEVKIT_HOME), )
|
||||
ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
LD_JAOTC := $(DEVKIT_HOME)/VC/bin/x64/link.exe
|
||||
LIBRARY_PREFIX :=
|
||||
SHARED_LIBRARY_SUFFIX := .dll
|
||||
else ifeq ($(OPENJDK_TARGET_OS), linux)
|
||||
LD_JAOTC := $(DEVKIT_HOME)/bin/ld
|
||||
LIBRARY_PREFIX := lib
|
||||
SHARED_LIBRARY_SUFFIX := .so
|
||||
else ifeq ($(OPENJDK_TARGET_OS), macosx)
|
||||
LD_JAOTC := $(DEVKIT_HOME)/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld
|
||||
LIBRARY_PREFIX := lib
|
||||
SHARED_LIBRARY_SUFFIX := .dylib
|
||||
else ifeq ($(OPENJDK_TARGET_OS), solaris)
|
||||
# Prefer system linker for AOT on Solaris.
|
||||
LD_JAOTC := ld
|
||||
LIBRARY_PREFIX := lib
|
||||
SHARED_LIBRARY_SUFFIX := .so
|
||||
endif
|
||||
NUM_CORES := $(NUMBER_OF_PROCESSORS)
|
||||
else
|
||||
LD := ld
|
||||
endif
|
||||
|
||||
ifneq ($(wildcard $(JDK_IMAGE_DIR)/template.xml), )
|
||||
TEST_OPTS_JCOV := true
|
||||
JCOV_IMAGE_DIR := $(JDK_IMAGE_DIR)
|
||||
else
|
||||
TEST_OPTS_JCOV := false
|
||||
JCOV_IMAGE_DIR :=
|
||||
NUM_CORES := 1
|
||||
endif
|
||||
|
||||
################################################################################
|
||||
@@ -303,7 +245,6 @@ $(call CreateNewSpec, $(NEW_SPEC), \
|
||||
BOOT_JDK := $(BOOT_JDK), \
|
||||
JT_HOME := $(JT_HOME), \
|
||||
JDK_IMAGE_DIR := $(JDK_IMAGE_DIR), \
|
||||
JCOV_IMAGE_DIR := $(JCOV_IMAGE_DIR), \
|
||||
TEST_IMAGE_DIR := $(TEST_IMAGE_DIR), \
|
||||
SYMBOLS_IMAGE_DIR := $(SYMBOLS_IMAGE_DIR), \
|
||||
MAKE := $(MAKE), \
|
||||
@@ -319,12 +260,7 @@ $(call CreateNewSpec, $(NEW_SPEC), \
|
||||
OPENJDK_TARGET_CPU_BITS := $(OPENJDK_TARGET_CPU_BITS), \
|
||||
OPENJDK_TARGET_CPU_ENDIAN := $(OPENJDK_TARGET_CPU_ENDIAN), \
|
||||
NUM_CORES := $(NUM_CORES), \
|
||||
MEMORY_SIZE := $(MEMORY_SIZE), \
|
||||
LD_JAOTC := $(LD_JAOTC), \
|
||||
LIBRARY_PREFIX := $(LIBRARY_PREFIX), \
|
||||
SHARED_LIBRARY_SUFFIX := $(SHARED_LIBRARY_SUFFIX), \
|
||||
include $(TOPDIR)/make/RunTestsPrebuiltSpec.gmk, \
|
||||
TEST_OPTS_JCOV := $(TEST_OPTS_JCOV), \
|
||||
$(CUSTOM_NEW_SPEC_LINE), \
|
||||
)
|
||||
|
||||
@@ -340,6 +276,9 @@ run-test-prebuilt:
|
||||
@$(RM) -f $(MAKESUPPORT_OUTPUTDIR)/exit-with-error
|
||||
@cd $(TOPDIR) && $(MAKE) $(MAKE_ARGS) -f make/RunTests.gmk run-test \
|
||||
TEST="$(TEST)"
|
||||
@if test -f $(MAKESUPPORT_OUTPUTDIR)/exit-with-error ; then \
|
||||
exit 1 ; \
|
||||
fi
|
||||
|
||||
all: run-test-prebuilt
|
||||
|
||||
|
||||
@@ -124,7 +124,7 @@ JLINK := $(FIXPATH) $(JLINK_CMD)
|
||||
JMOD := $(FIXPATH) $(JMOD_CMD)
|
||||
JARSIGNER := $(FIXPATH) $(JARSIGNER_CMD)
|
||||
|
||||
BUILD_JAVA := $(JDK_IMAGE_DIR)/bin/JAVA
|
||||
BUILD_JAVA := $(JAVA)
|
||||
################################################################################
|
||||
# Some common tools. Assume most common name and no path.
|
||||
AWK := awk
|
||||
@@ -172,21 +172,3 @@ UNZIP := unzip
|
||||
EXPR := expr
|
||||
FILE := file
|
||||
HG := hg
|
||||
|
||||
# On Solaris gnu versions of some tools are required.
|
||||
ifeq ($(OPENJDK_BUILD_OS), solaris)
|
||||
AWK := gawk
|
||||
GREP := ggrep
|
||||
EGREP := ggrep -E
|
||||
FGREP := grep -F
|
||||
SED := gsed
|
||||
TAR := gtar
|
||||
endif
|
||||
|
||||
ifeq ($(OPENJDK_BUILD_OS), windows)
|
||||
CYGPATH := cygpath
|
||||
endif
|
||||
|
||||
################################################################################
|
||||
# Simple macros from spec.gmk.in
|
||||
SHARED_LIBRARY=$(LIBRARY_PREFIX)$1$(SHARED_LIBRARY_SUFFIX)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@@ -23,43 +23,33 @@
|
||||
# questions.
|
||||
#
|
||||
|
||||
default: all
|
||||
|
||||
include $(SPEC)
|
||||
include MakeBase.gmk
|
||||
|
||||
$(eval $(call IncludeCustomExtension, SourceRevision-pre.gmk))
|
||||
$(eval $(call IncludeCustomExtension, SourceRevision.gmk))
|
||||
|
||||
################################################################################
|
||||
# Keep track of what source revision is used to create the build, by creating
|
||||
# a tracker file in the output directory. This tracker file is included in the
|
||||
# source image, and can be used to recreate the source revision used.
|
||||
# image, and can be used to recreate the source revision used.
|
||||
#
|
||||
# We're either building directly from an SCM repository, and if so, use the
|
||||
# current revision from that SCM. Otherwise, we are building from a source
|
||||
# bundle. As a part of creating this source bundle, the current SCM revisions of
|
||||
# all repos will be stored in a file in the top dir, which is then used when
|
||||
# creating the tracker file.
|
||||
# We're either building directly from a mercurial forest, and if so, use the
|
||||
# current revision from mercurial. Otherwise, we are building from a source
|
||||
# bundle. As a part of creating this source bundle, the current mercurial
|
||||
# revisions of all repos will be stored in a file in the top dir, which is then
|
||||
# used when creating the tracker file.
|
||||
|
||||
STORED_SOURCE_REVISION := $(TOPDIR)/.src-rev
|
||||
|
||||
USE_SCM := false
|
||||
# Are we using mercurial?
|
||||
ifneq ($(and $(HG), $(wildcard $(TOPDIR)/.hg)), )
|
||||
USE_SCM := true
|
||||
SCM_DIR := .hg
|
||||
ID_COMMAND := $(PRINTF) "hg:%s" "$$($(HG) id -i)"
|
||||
else ifneq ($(and $(GIT), $(wildcard $(TOPDIR)/.git)), )
|
||||
USE_SCM := true
|
||||
SCM_DIR := .git
|
||||
ID_COMMAND := $(PRINTF) "git:%s%s\n" \
|
||||
"$$(git log -n1 --format=%H | cut -c1-12)" \
|
||||
"$$(if test -n "$$(git status --porcelain)"; then printf '+'; fi)"
|
||||
endif
|
||||
|
||||
ifeq ($(USE_SCM), true)
|
||||
|
||||
# Verify that the entire forest is consistent
|
||||
$(foreach repo, $(call FindAllReposRel), \
|
||||
$(if $(wildcard $(TOPDIR)/$(repo)/$(SCM_DIR)),, \
|
||||
$(error Inconsistent revision control: $(repo) is missing $(SCM_DIR) directory)) \
|
||||
$(if $(wildcard $(TOPDIR)/$(repo)/.hg),, \
|
||||
$(error Inconsistent revision control: $(repo) is missing .hg directory)) \
|
||||
)
|
||||
|
||||
# Replace "." with "_top" and "/" with "-"
|
||||
@@ -68,9 +58,7 @@ ifeq ($(USE_SCM), true)
|
||||
|
||||
################################################################################
|
||||
# SetupGetRevisionForRepo defines a make rule for creating a file containing
|
||||
# the name of the repository and the output of the scm command for that
|
||||
# repository.
|
||||
#
|
||||
# the name of the repository and the output of "hg id" for that repository.
|
||||
# Argument 1 is the relative path to the repository from the top dir.
|
||||
#
|
||||
SetupGetRevisionForRepo = $(NamedParamsMacroTemplate)
|
||||
@@ -80,7 +68,7 @@ ifeq ($(USE_SCM), true)
|
||||
|
||||
$$(SUPPORT_OUTPUTDIR)/src-rev/$$($1_FILENAME): FRC
|
||||
$$(call MakeDir, $$(@D))
|
||||
$$(ECHO) $$(strip $1):`$$(CD) $$($1_REPO_PATH) && $$(ID_COMMAND)` > $$@
|
||||
$$(ECHO) $$(strip $1):`$$(HG) id -i --repository $$($1_REPO_PATH)` > $$@
|
||||
|
||||
REPO_REVISIONS += $$(SUPPORT_OUTPUTDIR)/src-rev/$$($1_FILENAME)
|
||||
endef
|
||||
@@ -106,58 +94,40 @@ ifeq ($(USE_SCM), true)
|
||||
|
||||
$(eval $(call CreateSourceRevisionFile, $(STORED_SOURCE_REVISION)))
|
||||
|
||||
scm-store-source-revision: $(STORED_SOURCE_REVISION)
|
||||
store-source-revision: $(STORED_SOURCE_REVISION)
|
||||
|
||||
$(eval $(call CreateSourceRevisionFile, $(SOURCE_REVISION_TRACKER)))
|
||||
|
||||
scm-create-source-revision-tracker: $(SOURCE_REVISION_TRACKER)
|
||||
|
||||
STORE_SOURCE_REVISION_TARGET := scm-store-source-revision
|
||||
CREATE_SOURCE_REVISION_TRACKER_TARGET := scm-create-source-revision-tracker
|
||||
|
||||
.PHONY: scm-store-source-revision scm-create-source-revision-tracker
|
||||
create-source-revision-tracker: $(SOURCE_REVISION_TRACKER)
|
||||
|
||||
else
|
||||
# Not using any SCM
|
||||
# Not using HG
|
||||
|
||||
ifneq ($(wildcard $(STORED_SOURCE_REVISION)), )
|
||||
# We have a stored source revision (.src-rev)
|
||||
|
||||
src-store-source-revision:
|
||||
$(call LogInfo, No SCM configuration present$(COMMA) not updating .src-rev)
|
||||
store-source-revision:
|
||||
$(call LogInfo, No mercurial configuration present$(COMMA) not updating .src-rev)
|
||||
|
||||
$(SOURCE_REVISION_TRACKER): $(STORED_SOURCE_REVISION)
|
||||
$(install-file)
|
||||
|
||||
src-create-source-revision-tracker: $(SOURCE_REVISION_TRACKER)
|
||||
create-source-revision-tracker: $(SOURCE_REVISION_TRACKER)
|
||||
else
|
||||
# We don't have a stored source revision. Can't do anything, really.
|
||||
|
||||
src-store-source-revision:
|
||||
$(call LogWarn, Error: No SCM configuration present$(COMMA) cannot create .src-rev)
|
||||
store-source-revision:
|
||||
$(call LogWarn, Error: No mercurial configuration present$(COMMA) cannot create .src-rev)
|
||||
exit 2
|
||||
|
||||
src-create-source-revision-tracker:
|
||||
$(call LogWarn, Warning: No SCM configuration present and no .src-rev)
|
||||
create-source-revision-tracker:
|
||||
$(call LogWarn, Warning: No mercurial configuration present and no .src-rev)
|
||||
endif
|
||||
|
||||
STORE_SOURCE_REVISION_TARGET := src-store-source-revision
|
||||
CREATE_SOURCE_REVISION_TRACKER_TARGET := src-create-source-revision-tracker
|
||||
|
||||
.PHONY: src-store-source-revision src-create-source-revision-tracker
|
||||
|
||||
endif
|
||||
|
||||
################################################################################
|
||||
|
||||
$(eval $(call IncludeCustomExtension, SourceRevision-post.gmk))
|
||||
|
||||
################################################################################
|
||||
|
||||
store-source-revision: $(STORE_SOURCE_REVISION_TARGET)
|
||||
|
||||
create-source-revision-tracker: $(CREATE_SOURCE_REVISION_TRACKER_TARGET)
|
||||
all: store-source-revision create-source-revision-tracker
|
||||
|
||||
FRC: # Force target
|
||||
|
||||
.PHONY: store-source-revision create-source-revision-tracker
|
||||
.PHONY: all store-source-revision create-source-revision-tracker
|
||||
|
||||
@@ -30,7 +30,7 @@ include MakeBase.gmk
|
||||
|
||||
############################################################################
|
||||
|
||||
ifeq ($(call isTargetOs, windows), true)
|
||||
ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
FIXPATH_COPY := $(TEST_IMAGE_DIR)/bin/fixpath.exe
|
||||
|
||||
$(FIXPATH_COPY): $(firstword $(FIXPATH))
|
||||
|
||||
@@ -47,6 +47,9 @@ TOOL_COMPILEFONTCONFIG = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_cla
|
||||
TOOL_COMPILEPROPERTIES = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \
|
||||
build.tools.compileproperties.CompileProperties
|
||||
|
||||
TOOL_JARREORDER = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \
|
||||
build.tools.jarreorder.JarReorder
|
||||
|
||||
TOOL_GENERATECHARACTER = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \
|
||||
build.tools.generatecharacter.GenerateCharacter
|
||||
|
||||
@@ -64,6 +67,9 @@ TOOL_GENERATEBREAKITERATORDATA = $(JAVA_SMALL) \
|
||||
TOOL_GENERATECURRENCYDATA = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \
|
||||
build.tools.generatecurrencydata.GenerateCurrencyData
|
||||
|
||||
TOOL_HASHER = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \
|
||||
build.tools.hasher.Hasher
|
||||
|
||||
TOOL_TZDB = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \
|
||||
build.tools.tzdb.TzdbZoneRulesCompiler
|
||||
|
||||
@@ -103,6 +109,10 @@ TOOL_CLDRCONVERTER = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes
|
||||
TOOL_GENERATELSREQUIVMAPS = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \
|
||||
build.tools.generatelsrequivmaps.EquivMapsGenerator
|
||||
|
||||
TOOL_GENMODULESXML = $(JAVA_SMALL) $(INTERIM_LANGTOOLS_BOOTCLASSPATH) \
|
||||
-cp $(call PathList, $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes) \
|
||||
build.tools.module.GenJdepsModulesXml
|
||||
|
||||
TOOL_GENMODULEINFOSOURCE = $(JAVA_SMALL) $(INTERIM_LANGTOOLS_BOOTCLASSPATH) \
|
||||
-cp $(call PathList, $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes) \
|
||||
build.tools.module.GenModuleInfoSource
|
||||
@@ -116,11 +126,4 @@ TOOL_PUBLICSUFFIXLIST = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_clas
|
||||
|
||||
##########################################################################################
|
||||
|
||||
# Executable javascript filter for man page generation using pandoc.
|
||||
|
||||
PANDOC_TROFF_MANPAGE_FILTER := $(BUILDTOOLS_OUTPUTDIR)/manpages/pandoc-troff-manpage-filter
|
||||
PANDOC_HTML_MANPAGE_FILTER := $(BUILDTOOLS_OUTPUTDIR)/manpages/pandoc-html-manpage-filter
|
||||
|
||||
##########################################################################################
|
||||
|
||||
endif # _TOOLS_GMK
|
||||
|
||||
@@ -34,7 +34,7 @@ include ProcessMarkdown.gmk
|
||||
#
|
||||
################################################################################
|
||||
|
||||
ifeq ($(ENABLE_PANDOC), false)
|
||||
ifeq ($(PANDOC), )
|
||||
$(info No pandoc executable was detected by configure)
|
||||
$(error Cannot continue)
|
||||
endif
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2012, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2012, 2018, 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
|
||||
@@ -29,7 +29,6 @@ default: all
|
||||
|
||||
include $(SPEC)
|
||||
include MakeBase.gmk
|
||||
include Execute.gmk
|
||||
include NativeCompilation.gmk
|
||||
include ToolsJdk.gmk
|
||||
|
||||
@@ -48,21 +47,17 @@ ifeq ($(COMPILE_TYPE), cross)
|
||||
endif
|
||||
|
||||
X11WRAPPERS_OUTPUT := $(SUPPORT_OUTPUTDIR)/x11wrappers
|
||||
GENERATOR_SOURCE_FILE := $(X11WRAPPERS_OUTPUT)/src/data_generator.c
|
||||
|
||||
GENSRC_X11WRAPPERS_DATADIR := $(TOPDIR)/make/data/x11wrappergen
|
||||
WRAPPER_OUTPUT_FILE := $(GENSRC_X11WRAPPERS_DATADIR)/sizes-$(BITS).txt
|
||||
|
||||
BITS := $(OPENJDK_TARGET_CPU_BITS)
|
||||
|
||||
# Generate the C code for the program that will output the offset file.
|
||||
$(eval $(call SetupExecute, gensrc_generator, \
|
||||
INFO := Generating X11 wrapper data generator source code, \
|
||||
DEPS := $(GENSRC_X11WRAPPERS_DATADIR)/xlibtypes.txt $(BUILD_TOOLS_JDK), \
|
||||
OUTPUT_FILE := $(GENERATOR_SOURCE_FILE), \
|
||||
COMMAND := $(TOOL_WRAPPERGENERATOR) gen_c_source $(GENERATOR_SOURCE_FILE) \
|
||||
$(GENSRC_X11WRAPPERS_DATADIR)/xlibtypes.txt $(BITS), \
|
||||
))
|
||||
$(X11WRAPPERS_OUTPUT)/src/data_generator.c: $(GENSRC_X11WRAPPERS_DATADIR)/xlibtypes.txt $(BUILD_TOOLS_JDK)
|
||||
$(call LogInfo, Generating X11 wrapper data generator source code)
|
||||
$(call MakeDir, $(@D))
|
||||
$(call ExecuteWithLog, $@, \
|
||||
$(TOOL_WRAPPERGENERATOR) gen_c_source $@ $(GENSRC_X11WRAPPERS_DATADIR)/xlibtypes.txt $(BITS))
|
||||
|
||||
DATA_GENERATOR_INCLUDES := \
|
||||
-I$(TOPDIR)/src/hotspot/share/include \
|
||||
@@ -80,7 +75,7 @@ DATA_GENERATOR_INCLUDES := \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_DATA_GENERATOR, \
|
||||
PROGRAM := data_generator, \
|
||||
OUTPUT_DIR := $(X11WRAPPERS_OUTPUT)/bin, \
|
||||
EXTRA_FILES := $(GENERATOR_SOURCE_FILE), \
|
||||
EXTRA_FILES := $(X11WRAPPERS_OUTPUT)/src/data_generator.c, \
|
||||
CFLAGS := $(X_CFLAGS) $(DATA_GENERATOR_INCLUDES) $(CFLAGS_JDKEXE), \
|
||||
LDFLAGS := $(LDFLAGS_JDKEXE), \
|
||||
LIBS := $(X_LIBS), \
|
||||
@@ -88,19 +83,16 @@ $(eval $(call SetupNativeCompilation, BUILD_DATA_GENERATOR, \
|
||||
))
|
||||
|
||||
# Run the executable to create the data file.
|
||||
$(eval $(call SetupExecute, run_wrappergen, \
|
||||
INFO := Generating X11 wrapper data files, \
|
||||
DEPS := $(BUILD_DATA_GENERATOR), \
|
||||
OUTPUT_FILE := $(WRAPPER_OUTPUT_FILE), \
|
||||
COMMAND := $(BUILD_DATA_GENERATOR_TARGET) | $(SORT) > $(WRAPPER_OUTPUT_FILE), \
|
||||
))
|
||||
|
||||
wrapper-information: $(run_wrappergen)
|
||||
$(GENSRC_X11WRAPPERS_DATADIR)/sizes-$(BITS).txt: $(BUILD_DATA_GENERATOR_TARGET)
|
||||
$(call LogInfo, Generating X11 wrapper data files)
|
||||
$(call MakeDir, $(@D))
|
||||
$(call ExecuteWithLog, $(X11WRAPPERS_OUTPUT)/generation, \
|
||||
$(BUILD_DATA_GENERATOR_TARGET) | $(SORT) > $@)
|
||||
$(ECHO) IMPORTANT: If you update the X11 wrapper data files, they most certainly
|
||||
$(ECHO) need to be updated for both 32 and 64 bit platforms. You have now
|
||||
$(ECHO) updated them for $(BITS) bit platforms only.
|
||||
|
||||
TARGETS += $(run_wrappergen) wrapper-information
|
||||
TARGETS += $(GENSRC_X11WRAPPERS_DATADIR)/sizes-$(BITS).txt
|
||||
|
||||
################################################################################
|
||||
|
||||
|
||||
@@ -70,7 +70,7 @@ TARGETS += $(IMAGES_OUTPUTDIR)/sec-bin.zip
|
||||
#
|
||||
# Windows specific binary security packages.
|
||||
#
|
||||
ifeq ($(call isTargetOs, windows), true)
|
||||
ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
# sec-windows-bin.zip is used by builds where the corresponding sources are not available
|
||||
$(eval $(call SetupZipArchive,BUILD_SEC_WINDOWS_BIN_ZIP, \
|
||||
SRC := $(JDK_OUTPUTDIR), \
|
||||
@@ -80,7 +80,7 @@ ifeq ($(call isTargetOs, windows), true)
|
||||
TARGETS += $(IMAGES_OUTPUTDIR)/sec-windows-bin.zip
|
||||
|
||||
# JGSS files contain the native Kerberos library
|
||||
ifeq ($(call isTargetCpu, x86_64), true)
|
||||
ifeq ($(OPENJDK_TARGET_CPU), x86_64)
|
||||
JGSS_ZIP_NAME = jgss-windows-x64-bin.zip
|
||||
else
|
||||
JGSS_ZIP_NAME = jgss-windows-i586-bin.zip
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2014, 2016, 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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2018, 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
|
||||
@@ -168,7 +168,7 @@ AC_DEFUN([ADD_JVM_ARG_IF_OK],
|
||||
[
|
||||
$ECHO "Check if jvm arg is ok: $1" >&AS_MESSAGE_LOG_FD
|
||||
$ECHO "Command: $3 $1 -version" >&AS_MESSAGE_LOG_FD
|
||||
OUTPUT=`$3 $1 $USER_BOOT_JDK_OPTIONS -version 2>&1`
|
||||
OUTPUT=`$3 $1 -version 2>&1`
|
||||
FOUND_WARN=`$ECHO "$OUTPUT" | $GREP -i warn`
|
||||
FOUND_VERSION=`$ECHO $OUTPUT | $GREP " version \""`
|
||||
if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
|
||||
@@ -223,8 +223,6 @@ AC_DEFUN([BASIC_FIXUP_PATH],
|
||||
BASIC_FIXUP_PATH_CYGWIN($1)
|
||||
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
|
||||
BASIC_FIXUP_PATH_MSYS($1)
|
||||
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
|
||||
BASIC_FIXUP_PATH_WSL($1)
|
||||
else
|
||||
# We're on a unix platform. Hooray! :)
|
||||
path="[$]$1"
|
||||
@@ -272,8 +270,6 @@ AC_DEFUN([BASIC_FIXUP_EXECUTABLE],
|
||||
BASIC_FIXUP_EXECUTABLE_CYGWIN($1)
|
||||
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
|
||||
BASIC_FIXUP_EXECUTABLE_MSYS($1)
|
||||
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
|
||||
BASIC_FIXUP_EXECUTABLE_WSL($1)
|
||||
else
|
||||
# We're on a unix platform. Hooray! :)
|
||||
# First separate the path from the arguments. This will split at the first
|
||||
@@ -406,8 +402,6 @@ AC_DEFUN_ONCE([BASIC_INIT],
|
||||
[
|
||||
# Save the original command line. This is passed to us by the wrapper configure script.
|
||||
AC_SUBST(CONFIGURE_COMMAND_LINE)
|
||||
# AUTOCONF might be set in the environment by the user. Preserve for "make reconfigure".
|
||||
AC_SUBST(AUTOCONF)
|
||||
# Save the path variable before it gets changed
|
||||
ORIGINAL_PATH="$PATH"
|
||||
AC_SUBST(ORIGINAL_PATH)
|
||||
@@ -575,8 +569,7 @@ AC_DEFUN_ONCE([BASIC_SETUP_FUNDAMENTAL_TOOLS],
|
||||
BASIC_REQUIRE_PROGS(GZIP, pigz gzip)
|
||||
BASIC_REQUIRE_PROGS(LN, ln)
|
||||
BASIC_REQUIRE_PROGS(LS, ls)
|
||||
# gmkdir is known to be safe for concurrent invocations with -p flag.
|
||||
BASIC_REQUIRE_PROGS(MKDIR, [gmkdir mkdir])
|
||||
BASIC_REQUIRE_PROGS(MKDIR, mkdir)
|
||||
BASIC_REQUIRE_PROGS(MKTEMP, mktemp)
|
||||
BASIC_REQUIRE_PROGS(MV, mv)
|
||||
BASIC_REQUIRE_PROGS(NAWK, [nawk gawk awk])
|
||||
@@ -613,13 +606,10 @@ AC_DEFUN_ONCE([BASIC_SETUP_FUNDAMENTAL_TOOLS],
|
||||
|
||||
# These are not required on all platforms
|
||||
BASIC_PATH_PROGS(CYGPATH, cygpath)
|
||||
BASIC_PATH_PROGS(WSLPATH, wslpath)
|
||||
BASIC_PATH_PROGS(DF, df)
|
||||
BASIC_PATH_PROGS(CPIO, [cpio bsdcpio])
|
||||
BASIC_PATH_PROGS(NICE, nice)
|
||||
|
||||
BASIC_PATH_PROGS(LSB_RELEASE, lsb_release)
|
||||
BASIC_PATH_PROGS(CMD, [cmd.exe /mnt/c/Windows/System32/cmd.exe])
|
||||
BASIC_PATH_PROGS(PANDOC, pandoc)
|
||||
])
|
||||
|
||||
###############################################################################
|
||||
@@ -640,14 +630,11 @@ AC_DEFUN_ONCE([BASIC_SETUP_PATHS],
|
||||
|
||||
if test "x$OPENJDK_TARGET_OS" = "xwindows"; then
|
||||
PATH_SEP=";"
|
||||
EXE_SUFFIX=".exe"
|
||||
BASIC_CHECK_PATHS_WINDOWS
|
||||
else
|
||||
PATH_SEP=":"
|
||||
EXE_SUFFIX=""
|
||||
fi
|
||||
AC_SUBST(PATH_SEP)
|
||||
AC_SUBST(EXE_SUFFIX)
|
||||
|
||||
# We get the top-level directory from the supporting wrappers.
|
||||
AC_MSG_CHECKING([for top-level directory])
|
||||
@@ -875,7 +862,7 @@ AC_DEFUN_ONCE([BASIC_SETUP_OUTPUT_DIR],
|
||||
# Create a default ./build/target-variant-debuglevel output root.
|
||||
if test "x${CONF_NAME}" = x; then
|
||||
AC_MSG_RESULT([in default location])
|
||||
CONF_NAME="${OPENJDK_TARGET_OS}-${OPENJDK_TARGET_CPU}-${JVM_VARIANTS_WITH_AND}-${DEBUG_LEVEL}"
|
||||
CONF_NAME="${OPENJDK_TARGET_OS}-${OPENJDK_TARGET_CPU}-${JDK_VARIANT}-${JVM_VARIANTS_WITH_AND}-${DEBUG_LEVEL}"
|
||||
else
|
||||
AC_MSG_RESULT([in build directory with custom name])
|
||||
fi
|
||||
@@ -992,8 +979,6 @@ AC_DEFUN([BASIC_CHECK_MAKE_VERSION],
|
||||
MAKE_EXPECTED_ENV='cygwin'
|
||||
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
|
||||
MAKE_EXPECTED_ENV='msys'
|
||||
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
|
||||
MAKE_EXPECTED_ENV='x86_64-.*-linux-gnu'
|
||||
else
|
||||
AC_MSG_ERROR([Unknown Windows environment])
|
||||
fi
|
||||
@@ -1185,7 +1170,6 @@ AC_DEFUN_ONCE([BASIC_SETUP_COMPLEX_TOOLS],
|
||||
BASIC_CHECK_FIND_DELETE
|
||||
BASIC_CHECK_TAR
|
||||
BASIC_CHECK_GREP
|
||||
BASIC_SETUP_PANDOC
|
||||
|
||||
# These tools might not be installed by default,
|
||||
# need hint on how to install them.
|
||||
@@ -1206,7 +1190,6 @@ AC_DEFUN_ONCE([BASIC_SETUP_COMPLEX_TOOLS],
|
||||
BASIC_PATH_PROGS(READELF, [greadelf readelf])
|
||||
BASIC_PATH_PROGS(DOT, dot)
|
||||
BASIC_PATH_PROGS(HG, hg)
|
||||
BASIC_PATH_PROGS(GIT, git)
|
||||
BASIC_PATH_PROGS(STAT, stat)
|
||||
BASIC_PATH_PROGS(TIME, time)
|
||||
BASIC_PATH_PROGS(FLOCK, flock)
|
||||
@@ -1282,18 +1265,7 @@ AC_DEFUN([BASIC_CHECK_DIR_ON_LOCAL_DISK],
|
||||
if $DF $DF_LOCAL_ONLY_OPTION $1 > /dev/null 2>&1; then
|
||||
$2
|
||||
else
|
||||
# In WSL, local Windows drives are considered remote by df, but we are
|
||||
# required to build into a directory accessible from windows, so consider
|
||||
# them local here.
|
||||
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
|
||||
if $DF $1 | $GREP -q "^[[A-Z]]:"; then
|
||||
$2
|
||||
else
|
||||
$3
|
||||
fi
|
||||
else
|
||||
$3
|
||||
fi
|
||||
$3
|
||||
fi
|
||||
fi
|
||||
])
|
||||
@@ -1370,34 +1342,6 @@ AC_DEFUN_ONCE([BASIC_CHECK_BASH_OPTIONS],
|
||||
AC_SUBST(BASH_ARGS)
|
||||
])
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# Setup Pandoc
|
||||
#
|
||||
AC_DEFUN_ONCE([BASIC_SETUP_PANDOC],
|
||||
[
|
||||
BASIC_PATH_PROGS(PANDOC, pandoc)
|
||||
|
||||
PANDOC_MARKDOWN_FLAG="markdown"
|
||||
if test -n "$PANDOC"; then
|
||||
AC_MSG_CHECKING(if the pandoc smart extension needs to be disabled for markdown)
|
||||
if $PANDOC --list-extensions | $GREP -q '\+smart'; then
|
||||
AC_MSG_RESULT([yes])
|
||||
PANDOC_MARKDOWN_FLAG="markdown-smart"
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -n "$PANDOC"; then
|
||||
ENABLE_PANDOC="true"
|
||||
else
|
||||
ENABLE_PANDOC="false"
|
||||
fi
|
||||
AC_SUBST(ENABLE_PANDOC)
|
||||
AC_SUBST(PANDOC_MARKDOWN_FLAG)
|
||||
])
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# Default make target
|
||||
|
||||
@@ -32,13 +32,6 @@ AC_DEFUN([BASIC_WINDOWS_REWRITE_AS_UNIX_PATH],
|
||||
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
|
||||
unix_path=`$ECHO "$windows_path" | $SED -e 's,^\\(.\\):,/\\1,g' -e 's,\\\\,/,g'`
|
||||
$1="$unix_path"
|
||||
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
|
||||
# wslpath does not check the input, only call if an actual windows path was
|
||||
# given.
|
||||
if $ECHO "$windows_path" | $GREP -q ["^[a-zA-Z]:[\\\\/]"]; then
|
||||
unix_path=`$WSLPATH -u "$windows_path"`
|
||||
$1="$unix_path"
|
||||
fi
|
||||
fi
|
||||
])
|
||||
|
||||
@@ -51,9 +44,6 @@ AC_DEFUN([BASIC_WINDOWS_REWRITE_AS_WINDOWS_MIXED_PATH],
|
||||
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
|
||||
windows_path=`cmd //c echo $unix_path`
|
||||
$1="$windows_path"
|
||||
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
|
||||
windows_path=`$WSLPATH -m "$unix_path"`
|
||||
$1="$windows_path"
|
||||
fi
|
||||
])
|
||||
|
||||
@@ -110,31 +100,6 @@ AC_DEFUN([BASIC_MAKE_WINDOWS_SPACE_SAFE_MSYS],
|
||||
fi
|
||||
])
|
||||
|
||||
# Helper function which possibly converts a path using DOS-style short mode.
|
||||
# If so, the updated path is stored in $new_path.
|
||||
# $1: The path to check
|
||||
AC_DEFUN([BASIC_MAKE_WINDOWS_SPACE_SAFE_WSL],
|
||||
[
|
||||
input_path="$1"
|
||||
# Check if we need to convert this using DOS-style short mode. If the path
|
||||
# contains just simple characters, use it. Otherwise (spaces, weird characters),
|
||||
# take no chances and rewrite it.
|
||||
# Note: m4 eats our [], so we need to use @<:@ and @:>@ instead.
|
||||
has_forbidden_chars=`$ECHO "$input_path" | $GREP [[^-_/:a-zA-Z0-9\\.]]`
|
||||
if test "x$has_forbidden_chars" != x; then
|
||||
# Now convert it to mixed DOS-style, short mode (no spaces, and / instead of \)
|
||||
TOPDIR_windows="$TOPDIR"
|
||||
BASIC_WINDOWS_REWRITE_AS_WINDOWS_MIXED_PATH([TOPDIR_windows])
|
||||
# First convert to Windows path to make input valid for cmd
|
||||
BASIC_WINDOWS_REWRITE_AS_WINDOWS_MIXED_PATH([input_path])
|
||||
new_path=`$CMD /c $TOPDIR_windows/make/scripts/windowsShortName.bat "$input_path" \
|
||||
| $SED -e 's|\r||g' \
|
||||
| $TR \\\\\\\\ / | $TR 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
|
||||
# Rewrite back to unix style
|
||||
BASIC_WINDOWS_REWRITE_AS_UNIX_PATH([new_path])
|
||||
fi
|
||||
])
|
||||
|
||||
# FIXME: The BASIC_FIXUP_*_CYGWIN/MSYS is most likely too convoluted
|
||||
# and could probably be heavily simplified. However, all changes in this
|
||||
# area tend to need lot of testing in different scenarios, and in lack of
|
||||
@@ -192,23 +157,6 @@ AC_DEFUN([BASIC_FIXUP_PATH_MSYS],
|
||||
all_fixpath_prefixes=("${all_fixpath_prefixes@<:@@@:>@}" "${new_path:0:10}")
|
||||
])
|
||||
|
||||
AC_DEFUN([BASIC_FIXUP_PATH_WSL],
|
||||
[
|
||||
# Input might be given as Windows format, start by converting to
|
||||
# unix format.
|
||||
new_path="[$]$1"
|
||||
BASIC_WINDOWS_REWRITE_AS_UNIX_PATH([new_path])
|
||||
|
||||
# Call helper function which possibly converts this using DOS-style short mode.
|
||||
# If so, the updated path is stored in $new_path.
|
||||
BASIC_MAKE_WINDOWS_SPACE_SAFE_WSL([$new_path])
|
||||
|
||||
if test "x$path" != "x$new_path"; then
|
||||
$1="$new_path"
|
||||
AC_MSG_NOTICE([Rewriting $1 to "$new_path"])
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN([BASIC_FIXUP_EXECUTABLE_CYGWIN],
|
||||
[
|
||||
# First separate the path from the arguments. This will split at the first
|
||||
@@ -357,79 +305,6 @@ AC_DEFUN([BASIC_FIXUP_EXECUTABLE_MSYS],
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN([BASIC_FIXUP_EXECUTABLE_WSL],
|
||||
[
|
||||
# First separate the path from the arguments. This will split at the first
|
||||
# space.
|
||||
complete="[$]$1"
|
||||
path="${complete%% *}"
|
||||
tmp="$complete EOL"
|
||||
arguments="${tmp#* }"
|
||||
|
||||
# Input might be given as Windows format, start by converting to
|
||||
# unix format.
|
||||
new_path="$path"
|
||||
BASIC_WINDOWS_REWRITE_AS_UNIX_PATH([new_path])
|
||||
|
||||
# Now try to locate executable using which
|
||||
new_path_bak="$new_path"
|
||||
new_path=`$WHICH "$new_path" 2> /dev/null`
|
||||
# bat and cmd files are not considered executable in WSL
|
||||
if test "x$new_path" = x \
|
||||
&& test "x`$ECHO \"$path\" | $GREP -i -e \"\\.bat$\" -e \"\\.cmd$\"`" != x \
|
||||
&& test "x`$LS \"$path\" 2>/dev/null`" != x; then
|
||||
new_path="$new_path_back"
|
||||
fi
|
||||
if test "x$new_path" = x; then
|
||||
# Oops. Which didn't find the executable.
|
||||
# The splitting of arguments from the executable at a space might have been incorrect,
|
||||
# since paths with space are more likely in Windows. Give it another try with the whole
|
||||
# argument.
|
||||
path="$complete"
|
||||
arguments="EOL"
|
||||
new_path="$path"
|
||||
BASIC_WINDOWS_REWRITE_AS_UNIX_PATH([new_path])
|
||||
new_path_bak="$new_path"
|
||||
new_path=`$WHICH "$new_path" 2> /dev/null`
|
||||
# bat and cmd files are not considered executable in WSL
|
||||
if test "x$new_path" = x \
|
||||
&& test "x`$ECHO \"$path\" | $GREP -i -e \"\\.bat$\" -e \"\\.cmd$\"`" != x \
|
||||
&& test "x`$LS \"$path\" 2>/dev/null`" != x; then
|
||||
new_path="$new_path_bak"
|
||||
fi
|
||||
if test "x$new_path" = x; then
|
||||
# It's still not found. Now this is an unrecoverable error.
|
||||
AC_MSG_NOTICE([The path of $1, which resolves as "$complete", is not found.])
|
||||
has_space=`$ECHO "$complete" | $GREP " "`
|
||||
if test "x$has_space" != x; then
|
||||
AC_MSG_NOTICE([You might be mixing spaces in the path and extra arguments, which is not allowed.])
|
||||
fi
|
||||
AC_MSG_ERROR([Cannot locate the the path of $1])
|
||||
fi
|
||||
fi
|
||||
|
||||
# In WSL, suffixes must be present for Windows executables
|
||||
if test ! -f "$new_path"; then
|
||||
# Try adding .exe or .cmd
|
||||
if test -f "${new_path}.exe"; then
|
||||
input_to_shortpath="${new_path}.exe"
|
||||
elif test -f "${new_path}.cmd"; then
|
||||
input_to_shortpath="${new_path}.cmd"
|
||||
else
|
||||
AC_MSG_NOTICE([The path of $1, which resolves as "$new_path", is invalid.])
|
||||
AC_MSG_NOTICE([Neither "$new_path" nor "$new_path.exe/cmd" can be found])
|
||||
AC_MSG_ERROR([Cannot locate the the path of $1])
|
||||
fi
|
||||
else
|
||||
input_to_shortpath="$new_path"
|
||||
fi
|
||||
|
||||
# Call helper function which possibly converts this using DOS-style short mode.
|
||||
# If so, the updated path is stored in $new_path.
|
||||
new_path="$input_to_shortpath"
|
||||
BASIC_MAKE_WINDOWS_SPACE_SAFE_WSL([$input_to_shortpath])
|
||||
])
|
||||
|
||||
# Setup basic configuration paths, and platform-specific stuff related to PATHs.
|
||||
AC_DEFUN([BASIC_CHECK_PATHS_WINDOWS],
|
||||
[
|
||||
@@ -478,28 +353,8 @@ AC_DEFUN([BASIC_CHECK_PATHS_WINDOWS],
|
||||
BASIC_WINDOWS_REWRITE_AS_UNIX_PATH(MSYS_ROOT_PATH)
|
||||
AC_MSG_RESULT([$MSYS_ROOT_PATH])
|
||||
WINDOWS_ENV_ROOT_PATH="$MSYS_ROOT_PATH"
|
||||
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
|
||||
AC_MSG_CHECKING([Windows version])
|
||||
# m4 replaces [ and ] so we use @<:@ and @:>@ instead
|
||||
WINDOWS_VERSION=`$CMD /c ver.exe | $EGREP -o '(@<:@0-9@:>@+\.)+@<:@0-9@:>@+'`
|
||||
AC_MSG_RESULT([$WINDOWS_VERSION])
|
||||
|
||||
AC_MSG_CHECKING([WSL kernel version])
|
||||
WSL_KERNEL_VERSION=`$UNAME -v`
|
||||
AC_MSG_RESULT([$WSL_KERNEL_VERSION])
|
||||
|
||||
AC_MSG_CHECKING([WSL kernel release])
|
||||
WSL_KERNEL_RELEASE=`$UNAME -r`
|
||||
AC_MSG_RESULT([$WSL_KERNEL_RELEASE])
|
||||
|
||||
AC_MSG_CHECKING([WSL distribution])
|
||||
WSL_DISTRIBUTION=`$LSB_RELEASE -d | sed 's/Description:\t//'`
|
||||
AC_MSG_RESULT([$WSL_DISTRIBUTION])
|
||||
|
||||
WINDOWS_ENV_VENDOR='WSL'
|
||||
WINDOWS_ENV_VERSION="$WSL_DISTRIBUTION $WSL_KERNEL_VERSION $WSL_KERNEL_RELEASE (on Windows build $WINDOWS_VERSION)"
|
||||
else
|
||||
AC_MSG_ERROR([Unknown Windows environment. Neither cygwin, msys, nor wsl was detected.])
|
||||
AC_MSG_ERROR([Unknown Windows environment. Neither cygwin nor msys was detected.])
|
||||
fi
|
||||
|
||||
# Test if windows or unix (cygwin/msys) find is first in path.
|
||||
@@ -540,8 +395,6 @@ AC_DEFUN_ONCE([BASIC_COMPILE_FIXPATH],
|
||||
| tr ' ' '\n' | $GREP '^/./' | $SORT | $UNIQ`
|
||||
fixpath_argument_list=`echo $all_unique_prefixes | tr ' ' '@'`
|
||||
FIXPATH="$FIXPATH_BIN -m$fixpath_argument_list"
|
||||
elif test "x$OPENJDK_BUILD_OS_ENV" = xwindows.wsl; then
|
||||
FIXPATH="$FIXPATH_BIN -w"
|
||||
fi
|
||||
FIXPATH_SRC_W="$FIXPATH_SRC"
|
||||
FIXPATH_BIN_W="$FIXPATH_BIN"
|
||||
@@ -559,17 +412,6 @@ AC_DEFUN_ONCE([BASIC_COMPILE_FIXPATH],
|
||||
AC_MSG_ERROR([Could not create $FIXPATH_BIN])
|
||||
fi
|
||||
AC_MSG_RESULT([yes])
|
||||
|
||||
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
|
||||
OLD_WSLENV="$WSLENV"
|
||||
WSLENV=`$ECHO $WSLENV | $SED 's/PATH\/l://'`
|
||||
BASIC_APPEND_TO_PATH(WSLENV, "FIXPATH_PATH")
|
||||
export WSLENV
|
||||
export FIXPATH_PATH=$VS_PATH_WINDOWS
|
||||
AC_MSG_NOTICE([FIXPATH_PATH is $FIXPATH_PATH])
|
||||
AC_MSG_NOTICE([Rewriting WSLENV from $OLD_WSLENV to $WSLENV])
|
||||
fi
|
||||
|
||||
AC_MSG_CHECKING([if fixpath.exe works])
|
||||
cd $FIXPATH_DIR
|
||||
$FIXPATH $CC $FIXPATH_SRC -Fe$FIXPATH_DIR/fixpath2.exe \
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2017, 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
|
||||
@@ -63,29 +63,18 @@ AC_DEFUN([BOOTJDK_DO_CHECK],
|
||||
# If previous step claimed to have found a JDK, check it to see if it seems to be valid.
|
||||
if test "x$BOOT_JDK_FOUND" = xmaybe; then
|
||||
# Do we have a bin/java?
|
||||
if test ! -x "$BOOT_JDK/bin/java$EXE_SUFFIX"; then
|
||||
if test ! -x "$BOOT_JDK/bin/java"; then
|
||||
AC_MSG_NOTICE([Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring])
|
||||
BOOT_JDK_FOUND=no
|
||||
else
|
||||
# Do we have a bin/javac?
|
||||
if test ! -x "$BOOT_JDK/bin/javac$EXE_SUFFIX"; then
|
||||
if test ! -x "$BOOT_JDK/bin/javac"; then
|
||||
AC_MSG_NOTICE([Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring])
|
||||
AC_MSG_NOTICE([(This might be an JRE instead of an JDK)])
|
||||
BOOT_JDK_FOUND=no
|
||||
else
|
||||
# Oh, this is looking good! We probably have found a proper JDK. Is it the correct version?
|
||||
BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java$EXE_SUFFIX" $USER_BOOT_JDK_OPTIONS -version 2>&1 | $HEAD -n 1`
|
||||
if [ [[ "$BOOT_JDK_VERSION" =~ "Picked up" ]] ]; then
|
||||
AC_MSG_NOTICE([You have _JAVA_OPTIONS or JAVA_TOOL_OPTIONS set. This can mess up the build. Please use --with-boot-jdk-jvmargs instead.])
|
||||
AC_MSG_NOTICE([Java reports: "$BOOT_JDK_VERSION".])
|
||||
AC_MSG_ERROR([Cannot continue])
|
||||
fi
|
||||
if [ [[ "$BOOT_JDK_VERSION" =~ "Unrecognized option" ]] ]; then
|
||||
AC_MSG_NOTICE([The specified --with-boot-jdk-jvmargs is invalid for the tested java])
|
||||
AC_MSG_NOTICE([Error message: "$BOOT_JDK_VERSION".])
|
||||
AC_MSG_NOTICE([Please fix arguments, or point to an explicit boot JDK which accept these arguments])
|
||||
AC_MSG_ERROR([Cannot continue])
|
||||
fi
|
||||
BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | $HEAD -n 1`
|
||||
|
||||
# Extra M4 quote needed to protect [] in grep expression.
|
||||
[FOUND_CORRECT_VERSION=`$ECHO $BOOT_JDK_VERSION \
|
||||
@@ -101,7 +90,7 @@ AC_DEFUN([BOOTJDK_DO_CHECK],
|
||||
AC_MSG_CHECKING([for Boot JDK])
|
||||
AC_MSG_RESULT([$BOOT_JDK])
|
||||
AC_MSG_CHECKING([Boot JDK version])
|
||||
BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java$EXE_SUFFIX" $USER_BOOT_JDK_OPTIONS -version 2>&1 | $TR '\n\r' ' '`
|
||||
BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | $TR '\n\r' ' '`
|
||||
AC_MSG_RESULT([$BOOT_JDK_VERSION])
|
||||
fi # end check jdk version
|
||||
fi # end check javac
|
||||
@@ -294,11 +283,6 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK],
|
||||
AC_ARG_WITH(boot-jdk, [AS_HELP_STRING([--with-boot-jdk],
|
||||
[path to Boot JDK (used to bootstrap build) @<:@probed@:>@])])
|
||||
|
||||
AC_ARG_WITH(boot-jdk-jvmargs, [AS_HELP_STRING([--with-boot-jdk-jvmargs],
|
||||
[specify additional arguments to be passed to Boot JDK tools @<:@none@:>@])])
|
||||
|
||||
USER_BOOT_JDK_OPTIONS="$with_boot_jdk_jvmargs"
|
||||
|
||||
# We look for the Boot JDK through various means, going from more certain to
|
||||
# more of a guess-work. After each test, BOOT_JDK_FOUND is set to "yes" if
|
||||
# we detected something (if so, the path to the jdk is in BOOT_JDK). But we
|
||||
@@ -335,11 +319,11 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK],
|
||||
AC_SUBST(BOOT_JDK)
|
||||
|
||||
# Setup tools from the Boot JDK.
|
||||
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVA, java$EXE_SUFFIX)
|
||||
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVAC, javac$EXE_SUFFIX)
|
||||
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVADOC, javadoc$EXE_SUFFIX)
|
||||
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAR, jar$EXE_SUFFIX)
|
||||
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JARSIGNER, jarsigner$EXE_SUFFIX)
|
||||
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVA, java)
|
||||
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVAC, javac)
|
||||
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVADOC, javadoc)
|
||||
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAR, jar)
|
||||
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JARSIGNER, jarsigner)
|
||||
|
||||
# Finally, set some other options...
|
||||
|
||||
@@ -388,6 +372,10 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK_ARGUMENTS],
|
||||
# Specify jvm options for anything that is run with the Boot JDK.
|
||||
# Not all JVM:s accept the same arguments on the command line.
|
||||
#
|
||||
AC_ARG_WITH(boot-jdk-jvmargs, [AS_HELP_STRING([--with-boot-jdk-jvmargs],
|
||||
[specify JVM arguments to be passed to all java invocations of boot JDK, overriding the default values,
|
||||
e.g --with-boot-jdk-jvmargs="-Xmx8G -enableassertions"])])
|
||||
|
||||
AC_MSG_CHECKING([flags for boot jdk java command] )
|
||||
|
||||
# Force en-US environment
|
||||
@@ -401,8 +389,8 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK_ARGUMENTS],
|
||||
ADD_JVM_ARG_IF_OK([-Xshare:auto],boot_jdk_jvmargs,[$JAVA])
|
||||
fi
|
||||
|
||||
# Finally append user provided options to allow them to override.
|
||||
ADD_JVM_ARG_IF_OK([$USER_BOOT_JDK_OPTIONS],boot_jdk_jvmargs,[$JAVA])
|
||||
# Apply user provided options.
|
||||
ADD_JVM_ARG_IF_OK([$with_boot_jdk_jvmargs],boot_jdk_jvmargs,[$JAVA])
|
||||
|
||||
AC_MSG_RESULT([$boot_jdk_jvmargs])
|
||||
|
||||
|
||||
11
make/autoconf/build-aux/config.guess
vendored
@@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2012, 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
|
||||
@@ -60,15 +60,6 @@ if test $? = 0; then
|
||||
esac
|
||||
fi
|
||||
|
||||
# Test and fix wsl
|
||||
echo $OUT | grep x86_64-unknown-linux-gnu > /dev/null 2> /dev/null
|
||||
if test $? = 0; then
|
||||
uname -r | grep Microsoft > /dev/null 2> /dev/null
|
||||
if test $? = 0; then
|
||||
OUT="x86_64-pc-wsl"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Test and fix architecture string on AIX
|
||||
# On AIX 'config.guess' returns 'powerpc' as architecture but 'powerpc' is
|
||||
# implicitely handled as 32-bit architecture in 'platform.m4' so we check
|
||||
|
||||
8
make/autoconf/build-aux/config.sub
vendored
@@ -29,13 +29,7 @@
|
||||
|
||||
DIR=`dirname $0`
|
||||
|
||||
# Allow wsl
|
||||
if echo $* | grep x86_64-pc-wsl >/dev/null ; then
|
||||
echo $*
|
||||
exit
|
||||
fi
|
||||
|
||||
# Filter out everything that doesn't begin with "aarch64-"
|
||||
# First, filter out everything that doesn't begin with "aarch64-"
|
||||
if ! echo $* | grep '^aarch64-' >/dev/null ; then
|
||||
. $DIR/autoconf-config.sub "$@"
|
||||
# autoconf-config.sub exits, so we never reach here, but just in
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2016, 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
|
||||
@@ -42,11 +42,8 @@ AC_DEFUN([BPERF_CHECK_CORES],
|
||||
NUM_CORES=`/usr/sbin/sysctl -n hw.ncpu`
|
||||
FOUND_CORES=yes
|
||||
elif test "x$OPENJDK_BUILD_OS" = xaix ; then
|
||||
NUM_LCPU=`lparstat -m 2> /dev/null | $GREP -o "lcpu=[[0-9]]*" | $CUT -d "=" -f 2`
|
||||
if test -n "$NUM_LCPU"; then
|
||||
NUM_CORES=$NUM_LCPU
|
||||
FOUND_CORES=yes
|
||||
fi
|
||||
NUM_CORES=`/usr/sbin/prtconf | grep "^Number Of Processors" | awk '{ print [$]4 }'`
|
||||
FOUND_CORES=yes
|
||||
elif test -n "$NUMBER_OF_PROCESSORS"; then
|
||||
# On windows, look in the env
|
||||
NUM_CORES=$NUMBER_OF_PROCESSORS
|
||||
|
||||
@@ -75,8 +75,6 @@ JVM_LDFLAGS := @OPENJDK_BUILD_JVM_LDFLAGS@
|
||||
JVM_ASFLAGS := @OPENJDK_BUILD_JVM_ASFLAGS@
|
||||
JVM_LIBS := @OPENJDK_BUILD_JVM_LIBS@
|
||||
|
||||
FDLIBM_CFLAGS := @OPENJDK_BUILD_FDLIBM_CFLAGS@
|
||||
|
||||
# The compiler for the build platform is likely not warning compatible with the official
|
||||
# compiler.
|
||||
WARNINGS_AS_ERRORS := false
|
||||
|
||||
@@ -31,7 +31,6 @@
|
||||
|
||||
export LEGACY_BUILD_DIR=@OPENJDK_TARGET_OS@-@OPENJDK_TARGET_CPU_LEGACY@
|
||||
|
||||
export OPENJDK_BUILD_OS_ENV="@OPENJDK_BUILD_OS_ENV@"
|
||||
export OPENJDK_TARGET_OS="@OPENJDK_TARGET_OS@"
|
||||
export OPENJDK_TARGET_CPU="@OPENJDK_TARGET_CPU@"
|
||||
export DEBUG_LEVEL="@DEBUG_LEVEL@"
|
||||
@@ -74,26 +73,18 @@ export TOPDIR="@TOPDIR@"
|
||||
export OUTPUTDIR="@OUTPUTDIR@"
|
||||
|
||||
if [ "@COMPILE_TYPE@" != "cross" ]; then
|
||||
export JAVAP="@FIXPATH@ $OUTPUTDIR/jdk/bin/javap @JAVA_TOOL_FLAGS_SMALL@"
|
||||
export JIMAGE="@FIXPATH@ $OUTPUTDIR/jdk/bin/jimage"
|
||||
export JMOD="@FIXPATH@ $OUTPUTDIR/jdk/bin/jmod"
|
||||
export JAVAP="@FIXPATH@ $OUTPUTDIR/jdk/bin/javap @JAVA_TOOL_FLAGS_SMALL@"
|
||||
export JIMAGE="@FIXPATH@ $OUTPUTDIR/jdk/bin/jimage"
|
||||
elif [ "@CREATE_BUILDJDK@" = "true" ]; then
|
||||
export JAVAP="@FIXPATH@ $OUTPUTDIR/buildjdk/jdk/bin/javap @JAVA_TOOL_FLAGS_SMALL@"
|
||||
export JIMAGE="@FIXPATH@ $OUTPUTDIR/buildjdk/jdk/bin/jimage"
|
||||
export JMOD="@FIXPATH@ $OUTPUTDIR/buildjdk/jdk/bin/jmod"
|
||||
export JAVAP="@FIXPATH@ $OUTPUTDIR/buildjdk/jdk/bin/javap @JAVA_TOOL_FLAGS_SMALL@"
|
||||
export JIMAGE="@FIXPATH@ $OUTPUTDIR/buildjdk/jdk/bin/jimage"
|
||||
else
|
||||
export JAVAP="@FIXPATH@ @BUILD_JDK@/bin/javap @JAVA_TOOL_FLAGS_SMALL@"
|
||||
export JIMAGE="@FIXPATH@ @BUILD_JDK@/bin/jimage"
|
||||
export JMOD="@FIXPATH@ @BUILD_JDK@/bin/jmod"
|
||||
export JAVAP="@FIXPATH@ @BUILD_JDK@/bin/javap @JAVA_TOOL_FLAGS_SMALL@"
|
||||
export JIMAGE="@FIXPATH@ @BUILD_JDK@/bin/jimage"
|
||||
fi
|
||||
|
||||
if [ "$OPENJDK_TARGET_OS" = "windows" ]; then
|
||||
if [ "$OPENJDK_BUILD_OS_ENV" = "windows.wsl" ]; then
|
||||
export FIXPATH_PATH="@VS_PATH_WINDOWS@"
|
||||
export WSLENV="$WSLENV:FIXPATH_PATH:DEBUG_FIXPATH"
|
||||
else
|
||||
export PATH="@VS_PATH@"
|
||||
fi
|
||||
export PATH="@VS_PATH@"
|
||||
fi
|
||||
|
||||
# Now locate the main script and run it.
|
||||
|
||||
13
make/autoconf/configure
vendored
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright (c) 2012, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2012, 2018, 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
|
||||
@@ -78,12 +78,9 @@ autoconf_missing_help() {
|
||||
APT_GET="`which apt-get 2> /dev/null | grep -v '^no apt-get in'`"
|
||||
YUM="`which yum 2> /dev/null | grep -v '^no yum in'`"
|
||||
BREW="`which brew 2> /dev/null | grep -v '^no brew in'`"
|
||||
ZYPPER="`which zypper 2> /dev/null | grep -v '^no zypper in'`"
|
||||
CYGWIN="`which cygpath 2> /dev/null | grep -v '^no cygpath in'`"
|
||||
|
||||
if test "x$ZYPPER" != x; then
|
||||
PKGHANDLER_COMMAND="sudo zypper install autoconf"
|
||||
elif test "x$APT_GET" != x; then
|
||||
if test "x$APT_GET" != x; then
|
||||
PKGHANDLER_COMMAND="sudo apt-get install autoconf"
|
||||
elif test "x$YUM" != x; then
|
||||
PKGHANDLER_COMMAND="sudo yum install autoconf"
|
||||
@@ -125,18 +122,14 @@ generate_configure_script() {
|
||||
if test "x$CUSTOM_CONFIG_DIR" != x; then
|
||||
# Generate configure script with custom hooks compiled in.
|
||||
custom_patcher='sed -e "s|#CUSTOM_AUTOCONF_INCLUDE|m4_include([$custom_hook])|"'
|
||||
custom_script_dir_include="-I$CUSTOM_CONFIG_DIR"
|
||||
else
|
||||
custom_patcher='cat'
|
||||
custom_script_dir_include=""
|
||||
fi
|
||||
|
||||
mkdir -p $build_support_dir
|
||||
# Call autoconf but replace the "magic" variable in configure.ac if requested.
|
||||
|
||||
cat $conf_script_dir/configure.ac | eval $custom_patcher | \
|
||||
${AUTOCONF} -W all $custom_script_dir_include -I$conf_script_dir - \
|
||||
> $generated_script
|
||||
${AUTOCONF} -W all -I$conf_script_dir - > $generated_script
|
||||
rm -rf autom4te.cache
|
||||
|
||||
# Sanity check
|
||||
|
||||
@@ -91,6 +91,7 @@ BASIC_SETUP_PATHS
|
||||
JDKOPT_SETUP_OPEN_OR_CUSTOM
|
||||
|
||||
# These are needed to be able to create a configuration name (and thus the output directory)
|
||||
JDKOPT_SETUP_JDK_VARIANT
|
||||
JDKOPT_SETUP_DEBUG_LEVEL
|
||||
HOTSPOT_SETUP_JVM_VARIANTS
|
||||
|
||||
@@ -180,9 +181,6 @@ TOOLCHAIN_MISC_CHECKS
|
||||
# Setup the JTReg Regression Test Harness.
|
||||
TOOLCHAIN_SETUP_JTREG
|
||||
|
||||
# Setup the Java Microbenchmark Harness (JMH)
|
||||
LIB_TESTS_SETUP_JMH
|
||||
|
||||
# Setup Jib dependency tool
|
||||
TOOLCHAIN_SETUP_JIB
|
||||
|
||||
@@ -236,7 +234,6 @@ JDKOPT_ENABLE_DISABLE_FAILURE_HANDLER
|
||||
JDKOPT_ENABLE_DISABLE_GENERATE_CLASSLIST
|
||||
JDKOPT_EXCLUDE_TRANSLATIONS
|
||||
JDKOPT_ENABLE_DISABLE_MANPAGES
|
||||
JDKOPT_ENABLE_DISABLE_CDS_ARCHIVE
|
||||
|
||||
###############################################################################
|
||||
#
|
||||
|
||||
@@ -121,11 +121,7 @@ AC_DEFUN([FLAGS_SETUP_DEBUG_SYMBOLS],
|
||||
# -g0 enables debug symbols without disabling inlining.
|
||||
CFLAGS_DEBUG_SYMBOLS="-g0 -xs"
|
||||
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
|
||||
if test "x$XLC_USES_CLANG" = xtrue; then
|
||||
CFLAGS_DEBUG_SYMBOLS="-g1"
|
||||
else
|
||||
CFLAGS_DEBUG_SYMBOLS="-g"
|
||||
fi
|
||||
CFLAGS_DEBUG_SYMBOLS="-g"
|
||||
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||
CFLAGS_DEBUG_SYMBOLS="-Z7 -d2Zi+"
|
||||
fi
|
||||
@@ -165,36 +161,14 @@ AC_DEFUN([FLAGS_SETUP_WARNINGS],
|
||||
microsoft)
|
||||
DISABLE_WARNING_PREFIX="-wd"
|
||||
CFLAGS_WARNINGS_ARE_ERRORS="-WX"
|
||||
|
||||
WARNINGS_ENABLE_ALL="-W3"
|
||||
DISABLED_WARNINGS="4800"
|
||||
;;
|
||||
|
||||
solstudio)
|
||||
DISABLE_WARNING_PREFIX="-erroff="
|
||||
CFLAGS_WARNINGS_ARE_ERRORS="-errwarn=%all"
|
||||
|
||||
WARNINGS_ENABLE_ALL_CFLAGS="-v"
|
||||
WARNINGS_ENABLE_ALL_CXXFLAGS="+w"
|
||||
|
||||
DISABLED_WARNINGS_C=""
|
||||
DISABLED_WARNINGS_CXX=""
|
||||
CFLAGS_WARNINGS_ARE_ERRORS="-errtags -errwarn=%all"
|
||||
;;
|
||||
|
||||
gcc)
|
||||
DISABLE_WARNING_PREFIX="-Wno-"
|
||||
CFLAGS_WARNINGS_ARE_ERRORS="-Werror"
|
||||
|
||||
# Additional warnings that are not activated by -Wall and -Wextra
|
||||
WARNINGS_ENABLE_ADDITIONAL="-Wpointer-arith -Wsign-compare \
|
||||
-Wunused-function -Wundef -Wunused-value -Wreturn-type \
|
||||
-Wtrampolines"
|
||||
WARNINGS_ENABLE_ADDITIONAL_CXX="-Woverloaded-virtual -Wreorder"
|
||||
WARNINGS_ENABLE_ALL_CFLAGS="-Wall -Wextra -Wformat=2 $WARNINGS_ENABLE_ADDITIONAL"
|
||||
WARNINGS_ENABLE_ALL_CXXFLAGS="$WARNINGS_ENABLE_ALL_CFLAGS $WARNINGS_ENABLE_ADDITIONAL_CXX"
|
||||
|
||||
DISABLED_WARNINGS="unused-parameter unused"
|
||||
|
||||
# Repeate the check for the BUILD_CC and BUILD_CXX. Need to also reset
|
||||
# CFLAGS since any target specific flags will likely not work with the
|
||||
# build compiler
|
||||
@@ -209,40 +183,18 @@ AC_DEFUN([FLAGS_SETUP_WARNINGS],
|
||||
CXX="$CXX_OLD"
|
||||
CFLAGS="$CFLAGS_OLD"
|
||||
;;
|
||||
|
||||
clang)
|
||||
DISABLE_WARNING_PREFIX="-Wno-"
|
||||
CFLAGS_WARNINGS_ARE_ERRORS="-Werror"
|
||||
|
||||
# Additional warnings that are not activated by -Wall and -Wextra
|
||||
WARNINGS_ENABLE_ADDITIONAL="-Wpointer-arith -Wsign-compare -Wreorder \
|
||||
-Wunused-function -Wundef -Wunused-value -Woverloaded-virtual"
|
||||
WARNINGS_ENABLE_ALL="-Wall -Wextra -Wformat=2 $WARNINGS_ENABLE_ADDITIONAL"
|
||||
|
||||
DISABLED_WARNINGS="unused-parameter unused"
|
||||
|
||||
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
||||
# missing-method-return-type triggers in JavaNativeFoundation framework
|
||||
DISABLED_WARNINGS="$DISABLED_WARNINGS missing-method-return-type"
|
||||
fi
|
||||
|
||||
;;
|
||||
|
||||
xlc)
|
||||
DISABLE_WARNING_PREFIX="-qsuppress="
|
||||
CFLAGS_WARNINGS_ARE_ERRORS="-qhalt=w"
|
||||
|
||||
# Possibly a better subset than "all" is "lan:trx:ret:zea:cmp:ret"
|
||||
WARNINGS_ENABLE_ALL="-qinfo=all -qformat=all"
|
||||
DISABLED_WARNINGS=""
|
||||
;;
|
||||
esac
|
||||
AC_SUBST(DISABLE_WARNING_PREFIX)
|
||||
AC_SUBST(BUILD_CC_DISABLE_WARNING_PREFIX)
|
||||
AC_SUBST(CFLAGS_WARNINGS_ARE_ERRORS)
|
||||
AC_SUBST(DISABLED_WARNINGS)
|
||||
AC_SUBST(DISABLED_WARNINGS_C)
|
||||
AC_SUBST(DISABLED_WARNINGS_CXX)
|
||||
])
|
||||
|
||||
AC_DEFUN([FLAGS_SETUP_QUALITY_CHECKS],
|
||||
@@ -419,7 +371,32 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS],
|
||||
FLAGS_CPU_LEGACY=$OPENJDK_BUILD_CPU_LEGACY
|
||||
FLAGS_CPU_LEGACY_LIB=$OPENJDK_BUILD_CPU_LEGACY_LIB
|
||||
|
||||
FLAGS_SETUP_CFLAGS_CPU_DEP([BUILD], [OPENJDK_BUILD_], [BUILD_])
|
||||
FLAGS_SETUP_CFLAGS_CPU_DEP([BUILD], [OPENJDK_BUILD_])
|
||||
|
||||
COMPILER_FP_CONTRACT_OFF_FLAG="-ffp-contract=off"
|
||||
# Check that the compiler supports -ffp-contract=off flag
|
||||
# Set FDLIBM_CFLAGS to -ffp-contract=off if it does. Empty
|
||||
# otherwise.
|
||||
# These flags are required for GCC-based builds of
|
||||
# fdlibm with optimization without losing precision.
|
||||
# Notably, -ffp-contract=off needs to be added for GCC >= 4.6.
|
||||
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||
FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [${COMPILER_FP_CONTRACT_OFF_FLAG}],
|
||||
IF_TRUE: [FDLIBM_CFLAGS=${COMPILER_FP_CONTRACT_OFF_FLAG}],
|
||||
IF_FALSE: [FDLIBM_CFLAGS=""])
|
||||
fi
|
||||
AC_SUBST(FDLIBM_CFLAGS)
|
||||
|
||||
# Tests are only ever compiled for TARGET
|
||||
CFLAGS_TESTLIB="$CFLAGS_JDKLIB"
|
||||
CXXFLAGS_TESTLIB="$CXXFLAGS_JDKLIB"
|
||||
CFLAGS_TESTEXE="$CFLAGS_JDKEXE"
|
||||
CXXFLAGS_TESTEXE="$CXXFLAGS_JDKEXE"
|
||||
|
||||
AC_SUBST(CFLAGS_TESTLIB)
|
||||
AC_SUBST(CFLAGS_TESTEXE)
|
||||
AC_SUBST(CXXFLAGS_TESTLIB)
|
||||
AC_SUBST(CXXFLAGS_TESTEXE)
|
||||
])
|
||||
|
||||
################################################################################
|
||||
@@ -519,9 +496,15 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
|
||||
if test "x$TOOLCHAIN_TYPE" = xgcc; then
|
||||
TOOLCHAIN_CFLAGS_JVM="$TOOLCHAIN_CFLAGS_JVM -fcheck-new -fstack-protector"
|
||||
TOOLCHAIN_CFLAGS_JDK="-pipe -fstack-protector"
|
||||
# technically NOT for CXX (but since this gives *worse* performance, use
|
||||
# no-strict-aliasing everywhere!)
|
||||
TOOLCHAIN_CFLAGS_JDK_CONLY="-fno-strict-aliasing"
|
||||
TOOLCHAIN_CFLAGS_JDK_CONLY="-fno-strict-aliasing" # technically NOT for CXX (but since this gives *worse* performance, use no-strict-aliasing everywhere!)
|
||||
|
||||
CXXSTD_CXXFLAG="-std=gnu++98"
|
||||
FLAGS_CXX_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$CXXSTD_CXXFLAG -Werror],
|
||||
IF_FALSE: [CXXSTD_CXXFLAG=""])
|
||||
TOOLCHAIN_CFLAGS_JDK_CXXONLY="$CXXSTD_CXXFLAG"
|
||||
TOOLCHAIN_CFLAGS_JVM="$TOOLCHAIN_CFLAGS_JVM $CXXSTD_CXXFLAG"
|
||||
ADLC_CXXFLAG="$CXXSTD_CXXFLAG"
|
||||
|
||||
|
||||
elif test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||
# Restrict the debug information created by Clang to avoid
|
||||
@@ -540,14 +523,11 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
|
||||
TOOLCHAIN_CFLAGS_JDK_CONLY="-fno-strict-aliasing" # technically NOT for CXX
|
||||
fi
|
||||
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
||||
TOOLCHAIN_FLAGS="-errtags -errfmt"
|
||||
TOOLCHAIN_CFLAGS="-errshort=tags"
|
||||
|
||||
TOOLCHAIN_CFLAGS_JDK="-mt $TOOLCHAIN_FLAGS"
|
||||
TOOLCHAIN_CFLAGS_JDK_CONLY="-xCC -Xa -W0,-noglobal $TOOLCHAIN_CFLAGS" # C only
|
||||
TOOLCHAIN_CFLAGS_JDK="-mt"
|
||||
TOOLCHAIN_CFLAGS_JDK_CONLY="-xc99=%none -xCC -Xa -v -W0,-noglobal" # C only
|
||||
TOOLCHAIN_CFLAGS_JDK_CXXONLY="-features=no%except -norunpath -xnolib" # CXX only
|
||||
TOOLCHAIN_CFLAGS_JVM="-template=no%extdef -features=no%split_init \
|
||||
-library=stlport4 -mt -features=no%except $TOOLCHAIN_FLAGS"
|
||||
-library=stlport4 -mt -features=no%except"
|
||||
if test "x$DEBUG_LEVEL" = xslowdebug; then
|
||||
# Previously -g was used instead of -g0 for slowdebug; this is equivalent
|
||||
# to setting +d.
|
||||
@@ -555,11 +535,10 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
|
||||
fi
|
||||
|
||||
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
|
||||
# Suggested additions: -qsrcmsg to get improved error reporting
|
||||
TOOLCHAIN_CFLAGS_JDK="-qchars=signed -qfullpath -qsaveopt -qstackprotect" # add on both CFLAGS
|
||||
TOOLCHAIN_CFLAGS_JDK="-qchars=signed -qfullpath -qsaveopt" # add on both CFLAGS
|
||||
TOOLCHAIN_CFLAGS_JVM="-qtune=balanced \
|
||||
-qalias=noansi -qstrict -qtls=default -qlanglvl=c99vla \
|
||||
-qlanglvl=noredefmac -qnortti -qnoeh -qignerrno -qstackprotect"
|
||||
-qlanglvl=noredefmac -qnortti -qnoeh -qignerrno"
|
||||
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||
TOOLCHAIN_CFLAGS_JVM="-nologo -MD -MP"
|
||||
TOOLCHAIN_CFLAGS_JDK="-nologo -MD -Zc:wchar_t-"
|
||||
@@ -567,24 +546,37 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
|
||||
|
||||
# CFLAGS WARNINGS STUFF
|
||||
# Set JVM_CFLAGS warning handling
|
||||
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||
# COMMON to gcc and clang
|
||||
WARNING_CFLAGS_JVM="-Wpointer-arith -Wsign-compare -Wunused-function"
|
||||
if ! HOTSPOT_CHECK_JVM_VARIANT(zero); then
|
||||
# Non-zero builds have stricter warnings
|
||||
WARNING_CFLAGS_JVM="$WARNING_CFLAGS_JVM -Wundef -Wformat=2"
|
||||
fi
|
||||
|
||||
fi
|
||||
if test "x$TOOLCHAIN_TYPE" = xgcc; then
|
||||
WARNING_CFLAGS_JDK_CONLY="$WARNINGS_ENABLE_ALL_CFLAGS"
|
||||
WARNING_CFLAGS_JDK_CXXONLY="$WARNINGS_ENABLE_ALL_CXXFLAGS"
|
||||
WARNING_CFLAGS_JVM="$WARNINGS_ENABLE_ALL_CXXFLAGS"
|
||||
WARNING_CFLAGS_JDK="-Wall -Wextra -Wno-unused -Wno-unused-parameter -Wformat=2"
|
||||
WARNING_CFLAGS_JVM="$WARNING_CFLAGS_JVM -Wunused-value -Woverloaded-virtual"
|
||||
|
||||
if ! HOTSPOT_CHECK_JVM_VARIANT(zero); then
|
||||
# Non-zero builds have stricter warnings
|
||||
WARNING_CFLAGS_JVM="$WARNING_CFLAGS_JVM -Wreturn-type"
|
||||
fi
|
||||
elif test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||
WARNING_CFLAGS="$WARNINGS_ENABLE_ALL"
|
||||
|
||||
WARNING_CFLAGS_JVM="$WARNING_CFLAGS_JVM -Wno-deprecated"
|
||||
if test "x$OPENJDK_TARGET_OS" = xlinux; then
|
||||
WARNING_CFLAGS_JVM="$WARNING_CFLAGS_JVM -Wno-sometimes-uninitialized"
|
||||
WARNING_CFLAGS_JDK="-Wall -Wextra -Wno-unused -Wno-unused-parameter -Wformat=2"
|
||||
fi
|
||||
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
||||
WARNING_CFLAGS_JDK_CONLY="$WARNINGS_ENABLE_ALL_CFLAGS"
|
||||
WARNING_CFLAGS_JDK_CXXONLY="$WARNINGS_ENABLE_ALL_CXXFLAGS"
|
||||
WARNING_CFLAGS_JVM="$WARNINGS_ENABLE_ALL_CXXFLAGS"
|
||||
|
||||
WARNING_CFLAGS_JDK_CONLY="-errshort=tags"
|
||||
WARNING_CFLAGS_JDK_CXXONLY="+w"
|
||||
WARNING_CFLAGS_JDK="-errtags=yes -errfmt"
|
||||
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||
WARNING_CFLAGS="$WARNINGS_ENABLE_ALL"
|
||||
|
||||
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
|
||||
WARNING_CFLAGS="" # currently left empty
|
||||
WARNING_CFLAGS="-W3"
|
||||
WARNING_CFLAGS_JDK="-wd4800"
|
||||
WARNING_CFLAGS_JVM="-wd4800"
|
||||
fi
|
||||
|
||||
# Set some additional per-OS defines.
|
||||
@@ -654,13 +646,15 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
|
||||
OS_CFLAGS_JVM="$OS_CFLAGS_JVM -DNEEDS_LIBRT"
|
||||
fi
|
||||
fi
|
||||
|
||||
# EXPORT
|
||||
AC_SUBST(ADLC_CXXFLAG)
|
||||
])
|
||||
|
||||
################################################################################
|
||||
# $1 - Either BUILD or TARGET to pick the correct OS/CPU variables to check
|
||||
# conditionals against.
|
||||
# $2 - Optional prefix for each variable defined.
|
||||
# $3 - Optional prefix for compiler variables (either BUILD_ or nothing).
|
||||
AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP],
|
||||
[
|
||||
#### CPU DEFINES, these should (in theory) be independent on toolchain
|
||||
@@ -730,6 +724,10 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP],
|
||||
# -Wno-psabi to get rid of annoying "note: the mangling of 'va_list' has changed in GCC 4.4"
|
||||
$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"
|
||||
elif test "x$FLAGS_CPU" = xaarch64; then
|
||||
if test "x$HOTSPOT_TARGET_CPU_PORT" = xarm64; then
|
||||
$1_CFLAGS_CPU_JVM="-fsigned-char -DARM"
|
||||
fi
|
||||
elif test "x$FLAGS_CPU_ARCH" = xppc; then
|
||||
$1_CFLAGS_CPU_JVM="-minsert-sched-nops=regroup_exact -mno-multiple -mno-string"
|
||||
if test "x$FLAGS_CPU" = xppc64; then
|
||||
@@ -750,13 +748,6 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP],
|
||||
$1_CFLAGS_CPU_JDK="${$1_CFLAGS_CPU_JDK} -fno-omit-frame-pointer"
|
||||
fi
|
||||
|
||||
$1_CXXSTD_CXXFLAG="-std=gnu++98"
|
||||
FLAGS_CXX_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [${$1_CXXSTD_CXXFLAG} -Werror],
|
||||
PREFIX: $3, IF_FALSE: [$1_CXXSTD_CXXFLAG=""])
|
||||
$1_TOOLCHAIN_CFLAGS_JDK_CXXONLY="${$1_CXXSTD_CXXFLAG}"
|
||||
$1_TOOLCHAIN_CFLAGS_JVM="${$1_TOOLCHAIN_CFLAGS_JVM} ${$1_CXXSTD_CXXFLAG}"
|
||||
$2ADLC_CXXFLAG="${$1_CXXSTD_CXXFLAG}"
|
||||
|
||||
elif test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||
if test "x$FLAGS_OS" = xlinux; then
|
||||
# ppc test not really needed for clang
|
||||
@@ -793,15 +784,14 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP],
|
||||
fi
|
||||
|
||||
if test "x$TOOLCHAIN_TYPE" = xgcc; then
|
||||
FLAGS_SETUP_GCC6_COMPILER_FLAGS($1, $3)
|
||||
TOOLCHAIN_CHECK_COMPILER_VERSION(VERSION: 6, PREFIX: $2, IF_AT_LEAST: FLAGS_SETUP_GCC6_COMPILER_FLAGS($1))
|
||||
$1_TOOLCHAIN_CFLAGS="${$1_GCC6_CFLAGS}"
|
||||
|
||||
$1_WARNING_CFLAGS_JVM="-Wno-format-zero-length -Wtype-limits -Wuninitialized"
|
||||
fi
|
||||
|
||||
# EXPORT to API
|
||||
CFLAGS_JVM_COMMON="$ALWAYS_CFLAGS_JVM $ALWAYS_DEFINES_JVM \
|
||||
$TOOLCHAIN_CFLAGS_JVM ${$1_TOOLCHAIN_CFLAGS_JVM} \
|
||||
CFLAGS_JVM_COMMON="$ALWAYS_CFLAGS_JVM $ALWAYS_DEFINES_JVM $TOOLCHAIN_CFLAGS_JVM \
|
||||
$OS_CFLAGS $OS_CFLAGS_JVM $CFLAGS_OS_DEF_JVM $DEBUG_CFLAGS_JVM \
|
||||
$WARNING_CFLAGS $WARNING_CFLAGS_JVM $JVM_PICFLAG"
|
||||
|
||||
@@ -815,9 +805,7 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP],
|
||||
|
||||
CFLAGS_JDK_COMMON_CONLY="$TOOLCHAIN_CFLAGS_JDK_CONLY \
|
||||
$WARNING_CFLAGS_JDK_CONLY ${$2EXTRA_CFLAGS}"
|
||||
CFLAGS_JDK_COMMON_CXXONLY="$ALWAYS_DEFINES_JDK_CXXONLY \
|
||||
$TOOLCHAIN_CFLAGS_JDK_CXXONLY \
|
||||
${$1_TOOLCHAIN_CFLAGS_JDK_CXXONLY} \
|
||||
CFLAGS_JDK_COMMON_CXXONLY="$ALWAYS_DEFINES_JDK_CXXONLY $TOOLCHAIN_CFLAGS_JDK_CXXONLY \
|
||||
$WARNING_CFLAGS_JDK_CXXONLY ${$2EXTRA_CXXFLAGS}"
|
||||
|
||||
$1_CFLAGS_JVM="${$1_DEFINES_CPU_JVM} ${$1_CFLAGS_CPU} ${$1_CFLAGS_CPU_JVM} ${$1_TOOLCHAIN_CFLAGS} ${$1_WARNING_CFLAGS_JVM}"
|
||||
@@ -835,28 +823,11 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP],
|
||||
AC_SUBST($2CFLAGS_JDKEXE)
|
||||
AC_SUBST($2CXXFLAGS_JDKLIB)
|
||||
AC_SUBST($2CXXFLAGS_JDKEXE)
|
||||
AC_SUBST($2ADLC_CXXFLAG)
|
||||
|
||||
COMPILER_FP_CONTRACT_OFF_FLAG="-ffp-contract=off"
|
||||
# Check that the compiler supports -ffp-contract=off flag
|
||||
# Set FDLIBM_CFLAGS to -ffp-contract=off if it does. Empty
|
||||
# otherwise.
|
||||
# These flags are required for GCC-based builds of
|
||||
# fdlibm with optimization without losing precision.
|
||||
# Notably, -ffp-contract=off needs to be added for GCC >= 4.6.
|
||||
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||
FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [${COMPILER_FP_CONTRACT_OFF_FLAG}],
|
||||
PREFIX: $3,
|
||||
IF_TRUE: [$2FDLIBM_CFLAGS=${COMPILER_FP_CONTRACT_OFF_FLAG}],
|
||||
IF_FALSE: [$2FDLIBM_CFLAGS=""])
|
||||
fi
|
||||
AC_SUBST($2FDLIBM_CFLAGS)
|
||||
])
|
||||
|
||||
# FLAGS_SETUP_GCC6_COMPILER_FLAGS([PREFIX])
|
||||
# Arguments:
|
||||
# $1 - Prefix for each variable defined.
|
||||
# $2 - Prefix for compiler variables (either BUILD_ or nothing).
|
||||
AC_DEFUN([FLAGS_SETUP_GCC6_COMPILER_FLAGS],
|
||||
[
|
||||
# These flags are required for GCC 6 builds as undefined behaviour in OpenJDK code
|
||||
@@ -864,11 +835,14 @@ AC_DEFUN([FLAGS_SETUP_GCC6_COMPILER_FLAGS],
|
||||
# Notably, value range propagation now assumes that the this pointer of C++
|
||||
# member functions is non-null.
|
||||
NO_DELETE_NULL_POINTER_CHECKS_CFLAG="-fno-delete-null-pointer-checks"
|
||||
FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$NO_DELETE_NULL_POINTER_CHECKS_CFLAG -Werror],
|
||||
PREFIX: $2, IF_FALSE: [NO_DELETE_NULL_POINTER_CHECKS_CFLAG=""])
|
||||
dnl Argument check is disabled until FLAGS_COMPILER_CHECK_ARGUMENTS handles cross-compilation
|
||||
dnl FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$NO_DELETE_NULL_POINTER_CHECKS_CFLAG -Werror],
|
||||
dnl IF_FALSE: [NO_DELETE_NULL_POINTER_CHECKS_CFLAG=""])
|
||||
NO_LIFETIME_DSE_CFLAG="-fno-lifetime-dse"
|
||||
FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$NO_LIFETIME_DSE_CFLAG -Werror],
|
||||
PREFIX: $2, IF_FALSE: [NO_LIFETIME_DSE_CFLAG=""])
|
||||
dnl Argument check is disabled until FLAGS_COMPILER_CHECK_ARGUMENTS handles cross-compilation
|
||||
dnl FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$NO_LIFETIME_DSE_CFLAG -Werror],
|
||||
dnl IF_FALSE: [NO_LIFETIME_DSE_CFLAG=""])
|
||||
AC_MSG_NOTICE([GCC >= 6 detected; adding ${NO_DELETE_NULL_POINTER_CHECKS_CFLAG} and ${NO_LIFETIME_DSE_CFLAG}])
|
||||
$1_GCC6_CFLAGS="${NO_DELETE_NULL_POINTER_CHECKS_CFLAG} ${NO_LIFETIME_DSE_CFLAG}"
|
||||
])
|
||||
|
||||
|
||||
@@ -51,7 +51,9 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS],
|
||||
|
||||
FLAGS_SETUP_LDFLAGS_CPU_DEP([BUILD], [OPENJDK_BUILD_])
|
||||
|
||||
LDFLAGS_TESTEXE="${TARGET_LDFLAGS_JDK_LIBPATH}"
|
||||
LDFLAGS_TESTLIB="$LDFLAGS_JDKLIB"
|
||||
LDFLAGS_TESTEXE="$LDFLAGS_JDKEXE ${TARGET_LDFLAGS_JDK_LIBPATH}"
|
||||
AC_SUBST(LDFLAGS_TESTLIB)
|
||||
AC_SUBST(LDFLAGS_TESTEXE)
|
||||
])
|
||||
|
||||
@@ -72,8 +74,10 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
|
||||
# Add -z defs, to forbid undefined symbols in object files.
|
||||
BASIC_LDFLAGS="$BASIC_LDFLAGS -Wl,-z,defs"
|
||||
|
||||
BASIC_LDFLAGS_JVM_ONLY="-Wl,-O1 -Wl,-z,relro"
|
||||
BASIC_LDFLAGS_JVM_ONLY="-Wl,-z,noexecstack -Wl,-O1 -Wl,-z,relro"
|
||||
|
||||
BASIC_LDFLAGS_JDK_LIB_ONLY="-Wl,-z,noexecstack"
|
||||
LIBJSIG_NOEXECSTACK_LDFLAGS="-Wl,-z,noexecstack"
|
||||
|
||||
elif test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||
BASIC_LDFLAGS_JVM_ONLY="-mno-omit-leaf-frame-pointer -mstack-alignment=16 \
|
||||
@@ -99,12 +103,6 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
|
||||
BASIC_LDFLAGS_JVM_ONLY="-opt:icf,8 -subsystem:windows"
|
||||
fi
|
||||
|
||||
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||
if test -n "$HAS_NOEXECSTACK"; then
|
||||
BASIC_LDFLAGS="$BASIC_LDFLAGS -Wl,-z,noexecstack"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Setup OS-dependent LDFLAGS
|
||||
if test "x$TOOLCHAIN_TYPE" = xclang || test "x$TOOLCHAIN_TYPE" = xgcc; then
|
||||
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
||||
@@ -139,14 +137,6 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
|
||||
fi
|
||||
fi
|
||||
|
||||
# Setup warning flags
|
||||
if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
||||
LDFLAGS_WARNINGS_ARE_ERRORS="-Wl,-z,fatal-warnings"
|
||||
else
|
||||
LDFLAGS_WARNINGS_ARE_ERRORS=""
|
||||
fi
|
||||
AC_SUBST(LDFLAGS_WARNINGS_ARE_ERRORS)
|
||||
|
||||
# Setup LDFLAGS for linking executables
|
||||
if test "x$TOOLCHAIN_TYPE" = xgcc; then
|
||||
EXECUTABLE_LDFLAGS="$EXECUTABLE_LDFLAGS -Wl,--allow-shlib-undefined"
|
||||
@@ -173,6 +163,10 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_CPU_DEP],
|
||||
elif test "x$OPENJDK_$1_CPU" = xarm; then
|
||||
$1_CPU_LDFLAGS_JVM_ONLY="${$1_CPU_LDFLAGS_JVM_ONLY} -fsigned-char"
|
||||
$1_CPU_LDFLAGS="$ARM_ARCH_TYPE_FLAGS $ARM_FLOAT_TYPE_FLAGS"
|
||||
elif test "x$FLAGS_CPU" = xaarch64; then
|
||||
if test "x$HOTSPOT_TARGET_CPU_PORT" = xarm64; then
|
||||
$1_CPU_LDFLAGS_JVM_ONLY="${$1_CPU_LDFLAGS_JVM_ONLY} -fsigned-char"
|
||||
fi
|
||||
fi
|
||||
|
||||
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
||||
|
||||
@@ -31,7 +31,9 @@
|
||||
AC_DEFUN([FLAGS_SETUP_ARFLAGS],
|
||||
[
|
||||
# FIXME: figure out if we should select AR flags depending on OS or toolchain.
|
||||
if test "x$OPENJDK_TARGET_OS" = xaix; then
|
||||
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
||||
ARFLAGS="-r -mmacosx-version-min=$MACOSX_VERSION_MIN"
|
||||
elif test "x$OPENJDK_TARGET_OS" = xaix; then
|
||||
ARFLAGS="-X64"
|
||||
elif test "x$OPENJDK_TARGET_OS" = xwindows; then
|
||||
# lib.exe is used as AR to create static libraries.
|
||||
@@ -119,12 +121,6 @@ AC_DEFUN([FLAGS_SETUP_ASFLAGS_CPU_DEP],
|
||||
# Misuse EXTRA_CFLAGS to mimic old behavior
|
||||
$2JVM_ASFLAGS="$JVM_BASIC_ASFLAGS ${$2EXTRA_CFLAGS}"
|
||||
|
||||
if test "x$1" = "xTARGET" && \
|
||||
test "x$TOOLCHAIN_TYPE" = xgcc && \
|
||||
test "x$OPENJDK_TARGET_CPU" = xarm; then
|
||||
$2JVM_ASFLAGS="${$2JVM_ASFLAGS} $ARM_ARCH_TYPE_ASFLAGS $ARM_FLOAT_TYPE_ASFLAGS"
|
||||
fi
|
||||
|
||||
AC_SUBST($2JVM_ASFLAGS)
|
||||
])
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ m4_include([flags-other.m4])
|
||||
AC_DEFUN([FLAGS_SETUP_ABI_PROFILE],
|
||||
[
|
||||
AC_ARG_WITH(abi-profile, [AS_HELP_STRING([--with-abi-profile],
|
||||
[specify ABI profile for ARM builds (arm-vfp-sflt,arm-vfp-hflt,arm-sflt, armv5-vfp-sflt,armv6-vfp-hflt,aarch64) @<:@toolchain dependent@:>@ ])])
|
||||
[specify ABI profile for ARM builds (arm-vfp-sflt,arm-vfp-hflt,arm-sflt, armv5-vfp-sflt,armv6-vfp-hflt,arm64,aarch64) @<:@toolchain dependent@:>@ ])])
|
||||
|
||||
if test "x$with_abi_profile" != x; then
|
||||
if test "x$OPENJDK_TARGET_CPU" != xarm && \
|
||||
@@ -46,59 +46,45 @@ AC_DEFUN([FLAGS_SETUP_ABI_PROFILE],
|
||||
AC_MSG_CHECKING([for ABI profle])
|
||||
AC_MSG_RESULT([$OPENJDK_TARGET_ABI_PROFILE])
|
||||
|
||||
# --- Arm-sflt CFLAGS and ASFLAGS ---
|
||||
# Armv5te is required for assembler, because pld insn used in arm32 hotspot is only in v5E and above.
|
||||
# However, there is also a GCC bug which generates unaligned strd/ldrd instructions on armv5te:
|
||||
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82445, and it was fixed only quite recently.
|
||||
# The resulting compromise is to enable v5TE for assembler and let GCC generate code for v5T.
|
||||
if test "x$OPENJDK_TARGET_ABI_PROFILE" = xarm-vfp-sflt; then
|
||||
ARM_FLOAT_TYPE=vfp-sflt
|
||||
ARM_ARCH_TYPE_FLAGS='-march=armv7-a -mthumb'
|
||||
ARM_ARCH_TYPE_ASFLAGS='-march=armv7-a -mthumb'
|
||||
elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xarm-vfp-hflt; then
|
||||
ARM_FLOAT_TYPE=vfp-hflt
|
||||
ARM_ARCH_TYPE_FLAGS='-march=armv7-a -mthumb'
|
||||
ARM_ARCH_TYPE_ASFLAGS='-march=armv7-a -mthumb'
|
||||
elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xarm-sflt; then
|
||||
ARM_FLOAT_TYPE=sflt
|
||||
ARM_ARCH_TYPE_FLAGS='-march=armv5t -marm'
|
||||
ARM_ARCH_TYPE_ASFLAGS='-march=armv5te'
|
||||
elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xarmv5-vfp-sflt; then
|
||||
ARM_FLOAT_TYPE=vfp-sflt
|
||||
ARM_ARCH_TYPE_FLAGS='-march=armv5t -marm'
|
||||
ARM_ARCH_TYPE_ASFLAGS='-march=armv5te'
|
||||
elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xarmv6-vfp-hflt; then
|
||||
ARM_FLOAT_TYPE=vfp-hflt
|
||||
ARM_ARCH_TYPE_FLAGS='-march=armv6 -marm'
|
||||
ARM_ARCH_TYPE_ASFLAGS='-march=armv6'
|
||||
elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xarm64; then
|
||||
# No special flags, just need to trigger setting JDK_ARCH_ABI_PROP_NAME
|
||||
ARM_FLOAT_TYPE=
|
||||
ARM_ARCH_TYPE_FLAGS=
|
||||
elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xaarch64; then
|
||||
# No special flags, just need to trigger setting JDK_ARCH_ABI_PROP_NAME
|
||||
ARM_FLOAT_TYPE=
|
||||
ARM_ARCH_TYPE_FLAGS=
|
||||
ARM_ARCH_TYPE_ASFLAGS=
|
||||
else
|
||||
AC_MSG_ERROR([Invalid ABI profile: "$OPENJDK_TARGET_ABI_PROFILE"])
|
||||
fi
|
||||
|
||||
if test "x$ARM_FLOAT_TYPE" = xvfp-sflt; then
|
||||
ARM_FLOAT_TYPE_FLAGS='-mfloat-abi=softfp -mfpu=vfp -DFLOAT_ARCH=-vfp-sflt'
|
||||
ARM_FLOAT_TYPE_ASFLAGS="-mfloat-abi=softfp -mfpu=vfp"
|
||||
elif test "x$ARM_FLOAT_TYPE" = xvfp-hflt; then
|
||||
ARM_FLOAT_TYPE_FLAGS='-mfloat-abi=hard -mfpu=vfp -DFLOAT_ARCH=-vfp-hflt'
|
||||
ARM_FLOAT_TYPE_ASFLAGS="-mfloat-abi=hard -mfpu=vfp"
|
||||
elif test "x$ARM_FLOAT_TYPE" = xsflt; then
|
||||
ARM_FLOAT_TYPE_FLAGS='-msoft-float -mfpu=vfp'
|
||||
ARM_FLOAT_TYPE_ASFLAGS="-mfloat-abi=soft -mfpu=vfp"
|
||||
fi
|
||||
AC_MSG_CHECKING([for $ARM_FLOAT_TYPE floating point flags])
|
||||
AC_MSG_RESULT([$ARM_FLOAT_TYPE_FLAGS])
|
||||
AC_MSG_CHECKING([for $ARM_FLOAT_TYPE floating point flags for assembler])
|
||||
AC_MSG_RESULT([$ARM_FLOAT_TYPE_ASFLAGS])
|
||||
|
||||
AC_MSG_CHECKING([for arch type flags])
|
||||
AC_MSG_RESULT([$ARM_ARCH_TYPE_FLAGS])
|
||||
AC_MSG_CHECKING([for arch type flags for assembler])
|
||||
AC_MSG_RESULT([$ARM_ARCH_TYPE_ASFLAGS])
|
||||
|
||||
# Now set JDK_ARCH_ABI_PROP_NAME. This is equivalent to the last part of the
|
||||
# autoconf target triplet.
|
||||
@@ -255,8 +241,7 @@ AC_DEFUN_ONCE([FLAGS_PRE_TOOLCHAIN],
|
||||
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
||||
MACHINE_FLAG="-m${OPENJDK_TARGET_CPU_BITS}"
|
||||
elif test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||
if test "x$OPENJDK_TARGET_CPU_ARCH" = xx86 &&
|
||||
test "x$OPENJDK_TARGET_CPU" != xx32 ||
|
||||
if test "x$OPENJDK_TARGET_CPU_ARCH" = xx86 ||
|
||||
test "x$OPENJDK_TARGET_CPU_ARCH" = xsparc ||
|
||||
test "x$OPENJDK_TARGET_CPU_ARCH" = xppc; then
|
||||
MACHINE_FLAG="-m${OPENJDK_TARGET_CPU_BITS}"
|
||||
@@ -350,12 +335,8 @@ AC_DEFUN([FLAGS_SETUP_TOOLCHAIN_CONTROL],
|
||||
CC_OUT_OPTION='-o$(SPACE)'
|
||||
# When linking, how to specify the output
|
||||
LD_OUT_OPTION='-o$(SPACE)'
|
||||
# When archiving, how to specify the destination static archive.
|
||||
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
||||
AR_OUT_OPTION='-r -cs$(SPACE)'
|
||||
else
|
||||
AR_OUT_OPTION='-rcs$(SPACE)'
|
||||
fi
|
||||
# When archiving, how to specify the to be create static archive for object files.
|
||||
AR_OUT_OPTION='rcs$(SPACE)'
|
||||
fi
|
||||
AC_SUBST(CC_OUT_OPTION)
|
||||
AC_SUBST(LD_OUT_OPTION)
|
||||
@@ -421,20 +402,17 @@ AC_DEFUN([FLAGS_SETUP_FLAGS],
|
||||
# ------------------------------------------------------------
|
||||
# Check that the C compiler supports an argument
|
||||
BASIC_DEFUN_NAMED([FLAGS_C_COMPILER_CHECK_ARGUMENTS],
|
||||
[*ARGUMENT IF_TRUE IF_FALSE PREFIX], [$@],
|
||||
[*ARGUMENT IF_TRUE IF_FALSE], [$@],
|
||||
[
|
||||
AC_MSG_CHECKING([if ARG_PREFIX[CC] supports "ARG_ARGUMENT"])
|
||||
AC_MSG_CHECKING([if the C compiler supports "ARG_ARGUMENT"])
|
||||
supports=yes
|
||||
|
||||
saved_cflags="$CFLAGS"
|
||||
saved_cc="$CC"
|
||||
CFLAGS="$CFLAGS ARG_ARGUMENT"
|
||||
CC="$ARG_PREFIX[CC]"
|
||||
AC_LANG_PUSH([C])
|
||||
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[int i;]])], [],
|
||||
[supports=no])
|
||||
AC_LANG_POP([C])
|
||||
CC="$saved_cc"
|
||||
CFLAGS="$saved_cflags"
|
||||
|
||||
AC_MSG_RESULT([$supports])
|
||||
@@ -452,20 +430,17 @@ BASIC_DEFUN_NAMED([FLAGS_C_COMPILER_CHECK_ARGUMENTS],
|
||||
# ------------------------------------------------------------
|
||||
# Check that the C++ compiler supports an argument
|
||||
BASIC_DEFUN_NAMED([FLAGS_CXX_COMPILER_CHECK_ARGUMENTS],
|
||||
[*ARGUMENT IF_TRUE IF_FALSE PREFIX], [$@],
|
||||
[*ARGUMENT IF_TRUE IF_FALSE], [$@],
|
||||
[
|
||||
AC_MSG_CHECKING([if ARG_PREFIX[CXX] supports "ARG_ARGUMENT"])
|
||||
AC_MSG_CHECKING([if the C++ compiler supports "ARG_ARGUMENT"])
|
||||
supports=yes
|
||||
|
||||
saved_cxxflags="$CXXFLAGS"
|
||||
saved_cxx="$CXX"
|
||||
CXXFLAGS="$CXXFLAG ARG_ARGUMENT"
|
||||
CXX="$ARG_PREFIX[CXX]"
|
||||
AC_LANG_PUSH([C++])
|
||||
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[int i;]])], [],
|
||||
[supports=no])
|
||||
AC_LANG_POP([C++])
|
||||
CXX="$saved_cxx"
|
||||
CXXFLAGS="$saved_cxxflags"
|
||||
|
||||
AC_MSG_RESULT([$supports])
|
||||
@@ -483,22 +458,18 @@ BASIC_DEFUN_NAMED([FLAGS_CXX_COMPILER_CHECK_ARGUMENTS],
|
||||
# ------------------------------------------------------------
|
||||
# Check that the C and C++ compilers support an argument
|
||||
BASIC_DEFUN_NAMED([FLAGS_COMPILER_CHECK_ARGUMENTS],
|
||||
[*ARGUMENT IF_TRUE IF_FALSE PREFIX], [$@],
|
||||
[*ARGUMENT IF_TRUE IF_FALSE], [$@],
|
||||
[
|
||||
FLAGS_C_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [ARG_ARGUMENT],
|
||||
IF_TRUE: [C_COMP_SUPPORTS="yes"],
|
||||
IF_FALSE: [C_COMP_SUPPORTS="no"],
|
||||
PREFIX: [ARG_PREFIX])
|
||||
IF_TRUE: [C_COMP_SUPPORTS="yes"],
|
||||
IF_FALSE: [C_COMP_SUPPORTS="no"])
|
||||
FLAGS_CXX_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [ARG_ARGUMENT],
|
||||
IF_TRUE: [CXX_COMP_SUPPORTS="yes"],
|
||||
IF_FALSE: [CXX_COMP_SUPPORTS="no"],
|
||||
PREFIX: [ARG_PREFIX])
|
||||
IF_TRUE: [CXX_COMP_SUPPORTS="yes"],
|
||||
IF_FALSE: [CXX_COMP_SUPPORTS="no"])
|
||||
|
||||
AC_MSG_CHECKING([if both ARG_PREFIX[CC] and ARG_PREFIX[CXX] support "ARG_ARGUMENT"])
|
||||
AC_MSG_CHECKING([if both compilers support "ARG_ARGUMENT"])
|
||||
supports=no
|
||||
if test "x$C_COMP_SUPPORTS" = "xyes" -a "x$CXX_COMP_SUPPORTS" = "xyes"; then
|
||||
supports=yes;
|
||||
fi
|
||||
if test "x$C_COMP_SUPPORTS" = "xyes" -a "x$CXX_COMP_SUPPORTS" = "xyes"; then supports=yes; fi
|
||||
|
||||
AC_MSG_RESULT([$supports])
|
||||
if test "x$supports" = "xyes" ; then
|
||||
|
||||