mirror of
https://github.com/JetBrains/JetBrainsRuntime.git
synced 2025-12-15 13:59:40 +01:00
Compare commits
1088 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1c42fadb25 | ||
|
|
26d93b189e | ||
|
|
4445998aeb | ||
|
|
8047330661 | ||
|
|
b695a707eb | ||
|
|
4b1ad2e7fe | ||
|
|
8fd3b86ce6 | ||
|
|
08f979c5a3 | ||
|
|
add73eca25 | ||
|
|
0b84556c32 | ||
|
|
e2f9344aa7 | ||
|
|
9ff5e36e64 | ||
|
|
6306d4a603 | ||
|
|
3ab1e63caf | ||
|
|
fbeaa8fb33 | ||
|
|
ee8b0d6e1d | ||
|
|
07c91bbd3b | ||
|
|
30564b5f80 | ||
|
|
171b12a1cb | ||
|
|
3cebc05ae8 | ||
|
|
952b2615ed | ||
|
|
d13c3629cc | ||
|
|
23fedcf940 | ||
|
|
5c962ccb98 | ||
|
|
7dd7110aca | ||
|
|
79445591f5 | ||
|
|
ad3d6aed23 | ||
|
|
8ba48b30d7 | ||
|
|
b5841511a3 | ||
|
|
cdb9263935 | ||
|
|
6d1fc9e235 | ||
|
|
612d900a12 | ||
|
|
5dda0a7aa6 | ||
|
|
f2fffcd720 | ||
|
|
f3978b9968 | ||
|
|
53532a3bf4 | ||
|
|
56e75b0566 | ||
|
|
63e1b66691 | ||
|
|
9d4d4439dc | ||
|
|
a64dbc71e6 | ||
|
|
74d232aeb3 | ||
|
|
2d56703166 | ||
|
|
4a99661c66 | ||
|
|
cfcd38f023 | ||
|
|
fa5050232e | ||
|
|
8c11fbd82d | ||
|
|
cd7d386977 | ||
|
|
9ae1ec4c3c | ||
|
|
1a0eaaee9e | ||
|
|
841ce9c38a | ||
|
|
a6a194dd39 | ||
|
|
348c14b8b8 | ||
|
|
abb786db96 | ||
|
|
bc0735befe | ||
|
|
83ea15a83e | ||
|
|
92dfd0e641 | ||
|
|
05d56b61c6 | ||
|
|
2cf4a934ba | ||
|
|
11541fdad8 | ||
|
|
a16859ab4b | ||
|
|
53e14e4b61 | ||
|
|
99075cb564 | ||
|
|
ef1683ef8c | ||
|
|
bdd41cd1a7 | ||
|
|
56669e9e09 | ||
|
|
5e661ed623 | ||
|
|
9f272ec7b9 | ||
|
|
8d1afac841 | ||
|
|
1f6f2c09c4 | ||
|
|
2ac7969c38 | ||
|
|
d4f14f8854 | ||
|
|
5b3d6e7dc6 | ||
|
|
a19b914dcb | ||
|
|
a513ce31b2 | ||
|
|
304fa73195 | ||
|
|
639400089a | ||
|
|
5765538d66 | ||
|
|
99c43ed87d | ||
|
|
32d5ea9c87 | ||
|
|
1206116021 | ||
|
|
9bb83fd912 | ||
|
|
abd6cbf3c9 | ||
|
|
e2e6419537 | ||
|
|
c349ae994f | ||
|
|
785021ee61 | ||
|
|
6f8a4d52d6 | ||
|
|
a8ef9f0b6d | ||
|
|
021f28427a | ||
|
|
84a849724e | ||
|
|
c908175dee | ||
|
|
d97685926d | ||
|
|
5f86b926c8 | ||
|
|
d7a996fa99 | ||
|
|
933144a841 | ||
|
|
9d39a22a17 | ||
|
|
318dd2f1bd | ||
|
|
b20288a66c | ||
|
|
05aa08f5b6 | ||
|
|
449a08f473 | ||
|
|
526a06e7bf | ||
|
|
189ecd876e | ||
|
|
fbab3486a5 | ||
|
|
980c398d1a | ||
|
|
0af7cc9873 | ||
|
|
37706f7594 | ||
|
|
ab508f5c4b | ||
|
|
c9ab82d08f | ||
|
|
1ecdf7e66b | ||
|
|
34210543ad | ||
|
|
0446bc02f6 | ||
|
|
702b511444 | ||
|
|
c7ae0495a3 | ||
|
|
b58027e9bc | ||
|
|
c89619366f | ||
|
|
44d7c145dd | ||
|
|
dd8bbdad1c | ||
|
|
eaf48fd944 | ||
|
|
fabcc60ba5 | ||
|
|
938e76ad59 | ||
|
|
b5de73b78c | ||
|
|
a37e124669 | ||
|
|
55e42f436c | ||
|
|
5c12616f29 | ||
|
|
20ca991114 | ||
|
|
1915e933ce | ||
|
|
cdbc468c15 | ||
|
|
7151464459 | ||
|
|
e2e187858b | ||
|
|
22ee99e1ce | ||
|
|
45ac40047b | ||
|
|
8c8fa0886f | ||
|
|
18491876fd | ||
|
|
0dac92c123 | ||
|
|
ad8f6507ac | ||
|
|
ac8349bc9c | ||
|
|
8044e5e001 | ||
|
|
11dd9f0e1e | ||
|
|
7b77b2bf3f | ||
|
|
445b14718f | ||
|
|
2a405294bf | ||
|
|
df28978170 | ||
|
|
37fa5f420b | ||
|
|
9641cf935f | ||
|
|
446b73523a | ||
|
|
0eeb76c094 | ||
|
|
a6b54194be | ||
|
|
b75f8ff512 | ||
|
|
e5b3175b10 | ||
|
|
b6793fa2fe | ||
|
|
b189165e85 | ||
|
|
99ec8924fb | ||
|
|
1a7c50da9f | ||
|
|
7a90faa7d0 | ||
|
|
168a949582 | ||
|
|
81c88d05f6 | ||
|
|
d25373ba65 | ||
|
|
4070fab5f0 | ||
|
|
d185a67394 | ||
|
|
38c44caef8 | ||
|
|
71648e5c4c | ||
|
|
a3714f45ae | ||
|
|
3329b267c6 | ||
|
|
3b8fa92f59 | ||
|
|
f652a73ebe | ||
|
|
05d233d5f6 | ||
|
|
5f64946299 | ||
|
|
f06f0c2eb2 | ||
|
|
f60c58ac91 | ||
|
|
a769e4f423 | ||
|
|
130899a342 | ||
|
|
51fbf45a15 | ||
|
|
128ea64fd5 | ||
|
|
5914be1caf | ||
|
|
33d1a0f76c | ||
|
|
76c7c50b6a | ||
|
|
1ef4bd88f0 | ||
|
|
99c3219336 | ||
|
|
90a09c2913 | ||
|
|
667b88de5d | ||
|
|
9a92bf547a | ||
|
|
7a1901ceb3 | ||
|
|
1837a36cd2 | ||
|
|
7b4f18ebf0 | ||
|
|
871ff41acf | ||
|
|
5f02471699 | ||
|
|
a9dbc65d8f | ||
|
|
2b83bed5a8 | ||
|
|
e1168e317c | ||
|
|
b553da5f0b | ||
|
|
dae28264f9 | ||
|
|
3bc2f10854 | ||
|
|
8fdb11cb77 | ||
|
|
2481d0a8e6 | ||
|
|
df73c178b2 | ||
|
|
58ca9ecac7 | ||
|
|
e19c4240c6 | ||
|
|
b26dac8d42 | ||
|
|
41a06866c0 | ||
|
|
6a089dc0b2 | ||
|
|
a161701774 | ||
|
|
f0c672e28d | ||
|
|
ef56815632 | ||
|
|
d2fe0d4496 | ||
|
|
e01837a42e | ||
|
|
cc86e4f23a | ||
|
|
72bf1b4562 | ||
|
|
5cb828436c | ||
|
|
5ff6b031f0 | ||
|
|
fb55e1e23b | ||
|
|
9e086e8405 | ||
|
|
18677037ea | ||
|
|
adfd1a5baf | ||
|
|
b47b04c9a9 | ||
|
|
1372db82a3 | ||
|
|
3827b6407d | ||
|
|
44e2809f9d | ||
|
|
1c70c14246 | ||
|
|
4b759a63c9 | ||
|
|
fc8f2d72ea | ||
|
|
3faea1a84b | ||
|
|
b7b66977c9 | ||
|
|
df173b121c | ||
|
|
77b5b80c38 | ||
|
|
1fb4e57197 | ||
|
|
9d8a402569 | ||
|
|
1bd8fe66e8 | ||
|
|
a7d131f0e6 | ||
|
|
073f68edb0 | ||
|
|
693ca15a30 | ||
|
|
c7dae0f76b | ||
|
|
1e75fb8a4c | ||
|
|
be23595d16 | ||
|
|
17fa431a15 | ||
|
|
0ea2e94b73 | ||
|
|
1f3ad5c22e | ||
|
|
75afd724cd | ||
|
|
e5a9e30d10 | ||
|
|
b710c970b2 | ||
|
|
d033368450 | ||
|
|
55a82c3289 | ||
|
|
b4af29941e | ||
|
|
ba46211b67 | ||
|
|
c62406108e | ||
|
|
7ae82c8286 | ||
|
|
df9149ec76 | ||
|
|
4390648918 | ||
|
|
3d7bae6121 | ||
|
|
79d1c4c648 | ||
|
|
3506e343bc | ||
|
|
24726d7dc6 | ||
|
|
aaedc0d821 | ||
|
|
051afbb8b7 | ||
|
|
8a95ce02a1 | ||
|
|
ed6c442762 | ||
|
|
fa600bab73 | ||
|
|
fd9ca2ec97 | ||
|
|
7784841363 | ||
|
|
5f39d4af08 | ||
|
|
16698ca913 | ||
|
|
c2f77d5943 | ||
|
|
219af25410 | ||
|
|
db3bb466be | ||
|
|
aac5370065 | ||
|
|
29ce2d49cc | ||
|
|
09675a9b9e | ||
|
|
84726c7c84 | ||
|
|
be1001f499 | ||
|
|
a62ecc6b80 | ||
|
|
bce9d36393 | ||
|
|
ec07f7e56e | ||
|
|
6aedcf778d | ||
|
|
eb91a96ff9 | ||
|
|
99d435dac0 | ||
|
|
2ee996abbc | ||
|
|
8302bd3f80 | ||
|
|
e68adefd0e | ||
|
|
be2cc5614f | ||
|
|
eef2b501bb | ||
|
|
315ff06011 | ||
|
|
266cc785b0 | ||
|
|
90c66367c4 | ||
|
|
78c0afe4f5 | ||
|
|
81602f10e6 | ||
|
|
a24b572105 | ||
|
|
69cad4eb9e | ||
|
|
7a63a54009 | ||
|
|
b3c1036696 | ||
|
|
0d992a1075 | ||
|
|
b05c0b000c | ||
|
|
3c8fedae6d | ||
|
|
5c80600323 | ||
|
|
0cc88c6189 | ||
|
|
f1dddd1402 | ||
|
|
dd1f913a6b | ||
|
|
241c900339 | ||
|
|
542c868809 | ||
|
|
d92cf744c7 | ||
|
|
a64b53548f | ||
|
|
2808c46322 | ||
|
|
78f0c0f12e | ||
|
|
88eb51b2e3 | ||
|
|
ff005b3c82 | ||
|
|
ae1c6e2721 | ||
|
|
3229e3a7c9 | ||
|
|
7a44b5eb6a | ||
|
|
e482723604 | ||
|
|
38711119a3 | ||
|
|
bc08286f7c | ||
|
|
7fbd0b7bbf | ||
|
|
da208cfd3b | ||
|
|
74a565f497 | ||
|
|
141863c6a7 | ||
|
|
f426770547 | ||
|
|
60ed456ff2 | ||
|
|
4d36e8402d | ||
|
|
66c715aff2 | ||
|
|
f9483c9624 | ||
|
|
22ab2ad28c | ||
|
|
bf2765f51f | ||
|
|
63818ace02 | ||
|
|
b403e715fe | ||
|
|
18c4329c5b | ||
|
|
c4c6188d66 | ||
|
|
807e13572d | ||
|
|
dccad6e581 | ||
|
|
765d1a4267 | ||
|
|
4d800adf77 | ||
|
|
fd5b0c16e0 | ||
|
|
133f2ea840 | ||
|
|
bf47a26bd5 | ||
|
|
66d2a2d96b | ||
|
|
9a7ffa4375 | ||
|
|
2ca85d6437 | ||
|
|
5e2e64a5e0 | ||
|
|
a846c3310a | ||
|
|
cfdb4697ee | ||
|
|
dd86f0f78e | ||
|
|
74945485e5 | ||
|
|
402c9b9d26 | ||
|
|
471a2258e3 | ||
|
|
d1080c9fb0 | ||
|
|
09a3535b44 | ||
|
|
9ee4153e1e | ||
|
|
254c24ddbf | ||
|
|
310dc08a14 | ||
|
|
08835173a1 | ||
|
|
2fbfd7c122 | ||
|
|
b7109d6dff | ||
|
|
932518d0bc | ||
|
|
fd0ea75465 | ||
|
|
52d35ff880 | ||
|
|
5777456c33 | ||
|
|
c2f75a9b3a | ||
|
|
d3675e414f | ||
|
|
08234b4ac6 | ||
|
|
7498aed8d3 | ||
|
|
79afdd64be | ||
|
|
4cce38a29c | ||
|
|
79593759a1 | ||
|
|
4a44284191 | ||
|
|
11412dbc70 | ||
|
|
88b6a8e17e | ||
|
|
fca3fbe87a | ||
|
|
ad6a7e9b20 | ||
|
|
506fbcf875 | ||
|
|
1adb036de9 | ||
|
|
870d05baa3 | ||
|
|
a6a96e7019 | ||
|
|
be21ef6b0d | ||
|
|
c41854d67d | ||
|
|
c1fef82400 | ||
|
|
9fe0b53657 | ||
|
|
5b6f4ff3fb | ||
|
|
08d1f10951 | ||
|
|
68a744c9d5 | ||
|
|
78ae98929d | ||
|
|
135c286dd8 | ||
|
|
a3f84a4922 | ||
|
|
fcadc68575 | ||
|
|
78ca759b6d | ||
|
|
0551e1969c | ||
|
|
df45e522bd | ||
|
|
8d8ed97e91 | ||
|
|
03b88d30f5 | ||
|
|
b9b2f22a34 | ||
|
|
d97276a462 | ||
|
|
ad02d532cd | ||
|
|
a1868506e6 | ||
|
|
5a4b47061e | ||
|
|
9451db44ac | ||
|
|
c34784dc93 | ||
|
|
fe6d355fd8 | ||
|
|
601c5e4ca5 | ||
|
|
f8a671912b | ||
|
|
a206e2d7fa | ||
|
|
a3cc396874 | ||
|
|
821ffa5cd8 | ||
|
|
27ff5e3cf4 | ||
|
|
06c3e02e3e | ||
|
|
8b185d7232 | ||
|
|
1cf4e2ca2d | ||
|
|
e99480d17d | ||
|
|
934f308d5b | ||
|
|
27d124d22f | ||
|
|
604a298350 | ||
|
|
32910740fb | ||
|
|
b6585c6f89 | ||
|
|
515d2da7cb | ||
|
|
9aa232b266 | ||
|
|
d5f3419495 | ||
|
|
58ff8ddb5e | ||
|
|
799efec576 | ||
|
|
831b6356ed | ||
|
|
2bb498ebc8 | ||
|
|
ff18dfb03d | ||
|
|
fc9fb83990 | ||
|
|
d5d3db289a | ||
|
|
994dec962b | ||
|
|
7f589fa99f | ||
|
|
01af7005a0 | ||
|
|
90c54a3fc1 | ||
|
|
549a467322 | ||
|
|
e5ceba75d8 | ||
|
|
de0e30386f | ||
|
|
e9d9f15178 | ||
|
|
58e3d90405 | ||
|
|
1a918b28da | ||
|
|
3ab62a3b50 | ||
|
|
4e0544e86e | ||
|
|
774156640c | ||
|
|
4b37a8ba11 | ||
|
|
cd9d7fd6e6 | ||
|
|
6466af1e8d | ||
|
|
7b2e9d0051 | ||
|
|
11aed9096e | ||
|
|
8e4d4cd331 | ||
|
|
524679411d | ||
|
|
2c1fe95d6f | ||
|
|
6d4edf3f04 | ||
|
|
0bb32a4ac5 | ||
|
|
f29f0af163 | ||
|
|
38c1546476 | ||
|
|
aea5bb7c96 | ||
|
|
6c7c661459 | ||
|
|
ee6157f40f | ||
|
|
23663f1d1d | ||
|
|
5f819d17cd | ||
|
|
5438582ff6 | ||
|
|
a963718f67 | ||
|
|
54412d4593 | ||
|
|
d956c9fbfd | ||
|
|
12721c7e83 | ||
|
|
d33a4eb42c | ||
|
|
fd8cc47e53 | ||
|
|
2ff8f319c1 | ||
|
|
1eeb9f7b73 | ||
|
|
bbec84b9c2 | ||
|
|
e00cf6bb79 | ||
|
|
f466a94036 | ||
|
|
157b869b2d | ||
|
|
f4824594fc | ||
|
|
a9fa41d862 | ||
|
|
53ff9e6be3 | ||
|
|
017c51c8cb | ||
|
|
556f0c301b | ||
|
|
6975132042 | ||
|
|
597a911cda | ||
|
|
8135f44823 | ||
|
|
50ee1e7a0a | ||
|
|
9b52164930 | ||
|
|
ab4b770a5f | ||
|
|
42ea7b173f | ||
|
|
7a4c5b8773 | ||
|
|
511de77f0f | ||
|
|
01b33b06f0 | ||
|
|
86b23c6e04 | ||
|
|
a9ae6228f6 | ||
|
|
0825a4fc27 | ||
|
|
747c0010fd | ||
|
|
a6fe2cc0c4 | ||
|
|
1050c04ae7 | ||
|
|
f4c79871fc | ||
|
|
1467e4b435 | ||
|
|
5eb46a99bd | ||
|
|
7a983d897d | ||
|
|
39a2607fe6 | ||
|
|
098add36c1 | ||
|
|
3c2a822eac | ||
|
|
13aefa8a4e | ||
|
|
a7347a95d5 | ||
|
|
8ba61f32ee | ||
|
|
5541725e72 | ||
|
|
4655a237d7 | ||
|
|
157c925030 | ||
|
|
cefb810b73 | ||
|
|
4589dc44db | ||
|
|
72785efcdc | ||
|
|
1d40158c8a | ||
|
|
e858203a4f | ||
|
|
6369f2d7f6 | ||
|
|
0ddff1234a | ||
|
|
8745a4ae2b | ||
|
|
f3fcd807dd | ||
|
|
77d4db6ffc | ||
|
|
c8fa7aa298 | ||
|
|
ca67337212 | ||
|
|
7250987848 | ||
|
|
a51aa0f266 | ||
|
|
2eea7928b2 | ||
|
|
ff867e6e11 | ||
|
|
952dd446d8 | ||
|
|
16d2d264f9 | ||
|
|
9abf4ef397 | ||
|
|
5a4335cb43 | ||
|
|
d076cbf283 | ||
|
|
181812cb85 | ||
|
|
702d8b46d2 | ||
|
|
69c063626f | ||
|
|
8e50000e6e | ||
|
|
d5474f8c6e | ||
|
|
7ce116c659 | ||
|
|
e3734a942d | ||
|
|
9b77e8b599 | ||
|
|
33d3093bf7 | ||
|
|
e478d7d634 | ||
|
|
c3932e5ac0 | ||
|
|
8589deef2c | ||
|
|
9b4323ce50 | ||
|
|
6e70ad4ea5 | ||
|
|
c0f124f2a6 | ||
|
|
abd3c30969 | ||
|
|
92b743749c | ||
|
|
e9d57062eb | ||
|
|
9fce14cd4e | ||
|
|
37770a7d43 | ||
|
|
6c81b19cc9 | ||
|
|
5c3387c78c | ||
|
|
24b43c92d9 | ||
|
|
402f8cae06 | ||
|
|
751b86bf40 | ||
|
|
8cfefb2e56 | ||
|
|
9c5e8f6fa9 | ||
|
|
002a9d2014 | ||
|
|
2cd49e2f27 | ||
|
|
7b35178518 | ||
|
|
55e34222f0 | ||
|
|
3dbdbc9859 | ||
|
|
f19398ccab | ||
|
|
e402d9f5bf | ||
|
|
329c442ed1 | ||
|
|
d803f02162 | ||
|
|
bbd68b2b84 | ||
|
|
cc6c8b595b | ||
|
|
a0dd769d56 | ||
|
|
d1466efbf6 | ||
|
|
7331633884 | ||
|
|
f9d56bdc8c | ||
|
|
7b824ee581 | ||
|
|
382dd4f516 | ||
|
|
255abd12fe | ||
|
|
57d69ce841 | ||
|
|
d365607439 | ||
|
|
7d9e9c7fff | ||
|
|
ac9dfd3e8c | ||
|
|
47202187cb | ||
|
|
f98fdd12ff | ||
|
|
4c130dd06d | ||
|
|
6553ce9056 | ||
|
|
e1c98528f5 | ||
|
|
7fb4631838 | ||
|
|
e3f3d7f2f6 | ||
|
|
8f79fe93b0 | ||
|
|
3d00e1d65a | ||
|
|
1882c46170 | ||
|
|
1fe379232c | ||
|
|
4bf42b9601 | ||
|
|
04bdad2e01 | ||
|
|
2489208171 | ||
|
|
cfe791bef4 | ||
|
|
0c569f6046 | ||
|
|
5f6372b7eb | ||
|
|
587c479b6c | ||
|
|
68e9183424 | ||
|
|
30035ef882 | ||
|
|
bf4141838e | ||
|
|
f52fbd7425 | ||
|
|
61c7792a77 | ||
|
|
59693d9b43 | ||
|
|
28cf1e5ea2 | ||
|
|
51a53b12cd | ||
|
|
a61c0693fa | ||
|
|
012529b681 | ||
|
|
2bd4bbf738 | ||
|
|
40ce2beab2 | ||
|
|
52f56fc14b | ||
|
|
16032b1aa7 | ||
|
|
cf2318c99e | ||
|
|
4ff6434286 | ||
|
|
603509c6c4 | ||
|
|
8696332e6b | ||
|
|
3dab3a5563 | ||
|
|
be0abc9fda | ||
|
|
e7453ea3f8 | ||
|
|
87de8a28db | ||
|
|
2871806442 | ||
|
|
720da6289c | ||
|
|
331fc8f9a8 | ||
|
|
694b80c461 | ||
|
|
2f13716160 | ||
|
|
e3edd61b35 | ||
|
|
f7a30dab87 | ||
|
|
cc5e08665a | ||
|
|
3abbc25d13 | ||
|
|
f210934679 | ||
|
|
af60b8e4ce | ||
|
|
10bffb49fd | ||
|
|
bc957c83b7 | ||
|
|
e8c37b471a | ||
|
|
de4ee8a18e | ||
|
|
715fb037a4 | ||
|
|
0aef341920 | ||
|
|
236ed4d152 | ||
|
|
08d028e079 | ||
|
|
d735a612d3 | ||
|
|
476f331bf5 | ||
|
|
bf33665705 | ||
|
|
6b600464d9 | ||
|
|
3911cc82b8 | ||
|
|
1cd7066c7a | ||
|
|
a8e9ae3001 | ||
|
|
0a2a54e32b | ||
|
|
b65b1f4462 | ||
|
|
ab3898117b | ||
|
|
d1e764b756 | ||
|
|
3b0cfd52bb | ||
|
|
bedb045e65 | ||
|
|
a7e772c642 | ||
|
|
a0761f2b92 | ||
|
|
d7b921fdd7 | ||
|
|
5e65503b43 | ||
|
|
32556baa8c | ||
|
|
ed846227df | ||
|
|
a6680b7afe | ||
|
|
53622442f6 | ||
|
|
cacb09924d | ||
|
|
ee4af7e41d | ||
|
|
bbb01f565f | ||
|
|
dc86126023 | ||
|
|
0d56a31d55 | ||
|
|
17b1e9dfba | ||
|
|
6457a6ca54 | ||
|
|
d99c4c0a15 | ||
|
|
d8a5f092fc | ||
|
|
865495ffa5 | ||
|
|
001a12e6c7 | ||
|
|
8227f6194f | ||
|
|
4a811bd9ff | ||
|
|
703b185681 | ||
|
|
87a34df746 | ||
|
|
e0f596a36c | ||
|
|
df13ca624b | ||
|
|
b6c9867edc | ||
|
|
ad1c20082a | ||
|
|
b5de064943 | ||
|
|
765a7cd8f1 | ||
|
|
75d5344b38 | ||
|
|
87f2941f12 | ||
|
|
89216010e1 | ||
|
|
c0d3c8d46a | ||
|
|
fd8d5079cb | ||
|
|
f6383a5c48 | ||
|
|
4e97077eb8 | ||
|
|
8539451aad | ||
|
|
32c43bcf21 | ||
|
|
b809b3d5c5 | ||
|
|
130f39aaa0 | ||
|
|
374b210d1a | ||
|
|
11c43e3674 | ||
|
|
9058205475 | ||
|
|
87b31821a5 | ||
|
|
1f76ef495f | ||
|
|
4034e228c1 | ||
|
|
6b228393cb | ||
|
|
a5eb47c390 | ||
|
|
ce6f7accb4 | ||
|
|
491c7f41a3 | ||
|
|
2a593a99fc | ||
|
|
9cbd7aebf8 | ||
|
|
d56cc65ac0 | ||
|
|
1ac9815c65 | ||
|
|
ae2d1012c3 | ||
|
|
594a6a7204 | ||
|
|
cf3a318e99 | ||
|
|
f5450688c7 | ||
|
|
63acf11359 | ||
|
|
dda57d70e5 | ||
|
|
96206931a3 | ||
|
|
07b03f9431 | ||
|
|
28fc816b58 | ||
|
|
37d910fe9a | ||
|
|
b05bbfe230 | ||
|
|
7cb87d29b0 | ||
|
|
b0b4175cd3 | ||
|
|
36e4664cfa | ||
|
|
2c8340fdfc | ||
|
|
96dafe4250 | ||
|
|
f0be8de338 | ||
|
|
048a46ae91 | ||
|
|
80a90b8016 | ||
|
|
0a4265ec1e | ||
|
|
efad45bde2 | ||
|
|
669e34115a | ||
|
|
8953af676e | ||
|
|
472665ef54 | ||
|
|
c9570e9f30 | ||
|
|
9e9144074f | ||
|
|
9e2b870bd6 | ||
|
|
9d4064b645 | ||
|
|
61106e286a | ||
|
|
66998e6d04 | ||
|
|
c3bebce2ab | ||
|
|
9e2e17e821 | ||
|
|
3d043f989e | ||
|
|
5c9f4fe999 | ||
|
|
9f9d8aa2be | ||
|
|
abd77ac848 | ||
|
|
68bd6ac6ba | ||
|
|
52b3618c02 | ||
|
|
c317490190 | ||
|
|
49ad251714 | ||
|
|
e4da677ada | ||
|
|
1ee50ffae6 | ||
|
|
70eec4f9d5 | ||
|
|
0c2b49fa77 | ||
|
|
ac21e29b8a | ||
|
|
1a4cbb4d44 | ||
|
|
732409bb1b | ||
|
|
cbec17d154 | ||
|
|
7810b9859f | ||
|
|
8b1831cb9b | ||
|
|
f71f3d9840 | ||
|
|
dcf110d54d | ||
|
|
6d20d5efc5 | ||
|
|
a448ac4631 | ||
|
|
d9e50522b2 | ||
|
|
6e3d96d23e | ||
|
|
0eedccceac | ||
|
|
3fcf126303 | ||
|
|
772013a38b | ||
|
|
c4cd60d944 | ||
|
|
05eec77cd7 | ||
|
|
f5a4db0d8c | ||
|
|
3d766876c4 | ||
|
|
ffbd7cb5cd | ||
|
|
972501a13f | ||
|
|
42ce8cadf7 | ||
|
|
0bb4c72424 | ||
|
|
225eb607c8 | ||
|
|
4d5319c58d | ||
|
|
1b1c1ab692 | ||
|
|
1f95e52874 | ||
|
|
c952d033f3 | ||
|
|
a190f5b5e6 | ||
|
|
4df6f5d567 | ||
|
|
062cd079ad | ||
|
|
ad75d0a9ce | ||
|
|
02c924015b | ||
|
|
4b41b9099c | ||
|
|
05e670d28c | ||
|
|
772b8bf25e | ||
|
|
aa99cd2a6c | ||
|
|
d094217772 | ||
|
|
7a246e95f9 | ||
|
|
3fcd6cb3b2 | ||
|
|
9999770c4c | ||
|
|
53575ed351 | ||
|
|
d0b2572978 | ||
|
|
807af44779 | ||
|
|
881ae4b648 | ||
|
|
c01a8937fa | ||
|
|
a026be18de | ||
|
|
dade5261c7 | ||
|
|
daf38924c5 | ||
|
|
e6288c811d | ||
|
|
ef849caf6d | ||
|
|
141296216f | ||
|
|
e5167bc82b | ||
|
|
9763d62fef | ||
|
|
37077d6783 | ||
|
|
32267e2419 | ||
|
|
7d599d93db | ||
|
|
e460ca2aa7 | ||
|
|
7e9cb225c7 | ||
|
|
232837f0d0 | ||
|
|
ff6edaeefc | ||
|
|
60ce309d42 | ||
|
|
2fb2f865e5 | ||
|
|
e81147479f | ||
|
|
0c1d812b13 | ||
|
|
d95bc41b1d | ||
|
|
4893dcf453 | ||
|
|
edf2b5bec0 | ||
|
|
026eb10a70 | ||
|
|
d8740a8db8 | ||
|
|
1ca51b5550 | ||
|
|
816b800e8d | ||
|
|
e6a3d2049d | ||
|
|
08a508c65c | ||
|
|
0f0f250863 | ||
|
|
adc775ff39 | ||
|
|
1715870ab4 | ||
|
|
b84611e80a | ||
|
|
fbcbbe8737 | ||
|
|
35c4821f1f | ||
|
|
8dfd461192 | ||
|
|
4705d872b6 | ||
|
|
9e59658f3c | ||
|
|
22e8fe8f18 | ||
|
|
c8a93c6d12 | ||
|
|
c4812da51d | ||
|
|
1536927a52 | ||
|
|
a06dd15a2e | ||
|
|
50396d8828 | ||
|
|
82e30f23dd | ||
|
|
1e7a24f18a | ||
|
|
fb76ebe3c0 | ||
|
|
99edf13c49 | ||
|
|
64332db081 | ||
|
|
c8f2b574a1 | ||
|
|
a2496b7789 | ||
|
|
1a06376612 | ||
|
|
5a5b560848 | ||
|
|
9dd2dc63d0 | ||
|
|
bcc185f03d | ||
|
|
73cea3db6f | ||
|
|
1604a2e155 | ||
|
|
15c63c1d44 | ||
|
|
295987f575 | ||
|
|
2eb17e84ee | ||
|
|
e1f2fcb9b0 | ||
|
|
9c825cd342 | ||
|
|
7276735ae9 | ||
|
|
b751552a44 | ||
|
|
c7ba3edf5c | ||
|
|
782d66ac81 | ||
|
|
2285dec9a3 | ||
|
|
9694dcfa60 | ||
|
|
936643d597 | ||
|
|
953168c2c5 | ||
|
|
11122fdbd9 | ||
|
|
cb067d630c | ||
|
|
c80b44f3e2 | ||
|
|
b998425799 | ||
|
|
3c84adf229 | ||
|
|
275ee98180 | ||
|
|
bcde416c6f | ||
|
|
f9dd2acc7c | ||
|
|
ab03e800e1 | ||
|
|
7849781189 | ||
|
|
838b092187 | ||
|
|
52e29fbbc0 | ||
|
|
a2a2b0a3a0 | ||
|
|
371fb39112 | ||
|
|
3a40c40cad | ||
|
|
0643b75cef | ||
|
|
0a7fa952c2 | ||
|
|
cebb748c74 | ||
|
|
c333f10a71 | ||
|
|
088310d01c | ||
|
|
a823b328ee | ||
|
|
f82e7263f2 | ||
|
|
fa834ef827 | ||
|
|
468e704169 | ||
|
|
b5e18fdc79 | ||
|
|
cd3a6a7382 | ||
|
|
7ec2b7bb89 | ||
|
|
8ab74b06a0 | ||
|
|
ce0cef5f17 | ||
|
|
f85a4d5ea1 | ||
|
|
bccb1461cd | ||
|
|
917c6c5f72 | ||
|
|
1cb63383b3 | ||
|
|
58c2a2b2a6 | ||
|
|
631e036589 | ||
|
|
4c759cad71 | ||
|
|
b3d9d51bbf | ||
|
|
d7f30094f4 | ||
|
|
4fc5ac44e2 | ||
|
|
ad213e853c | ||
|
|
753970dcf8 | ||
|
|
85782c8d25 | ||
|
|
42d8f165e0 | ||
|
|
eae198ece7 | ||
|
|
928fd9946d | ||
|
|
111107087f | ||
|
|
3a81e31c1e | ||
|
|
6e95214f1c | ||
|
|
9c570bd00c | ||
|
|
9804158fea | ||
|
|
b46b8db99d | ||
|
|
b3c768d820 | ||
|
|
346cfc609c | ||
|
|
a155ee295c | ||
|
|
0cf21e39d1 | ||
|
|
678ca2855f | ||
|
|
b91b1b9582 | ||
|
|
959fab194c | ||
|
|
3100cf30f1 | ||
|
|
f7f37d2f09 | ||
|
|
0d417c7f22 | ||
|
|
2b74d648fc | ||
|
|
44b8919210 | ||
|
|
7f7687a498 | ||
|
|
8f21d3a003 | ||
|
|
e060938f89 | ||
|
|
584c6c7110 | ||
|
|
c4ac5bf295 | ||
|
|
1be6d56107 | ||
|
|
563191dd53 | ||
|
|
860be1b25d | ||
|
|
de9c5eea79 | ||
|
|
1357a4dfe9 | ||
|
|
be853659fc | ||
|
|
34fe51a8e3 | ||
|
|
b9e5bbb5e7 | ||
|
|
2174a6654f | ||
|
|
dc90c5b60a | ||
|
|
d3a8a46285 | ||
|
|
642431926a | ||
|
|
efedf5ea00 | ||
|
|
c0992beaa5 | ||
|
|
7d8c00849b | ||
|
|
171a6ff6c1 | ||
|
|
53c3687542 | ||
|
|
7ac353b361 | ||
|
|
50abce513a | ||
|
|
5c9757f956 | ||
|
|
9d260796c5 | ||
|
|
4512e78aa0 | ||
|
|
4259007a3d | ||
|
|
2b00991759 | ||
|
|
f9415b3b83 | ||
|
|
57a919ac0d | ||
|
|
757fee57a0 | ||
|
|
3ed462eec0 | ||
|
|
c2c1475715 | ||
|
|
9b24fbc406 | ||
|
|
b008364eb4 | ||
|
|
e04157019c | ||
|
|
56ff285252 | ||
|
|
de49a789c9 | ||
|
|
b6a5e19c44 | ||
|
|
805f8ad97e | ||
|
|
837c22f0c9 | ||
|
|
9e2e68c967 | ||
|
|
11832bb5a3 | ||
|
|
769e65fd52 | ||
|
|
3fdd25986a | ||
|
|
3dae2cfb41 | ||
|
|
9fad418eca | ||
|
|
3a1d8b259a | ||
|
|
dd1544ef0f | ||
|
|
9acef5809e | ||
|
|
a85c41943a | ||
|
|
f27f0cf777 | ||
|
|
7a5f4aad7b | ||
|
|
75fea91316 | ||
|
|
d2b2818a54 | ||
|
|
a773b60bad | ||
|
|
bea7e4b84d | ||
|
|
cec89a4ded | ||
|
|
d1d9bc8097 | ||
|
|
f42e14d1dc | ||
|
|
4a2a92192d | ||
|
|
c75ec0058f | ||
|
|
3898e87602 | ||
|
|
d14d68f751 | ||
|
|
7952ed3e4a | ||
|
|
b5eef1081d | ||
|
|
f8e892a606 | ||
|
|
a89c959a0e | ||
|
|
9775831bcd | ||
|
|
37ef4eb70d | ||
|
|
0446bd7d66 | ||
|
|
10572e4247 | ||
|
|
31e5b98356 | ||
|
|
3fdd25fae7 | ||
|
|
6db8aa8ce8 | ||
|
|
615183402e | ||
|
|
91c73feede | ||
|
|
078f033e21 | ||
|
|
5c7596a8df | ||
|
|
01992f8183 | ||
|
|
62de842b10 | ||
|
|
f815d480bc | ||
|
|
0ec397f6f1 | ||
|
|
9a202b2e1c | ||
|
|
e1f19272c5 | ||
|
|
c1e67e29d6 | ||
|
|
50402131a9 | ||
|
|
545ee91111 | ||
|
|
28f4510269 | ||
|
|
7b0ac769b6 | ||
|
|
582319c511 | ||
|
|
4e3430b622 | ||
|
|
4b9962ef00 | ||
|
|
791162005b | ||
|
|
35d3a0b269 | ||
|
|
8faad0afa3 | ||
|
|
606f46a2eb | ||
|
|
e7613cb063 | ||
|
|
aeb63c59fb | ||
|
|
36dc653bf4 | ||
|
|
527fc9b40b | ||
|
|
a0fa3f15ea | ||
|
|
7cbe4a91b8 | ||
|
|
5687c21a9c | ||
|
|
65aa144ffd | ||
|
|
8f3138f3c0 | ||
|
|
f7707515b5 | ||
|
|
3d3f301793 | ||
|
|
5c7c51b637 | ||
|
|
51fd83d23e | ||
|
|
9bfece0b2a | ||
|
|
41a45cc8d6 | ||
|
|
99dd9a5949 | ||
|
|
0f3711b809 | ||
|
|
369b19bde0 | ||
|
|
8abd2ed47c | ||
|
|
516cb7d31c | ||
|
|
f8bf387e9b | ||
|
|
5c3b592b05 | ||
|
|
d0c1c5bcc0 | ||
|
|
37c2476a4d | ||
|
|
11070e0289 | ||
|
|
040c87c4ae | ||
|
|
6ed50760f4 | ||
|
|
b43144509c | ||
|
|
fd10df7a42 | ||
|
|
06c05f6dd4 | ||
|
|
0cf940b755 | ||
|
|
2c7c6722a7 | ||
|
|
d6d16ae820 | ||
|
|
3ddb181145 | ||
|
|
2a01f1d547 | ||
|
|
2854d3461b | ||
|
|
07486edbd9 | ||
|
|
2523774c7f | ||
|
|
613a30f5de | ||
|
|
e2e671f651 | ||
|
|
f0be42539a | ||
|
|
559bdf5df5 | ||
|
|
10c89b7908 | ||
|
|
861a1b5357 | ||
|
|
c2ff68d6f9 | ||
|
|
382a015b4e | ||
|
|
4288f1c60c | ||
|
|
a71c536d96 | ||
|
|
3814ccbd15 | ||
|
|
f8723a9a75 | ||
|
|
fa7361d39e | ||
|
|
bbb6add6f1 | ||
|
|
f89bd6d5a8 | ||
|
|
2c776eda5a | ||
|
|
2e9dad5134 | ||
|
|
cbb107e408 | ||
|
|
b51ac56843 | ||
|
|
c98e982848 | ||
|
|
0d161d8082 | ||
|
|
d7e44bec96 | ||
|
|
8e7c60b244 | ||
|
|
9b6525b27c | ||
|
|
6821af9434 | ||
|
|
87e1a90471 | ||
|
|
cd9207c6e1 | ||
|
|
fa80fefde4 | ||
|
|
0418b00c87 | ||
|
|
cd608be571 | ||
|
|
9f7c725cdf | ||
|
|
96dfcfad9b | ||
|
|
c4ab7e794c | ||
|
|
f3fa2cbbcf | ||
|
|
2ec77997f6 | ||
|
|
41bbbff014 | ||
|
|
384fd98545 | ||
|
|
85d69cd0b9 | ||
|
|
9b5e991466 | ||
|
|
934fdf4cba |
9
.gitattributes
vendored
9
.gitattributes
vendored
@@ -1,10 +1 @@
|
|||||||
* -text
|
* -text
|
||||||
*.java diff=java
|
|
||||||
*.c diff=cpp
|
|
||||||
*.h diff=cpp
|
|
||||||
*.cpp diff=cpp
|
|
||||||
*.hpp diff=cpp
|
|
||||||
*.md diff=markdown
|
|
||||||
*.sh diff=bash
|
|
||||||
*.html diff=html
|
|
||||||
*.css diff=css
|
|
||||||
|
|||||||
6
.github/actions/get-bootjdk/action.yml
vendored
6
.github/actions/get-bootjdk/action.yml
vendored
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2022, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -104,6 +104,6 @@ runs:
|
|||||||
- name: 'Export path to where BootJDK is installed'
|
- name: 'Export path to where BootJDK is installed'
|
||||||
id: path-name
|
id: path-name
|
||||||
run: |
|
run: |
|
||||||
# Export the absolute path
|
# Export the path
|
||||||
echo "path=`pwd`/bootjdk/jdk" >> $GITHUB_OUTPUT
|
echo 'path=bootjdk/jdk' >> $GITHUB_OUTPUT
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|||||||
2
.github/actions/get-gtest/action.yml
vendored
2
.github/actions/get-gtest/action.yml
vendored
@@ -40,7 +40,7 @@ runs:
|
|||||||
var: GTEST_VERSION
|
var: GTEST_VERSION
|
||||||
|
|
||||||
- name: 'Checkout GTest source'
|
- name: 'Checkout GTest source'
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
repository: google/googletest
|
repository: google/googletest
|
||||||
ref: 'v${{ steps.version.outputs.value }}'
|
ref: 'v${{ steps.version.outputs.value }}'
|
||||||
|
|||||||
6
.github/actions/get-jtreg/action.yml
vendored
6
.github/actions/get-jtreg/action.yml
vendored
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -47,7 +47,7 @@ runs:
|
|||||||
key: jtreg-${{ steps.version.outputs.value }}
|
key: jtreg-${{ steps.version.outputs.value }}
|
||||||
|
|
||||||
- name: 'Checkout the JTReg source'
|
- name: 'Checkout the JTReg source'
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
repository: openjdk/jtreg
|
repository: openjdk/jtreg
|
||||||
ref: jtreg-${{ steps.version.outputs.value }}
|
ref: jtreg-${{ steps.version.outputs.value }}
|
||||||
@@ -57,7 +57,7 @@ runs:
|
|||||||
- name: 'Build JTReg'
|
- name: 'Build JTReg'
|
||||||
run: |
|
run: |
|
||||||
# Build JTReg and move files to the proper locations
|
# Build JTReg and move files to the proper locations
|
||||||
bash make/build.sh --jdk "$JAVA_HOME_17_X64"
|
bash make/build.sh --jdk "$JAVA_HOME_11_X64"
|
||||||
mkdir ../installed
|
mkdir ../installed
|
||||||
mv build/images/jtreg/* ../installed
|
mv build/images/jtreg/* ../installed
|
||||||
working-directory: jtreg/src
|
working-directory: jtreg/src
|
||||||
|
|||||||
5
.github/actions/get-msys2/action.yml
vendored
5
.github/actions/get-msys2/action.yml
vendored
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2022, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -30,8 +30,7 @@ runs:
|
|||||||
using: composite
|
using: composite
|
||||||
steps:
|
steps:
|
||||||
- name: 'Install MSYS2'
|
- name: 'Install MSYS2'
|
||||||
# use a specific release of msys2/setup-msys2 to prevent jtreg build failures on newer release
|
uses: msys2/setup-msys2@v2
|
||||||
uses: msys2/setup-msys2@7efe20baefed56359985e327d329042cde2434ff
|
|
||||||
with:
|
with:
|
||||||
install: 'autoconf tar unzip zip make'
|
install: 'autoconf tar unzip zip make'
|
||||||
path-type: minimal
|
path-type: minimal
|
||||||
|
|||||||
18
.github/scripts/gen-test-results.sh
vendored
18
.github/scripts/gen-test-results.sh
vendored
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
#
|
#
|
||||||
# Copyright (c) 2022, 2024, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -44,8 +44,8 @@ for test in $failures $errors; do
|
|||||||
base_path="$(echo "$test" | tr '#' '_')"
|
base_path="$(echo "$test" | tr '#' '_')"
|
||||||
report_file="$report_dir/$base_path.jtr"
|
report_file="$report_dir/$base_path.jtr"
|
||||||
hs_err_files=$(ls $report_dir/$base_path/hs_err*.log 2> /dev/null || true)
|
hs_err_files=$(ls $report_dir/$base_path/hs_err*.log 2> /dev/null || true)
|
||||||
replay_files=$(ls $report_dir/$base_path/replay*.log 2> /dev/null || true)
|
|
||||||
echo "#### <a id="$anchor">$test"
|
echo "#### <a id="$anchor">$test"
|
||||||
|
|
||||||
echo '<details><summary>View test results</summary>'
|
echo '<details><summary>View test results</summary>'
|
||||||
echo ''
|
echo ''
|
||||||
echo '```'
|
echo '```'
|
||||||
@@ -73,20 +73,6 @@ for test in $failures $errors; do
|
|||||||
echo ''
|
echo ''
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "$replay_files" != "" ]]; then
|
|
||||||
echo '<details><summary>View HotSpot replay file</summary>'
|
|
||||||
echo ''
|
|
||||||
for replay in $replay_files; do
|
|
||||||
echo '```'
|
|
||||||
echo "$replay:"
|
|
||||||
echo ''
|
|
||||||
cat "$replay"
|
|
||||||
echo '```'
|
|
||||||
done
|
|
||||||
|
|
||||||
echo '</details>'
|
|
||||||
echo ''
|
|
||||||
fi
|
|
||||||
done >> $GITHUB_STEP_SUMMARY
|
done >> $GITHUB_STEP_SUMMARY
|
||||||
|
|
||||||
# With many failures, the summary can easily exceed 1024 kB, the limit set by Github
|
# With many failures, the summary can easily exceed 1024 kB, the limit set by Github
|
||||||
|
|||||||
36
.github/workflows/build-cross-compile.yml
vendored
36
.github/workflows/build-cross-compile.yml
vendored
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2022, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -31,6 +31,12 @@ on:
|
|||||||
gcc-major-version:
|
gcc-major-version:
|
||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
|
apt-gcc-version:
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
apt-gcc-cross-version:
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
extra-conf-options:
|
extra-conf-options:
|
||||||
required: false
|
required: false
|
||||||
type: string
|
type: string
|
||||||
@@ -80,12 +86,13 @@ jobs:
|
|||||||
- target-cpu: riscv64
|
- target-cpu: riscv64
|
||||||
gnu-arch: riscv64
|
gnu-arch: riscv64
|
||||||
debian-arch: riscv64
|
debian-arch: riscv64
|
||||||
debian-repository: https://httpredir.debian.org/debian/
|
debian-repository: https://deb.debian.org/debian-ports
|
||||||
|
debian-keyring: /usr/share/keyrings/debian-ports-archive-keyring.gpg
|
||||||
debian-version: sid
|
debian-version: sid
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: 'Checkout the JDK source'
|
- name: 'Checkout the JDK source'
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: 'Get the BootJDK'
|
- name: 'Get the BootJDK'
|
||||||
id: bootjdk
|
id: bootjdk
|
||||||
@@ -100,10 +107,6 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
platform: linux-x64
|
platform: linux-x64
|
||||||
|
|
||||||
- name: 'Get GTest'
|
|
||||||
id: gtest
|
|
||||||
uses: ./.github/actions/get-gtest
|
|
||||||
|
|
||||||
# Upgrading apt to solve libc6 installation bugs, see JDK-8260460.
|
# Upgrading apt to solve libc6 installation bugs, see JDK-8260460.
|
||||||
- name: 'Install toolchain and dependencies'
|
- name: 'Install toolchain and dependencies'
|
||||||
run: |
|
run: |
|
||||||
@@ -111,11 +114,12 @@ jobs:
|
|||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install --only-upgrade apt
|
sudo apt-get install --only-upgrade apt
|
||||||
sudo apt-get install \
|
sudo apt-get install \
|
||||||
gcc-${{ inputs.gcc-major-version }} \
|
gcc-${{ inputs.gcc-major-version }}=${{ inputs.apt-gcc-version }} \
|
||||||
g++-${{ inputs.gcc-major-version }} \
|
g++-${{ inputs.gcc-major-version }}=${{ inputs.apt-gcc-version }} \
|
||||||
gcc-${{ inputs.gcc-major-version }}-${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-abi}} \
|
gcc-${{ inputs.gcc-major-version }}-${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-abi}}=${{ inputs.apt-gcc-cross-version }} \
|
||||||
g++-${{ inputs.gcc-major-version }}-${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-abi}} \
|
g++-${{ inputs.gcc-major-version }}-${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-abi}}=${{ inputs.apt-gcc-cross-version }} \
|
||||||
libxrandr-dev libxtst-dev libcups2-dev libasound2-dev
|
libxrandr-dev libxtst-dev libcups2-dev libasound2-dev \
|
||||||
|
debian-ports-archive-keyring
|
||||||
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-${{ inputs.gcc-major-version }} 100 --slave /usr/bin/g++ g++ /usr/bin/g++-${{ inputs.gcc-major-version }}
|
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-${{ inputs.gcc-major-version }} 100 --slave /usr/bin/g++ g++ /usr/bin/g++-${{ inputs.gcc-major-version }}
|
||||||
|
|
||||||
- name: 'Check cache for sysroot'
|
- name: 'Check cache for sysroot'
|
||||||
@@ -134,9 +138,9 @@ jobs:
|
|||||||
sudo debootstrap
|
sudo debootstrap
|
||||||
--arch=${{ matrix.debian-arch }}
|
--arch=${{ matrix.debian-arch }}
|
||||||
--verbose
|
--verbose
|
||||||
--include=fakeroot,symlinks,build-essential,libx11-dev,libxext-dev,libxrender-dev,libxrandr-dev,libxtst-dev,libxt-dev,libcups2-dev,libfontconfig1-dev,libasound2-dev,libfreetype-dev,libpng-dev
|
--include=fakeroot,symlinks,build-essential,libx11-dev,libxext-dev,libxrender-dev,libxrandr-dev,libxtst-dev,libxt-dev,libcups2-dev,libfontconfig1-dev,libasound2-dev,libfreetype6-dev,libpng-dev
|
||||||
--resolve-deps
|
--resolve-deps
|
||||||
--variant=minbase
|
$(test -n "${{ matrix.debian-keyring }}" && echo "--keyring=${{ matrix.debian-keyring }}")
|
||||||
${{ matrix.debian-version }}
|
${{ matrix.debian-version }}
|
||||||
sysroot
|
sysroot
|
||||||
${{ matrix.debian-repository }}
|
${{ matrix.debian-repository }}
|
||||||
@@ -149,8 +153,7 @@ jobs:
|
|||||||
sudo chown ${USER} -R sysroot
|
sudo chown ${USER} -R sysroot
|
||||||
rm -rf sysroot/{dev,proc,run,sys,var}
|
rm -rf sysroot/{dev,proc,run,sys,var}
|
||||||
rm -rf sysroot/usr/{sbin,bin,share}
|
rm -rf sysroot/usr/{sbin,bin,share}
|
||||||
rm -rf sysroot/usr/lib/{apt,gcc,udev,systemd}
|
rm -rf sysroot/usr/lib/{apt,udev,systemd}
|
||||||
rm -rf sysroot/usr/libexec/gcc
|
|
||||||
if: steps.get-cached-sysroot.outputs.cache-hit != 'true'
|
if: steps.get-cached-sysroot.outputs.cache-hit != 'true'
|
||||||
|
|
||||||
- name: 'Configure'
|
- name: 'Configure'
|
||||||
@@ -159,7 +162,6 @@ jobs:
|
|||||||
--with-conf-name=linux-${{ matrix.target-cpu }}
|
--with-conf-name=linux-${{ matrix.target-cpu }}
|
||||||
--with-version-opt=${GITHUB_ACTOR}-${GITHUB_SHA}
|
--with-version-opt=${GITHUB_ACTOR}-${GITHUB_SHA}
|
||||||
--with-boot-jdk=${{ steps.bootjdk.outputs.path }}
|
--with-boot-jdk=${{ steps.bootjdk.outputs.path }}
|
||||||
--with-gtest=${{ steps.gtest.outputs.path }}
|
|
||||||
--with-zlib=system
|
--with-zlib=system
|
||||||
--enable-debug
|
--enable-debug
|
||||||
--disable-precompiled-headers
|
--disable-precompiled-headers
|
||||||
|
|||||||
7
.github/workflows/build-linux.yml
vendored
7
.github/workflows/build-linux.yml
vendored
@@ -49,6 +49,9 @@ on:
|
|||||||
required: false
|
required: false
|
||||||
type: string
|
type: string
|
||||||
default: ''
|
default: ''
|
||||||
|
apt-gcc-version:
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
apt-architecture:
|
apt-architecture:
|
||||||
required: false
|
required: false
|
||||||
type: string
|
type: string
|
||||||
@@ -78,7 +81,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: 'Checkout the JDK source'
|
- name: 'Checkout the JDK source'
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: 'Get the BootJDK'
|
- name: 'Get the BootJDK'
|
||||||
id: bootjdk
|
id: bootjdk
|
||||||
@@ -111,7 +114,7 @@ jobs:
|
|||||||
fi
|
fi
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install --only-upgrade apt
|
sudo apt-get install --only-upgrade apt
|
||||||
sudo apt-get install gcc-${{ inputs.gcc-major-version }}${{ inputs.gcc-package-suffix }} g++-${{ inputs.gcc-major-version }}${{ inputs.gcc-package-suffix }} libxrandr-dev${{ steps.arch.outputs.suffix }} libxtst-dev${{ steps.arch.outputs.suffix }} libcups2-dev${{ steps.arch.outputs.suffix }} libasound2-dev${{ steps.arch.outputs.suffix }} ${{ inputs.apt-extra-packages }}
|
sudo apt-get install gcc-${{ inputs.gcc-major-version }}${{ inputs.gcc-package-suffix }}=${{ inputs.apt-gcc-version }} g++-${{ inputs.gcc-major-version }}${{ inputs.gcc-package-suffix }}=${{ inputs.apt-gcc-version }} libxrandr-dev${{ steps.arch.outputs.suffix }} libxtst-dev${{ steps.arch.outputs.suffix }} libcups2-dev${{ steps.arch.outputs.suffix }} libasound2-dev${{ steps.arch.outputs.suffix }} ${{ inputs.apt-extra-packages }}
|
||||||
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-${{ inputs.gcc-major-version }} 100 --slave /usr/bin/g++ g++ /usr/bin/g++-${{ inputs.gcc-major-version }}
|
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-${{ inputs.gcc-major-version }} 100 --slave /usr/bin/g++ g++ /usr/bin/g++-${{ inputs.gcc-major-version }}
|
||||||
|
|
||||||
- name: 'Configure'
|
- name: 'Configure'
|
||||||
|
|||||||
4
.github/workflows/build-macos.yml
vendored
4
.github/workflows/build-macos.yml
vendored
@@ -55,7 +55,7 @@ on:
|
|||||||
jobs:
|
jobs:
|
||||||
build-macos:
|
build-macos:
|
||||||
name: build
|
name: build
|
||||||
runs-on: macos-13
|
runs-on: macos-11
|
||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
@@ -68,7 +68,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: 'Checkout the JDK source'
|
- name: 'Checkout the JDK source'
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: 'Get the BootJDK'
|
- name: 'Get the BootJDK'
|
||||||
id: bootjdk
|
id: bootjdk
|
||||||
|
|||||||
18
.github/workflows/build-windows.yml
vendored
18
.github/workflows/build-windows.yml
vendored
@@ -79,7 +79,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: 'Checkout the JDK source'
|
- name: 'Checkout the JDK source'
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: 'Get MSYS2'
|
- name: 'Get MSYS2'
|
||||||
uses: ./.github/actions/get-msys2
|
uses: ./.github/actions/get-msys2
|
||||||
@@ -98,26 +98,12 @@ jobs:
|
|||||||
id: gtest
|
id: gtest
|
||||||
uses: ./.github/actions/get-gtest
|
uses: ./.github/actions/get-gtest
|
||||||
|
|
||||||
- name: 'Check toolchain installed'
|
|
||||||
id: toolchain-check
|
|
||||||
run: |
|
|
||||||
set +e
|
|
||||||
'/c/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/vc/auxiliary/build/vcvars64.bat' -vcvars_ver=${{ inputs.msvc-toolset-version }}
|
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
echo "Toolchain is already installed"
|
|
||||||
echo "toolchain-installed=true" >> $GITHUB_OUTPUT
|
|
||||||
else
|
|
||||||
echo "Toolchain is not yet installed"
|
|
||||||
echo "toolchain-installed=false" >> $GITHUB_OUTPUT
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: 'Install toolchain and dependencies'
|
- name: 'Install toolchain and dependencies'
|
||||||
run: |
|
run: |
|
||||||
# Run Visual Studio Installer
|
# Run Visual Studio Installer
|
||||||
'/c/Program Files (x86)/Microsoft Visual Studio/Installer/vs_installer.exe' \
|
'/c/Program Files (x86)/Microsoft Visual Studio/Installer/vs_installer.exe' \
|
||||||
modify --quiet --installPath 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise' \
|
modify --quiet --installPath 'C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise' \
|
||||||
--add Microsoft.VisualStudio.Component.VC.${{ inputs.msvc-toolset-version }}.${{ inputs.msvc-toolset-architecture }}
|
--add Microsoft.VisualStudio.Component.VC.${{ inputs.msvc-toolset-version }}.${{ inputs.msvc-toolset-architecture }}
|
||||||
if: steps.toolchain-check.outputs.toolchain-installed != 'true'
|
|
||||||
|
|
||||||
- name: 'Configure'
|
- name: 'Configure'
|
||||||
run: >
|
run: >
|
||||||
|
|||||||
29
.github/workflows/main.yml
vendored
29
.github/workflows/main.yml
vendored
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2022, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -26,11 +26,6 @@
|
|||||||
name: 'OpenJDK GHA Sanity Checks'
|
name: 'OpenJDK GHA Sanity Checks'
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
|
||||||
branches-ignore:
|
|
||||||
- master
|
|
||||||
- pr/*
|
|
||||||
- jdk*
|
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
inputs:
|
inputs:
|
||||||
platforms:
|
platforms:
|
||||||
@@ -60,7 +55,8 @@ jobs:
|
|||||||
outputs:
|
outputs:
|
||||||
linux-x64: ${{ steps.include.outputs.linux-x64 }}
|
linux-x64: ${{ steps.include.outputs.linux-x64 }}
|
||||||
linux-x86: ${{ steps.include.outputs.linux-x86 }}
|
linux-x86: ${{ steps.include.outputs.linux-x86 }}
|
||||||
linux-x64-variants: ${{ steps.include.outputs.linux-x64-variants }}
|
# additional build options for linux-x64 are disabled
|
||||||
|
# linux-x64-variants: ${{ steps.include.outputs.linux-x64-variants }}
|
||||||
linux-cross-compile: ${{ steps.include.outputs.linux-cross-compile }}
|
linux-cross-compile: ${{ steps.include.outputs.linux-cross-compile }}
|
||||||
macos-x64: ${{ steps.include.outputs.macos-x64 }}
|
macos-x64: ${{ steps.include.outputs.macos-x64 }}
|
||||||
macos-aarch64: ${{ steps.include.outputs.macos-aarch64 }}
|
macos-aarch64: ${{ steps.include.outputs.macos-aarch64 }}
|
||||||
@@ -131,6 +127,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
platform: linux-x64
|
platform: linux-x64
|
||||||
gcc-major-version: '10'
|
gcc-major-version: '10'
|
||||||
|
apt-gcc-version: '10.4.0-4ubuntu1~22.04'
|
||||||
configure-arguments: ${{ github.event.inputs.configure-arguments }}
|
configure-arguments: ${{ github.event.inputs.configure-arguments }}
|
||||||
make-arguments: ${{ github.event.inputs.make-arguments }}
|
make-arguments: ${{ github.event.inputs.make-arguments }}
|
||||||
# The linux-x64 jdk bundle is used as buildjdk for the cross-compile job
|
# The linux-x64 jdk bundle is used as buildjdk for the cross-compile job
|
||||||
@@ -144,11 +141,12 @@ jobs:
|
|||||||
platform: linux-x86
|
platform: linux-x86
|
||||||
gcc-major-version: '10'
|
gcc-major-version: '10'
|
||||||
gcc-package-suffix: '-multilib'
|
gcc-package-suffix: '-multilib'
|
||||||
|
apt-gcc-version: '10.4.0-4ubuntu1~22.04'
|
||||||
apt-architecture: 'i386'
|
apt-architecture: 'i386'
|
||||||
# Some multilib libraries do not have proper inter-dependencies, so we have to
|
# Some multilib libraries do not have proper inter-dependencies, so we have to
|
||||||
# install their dependencies manually.
|
# install their dependencies manually.
|
||||||
apt-extra-packages: 'libfreetype-dev:i386 libtiff-dev:i386 libcupsimage2-dev:i386 libc6-i386 libgcc-s1:i386 libstdc++6:i386 libffi-dev:i386'
|
apt-extra-packages: 'libfreetype6-dev:i386 libtiff-dev:i386 libcupsimage2-dev:i386 libc6-i386'
|
||||||
extra-conf-options: '--with-target-bits=32 --enable-fallback-linker --enable-libffi-bundling'
|
extra-conf-options: '--with-target-bits=32'
|
||||||
configure-arguments: ${{ github.event.inputs.configure-arguments }}
|
configure-arguments: ${{ github.event.inputs.configure-arguments }}
|
||||||
make-arguments: ${{ github.event.inputs.make-arguments }}
|
make-arguments: ${{ github.event.inputs.make-arguments }}
|
||||||
if: needs.select.outputs.linux-x86 == 'true'
|
if: needs.select.outputs.linux-x86 == 'true'
|
||||||
@@ -162,6 +160,7 @@ jobs:
|
|||||||
make-target: 'hotspot'
|
make-target: 'hotspot'
|
||||||
debug-levels: '[ "debug" ]'
|
debug-levels: '[ "debug" ]'
|
||||||
gcc-major-version: '10'
|
gcc-major-version: '10'
|
||||||
|
apt-gcc-version: '10.4.0-4ubuntu1~22.04'
|
||||||
extra-conf-options: '--disable-precompiled-headers'
|
extra-conf-options: '--disable-precompiled-headers'
|
||||||
configure-arguments: ${{ github.event.inputs.configure-arguments }}
|
configure-arguments: ${{ github.event.inputs.configure-arguments }}
|
||||||
make-arguments: ${{ github.event.inputs.make-arguments }}
|
make-arguments: ${{ github.event.inputs.make-arguments }}
|
||||||
@@ -176,6 +175,7 @@ jobs:
|
|||||||
make-target: 'hotspot'
|
make-target: 'hotspot'
|
||||||
debug-levels: '[ "debug" ]'
|
debug-levels: '[ "debug" ]'
|
||||||
gcc-major-version: '10'
|
gcc-major-version: '10'
|
||||||
|
apt-gcc-version: '10.4.0-4ubuntu1~22.04'
|
||||||
extra-conf-options: '--with-jvm-variants=zero --disable-precompiled-headers'
|
extra-conf-options: '--with-jvm-variants=zero --disable-precompiled-headers'
|
||||||
configure-arguments: ${{ github.event.inputs.configure-arguments }}
|
configure-arguments: ${{ github.event.inputs.configure-arguments }}
|
||||||
make-arguments: ${{ github.event.inputs.make-arguments }}
|
make-arguments: ${{ github.event.inputs.make-arguments }}
|
||||||
@@ -190,6 +190,7 @@ jobs:
|
|||||||
make-target: 'hotspot'
|
make-target: 'hotspot'
|
||||||
debug-levels: '[ "debug" ]'
|
debug-levels: '[ "debug" ]'
|
||||||
gcc-major-version: '10'
|
gcc-major-version: '10'
|
||||||
|
apt-gcc-version: '10.4.0-4ubuntu1~22.04'
|
||||||
extra-conf-options: '--with-jvm-variants=minimal --disable-precompiled-headers'
|
extra-conf-options: '--with-jvm-variants=minimal --disable-precompiled-headers'
|
||||||
configure-arguments: ${{ github.event.inputs.configure-arguments }}
|
configure-arguments: ${{ github.event.inputs.configure-arguments }}
|
||||||
make-arguments: ${{ github.event.inputs.make-arguments }}
|
make-arguments: ${{ github.event.inputs.make-arguments }}
|
||||||
@@ -205,6 +206,7 @@ jobs:
|
|||||||
# Technically this is not the "debug" level, but we can't inject a new matrix state for just this job
|
# Technically this is not the "debug" level, but we can't inject a new matrix state for just this job
|
||||||
debug-levels: '[ "debug" ]'
|
debug-levels: '[ "debug" ]'
|
||||||
gcc-major-version: '10'
|
gcc-major-version: '10'
|
||||||
|
apt-gcc-version: '10.4.0-4ubuntu1~22.04'
|
||||||
extra-conf-options: '--with-debug-level=optimized --disable-precompiled-headers'
|
extra-conf-options: '--with-debug-level=optimized --disable-precompiled-headers'
|
||||||
configure-arguments: ${{ github.event.inputs.configure-arguments }}
|
configure-arguments: ${{ github.event.inputs.configure-arguments }}
|
||||||
make-arguments: ${{ github.event.inputs.make-arguments }}
|
make-arguments: ${{ github.event.inputs.make-arguments }}
|
||||||
@@ -218,6 +220,8 @@ jobs:
|
|||||||
uses: ./.github/workflows/build-cross-compile.yml
|
uses: ./.github/workflows/build-cross-compile.yml
|
||||||
with:
|
with:
|
||||||
gcc-major-version: '10'
|
gcc-major-version: '10'
|
||||||
|
apt-gcc-version: '10.4.0-4ubuntu1~22.04'
|
||||||
|
apt-gcc-cross-version: '10.4.0-4ubuntu1~22.04cross1'
|
||||||
configure-arguments: ${{ github.event.inputs.configure-arguments }}
|
configure-arguments: ${{ github.event.inputs.configure-arguments }}
|
||||||
make-arguments: ${{ github.event.inputs.make-arguments }}
|
make-arguments: ${{ github.event.inputs.make-arguments }}
|
||||||
if: needs.select.outputs.linux-cross-compile == 'true'
|
if: needs.select.outputs.linux-cross-compile == 'true'
|
||||||
@@ -228,7 +232,7 @@ jobs:
|
|||||||
uses: ./.github/workflows/build-macos.yml
|
uses: ./.github/workflows/build-macos.yml
|
||||||
with:
|
with:
|
||||||
platform: macos-x64
|
platform: macos-x64
|
||||||
xcode-toolset-version: '14.3.1'
|
xcode-toolset-version: '12.5.1'
|
||||||
configure-arguments: ${{ github.event.inputs.configure-arguments }}
|
configure-arguments: ${{ github.event.inputs.configure-arguments }}
|
||||||
make-arguments: ${{ github.event.inputs.make-arguments }}
|
make-arguments: ${{ github.event.inputs.make-arguments }}
|
||||||
if: needs.select.outputs.macos-x64 == 'true'
|
if: needs.select.outputs.macos-x64 == 'true'
|
||||||
@@ -239,7 +243,7 @@ jobs:
|
|||||||
uses: ./.github/workflows/build-macos.yml
|
uses: ./.github/workflows/build-macos.yml
|
||||||
with:
|
with:
|
||||||
platform: macos-aarch64
|
platform: macos-aarch64
|
||||||
xcode-toolset-version: '14.3.1'
|
xcode-toolset-version: '12.5.1'
|
||||||
extra-conf-options: '--openjdk-target=aarch64-apple-darwin'
|
extra-conf-options: '--openjdk-target=aarch64-apple-darwin'
|
||||||
configure-arguments: ${{ github.event.inputs.configure-arguments }}
|
configure-arguments: ${{ github.event.inputs.configure-arguments }}
|
||||||
make-arguments: ${{ github.event.inputs.make-arguments }}
|
make-arguments: ${{ github.event.inputs.make-arguments }}
|
||||||
@@ -283,6 +287,7 @@ jobs:
|
|||||||
# build JDK, and we do not need the additional testing of the graphs.
|
# build JDK, and we do not need the additional testing of the graphs.
|
||||||
extra-conf-options: '--disable-full-docs'
|
extra-conf-options: '--disable-full-docs'
|
||||||
gcc-major-version: '10'
|
gcc-major-version: '10'
|
||||||
|
apt-gcc-version: '10.4.0-4ubuntu1~22.04'
|
||||||
configure-arguments: ${{ github.event.inputs.configure-arguments }}
|
configure-arguments: ${{ github.event.inputs.configure-arguments }}
|
||||||
make-arguments: ${{ github.event.inputs.make-arguments }}
|
make-arguments: ${{ github.event.inputs.make-arguments }}
|
||||||
if: needs.select.outputs.docs == 'true'
|
if: needs.select.outputs.docs == 'true'
|
||||||
@@ -319,7 +324,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
platform: macos-x64
|
platform: macos-x64
|
||||||
bootjdk-platform: macos-x64
|
bootjdk-platform: macos-x64
|
||||||
runs-on: macos-13
|
runs-on: macos-11
|
||||||
|
|
||||||
test-windows-x64:
|
test-windows-x64:
|
||||||
name: windows-x64
|
name: windows-x64
|
||||||
|
|||||||
270
.github/workflows/pr.yml
vendored
Normal file
270
.github/workflows/pr.yml
vendored
Normal file
@@ -0,0 +1,270 @@
|
|||||||
|
#
|
||||||
|
# Copyright 2000-2023 JetBrains s.r.o.
|
||||||
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
|
#
|
||||||
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
|
# under the terms of the GNU General Public License version 2 only, as
|
||||||
|
# published by the Free Software Foundation. Oracle designates this
|
||||||
|
# particular file as subject to the "Classpath" exception as provided
|
||||||
|
# by Oracle in the LICENSE file that accompanied this code.
|
||||||
|
#
|
||||||
|
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
# version 2 for more details (a copy is included in the LICENSE file that
|
||||||
|
# accompanied this code).
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License version
|
||||||
|
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||||
|
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
#
|
||||||
|
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||||
|
# or visit www.oracle.com if you need additional information or have any
|
||||||
|
# questions.
|
||||||
|
#
|
||||||
|
|
||||||
|
name: 'Build OpenJDK on pull request'
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.ref }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
###
|
||||||
|
### Determine platforms to include
|
||||||
|
###
|
||||||
|
select:
|
||||||
|
name: 'Select platforms'
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
|
outputs:
|
||||||
|
linux-x64: ${{ steps.include.outputs.linux-x64 }}
|
||||||
|
linux-x86: ${{ steps.include.outputs.linux-x86 }}
|
||||||
|
linux-cross-compile: ${{ steps.include.outputs.linux-cross-compile }}
|
||||||
|
macos-x64: ${{ steps.include.outputs.macos-x64 }}
|
||||||
|
macos-aarch64: ${{ steps.include.outputs.macos-aarch64 }}
|
||||||
|
windows-x64: ${{ steps.include.outputs.windows-x64 }}
|
||||||
|
windows-aarch64: ${{ steps.include.outputs.windows-aarch64 }}
|
||||||
|
windows-x86: ${{ steps.include.outputs.windows-x86 }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
# This function must be inlined in main.yml, or we'd be forced to checkout the repo
|
||||||
|
- name: 'Check what jobs to run'
|
||||||
|
id: include
|
||||||
|
run: |
|
||||||
|
# Determine which platform jobs to run
|
||||||
|
|
||||||
|
# Returns 'true' if the input platform list matches any of the platform monikers given as argument,
|
||||||
|
# 'false' otherwise.
|
||||||
|
# arg $1: platform name or names to look for
|
||||||
|
function check_platform() {
|
||||||
|
if [[ $GITHUB_EVENT_NAME == workflow_dispatch ]]; then
|
||||||
|
input='${{ github.event.inputs.platforms }}'
|
||||||
|
elif [[ $GITHUB_EVENT_NAME == push ]]; then
|
||||||
|
if [[ '${{ !secrets.JDK_SUBMIT_FILTER || startsWith(github.ref, 'refs/heads/submit/') }}' == 'false' ]]; then
|
||||||
|
# If JDK_SUBMIT_FILTER is set, and this is not a "submit/" branch, don't run anything
|
||||||
|
>&2 echo 'JDK_SUBMIT_FILTER is set and not a "submit/" branch'
|
||||||
|
echo 'false'
|
||||||
|
return
|
||||||
|
else
|
||||||
|
input='${{ secrets.JDK_SUBMIT_PLATFORMS }}'
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
normalized_input="$(echo ,$input, | tr -d ' ')"
|
||||||
|
if [[ "$normalized_input" == ",," ]]; then
|
||||||
|
# For an empty input, assume all platforms should run
|
||||||
|
echo 'true'
|
||||||
|
return
|
||||||
|
else
|
||||||
|
# Check for all acceptable platform names
|
||||||
|
for part in $* ; do
|
||||||
|
if echo "$normalized_input" | grep -q -e ",$part," ; then
|
||||||
|
echo 'true'
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo 'false'
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "linux-x64=$(check_platform linux-x64 linux x64)" >> $GITHUB_OUTPUT
|
||||||
|
echo "linux-x86=$(check_platform linux-x86 linux x86)" >> $GITHUB_OUTPUT
|
||||||
|
echo "linux-x64-variants=$(check_platform linux-x64-variants variants)" >> $GITHUB_OUTPUT
|
||||||
|
echo "linux-cross-compile=$(check_platform linux-cross-compile cross-compile)" >> $GITHUB_OUTPUT
|
||||||
|
echo "macos-x64=$(check_platform macos-x64 macos x64)" >> $GITHUB_OUTPUT
|
||||||
|
echo "macos-aarch64=$(check_platform macos-aarch64 macos aarch64)" >> $GITHUB_OUTPUT
|
||||||
|
echo "windows-x64=$(check_platform windows-x64 windows x64)" >> $GITHUB_OUTPUT
|
||||||
|
echo "windows-x86=$(check_platform windows-x86 windows x86)" >> $GITHUB_OUTPUT
|
||||||
|
echo "windows-aarch64=$(check_platform windows-aarch64 windows aarch64)" >> $GITHUB_OUTPUT
|
||||||
|
echo "docs=$(check_platform docs)" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
###
|
||||||
|
### Build jobs
|
||||||
|
###
|
||||||
|
|
||||||
|
build-linux-x64:
|
||||||
|
name: linux-x64
|
||||||
|
needs: select
|
||||||
|
uses: ./.github/workflows/build-linux.yml
|
||||||
|
with:
|
||||||
|
platform: linux-x64
|
||||||
|
gcc-major-version: '10'
|
||||||
|
apt-gcc-version: '10.4.0-4ubuntu1~22.04'
|
||||||
|
configure-arguments: ${{ github.event.inputs.configure-arguments }}
|
||||||
|
make-arguments: ${{ github.event.inputs.make-arguments }}
|
||||||
|
# The linux-x64 jdk bundle is used as buildjdk for the cross-compile job
|
||||||
|
if: needs.select.outputs.linux-x64 == 'true' || needs.select.outputs.linux-cross-compile == 'true'
|
||||||
|
|
||||||
|
build-linux-x86:
|
||||||
|
name: linux-x86
|
||||||
|
needs: select
|
||||||
|
uses: ./.github/workflows/build-linux.yml
|
||||||
|
with:
|
||||||
|
platform: linux-x86
|
||||||
|
gcc-major-version: '10'
|
||||||
|
gcc-package-suffix: '-multilib'
|
||||||
|
apt-gcc-version: '10.4.0-4ubuntu1~22.04'
|
||||||
|
apt-architecture: 'i386'
|
||||||
|
# Some multilib libraries do not have proper inter-dependencies, so we have to
|
||||||
|
# install their dependencies manually.
|
||||||
|
apt-extra-packages: 'libfreetype6-dev:i386 libtiff-dev:i386 libcupsimage2-dev:i386 libc6-i386'
|
||||||
|
extra-conf-options: '--with-target-bits=32'
|
||||||
|
configure-arguments: ${{ github.event.inputs.configure-arguments }}
|
||||||
|
make-arguments: ${{ github.event.inputs.make-arguments }}
|
||||||
|
if: needs.select.outputs.linux-x86 == 'true'
|
||||||
|
|
||||||
|
build-linux-cross-compile:
|
||||||
|
name: linux-cross-compile
|
||||||
|
needs:
|
||||||
|
- select
|
||||||
|
- build-linux-x64
|
||||||
|
uses: ./.github/workflows/build-cross-compile.yml
|
||||||
|
with:
|
||||||
|
gcc-major-version: '10'
|
||||||
|
apt-gcc-version: '10.4.0-4ubuntu1~22.04'
|
||||||
|
apt-gcc-cross-version: '10.4.0-4ubuntu1~22.04cross1'
|
||||||
|
configure-arguments: ${{ github.event.inputs.configure-arguments }}
|
||||||
|
make-arguments: ${{ github.event.inputs.make-arguments }}
|
||||||
|
if: needs.select.outputs.linux-cross-compile == 'true'
|
||||||
|
|
||||||
|
build-macos-x64:
|
||||||
|
name: macos-x64
|
||||||
|
needs: select
|
||||||
|
uses: ./.github/workflows/build-macos.yml
|
||||||
|
with:
|
||||||
|
platform: macos-x64
|
||||||
|
xcode-toolset-version: '12.5.1'
|
||||||
|
configure-arguments: ${{ github.event.inputs.configure-arguments }}
|
||||||
|
make-arguments: ${{ github.event.inputs.make-arguments }}
|
||||||
|
if: needs.select.outputs.macos-x64 == 'true'
|
||||||
|
|
||||||
|
build-macos-aarch64:
|
||||||
|
name: macos-aarch64
|
||||||
|
needs: select
|
||||||
|
uses: ./.github/workflows/build-macos.yml
|
||||||
|
with:
|
||||||
|
platform: macos-aarch64
|
||||||
|
xcode-toolset-version: '12.5.1'
|
||||||
|
extra-conf-options: '--openjdk-target=aarch64-apple-darwin'
|
||||||
|
configure-arguments: ${{ github.event.inputs.configure-arguments }}
|
||||||
|
make-arguments: ${{ github.event.inputs.make-arguments }}
|
||||||
|
if: needs.select.outputs.macos-aarch64 == 'true'
|
||||||
|
|
||||||
|
build-windows-x64:
|
||||||
|
name: windows-x64
|
||||||
|
needs: select
|
||||||
|
uses: ./.github/workflows/build-windows.yml
|
||||||
|
with:
|
||||||
|
platform: windows-x64
|
||||||
|
msvc-toolset-version: '14.29'
|
||||||
|
msvc-toolset-architecture: 'x86.x64'
|
||||||
|
configure-arguments: ${{ github.event.inputs.configure-arguments }}
|
||||||
|
make-arguments: ${{ github.event.inputs.make-arguments }}
|
||||||
|
if: needs.select.outputs.windows-x64 == 'true'
|
||||||
|
|
||||||
|
build-windows-x86:
|
||||||
|
name: windows-x86
|
||||||
|
needs: select
|
||||||
|
uses: ./.github/workflows/build-windows.yml
|
||||||
|
with:
|
||||||
|
platform: windows-x86
|
||||||
|
msvc-toolset-version: '14.29'
|
||||||
|
msvc-toolset-architecture: 'x86'
|
||||||
|
configure-arguments: ${{ github.event.inputs.configure-arguments }}
|
||||||
|
make-arguments: ${{ github.event.inputs.make-arguments }}
|
||||||
|
if: needs.select.outputs.windows-x86 == 'true'
|
||||||
|
|
||||||
|
build-windows-aarch64:
|
||||||
|
name: windows-aarch64
|
||||||
|
needs: select
|
||||||
|
uses: ./.github/workflows/build-windows.yml
|
||||||
|
with:
|
||||||
|
platform: windows-aarch64
|
||||||
|
msvc-toolset-version: '14.29'
|
||||||
|
msvc-toolset-architecture: 'arm64'
|
||||||
|
make-target: 'hotspot'
|
||||||
|
extra-conf-options: '--openjdk-target=aarch64-unknown-cygwin'
|
||||||
|
configure-arguments: ${{ github.event.inputs.configure-arguments }}
|
||||||
|
make-arguments: ${{ github.event.inputs.make-arguments }}
|
||||||
|
if: needs.select.outputs.windows-aarch64 == 'true'
|
||||||
|
|
||||||
|
build-docs:
|
||||||
|
name: docs
|
||||||
|
needs: select
|
||||||
|
uses: ./.github/workflows/build-linux.yml
|
||||||
|
with:
|
||||||
|
platform: linux-x64
|
||||||
|
debug-levels: '[ "debug" ]'
|
||||||
|
make-target: 'docs-jdk-bundles'
|
||||||
|
# Make sure we never try to make full docs, since that would require a
|
||||||
|
# build JDK, and we do not need the additional testing of the graphs.
|
||||||
|
extra-conf-options: '--disable-full-docs'
|
||||||
|
gcc-major-version: '10'
|
||||||
|
apt-gcc-version: '10.4.0-4ubuntu1~22.04'
|
||||||
|
configure-arguments: ${{ github.event.inputs.configure-arguments }}
|
||||||
|
make-arguments: ${{ github.event.inputs.make-arguments }}
|
||||||
|
if: needs.select.outputs.docs == 'true'
|
||||||
|
|
||||||
|
# Remove bundles so they are not misconstrued as binary distributions from the JDK project
|
||||||
|
remove-bundles:
|
||||||
|
name: 'Remove bundle artifacts'
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
|
if: always()
|
||||||
|
needs:
|
||||||
|
- build-linux-x64
|
||||||
|
- build-linux-x86
|
||||||
|
- build-linux-cross-compile
|
||||||
|
- build-macos-x64
|
||||||
|
- build-macos-aarch64
|
||||||
|
- build-windows-x64
|
||||||
|
- build-windows-aarch64
|
||||||
|
- build-windows-x86
|
||||||
|
|
||||||
|
steps:
|
||||||
|
# Hack to get hold of the api environment variables that are only defined for actions
|
||||||
|
- name: 'Get API configuration'
|
||||||
|
id: api
|
||||||
|
uses: actions/github-script@v6
|
||||||
|
with:
|
||||||
|
script: 'return { url: process.env["ACTIONS_RUNTIME_URL"], token: process.env["ACTIONS_RUNTIME_TOKEN"] }'
|
||||||
|
|
||||||
|
- name: 'Remove bundle artifacts'
|
||||||
|
run: |
|
||||||
|
# Find and remove all bundle artifacts
|
||||||
|
ALL_ARTIFACT_URLS="$(curl -s \
|
||||||
|
-H 'Accept: application/json;api-version=6.0-preview' \
|
||||||
|
-H 'Authorization: Bearer ${{ fromJson(steps.api.outputs.result).token }}' \
|
||||||
|
'${{ fromJson(steps.api.outputs.result).url }}_apis/pipelines/workflows/${{ github.run_id }}/artifacts?api-version=6.0-preview')"
|
||||||
|
BUNDLE_ARTIFACT_URLS="$(echo "$ALL_ARTIFACT_URLS" | jq -r -c '.value | map(select(.name|startswith("bundles-"))) | .[].url')"
|
||||||
|
for url in $BUNDLE_ARTIFACT_URLS; do
|
||||||
|
echo "Removing $url"
|
||||||
|
curl -s \
|
||||||
|
-H 'Accept: application/json;api-version=6.0-preview' \
|
||||||
|
-H 'Authorization: Bearer ${{ fromJson(steps.api.outputs.result).token }}' \
|
||||||
|
-X DELETE "$url" \
|
||||||
|
|| echo "Failed to remove bundle"
|
||||||
|
done
|
||||||
27
.github/workflows/test.yml
vendored
27
.github/workflows/test.yml
vendored
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2022, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -60,13 +60,10 @@ jobs:
|
|||||||
- 'jdk/tier1 part 3'
|
- 'jdk/tier1 part 3'
|
||||||
- 'langtools/tier1'
|
- 'langtools/tier1'
|
||||||
- 'hs/tier1 common'
|
- 'hs/tier1 common'
|
||||||
- 'hs/tier1 compiler part 1'
|
- 'hs/tier1 compiler'
|
||||||
- 'hs/tier1 compiler part 2'
|
|
||||||
- 'hs/tier1 compiler part 3'
|
|
||||||
- 'hs/tier1 gc'
|
- 'hs/tier1 gc'
|
||||||
- 'hs/tier1 runtime'
|
- 'hs/tier1 runtime'
|
||||||
- 'hs/tier1 serviceability'
|
- 'hs/tier1 serviceability'
|
||||||
- 'lib-test/tier1'
|
|
||||||
|
|
||||||
include:
|
include:
|
||||||
- test-name: 'jdk/tier1 part 1'
|
- test-name: 'jdk/tier1 part 1'
|
||||||
@@ -85,16 +82,8 @@ jobs:
|
|||||||
test-suite: 'test/hotspot/jtreg/:tier1_common'
|
test-suite: 'test/hotspot/jtreg/:tier1_common'
|
||||||
debug-suffix: -debug
|
debug-suffix: -debug
|
||||||
|
|
||||||
- test-name: 'hs/tier1 compiler part 1'
|
- test-name: 'hs/tier1 compiler'
|
||||||
test-suite: 'test/hotspot/jtreg/:tier1_compiler_1'
|
test-suite: 'test/hotspot/jtreg/:tier1_compiler'
|
||||||
debug-suffix: -debug
|
|
||||||
|
|
||||||
- test-name: 'hs/tier1 compiler part 2'
|
|
||||||
test-suite: 'test/hotspot/jtreg/:tier1_compiler_2 test/hotspot/jtreg/:tier1_compiler_not_xcomp'
|
|
||||||
debug-suffix: -debug
|
|
||||||
|
|
||||||
- test-name: 'hs/tier1 compiler part 3'
|
|
||||||
test-suite: 'test/hotspot/jtreg/:tier1_compiler_3'
|
|
||||||
debug-suffix: -debug
|
debug-suffix: -debug
|
||||||
|
|
||||||
- test-name: 'hs/tier1 gc'
|
- test-name: 'hs/tier1 gc'
|
||||||
@@ -109,13 +98,9 @@ jobs:
|
|||||||
test-suite: 'test/hotspot/jtreg/:tier1_serviceability'
|
test-suite: 'test/hotspot/jtreg/:tier1_serviceability'
|
||||||
debug-suffix: -debug
|
debug-suffix: -debug
|
||||||
|
|
||||||
- test-name: 'lib-test/tier1'
|
|
||||||
test-suite: 'test/lib-test/:tier1'
|
|
||||||
debug-suffix: -debug
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: 'Checkout the JDK source'
|
- name: 'Checkout the JDK source'
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: 'Get MSYS2'
|
- name: 'Get MSYS2'
|
||||||
uses: ./.github/actions/get-msys2
|
uses: ./.github/actions/get-msys2
|
||||||
@@ -142,7 +127,7 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
# On macOS we need to install some dependencies for testing
|
# On macOS we need to install some dependencies for testing
|
||||||
brew install make
|
brew install make
|
||||||
sudo xcode-select --switch /Applications/Xcode_14.3.1.app/Contents/Developer
|
sudo xcode-select --switch /Applications/Xcode_11.7.app/Contents/Developer
|
||||||
# This will make GNU make available as 'make' and not only as 'gmake'
|
# This will make GNU make available as 'make' and not only as 'gmake'
|
||||||
echo '/usr/local/opt/make/libexec/gnubin' >> $GITHUB_PATH
|
echo '/usr/local/opt/make/libexec/gnubin' >> $GITHUB_PATH
|
||||||
if: runner.os == 'macOS'
|
if: runner.os == 'macOS'
|
||||||
|
|||||||
7
.gitignore
vendored
7
.gitignore
vendored
@@ -18,8 +18,5 @@ NashornProfile.txt
|
|||||||
/src/utils/LogCompilation/target/
|
/src/utils/LogCompilation/target/
|
||||||
/.project/
|
/.project/
|
||||||
/.settings/
|
/.settings/
|
||||||
/.project
|
*.class
|
||||||
/.classpath
|
.idea/workspace.xml
|
||||||
/.cproject
|
|
||||||
/compile_commands.json
|
|
||||||
/.cache
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
[general]
|
[general]
|
||||||
project=jdk
|
project=jdk
|
||||||
jbs=JDK
|
jbs=JDK
|
||||||
version=23
|
version=21
|
||||||
|
|
||||||
[checks]
|
[checks]
|
||||||
error=author,committer,reviewers,merge,issues,executable,symlink,message,hg-tag,whitespace,problemlists
|
error=author,committer,reviewers,merge,issues,executable,symlink,message,hg-tag,whitespace,problemlists
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
# Contributing to the JDK
|
# Contributing to the JDK
|
||||||
|
|
||||||
Please see the [OpenJDK Developers’ Guide](https://openjdk.org/guide/).
|
Please see <https://openjdk.org/contribute> for how to contribute.
|
||||||
|
|||||||
222
README.md
222
README.md
@@ -1,12 +1,216 @@
|
|||||||
# Welcome to the JDK!
|
[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
|
||||||
|
|
||||||
For build instructions please see the
|
# Welcome to JetBrains Runtime!
|
||||||
[online documentation](https://openjdk.org/groups/build/doc/building.html),
|
|
||||||
or either of these files:
|
|
||||||
|
|
||||||
- [doc/building.html](doc/building.html) (html version)
|
JetBrains Runtime is a fork of [OpenJDK](https://github.com/openjdk/jdk) available for Windows, Mac OS X, and Linux.
|
||||||
- [doc/building.md](doc/building.md) (markdown version)
|
It supports enhanced class redefinition ([DCEVM](https://ssw.jku.at/dcevm/)),
|
||||||
|
features optional [JCEF](https://github.com/JetBrains/jcef), a framework for embedding Chromium-based browsers,
|
||||||
|
includes a number of improvements in font rendering, keyboards support,
|
||||||
|
windowing/focus subsystems, HiDPI, accessibility, and performance, provides better desktop integration
|
||||||
|
and bugfixes not yet present in OpenJDK.
|
||||||
|
|
||||||
See <https://openjdk.org/> for more information about the OpenJDK
|
> **_NOTE_**: This is a **development** branch that is periodically synchronized with
|
||||||
Community and the JDK and see <https://bugs.openjdk.org> for JDK issue
|
> the [OpenJDK master](https://github.com/openjdk/jdk/tree/master) branch.
|
||||||
tracking.
|
>
|
||||||
|
Release builds are based on these branches:
|
||||||
|
* [jbr11](https://github.com/JetBrains/JetBrainsRuntime/tree/jbr11) (JDK 11)
|
||||||
|
* [jbr17](https://github.com/JetBrains/JetBrainsRuntime/tree/jbr17) (JDK 17)
|
||||||
|
|
||||||
|
Download the latest releases of JetBrains Runtime to use with JetBrains IDEs. The full list
|
||||||
|
can be found on the [releases page](https://github.com/JetBrains/JetBrainsRuntime/releases).
|
||||||
|
|
||||||
|
## Releases based on JDK 17
|
||||||
|
|
||||||
|
| IDE Version | Latest JBR | Date Released |
|
||||||
|
|-------------|--------------------------------------------------------------------------------------------------------|---------------|
|
||||||
|
| 2023.1 | [17.0.6-b829.5](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-17.0.6b829.5) | 01-Mar-2023 |
|
||||||
|
| 2022.3 | [17.0.6-b653.34](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-17.0.6b653.34) | 28-Feb-2023 |
|
||||||
|
| 2022.2 | [17.0.6-b469.82](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-17.0.6b469.82) | 06-Mar-2023 |
|
||||||
|
|
||||||
|
## Releases based on JDK 11
|
||||||
|
|
||||||
|
| IDE Version | Latest JBR | Date Released |
|
||||||
|
|-------------|-------------------------------------------------------------------------------------------------------|---------------|
|
||||||
|
| 2022.1 | [11_0_16-b2043.64](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr11_0_16b2043.64) | 10-Nov-2022 |
|
||||||
|
| 2021.3 | [11_0_14_1-b1751.46](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr11_0_14_1b1751.46) | 21-Feb-2022 |
|
||||||
|
| 2021.2 | [11_0_13-b1504.49](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jb11_0_13-b1504.49) | 15-Nov-2021 |
|
||||||
|
| 2021.1 | [11.0.11+9-b1341.60](https://github.com/JetBrains/JetBrainsRuntime/issues/171#issuecomment-1248891540)| 15-Jun-2021 |
|
||||||
|
| 2020.3 | [11_0_10-b1145.115](https://github.com/JetBrains/JetBrainsRuntime/issues/171#issuecomment-1249243977) | 21-Jun-2021 |
|
||||||
|
|
||||||
|
## Contents
|
||||||
|
- [Welcome to JetBrains Runtime](#welcome-to-jetbrains-runtime)
|
||||||
|
- [Why Use JetBrains Runtime?](#why-use-jetbrains-runtime)
|
||||||
|
- [Products Built on JetBrains Runtime](#products-built-on-jetbrains-runtime)
|
||||||
|
- [Getting Sources](#getting-sources)
|
||||||
|
- [macOS, Linux](#macos-linux)
|
||||||
|
- [Windows](#sources-windows)
|
||||||
|
- [Configuring the Build Environment](#configuring-the-build-environment)
|
||||||
|
- [Linux (Docker)](#linux-docker)
|
||||||
|
- [Ubuntu Linux](#ubuntu-linux)
|
||||||
|
- [Windows](#build-windows)
|
||||||
|
- [macOS](#macos)
|
||||||
|
- [Developing](#developing)
|
||||||
|
- [Contributing](#contributing)
|
||||||
|
- [Resources](#resources)
|
||||||
|
|
||||||
|
## Why Use JetBrains Runtime?
|
||||||
|
* **Embedded browser**: JetBrains Runtime includes the Java Chromium Embedded Framework ([JCEF](https://github.com/JetBrains/jcef)), which
|
||||||
|
enables you to embed a Chromium-based browsers in your JVM-based application.
|
||||||
|
To use it, [download a build with JCEF](https://github.com/JetBrains/JetBrainsRuntime/releases).
|
||||||
|
* **Enhanced class re-definition** with the [DCEVM](https://ssw.jku.at/dcevm/) technology that makes it easier to reload
|
||||||
|
changed code without restarting JVM; this feature needs to be explicitly enabled with `-XX:+AllowEnhancedClassRedefinition`.
|
||||||
|
* **Better FPS performance** for graphics-intensive applications.
|
||||||
|
* **Improved font rendering**, **keyboard input** (such as shortcuts and multinational keyboards),
|
||||||
|
**HiDPI** and **accessibility** support.
|
||||||
|
* **Robust desktop experience**: GUI-related fixes often reach JetBrains Runtime much earlier than the corresponding version of OpenJDK.
|
||||||
|
|
||||||
|
## Products Built on JetBrains Runtime
|
||||||
|
* [Android Studio](https://developer.android.com/studio). The official IDE for Google's Android operating system.
|
||||||
|
* [CLion](https://www.jetbrains.com/clion/). A cross-platform IDE for C and C++ from JetBrains.
|
||||||
|
* [DataGrip](https://www.jetbrains.com/datagrip/). The IDE for Databases and SQL from JetBrains.
|
||||||
|
* [GoLand](https://www.jetbrains.com/go/). The cross-platform Go IDE from JetBrains.
|
||||||
|
* [IntelliJ IDEA](https://www.jetbrains.com/idea/). The IDE for JVM from JetBrains.
|
||||||
|
* [JProfiler](https://www.ej-technologies.com/products/jprofiler/overview.html). The Java profiler.
|
||||||
|
* [PhpStorm](https://www.jetbrains.com/phpstorm/). The PHP IDE from JetBrains.
|
||||||
|
* [PyCharm](https://www.jetbrains.com/pycharm/). The Python IDE from JetBrains.
|
||||||
|
* [Rider](https://www.jetbrains.com/rider/). The cross-platform .NET IDE from JetBrains.
|
||||||
|
* [RubyMine](https://www.jetbrains.com/ruby/). The Ruby and Rails IDE from JetBrains.
|
||||||
|
* [Toolbox App](https://www.jetbrains.com/toolbox-app/). JetBrains IDE manager.
|
||||||
|
* [WebStorm](https://www.jetbrains.com/webstorm/). The JavaScript IDE from JetBrains.
|
||||||
|
* [YourKit](https://www.yourkit.com/). Java and .NET profilers.
|
||||||
|
|
||||||
|
## Getting Sources
|
||||||
|
### macOS, Linux
|
||||||
|
```
|
||||||
|
git config --global core.autocrlf input
|
||||||
|
git clone git@github.com:JetBrains/JetBrainsRuntime.git
|
||||||
|
cd JetBrainsRuntime
|
||||||
|
git checkout jbr21
|
||||||
|
```
|
||||||
|
|
||||||
|
### Windows
|
||||||
|
<a name="sources-windows"></a>
|
||||||
|
```
|
||||||
|
git config --global core.autocrlf false
|
||||||
|
git clone git@github.com:JetBrains/JetBrainsRuntime.git
|
||||||
|
cd JetBrainsRuntime
|
||||||
|
git checkout jbr21
|
||||||
|
```
|
||||||
|
|
||||||
|
## Configuring the Build Environment
|
||||||
|
Here are quick per-platform instructions for those who can't wait to get started.
|
||||||
|
Please refer to [OpenJDK build docs](https://openjdk.java.net/groups/build/doc/building.html) for in-depth
|
||||||
|
coverage of all the details.
|
||||||
|
|
||||||
|
> **_TIP:_** To get a preliminary report of what's missing, run `./configure` and check its output.
|
||||||
|
> It would usually have meaningful advice on how to solve the problem.
|
||||||
|
|
||||||
|
### Linux (Docker)
|
||||||
|
Create a container:
|
||||||
|
```
|
||||||
|
$ cd jb/project/docker
|
||||||
|
$ docker build .
|
||||||
|
...
|
||||||
|
Successfully built 942ea9900054
|
||||||
|
```
|
||||||
|
Run these commands in the new container:
|
||||||
|
```
|
||||||
|
$ docker run -v `pwd`../../../../:/JetBrainsRuntime -it 942ea9900054
|
||||||
|
# cd /JetBrainsRuntime
|
||||||
|
# sh ./configure
|
||||||
|
# make images CONF=linux-x86_64-normal-server-release
|
||||||
|
```
|
||||||
|
|
||||||
|
### Ubuntu Linux
|
||||||
|
Install the necessary tools, libraries, and headers with:
|
||||||
|
```
|
||||||
|
$ sudo apt-get install autoconf make build-essential libx11-dev libxext-dev libxrender-dev libxtst-dev \
|
||||||
|
libxt-dev libxrandr-dev libcups2-dev libfontconfig1-dev libasound2-dev
|
||||||
|
```
|
||||||
|
Get Java 19 (for instance, [Azul Zulu Builds of OpenJDK 19](https://www.azul.com/downloads/?version=java-19-sts&os=linux&package=jdk)).
|
||||||
|
|
||||||
|
Then run the following:
|
||||||
|
```
|
||||||
|
$ cd JetBrainsRuntime
|
||||||
|
$ git checkout main
|
||||||
|
$ sh ./configure
|
||||||
|
$ make images
|
||||||
|
```
|
||||||
|
This will build the release configuration under `./build/linux-x86_64-server-release/`.
|
||||||
|
|
||||||
|
### Windows
|
||||||
|
<a name="build-windows"></a>
|
||||||
|
Install the following:
|
||||||
|
* [Cygwin x64](http://www.cygwin.com/).
|
||||||
|
Required packages: `autoconf`, `binutils`, `cpio`, `diffutils`, `file`, `gawk`, `gcc-core`, `make`, `m4`, `unzip`, `zip`.
|
||||||
|
Install those together with Cygwin.
|
||||||
|
* [Visual Studio compiler toolset](https://visualstudio.microsoft.com/downloads/).
|
||||||
|
Install with the desktop development kit, which includes Windows SDK and compilers.
|
||||||
|
Visual Studio 2019 is supported by default.
|
||||||
|
* Java 19 (for instance, [Azul Zulu Builds of OpenJDK 19](https://www.azul.com/downloads/?version=java-19-sts&os=windows&package=jdk)).
|
||||||
|
If you have problems while configuring, read [Java tips on Cygwin](http://horstmann.com/articles/cygwin-tips.html).
|
||||||
|
|
||||||
|
From the command line:
|
||||||
|
```
|
||||||
|
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64
|
||||||
|
"c:\Program_Files\cygwin64\bin\mintty.exe" /bin/bash -l
|
||||||
|
```
|
||||||
|
The first command sets up environment variables, the second starts a Cygwin shell with the proper environment.
|
||||||
|
|
||||||
|
In the Cygwin shell:
|
||||||
|
```
|
||||||
|
$ cd JetBrainsRuntime
|
||||||
|
$ git checkout main
|
||||||
|
$ bash configure --with-toolchain-version=2019
|
||||||
|
$ make images
|
||||||
|
```
|
||||||
|
This will build the release configuration under `./build/windows-x86_64-server-release/`.
|
||||||
|
|
||||||
|
### macOS
|
||||||
|
Install the following:
|
||||||
|
* Xcode command line developer tools and `autoconf` via [Homebrew](https://brew.sh/).
|
||||||
|
* Java 19 (for instance, [Azul Zulu Builds of OpenJDK 19](https://www.azul.com/downloads/?version=java-19-sts&os=macos&package=jdk)).
|
||||||
|
|
||||||
|
From the command line:
|
||||||
|
```
|
||||||
|
$ cd JetBrainsRuntime
|
||||||
|
$ git checkout main
|
||||||
|
$ sh ./configure
|
||||||
|
$ make images
|
||||||
|
```
|
||||||
|
This will build the release configuration under `./build/macosx-x86_64-server-release/`.
|
||||||
|
|
||||||
|
## Developing
|
||||||
|
You can use [CLion](https://www.jetbrains.com/clion/) to develop native parts of the JetBrains Runtime and
|
||||||
|
[IntelliJ IDEA](https://www.jetbrains.com/idea/) for the parts written in Java.
|
||||||
|
Both require projects to be created.
|
||||||
|
|
||||||
|
### CLion
|
||||||
|
Run
|
||||||
|
```
|
||||||
|
$ make compile-commands
|
||||||
|
```
|
||||||
|
in the git root and open the resulting `build/.../compile_commands.json` file as a project.
|
||||||
|
Then use `Tools | Compilation Database | Change Project Root` to point to git root of this repository.
|
||||||
|
|
||||||
|
See also this detailed step-by-step tutorial for all platforms:
|
||||||
|
[How to develop OpenJDK with CLion](https://blog.jetbrains.com/clion/2020/03/openjdk-with-clion/).
|
||||||
|
|
||||||
|
### IDEA
|
||||||
|
Run
|
||||||
|
```
|
||||||
|
$ sh ./bin/idea.sh
|
||||||
|
```
|
||||||
|
in the git root to generate project files (add `--help` for options). If you have multiple
|
||||||
|
configurations (for example, `release` and `fastdebug`), supply the `--conf <conf_name>` argument.
|
||||||
|
Then open the git root directory as a project in IDEA.
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
We are happy to receive your pull requests!
|
||||||
|
Before you submit one, please sign our [Contributor License Agreement (CLA)](https://www.jetbrains.com/agreements/cla/).
|
||||||
|
|
||||||
|
## Resources
|
||||||
|
* [JetBrains Runtime on GitHub](https://github.com/JetBrains/JetBrainsRuntime).
|
||||||
|
* [OpenJDK build instructions](https://openjdk.java.net/groups/build/doc/building.html).
|
||||||
|
* [OpenJDK test instructions](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openjdk/jdk/master/doc/building.html#running-tests).
|
||||||
|
* [How to develop OpenJDK with CLion](https://blog.jetbrains.com/clion/2020/03/openjdk-with-clion/).
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
#
|
#
|
||||||
# Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved.
|
|
||||||
# Copyright 2015 Google, Inc. All Rights Reserved.
|
# Copyright 2015 Google, Inc. All Rights Reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
@@ -27,17 +26,12 @@ usage() {
|
|||||||
echo "$0 DIR ..."
|
echo "$0 DIR ..."
|
||||||
echo "Modifies in place all the java source files found"
|
echo "Modifies in place all the java source files found"
|
||||||
echo "in the given directories so that all java language modifiers"
|
echo "in the given directories so that all java language modifiers"
|
||||||
echo "are in the canonical order."
|
echo "are in the canonical order given by Modifier#toString()."
|
||||||
echo "Tries to get it right even within javadoc comments,"
|
echo "Tries to get it right even within javadoc comments,"
|
||||||
echo "and even if the list of modifiers spans 2 lines."
|
echo "and even if the list of modifiers spans 2 lines."
|
||||||
echo
|
echo
|
||||||
echo "See:"
|
echo "See:"
|
||||||
echo "https://docs.oracle.com/javase/specs/jls/se21/html/jls-8.html#jls-8.1.1"
|
echo "https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Modifier.html#toString-int-"
|
||||||
echo "https://docs.oracle.com/javase/specs/jls/se21/html/jls-8.html#jls-8.3.1"
|
|
||||||
echo "https://docs.oracle.com/javase/specs/jls/se21/html/jls-8.html#jls-8.4.3"
|
|
||||||
echo "https://docs.oracle.com/javase/specs/jls/se21/html/jls-8.html#jls-8.8.3"
|
|
||||||
echo "https://docs.oracle.com/javase/specs/jls/se21/html/jls-9.html#jls-9.1.1"
|
|
||||||
echo "https://docs.oracle.com/javase/specs/jls/se21/html/jls-9.html#jls-9.4"
|
|
||||||
echo
|
echo
|
||||||
echo "Example:"
|
echo "Example:"
|
||||||
echo "$0 jdk/src/java.base jdk/test/java/{util,io,lang}"
|
echo "$0 jdk/src/java.base jdk/test/java/{util,io,lang}"
|
||||||
@@ -52,7 +46,7 @@ for dir in "${dirs[@]}"; do [[ -d "$dir" ]] || usage; done
|
|||||||
|
|
||||||
declare -ar modifiers=(
|
declare -ar modifiers=(
|
||||||
public protected private
|
public protected private
|
||||||
abstract default static final sealed non-sealed transient
|
abstract static final transient
|
||||||
volatile synchronized native strictfp
|
volatile synchronized native strictfp
|
||||||
)
|
)
|
||||||
declare -r SAVE_IFS="$IFS"
|
declare -r SAVE_IFS="$IFS"
|
||||||
|
|||||||
294
bin/idea.sh
294
bin/idea.sh
@@ -25,7 +25,26 @@
|
|||||||
# Shell script for generating an IDEA project from a given list of modules
|
# Shell script for generating an IDEA project from a given list of modules
|
||||||
|
|
||||||
usage() {
|
usage() {
|
||||||
echo "usage: $0 [-h|--help] [-v|--verbose] [-o|--output <path>] [-c|--conf <conf_name>] [modules]+"
|
echo "Usage: $0 [-h|--help] [-q|--quiet] [-a|--absolute-paths] [-r|--root <path>] [-o|--output <path>] [-c|--conf <conf_name>] [modules...]"
|
||||||
|
echo " -h | --help"
|
||||||
|
echo " -q | --quiet
|
||||||
|
No stdout output"
|
||||||
|
echo " -a | --absolute-paths
|
||||||
|
Use absolute paths to this jdk, so that generated .idea
|
||||||
|
project files can be moved independently of jdk sources"
|
||||||
|
echo " -r | --root <path>
|
||||||
|
Project content root
|
||||||
|
Default: $TOPLEVEL_DIR"
|
||||||
|
echo " -o | --output <path>
|
||||||
|
Where .idea directory with project files will be generated
|
||||||
|
(e.g. using '-o .' will place project files in './.idea')
|
||||||
|
Default: same as --root"
|
||||||
|
echo " -c | --conf <conf_name>
|
||||||
|
make configuration (release, slowdebug etc)"
|
||||||
|
echo " [modules...]
|
||||||
|
Generate project modules for specific java modules
|
||||||
|
(e.g. 'java.base java.desktop')
|
||||||
|
Default: all existing modules (java.* and jdk.*)"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -33,10 +52,13 @@ SCRIPT_DIR=`dirname $0`
|
|||||||
#assume TOP is the dir from which the script has been called
|
#assume TOP is the dir from which the script has been called
|
||||||
TOP=`pwd`
|
TOP=`pwd`
|
||||||
cd $SCRIPT_DIR; SCRIPT_DIR=`pwd`
|
cd $SCRIPT_DIR; SCRIPT_DIR=`pwd`
|
||||||
|
if [ "x$TOPLEVEL_DIR" = "x" ] ; then
|
||||||
|
cd .. ; TOPLEVEL_DIR=`pwd`
|
||||||
|
fi
|
||||||
cd $TOP;
|
cd $TOP;
|
||||||
|
|
||||||
IDEA_OUTPUT=$TOP/.idea
|
VERBOSE=true
|
||||||
VERBOSE="false"
|
ABSOLUTE_PATHS=false
|
||||||
CONF_ARG=
|
CONF_ARG=
|
||||||
while [ $# -gt 0 ]
|
while [ $# -gt 0 ]
|
||||||
do
|
do
|
||||||
@@ -45,14 +67,24 @@ do
|
|||||||
usage
|
usage
|
||||||
;;
|
;;
|
||||||
|
|
||||||
-v | --vebose )
|
-q | --quiet )
|
||||||
VERBOSE="true"
|
VERBOSE=false
|
||||||
|
;;
|
||||||
|
|
||||||
|
-a | --absolute-paths )
|
||||||
|
ABSOLUTE_PATHS=true
|
||||||
|
;;
|
||||||
|
|
||||||
|
-r | --root )
|
||||||
|
TOPLEVEL_DIR="$2"
|
||||||
|
shift
|
||||||
;;
|
;;
|
||||||
|
|
||||||
-o | --output )
|
-o | --output )
|
||||||
IDEA_OUTPUT=$2/.idea
|
IDEA_OUTPUT="$2/.idea"
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
|
|
||||||
-c | --conf )
|
-c | --conf )
|
||||||
CONF_ARG="CONF_NAME=$2"
|
CONF_ARG="CONF_NAME=$2"
|
||||||
shift
|
shift
|
||||||
@@ -69,20 +101,17 @@ do
|
|||||||
shift
|
shift
|
||||||
done
|
done
|
||||||
|
|
||||||
if [ -e $IDEA_OUTPUT ] ; then
|
if [ "x$IDEA_OUTPUT" = "x" ] ; then
|
||||||
rm -r $IDEA_OUTPUT
|
IDEA_OUTPUT="$TOPLEVEL_DIR/.idea"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mkdir -p $IDEA_OUTPUT || exit 1
|
mkdir -p $IDEA_OUTPUT || exit 1
|
||||||
cd $IDEA_OUTPUT; IDEA_OUTPUT=`pwd`
|
cd "$TOP" ; cd $TOPLEVEL_DIR; TOPLEVEL_DIR=`pwd`
|
||||||
|
cd "$TOP" ; cd $IDEA_OUTPUT; IDEA_OUTPUT=`pwd`
|
||||||
|
cd ..; IDEA_OUTPUT_PARENT=`pwd`
|
||||||
|
cd "$SCRIPT_DIR/.." ; OPENJDK_DIR=`pwd`
|
||||||
|
|
||||||
if [ "x$TOPLEVEL_DIR" = "x" ] ; then
|
IDEA_MAKE="$OPENJDK_DIR/make/ide/idea/jdk"
|
||||||
cd $SCRIPT_DIR/..
|
|
||||||
TOPLEVEL_DIR=`pwd`
|
|
||||||
cd $IDEA_OUTPUT
|
|
||||||
fi
|
|
||||||
|
|
||||||
MAKE_DIR="$SCRIPT_DIR/../make"
|
|
||||||
IDEA_MAKE="$MAKE_DIR/ide/idea/jdk"
|
|
||||||
IDEA_TEMPLATE="$IDEA_MAKE/template"
|
IDEA_TEMPLATE="$IDEA_MAKE/template"
|
||||||
|
|
||||||
cp -r "$IDEA_TEMPLATE"/* "$IDEA_OUTPUT"
|
cp -r "$IDEA_TEMPLATE"/* "$IDEA_OUTPUT"
|
||||||
@@ -94,31 +123,31 @@ if [ -d "$TEMPLATES_OVERRIDE" ] ; then
|
|||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$VERBOSE" = "true" ] ; then
|
if [ "$VERBOSE" = true ] ; then
|
||||||
echo "output dir: $IDEA_OUTPUT"
|
echo "Will generate IDEA project files in \"$IDEA_OUTPUT\" for project \"$TOPLEVEL_DIR\""
|
||||||
echo "idea template dir: $IDEA_TEMPLATE"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cd $TOP ; make -f "$IDEA_MAKE/idea.gmk" -I $MAKE_DIR/.. idea MAKEOVERRIDES= OUT=$IDEA_OUTPUT/env.cfg MODULES="$*" $CONF_ARG || exit 1
|
cd $TOP ; make -f "$IDEA_MAKE/idea.gmk" -I "$OPENJDK_DIR" idea TOPLEVEL_DIR="$TOPLEVEL_DIR" \
|
||||||
|
MAKEOVERRIDES= IDEA_OUTPUT_PARENT="$IDEA_OUTPUT_PARENT" OUT="$IDEA_OUTPUT/env.cfg" MODULES="$*" $CONF_ARG || exit 1
|
||||||
cd $SCRIPT_DIR
|
cd $SCRIPT_DIR
|
||||||
|
|
||||||
. $IDEA_OUTPUT/env.cfg
|
. $IDEA_OUTPUT/env.cfg
|
||||||
|
|
||||||
# Expect MODULE_ROOTS, MODULE_NAMES, BOOT_JDK & SPEC to be set
|
# Expect MODULES, MODULE_NAMES, RELATIVE_PROJECT_DIR, RELATIVE_BUILD_DIR to be set
|
||||||
if [ "x$MODULE_ROOTS" = "x" ] ; then
|
if [ "xMODULES" = "x" ] ; then
|
||||||
echo "FATAL: MODULE_ROOTS is empty" >&2; exit 1
|
echo "FATAL: MODULES is empty" >&2; exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "x$MODULE_NAMES" = "x" ] ; then
|
if [ "x$MODULE_NAMES" = "x" ] ; then
|
||||||
echo "FATAL: MODULE_NAMES is empty" >&2; exit 1
|
echo "FATAL: MODULE_NAMES is empty" >&2; exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "x$BOOT_JDK" = "x" ] ; then
|
if [ "x$RELATIVE_PROJECT_DIR" = "x" ] ; then
|
||||||
echo "FATAL: BOOT_JDK is empty" >&2; exit 1
|
echo "FATAL: RELATIVE_PROJECT_DIR is empty" >&2; exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "x$SPEC" = "x" ] ; then
|
if [ "x$RELATIVE_BUILD_DIR" = "x" ] ; then
|
||||||
echo "FATAL: SPEC is empty" >&2; exit 1
|
echo "FATAL: RELATIVE_BUILD_DIR is empty" >&2; exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -d "$TOPLEVEL_DIR/.hg" ] ; then
|
if [ -d "$TOPLEVEL_DIR/.hg" ] ; then
|
||||||
@@ -129,6 +158,43 @@ if [ -d "$TOPLEVEL_DIR/.git" ] ; then
|
|||||||
VCS_TYPE="Git"
|
VCS_TYPE="Git"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "$ABSOLUTE_PATHS" = true ] ; then
|
||||||
|
if [ "x$PATHTOOL" != "x" ]; then
|
||||||
|
PROJECT_DIR="`$PATHTOOL -am $OPENJDK_DIR`"
|
||||||
|
TOPLEVEL_PROJECT_DIR="`$PATHTOOL -am $TOPLEVEL_DIR`"
|
||||||
|
else
|
||||||
|
PROJECT_DIR="$OPENJDK_DIR"
|
||||||
|
TOPLEVEL_PROJECT_DIR="$TOPLEVEL_DIR"
|
||||||
|
fi
|
||||||
|
MODULE_DIR="$PROJECT_DIR"
|
||||||
|
TOPLEVEL_MODULE_DIR="$TOPLEVEL_PROJECT_DIR"
|
||||||
|
cd "$IDEA_OUTPUT_PARENT" && cd "$RELATIVE_BUILD_DIR" && BUILD_DIR="`pwd`"
|
||||||
|
CLION_SCRIPT_TOPDIR="$OPENJDK_DIR"
|
||||||
|
CLION_PROJECT_DIR="$PROJECT_DIR"
|
||||||
|
else
|
||||||
|
if [ "$RELATIVE_PROJECT_DIR" = "." ] ; then
|
||||||
|
PROJECT_DIR=""
|
||||||
|
else
|
||||||
|
PROJECT_DIR="/$RELATIVE_PROJECT_DIR"
|
||||||
|
fi
|
||||||
|
if [ "$RELATIVE_TOPLEVEL_PROJECT_DIR" = "." ] ; then
|
||||||
|
TOPLEVEL_PROJECT_DIR=""
|
||||||
|
else
|
||||||
|
TOPLEVEL_PROJECT_DIR="/$RELATIVE_TOPLEVEL_PROJECT_DIR"
|
||||||
|
fi
|
||||||
|
MODULE_DIR="\$MODULE_DIR\$$PROJECT_DIR"
|
||||||
|
PROJECT_DIR="\$PROJECT_DIR\$$PROJECT_DIR"
|
||||||
|
TOPLEVEL_MODULE_DIR="\$MODULE_DIR\$$TOPLEVEL_PROJECT_DIR"
|
||||||
|
TOPLEVEL_PROJECT_DIR="\$PROJECT_DIR\$$TOPLEVEL_PROJECT_DIR"
|
||||||
|
BUILD_DIR="\$PROJECT_DIR\$/$RELATIVE_BUILD_DIR"
|
||||||
|
CLION_SCRIPT_TOPDIR="$CLION_RELATIVE_PROJECT_DIR"
|
||||||
|
CLION_PROJECT_DIR="\$PROJECT_DIR\$/$CLION_SCRIPT_TOPDIR"
|
||||||
|
fi
|
||||||
|
if [ "$VERBOSE" = true ] ; then
|
||||||
|
echo "Project root: $PROJECT_DIR"
|
||||||
|
echo "Generating IDEA project files..."
|
||||||
|
fi
|
||||||
|
|
||||||
### Replace template variables
|
### Replace template variables
|
||||||
|
|
||||||
NUM_REPLACEMENTS=0
|
NUM_REPLACEMENTS=0
|
||||||
@@ -152,116 +218,106 @@ add_replacement() {
|
|||||||
eval TO$NUM_REPLACEMENTS='$2'
|
eval TO$NUM_REPLACEMENTS='$2'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
add_replacement "###PATHTOOL###" "$PATHTOOL"
|
||||||
|
add_replacement "###CLION_SCRIPT_TOPDIR###" "$CLION_SCRIPT_TOPDIR"
|
||||||
|
add_replacement "###CLION_PROJECT_DIR###" "$CLION_PROJECT_DIR"
|
||||||
|
add_replacement "###PROJECT_DIR###" "$PROJECT_DIR"
|
||||||
|
add_replacement "###MODULE_DIR###" "$MODULE_DIR"
|
||||||
|
add_replacement "###TOPLEVEL_PROJECT_DIR###" "$TOPLEVEL_PROJECT_DIR"
|
||||||
|
add_replacement "###TOPLEVEL_MODULE_DIR###" "$TOPLEVEL_MODULE_DIR"
|
||||||
add_replacement "###MODULE_NAMES###" "$MODULE_NAMES"
|
add_replacement "###MODULE_NAMES###" "$MODULE_NAMES"
|
||||||
add_replacement "###VCS_TYPE###" "$VCS_TYPE"
|
add_replacement "###VCS_TYPE###" "$VCS_TYPE"
|
||||||
SPEC_DIR=`dirname $SPEC`
|
add_replacement "###BUILD_DIR###" "$BUILD_DIR"
|
||||||
if [ "x$CYGPATH" != "x" ]; then
|
add_replacement "###RELATIVE_BUILD_DIR###" "$RELATIVE_BUILD_DIR"
|
||||||
add_replacement "###BUILD_DIR###" "`$CYGPATH -am $SPEC_DIR`"
|
if [ "x$PATHTOOL" != "x" ]; then
|
||||||
add_replacement "###IMAGES_DIR###" "`$CYGPATH -am $SPEC_DIR`/images/jdk"
|
add_replacement "###BASH_RUNNER_PREFIX###" "\$PROJECT_DIR\$/.idea/bash.bat"
|
||||||
add_replacement "###ROOT_DIR###" "`$CYGPATH -am $TOPLEVEL_DIR`"
|
else
|
||||||
add_replacement "###IDEA_DIR###" "`$CYGPATH -am $IDEA_OUTPUT`"
|
add_replacement "###BASH_RUNNER_PREFIX###" ""
|
||||||
|
fi
|
||||||
|
if [ "x$PATHTOOL" != "x" ]; then
|
||||||
if [ "x$JT_HOME" = "x" ]; then
|
if [ "x$JT_HOME" = "x" ]; then
|
||||||
add_replacement "###JTREG_HOME###" ""
|
add_replacement "###JTREG_HOME###" ""
|
||||||
else
|
else
|
||||||
add_replacement "###JTREG_HOME###" "`$CYGPATH -am $JT_HOME`"
|
add_replacement "###JTREG_HOME###" "`$PATHTOOL -am $JT_HOME`"
|
||||||
fi
|
|
||||||
elif [ "x$WSL_DISTRO_NAME" != "x" ]; then
|
|
||||||
add_replacement "###BUILD_DIR###" "`wslpath -am $SPEC_DIR`"
|
|
||||||
add_replacement "###IMAGES_DIR###" "`wslpath -am $SPEC_DIR`/images/jdk"
|
|
||||||
add_replacement "###ROOT_DIR###" "`wslpath -am $TOPLEVEL_DIR`"
|
|
||||||
add_replacement "###IDEA_DIR###" "`wslpath -am $IDEA_OUTPUT`"
|
|
||||||
if [ "x$JT_HOME" = "x" ]; then
|
|
||||||
add_replacement "###JTREG_HOME###" ""
|
|
||||||
else
|
|
||||||
add_replacement "###JTREG_HOME###" "`wslpath -am $JT_HOME`"
|
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
add_replacement "###BUILD_DIR###" "$SPEC_DIR"
|
|
||||||
add_replacement "###JTREG_HOME###" "$JT_HOME"
|
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"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
SOURCE_PREFIX="<sourceFolder url=\"file://"
|
MODULE_IMLS=""
|
||||||
SOURCE_POSTFIX="\" isTestSource=\"false\" />"
|
TEST_MODULE_DEPENDENCIES=""
|
||||||
|
for module in $MODULE_NAMES; do
|
||||||
for root in $MODULE_ROOTS; do
|
MODULE_IMLS="$MODULE_IMLS<module fileurl=\"file://\$PROJECT_DIR$/.idea/$module.iml\" filepath=\"\$PROJECT_DIR$/.idea/$module.iml\" /> "
|
||||||
if [ "x$CYGPATH" != "x" ]; then
|
TEST_MODULE_DEPENDENCIES="$TEST_MODULE_DEPENDENCIES<orderEntry type=\"module\" module-name=\"$module\" scope=\"TEST\" /> "
|
||||||
root=`$CYGPATH -am $root`
|
|
||||||
elif [ "x$WSL_DISTRO_NAME" != "x" ]; then
|
|
||||||
root=`wslpath -am $root`
|
|
||||||
fi
|
|
||||||
|
|
||||||
SOURCES=$SOURCES" $SOURCE_PREFIX""$root""$SOURCE_POSTFIX"
|
|
||||||
done
|
done
|
||||||
|
add_replacement "###MODULE_IMLS###" "$MODULE_IMLS"
|
||||||
add_replacement "###SOURCE_ROOTS###" "$SOURCES"
|
add_replacement "###TEST_MODULE_DEPENDENCIES###" "$TEST_MODULE_DEPENDENCIES"
|
||||||
|
|
||||||
replace_template_dir "$IDEA_OUTPUT"
|
replace_template_dir "$IDEA_OUTPUT"
|
||||||
|
|
||||||
### Compile the custom Logger
|
### Generate module project files
|
||||||
|
|
||||||
CLASSES=$IDEA_OUTPUT/classes
|
if [ "$VERBOSE" = true ] ; then
|
||||||
|
echo "Generating project modules:"
|
||||||
|
fi
|
||||||
|
(
|
||||||
|
DEFAULT_IFS="$IFS"
|
||||||
|
IFS='#'
|
||||||
|
for value in $MODULES; do
|
||||||
|
(
|
||||||
|
eval "$value"
|
||||||
|
if [ "$VERBOSE" = true ] ; then
|
||||||
|
echo " $module"
|
||||||
|
fi
|
||||||
|
MAIN_SOURCE_DIRS=""
|
||||||
|
CONTENT_ROOTS=""
|
||||||
|
IFS=' '
|
||||||
|
for dir in $moduleSrcDirs; do
|
||||||
|
case $dir in
|
||||||
|
"src/"*) MAIN_SOURCE_DIRS="$MAIN_SOURCE_DIRS <sourceFolder url=\"file://$MODULE_DIR/$dir\" isTestSource=\"false\" />" ;;
|
||||||
|
*"/support/gensrc/$module") ;; # Exclude generated sources to avoid module-info conflicts, see https://youtrack.jetbrains.com/issue/IDEA-185108
|
||||||
|
*) CONTENT_ROOTS="$CONTENT_ROOTS <content url=\"file://$MODULE_DIR/$dir\">\
|
||||||
|
<sourceFolder url=\"file://$MODULE_DIR/$dir\" isTestSource=\"false\" generated=\"true\" /></content>" ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
if [ "x$MAIN_SOURCE_DIRS" != "x" ] ; then
|
||||||
|
CONTENT_ROOTS="<content url=\"file://$MODULE_DIR/src/$module\">$MAIN_SOURCE_DIRS</content>$CONTENT_ROOTS"
|
||||||
|
fi
|
||||||
|
add_replacement "###MODULE_CONTENT_ROOTS###" "$CONTENT_ROOTS"
|
||||||
|
DEPENDENCIES=""
|
||||||
|
for dep in $moduleDependencies; do
|
||||||
|
case $MODULE_NAMES in # Exclude skipped modules from dependencies
|
||||||
|
*"$dep"*) DEPENDENCIES="$DEPENDENCIES<orderEntry type=\"module\" module-name=\"$dep\" /> "
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
add_replacement "###DEPENDENCIES###" "$DEPENDENCIES"
|
||||||
|
cp "$IDEA_OUTPUT/module.iml" "$IDEA_OUTPUT/$module.iml"
|
||||||
|
IFS="$DEFAULT_IFS"
|
||||||
|
replace_template_file "$IDEA_OUTPUT/$module.iml"
|
||||||
|
)
|
||||||
|
done
|
||||||
|
)
|
||||||
|
rm "$IDEA_OUTPUT/module.iml"
|
||||||
|
|
||||||
if [ "x$ANT_HOME" = "x" ] ; then
|
### Create shell script runner for Windows
|
||||||
# try some common locations
|
|
||||||
if [ -f "/usr/share/ant/lib/ant.jar" ] ; then
|
if [ "x$PATHTOOL" != "x" ]; then
|
||||||
ANT_HOME="/usr/share/ant"
|
echo "@echo off" > "$IDEA_OUTPUT/bash.bat"
|
||||||
|
if [ "x$WSL_DISTRO_NAME" != "x" ] ; then
|
||||||
|
echo "wsl -d $WSL_DISTRO_NAME --cd \"%cd%\" -e %*" >> "$IDEA_OUTPUT/bash.bat"
|
||||||
else
|
else
|
||||||
try_ant=$(ls /opt/homebrew/Cellar/ant/*/libexec/lib/ant.jar 2> /dev/null | sort -r | head -n 1)
|
echo "$WINENV_ROOT\bin\bash.exe -l -c \"cd %CD:\=/%/ && %*\"" >> "$IDEA_OUTPUT/bash.bat"
|
||||||
if [ "x$try_ant" != "x" ] ; then
|
|
||||||
ANT_HOME=$(cd $(dirname $try_ant)/.. && pwd)
|
|
||||||
else
|
|
||||||
try_ant=$(ls /usr/local/Cellar/ant/*/libexec/lib/ant.jar 2> /dev/null | sort -r | head -n 1)
|
|
||||||
if [ "x$try_ant" != "x" ] ; then
|
|
||||||
ANT_HOME=$(cd $(dirname $try_ant)/.. && pwd)
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
if [ ! -f "$ANT_HOME/lib/ant.jar" ] ; then
|
|
||||||
echo "FATAL: ANT_HOME is incorrect. Try removing it and use autodetection, or fix the value" >&2; exit 1
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "x$ANT_HOME" = "x" ] ; then
|
|
||||||
echo "FATAL: cannot find ant. Try setting ANT_HOME." >&2; exit 1
|
|
||||||
fi
|
|
||||||
CP=$ANT_HOME/lib/ant.jar
|
|
||||||
rm -rf $CLASSES; mkdir $CLASSES
|
|
||||||
|
|
||||||
# If we have a Windows boot JDK, we need a .exe suffix
|
|
||||||
if [ -e "$BOOT_JDK/bin/java.exe" ] ; then
|
|
||||||
JAVAC=javac.exe
|
|
||||||
else
|
|
||||||
JAVAC=javac
|
|
||||||
fi
|
|
||||||
|
|
||||||
# If we are on WSL, the boot JDK might be either Windows or Linux,
|
if [ "$VERBOSE" = true ] ; then
|
||||||
# and we need to use realpath instead of CYGPATH to make javac work on both.
|
IDEA_PROJECT_DIR="`dirname $IDEA_OUTPUT`"
|
||||||
# We need to handle this case first since CYGPATH might be set on WSL.
|
if [ "x$PATHTOOL" != "x" ]; then
|
||||||
if [ "x$WSL_DISTRO_NAME" != "x" ]; then
|
IDEA_PROJECT_DIR="`$PATHTOOL -am $IDEA_PROJECT_DIR`"
|
||||||
JAVAC_SOURCE_FILE=`realpath --relative-to=./ $IDEA_OUTPUT/src/idea/IdeaLoggerWrapper.java`
|
fi
|
||||||
JAVAC_SOURCE_PATH=`realpath --relative-to=./ $IDEA_OUTPUT/src`
|
echo "
|
||||||
JAVAC_CLASSES=`realpath --relative-to=./ $CLASSES`
|
Now you can open \"$IDEA_PROJECT_DIR\" as IDEA project
|
||||||
ANT_TEMP=`mktemp -d -p ./`
|
You can also run 'bash \"$IDEA_OUTPUT/jdk-clion/update-project.sh\"' to generate Clion project"
|
||||||
cp $ANT_HOME/lib/ant.jar $ANT_TEMP/ant.jar
|
fi
|
||||||
JAVAC_CP=$ANT_TEMP/ant.jar
|
|
||||||
elif [ "x$CYGPATH" != "x" ] ; then ## CYGPATH may be set in env.cfg
|
|
||||||
JAVAC_SOURCE_FILE=`$CYGPATH -am $IDEA_OUTPUT/src/idea/IdeaLoggerWrapper.java`
|
|
||||||
JAVAC_SOURCE_PATH=`$CYGPATH -am $IDEA_OUTPUT/src`
|
|
||||||
JAVAC_CLASSES=`$CYGPATH -am $CLASSES`
|
|
||||||
JAVAC_CP=`$CYGPATH -am $CP`
|
|
||||||
else
|
|
||||||
JAVAC_SOURCE_FILE=$IDEA_OUTPUT/src/idea/IdeaLoggerWrapper.java
|
|
||||||
JAVAC_SOURCE_PATH=$IDEA_OUTPUT/src
|
|
||||||
JAVAC_CLASSES=$CLASSES
|
|
||||||
JAVAC_CP=$CP
|
|
||||||
fi
|
|
||||||
|
|
||||||
$BOOT_JDK/bin/$JAVAC -d $JAVAC_CLASSES -sourcepath $JAVAC_SOURCE_PATH -cp $JAVAC_CP $JAVAC_SOURCE_FILE
|
|
||||||
|
|
||||||
if [ "x$WSL_DISTRO_NAME" != "x" ]; then
|
|
||||||
rm -rf $ANT_TEMP
|
|
||||||
fi
|
|
||||||
@@ -130,7 +130,7 @@ install_jib() {
|
|||||||
fi
|
fi
|
||||||
# Want to check the filetype using file, to see if we got served a HTML error page.
|
# Want to check the filetype using file, to see if we got served a HTML error page.
|
||||||
# This is sensitive to the filename containing a specific string, but good enough.
|
# This is sensitive to the filename containing a specific string, but good enough.
|
||||||
file "${installed_jib_script}.gz" | grep "gzip compressed data" > /dev/null
|
file ${installed_jib_script}.gz | grep "gzip compressed data" > /dev/null
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
echo "Warning: ${installed_jib_script}.gz is not a gzip file."
|
echo "Warning: ${installed_jib_script}.gz is not a gzip file."
|
||||||
echo "If you are behind a proxy you may need to configure exceptions using no_proxy."
|
echo "If you are behind a proxy you may need to configure exceptions using no_proxy."
|
||||||
|
|||||||
12
configure
vendored
Normal file → Executable file
12
configure
vendored
Normal file → Executable file
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
#
|
#
|
||||||
# Copyright (c) 2012, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -26,14 +26,10 @@
|
|||||||
# make sure that is called using bash.
|
# make sure that is called using bash.
|
||||||
|
|
||||||
# Get an absolute path to this script, since that determines the top-level directory.
|
# Get an absolute path to this script, since that determines the top-level directory.
|
||||||
source_path="$(dirname ${0})"
|
this_script_dir=`dirname $0`
|
||||||
this_script_dir="$(cd -- "${source_path}" > /dev/null && pwd)"
|
this_script_dir=`cd $this_script_dir > /dev/null && pwd`
|
||||||
if test -z "${this_script_dir}"; then
|
|
||||||
echo "Error: Could not determine location of configure script"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Delegate to wrapper, forcing wrapper to believe $0 is this script by using -c.
|
# Delegate to wrapper, forcing wrapper to believe $0 is this script by using -c.
|
||||||
# This trick is needed to get autoconf to co-operate properly.
|
# This trick is needed to get autoconf to co-operate properly.
|
||||||
# The ${-:+-$-} construction passes on bash options.
|
# The ${-:+-$-} construction passes on bash options.
|
||||||
bash ${-:+-$-} -c ". \"${this_script_dir}/make/autoconf/configure\"" "${this_script_dir}/configure" CHECKME "${this_script_dir}" "$@"
|
bash ${-:+-$-} -c ". $this_script_dir/make/autoconf/configure" $this_script_dir/configure CHECKME $this_script_dir "$@"
|
||||||
|
|||||||
1138
doc/building.html
1138
doc/building.html
File diff suppressed because it is too large
Load Diff
1745
doc/building.md
1745
doc/building.md
File diff suppressed because it is too large
Load Diff
@@ -598,17 +598,10 @@ conventions might appear jarring and reduce readability.</p></li>
|
|||||||
<code>std::nothrow</code>, and <code>std::nothrow_t</code>.</li>
|
<code>std::nothrow</code>, and <code>std::nothrow_t</code>.</li>
|
||||||
<li><code>#include <limits></code> to use
|
<li><code>#include <limits></code> to use
|
||||||
<code>std::numeric_limits</code>.</li>
|
<code>std::numeric_limits</code>.</li>
|
||||||
<li><code>#include <type_traits></code> with some restrictions,
|
<li><code>#include <type_traits></code>.</li>
|
||||||
listed below.</li>
|
|
||||||
<li><code>#include <cstddef></code> to use
|
<li><code>#include <cstddef></code> to use
|
||||||
<code>std::nullptr_t</code> and <code>std::max_align_t</code>.</li>
|
<code>std::nullptr_t</code> and <code>std::max_align_t</code>.</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>Certain restrictions apply to the declarations provided by
|
|
||||||
<code><type_traits></code>.</p>
|
|
||||||
<ul>
|
|
||||||
<li>The <code>alignof</code> operator should be used rather than
|
|
||||||
<code>std::alignment_of<></code>.</li>
|
|
||||||
</ul>
|
|
||||||
<p>TODO: Rather than directly #including (permitted) Standard Library
|
<p>TODO: Rather than directly #including (permitted) Standard Library
|
||||||
headers, use a convention of #including wrapper headers (in some
|
headers, use a convention of #including wrapper headers (in some
|
||||||
location like hotspot/shared/stdcpp). This provides a single place for
|
location like hotspot/shared/stdcpp). This provides a single place for
|
||||||
@@ -1093,8 +1086,6 @@ function name and the parameter list.</li>
|
|||||||
<h3 id="additional-permitted-features">Additional Permitted
|
<h3 id="additional-permitted-features">Additional Permitted
|
||||||
Features</h3>
|
Features</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li><p><code>alignof</code> (<a
|
|
||||||
href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2341.pdf">n2341</a>)</p></li>
|
|
||||||
<li><p><code>constexpr</code> (<a
|
<li><p><code>constexpr</code> (<a
|
||||||
href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2235.pdf">n2235</a>)
|
href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2235.pdf">n2235</a>)
|
||||||
(<a
|
(<a
|
||||||
|
|||||||
@@ -572,13 +572,9 @@ There are a few exceptions to this rule.
|
|||||||
|
|
||||||
* `#include <new>` to use placement `new`, `std::nothrow`, and `std::nothrow_t`.
|
* `#include <new>` to use placement `new`, `std::nothrow`, and `std::nothrow_t`.
|
||||||
* `#include <limits>` to use `std::numeric_limits`.
|
* `#include <limits>` to use `std::numeric_limits`.
|
||||||
* `#include <type_traits>` with some restrictions, listed below.
|
* `#include <type_traits>`.
|
||||||
* `#include <cstddef>` to use `std::nullptr_t` and `std::max_align_t`.
|
* `#include <cstddef>` to use `std::nullptr_t` and `std::max_align_t`.
|
||||||
|
|
||||||
Certain restrictions apply to the declarations provided by `<type_traits>`.
|
|
||||||
|
|
||||||
* The `alignof` operator should be used rather than `std::alignment_of<>`.
|
|
||||||
|
|
||||||
TODO: Rather than directly \#including (permitted) Standard Library
|
TODO: Rather than directly \#including (permitted) Standard Library
|
||||||
headers, use a convention of \#including wrapper headers (in some
|
headers, use a convention of \#including wrapper headers (in some
|
||||||
location like hotspot/shared/stdcpp). This provides a single place
|
location like hotspot/shared/stdcpp). This provides a single place
|
||||||
@@ -1086,9 +1082,6 @@ The following attributes are expressly forbidden:
|
|||||||
|
|
||||||
### Additional Permitted Features
|
### Additional Permitted Features
|
||||||
|
|
||||||
* `alignof`
|
|
||||||
([n2341](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2341.pdf))
|
|
||||||
|
|
||||||
* `constexpr`
|
* `constexpr`
|
||||||
([n2235](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2235.pdf))
|
([n2235](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2235.pdf))
|
||||||
([n3652](https://isocpp.org/files/papers/N3652.html))
|
([n3652](https://isocpp.org/files/papers/N3652.html))
|
||||||
|
|||||||
62
doc/ide.html
62
doc/ide.html
@@ -79,45 +79,6 @@ native source. After configuring, the project is generated using:</p>
|
|||||||
<code>ide\hotspot-visualstudio</code> subfolder of the build output
|
<code>ide\hotspot-visualstudio</code> subfolder of the build output
|
||||||
folder. The file can be opened in Visual Studio via
|
folder. The file can be opened in Visual Studio via
|
||||||
<code>File -> Open -> Project/Solution</code>.</p>
|
<code>File -> Open -> Project/Solution</code>.</p>
|
||||||
<h4 id="eclipse-cdt">Eclipse CDT</h4>
|
|
||||||
<p>The make system can generate an Eclipse CDT Workspace that enables
|
|
||||||
Eclipse indexing for the C and C++ sources throughout the entire
|
|
||||||
codebase, as well as registering all common make targets to be runnable
|
|
||||||
from the Eclipse explorer. This can be done after configuring by
|
|
||||||
running:</p>
|
|
||||||
<pre><code>make eclipse-native-env</code></pre>
|
|
||||||
<p>After this is run, simply open and import the workspace in Eclipse
|
|
||||||
through
|
|
||||||
<code>File -> Import -> Projects from Folder or Archive</code> and
|
|
||||||
at <code>Import source</code> click on the directory
|
|
||||||
<code>ide\eclipse</code>, which can be found in the build output
|
|
||||||
folder.</p>
|
|
||||||
<p>If this doesn't work, you can also try
|
|
||||||
<code>File -> Import -> Existing Projects into Workspace</code>
|
|
||||||
instead.</p>
|
|
||||||
<p>Setting up an Eclipse Workspace is relatively lightweight compared to
|
|
||||||
other supported IDEs, but requires that your CDT installation has Cross
|
|
||||||
GCC support enabled at the moment, even if you aren't cross compiling.
|
|
||||||
The Visual C++ compiler is, at present, not supported as an indexer.</p>
|
|
||||||
<p>If desired, you can instead request make to only include indexing
|
|
||||||
support for just the Java Virtual Machine instead of the entire native
|
|
||||||
codebase, by running:</p>
|
|
||||||
<pre><code>make eclipse-hotspot-env</code></pre>
|
|
||||||
<p>If you think your particular Eclipse installation can handle the
|
|
||||||
strain, the make system also supports generating a combined Java and
|
|
||||||
C/C++ Workspace for Eclipse which can then conveniently switch between
|
|
||||||
Java and C/C++ natures during development by running:</p>
|
|
||||||
<pre><code>make eclipse-mixed-env</code></pre>
|
|
||||||
<p>Do note that this generates all features that come with both Java and
|
|
||||||
C/C++ natures.</p>
|
|
||||||
<p>By default, the Eclipse Workspace is located in the ide subdirectory
|
|
||||||
in the build output. To share the JDK's source directory with the
|
|
||||||
Eclipse Workspace, you can instead run:</p>
|
|
||||||
<pre><code>make eclipse-shared-<ENV>-env</code></pre>
|
|
||||||
<p>Eclipse support in the JDK is relatively new, so do keep in mind that
|
|
||||||
not everything may work at the moment. As such, the resulting Workspace
|
|
||||||
also has compilation database parsing support enabled, so you can pass
|
|
||||||
Eclipse the compile commands file (see below) if all else fails.</p>
|
|
||||||
<h4 id="compilation-database">Compilation Database</h4>
|
<h4 id="compilation-database">Compilation Database</h4>
|
||||||
<p>The make system can generate generic native code indexing support in
|
<p>The make system can generate generic native code indexing support in
|
||||||
the form of a <a
|
the form of a <a
|
||||||
@@ -144,28 +105,5 @@ select the folder where you ran the above script.</p>
|
|||||||
<p>In order to run the tests from the IDE, you can use the JTReg plugin.
|
<p>In order to run the tests from the IDE, you can use the JTReg plugin.
|
||||||
Instructions for building and using the plugin can be found <a
|
Instructions for building and using the plugin can be found <a
|
||||||
href="https://github.com/openjdk/jtreg/tree/master/plugins/idea">here</a>.</p>
|
href="https://github.com/openjdk/jtreg/tree/master/plugins/idea">here</a>.</p>
|
||||||
<h4 id="eclipse">Eclipse</h4>
|
|
||||||
<p>Eclipse JDT is a widely used Java IDE and has been for a very long
|
|
||||||
time, being a popular choice alongside IntelliJ IDEA for Java
|
|
||||||
development. Likewise, the JDK now includes support for developing its
|
|
||||||
Java sources with Eclipse, which can be achieved by setting up a Java
|
|
||||||
Workspace by running:</p>
|
|
||||||
<pre><code>make eclipse-java-env</code></pre>
|
|
||||||
<p>After the workspace has been generated you can import it in the same
|
|
||||||
way as you would with Eclipse CDT:</p>
|
|
||||||
<p>Follow
|
|
||||||
<code>File -> Import -> Projects from Folder or Archive</code> and
|
|
||||||
select the <code>ide\eclipse</code> directory in the build output folder
|
|
||||||
to import the newly created Java Workspace.</p>
|
|
||||||
<p>If doing so results in an error, you can also import the JDK via
|
|
||||||
<code>File -> Import -> Existing Projects into Workspace</code> as
|
|
||||||
a last resort.</p>
|
|
||||||
<p>Alternatively, if you want a Java Workspace inside the JDK's source
|
|
||||||
directory, you can instead run:</p>
|
|
||||||
<pre><code>make eclipse-shared-java-env</code></pre>
|
|
||||||
<p>As mentioned above for Eclipse CDT, you can create a combined Java
|
|
||||||
and C/C++ Workspace which can conveniently switch between Java and C/C++
|
|
||||||
natures during development by running:</p>
|
|
||||||
<pre><code>make eclipse-mixed-env</code></pre>
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
94
doc/ide.md
94
doc/ide.md
@@ -56,63 +56,6 @@ This creates a file named `jvm.vcxproj` in `ide\hotspot-visualstudio`
|
|||||||
subfolder of the build output folder. The file can be opened in Visual Studio
|
subfolder of the build output folder. The file can be opened in Visual Studio
|
||||||
via `File -> Open -> Project/Solution`.
|
via `File -> Open -> Project/Solution`.
|
||||||
|
|
||||||
#### Eclipse CDT
|
|
||||||
|
|
||||||
The make system can generate an Eclipse CDT Workspace that enables Eclipse
|
|
||||||
indexing for the C and C++ sources throughout the entire codebase, as well as
|
|
||||||
registering all common make targets to be runnable from the Eclipse explorer.
|
|
||||||
This can be done after configuring by running:
|
|
||||||
|
|
||||||
```
|
|
||||||
make eclipse-native-env
|
|
||||||
```
|
|
||||||
|
|
||||||
After this is run, simply open and import the workspace in Eclipse through
|
|
||||||
`File -> Import -> Projects from Folder or Archive` and at
|
|
||||||
`Import source` click on the directory `ide\eclipse`, which can be
|
|
||||||
found in the build output folder.
|
|
||||||
|
|
||||||
If this doesn't work, you can also try
|
|
||||||
`File -> Import -> Existing Projects into Workspace`
|
|
||||||
instead.
|
|
||||||
|
|
||||||
Setting up an Eclipse Workspace is relatively lightweight compared to other
|
|
||||||
supported IDEs, but requires that your CDT installation has Cross GCC support
|
|
||||||
enabled at the moment, even if you aren't cross compiling. The Visual C++
|
|
||||||
compiler is, at present, not supported as an indexer.
|
|
||||||
|
|
||||||
If desired, you can instead request make to only include indexing support for
|
|
||||||
just the Java Virtual Machine instead of the entire native codebase, by running:
|
|
||||||
|
|
||||||
```
|
|
||||||
make eclipse-hotspot-env
|
|
||||||
```
|
|
||||||
|
|
||||||
If you think your particular Eclipse installation can handle the strain, the
|
|
||||||
make system also supports generating a combined Java and C/C++ Workspace for
|
|
||||||
Eclipse which can then conveniently switch between Java and C/C++ natures
|
|
||||||
during development by running:
|
|
||||||
|
|
||||||
```
|
|
||||||
make eclipse-mixed-env
|
|
||||||
```
|
|
||||||
|
|
||||||
Do note that this generates all features that come with both Java and C/C++
|
|
||||||
natures.
|
|
||||||
|
|
||||||
By default, the Eclipse Workspace is located in the ide subdirectory in the
|
|
||||||
build output. To share the JDK's source directory with the Eclipse Workspace,
|
|
||||||
you can instead run:
|
|
||||||
|
|
||||||
```
|
|
||||||
make eclipse-shared-<ENV>-env
|
|
||||||
```
|
|
||||||
|
|
||||||
Eclipse support in the JDK is relatively new, so do keep in mind that not
|
|
||||||
everything may work at the moment. As such, the resulting Workspace also
|
|
||||||
has compilation database parsing support enabled, so you can pass Eclipse
|
|
||||||
the compile commands file (see below) if all else fails.
|
|
||||||
|
|
||||||
#### Compilation Database
|
#### Compilation Database
|
||||||
|
|
||||||
The make system can generate generic native code indexing support in the form of
|
The make system can generate generic native code indexing support in the form of
|
||||||
@@ -153,40 +96,3 @@ as the SDK to use.
|
|||||||
In order to run the tests from the IDE, you can use the JTReg plugin.
|
In order to run the tests from the IDE, you can use the JTReg plugin.
|
||||||
Instructions for building and using the plugin can be found
|
Instructions for building and using the plugin can be found
|
||||||
[here](https://github.com/openjdk/jtreg/tree/master/plugins/idea).
|
[here](https://github.com/openjdk/jtreg/tree/master/plugins/idea).
|
||||||
|
|
||||||
#### Eclipse
|
|
||||||
|
|
||||||
Eclipse JDT is a widely used Java IDE and has been for a very long time, being
|
|
||||||
a popular choice alongside IntelliJ IDEA for Java development. Likewise, the
|
|
||||||
JDK now includes support for developing its Java sources with Eclipse, which
|
|
||||||
can be achieved by setting up a Java Workspace by running:
|
|
||||||
|
|
||||||
```
|
|
||||||
make eclipse-java-env
|
|
||||||
```
|
|
||||||
|
|
||||||
After the workspace has been generated you can import it in the same way as
|
|
||||||
you would with Eclipse CDT:
|
|
||||||
|
|
||||||
Follow `File -> Import -> Projects from Folder or Archive` and select the
|
|
||||||
`ide\eclipse` directory in the build output folder to import the newly created
|
|
||||||
Java Workspace.
|
|
||||||
|
|
||||||
If doing so results in an error, you can also import the JDK via
|
|
||||||
`File -> Import -> Existing Projects into Workspace`
|
|
||||||
as a last resort.
|
|
||||||
|
|
||||||
Alternatively, if you want a Java Workspace inside the JDK's source directory,
|
|
||||||
you can instead run:
|
|
||||||
|
|
||||||
```
|
|
||||||
make eclipse-shared-java-env
|
|
||||||
```
|
|
||||||
|
|
||||||
As mentioned above for Eclipse CDT, you can create a combined Java and C/C++
|
|
||||||
Workspace which can conveniently switch between Java and C/C++ natures during
|
|
||||||
development by running:
|
|
||||||
|
|
||||||
```
|
|
||||||
make eclipse-mixed-env
|
|
||||||
```
|
|
||||||
|
|||||||
@@ -207,22 +207,13 @@ changed, and the first N tiers they can afford to run, but at least
|
|||||||
tier1.</p>
|
tier1.</p>
|
||||||
<p>A brief description of the tiered test groups:</p>
|
<p>A brief description of the tiered test groups:</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li><p><code>tier1</code>: This is the most fundamental test tier.
|
<li><p><code>tier1</code>: This is the lowest test tier. Multiple
|
||||||
Roughly speaking, a failure of a test in this tier has the potential to
|
developers run these tests every day. Because of the widespread use, the
|
||||||
indicate a problem that would affect many Java programs. Tests in
|
tests in <code>tier1</code> are carefully selected and optimized to run
|
||||||
<code>tier1</code> include tests of HotSpot, core APIs in the
|
fast, and to run in the most stable manner. The test failures in
|
||||||
<code>java.base</code> module, and the <code>javac</code> compiler.
|
<code>tier1</code> are usually followed up on quickly, either with
|
||||||
Multiple developers run these tests every day. Because of the widespread
|
fixes, or adding relevant tests to problem list. GitHub Actions
|
||||||
use, the tests in <code>tier1</code> are carefully selected and
|
workflows, if enabled, run <code>tier1</code> tests.</p></li>
|
||||||
optimized to run fast, and to run in the most stable manner. As a
|
|
||||||
guideline, nearly all individual tests in <code>tier1</code> are
|
|
||||||
expected to run to completion in ten seconds or less when run on common
|
|
||||||
configurations used for development. Long-running tests, even of core
|
|
||||||
functionality, should occur in higher tiers or be covered in other kinds
|
|
||||||
of testing. The test failures in <code>tier1</code> are usually followed
|
|
||||||
up on quickly, either with fixes, or adding relevant tests to problem
|
|
||||||
list. GitHub Actions workflows, if enabled, run <code>tier1</code>
|
|
||||||
tests.</p></li>
|
|
||||||
<li><p><code>tier2</code>: This test group covers even more ground.
|
<li><p><code>tier2</code>: This test group covers even more ground.
|
||||||
These contain, among other things, tests that either run for too long to
|
These contain, among other things, tests that either run for too long to
|
||||||
be at <code>tier1</code>, or may require special configuration, or tests
|
be at <code>tier1</code>, or may require special configuration, or tests
|
||||||
@@ -435,14 +426,6 @@ GB/2</em>.</p>
|
|||||||
<p>Sets the argument <code>-timeoutHandlerTimeout</code> for JTReg. The
|
<p>Sets the argument <code>-timeoutHandlerTimeout</code> for JTReg. The
|
||||||
default value is 0. This is only valid if the failure handler is
|
default value is 0. This is only valid if the failure handler is
|
||||||
built.</p>
|
built.</p>
|
||||||
<h4 id="jtreg_test_thread_factory">JTREG_TEST_THREAD_FACTORY</h4>
|
|
||||||
<p>Sets the <code>-testThreadFactory</code> for JTReg. It should be the
|
|
||||||
fully qualified classname of a class which implements
|
|
||||||
<code>java.util.concurrent.ThreadFactory</code>. One such implementation
|
|
||||||
class, named Virtual, is currently part of the JDK build in the
|
|
||||||
<code>test/jtreg_test_thread_factory/</code> directory. This class gets
|
|
||||||
compiled during the test image build. The implementation of the Virtual
|
|
||||||
class creates a new virtual thread for executing each test class.</p>
|
|
||||||
<h4 id="test_mode">TEST_MODE</h4>
|
<h4 id="test_mode">TEST_MODE</h4>
|
||||||
<p>The test mode (<code>agentvm</code> or <code>othervm</code>).</p>
|
<p>The test mode (<code>agentvm</code> or <code>othervm</code>).</p>
|
||||||
<p>Defaults to <code>agentvm</code>.</p>
|
<p>Defaults to <code>agentvm</code>.</p>
|
||||||
@@ -586,15 +569,12 @@ PKCS11 tests. Improper NSS version may lead to unexpected failures which
|
|||||||
are hard to diagnose. For example,
|
are hard to diagnose. For example,
|
||||||
sun/security/pkcs11/Secmod/AddTrustedCert.java may fail on Ubuntu 18.04
|
sun/security/pkcs11/Secmod/AddTrustedCert.java may fail on Ubuntu 18.04
|
||||||
with the default NSS version in the system. To run these tests
|
with the default NSS version in the system. To run these tests
|
||||||
correctly, the system property
|
correctly, the system property <code>test.nss.lib.paths</code> is
|
||||||
<code>jdk.test.lib.artifacts.<NAME></code> is required on Ubuntu
|
required on Ubuntu 18.04 to specify the alternative NSS lib
|
||||||
18.04 to specify the alternative NSS lib directory. The
|
directories.</p>
|
||||||
<code><NAME></code> component should be replaced with the name
|
|
||||||
element of the appropriate <code>@Artifact</code> class. (See
|
|
||||||
<code>test/jdk/sun/security/pkcs11/PKCS11Test.java</code>)</p>
|
|
||||||
<p>For example:</p>
|
<p>For example:</p>
|
||||||
<pre><code>$ make test TEST="jtreg:sun/security/pkcs11/Secmod/AddTrustedCert.java" \
|
<pre><code>$ make test TEST="jtreg:sun/security/pkcs11/Secmod/AddTrustedCert.java" \
|
||||||
JTREG="JAVA_OPTIONS=-Djdk.test.lib.artifacts.nsslib-linux_aarch64=/path/to/NSS-libs"</code></pre>
|
JTREG="JAVA_OPTIONS=-Dtest.nss.lib.paths=/path/to/your/latest/NSS-libs"</code></pre>
|
||||||
<p>For more notes about the PKCS11 tests, please refer to
|
<p>For more notes about the PKCS11 tests, please refer to
|
||||||
test/jdk/sun/security/pkcs11/README.</p>
|
test/jdk/sun/security/pkcs11/README.</p>
|
||||||
<h3 id="client-ui-tests">Client UI Tests</h3>
|
<h3 id="client-ui-tests">Client UI Tests</h3>
|
||||||
|
|||||||
202
doc/testing.md
202
doc/testing.md
@@ -18,8 +18,8 @@ execute:
|
|||||||
This will run a default set of tests against the JDK, and present you with the
|
This will run a default set of tests against the JDK, and present you with the
|
||||||
results. `make test` is part of a family of test-related make targets which
|
results. `make test` is part of a family of test-related make targets which
|
||||||
simplify running tests, because they invoke the various test frameworks for
|
simplify running tests, because they invoke the various test frameworks for
|
||||||
you. The "make test framework" is simple to start with, but more complex ad-hoc
|
you. The "make test framework" is simple to start with, but more complex
|
||||||
combination of tests is also possible. You can always invoke the test
|
ad-hoc combination of tests is also possible. You can always invoke the test
|
||||||
frameworks directly if you want even more control.
|
frameworks directly if you want even more control.
|
||||||
|
|
||||||
Some example command-lines:
|
Some example command-lines:
|
||||||
@@ -33,18 +33,18 @@ Some example command-lines:
|
|||||||
$ make test TEST="micro:java.lang.reflect" MICRO="FORK=1;WARMUP_ITER=2"
|
$ make test TEST="micro:java.lang.reflect" MICRO="FORK=1;WARMUP_ITER=2"
|
||||||
$ make exploded-test TEST=tier2
|
$ make exploded-test TEST=tier2
|
||||||
|
|
||||||
"tier1" and "tier2" refer to tiered testing, see further down. "TEST" is a test
|
"tier1" and "tier2" refer to tiered testing, see further down. "TEST" is a
|
||||||
selection argument which the make test framework will use to try to find the
|
test selection argument which the make test framework will use to try to
|
||||||
tests you want. It iterates over the available test frameworks, and if the
|
find the tests you want. It iterates over the available test frameworks, and
|
||||||
test isn't present in one, it tries the next one. The main target `test` uses
|
if the test isn't present in one, it tries the next one. The main target
|
||||||
the jdk-image as the tested product. There is also an alternate target
|
`test` uses the jdk-image as the tested product. There is also an alternate
|
||||||
`exploded-test` that uses the exploded image instead. Not all tests will run
|
target `exploded-test` that uses the exploded image instead. Not all tests
|
||||||
successfully on the exploded image, but using this target can greatly improve
|
will run successfully on the exploded image, but using this target can
|
||||||
rebuild times for certain workflows.
|
greatly improve rebuild times for certain workflows.
|
||||||
|
|
||||||
Previously, `make test` was used to invoke an old system for running tests, and
|
Previously, `make test` was used to invoke an old system for running tests,
|
||||||
`make run-test` was used for the new test framework. For backward compatibility
|
and `make run-test` was used for the new test framework. For backward
|
||||||
with scripts and muscle memory, `run-test` and variants like
|
compatibility with scripts and muscle memory, `run-test` and variants like
|
||||||
`exploded-run-test` or `run-test-tier1` are kept as aliases.
|
`exploded-run-test` or `run-test-tier1` are kept as aliases.
|
||||||
|
|
||||||
### Configuration
|
### Configuration
|
||||||
@@ -64,27 +64,26 @@ after which `--with-jmh=build/jmh/jars` should work.
|
|||||||
|
|
||||||
When tests fail or timeout, jtreg runs its failure handler to capture necessary
|
When tests fail or timeout, jtreg runs its failure handler to capture necessary
|
||||||
data from the system where the test was run. This data can then be used to
|
data from the system where the test was run. This data can then be used to
|
||||||
analyze the test failures. Collecting this data involves running various
|
analyze the test failures. Collecting this data involves running various commands
|
||||||
commands (which are listed in files residing in
|
(which are listed in files residing in `test/failure_handler/src/share/conf`)
|
||||||
`test/failure_handler/src/share/conf`) and some of these commands use `sudo`.
|
and some of these commands use `sudo`. If the system's `sudoers` file isn't
|
||||||
If the system's `sudoers` file isn't configured to allow running these
|
configured to allow running these commands, then it can result in password being
|
||||||
commands, then it can result in password being prompted during the failure
|
prompted during the failure handler execution. Typically, when running locally,
|
||||||
handler execution. Typically, when running locally, collecting this additional
|
collecting this additional data isn't always necessary. To disable running the
|
||||||
data isn't always necessary. To disable running the failure handler, use
|
failure handler, use `--enable-jtreg-failure-handler=no` when running `configure`.
|
||||||
`--enable-jtreg-failure-handler=no` when running `configure`. If, however, you
|
If, however, you want to let the failure handler to run and don't want to be
|
||||||
want to let the failure handler to run and don't want to be prompted for sudo
|
prompted for sudo password, then you can configure your `sudoers` file
|
||||||
password, then you can configure your `sudoers` file appropriately. Please read
|
appropriately. Please read the necessary documentation of your operating system
|
||||||
the necessary documentation of your operating system to see how to do that;
|
to see how to do that; here we only show one possible way of doing that - edit
|
||||||
here we only show one possible way of doing that - edit the
|
the `/etc/sudoers.d/sudoers` file to include the following line:
|
||||||
`/etc/sudoers.d/sudoers` file to include the following line:
|
|
||||||
|
|
||||||
```
|
```
|
||||||
johndoe ALL=(ALL) NOPASSWD: /sbin/dmesg
|
johndoe ALL=(ALL) NOPASSWD: /sbin/dmesg
|
||||||
```
|
```
|
||||||
|
|
||||||
This line configures `sudo` to _not_ prompt for password for the `/sbin/dmesg`
|
This line configures `sudo` to _not_ prompt for password for the `/sbin/dmesg`
|
||||||
command (this is one of the commands that is listed in the files at
|
command (this is one of the commands that is listed in the files
|
||||||
`test/failure_handler/src/share/conf`), for the user `johndoe`. Here `johndoe`
|
at `test/failure_handler/src/share/conf`), for the user `johndoe`. Here `johndoe`
|
||||||
is the user account under which the jtreg tests are run. Replace the username
|
is the user account under which the jtreg tests are run. Replace the username
|
||||||
with a relevant user account of your system.
|
with a relevant user account of your system.
|
||||||
|
|
||||||
@@ -115,36 +114,31 @@ Ideally, all tests are run for every change but this may not be practical due
|
|||||||
to the limited testing resources, the scope of the change, etc.
|
to the limited testing resources, the scope of the change, etc.
|
||||||
|
|
||||||
The source tree currently defines a few common test groups in the relevant
|
The source tree currently defines a few common test groups in the relevant
|
||||||
`TEST.groups` files. There are test groups that cover a specific component, for
|
`TEST.groups` files. There are test groups that cover a specific component,
|
||||||
example `hotspot_gc`. It is a good idea to look into `TEST.groups` files to get
|
for example `hotspot_gc`. It is a good idea to look into `TEST.groups` files
|
||||||
a sense what tests are relevant to a particular JDK component.
|
to get a sense what tests are relevant to a particular JDK component.
|
||||||
|
|
||||||
Component-specific tests may miss some unintended consequences of a change, so
|
Component-specific tests may miss some unintended consequences of a change, so
|
||||||
other tests should also be run. Again, it might be impractical to run all
|
other tests should also be run. Again, it might be impractical to run all
|
||||||
tests, and therefore _tiered_ test groups exist. Tiered test groups are not
|
tests, and therefore
|
||||||
component-specific, but rather cover the significant parts of the entire JDK.
|
_tiered_ test groups exist. Tiered test groups are not component-specific, but
|
||||||
|
rather cover the significant parts of the entire JDK.
|
||||||
|
|
||||||
Multiple tiers allow balancing test coverage and testing costs. Lower test
|
Multiple tiers allow balancing test coverage and testing costs. Lower test
|
||||||
tiers are supposed to contain the simpler, quicker and more stable tests.
|
tiers are supposed to contain the simpler, quicker and more stable tests.
|
||||||
Higher tiers are supposed to contain progressively more thorough, slower, and
|
Higher tiers are supposed to contain progressively more thorough, slower, and
|
||||||
sometimes less stable tests, or the tests that require special configuration.
|
sometimes less stable tests, or the tests that require special
|
||||||
|
configuration.
|
||||||
|
|
||||||
Contributors are expected to run the tests for the areas that are changed, and
|
Contributors are expected to run the tests for the areas that are changed, and
|
||||||
the first N tiers they can afford to run, but at least tier1.
|
the first N tiers they can afford to run, but at least tier1.
|
||||||
|
|
||||||
A brief description of the tiered test groups:
|
A brief description of the tiered test groups:
|
||||||
|
|
||||||
- `tier1`: This is the most fundamental test tier. Roughly speaking, a failure
|
- `tier1`: This is the lowest test tier. Multiple developers run these tests
|
||||||
of a test in this tier has the potential to indicate a problem that would
|
every day. Because of the widespread use, the tests in `tier1` are
|
||||||
affect many Java programs. Tests in `tier1` include tests of HotSpot, core
|
carefully selected and optimized to run fast, and to run in the most stable
|
||||||
APIs in the `java.base` module, and the `javac` compiler. Multiple developers
|
manner. The test failures in `tier1` are usually followed up on quickly,
|
||||||
run these tests every day. Because of the widespread use, the tests in
|
|
||||||
`tier1` are carefully selected and optimized to run fast, and to run in the
|
|
||||||
most stable manner. As a guideline, nearly all individual tests in `tier1`
|
|
||||||
are expected to run to completion in ten seconds or less when run on common
|
|
||||||
configurations used for development. Long-running tests, even of core
|
|
||||||
functionality, should occur in higher tiers or be covered in other kinds of
|
|
||||||
testing. The test failures in `tier1` are usually followed up on quickly,
|
|
||||||
either with fixes, or adding relevant tests to problem list. GitHub Actions
|
either with fixes, or adding relevant tests to problem list. GitHub Actions
|
||||||
workflows, if enabled, run `tier1` tests.
|
workflows, if enabled, run `tier1` tests.
|
||||||
|
|
||||||
@@ -155,8 +149,9 @@ A brief description of the tiered test groups:
|
|||||||
|
|
||||||
- `tier3`: This test group includes more stressful tests, the tests for corner
|
- `tier3`: This test group includes more stressful tests, the tests for corner
|
||||||
cases not covered by previous tiers, plus the tests that require GUIs. As
|
cases not covered by previous tiers, plus the tests that require GUIs. As
|
||||||
such, this suite should either be run with low concurrency (`TEST_JOBS=1`),
|
such, this suite should either be run with low concurrency
|
||||||
or without headful tests(`JTREG_KEYWORDS=\!headful`), or both.
|
(`TEST_JOBS=1`), or without headful tests(`JTREG_KEYWORDS=\!headful`), or
|
||||||
|
both.
|
||||||
|
|
||||||
- `tier4`: This test group includes every other test not covered by previous
|
- `tier4`: This test group includes every other test not covered by previous
|
||||||
tiers. It includes, for example, `vmTestbase` suites for Hotspot, which run
|
tiers. It includes, for example, `vmTestbase` suites for Hotspot, which run
|
||||||
@@ -165,17 +160,18 @@ A brief description of the tiered test groups:
|
|||||||
|
|
||||||
### JTReg
|
### JTReg
|
||||||
|
|
||||||
JTReg tests can be selected either by picking a JTReg test group, or a
|
JTReg tests can be selected either by picking a JTReg test group, or a selection
|
||||||
selection of files or directories containing JTReg tests. Documentation can be
|
of files or directories containing JTReg tests. Documentation can be found at
|
||||||
found at [https://openjdk.org/jtreg/](https://openjdk.org/jtreg/), note
|
[https://openjdk.org/jtreg/](https://openjdk.org/jtreg/), note especially the
|
||||||
especially the extensive [FAQ](https://openjdk.org/jtreg/faq.html).
|
extensive [FAQ](https://openjdk.org/jtreg/faq.html).
|
||||||
|
|
||||||
JTReg test groups can be specified either without a test root, e.g. `:tier1`
|
JTReg test groups can be specified either without a test root, e.g. `:tier1`
|
||||||
(or `tier1`, the initial colon is optional), or with, e.g. `hotspot:tier1`,
|
(or `tier1`, the initial colon is optional), or with, e.g. `hotspot:tier1`,
|
||||||
`test/jdk:jdk_util` or `$(TOPDIR)/test/hotspot/jtreg:hotspot_all`. The test
|
`test/jdk:jdk_util` or `$(TOPDIR)/test/hotspot/jtreg:hotspot_all`. The test
|
||||||
root can be specified either as an absolute path, or a path relative to the JDK
|
root can be specified either as an absolute path, or a path relative to the
|
||||||
top directory, or the `test` directory. For simplicity, the hotspot JTReg test
|
JDK top directory, or the `test` directory. For simplicity, the hotspot
|
||||||
root, which really is `hotspot/jtreg` can be abbreviated as just `hotspot`.
|
JTReg test root, which really is `hotspot/jtreg` can be abbreviated as
|
||||||
|
just `hotspot`.
|
||||||
|
|
||||||
When specified without a test root, all matching groups from all test roots
|
When specified without a test root, all matching groups from all test roots
|
||||||
will be added. Otherwise, only the group from the specified test root will be
|
will be added. Otherwise, only the group from the specified test root will be
|
||||||
@@ -196,8 +192,8 @@ use a fully qualified test descriptor, add `jtreg:`, e.g.
|
|||||||
|
|
||||||
### Gtest
|
### Gtest
|
||||||
|
|
||||||
**Note:** To be able to run the Gtest suite, you need to configure your build
|
**Note:** To be able to run the Gtest suite, you need to configure your build to
|
||||||
to be able to find a proper version of the gtest source. For details, see the
|
be able to find a proper version of the gtest source. For details, see the
|
||||||
section ["Running Tests" in the build
|
section ["Running Tests" in the build
|
||||||
documentation](building.html#running-tests).
|
documentation](building.html#running-tests).
|
||||||
|
|
||||||
@@ -217,10 +213,10 @@ present, then `gtest:all` will be equivalent to `gtest:all/server`.
|
|||||||
|
|
||||||
### Microbenchmarks
|
### Microbenchmarks
|
||||||
|
|
||||||
Which microbenchmarks to run is selected using a regular expression following
|
Which microbenchmarks to run is selected using a regular expression
|
||||||
the `micro:` test descriptor, e.g., `micro:java.lang.reflect`. This delegates
|
following the `micro:` test descriptor, e.g., `micro:java.lang.reflect`. This
|
||||||
the test selection to JMH, meaning package name, class name and even benchmark
|
delegates the test selection to JMH, meaning package name, class name and even
|
||||||
method names can be used to select tests.
|
benchmark method names can be used to select tests.
|
||||||
|
|
||||||
Using special characters like `|` in the regular expression is possible, but
|
Using special characters like `|` in the regular expression is possible, but
|
||||||
needs to be escaped multiple times: `micro:ArrayCopy\\\\\|reflect`.
|
needs to be escaped multiple times: `micro:ArrayCopy\\\\\|reflect`.
|
||||||
@@ -297,12 +293,11 @@ normally eats `;`, the recommended usage is to write the assignment inside
|
|||||||
qoutes, e.g. `JTREG="...;..."`. This will also make sure spaces are preserved,
|
qoutes, e.g. `JTREG="...;..."`. This will also make sure spaces are preserved,
|
||||||
as in `JTREG="JAVA_OPTIONS=-XshowSettings -Xlog:gc+ref=debug"`.
|
as in `JTREG="JAVA_OPTIONS=-XshowSettings -Xlog:gc+ref=debug"`.
|
||||||
|
|
||||||
(Other ways are possible, e.g. using backslash:
|
(Other ways are possible, e.g. using backslash: `JTREG=JOBS=1\;TIMEOUT_FACTOR=8`.
|
||||||
`JTREG=JOBS=1\;TIMEOUT_FACTOR=8`. Also, as a special technique, the string
|
Also, as a special technique, the string `%20` will be replaced with space for
|
||||||
`%20` will be replaced with space for certain options, e.g.
|
certain options, e.g. `JTREG=JAVA_OPTIONS=-XshowSettings%20-Xlog:gc+ref=debug`.
|
||||||
`JTREG=JAVA_OPTIONS=-XshowSettings%20-Xlog:gc+ref=debug`. This can be useful if
|
This can be useful if you have layers of scripts and have trouble getting
|
||||||
you have layers of scripts and have trouble getting proper quoting of command
|
proper quoting of command line arguments through.)
|
||||||
line arguments through.)
|
|
||||||
|
|
||||||
As far as possible, the names of the keywords have been standardized between
|
As far as possible, the names of the keywords have been standardized between
|
||||||
test suites.
|
test suites.
|
||||||
@@ -315,8 +310,7 @@ control variable to use, then you can use the general TEST_OPTS control
|
|||||||
variable.
|
variable.
|
||||||
|
|
||||||
There are also some keywords that applies globally to the test runner system,
|
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
|
not to any specific test suites. These are also available as TEST_OPTS keywords.
|
||||||
keywords.
|
|
||||||
|
|
||||||
#### JOBS
|
#### JOBS
|
||||||
|
|
||||||
@@ -370,8 +364,8 @@ The report is stored in
|
|||||||
The test concurrency (`-concurrency`).
|
The test concurrency (`-concurrency`).
|
||||||
|
|
||||||
Defaults to TEST_JOBS (if set by `--with-test-jobs=`), otherwise it defaults to
|
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*, but
|
JOBS, except for Hotspot, where the default is *number of CPU cores/2*,
|
||||||
never more than *memory size in GB/2*.
|
but never more than *memory size in GB/2*.
|
||||||
|
|
||||||
#### TIMEOUT_FACTOR
|
#### TIMEOUT_FACTOR
|
||||||
|
|
||||||
@@ -384,15 +378,6 @@ Defaults to 4.
|
|||||||
Sets the argument `-timeoutHandlerTimeout` for JTReg. The default value is 0.
|
Sets the argument `-timeoutHandlerTimeout` for JTReg. The default value is 0.
|
||||||
This is only valid if the failure handler is built.
|
This is only valid if the failure handler is built.
|
||||||
|
|
||||||
#### JTREG_TEST_THREAD_FACTORY
|
|
||||||
|
|
||||||
Sets the `-testThreadFactory` for JTReg. It should be the fully qualified
|
|
||||||
classname of a class which implements `java.util.concurrent.ThreadFactory`. One
|
|
||||||
such implementation class, named Virtual, is currently part of the JDK build in
|
|
||||||
the `test/jtreg_test_thread_factory/` directory. This class gets compiled
|
|
||||||
during the test image build. The implementation of the Virtual class creates a
|
|
||||||
new virtual thread for executing each test class.
|
|
||||||
|
|
||||||
#### TEST_MODE
|
#### TEST_MODE
|
||||||
|
|
||||||
The test mode (`agentvm` or `othervm`).
|
The test mode (`agentvm` or `othervm`).
|
||||||
@@ -453,8 +438,9 @@ the tests to be run.
|
|||||||
|
|
||||||
Use the problem lists to select tests instead of excluding them.
|
Use the problem lists to select tests instead of excluding them.
|
||||||
|
|
||||||
Set to `true` or `false`. If `true`, JTReg will use `-match:` option, otherwise
|
Set to `true` or `false`.
|
||||||
`-exclude:` will be used. Default is `false`.
|
If `true`, JTReg will use `-match:` option, otherwise `-exclude:` will be used.
|
||||||
|
Default is `false`.
|
||||||
|
|
||||||
#### OPTIONS
|
#### OPTIONS
|
||||||
|
|
||||||
@@ -488,13 +474,15 @@ modules. If multiple modules are specified, they should be separated by space
|
|||||||
|
|
||||||
#### RETRY_COUNT
|
#### RETRY_COUNT
|
||||||
|
|
||||||
Retry failed tests up to a set number of times, until they pass. This allows to
|
Retry failed tests up to a set number of times, until they pass.
|
||||||
pass the tests with intermittent failures. Defaults to 0.
|
This allows to pass the tests with intermittent failures.
|
||||||
|
Defaults to 0.
|
||||||
|
|
||||||
#### REPEAT_COUNT
|
#### REPEAT_COUNT
|
||||||
|
|
||||||
Repeat the tests up to a set number of times, stopping at first failure. This
|
Repeat the tests up to a set number of times, stopping at first failure.
|
||||||
helps to reproduce intermittent test failures. Defaults to 0.
|
This helps to reproduce intermittent test failures.
|
||||||
|
Defaults to 0.
|
||||||
|
|
||||||
#### REPORT
|
#### REPORT
|
||||||
|
|
||||||
@@ -545,8 +533,7 @@ Same as specifying `-wi <num>`.
|
|||||||
|
|
||||||
#### WARMUP_TIME
|
#### WARMUP_TIME
|
||||||
|
|
||||||
Amount of time to spend in each warmup iteration. Same as specifying `-w
|
Amount of time to spend in each warmup iteration. Same as specifying `-w <num>`.
|
||||||
<num>`.
|
|
||||||
|
|
||||||
#### RESULTS_FORMAT
|
#### RESULTS_FORMAT
|
||||||
|
|
||||||
@@ -587,9 +574,9 @@ $ make test TEST="jtreg:test/hotspot/jtreg/containers/docker" \
|
|||||||
|
|
||||||
If your locale is non-US, some tests are likely to fail. To work around this
|
If your locale is non-US, some tests are likely to fail. To work around this
|
||||||
you can set the locale to US. On Unix platforms simply setting `LANG="en_US"`
|
you can set the locale to US. On Unix platforms simply setting `LANG="en_US"`
|
||||||
in the environment before running tests should work. On Windows or MacOS,
|
in the environment before running tests should work. On Windows or MacOS, setting
|
||||||
setting `JTREG="VM_OPTIONS=-Duser.language=en -Duser.country=US"` helps for
|
`JTREG="VM_OPTIONS=-Duser.language=en -Duser.country=US"` helps for most, but
|
||||||
most, but not all test cases.
|
not all test cases.
|
||||||
|
|
||||||
For example:
|
For example:
|
||||||
|
|
||||||
@@ -604,16 +591,14 @@ It is highly recommended to use the latest NSS version when running PKCS11
|
|||||||
tests. Improper NSS version may lead to unexpected failures which are hard to
|
tests. Improper NSS version may lead to unexpected failures which are hard to
|
||||||
diagnose. For example, sun/security/pkcs11/Secmod/AddTrustedCert.java may fail
|
diagnose. For example, sun/security/pkcs11/Secmod/AddTrustedCert.java may fail
|
||||||
on Ubuntu 18.04 with the default NSS version in the system. To run these tests
|
on Ubuntu 18.04 with the default NSS version in the system. To run these tests
|
||||||
correctly, the system property `jdk.test.lib.artifacts.<NAME>` is required on
|
correctly, the system property `test.nss.lib.paths` is required on Ubuntu 18.04
|
||||||
Ubuntu 18.04 to specify the alternative NSS lib directory. The `<NAME>`
|
to specify the alternative NSS lib directories.
|
||||||
component should be replaced with the name element of the appropriate
|
|
||||||
`@Artifact` class. (See `test/jdk/sun/security/pkcs11/PKCS11Test.java`)
|
|
||||||
|
|
||||||
For example:
|
For example:
|
||||||
|
|
||||||
```
|
```
|
||||||
$ make test TEST="jtreg:sun/security/pkcs11/Secmod/AddTrustedCert.java" \
|
$ make test TEST="jtreg:sun/security/pkcs11/Secmod/AddTrustedCert.java" \
|
||||||
JTREG="JAVA_OPTIONS=-Djdk.test.lib.artifacts.nsslib-linux_aarch64=/path/to/NSS-libs"
|
JTREG="JAVA_OPTIONS=-Dtest.nss.lib.paths=/path/to/your/latest/NSS-libs"
|
||||||
```
|
```
|
||||||
|
|
||||||
For more notes about the PKCS11 tests, please refer to
|
For more notes about the PKCS11 tests, please refer to
|
||||||
@@ -657,30 +642,29 @@ Note: restart is required to make the settings take effect.
|
|||||||
|
|
||||||
#### Robot API
|
#### Robot API
|
||||||
|
|
||||||
Most automated Client UI tests use `Robot` API to control the UI. Usually, the
|
Most automated Client UI tests use `Robot` API to control the UI. Usually,
|
||||||
default operating system settings need to be adjusted for Robot to work
|
the default operating system settings need to be adjusted for Robot
|
||||||
correctly. The detailed steps how to access and update these settings for
|
to work correctly. The detailed steps how to access and update these settings
|
||||||
different platforms are provided below.
|
for different platforms are provided below.
|
||||||
|
|
||||||
##### macOS
|
##### macOS
|
||||||
|
|
||||||
`Robot` is not permitted to control your Mac by default since macOS 10.15. To
|
`Robot` is not permitted to control your Mac by default since
|
||||||
allow it, choose Apple menu -> System Settings, click Privacy & Security; then
|
macOS 10.15. To allow it, choose Apple menu -> System Settings, click
|
||||||
click Accessibility and ensure the following apps are allowed to control your
|
Privacy & Security; then click Accessibility and ensure the following apps are
|
||||||
computer: *Java* and *Terminal*. If the tests are run from an IDE, the IDE
|
allowed to control your computer: *Java* and *Terminal*. If the tests are run
|
||||||
should be granted this permission too.
|
from an IDE, the IDE should be granted this permission too.
|
||||||
|
|
||||||
##### Windows
|
##### Windows
|
||||||
|
|
||||||
On Windows if Cygwin terminal is used to run the tests, there is a delay in
|
On Windows if Cygwin terminal is used to run the tests, there is a delay in
|
||||||
focus transfer. Usually it causes automated UI test failure. To disable the
|
focus transfer. Usually it causes automated UI test failure. To disable the
|
||||||
delay, type `regedit` in the Search and then select Registry Editor; navigate
|
delay, type `regedit` in the Search and then select Registry Editor; navigate
|
||||||
to the following key: `HKEY_CURRENT_USER\Control Panel\Desktop`; make sure the
|
to the following key: `HKEY_CURRENT_USER\Control Panel\Desktop`; make sure
|
||||||
`ForegroundLockTimeout` value is set to 0.
|
the `ForegroundLockTimeout` value is set to 0.
|
||||||
|
|
||||||
Additional information about Client UI tests configuration for various
|
Additional information about Client UI tests configuration for various operating
|
||||||
operating systems can be obtained at [Automated client GUI testing system set
|
systems can be obtained at [Automated client GUI testing system set up
|
||||||
up
|
|
||||||
requirements](https://wiki.openjdk.org/display/ClientLibs/Automated+client+GUI+testing+system+set+up+requirements)
|
requirements](https://wiki.openjdk.org/display/ClientLibs/Automated+client+GUI+testing+system+set+up+requirements)
|
||||||
|
|
||||||
## Editing this document
|
## Editing this document
|
||||||
|
|||||||
238
jb/branchdiff.py
Executable file
238
jb/branchdiff.py
Executable file
@@ -0,0 +1,238 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
import os.path
|
||||||
|
import sys
|
||||||
|
import subprocess
|
||||||
|
|
||||||
|
|
||||||
|
def fatal(msg):
|
||||||
|
sys.stderr.write(f"[fatal] {msg}\n")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
|
||||||
|
def verbose(options, *msg):
|
||||||
|
if options.verbose:
|
||||||
|
sys.stderr.write(f"[verbose] ")
|
||||||
|
sys.stderr.write(*msg)
|
||||||
|
sys.stderr.write('\n')
|
||||||
|
|
||||||
|
|
||||||
|
def first_line(str):
|
||||||
|
return "" if not str else str.splitlines()[0]
|
||||||
|
|
||||||
|
|
||||||
|
class Options:
|
||||||
|
def __init__(self):
|
||||||
|
ap = argparse.ArgumentParser(description="Show commit differences between branches of JBR git repos",
|
||||||
|
epilog="Example: %(prog)s --from origin/jbr17 --to jbr17.b469 --path "
|
||||||
|
"src/hotspot --limit 200")
|
||||||
|
ap.add_argument('--jbr', dest='jbrpath', help='path to JBR git root', required=True)
|
||||||
|
ap.add_argument('--from', dest='frombranch', help='branch to take commits from', required=True)
|
||||||
|
ap.add_argument('--to', dest='tobranch', help='branch to apply new commits to', required=True)
|
||||||
|
ap.add_argument('--path', dest='path', help='limit to changes in this path (relative to git root)')
|
||||||
|
ap.add_argument('--limit', dest='limit', help='limit to this many log entries in --jdk repo', type=int, default=-1)
|
||||||
|
ap.add_argument('--html', dest="ishtml", help="print out HTML rather than plain text", action='store_true')
|
||||||
|
ap.add_argument('-o', dest="output", help="print the list of missing commits to this file"
|
||||||
|
" to be used as exclude list later")
|
||||||
|
ap.add_argument('--exclude', dest='exclude', help='exclude commits listed in the given file '
|
||||||
|
'(can use edited -o output file as input here)')
|
||||||
|
ap.add_argument('-v', dest='verbose', help="verbose output", default=False, action='store_true')
|
||||||
|
args = ap.parse_args()
|
||||||
|
|
||||||
|
if not os.path.isdir(args.jbrpath):
|
||||||
|
fatal(f"{args.jbrpath} not a directory")
|
||||||
|
|
||||||
|
if not git_is_available():
|
||||||
|
fatal("can't run git commands; make sure git is in PATH")
|
||||||
|
|
||||||
|
self.frombranch = args.frombranch
|
||||||
|
self.tobranch = args.tobranch
|
||||||
|
self.jbrpath = args.jbrpath
|
||||||
|
self.path = args.path
|
||||||
|
self.limit = args.limit
|
||||||
|
self.exclude = args.exclude
|
||||||
|
self.output = args.output
|
||||||
|
self.ishtml = args.ishtml
|
||||||
|
self.verbose = args.verbose
|
||||||
|
|
||||||
|
class GitRepo:
|
||||||
|
def __init__(self, rootpath):
|
||||||
|
self.rootpath = rootpath
|
||||||
|
|
||||||
|
def run_git_cmd(self, git_args):
|
||||||
|
args = ["git", "-C", self.rootpath]
|
||||||
|
args.extend(git_args)
|
||||||
|
# print(f"Runnig git cmd '{' '.join(args)}'")
|
||||||
|
p = subprocess.run(args, capture_output=True, text=True)
|
||||||
|
if p.returncode != 0:
|
||||||
|
fatal(f"git returned non-zero code in {self.rootpath} ({first_line(p.stderr)})")
|
||||||
|
return p.stdout
|
||||||
|
|
||||||
|
def save_git_cmd(self, fname, git_args):
|
||||||
|
args = ["git", "-C", self.rootpath]
|
||||||
|
args.extend(git_args)
|
||||||
|
# print(f"Runnig git cmd '{' '.join(args)}'")
|
||||||
|
with open(fname, "w") as stdout_file:
|
||||||
|
p = subprocess.run(args, stdout=stdout_file)
|
||||||
|
if p.returncode != 0:
|
||||||
|
fatal(f"git returned non-zero code in {self.rootpath} ({first_line(p.stderr)})")
|
||||||
|
|
||||||
|
def current_branch(self):
|
||||||
|
branch_name = self.run_git_cmd(["branch", "--show-current"]).strip()
|
||||||
|
return branch_name
|
||||||
|
|
||||||
|
def log(self, branch, path=None, limit=None):
|
||||||
|
cmds = ["log", "--no-decorate", branch]
|
||||||
|
if limit:
|
||||||
|
cmds.extend(["-n", str(limit)])
|
||||||
|
if path:
|
||||||
|
cmds.append(path)
|
||||||
|
full_log = self.run_git_cmd(cmds)
|
||||||
|
return full_log
|
||||||
|
|
||||||
|
|
||||||
|
class Commit:
|
||||||
|
def __init__(self, lines):
|
||||||
|
self.sha = lines[0].split()[1]
|
||||||
|
self.message = ""
|
||||||
|
self.bugid = ""
|
||||||
|
|
||||||
|
# Commit message starts after one blank line
|
||||||
|
read_message = False
|
||||||
|
for l in lines:
|
||||||
|
if read_message:
|
||||||
|
self.message = l.strip()
|
||||||
|
t = self.message.split(' ')
|
||||||
|
if len(t) > 1:
|
||||||
|
bugid = t[0]
|
||||||
|
if bugid.startswith("fixup"):
|
||||||
|
bugid = t[1]
|
||||||
|
bugid = bugid.strip(":")
|
||||||
|
if bugid.startswith("JBR-") or bugid.isnumeric():
|
||||||
|
self.bugid = bugid
|
||||||
|
break
|
||||||
|
if not read_message and l == "":
|
||||||
|
read_message = True
|
||||||
|
|
||||||
|
|
||||||
|
class History:
|
||||||
|
def __init__(self, log):
|
||||||
|
log_itr = iter(log.splitlines())
|
||||||
|
self.commits = []
|
||||||
|
commit_lines = []
|
||||||
|
for line in log_itr:
|
||||||
|
if line.startswith("commit ") and len(commit_lines) > 0:
|
||||||
|
commit = Commit(commit_lines)
|
||||||
|
self.commits.append(commit)
|
||||||
|
commit_lines = []
|
||||||
|
commit_lines.append(line)
|
||||||
|
|
||||||
|
if len(commit_lines) > 0:
|
||||||
|
commit = Commit(commit_lines)
|
||||||
|
self.commits.append(commit)
|
||||||
|
|
||||||
|
def contains(self, str):
|
||||||
|
return any(str in commit.message for commit in self.commits)
|
||||||
|
|
||||||
|
def size(self):
|
||||||
|
return len(self.commits)
|
||||||
|
|
||||||
|
|
||||||
|
def print_explanation(options, jbr):
|
||||||
|
verbose(options, f"Reading history from '{jbr.rootpath}'")
|
||||||
|
if options.path:
|
||||||
|
verbose(options, f"\t(only under '{options.path}')")
|
||||||
|
if options.limit > 0:
|
||||||
|
verbose(options, f"\t(up to '{options.limit}' commits)")
|
||||||
|
verbose(options, f"Searching for missing fixes in '{options.tobranch}' compared with '{options.frombranch}'")
|
||||||
|
|
||||||
|
|
||||||
|
def git_is_available():
|
||||||
|
p = None
|
||||||
|
try:
|
||||||
|
p = subprocess.run(["git", "--help"], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
return p is not None and p.returncode == 0
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
check_python_min_requirements()
|
||||||
|
options = Options()
|
||||||
|
jbr = GitRepo(options.jbrpath)
|
||||||
|
print_explanation(options, jbr)
|
||||||
|
|
||||||
|
commits_to_save = []
|
||||||
|
try:
|
||||||
|
log_from = jbr.log(options.frombranch, options.path, options.limit)
|
||||||
|
log_to = jbr.log(options.tobranch, options.path, options.limit)
|
||||||
|
history_from = History(log_from)
|
||||||
|
history_to = History(log_to)
|
||||||
|
|
||||||
|
verbose(options, f"Read {history_from.size()} commits from '{options.frombranch}', {history_to.size()} from {options.tobranch}")
|
||||||
|
|
||||||
|
exclude_list=[]
|
||||||
|
if options.exclude:
|
||||||
|
with open(options.exclude, "r") as exclude_file:
|
||||||
|
l = exclude_file.read().split('\n')
|
||||||
|
exclude_list = list(filter(lambda line: not line.startswith("#"), l))
|
||||||
|
|
||||||
|
for c in history_from.commits:
|
||||||
|
if c.message:
|
||||||
|
verbose(options, f"Looking for commit '{c.message}'")
|
||||||
|
if c.message in exclude_list:
|
||||||
|
verbose(options, "...nope, in exclude list")
|
||||||
|
continue
|
||||||
|
if not history_to.contains(c.message):
|
||||||
|
commits_to_save.append(c)
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
fatal("Interrupted")
|
||||||
|
|
||||||
|
print_out_commits(options, commits_to_save)
|
||||||
|
save_commits_to_file(commits_to_save, options)
|
||||||
|
|
||||||
|
|
||||||
|
def save_commits_to_file(commits_to_save, options):
|
||||||
|
if len(commits_to_save) > 0 and options.output:
|
||||||
|
print()
|
||||||
|
with open(options.output, "w") as out:
|
||||||
|
for i, c in enumerate(reversed(commits_to_save)):
|
||||||
|
print(f"# {c.sha}", file=out)
|
||||||
|
print(c.message, file=out)
|
||||||
|
|
||||||
|
|
||||||
|
def print_out_commits(options, commits_to_save):
|
||||||
|
if options.ishtml:
|
||||||
|
print("<html><body>")
|
||||||
|
print(f"<p><b>Commits on <code>{options.frombranch}</code>"
|
||||||
|
f" missing from <code>{options.tobranch}</code></b></p></h1>")
|
||||||
|
if len(commits_to_save) > 0:
|
||||||
|
for c in sorted(commits_to_save, key=lambda commit: commit.bugid):
|
||||||
|
if options.ishtml:
|
||||||
|
msg = c.message
|
||||||
|
bugurl = ""
|
||||||
|
if c.bugid:
|
||||||
|
if c.bugid.isnumeric():
|
||||||
|
bugurl = f"https://bugs.openjdk.org/browse/JDK-{c.bugid}"
|
||||||
|
elif c.bugid.startswith("JBR-"):
|
||||||
|
bugurl = f"https://youtrack.jetbrains.com/issue/{c.bugid}"
|
||||||
|
|
||||||
|
if len(bugurl) > 0:
|
||||||
|
msg = msg.replace(c.bugid, f"<a href='{bugurl}'>{c.bugid}</a>")
|
||||||
|
|
||||||
|
sha = f"<a href='https://jetbrains.team/p/jbre/repositories/jbr/commits?commits={c.sha}'>" \
|
||||||
|
f"{c.sha[0:8]}</a>"
|
||||||
|
print(f"<li>{msg} ({sha})</li>")
|
||||||
|
else:
|
||||||
|
print(f"{c.message} ({c.sha[0:8]})")
|
||||||
|
if options.ishtml:
|
||||||
|
print("</body></html>")
|
||||||
|
|
||||||
|
def check_python_min_requirements():
|
||||||
|
if sys.version_info < (3, 6):
|
||||||
|
fatal("Minimum version 3.6 is required to run this script")
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
||||||
230
jb/jdkdiff.py
Executable file
230
jb/jdkdiff.py
Executable file
@@ -0,0 +1,230 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
import math
|
||||||
|
import os.path
|
||||||
|
import sys
|
||||||
|
import subprocess
|
||||||
|
|
||||||
|
|
||||||
|
def fatal(msg):
|
||||||
|
sys.stderr.write(f"[fatal] {msg}\n")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
|
||||||
|
def verbose(options, *msg):
|
||||||
|
if options.verbose:
|
||||||
|
sys.stdout.write(f"[verbose] ")
|
||||||
|
sys.stdout.write(*msg)
|
||||||
|
sys.stdout.write('\n')
|
||||||
|
|
||||||
|
|
||||||
|
def first_line(str):
|
||||||
|
return "" if not str else str.splitlines()[0]
|
||||||
|
|
||||||
|
|
||||||
|
class Options:
|
||||||
|
def __init__(self):
|
||||||
|
ap = argparse.ArgumentParser(description="Show bugfixes differences between JBR and OpenJDK git repos",
|
||||||
|
epilog="Example: %(prog)s --jdk ./jdk11u/ --jbr ./JetBrainsRuntime/ --path src/hotspot --limit 200")
|
||||||
|
ap.add_argument('--jdk', dest='jdkpath', help='path to OpenJDK git repo', required=True)
|
||||||
|
ap.add_argument('--jbr', dest='jbrpath', help='path to JBR git repo', required=True)
|
||||||
|
ap.add_argument('--path', dest='path', help='limit to changes in this path (relative to git root)')
|
||||||
|
ap.add_argument('--limit', dest='limit', help='limit to this many log entries in --jdk repo', type=int, default=-1)
|
||||||
|
ap.add_argument('-o', dest="output_dir", help="save patches to this directory (created if necessary)")
|
||||||
|
ap.add_argument('-v', dest='verbose', help="verbose output", default=False, action='store_true')
|
||||||
|
args = ap.parse_args()
|
||||||
|
|
||||||
|
if not os.path.isdir(args.jdkpath):
|
||||||
|
fatal(f"{args.jdkpath} not a directory")
|
||||||
|
|
||||||
|
if not os.path.isdir(args.jbrpath):
|
||||||
|
fatal(f"{args.jbrpath} not a directory")
|
||||||
|
|
||||||
|
if not git_is_available():
|
||||||
|
fatal("can't run git commands; make sure git is in PATH")
|
||||||
|
|
||||||
|
self.jdkpath = args.jdkpath
|
||||||
|
self.jbrpath = args.jbrpath
|
||||||
|
self.path = args.path
|
||||||
|
self.limit = args.limit
|
||||||
|
self.output_dir = args.output_dir
|
||||||
|
self.verbose = args.verbose
|
||||||
|
|
||||||
|
|
||||||
|
class GitRepo:
|
||||||
|
def __init__(self, rootpath):
|
||||||
|
self.rootpath = rootpath
|
||||||
|
|
||||||
|
def run_git_cmd(self, git_args):
|
||||||
|
args = ["git", "-C", self.rootpath]
|
||||||
|
args.extend(git_args)
|
||||||
|
# print(f"Runnig git cmd '{' '.join(args)}'")
|
||||||
|
p = subprocess.run(args, capture_output=True, text=True)
|
||||||
|
if p.returncode != 0:
|
||||||
|
fatal(f"git returned non-zero code in {self.rootpath} ({first_line(p.stderr)})")
|
||||||
|
return p.stdout
|
||||||
|
|
||||||
|
def save_git_cmd(self, fname, git_args):
|
||||||
|
args = ["git", "-C", self.rootpath]
|
||||||
|
args.extend(git_args)
|
||||||
|
# print(f"Runnig git cmd '{' '.join(args)}'")
|
||||||
|
with open(fname, "w") as stdout_file:
|
||||||
|
p = subprocess.run(args, stdout=stdout_file)
|
||||||
|
if p.returncode != 0:
|
||||||
|
fatal(f"git returned non-zero code in {self.rootpath} ({first_line(p.stderr)})")
|
||||||
|
|
||||||
|
def current_branch(self):
|
||||||
|
branch_name = self.run_git_cmd(["branch", "--show-current"]).strip()
|
||||||
|
return branch_name
|
||||||
|
|
||||||
|
def log(self, path=None, limit=None):
|
||||||
|
cmds = ["log", "--no-decorate"]
|
||||||
|
if limit:
|
||||||
|
cmds.extend(["-n", str(limit)])
|
||||||
|
if path:
|
||||||
|
cmds.append(path)
|
||||||
|
full_log = self.run_git_cmd(cmds)
|
||||||
|
return full_log
|
||||||
|
|
||||||
|
|
||||||
|
class Commit:
|
||||||
|
def __init__(self, lines):
|
||||||
|
self.sha = lines[0].split()[1]
|
||||||
|
self.message = ""
|
||||||
|
self.bugid = None
|
||||||
|
|
||||||
|
# Commit message starts after one blank line
|
||||||
|
read_message = False
|
||||||
|
for l in lines:
|
||||||
|
if read_message:
|
||||||
|
self.message += l + "\n"
|
||||||
|
if not read_message and l == "":
|
||||||
|
read_message = True
|
||||||
|
|
||||||
|
if self.message and self.message != "" and ":" in self.message:
|
||||||
|
maybe_bugid = self.message.split(":")[0].strip()
|
||||||
|
if 10 >= len(maybe_bugid) >= 4:
|
||||||
|
self.bugid = maybe_bugid
|
||||||
|
|
||||||
|
|
||||||
|
class History:
|
||||||
|
def __init__(self, log):
|
||||||
|
log_itr = iter(log.splitlines())
|
||||||
|
self.commits = []
|
||||||
|
commit_lines = []
|
||||||
|
for line in log_itr:
|
||||||
|
if line.startswith("commit ") and len(commit_lines) > 0:
|
||||||
|
commit = Commit(commit_lines)
|
||||||
|
self.commits.append(commit)
|
||||||
|
commit_lines = []
|
||||||
|
commit_lines.append(line)
|
||||||
|
|
||||||
|
if len(commit_lines) > 0:
|
||||||
|
commit = Commit(commit_lines)
|
||||||
|
self.commits.append(commit)
|
||||||
|
|
||||||
|
def contains(self, str):
|
||||||
|
return any(str in commit.message for commit in self.commits)
|
||||||
|
|
||||||
|
def size(self):
|
||||||
|
return len(self.commits)
|
||||||
|
|
||||||
|
|
||||||
|
def print_explanation(options, jdk, jbr):
|
||||||
|
verbose(options, f"Reading history from '{jdk.rootpath}' on branch '{jdk.current_branch()}'")
|
||||||
|
if options.path:
|
||||||
|
verbose(options, f"\t(only under '{options.path}')")
|
||||||
|
verbose(options, f"Searching for same fixes in '{jbr.rootpath}' on branch '{jbr.current_branch()}'")
|
||||||
|
|
||||||
|
|
||||||
|
def git_is_available():
|
||||||
|
p = None
|
||||||
|
try:
|
||||||
|
p = subprocess.run(["git", "--help"], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
return p is not None and p.returncode == 0
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
check_python_min_requirements()
|
||||||
|
|
||||||
|
options = Options()
|
||||||
|
|
||||||
|
jdk = GitRepo(options.jdkpath)
|
||||||
|
jbr = GitRepo(options.jbrpath)
|
||||||
|
|
||||||
|
print_explanation(options, jdk, jbr)
|
||||||
|
|
||||||
|
commits_to_save = []
|
||||||
|
try:
|
||||||
|
jdk_log = jdk.log(options.path, options.limit)
|
||||||
|
jdk_history = History(jdk_log)
|
||||||
|
|
||||||
|
jbr_log = jbr.log(options.path)
|
||||||
|
jbr_history = History(jbr_log)
|
||||||
|
|
||||||
|
verbose(options, f"Read {jdk_history.size()} commits in JDK, {jbr_history.size()} in JBR")
|
||||||
|
|
||||||
|
for c in jdk_history.commits:
|
||||||
|
if c.bugid:
|
||||||
|
verbose(options, f"Looking for bugfix for {c.bugid}")
|
||||||
|
if not jbr_history.contains(c.bugid):
|
||||||
|
commits_to_save.append(c)
|
||||||
|
print(f"[note] Fix for {c.bugid} not found in JBR ({jbr.rootpath})")
|
||||||
|
print(f" commit {c.sha}")
|
||||||
|
print(f" {first_line(c.message).strip()}")
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
fatal("Interrupted")
|
||||||
|
|
||||||
|
if len(commits_to_save) > 0 and options.output_dir:
|
||||||
|
print()
|
||||||
|
if not os.path.exists(options.output_dir):
|
||||||
|
verbose(options, f"Creating output directory {options.output_dir}")
|
||||||
|
os.makedirs(options.output_dir)
|
||||||
|
nzeroes = len(str(len(commits_to_save)))
|
||||||
|
for i, c in enumerate(reversed(commits_to_save)):
|
||||||
|
fname = os.path.join(options.output_dir, f"{str(i).zfill(nzeroes)}-{c.bugid}.patch")
|
||||||
|
print(f"[note] {c.bugid} saved as {fname}")
|
||||||
|
fname = os.path.abspath(fname)
|
||||||
|
jdk.save_git_cmd(fname, ["format-patch", "-1", c.sha, "--stdout"])
|
||||||
|
|
||||||
|
script_fname = os.path.join(options.output_dir, "apply.sh")
|
||||||
|
with open(script_fname, "w") as script_file:
|
||||||
|
print(apply_script_code.format(os.path.abspath(jbr.rootpath), os.path.abspath(options.output_dir)),
|
||||||
|
file=script_file)
|
||||||
|
print(f"[note] Execute 'bash {script_fname}' to apply patches to {jbr.rootpath}")
|
||||||
|
|
||||||
|
|
||||||
|
def check_python_min_requirements():
|
||||||
|
if sys.version_info < (3, 6):
|
||||||
|
fatal("Minimum version 3.6 is required to run this script")
|
||||||
|
|
||||||
|
|
||||||
|
apply_script_code = """
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
GITROOT={0}
|
||||||
|
PATCHROOT={1}
|
||||||
|
|
||||||
|
cd $PATCHROOT || exit 1
|
||||||
|
PATCHES=$(find $PATCHROOT -name '*.patch' | sort -n)
|
||||||
|
|
||||||
|
for P in $PATCHES; do
|
||||||
|
git -C $GITROOT am $P
|
||||||
|
if [ $? != 0 ]; then
|
||||||
|
mv "$P" "$P.failed"
|
||||||
|
echo "[ERROR] Patch $P did not apply cleanly. Try applying it manually."
|
||||||
|
echo "[NOTE] Execute this script to apply the remaining patches."
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
mv "$P" "$P.done"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "[NOTE] Done applying patches; check $PATCHROOT for .patch and .patch.failed to see if all have been applied."
|
||||||
|
"""
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
||||||
13
jb/project/docker/Dockerfile
Normal file
13
jb/project/docker/Dockerfile
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# jetbrains/runtime:jbr15env
|
||||||
|
FROM centos:7
|
||||||
|
RUN yum -y install centos-release-scl
|
||||||
|
RUN yum -y install devtoolset-8
|
||||||
|
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 libXrandr-devel libXi-devel git
|
||||||
|
# Install Java 16
|
||||||
|
RUN wget https://cdn.azul.com/zulu/bin/zulu17.28.13-ca-jdk17.0.0-linux_x64.tar.gz \
|
||||||
|
-O - | tar xz -C /
|
||||||
|
RUN mv /zulu17.28.13-ca-jdk17.0.0-linux_x64 /jdk17.0.0
|
||||||
|
ENV PATH /opt/rh/devtoolset-8/root/usr/bin:$PATH
|
||||||
|
RUN mkdir .git
|
||||||
|
RUN git config user.email "teamcity@jetbrains.com"
|
||||||
|
RUN git config user.name "builduser"
|
||||||
48
jb/project/docker/Dockerfile.aarch64
Normal file
48
jb/project/docker/Dockerfile.aarch64
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
# NOTE: This Dockerfile is meant to be used from the mkdocker_aarch64.sh script.
|
||||||
|
|
||||||
|
# Pull a concrete version of Linux that does NOT recieve updates after it's
|
||||||
|
# been created. This is so that the image is as stable as possible to make
|
||||||
|
# image creation reproducible.
|
||||||
|
# NB: this also means there may be no security-related fixes there, need to
|
||||||
|
# move the version to the next manually.
|
||||||
|
FROM arm64v8/ubuntu:focal-20211006
|
||||||
|
|
||||||
|
# Install the necessary build tools
|
||||||
|
RUN export DEBIAN_FRONTEND=noninteractive \
|
||||||
|
export DEBCONF_NONINTERACTIVE_SEEN=true && \
|
||||||
|
echo 'tzdata tzdata/Areas select Etc' | debconf-set-selections; \
|
||||||
|
echo 'tzdata tzdata/Zones/Etc select UTC' | debconf-set-selections; \
|
||||||
|
apt-get update -qy && \
|
||||||
|
apt-get install -qy \
|
||||||
|
autoconf \
|
||||||
|
build-essential \
|
||||||
|
bzip2 \
|
||||||
|
file \
|
||||||
|
g++-10=10.3.0-1ubuntu1~20.04 \
|
||||||
|
gcc-10=10.3.0-1ubuntu1~20.04 \
|
||||||
|
git \
|
||||||
|
libasound2-dev \
|
||||||
|
libcups2-dev \
|
||||||
|
libfontconfig1-dev \
|
||||||
|
libx11-dev \
|
||||||
|
libxext-dev \
|
||||||
|
libxrandr-dev \
|
||||||
|
libxrender-dev \
|
||||||
|
libxt-dev \
|
||||||
|
libxtst-dev \
|
||||||
|
make \
|
||||||
|
rsync \
|
||||||
|
tar \
|
||||||
|
unzip \
|
||||||
|
zip && \
|
||||||
|
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100 --slave /usr/bin/g++ g++ /usr/bin/g++-10 && \
|
||||||
|
apt-get clean -qy && \
|
||||||
|
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||||
|
|
||||||
|
# Set up boot JDK for building
|
||||||
|
COPY boot_jdk.tar.gz /jdk17/
|
||||||
|
RUN cd /jdk17 && tar --strip-components=1 -xzf boot_jdk.tar.gz && rm /jdk17/boot_jdk.tar.gz
|
||||||
|
ENV BOOT_JDK=/jdk17
|
||||||
|
|
||||||
|
RUN git config --global user.email "teamcity@jetbrains.com" && \
|
||||||
|
git config --global user.name "builduser"
|
||||||
22
jb/project/docker/Dockerfile.musl_aarch64
Normal file
22
jb/project/docker/Dockerfile.musl_aarch64
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
# NOTE: This Dockerfile is meant to be used from the mkdocker_musl_aarch64.sh script.
|
||||||
|
|
||||||
|
# Pull a concrete version of Linux that does NOT recieve updates after it's
|
||||||
|
# been created. This is so that the image is as stable as possible to make
|
||||||
|
# image creation reproducible.
|
||||||
|
# NB: this also means there may be no security-related fixes there, need to
|
||||||
|
# move the version to the next manually.
|
||||||
|
FROM arm64v8/alpine:3.12
|
||||||
|
|
||||||
|
# Install the necessary build tools
|
||||||
|
RUN apk --no-cache add --update bash grep tar zip bzip2 rsync fontconfig build-base \
|
||||||
|
git libx11-dev libxext-dev libxrandr-dev libxrender-dev libxt-dev \
|
||||||
|
libxtst-dev autoconf freetype-dev cups-dev alsa-lib-dev file \
|
||||||
|
fontconfig fontconfig-dev linux-headers
|
||||||
|
|
||||||
|
# Set up boot JDK for building
|
||||||
|
COPY boot_jdk_musl_aarch64.tar.gz /jdk17/
|
||||||
|
RUN cd /jdk17 && tar --strip-components=1 -xzf boot_jdk_musl_aarch64.tar.gz && rm /jdk17/boot_jdk_musl_aarch64.tar.gz
|
||||||
|
ENV BOOT_JDK=/jdk17
|
||||||
|
|
||||||
|
RUN git config --global user.email "teamcity@jetbrains.com" && \
|
||||||
|
git config --global user.name "builduser"
|
||||||
22
jb/project/docker/Dockerfile.musl_x64
Normal file
22
jb/project/docker/Dockerfile.musl_x64
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
# NOTE: This Dockerfile is meant to be used from the mkdocker_musl_x64.sh script.
|
||||||
|
|
||||||
|
# Pull a concrete version of Linux that does NOT recieve updates after it's
|
||||||
|
# been created. This is so that the image is as stable as possible to make
|
||||||
|
# image creation reproducible.
|
||||||
|
# NB: this also means there may be no security-related fixes there, need to
|
||||||
|
# move the version to the next manually.
|
||||||
|
FROM alpine:3.14
|
||||||
|
|
||||||
|
# Install the necessary build tools
|
||||||
|
RUN apk --no-cache add --update bash grep tar zip bzip2 rsync fontconfig build-base \
|
||||||
|
git libx11-dev libxext-dev libxrandr-dev libxrender-dev libxt-dev \
|
||||||
|
libxtst-dev autoconf freetype-dev cups-dev alsa-lib-dev file \
|
||||||
|
fontconfig fontconfig-dev linux-headers
|
||||||
|
|
||||||
|
# Set up boot JDK for building
|
||||||
|
COPY boot_jdk_musl_amd64.tar.gz /jdk17/
|
||||||
|
RUN cd /jdk17 && tar --strip-components=1 -xzf boot_jdk_musl_amd64.tar.gz && rm /jdk17/boot_jdk_musl_amd64.tar.gz
|
||||||
|
ENV BOOT_JDK=/jdk17
|
||||||
|
|
||||||
|
RUN git config --global user.email "teamcity@jetbrains.com" && \
|
||||||
|
git config --global user.name "builduser"
|
||||||
55
jb/project/docker/Dockerfile.x86
Normal file
55
jb/project/docker/Dockerfile.x86
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
# NOTE: This Dockerfile is meant to be used from the mkdocker_x86.sh script.
|
||||||
|
|
||||||
|
# Pull a concrete version of Linux that does NOT receive updates after it's
|
||||||
|
# been created. This is so that the image is as stable as possible to make
|
||||||
|
# image creation reproducible.
|
||||||
|
# NB: this also means there may be no security-related fixes there, need to
|
||||||
|
# move the version to the next manually.
|
||||||
|
#FROM i386/ubuntu:xenial
|
||||||
|
#FROM i386/ubuntu:bionic
|
||||||
|
FROM i386/ubuntu:focal
|
||||||
|
|
||||||
|
RUN linux32 \
|
||||||
|
apt-get update && apt-get install -y --no-install-recommends apt-utils
|
||||||
|
RUN export DEBIAN_FRONTEND=noninteractive \
|
||||||
|
export DEBCONF_NONINTERACTIVE_SEEN=true && \
|
||||||
|
echo 'tzdata tzdata/Areas select Etc' | debconf-set-selections; \
|
||||||
|
echo 'tzdata tzdata/Zones/Etc select UTC' | debconf-set-selections; \
|
||||||
|
linux32 \
|
||||||
|
apt-get -y install \
|
||||||
|
autoconf \
|
||||||
|
build-essential \
|
||||||
|
curl \
|
||||||
|
file \
|
||||||
|
git \
|
||||||
|
libx11-dev \
|
||||||
|
libxext-dev \
|
||||||
|
libxrender-dev \
|
||||||
|
libxrandr-dev \
|
||||||
|
libxtst-dev \
|
||||||
|
libxt-dev \
|
||||||
|
libcups2-dev \
|
||||||
|
libasound2-data \
|
||||||
|
# libpng12-0 \
|
||||||
|
libasound2 \
|
||||||
|
libfreetype6 \
|
||||||
|
libfontconfig1-dev \
|
||||||
|
libasound2-dev \
|
||||||
|
rsync \
|
||||||
|
unzip \
|
||||||
|
zip
|
||||||
|
RUN linux32 \
|
||||||
|
apt-get -y install \
|
||||||
|
g++-10 \
|
||||||
|
gcc-10 && \
|
||||||
|
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100 --slave /usr/bin/g++ g++ /usr/bin/g++-10 && \
|
||||||
|
apt-get clean -qy && \
|
||||||
|
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||||
|
|
||||||
|
# Set up boot JDK for building
|
||||||
|
COPY boot_jdk_x86.tar.gz /jdk17/
|
||||||
|
RUN cd /jdk17 && tar --strip-components=1 -xzf boot_jdk_x86.tar.gz && rm /jdk17/boot_jdk_x86.tar.gz
|
||||||
|
ENV BOOT_JDK=/jdk17
|
||||||
|
|
||||||
|
RUN git config --global user.email "teamcity@jetbrains.com" && \
|
||||||
|
git config --global user.name "builduser"
|
||||||
29
jb/project/docker/mkdocker_aarch64.sh
Executable file
29
jb/project/docker/mkdocker_aarch64.sh
Executable file
@@ -0,0 +1,29 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
set -x
|
||||||
|
|
||||||
|
# This script creates a Docker image suitable for building AArch64 variant
|
||||||
|
# of the JetBrains Runtime "dev" version.
|
||||||
|
|
||||||
|
BOOT_JDK_REMOTE_FILE=zulu17.30.15-ca-jdk17.0.1-linux_aarch64.tar.gz
|
||||||
|
BOOT_JDK_SHA=4d9c9116eb0cdd2d7fb220d6d27059f4bf1b7e95cc93d5512bd8ce3791af86c7
|
||||||
|
BOOT_JDK_LOCAL_FILE=boot_jdk.tar.gz
|
||||||
|
|
||||||
|
if [ ! -f $BOOT_JDK_LOCAL_FILE ]; then
|
||||||
|
# Obtain "boot JDK" from outside of the container.
|
||||||
|
wget -nc https://cdn.azul.com/zulu/bin/${BOOT_JDK_REMOTE_FILE} -O $BOOT_JDK_LOCAL_FILE
|
||||||
|
else
|
||||||
|
echo "boot JDK \"$BOOT_JDK_LOCAL_FILE\" present, skipping download"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Verify that what we've downloaded can be trusted.
|
||||||
|
sha256sum -c - <<EOF
|
||||||
|
$BOOT_JDK_SHA *$BOOT_JDK_LOCAL_FILE
|
||||||
|
EOF
|
||||||
|
|
||||||
|
docker build -t jbrdevenv_arm64v8 -f Dockerfile.aarch64 .
|
||||||
|
|
||||||
|
# NB: the resulting container can (and should) be used without the network
|
||||||
|
# connection (--network none) during build in order to reduce the chance
|
||||||
|
# of build contamination.
|
||||||
29
jb/project/docker/mkdocker_musl_aarch64.sh
Executable file
29
jb/project/docker/mkdocker_musl_aarch64.sh
Executable file
@@ -0,0 +1,29 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
set -x
|
||||||
|
|
||||||
|
# This script creates a Docker image suitable for building musl AArch64 variant
|
||||||
|
# of the JetBrains Runtime version 17.
|
||||||
|
|
||||||
|
BOOT_JDK_REMOTE_FILE=zulu17.32.13-ca-jdk17.0.2-linux_musl_aarch64.tar.gz
|
||||||
|
BOOT_JDK_SHA=6b920559abafbe9bdef386a20ecf3a2f318bc1f0d8359eb1f95aee26606bbc70
|
||||||
|
BOOT_JDK_LOCAL_FILE=boot_jdk_musl_aarch64.tar.gz
|
||||||
|
|
||||||
|
if [ ! -f $BOOT_JDK_LOCAL_FILE ]; then
|
||||||
|
# Obtain "boot JDK" from outside of the container.
|
||||||
|
wget -nc https://cdn.azul.com/zulu/bin/${BOOT_JDK_REMOTE_FILE} -O $BOOT_JDK_LOCAL_FILE
|
||||||
|
else
|
||||||
|
echo "boot JDK \"$BOOT_JDK_LOCAL_FILE\" present, skipping download"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Verify that what we've downloaded can be trusted.
|
||||||
|
sha256sum -c - <<EOF
|
||||||
|
$BOOT_JDK_SHA *$BOOT_JDK_LOCAL_FILE
|
||||||
|
EOF
|
||||||
|
|
||||||
|
docker build -t jbr17buildenv -f Dockerfile.musl_aarch64 .
|
||||||
|
|
||||||
|
# NB: the resulting container can (and should) be used without the network
|
||||||
|
# connection (--network none) during build in order to reduce the chance
|
||||||
|
# of build contamination.
|
||||||
29
jb/project/docker/mkdocker_musl_x64.sh
Executable file
29
jb/project/docker/mkdocker_musl_x64.sh
Executable file
@@ -0,0 +1,29 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
set -x
|
||||||
|
|
||||||
|
# This script creates a Docker image suitable for building musl-x64 variant
|
||||||
|
# of the JetBrains Runtime version 17.
|
||||||
|
|
||||||
|
BOOT_JDK_REMOTE_FILE=zulu17.32.13-ca-jdk17.0.2-linux_musl_x64.tar.gz
|
||||||
|
BOOT_JDK_SHA=bcc5342011bd9f3643372aadbdfa68d47463ff0d8621668a0bdf2910614d95c6
|
||||||
|
BOOT_JDK_LOCAL_FILE=boot_jdk_musl_amd64.tar.gz
|
||||||
|
|
||||||
|
if [ ! -f $BOOT_JDK_LOCAL_FILE ]; then
|
||||||
|
# Obtain "boot JDK" from outside of the container.
|
||||||
|
wget -nc https://cdn.azul.com/zulu/bin/${BOOT_JDK_REMOTE_FILE} -O $BOOT_JDK_LOCAL_FILE
|
||||||
|
else
|
||||||
|
echo "boot JDK \"$BOOT_JDK_LOCAL_FILE\" present, skipping download"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Verify that what we've downloaded can be trusted.
|
||||||
|
sha256sum -c - <<EOF
|
||||||
|
$BOOT_JDK_SHA *$BOOT_JDK_LOCAL_FILE
|
||||||
|
EOF
|
||||||
|
|
||||||
|
docker build -t jbr17buildenv -f Dockerfile.musl_x64 .
|
||||||
|
|
||||||
|
# NB: the resulting container can (and should) be used without the network
|
||||||
|
# connection (--network none) during build in order to reduce the chance
|
||||||
|
# of build contamination.
|
||||||
26
jb/project/docker/mkdocker_x86.sh
Executable file
26
jb/project/docker/mkdocker_x86.sh
Executable file
@@ -0,0 +1,26 @@
|
|||||||
|
#!/bin/bash -x
|
||||||
|
|
||||||
|
# This script creates a Docker image suitable for building x86 variant
|
||||||
|
# of the JetBrains Runtime version 17.
|
||||||
|
|
||||||
|
BOOT_JDK_REMOTE_FILE=zulu17.34.19-ca-jdk17.0.3-linux_i686.tar.gz
|
||||||
|
BOOT_JDK_SHA=1c35c374ba0001e675d6e80819d5be900c4e141636d5e484992a8c550be14481
|
||||||
|
BOOT_JDK_LOCAL_FILE=boot_jdk_x86.tar.gz
|
||||||
|
|
||||||
|
if [ ! -f $BOOT_JDK_LOCAL_FILE ]; then
|
||||||
|
# Obtain "boot JDK" from outside of the container.
|
||||||
|
wget -nc https://cdn.azul.com/zulu/bin/${BOOT_JDK_REMOTE_FILE} -O $BOOT_JDK_LOCAL_FILE
|
||||||
|
else
|
||||||
|
echo "boot JDK \"$BOOT_JDK_LOCAL_FILE\" present, skipping download"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Verify that what we've downloaded can be trusted.
|
||||||
|
sha256sum -c - <<EOF
|
||||||
|
$BOOT_JDK_SHA *$BOOT_JDK_LOCAL_FILE
|
||||||
|
EOF
|
||||||
|
|
||||||
|
docker build -t jetbrains/runtime:jbr17env_x86 -f Dockerfile.x86 .
|
||||||
|
|
||||||
|
# NB: the resulting container can (and should) be used without the network
|
||||||
|
# connection (--network none) during build in order to reduce the chance
|
||||||
|
# of build contamination.
|
||||||
1
jb/project/idea-project-files/jdk-clion/.idea/.name
generated
Normal file
1
jb/project/idea-project-files/jdk-clion/.idea/.name
generated
Normal file
@@ -0,0 +1 @@
|
|||||||
|
JetBrainsRuntime
|
||||||
20
jb/project/idea-project-files/jdk-clion/.idea/vcs.xml
generated
Normal file
20
jb/project/idea-project-files/jdk-clion/.idea/vcs.xml
generated
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="IssueNavigationConfiguration">
|
||||||
|
<option name="links">
|
||||||
|
<list>
|
||||||
|
<IssueNavigationLink>
|
||||||
|
<option name="issueRegexp" value="(?:^|\s|\p{Punct})([A-Z]+\-\d+)(?=$|\s|\p{Punct})" />
|
||||||
|
<option name="linkRegexp" value="https://youtrack.jetbrains.com/issue/$1" />
|
||||||
|
</IssueNavigationLink>
|
||||||
|
<IssueNavigationLink>
|
||||||
|
<option name="issueRegexp" value="(?:^|\s|\p{Punct})(?:JDK-)?(\d{7})(?=$|\s|\p{Punct})" />
|
||||||
|
<option name="linkRegexp" value="https://bugs.openjdk.java.net/browse/JDK-$1" />
|
||||||
|
</IssueNavigationLink>
|
||||||
|
</list>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="$PROJECT_DIR$/../.." vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
13
jb/project/idea-project-files/jetbrains.api.iml
Normal file
13
jb/project/idea-project-files/jetbrains.api.iml
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module type="JAVA_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||||
|
<exclude-output />
|
||||||
|
<content url="file://$MODULE_DIR$/src/jetbrains.api">
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$/src/jetbrains.api/src" isTestSource="false" />
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$/src/jetbrains.api/templates" isTestSource="false" />
|
||||||
|
</content>
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
<orderEntry type="inheritedJdk" />
|
||||||
|
</component>
|
||||||
|
</module>
|
||||||
|
|
||||||
12
jb/project/idea-project-files/modules.xml
Normal file
12
jb/project/idea-project-files/modules.xml
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectModuleManager">
|
||||||
|
<modules>
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/.idea/jdk.iml" filepath="$PROJECT_DIR$/.idea/jdk.iml" />
|
||||||
|
###MODULE_IMLS###
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/.idea/jetbrains.api.iml" filepath="$PROJECT_DIR$/.idea/jetbrains.api.iml" />
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/.idea/test.iml" filepath="$PROJECT_DIR$/.idea/test.iml" />
|
||||||
|
</modules>
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
|
|
||||||
20
jb/project/idea-project-files/vcs.xml
Normal file
20
jb/project/idea-project-files/vcs.xml
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="IssueNavigationConfiguration">
|
||||||
|
<option name="links">
|
||||||
|
<list>
|
||||||
|
<IssueNavigationLink>
|
||||||
|
<option name="issueRegexp" value="(?:^|\s|\p{Punct})([A-Z]+\-\d+)(?=$|\s|\p{Punct})" />
|
||||||
|
<option name="linkRegexp" value="https://youtrack.jetbrains.com/issue/$1" />
|
||||||
|
</IssueNavigationLink>
|
||||||
|
<IssueNavigationLink>
|
||||||
|
<option name="issueRegexp" value="(?:^|\s|\p{Punct})(?:JDK-)?(\d{7})(?=$|\s|\p{Punct})" />
|
||||||
|
<option name="linkRegexp" value="https://bugs.openjdk.java.net/browse/JDK-$1" />
|
||||||
|
</IssueNavigationLink>
|
||||||
|
</list>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
135
jb/project/java-gradle/build.gradle
Normal file
135
jb/project/java-gradle/build.gradle
Normal file
@@ -0,0 +1,135 @@
|
|||||||
|
apply plugin: 'java'
|
||||||
|
import org.gradle.internal.os.OperatingSystem
|
||||||
|
|
||||||
|
repositories {
|
||||||
|
mavenCentral()
|
||||||
|
}
|
||||||
|
|
||||||
|
def test_jvm = {
|
||||||
|
if (project.hasProperty('jbsdkhome')) {
|
||||||
|
file(jbsdkhome + (OperatingSystem.current().isWindows()?"/bin/java.exe" : "/bin/java")).absolutePath
|
||||||
|
} else {
|
||||||
|
if (OperatingSystem.current().isMacOsX()) {
|
||||||
|
file('../../../build/macosx-x86_64-normal-server-release/images/jdk-bundle/jdk-11.0.4.jdk/Contents/Home/bin/java').absolutePath
|
||||||
|
} else if (OperatingSystem.current().isLinux()) {
|
||||||
|
file('../../../build/linux-x86_64-normal-server-release/images/jdk/bin/java').absolutePath
|
||||||
|
} else {
|
||||||
|
file('../../../build/windows-x86_64-normal-server-release/images/jdk/bin/java.exe').absolutePath
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
testCompile('junit:junit:4.12'){
|
||||||
|
exclude group: 'org.hamcrest'
|
||||||
|
}
|
||||||
|
testCompile 'org.hamcrest:hamcrest-library:1.3'
|
||||||
|
testCompile 'net.java.dev.jna:jna:4.4.0'
|
||||||
|
testCompile 'com.twelvemonkeys.imageio:imageio-tiff:3.3.2'
|
||||||
|
testCompile 'org.apache.commons:commons-lang3:3.0'
|
||||||
|
}
|
||||||
|
|
||||||
|
def jdk_modules = ["java.base", "java.logging", "java.prefs",
|
||||||
|
"java.se.ee", "java.sql", "java.datatransfer",
|
||||||
|
"java.management", "java.rmi", "java.security.jgss",
|
||||||
|
"java.sql.rowset", "java.desktop", "java.management.rmi",
|
||||||
|
"java.scripting", "java.security.sasl", "java.transaction",
|
||||||
|
"java.instrument", "java.naming", "java.se",
|
||||||
|
"java.smartcardio", "java.xml.crypto"]
|
||||||
|
|
||||||
|
def jdk_class_dirs = []
|
||||||
|
|
||||||
|
jdk_modules.collect(jdk_class_dirs) {
|
||||||
|
new File("../../../src/" + it + "/share/classes")
|
||||||
|
}
|
||||||
|
|
||||||
|
if (OperatingSystem.current().isMacOsX())
|
||||||
|
jdk_modules.collect(jdk_class_dirs) {
|
||||||
|
"../../../src/" + it + "/macosx/classes"
|
||||||
|
}
|
||||||
|
else if (OperatingSystem.current().isLinux()) {
|
||||||
|
jdk_modules.collect(jdk_class_dirs) {
|
||||||
|
"../../../src/" + it + "/solaris/classes"
|
||||||
|
}
|
||||||
|
jdk_modules.collect(jdk_class_dirs) {
|
||||||
|
"../../../src/" + it + "/unix/classes"
|
||||||
|
}
|
||||||
|
} else
|
||||||
|
jdk_modules.collect(jdk_class_dirs) {
|
||||||
|
"../../../src/" + it + "/windows/classes"
|
||||||
|
}
|
||||||
|
|
||||||
|
sourceSets.main.java.srcDirs = jdk_class_dirs
|
||||||
|
|
||||||
|
sourceSets {
|
||||||
|
test {
|
||||||
|
java {
|
||||||
|
srcDir "../../../test/jdk/jbu"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
test.dependsOn.clear()
|
||||||
|
|
||||||
|
test.dependsOn tasks.compileTestJava
|
||||||
|
|
||||||
|
test {
|
||||||
|
systemProperty "jb.java2d.metal", "true"
|
||||||
|
systemProperty "testdata", file('../../../test/jdk/jbu/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)
|
||||||
|
// 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'
|
||||||
|
}
|
||||||
|
|
||||||
|
def buildDir = project.buildscript.sourceFile.parentFile.parentFile.parentFile.parentFile
|
||||||
|
|
||||||
|
def make_cmd = "make"
|
||||||
|
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 {
|
||||||
|
doLast {
|
||||||
|
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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
task make_clean {
|
||||||
|
doLast {
|
||||||
|
def pb = new ProcessBuilder().command(make_cmd.toString(), "-C", buildDir.absolutePath, "clean")
|
||||||
|
def proc = pb.redirectErrorStream(true).start()
|
||||||
|
proc.inputStream.eachLine { println it }
|
||||||
|
assert proc.waitFor() == 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
task run_test {
|
||||||
|
doLast {
|
||||||
|
test_run = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.cleanTest.dependsOn tasks.run_test
|
||||||
|
classes.dependsOn.clear()
|
||||||
|
classes.dependsOn tasks.make_images
|
||||||
|
tasks.cleanClasses.dependsOn tasks.make_clean
|
||||||
54
jb/project/tools/common/modules.list
Normal file
54
jb/project/tools/common/modules.list
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
java.base,
|
||||||
|
java.compiler,
|
||||||
|
java.datatransfer,
|
||||||
|
java.desktop,
|
||||||
|
java.instrument,
|
||||||
|
java.logging,
|
||||||
|
java.management,
|
||||||
|
java.management.rmi,
|
||||||
|
java.naming,
|
||||||
|
java.net.http,
|
||||||
|
java.prefs,
|
||||||
|
java.rmi,
|
||||||
|
java.scripting,
|
||||||
|
java.se,
|
||||||
|
java.security.jgss,
|
||||||
|
java.security.sasl,
|
||||||
|
java.smartcardio,
|
||||||
|
java.sql,
|
||||||
|
java.sql.rowset,
|
||||||
|
java.transaction.xa,
|
||||||
|
java.xml,
|
||||||
|
java.xml.crypto,
|
||||||
|
jdk.accessibility,
|
||||||
|
jdk.attach,
|
||||||
|
jdk.charsets,
|
||||||
|
jdk.compiler,
|
||||||
|
jdk.crypto.cryptoki,
|
||||||
|
jdk.crypto.ec,
|
||||||
|
jdk.dynalink,
|
||||||
|
jdk.httpserver,
|
||||||
|
jdk.internal.ed,
|
||||||
|
jdk.internal.le,
|
||||||
|
jdk.internal.vm.ci,
|
||||||
|
jdk.javadoc,
|
||||||
|
jdk.jdi,
|
||||||
|
jdk.jdwp.agent,
|
||||||
|
jdk.jfr,
|
||||||
|
jdk.jsobject,
|
||||||
|
jdk.localedata,
|
||||||
|
jdk.management,
|
||||||
|
jdk.management.agent,
|
||||||
|
jdk.management.jfr,
|
||||||
|
jdk.naming.dns,
|
||||||
|
jdk.naming.rmi,
|
||||||
|
jdk.net,
|
||||||
|
jdk.sctp,
|
||||||
|
jdk.security.auth,
|
||||||
|
jdk.security.jgss,
|
||||||
|
jdk.unsupported,
|
||||||
|
jdk.unsupported.desktop,
|
||||||
|
jdk.xml.dom,
|
||||||
|
jdk.zipfs,
|
||||||
|
jdk.hotspot.agent,
|
||||||
|
jdk.jcmd
|
||||||
18
jb/project/tools/common/scripts/build-jbr-api.sh
Normal file
18
jb/project/tools/common/scripts/build-jbr-api.sh
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
#!/bin//bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
# $1 - Boot JDK
|
||||||
|
# $2 - JBR part of API version
|
||||||
|
|
||||||
|
cd "`dirname "$0"`/../../../../.."
|
||||||
|
PWD="`pwd`"
|
||||||
|
CONF="$PWD/build/jbr-api.conf"
|
||||||
|
./configure --with-debug-level=release --with-boot-jdk=$1 || exit $?
|
||||||
|
make jbr-api CONF=release MAKEOVERRIDES= "JBR_API_CONF_FILE=$CONF" JBR_API_JBR_VERSION=$2 || exit $?
|
||||||
|
. $CONF || exit $?
|
||||||
|
echo "##teamcity[buildNumber '$VERSION']"
|
||||||
|
cp "$JAR" ./jbr-api-${VERSION}.jar || exit $?
|
||||||
|
cp "$SOURCES_JAR" ./jbr-api-${VERSION}-sources.jar || exit $?
|
||||||
|
echo "##teamcity[publishArtifacts '$PWD/jbr-api-${VERSION}.jar']"
|
||||||
|
echo "##teamcity[publishArtifacts '$PWD/jbr-api-${VERSION}-sources.jar']"
|
||||||
176
jb/project/tools/common/scripts/common.sh
Normal file
176
jb/project/tools/common/scripts/common.sh
Normal file
@@ -0,0 +1,176 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
set -x
|
||||||
|
|
||||||
|
function check_bundle_type_maketest() {
|
||||||
|
# check whether last char is 't', if so remove it
|
||||||
|
if [ "${bundle_type: -1}" == "t" ]; then
|
||||||
|
bundle_type="${bundle_type%?}"
|
||||||
|
do_maketest=1
|
||||||
|
else
|
||||||
|
do_maketest=0
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function getVersionProp() {
|
||||||
|
grep "^${1}" make/conf/version-numbers.conf | cut -d'=' -f2
|
||||||
|
}
|
||||||
|
|
||||||
|
while getopts ":i?" o; do
|
||||||
|
case "${o}" in
|
||||||
|
i) INC_BUILD=1 ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
shift $((OPTIND-1))
|
||||||
|
|
||||||
|
if [[ $# -lt 2 ]]; then
|
||||||
|
echo "Required at least two arguments: build_number bundle_type"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
build_number=$1
|
||||||
|
bundle_type=$2
|
||||||
|
# shellcheck disable=SC2034
|
||||||
|
architecture=${3:-x64} # aarch64 or x64
|
||||||
|
|
||||||
|
check_bundle_type_maketest
|
||||||
|
|
||||||
|
tag_prefix="jdk-"
|
||||||
|
OPENJDK_TAG=$(git log --simplify-by-decoration --decorate=short --pretty=short | grep "$tag_prefix" | cut -d "(" -f2 | cut -d ")" -f1 | awk '{print $2}' | tr -d ',' | sort -t "-" -k 2 -g | tail -n 1)
|
||||||
|
VERSION_FEATURE=$(getVersionProp "DEFAULT_VERSION_FEATURE")
|
||||||
|
VERSION_INTERIM=$(getVersionProp "DEFAULT_VERSION_INTERIM")
|
||||||
|
VERSION_UPDATE=$(getVersionProp "DEFAULT_VERSION_UPDATE")
|
||||||
|
VERSION_PATCH=$(getVersionProp "DEFAULT_VERSION_PATCH")
|
||||||
|
[[ $VERSION_UPDATE = 0 ]] && JBSDK_VERSION="$VERSION_FEATURE" || JBSDK_VERSION="${VERSION_FEATURE}.${VERSION_INTERIM}.${VERSION_UPDATE}"
|
||||||
|
[[ $VERSION_PATCH = 0 ]] || JBSDK_VERSION="${VERSION_FEATURE}.${VERSION_INTERIM}.${VERSION_UPDATE}.${VERSION_PATCH}"
|
||||||
|
echo "##teamcity[setParameter name='env.JBSDK_VERSION' value='${JBSDK_VERSION}']"
|
||||||
|
JDK_BUILD_NUMBER=${JDK_BUILD_NUMBER:=$(echo $OPENJDK_TAG | awk -F "-|[+]" '{print $3}')}
|
||||||
|
[ -z $JDK_BUILD_NUMBER ] && JDK_BUILD_NUMBER=1
|
||||||
|
echo "##teamcity[setParameter name='env.JDK_UPDATE_NUMBER' value='${JDK_BUILD_NUMBER}']"
|
||||||
|
|
||||||
|
VENDOR_NAME="JetBrains s.r.o."
|
||||||
|
VENDOR_VERSION_STRING="JBR-${JBSDK_VERSION}+${JDK_BUILD_NUMBER}-${build_number}"
|
||||||
|
[ -z "$bundle_type" ] || VENDOR_VERSION_STRING="${VENDOR_VERSION_STRING}-${bundle_type}"
|
||||||
|
|
||||||
|
do_reset_changes=0
|
||||||
|
do_reset_dcevm=0
|
||||||
|
HEAD_REVISION=0
|
||||||
|
|
||||||
|
STATIC_CONF_ARGS=""
|
||||||
|
common_conf_props_file="jb/project/tools/common/static_conf_args.txt"
|
||||||
|
if [[ -f "$common_conf_props_file" ]]; then
|
||||||
|
STATIC_CONF_ARGS=$(<$common_conf_props_file)
|
||||||
|
fi
|
||||||
|
OS_NAME=$(uname -s)
|
||||||
|
# Enable reproducible builds
|
||||||
|
TZ=UTC
|
||||||
|
export TZ
|
||||||
|
SOURCE_DATE_EPOCH="$(git log -1 --pretty=%ct)"
|
||||||
|
export SOURCE_DATE_EPOCH
|
||||||
|
|
||||||
|
COPYRIGHT_YEAR=""
|
||||||
|
BUILD_TIME=""
|
||||||
|
TOUCH_TIME=""
|
||||||
|
REPRODUCIBLE_TAR_OPTS=""
|
||||||
|
case "$OS_NAME" in
|
||||||
|
Linux)
|
||||||
|
COPYRIGHT_YEAR="$(date --utc --date=@$SOURCE_DATE_EPOCH +%Y)"
|
||||||
|
BUILD_TIME="$(date --utc --date=@$SOURCE_DATE_EPOCH +%F)"
|
||||||
|
REPRODUCIBLE_TAR_OPTS="--mtime=@$SOURCE_DATE_EPOCH --owner=0 --group=0 --numeric-owner --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=atime,delete=ctime"
|
||||||
|
;;
|
||||||
|
CYGWIN*)
|
||||||
|
COPYRIGHT_YEAR="$(date --utc --date=@$SOURCE_DATE_EPOCH +%Y)"
|
||||||
|
BUILD_TIME="$(date --utc --date=@$SOURCE_DATE_EPOCH +%F)"
|
||||||
|
REPRODUCIBLE_TAR_OPTS="--mtime=@$SOURCE_DATE_EPOCH --owner=0 --group=0 --numeric-owner --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=atime,delete=ctime"
|
||||||
|
;;
|
||||||
|
Darwin)
|
||||||
|
COPYRIGHT_YEAR="$(date -u -r $SOURCE_DATE_EPOCH +%Y)"
|
||||||
|
BUILD_TIME="$(date -u -r $SOURCE_DATE_EPOCH +%F)"
|
||||||
|
TOUCH_TIME="$(date -u -r $SOURCE_DATE_EPOCH +%Y%m%d%H%M.%S)"
|
||||||
|
REPRODUCIBLE_TAR_OPTS="--uid 0 --gid 0 --numeric-owner"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
WITH_ZIPPED_NATIVE_DEBUG_SYMBOLS="--with-native-debug-symbols=zipped"
|
||||||
|
|
||||||
|
REPRODUCIBLE_BUILD_OPTS="--enable-reproducible-build
|
||||||
|
--with-source-date=$SOURCE_DATE_EPOCH
|
||||||
|
--with-hotspot-build-time=$BUILD_TIME
|
||||||
|
--with-copyright-year=$COPYRIGHT_YEAR
|
||||||
|
--disable-absolute-paths-in-output
|
||||||
|
--with-build-user=builduser"
|
||||||
|
|
||||||
|
function zip_native_debug_symbols() {
|
||||||
|
image_bundle_path=$(echo $1 | cut -d"/" -f-4)
|
||||||
|
jdk_name=$(echo $1 | cut -d"/" -f5)
|
||||||
|
jbr_diz_name=$2
|
||||||
|
|
||||||
|
[ -d "dizfiles" ] && rm -rf dizfiles
|
||||||
|
mkdir dizfiles
|
||||||
|
|
||||||
|
rsync_target="../../../../dizfiles"
|
||||||
|
[ -z "$jdk_name" ] && rsync_target=$rsync_target"/"$jbr_diz_name
|
||||||
|
(cd $image_bundle_path && find . -name '*.diz' -exec rsync -R {} $rsync_target \;)
|
||||||
|
[ ! -z "$jdk_name" ] && mv dizfiles/$jdk_name dizfiles/$jbr_diz_name
|
||||||
|
|
||||||
|
(cd dizfiles && find $jbr_diz_name -print0 | COPYFILE_DISABLE=1 \
|
||||||
|
tar --no-recursion --null -T - -czf ../"$jbr_diz_name".tar.gz) || do_exit $?
|
||||||
|
}
|
||||||
|
|
||||||
|
function do_exit() {
|
||||||
|
exit_code=$1
|
||||||
|
[ $do_reset_changes -eq 1 ] && git checkout HEAD jb/project/tools/common/modules.list src/java.desktop/share/classes/module-info.java
|
||||||
|
if [ $do_reset_dcevm -eq 1 ]; then
|
||||||
|
[ ! -z $HEAD_REVISION ] && git reset --hard $HEAD_REVISION
|
||||||
|
fi
|
||||||
|
exit "$exit_code"
|
||||||
|
}
|
||||||
|
|
||||||
|
function update_jsdk_mods() {
|
||||||
|
__jsdk=$1
|
||||||
|
__jcef_mods=$2
|
||||||
|
__orig_jsdk_mods=$3
|
||||||
|
__updated_jsdk_mods=$4
|
||||||
|
|
||||||
|
# re-create java.desktop.jmod with updated module-info.class
|
||||||
|
tmp=.java.desktop.$$.tmp
|
||||||
|
mkdir "$tmp" || exit $?
|
||||||
|
"$__jsdk"/bin/jmod extract --dir "$tmp" "$__orig_jsdk_mods"/java.desktop.jmod || exit $?
|
||||||
|
"$__jsdk"/bin/javac \
|
||||||
|
--patch-module java.desktop="$__orig_jsdk_mods"/java.desktop.jmod \
|
||||||
|
--module-path "$__jcef_mods" -d "$tmp"/classes src/java.desktop/share/classes/module-info.java || exit $?
|
||||||
|
"$__jsdk"/bin/jmod \
|
||||||
|
create --class-path "$tmp"/classes --config "$tmp"/conf --header-files "$tmp"/include --legal-notice "$tmp"/legal --libs "$tmp"/lib \
|
||||||
|
java.desktop.jmod || exit $?
|
||||||
|
mv java.desktop.jmod "$__updated_jsdk_mods" || exit $?
|
||||||
|
rm -rf "$tmp"
|
||||||
|
|
||||||
|
# re-create java.base.jmod with updated hashes
|
||||||
|
tmp=.java.base.$$.tmp
|
||||||
|
mkdir "$tmp" || exit $?
|
||||||
|
hash_modules=$("$__jsdk"/bin/jmod describe "$__orig_jsdk_mods"/java.base.jmod | grep hashes | awk '{print $2}' | tr '\n' '|' | sed s/\|$//) || exit $?
|
||||||
|
"$__jsdk"/bin/jmod extract --dir "$tmp" "$__orig_jsdk_mods"/java.base.jmod || exit $?
|
||||||
|
rm "$__updated_jsdk_mods"/java.base.jmod || exit $? # temp exclude from path
|
||||||
|
"$__jsdk"/bin/jmod \
|
||||||
|
create --module-path "$__updated_jsdk_mods" --hash-modules "$hash_modules" \
|
||||||
|
--class-path "$tmp"/classes --cmds "$tmp"/bin --config "$tmp"/conf --header-files "$tmp"/include --legal-notice "$tmp"/legal --libs "$tmp"/lib \
|
||||||
|
java.base.jmod || exit $?
|
||||||
|
mv java.base.jmod "$__updated_jsdk_mods" || exit $?
|
||||||
|
rm -rf "$tmp"
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_mods_list() {
|
||||||
|
__mods=$1
|
||||||
|
echo $(ls $__mods) | sed s/\.jmod/,/g | sed s/,$//g | sed s/' '//g
|
||||||
|
}
|
||||||
|
|
||||||
|
function copy_jmods() {
|
||||||
|
__mods_list=$1
|
||||||
|
__jmods_from=$2
|
||||||
|
__jmods_to=$3
|
||||||
|
|
||||||
|
mkdir -p $__jmods_to
|
||||||
|
|
||||||
|
echo "${__mods_list}," | while read -d, mod; do cp $__jmods_from/$mod.jmod $__jmods_to/; done
|
||||||
|
}
|
||||||
1
jb/project/tools/common/static_conf_args.txt
Normal file
1
jb/project/tools/common/static_conf_args.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
--with-vendor-vm-bug-url=https://youtrack.jetbrains.com/issues/JBR
|
||||||
164
jb/project/tools/linux/scripts/mkimages_aarch64.sh
Executable file
164
jb/project/tools/linux/scripts/mkimages_aarch64.sh
Executable file
@@ -0,0 +1,164 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
set -x
|
||||||
|
|
||||||
|
# The following parameters must be specified:
|
||||||
|
# build_number - specifies the number of JetBrainsRuntime build
|
||||||
|
# bundle_type - specifies bundle to be built;possible values:
|
||||||
|
# <empty> or nomod - the release bundles without any additional modules (jcef)
|
||||||
|
# jcef - the release bundles with jcef
|
||||||
|
# fd - the fastdebug bundles which also include the jcef module
|
||||||
|
#
|
||||||
|
# This script makes test-image along with JDK images when bundle_type is set to "jcef".
|
||||||
|
# If the character 't' is added at the end of bundle_type then it also makes test-image along with JDK images.
|
||||||
|
#
|
||||||
|
# Environment variables:
|
||||||
|
# JDK_BUILD_NUMBER - specifies update release of OpenJDK build or the value of --with-version-build argument
|
||||||
|
# to configure
|
||||||
|
# By default JDK_BUILD_NUMBER is set zero
|
||||||
|
# JCEF_PATH - specifies the path to the directory with JCEF binaries.
|
||||||
|
# By default JCEF binaries should be located in ./jcef_linux_aarch64
|
||||||
|
|
||||||
|
source jb/project/tools/common/scripts/common.sh
|
||||||
|
|
||||||
|
JCEF_PATH=${JCEF_PATH:=./jcef_linux_aarch64}
|
||||||
|
|
||||||
|
function do_configure {
|
||||||
|
sh configure \
|
||||||
|
$WITH_DEBUG_LEVEL \
|
||||||
|
--with-vendor-name="$VENDOR_NAME" \
|
||||||
|
--with-vendor-version-string="$VENDOR_VERSION_STRING" \
|
||||||
|
--with-jvm-features=shenandoahgc \
|
||||||
|
--with-version-pre= \
|
||||||
|
--with-version-build="$JDK_BUILD_NUMBER" \
|
||||||
|
--with-version-opt=b"$build_number" \
|
||||||
|
--with-boot-jdk="$BOOT_JDK" \
|
||||||
|
--enable-cds=yes \
|
||||||
|
$STATIC_CONF_ARGS \
|
||||||
|
$REPRODUCIBLE_BUILD_OPTS \
|
||||||
|
$WITH_ZIPPED_NATIVE_DEBUG_SYMBOLS \
|
||||||
|
|| do_exit $?
|
||||||
|
}
|
||||||
|
|
||||||
|
function is_musl {
|
||||||
|
libc=$(ldd /bin/ls | grep 'musl' | head -1 | cut -d ' ' -f1)
|
||||||
|
if [ -z $libc ]; then
|
||||||
|
# This is not Musl, return 1 == false
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
function create_image_bundle {
|
||||||
|
__bundle_name=$1
|
||||||
|
__arch_name=$2
|
||||||
|
__modules_path=$3
|
||||||
|
__modules=$4
|
||||||
|
|
||||||
|
libc_type_suffix=''
|
||||||
|
fastdebug_infix=''
|
||||||
|
|
||||||
|
if is_musl; then libc_type_suffix='musl-' ; fi
|
||||||
|
|
||||||
|
[ "$bundle_type" == "fd" ] && [ "$__arch_name" == "$JBRSDK_BUNDLE" ] && __bundle_name=$__arch_name && fastdebug_infix="fastdebug-"
|
||||||
|
JBR=${__bundle_name}-${JBSDK_VERSION}-linux-${libc_type_suffix}aarch64-${fastdebug_infix}b${build_number}
|
||||||
|
__root_dir=${__bundle_name}-${JBSDK_VERSION}-linux-${libc_type_suffix}aarch64-${fastdebug_infix:-}b${build_number}
|
||||||
|
|
||||||
|
|
||||||
|
echo Running jlink....
|
||||||
|
[ -d "$IMAGES_DIR"/"$__root_dir" ] && rm -rf "${IMAGES_DIR:?}"/"$__root_dir"
|
||||||
|
$JSDK/bin/jlink \
|
||||||
|
--module-path "$__modules_path" --no-man-pages --compress=2 \
|
||||||
|
--add-modules "$__modules" --output "$IMAGES_DIR"/"$__root_dir"
|
||||||
|
|
||||||
|
grep -v "^JAVA_VERSION" "$JSDK"/release | grep -v "^MODULES" >> "$IMAGES_DIR"/"$__root_dir"/release
|
||||||
|
if [ "$__arch_name" == "$JBRSDK_BUNDLE" ]; then
|
||||||
|
sed 's/JBR/JBRSDK/g' "$IMAGES_DIR"/"$__root_dir"/release > release
|
||||||
|
mv release "$IMAGES_DIR"/"$__root_dir"/release
|
||||||
|
cp $IMAGES_DIR/jdk/lib/src.zip "$IMAGES_DIR"/"$__root_dir"/lib
|
||||||
|
copy_jmods "$__modules" "$__modules_path" "$IMAGES_DIR"/"$__root_dir"/jmods
|
||||||
|
zip_native_debug_symbols $IMAGES_DIR/jdk "${JBR}_diz"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# jmod does not preserve file permissions (JDK-8173610)
|
||||||
|
[ -f "$IMAGES_DIR"/"$__root_dir"/lib/jcef_helper ] && chmod a+x "$IMAGES_DIR"/"$__root_dir"/lib/jcef_helper
|
||||||
|
|
||||||
|
echo Creating "$JBR".tar.gz ...
|
||||||
|
|
||||||
|
(cd "$IMAGES_DIR" &&
|
||||||
|
find "$__root_dir" -print0 | LC_ALL=C sort -z | \
|
||||||
|
tar $REPRODUCIBLE_TAR_OPTS \
|
||||||
|
--no-recursion --null -T - -cf "$JBR".tar) || do_exit $?
|
||||||
|
mv "$IMAGES_DIR"/"$JBR".tar ./"$JBR".tar
|
||||||
|
[ -f "$JBR".tar.gz ] && rm "$JBR.tar.gz"
|
||||||
|
touch -c -d "@$SOURCE_DATE_EPOCH" "$JBR".tar
|
||||||
|
gzip "$JBR".tar || do_exit $?
|
||||||
|
rm -rf "${IMAGES_DIR:?}"/"$__root_dir"
|
||||||
|
}
|
||||||
|
|
||||||
|
WITH_DEBUG_LEVEL="--with-debug-level=release"
|
||||||
|
RELEASE_NAME=linux-aarch64-server-release
|
||||||
|
|
||||||
|
case "$bundle_type" in
|
||||||
|
"jcef")
|
||||||
|
do_reset_changes=1
|
||||||
|
do_maketest=1
|
||||||
|
;;
|
||||||
|
"nomod" | "")
|
||||||
|
bundle_type=""
|
||||||
|
;;
|
||||||
|
"fd")
|
||||||
|
do_reset_changes=1
|
||||||
|
WITH_DEBUG_LEVEL="--with-debug-level=fastdebug"
|
||||||
|
RELEASE_NAME=linux-aarch64-server-fastdebug
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ -z "${INC_BUILD:-}" ]; then
|
||||||
|
do_configure || do_exit $?
|
||||||
|
make clean CONF=$RELEASE_NAME || do_exit $?
|
||||||
|
fi
|
||||||
|
make images CONF=$RELEASE_NAME || do_exit $?
|
||||||
|
|
||||||
|
IMAGES_DIR=build/$RELEASE_NAME/images
|
||||||
|
JSDK=$IMAGES_DIR/jdk
|
||||||
|
JSDK_MODS_DIR=$IMAGES_DIR/jmods
|
||||||
|
JBRSDK_BUNDLE=jbrsdk
|
||||||
|
|
||||||
|
echo Fixing permissions
|
||||||
|
chmod -R a+r $JSDK
|
||||||
|
|
||||||
|
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ]; then
|
||||||
|
git apply -p0 < jb/project/tools/patches/add_jcef_module_aarch64.patch || do_exit $?
|
||||||
|
update_jsdk_mods $JSDK $JCEF_PATH/jmods $JSDK/jmods $JSDK_MODS_DIR || do_exit $?
|
||||||
|
cp $JCEF_PATH/jmods/* $JSDK_MODS_DIR # $JSDK/jmods is not changed
|
||||||
|
|
||||||
|
jbr_name_postfix="_${bundle_type}"
|
||||||
|
else
|
||||||
|
jbr_name_postfix=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
# create runtime image bundle
|
||||||
|
modules=$(xargs < jb/project/tools/common/modules.list | sed s/" "//g) || do_exit $?
|
||||||
|
create_image_bundle "jbr${jbr_name_postfix}" "jbr" $JSDK_MODS_DIR "$modules" || do_exit $?
|
||||||
|
|
||||||
|
# create sdk image bundle
|
||||||
|
modules=$(cat $JSDK/release | grep MODULES | sed s/MODULES=//g | sed s/' '/','/g | sed s/\"//g | sed s/\\n//g) || do_exit $?
|
||||||
|
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ] || [ "$bundle_type" == "$JBRSDK_BUNDLE" ]; then
|
||||||
|
modules=${modules},$(get_mods_list "$JCEF_PATH"/jmods)
|
||||||
|
fi
|
||||||
|
create_image_bundle "$JBRSDK_BUNDLE${jbr_name_postfix}" $JBRSDK_BUNDLE $JSDK_MODS_DIR "$modules" || do_exit $?
|
||||||
|
|
||||||
|
if [ $do_maketest -eq 1 ]; then
|
||||||
|
JBRSDK_TEST=${JBRSDK_BUNDLE}-${JBSDK_VERSION}-linux-${libc_type_suffix}test-aarch64-b${build_number}
|
||||||
|
echo Creating "$JBRSDK_TEST" ...
|
||||||
|
[ $do_reset_changes -eq 1 ] && git checkout HEAD jb/project/tools/common/modules.list src/java.desktop/share/classes/module-info.java
|
||||||
|
make test-image jbr-api CONF=$RELEASE_NAME JBR_API_JBR_VERSION=TEST || do_exit $?
|
||||||
|
cp "build/${RELEASE_NAME}/jbr-api/jbr-api.jar" "${IMAGES_DIR}/test"
|
||||||
|
tar -pcf "$JBRSDK_TEST".tar -C $IMAGES_DIR --exclude='test/jdk/demos' test || do_exit $?
|
||||||
|
[ -f "$JBRSDK_TEST.tar.gz" ] && rm "$JBRSDK_TEST.tar.gz"
|
||||||
|
gzip "$JBRSDK_TEST".tar || do_exit $?
|
||||||
|
fi
|
||||||
|
|
||||||
|
do_exit 0
|
||||||
164
jb/project/tools/linux/scripts/mkimages_x64.sh
Executable file
164
jb/project/tools/linux/scripts/mkimages_x64.sh
Executable file
@@ -0,0 +1,164 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
set -x
|
||||||
|
|
||||||
|
# The following parameters must be specified:
|
||||||
|
# build_number - specifies the number of JetBrainsRuntime build
|
||||||
|
# bundle_type - specifies bundle to be built;possible values:
|
||||||
|
# <empty> or nomod - the release bundles without any additional modules (jcef)
|
||||||
|
# jcef - the release bundles with jcef
|
||||||
|
# fd - the fastdebug bundles which also include the jcef module
|
||||||
|
#
|
||||||
|
# This script makes test-image along with JDK images when bundle_type is set to "jcef".
|
||||||
|
# If the character 't' is added at the end of bundle_type then it also makes test-image along with JDK images.
|
||||||
|
#
|
||||||
|
# Environment variables:
|
||||||
|
# JDK_BUILD_NUMBER - specifies update release of OpenJDK build or the value of --with-version-build argument
|
||||||
|
# to configure
|
||||||
|
# By default JDK_BUILD_NUMBER is set zero
|
||||||
|
# JCEF_PATH - specifies the path to the directory with JCEF binaries.
|
||||||
|
# By default JCEF binaries should be located in ./jcef_linux_x64
|
||||||
|
|
||||||
|
source jb/project/tools/common/scripts/common.sh
|
||||||
|
|
||||||
|
JCEF_PATH=${JCEF_PATH:=./jcef_linux_x64}
|
||||||
|
|
||||||
|
function do_configure {
|
||||||
|
sh configure \
|
||||||
|
$WITH_DEBUG_LEVEL \
|
||||||
|
--with-vendor-name="$VENDOR_NAME" \
|
||||||
|
--with-vendor-version-string="$VENDOR_VERSION_STRING" \
|
||||||
|
--with-jvm-features=shenandoahgc \
|
||||||
|
--with-version-pre= \
|
||||||
|
--with-version-build="$JDK_BUILD_NUMBER" \
|
||||||
|
--with-version-opt=b"$build_number" \
|
||||||
|
--with-boot-jdk="$BOOT_JDK" \
|
||||||
|
--enable-cds=yes \
|
||||||
|
$STATIC_CONF_ARGS \
|
||||||
|
$REPRODUCIBLE_BUILD_OPTS \
|
||||||
|
$WITH_ZIPPED_NATIVE_DEBUG_SYMBOLS \
|
||||||
|
|| do_exit $?
|
||||||
|
}
|
||||||
|
|
||||||
|
function is_musl {
|
||||||
|
libc=$(ldd /bin/ls | grep 'musl' | head -1 | cut -d ' ' -f1)
|
||||||
|
if [ -z $libc ]; then
|
||||||
|
# This is not Musl, return 1 == false
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
function create_image_bundle {
|
||||||
|
__bundle_name=$1
|
||||||
|
__arch_name=$2
|
||||||
|
__modules_path=$3
|
||||||
|
__modules=$4
|
||||||
|
|
||||||
|
libc_type_suffix=''
|
||||||
|
fastdebug_infix=''
|
||||||
|
|
||||||
|
if is_musl; then libc_type_suffix='musl-' ; fi
|
||||||
|
|
||||||
|
[ "$bundle_type" == "fd" ] && [ "$__arch_name" == "$JBRSDK_BUNDLE" ] && __bundle_name=$__arch_name && fastdebug_infix="fastdebug-"
|
||||||
|
JBR=${__bundle_name}-${JBSDK_VERSION}-linux-${libc_type_suffix}x64-${fastdebug_infix}b${build_number}
|
||||||
|
__root_dir=${__bundle_name}-${JBSDK_VERSION}-linux-${libc_type_suffix}x64-${fastdebug_infix:-}b${build_number}
|
||||||
|
|
||||||
|
echo Running jlink....
|
||||||
|
[ -d "$IMAGES_DIR"/"$__root_dir" ] && rm -rf "${IMAGES_DIR:?}"/"$__root_dir"
|
||||||
|
$JSDK/bin/jlink \
|
||||||
|
--module-path "$__modules_path" --no-man-pages --compress=2 \
|
||||||
|
--add-modules "$__modules" --output "$IMAGES_DIR"/"$__root_dir"
|
||||||
|
|
||||||
|
grep -v "^JAVA_VERSION" "$JSDK"/release | grep -v "^MODULES" >> "$IMAGES_DIR"/"$__root_dir"/release
|
||||||
|
if [ "$__arch_name" == "$JBRSDK_BUNDLE" ]; then
|
||||||
|
sed 's/JBR/JBRSDK/g' "$IMAGES_DIR"/"$__root_dir"/release > release
|
||||||
|
mv release "$IMAGES_DIR"/"$__root_dir"/release
|
||||||
|
cp $IMAGES_DIR/jdk/lib/src.zip "$IMAGES_DIR"/"$__root_dir"/lib
|
||||||
|
copy_jmods "$__modules" "$__modules_path" "$IMAGES_DIR"/"$__root_dir"/jmods
|
||||||
|
zip_native_debug_symbols $IMAGES_DIR/jdk "${JBR}_diz"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# jmod does not preserve file permissions (JDK-8173610)
|
||||||
|
[ -f "$IMAGES_DIR"/"$__root_dir"/lib/jcef_helper ] && chmod a+x "$IMAGES_DIR"/"$__root_dir"/lib/jcef_helper
|
||||||
|
|
||||||
|
echo Creating "$JBR".tar.gz ...
|
||||||
|
|
||||||
|
(cd "$IMAGES_DIR" &&
|
||||||
|
find "$__root_dir" -print0 | LC_ALL=C sort -z | \
|
||||||
|
tar $REPRODUCIBLE_TAR_OPTS \
|
||||||
|
--no-recursion --null -T - -cf "$JBR".tar) || do_exit $?
|
||||||
|
mv "$IMAGES_DIR"/"$JBR".tar ./"$JBR".tar
|
||||||
|
[ -f "$JBR".tar.gz ] && rm "$JBR.tar.gz"
|
||||||
|
touch -c -d "@$SOURCE_DATE_EPOCH" "$JBR".tar
|
||||||
|
gzip "$JBR".tar || do_exit $?
|
||||||
|
rm -rf "${IMAGES_DIR:?}"/"$__root_dir"
|
||||||
|
}
|
||||||
|
|
||||||
|
WITH_DEBUG_LEVEL="--with-debug-level=release"
|
||||||
|
RELEASE_NAME=linux-x86_64-server-release
|
||||||
|
|
||||||
|
case "$bundle_type" in
|
||||||
|
"jcef")
|
||||||
|
do_reset_changes=1
|
||||||
|
do_maketest=1
|
||||||
|
;;
|
||||||
|
"nomod" | "")
|
||||||
|
bundle_type=""
|
||||||
|
;;
|
||||||
|
"fd")
|
||||||
|
do_reset_changes=1
|
||||||
|
WITH_DEBUG_LEVEL="--with-debug-level=fastdebug"
|
||||||
|
RELEASE_NAME=linux-x86_64-server-fastdebug
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ -z "${INC_BUILD:-}" ]; then
|
||||||
|
do_configure || do_exit $?
|
||||||
|
make clean CONF=$RELEASE_NAME || do_exit $?
|
||||||
|
fi
|
||||||
|
make images CONF=$RELEASE_NAME || do_exit $?
|
||||||
|
|
||||||
|
IMAGES_DIR=build/$RELEASE_NAME/images
|
||||||
|
JSDK=$IMAGES_DIR/jdk
|
||||||
|
JSDK_MODS_DIR=$IMAGES_DIR/jmods
|
||||||
|
JBRSDK_BUNDLE=jbrsdk
|
||||||
|
|
||||||
|
echo Fixing permissions
|
||||||
|
chmod -R a+r $JSDK
|
||||||
|
|
||||||
|
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ]; then
|
||||||
|
git apply -p0 < jb/project/tools/patches/add_jcef_module.patch || do_exit $?
|
||||||
|
update_jsdk_mods $JSDK $JCEF_PATH/jmods $JSDK/jmods $JSDK_MODS_DIR || do_exit $?
|
||||||
|
cp $JCEF_PATH/jmods/* $JSDK_MODS_DIR # $JSDK/jmods is not changed
|
||||||
|
|
||||||
|
jbr_name_postfix="_${bundle_type}"
|
||||||
|
[ "$bundle_type" != "fd" ] && jbrsdk_name_postfix="_${bundle_type}"
|
||||||
|
else
|
||||||
|
jbr_name_postfix=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
# create runtime image bundle
|
||||||
|
modules=$(xargs < jb/project/tools/common/modules.list | sed s/" "//g) || do_exit $?
|
||||||
|
create_image_bundle "jbr${jbr_name_postfix}" "jbr" $JSDK_MODS_DIR "$modules" || do_exit $?
|
||||||
|
|
||||||
|
# create sdk image bundle
|
||||||
|
modules=$(cat $JSDK/release | grep MODULES | sed s/MODULES=//g | sed s/' '/','/g | sed s/\"//g | sed s/\\n//g) || do_exit $?
|
||||||
|
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ] || [ "$bundle_type" == "$JBRSDK_BUNDLE" ]; then
|
||||||
|
modules=${modules},$(get_mods_list "$JCEF_PATH"/jmods)
|
||||||
|
fi
|
||||||
|
create_image_bundle "$JBRSDK_BUNDLE${jbr_name_postfix}" $JBRSDK_BUNDLE $JSDK_MODS_DIR "$modules" || do_exit $?
|
||||||
|
|
||||||
|
if [ $do_maketest -eq 1 ]; then
|
||||||
|
JBRSDK_TEST=${JBRSDK_BUNDLE}-${JBSDK_VERSION}-linux-${libc_type_suffix}test-x64-b${build_number}
|
||||||
|
echo Creating "$JBRSDK_TEST" ...
|
||||||
|
[ $do_reset_changes -eq 1 ] && git checkout HEAD jb/project/tools/common/modules.list src/java.desktop/share/classes/module-info.java
|
||||||
|
make test-image jbr-api CONF=$RELEASE_NAME JBR_API_JBR_VERSION=TEST || do_exit $?
|
||||||
|
cp "build/${RELEASE_NAME}/jbr-api/jbr-api.jar" "${IMAGES_DIR}/test"
|
||||||
|
tar -pcf "$JBRSDK_TEST".tar -C $IMAGES_DIR --exclude='test/jdk/demos' test || do_exit $?
|
||||||
|
[ -f "$JBRSDK_TEST.tar.gz" ] && rm "$JBRSDK_TEST.tar.gz"
|
||||||
|
gzip "$JBRSDK_TEST".tar || do_exit $?
|
||||||
|
fi
|
||||||
|
|
||||||
|
do_exit 0
|
||||||
144
jb/project/tools/linux/scripts/mkimages_x86.sh
Executable file
144
jb/project/tools/linux/scripts/mkimages_x86.sh
Executable file
@@ -0,0 +1,144 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
set -x
|
||||||
|
|
||||||
|
# The following parameters must be specified:
|
||||||
|
# build_number - specifies the number of JetBrainsRuntime build
|
||||||
|
# bundle_type - specifies bundle to be built;possible values:
|
||||||
|
# <empty> or nomod - the release bundles without any additional modules (jcef)
|
||||||
|
# jcef - the release bundles with jcef
|
||||||
|
# fd - the fastdebug bundles which also include the jcef module
|
||||||
|
#
|
||||||
|
|
||||||
|
source jb/project/tools/common/scripts/common.sh
|
||||||
|
|
||||||
|
function do_configure {
|
||||||
|
linux32 bash configure \
|
||||||
|
$WITH_DEBUG_LEVEL \
|
||||||
|
--with-vendor-name="$VENDOR_NAME" \
|
||||||
|
--with-vendor-version-string="$VENDOR_VERSION_STRING" \
|
||||||
|
--with-jvm-features=shenandoahgc \
|
||||||
|
--with-version-pre= \
|
||||||
|
--with-version-build="$JDK_BUILD_NUMBER" \
|
||||||
|
--with-version-opt=b"$build_number" \
|
||||||
|
--with-boot-jdk="$BOOT_JDK" \
|
||||||
|
$STATIC_CONF_ARGS \
|
||||||
|
--enable-cds=yes \
|
||||||
|
$REPRODUCIBLE_BUILD_OPTS \
|
||||||
|
$WITH_ZIPPED_NATIVE_DEBUG_SYMBOLS \
|
||||||
|
|| do_exit $?
|
||||||
|
}
|
||||||
|
|
||||||
|
function is_musl {
|
||||||
|
libc=$(ldd /bin/ls | grep 'musl' | head -1 | cut -d ' ' -f1)
|
||||||
|
if [ -z $libc ]; then
|
||||||
|
# This is not Musl, return 1 == false
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
function create_image_bundle {
|
||||||
|
__bundle_name=$1
|
||||||
|
__arch_name=$2
|
||||||
|
__modules_path=$3
|
||||||
|
__modules=$4
|
||||||
|
|
||||||
|
libc_type_suffix=''
|
||||||
|
fastdebug_infix=''
|
||||||
|
|
||||||
|
if is_musl; then libc_type_suffix='musl-' ; fi
|
||||||
|
|
||||||
|
[ "$bundle_type" == "fd" ] && [ "$__arch_name" == "$JBRSDK_BUNDLE" ] && __bundle_name=$__arch_name && fastdebug_infix="fastdebug-"
|
||||||
|
JBR=${__bundle_name}-${JBSDK_VERSION}-linux-${libc_type_suffix}x86-${fastdebug_infix}b${build_number}
|
||||||
|
__root_dir=${__bundle_name}-${JBSDK_VERSION}-linux-${libc_type_suffix}x86-${fastdebug_infix:-}b${build_number}
|
||||||
|
|
||||||
|
echo Running jlink....
|
||||||
|
[ -d "$IMAGES_DIR"/"$__root_dir" ] && rm -rf "${IMAGES_DIR:?}"/"$__root_dir"
|
||||||
|
$JSDK/bin/jlink \
|
||||||
|
--module-path "$__modules_path" --no-man-pages --compress=2 \
|
||||||
|
--add-modules "$__modules" --output "$IMAGES_DIR"/"$__root_dir"
|
||||||
|
|
||||||
|
grep -v "^JAVA_VERSION" "$JSDK"/release | grep -v "^MODULES" >> "$IMAGES_DIR"/"$__root_dir"/release
|
||||||
|
if [ "$__arch_name" == "$JBRSDK_BUNDLE" ]; then
|
||||||
|
sed 's/JBR/JBRSDK/g' "$IMAGES_DIR"/"$__root_dir"/release > release
|
||||||
|
mv release "$IMAGES_DIR"/"$__root_dir"/release
|
||||||
|
cp $IMAGES_DIR/jdk/lib/src.zip "$IMAGES_DIR"/"$__root_dir"/lib
|
||||||
|
copy_jmods "$__modules" "$__modules_path" "$IMAGES_DIR"/"$__root_dir"/jmods
|
||||||
|
zip_native_debug_symbols $IMAGES_DIR/jdk "${JBR}_diz"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# jmod does not preserve file permissions (JDK-8173610)
|
||||||
|
[ -f "$IMAGES_DIR"/"$__root_dir"/lib/jcef_helper ] && chmod a+x "$IMAGES_DIR"/"$__root_dir"/lib/jcef_helper
|
||||||
|
|
||||||
|
echo Creating "$JBR".tar.gz ...
|
||||||
|
|
||||||
|
(cd "$IMAGES_DIR" &&
|
||||||
|
find "$__root_dir" -print0 | LC_ALL=C sort -z | \
|
||||||
|
tar $REPRODUCIBLE_TAR_OPTS \
|
||||||
|
--no-recursion --null -T - -cf "$JBR".tar) || do_exit $?
|
||||||
|
mv "$IMAGES_DIR"/"$JBR".tar ./"$JBR".tar
|
||||||
|
[ -f "$JBR".tar.gz ] && rm "$JBR.tar.gz"
|
||||||
|
touch -c -d "@$SOURCE_DATE_EPOCH" "$JBR".tar
|
||||||
|
gzip "$JBR".tar || do_exit $?
|
||||||
|
rm -rf "${IMAGES_DIR:?}"/"$__root_dir"
|
||||||
|
}
|
||||||
|
|
||||||
|
WITH_DEBUG_LEVEL="--with-debug-level=release"
|
||||||
|
RELEASE_NAME=linux-x86-server-release
|
||||||
|
|
||||||
|
case "$bundle_type" in
|
||||||
|
"jcef")
|
||||||
|
echo "not implemented" && do_exit 1
|
||||||
|
;;
|
||||||
|
"nomod" | "")
|
||||||
|
bundle_type=""
|
||||||
|
;;
|
||||||
|
"fd")
|
||||||
|
do_reset_changes=1
|
||||||
|
WITH_DEBUG_LEVEL="--with-debug-level=fastdebug"
|
||||||
|
RELEASE_NAME=linux-x86-server-fastdebug
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ -z "${INC_BUILD:-}" ]; then
|
||||||
|
do_configure || do_exit $?
|
||||||
|
make clean CONF=$RELEASE_NAME || do_exit $?
|
||||||
|
fi
|
||||||
|
make images CONF=$RELEASE_NAME || do_exit $?
|
||||||
|
|
||||||
|
IMAGES_DIR=build/$RELEASE_NAME/images
|
||||||
|
JSDK=$IMAGES_DIR/jdk
|
||||||
|
JSDK_MODS_DIR=$IMAGES_DIR/jmods
|
||||||
|
JBRSDK_BUNDLE=jbrsdk
|
||||||
|
|
||||||
|
echo Fixing permissions
|
||||||
|
chmod -R a+r $JSDK
|
||||||
|
|
||||||
|
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ]; then
|
||||||
|
jbr_name_postfix="_${bundle_type}"
|
||||||
|
else
|
||||||
|
jbr_name_postfix=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
# create runtime image bundle
|
||||||
|
modules=$(grep -v "jdk.internal.vm" jb/project/tools/common/modules.list | xargs | sed s/" "//g) || do_exit $?
|
||||||
|
create_image_bundle "jbr${jbr_name_postfix}" "jbr" $JSDK_MODS_DIR "$modules" || do_exit $?
|
||||||
|
|
||||||
|
# create sdk image bundle
|
||||||
|
modules=$(cat $JSDK/release | grep MODULES | sed s/MODULES=//g | sed s/' '/','/g | sed s/\"//g | sed s/\\n//g) || do_exit $?
|
||||||
|
create_image_bundle "$JBRSDK_BUNDLE${jbr_name_postfix}" $JBRSDK_BUNDLE $JSDK_MODS_DIR "$modules" || do_exit $?
|
||||||
|
|
||||||
|
if [ $do_maketest -eq 1 ]; then
|
||||||
|
JBRSDK_TEST=${JBRSDK_BUNDLE}-${JBSDK_VERSION}-linux-${libc_type_suffix}test-x86-b${build_number}
|
||||||
|
echo Creating "$JBRSDK_TEST" ...
|
||||||
|
[ $do_reset_changes -eq 1 ] && git checkout HEAD jb/project/tools/common/modules.list src/java.desktop/share/classes/module-info.java
|
||||||
|
make test-image jbr-api CONF=$RELEASE_NAME JBR_API_JBR_VERSION=TEST || do_exit $?
|
||||||
|
cp "build/${RELEASE_NAME}/jbr-api/jbr-api.jar" "${IMAGES_DIR}/test"
|
||||||
|
tar -pcf "$JBRSDK_TEST".tar -C $IMAGES_DIR --exclude='test/jdk/demos' test || do_exit $?
|
||||||
|
[ -f "$JBRSDK_TEST.tar.gz" ] && rm "$JBRSDK_TEST.tar.gz"
|
||||||
|
gzip "$JBRSDK_TEST".tar || do_exit $?
|
||||||
|
fi
|
||||||
|
|
||||||
|
do_exit 0
|
||||||
16
jb/project/tools/mac/scripts/entitlements.xml
Normal file
16
jb/project/tools/mac/scripts/entitlements.xml
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>com.apple.security.cs.allow-jit</key>
|
||||||
|
<true/>
|
||||||
|
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
|
||||||
|
<true/>
|
||||||
|
<key>com.apple.security.cs.allow-dyld-environment-variables</key>
|
||||||
|
<true/>
|
||||||
|
<key>com.apple.security.cs.disable-library-validation</key>
|
||||||
|
<true/>
|
||||||
|
<key>com.apple.security.cs.disable-executable-page-protection</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
167
jb/project/tools/mac/scripts/mkimages.sh
Executable file
167
jb/project/tools/mac/scripts/mkimages.sh
Executable file
@@ -0,0 +1,167 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
set -x
|
||||||
|
|
||||||
|
# The following parameters must be specified:
|
||||||
|
# build_number - specifies the number of JetBrainsRuntime build
|
||||||
|
# bundle_type - specifies bundle to be built;possible values:
|
||||||
|
# <empty> or nomod - the release bundles without any additional modules (jcef)
|
||||||
|
# jcef - the release bundles with jcef
|
||||||
|
# fd - the fastdebug bundles which also include the jcef module
|
||||||
|
#
|
||||||
|
# This script makes test-image along with JDK images when bundle_type is set to "jcef".
|
||||||
|
# If the character 't' is added at the end of bundle_type then it also makes test-image along with JDK images.
|
||||||
|
#
|
||||||
|
# Environment variables:
|
||||||
|
# JDK_BUILD_NUMBER - specifies update release of OpenJDK build or the value of --with-version-build argument
|
||||||
|
# to configure
|
||||||
|
# By default JDK_BUILD_NUMBER is set zero
|
||||||
|
# JCEF_PATH - specifies the path to the directory with JCEF binaries.
|
||||||
|
# By default JCEF binaries should be located in ./jcef_mac
|
||||||
|
|
||||||
|
source jb/project/tools/common/scripts/common.sh
|
||||||
|
|
||||||
|
JCEF_PATH=${JCEF_PATH:=./jcef_mac}
|
||||||
|
BOOT_JDK=${BOOT_JDK:=$(/usr/libexec/java_home -v 17)}
|
||||||
|
|
||||||
|
function do_configure {
|
||||||
|
if [[ "${architecture}" == *aarch64* ]]; then
|
||||||
|
ENABLE_CDS="--enable-cds=no"
|
||||||
|
else
|
||||||
|
ENABLE_CDS="--enable-cds=yes"
|
||||||
|
fi
|
||||||
|
sh configure \
|
||||||
|
$WITH_DEBUG_LEVEL \
|
||||||
|
--with-vendor-name="$VENDOR_NAME" \
|
||||||
|
--with-vendor-version-string="$VENDOR_VERSION_STRING" \
|
||||||
|
--with-macosx-bundle-name-base=${VENDOR_VERSION_STRING} \
|
||||||
|
--with-macosx-bundle-id-base="com.jetbrains.jbr" \
|
||||||
|
--with-jvm-features=shenandoahgc \
|
||||||
|
--with-version-pre= \
|
||||||
|
--with-version-build="$JDK_BUILD_NUMBER" \
|
||||||
|
--with-version-opt=b"$build_number" \
|
||||||
|
--with-boot-jdk="$BOOT_JDK" \
|
||||||
|
--enable-cds=yes \
|
||||||
|
$STATIC_CONF_ARGS \
|
||||||
|
$REPRODUCIBLE_BUILD_OPTS \
|
||||||
|
$WITH_ZIPPED_NATIVE_DEBUG_SYMBOLS \
|
||||||
|
|| do_exit $?
|
||||||
|
}
|
||||||
|
|
||||||
|
function create_image_bundle {
|
||||||
|
__bundle_name=$1
|
||||||
|
__arch_name=$2
|
||||||
|
__modules_path=$3
|
||||||
|
__modules=$4
|
||||||
|
|
||||||
|
fastdebug_infix=''
|
||||||
|
|
||||||
|
tmp=.bundle.$$.tmp
|
||||||
|
mkdir "$tmp" || do_exit $?
|
||||||
|
|
||||||
|
[ "$bundle_type" == "fd" ] && [ "$__arch_name" == "$JBRSDK_BUNDLE" ] && __bundle_name=$__arch_name && fastdebug_infix="fastdebug-"
|
||||||
|
JBR=${__bundle_name}-${JBSDK_VERSION}-osx-${architecture}-${fastdebug_infix:-}b${build_number}
|
||||||
|
__root_dir=${__bundle_name}-${JBSDK_VERSION}-osx-${architecture}-${fastdebug_infix:-}b${build_number}
|
||||||
|
|
||||||
|
JRE_CONTENTS=$tmp/$__root_dir/Contents
|
||||||
|
mkdir -p "$JRE_CONTENTS" || do_exit $?
|
||||||
|
|
||||||
|
echo Running jlink...
|
||||||
|
"$JSDK"/bin/jlink \
|
||||||
|
--module-path "$__modules_path" --no-man-pages --compress=2 \
|
||||||
|
--add-modules "$__modules" --output "$JRE_CONTENTS/Home" || do_exit $?
|
||||||
|
|
||||||
|
grep -v "^JAVA_VERSION" "$JSDK"/release | grep -v "^MODULES" >> "$JRE_CONTENTS/Home/release"
|
||||||
|
if [ "$__arch_name" == "$JBRSDK_BUNDLE" ]; then
|
||||||
|
sed 's/JBR/JBRSDK/g' $JRE_CONTENTS/Home/release > release
|
||||||
|
mv release $JRE_CONTENTS/Home/release
|
||||||
|
cp $IMAGES_DIR/jdk-bundle/jdk-$JBSDK_VERSION.jdk/Contents/Home/lib/src.zip $JRE_CONTENTS/Home/lib
|
||||||
|
copy_jmods "$__modules" "$__modules_path" "$JRE_CONTENTS"/Home/jmods
|
||||||
|
zip_native_debug_symbols $IMAGES_DIR/jdk-bundle/jdk-$JBSDK_VERSION.jdk "${JBR}_diz"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cp -R "$JSDK"/../MacOS "$JRE_CONTENTS"
|
||||||
|
cp "$JSDK"/../Info.plist "$JRE_CONTENTS"
|
||||||
|
|
||||||
|
[ -n "$bundle_type" ] && (cp -a $JCEF_PATH/Frameworks "$JRE_CONTENTS" || do_exit $?)
|
||||||
|
|
||||||
|
echo Creating "$JBR".tar.gz ...
|
||||||
|
# Normalize timestamp
|
||||||
|
find "$tmp"/"$__root_dir" -print0 | xargs -0 touch -c -h -t "$TOUCH_TIME"
|
||||||
|
|
||||||
|
(cd "$tmp" &&
|
||||||
|
find "$__root_dir" -print0 | LC_ALL=C sort -z | \
|
||||||
|
COPYFILE_DISABLE=1 tar $REPRODUCIBLE_TAR_OPTS --no-recursion --null -T - \
|
||||||
|
-czf "$JBR".tar.gz --exclude='*.dSYM' --exclude='man') || do_exit $?
|
||||||
|
mv "$tmp"/"$JBR".tar.gz "$JBR".tar.gz
|
||||||
|
rm -rf "$tmp"
|
||||||
|
}
|
||||||
|
|
||||||
|
WITH_DEBUG_LEVEL="--with-debug-level=release"
|
||||||
|
CONF_ARCHITECTURE=x86_64
|
||||||
|
if [[ "${architecture}" == *aarch64* ]]; then
|
||||||
|
CONF_ARCHITECTURE=aarch64
|
||||||
|
fi
|
||||||
|
RELEASE_NAME=macosx-${CONF_ARCHITECTURE}-server-release
|
||||||
|
|
||||||
|
case "$bundle_type" in
|
||||||
|
"jcef")
|
||||||
|
do_reset_changes=1
|
||||||
|
do_maketest=1
|
||||||
|
;;
|
||||||
|
"nomod" | "")
|
||||||
|
bundle_type=""
|
||||||
|
;;
|
||||||
|
"fd")
|
||||||
|
do_reset_changes=1
|
||||||
|
WITH_DEBUG_LEVEL="--with-debug-level=fastdebug"
|
||||||
|
RELEASE_NAME=macosx-${CONF_ARCHITECTURE}-server-fastdebug
|
||||||
|
JBSDK=macosx-${architecture}-server-release
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ -z "${INC_BUILD:-}" ]; then
|
||||||
|
do_configure || do_exit $?
|
||||||
|
make clean CONF=$RELEASE_NAME || do_exit $?
|
||||||
|
fi
|
||||||
|
make images CONF=$RELEASE_NAME || do_exit $?
|
||||||
|
|
||||||
|
IMAGES_DIR=build/$RELEASE_NAME/images
|
||||||
|
|
||||||
|
JSDK=$IMAGES_DIR/jdk-bundle/jdk-$JBSDK_VERSION.jdk/Contents/Home
|
||||||
|
JSDK_MODS_DIR=$IMAGES_DIR/jmods
|
||||||
|
JBRSDK_BUNDLE=jbrsdk
|
||||||
|
|
||||||
|
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ]; then
|
||||||
|
git apply -p0 < jb/project/tools/patches/add_jcef_module.patch || do_exit $?
|
||||||
|
update_jsdk_mods "$JSDK" "$JCEF_PATH"/jmods "$JSDK"/jmods "$JSDK_MODS_DIR" || do_exit $?
|
||||||
|
cp $JCEF_PATH/jmods/* $JSDK_MODS_DIR # $JSDK/jmods is not changed
|
||||||
|
|
||||||
|
jbr_name_postfix="_${bundle_type}"
|
||||||
|
else
|
||||||
|
jbr_name_postfix=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
# create runtime image bundle
|
||||||
|
modules=$(xargs < jb/project/tools/common/modules.list | sed s/" "//g) || do_exit $?
|
||||||
|
create_image_bundle "jbr${jbr_name_postfix}" "jbr" $JSDK_MODS_DIR "$modules" || do_exit $?
|
||||||
|
|
||||||
|
# create sdk image bundle
|
||||||
|
modules=$(cat "$JSDK"/release | grep MODULES | sed s/MODULES=//g | sed s/' '/','/g | sed s/\"//g | sed s/\\n//g) || do_exit $?
|
||||||
|
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ] || [ "$bundle_type" == "$JBRSDK_BUNDLE" ]; then
|
||||||
|
modules=${modules},$(get_mods_list "$JCEF_PATH"/jmods)
|
||||||
|
fi
|
||||||
|
create_image_bundle "$JBRSDK_BUNDLE${jbr_name_postfix}" "$JBRSDK_BUNDLE" "$JSDK_MODS_DIR" "$modules" || do_exit $?
|
||||||
|
|
||||||
|
if [ $do_maketest -eq 1 ]; then
|
||||||
|
JBRSDK_TEST=${JBRSDK_BUNDLE}-${JBSDK_VERSION}-osx-test-${architecture}-b${build_number}
|
||||||
|
echo Creating "$JBRSDK_TEST" ...
|
||||||
|
[ $do_reset_changes -eq 1 ] && git checkout HEAD jb/project/tools/common/modules.list src/java.desktop/share/classes/module-info.java
|
||||||
|
make test-image jbr-api CONF=$RELEASE_NAME JBR_API_JBR_VERSION=TEST || do_exit $?
|
||||||
|
cp "build/${RELEASE_NAME}/jbr-api/jbr-api.jar" "${IMAGES_DIR}/test"
|
||||||
|
[ -f "$JBRSDK_TEST.tar.gz" ] && rm "$JBRSDK_TEST.tar.gz"
|
||||||
|
COPYFILE_DISABLE=1 tar -pczf "$JBRSDK_TEST".tar.gz -C $IMAGES_DIR --exclude='test/jdk/demos' test || do_exit $?
|
||||||
|
fi
|
||||||
|
|
||||||
|
do_exit 0
|
||||||
121
jb/project/tools/mac/scripts/notarize.sh
Executable file
121
jb/project/tools/mac/scripts/notarize.sh
Executable file
@@ -0,0 +1,121 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
set -x
|
||||||
|
|
||||||
|
APP_DIRECTORY=$1
|
||||||
|
APPL_USER=$2
|
||||||
|
APPL_PASSWORD=$3
|
||||||
|
APP_NAME=$4
|
||||||
|
BUNDLE_ID=$5
|
||||||
|
FAKE_ROOT="${6:-fake-root}"
|
||||||
|
|
||||||
|
if [[ -z "$APP_DIRECTORY" ]] || [[ -z "$APPL_USER" ]] || [[ -z "$APPL_PASSWORD" ]]; then
|
||||||
|
echo "Usage: $0 AppDirectory Username Password"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [[ ! -d "$APP_DIRECTORY" ]]; then
|
||||||
|
echo "AppDirectory '$APP_DIRECTORY' does not exist or not a directory"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
function log() {
|
||||||
|
echo "$(date '+[%H:%M:%S]') $*"
|
||||||
|
}
|
||||||
|
|
||||||
|
function publish-log() {
|
||||||
|
id=$1
|
||||||
|
file=$2
|
||||||
|
curl -T "$file" "$ARTIFACTORY_URL/$id" || true
|
||||||
|
}
|
||||||
|
|
||||||
|
function altool-upload() {
|
||||||
|
# Since altool uses same file for upload token we have to trick it into using different folders for token file location
|
||||||
|
# Also it copies zip into TMPDIR so we override it too, to simplify cleanup
|
||||||
|
OLD_HOME="$HOME"
|
||||||
|
export HOME="$FAKE_ROOT/home"
|
||||||
|
export TMPDIR="$FAKE_ROOT/tmp"
|
||||||
|
mkdir -p "$HOME"
|
||||||
|
mkdir -p "$TMPDIR"
|
||||||
|
export _JAVA_OPTIONS="-Duser.home=$HOME -Djava.io.tmpdir=$TMPDIR"
|
||||||
|
# Reduce amount of downloads, cache transporter libraries
|
||||||
|
shared_itmstransporter="$OLD_HOME/shared-itmstransporter"
|
||||||
|
if [[ -f "$shared_itmstransporter" ]]; then
|
||||||
|
cp -r "$shared_itmstransporter" "$HOME/.itmstransporter"
|
||||||
|
fi
|
||||||
|
# For some reason altool prints everything to stderr, not stdout
|
||||||
|
set +e
|
||||||
|
xcrun altool --notarize-app \
|
||||||
|
--username "$APPL_USER" --password "$APPL_PASSWORD" \
|
||||||
|
--primary-bundle-id "$BUNDLE_ID" \
|
||||||
|
--asc-provider JetBrainssro --file "$1" 2>&1 | tee "altool.init.out"
|
||||||
|
unset TMPDIR
|
||||||
|
export HOME="$OLD_HOME"
|
||||||
|
set -e
|
||||||
|
}
|
||||||
|
|
||||||
|
#immediately exit script with an error if a command fails
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
#file="$APP_NAME.zip"
|
||||||
|
|
||||||
|
#log "Zipping $file..."
|
||||||
|
#rm -rf "$file"
|
||||||
|
#ditto -c -k --sequesterRsrc --keepParent "$APP_DIRECTORY" "$file"
|
||||||
|
|
||||||
|
log "Notarizing $APP_NAME..."
|
||||||
|
rm -rf "altool.init.out" "altool.check.out"
|
||||||
|
altool-upload "$APP_NAME"
|
||||||
|
|
||||||
|
notarization_info="$(grep -e "RequestUUID" "altool.init.out" | grep -oE '([0-9a-f-]{36})')"
|
||||||
|
|
||||||
|
if [ -z "$notarization_info" ]; then
|
||||||
|
log "Faile to read RequestUUID from altool.init.out"
|
||||||
|
exit 10
|
||||||
|
fi
|
||||||
|
|
||||||
|
PATH="$PATH:/usr/local/bin/"
|
||||||
|
|
||||||
|
log "Notarization request sent, awaiting response"
|
||||||
|
spent=0
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
# For some reason altool prints everything to stderr, not stdout
|
||||||
|
xcrun altool --username "$APPL_USER" --notarization-info "$notarization_info" --password "$APPL_PASSWORD" >"altool.check.out" 2>&1 || true
|
||||||
|
status="$(grep -oe 'Status: .*' "altool.check.out" | cut -c 9- || true)"
|
||||||
|
log "Current status: $status"
|
||||||
|
if [ "$status" = "invalid" ]; then
|
||||||
|
log "Notarization failed"
|
||||||
|
ec=1
|
||||||
|
elif [ "$status" = "success" ]; then
|
||||||
|
log "Notarization succeeded"
|
||||||
|
ec=0
|
||||||
|
else
|
||||||
|
if [ "$status" != "in progress" ]; then
|
||||||
|
log "Unknown notarization status, waiting more, altool output:"
|
||||||
|
cat "altool.check.out"
|
||||||
|
fi
|
||||||
|
if [[ $spent -gt 60 ]]; then
|
||||||
|
log "Waiting time out (apx 60 minutes)"
|
||||||
|
ec=2
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
sleep 60
|
||||||
|
((spent += 1))
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
developer_log="developer_log.json"
|
||||||
|
log "Fetching $developer_log"
|
||||||
|
# TODO: Replace cut with trim or something better
|
||||||
|
url="$(grep -oe 'LogFileURL: .*' "altool.check.out" | cut -c 13-)"
|
||||||
|
wget "$url" -O "$developer_log" && cat "$developer_log" || true
|
||||||
|
if [ $ec != 0 ]; then
|
||||||
|
log "Publishing $developer_log"
|
||||||
|
publish-log "$notarization_info" "$developer_log"
|
||||||
|
fi
|
||||||
|
break
|
||||||
|
done
|
||||||
|
cat "altool.check.out"
|
||||||
|
|
||||||
|
rm -rf "altool.init.out" "altool.check.out"
|
||||||
|
exit $ec
|
||||||
117
jb/project/tools/mac/scripts/sign.sh
Executable file
117
jb/project/tools/mac/scripts/sign.sh
Executable file
@@ -0,0 +1,117 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
set -x
|
||||||
|
|
||||||
|
APPLICATION_PATH=$1
|
||||||
|
APP_NAME=$2
|
||||||
|
BUNDLE_ID=$3
|
||||||
|
JB_DEVELOPER_CERT=$4
|
||||||
|
JB_INSTALLER_CERT=$5
|
||||||
|
|
||||||
|
if [[ -z "$APPLICATION_PATH" ]] || [[ -z "$JB_DEVELOPER_CERT" ]]; then
|
||||||
|
echo "Usage: $0 AppDirectory CertificateID"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [[ ! -d "$APPLICATION_PATH" ]]; then
|
||||||
|
echo "AppDirectory '$APPLICATION_PATH' does not exist or not a directory"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
function log() {
|
||||||
|
echo "$(date '+[%H:%M:%S]') $*"
|
||||||
|
}
|
||||||
|
|
||||||
|
#immediately exit script with an error if a command fails
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
# Cleanup files left from previous sign attempt (if any)
|
||||||
|
find "$APPLICATION_PATH" -name '*.cstemp' -exec rm '{}' \;
|
||||||
|
|
||||||
|
log "Signing libraries and executables..."
|
||||||
|
# -perm +111 searches for executables
|
||||||
|
for f in \
|
||||||
|
"Contents/Home/lib" "Contents/MacOS" \
|
||||||
|
"Contents/Home/Frameworks" \
|
||||||
|
"Contents/Frameworks"; do
|
||||||
|
if [ -d "$APPLICATION_PATH/$f" ]; then
|
||||||
|
find "$APPLICATION_PATH/$f" \
|
||||||
|
-type f \( -name "*.jnilib" -o -name "*.dylib" -o -name "*.so" -o -name "*.tbd" -o -name "*.node" -o -perm +111 \) \
|
||||||
|
-exec codesign --timestamp \
|
||||||
|
-v -s "$JB_DEVELOPER_CERT" --options=runtime --force \
|
||||||
|
--entitlements entitlements.xml {} \;
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
log "Signing libraries in jars in $PWD"
|
||||||
|
|
||||||
|
# todo: add set -euo pipefail; into the inner sh -c
|
||||||
|
# `-e` prevents `grep -q && printf` loginc
|
||||||
|
# with `-o pipefail` there's no input for 'while' loop
|
||||||
|
find "$APPLICATION_PATH" -name '*.jar' \
|
||||||
|
-exec sh -c "set -u; unzip -l \"\$0\" | grep -q -e '\.dylib\$' -e '\.jnilib\$' -e '\.so\$' -e '\.tbd\$' -e '^jattach\$' && printf \"\$0\0\" " {} \; |
|
||||||
|
while IFS= read -r -d $'\0' file; do
|
||||||
|
log "Processing libraries in $file"
|
||||||
|
|
||||||
|
rm -rf jarfolder jar.jar
|
||||||
|
mkdir jarfolder
|
||||||
|
filename="${file##*/}"
|
||||||
|
log "Filename: $filename"
|
||||||
|
cp "$file" jarfolder && (cd jarfolder && jar xf "$filename" && rm "$filename")
|
||||||
|
|
||||||
|
find jarfolder \
|
||||||
|
-type f \( -name "*.jnilib" -o -name "*.dylib" -o -name "*.so" -o -name "*.tbd" -o -name "jattach" \) \
|
||||||
|
-exec codesign --timestamp \
|
||||||
|
--force \
|
||||||
|
-v -s "$JB_DEVELOPER_CERT" --options=runtime \
|
||||||
|
--entitlements entitlements.xml {} \;
|
||||||
|
|
||||||
|
(cd jarfolder; zip -q -r -o -0 ../jar.jar .)
|
||||||
|
mv jar.jar "$file"
|
||||||
|
done
|
||||||
|
|
||||||
|
rm -rf jarfolder jar.jar
|
||||||
|
|
||||||
|
log "Signing other files..."
|
||||||
|
for f in \
|
||||||
|
"Contents/Home/bin"; do
|
||||||
|
if [ -d "$APPLICATION_PATH/$f" ]; then
|
||||||
|
find "$APPLICATION_PATH/$f" \
|
||||||
|
-type f \( -name "*.jnilib" -o -name "*.dylib" -o -name "*.so" -o -name "*.tbd" -o -perm +111 \) \
|
||||||
|
-exec codesign --timestamp \
|
||||||
|
-v -s "$JB_DEVELOPER_CERT" --options=runtime --force \
|
||||||
|
--entitlements entitlements.xml {} \;
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
#log "Signing executable..."
|
||||||
|
#codesign --timestamp \
|
||||||
|
# -v -s "$JB_DEVELOPER_CERT" --options=runtime \
|
||||||
|
# --force \
|
||||||
|
# --entitlements entitlements.xml "$APPLICATION_PATH/Contents/MacOS/idea"
|
||||||
|
|
||||||
|
log "Signing whole app..."
|
||||||
|
codesign --timestamp \
|
||||||
|
-v -s "$JB_DEVELOPER_CERT" --options=runtime \
|
||||||
|
--force \
|
||||||
|
--entitlements entitlements.xml "$APPLICATION_PATH"
|
||||||
|
|
||||||
|
BUILD_NAME=$(echo $APPLICATION_PATH | awk -F"/" '{ print $2 }')
|
||||||
|
|
||||||
|
log "Creating $APP_NAME.pkg..."
|
||||||
|
rm -rf "$APP_NAME.pkg"
|
||||||
|
|
||||||
|
mkdir -p unsigned
|
||||||
|
pkgbuild --identifier $BUNDLE_ID --root $APPLICATION_PATH \
|
||||||
|
--install-location /Library/Java/JavaVirtualMachines/${BUILD_NAME} unsigned/${APP_NAME}.pkg
|
||||||
|
productsign --timestamp --sign "$JB_INSTALLER_CERT" unsigned/${APP_NAME}.pkg ${APP_NAME}.pkg
|
||||||
|
|
||||||
|
#log "Signing whole app..."
|
||||||
|
#codesign --timestamp \
|
||||||
|
# -v -s "$JB_DEVELOPER_CERT" --options=runtime \
|
||||||
|
# --force \
|
||||||
|
# --entitlements entitlements.xml $APP_NAME.pkg
|
||||||
|
|
||||||
|
log "Verifying java is not broken"
|
||||||
|
find "$APPLICATION_PATH" \
|
||||||
|
-type f -name 'java' -perm +111 -exec {} -version \;
|
||||||
138
jb/project/tools/mac/scripts/signapp.sh
Executable file
138
jb/project/tools/mac/scripts/signapp.sh
Executable file
@@ -0,0 +1,138 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
#immediately exit script with an error if a command fails
|
||||||
|
set -euo pipefail
|
||||||
|
set -x
|
||||||
|
|
||||||
|
export COPY_EXTENDED_ATTRIBUTES_DISABLE=true
|
||||||
|
export COPYFILE_DISABLE=true
|
||||||
|
|
||||||
|
INPUT_FILE=$1
|
||||||
|
EXPLODED=$2.exploded
|
||||||
|
BACKUP_JMODS=$2.backup
|
||||||
|
USERNAME=$3
|
||||||
|
PASSWORD=$4
|
||||||
|
CODESIGN_STRING=$5
|
||||||
|
JB_INSTALLER_CERT=$6
|
||||||
|
NOTARIZE=$7
|
||||||
|
BUNDLE_ID=$8
|
||||||
|
|
||||||
|
cd "$(dirname "$0")"
|
||||||
|
|
||||||
|
function log() {
|
||||||
|
echo "$(date '+[%H:%M:%S]') $*"
|
||||||
|
}
|
||||||
|
|
||||||
|
log "Deleting $EXPLODED ..."
|
||||||
|
if test -d "$EXPLODED"; then
|
||||||
|
find "$EXPLODED" -mindepth 1 -maxdepth 1 -exec chmod -R u+wx '{}' \;
|
||||||
|
fi
|
||||||
|
rm -rf "$EXPLODED"
|
||||||
|
mkdir "$EXPLODED"
|
||||||
|
rm -rf "$BACKUP_JMODS"
|
||||||
|
mkdir "$BACKUP_JMODS"
|
||||||
|
|
||||||
|
log "Unzipping $INPUT_FILE to $EXPLODED ..."
|
||||||
|
tar -xzvf "$INPUT_FILE" --directory $EXPLODED
|
||||||
|
BUILD_NAME="$(ls "$EXPLODED")"
|
||||||
|
#sed -i '' s/BNDL/APPL/ $EXPLODED/$BUILD_NAME/Contents/Info.plist
|
||||||
|
rm -f $EXPLODED/$BUILD_NAME/Contents/CodeResources
|
||||||
|
rm "$INPUT_FILE"
|
||||||
|
if test -d $EXPLODED/$BUILD_NAME/Contents/Home/jmods; then
|
||||||
|
mv $EXPLODED/$BUILD_NAME/Contents/Home/jmods $BACKUP_JMODS
|
||||||
|
fi
|
||||||
|
|
||||||
|
log "$INPUT_FILE extracted and removed"
|
||||||
|
|
||||||
|
APP_NAME=$(echo ${INPUT_FILE} | awk -F".tar" '{ print $1 }')
|
||||||
|
APPLICATION_PATH=$EXPLODED/$(ls $EXPLODED)
|
||||||
|
|
||||||
|
find "$APPLICATION_PATH/Contents/Home/bin" \
|
||||||
|
-maxdepth 1 -type f -name '*.jnilib' -print0 |
|
||||||
|
while IFS= read -r -d $'\0' file; do
|
||||||
|
if [ -f "$file" ]; then
|
||||||
|
log "Linking $file"
|
||||||
|
b="$(basename "$file" .jnilib)"
|
||||||
|
ln -sf "$b.jnilib" "$(dirname "$file")/$b.dylib"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
find "$APPLICATION_PATH/Contents/" \
|
||||||
|
-maxdepth 1 -type f -name '*.txt' -print0 |
|
||||||
|
while IFS= read -r -d $'\0' file; do
|
||||||
|
if [ -f "$file" ]; then
|
||||||
|
log "Moving $file"
|
||||||
|
mv "$file" "$APPLICATION_PATH/Contents/Resources"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
non_plist=$(find "$APPLICATION_PATH/Contents/" -maxdepth 1 -type f -and -not -name 'Info.plist' | wc -l)
|
||||||
|
if [[ $non_plist -gt 0 ]]; then
|
||||||
|
log "Only Info.plist file is allowed in Contents directory but found $non_plist file(s):"
|
||||||
|
log "$(find "$APPLICATION_PATH/Contents/" -maxdepth 1 -type f -and -not -name 'Info.plist')"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
log "Unlocking keychain..."
|
||||||
|
# Make sure *.p12 is imported into local KeyChain
|
||||||
|
security unlock-keychain -p "$PASSWORD" "/Users/$USERNAME/Library/Keychains/login.keychain"
|
||||||
|
|
||||||
|
attempt=1
|
||||||
|
limit=3
|
||||||
|
set +e
|
||||||
|
while [[ $attempt -le $limit ]]; do
|
||||||
|
log "Signing (attempt $attempt) $APPLICATION_PATH ..."
|
||||||
|
./sign.sh "$APPLICATION_PATH" "$APP_NAME" "$BUNDLE_ID" "$CODESIGN_STRING" "$JB_INSTALLER_CERT"
|
||||||
|
ec=$?
|
||||||
|
if [[ $ec -ne 0 ]]; then
|
||||||
|
((attempt += 1))
|
||||||
|
if [ $attempt -eq $limit ]; then
|
||||||
|
set -e
|
||||||
|
fi
|
||||||
|
log "Signing failed, wait for 30 sec and try to sign again"
|
||||||
|
sleep 30
|
||||||
|
else
|
||||||
|
log "Signing done"
|
||||||
|
codesign -v "$APPLICATION_PATH" -vvvvv
|
||||||
|
log "Check sign done"
|
||||||
|
spctl -a -v $APPLICATION_PATH
|
||||||
|
((attempt += limit))
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if [ "$NOTARIZE" = "yes" ]; then
|
||||||
|
log "Notarizing..."
|
||||||
|
# shellcheck disable=SC1090
|
||||||
|
source "$HOME/.notarize_token"
|
||||||
|
# Since notarization tool uses same file for upload token we have to trick it into using different folders, hence fake root
|
||||||
|
# Also it leaves copy of zip file in TMPDIR, so notarize.sh overrides it and uses FAKE_ROOT as location for temp TMPDIR
|
||||||
|
FAKE_ROOT="$(pwd)/fake-root"
|
||||||
|
mkdir -p "$FAKE_ROOT"
|
||||||
|
echo "Notarization will use fake root: $FAKE_ROOT"
|
||||||
|
./notarize.sh "$APPLICATION_PATH" "$APPLE_USERNAME" "$APPLE_PASSWORD" "$APP_NAME.pkg" "$BUNDLE_ID" "$FAKE_ROOT"
|
||||||
|
rm -rf "$FAKE_ROOT"
|
||||||
|
|
||||||
|
set +e
|
||||||
|
log "Stapling..."
|
||||||
|
xcrun stapler staple "$APPLICATION_PATH"
|
||||||
|
else
|
||||||
|
log "Notarization disabled"
|
||||||
|
log "Stapling disabled"
|
||||||
|
fi
|
||||||
|
|
||||||
|
log "Zipping $BUILD_NAME to $INPUT_FILE ..."
|
||||||
|
(
|
||||||
|
#cd "$EXPLODED"
|
||||||
|
#ditto -c -k --sequesterRsrc --keepParent "$BUILD_NAME" "../$INPUT_FILE"
|
||||||
|
if test -d $BACKUP_JMODS/jmods; then
|
||||||
|
mv $BACKUP_JMODS/jmods $APPLICATION_PATH/Contents/Home
|
||||||
|
fi
|
||||||
|
mv $APPLICATION_PATH $EXPLODED/$BUILD_NAME
|
||||||
|
|
||||||
|
tar -pczvf $INPUT_FILE --exclude='man' -C $EXPLODED $BUILD_NAME
|
||||||
|
log "Finished zipping"
|
||||||
|
)
|
||||||
|
rm -rf "$EXPLODED"
|
||||||
|
log "Done"
|
||||||
30
jb/project/tools/patches/add_jcef_module.patch
Normal file
30
jb/project/tools/patches/add_jcef_module.patch
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
diff --git jb/project/tools/common/modules.list jb/project/tools/common/modules.list
|
||||||
|
index 522acb7cb43..c40e689d5de 100644
|
||||||
|
--- jb/project/tools/common/modules.list
|
||||||
|
+++ jb/project/tools/common/modules.list
|
||||||
|
@@ -51,4 +51,7 @@ jdk.unsupported.desktop,
|
||||||
|
jdk.xml.dom,
|
||||||
|
jdk.zipfs,
|
||||||
|
jdk.hotspot.agent,
|
||||||
|
-jdk.jcmd
|
||||||
|
+jdk.jcmd,
|
||||||
|
+jcef,
|
||||||
|
+gluegen.rt,
|
||||||
|
+jogl.all
|
||||||
|
diff --git src/java.desktop/share/classes/module-info.java src/java.desktop/share/classes/module-info.java
|
||||||
|
index 897647ee368..781d1809493 100644
|
||||||
|
--- src/java.desktop/share/classes/module-info.java
|
||||||
|
+++ src/java.desktop/share/classes/module-info.java
|
||||||
|
@@ -116,7 +116,11 @@ module java.desktop {
|
||||||
|
// see make/GensrcModuleInfo.gmk
|
||||||
|
exports sun.awt to
|
||||||
|
jdk.accessibility,
|
||||||
|
- jdk.unsupported.desktop;
|
||||||
|
+ jdk.unsupported.desktop,
|
||||||
|
+ jcef,
|
||||||
|
+ jogl.all;
|
||||||
|
+
|
||||||
|
+ exports java.awt.peer to jcef;
|
||||||
|
|
||||||
|
exports java.awt.dnd.peer to jdk.unsupported.desktop;
|
||||||
|
exports sun.awt.dnd to jdk.unsupported.desktop;
|
||||||
30
jb/project/tools/patches/add_jcef_module_aarch64.patch
Normal file
30
jb/project/tools/patches/add_jcef_module_aarch64.patch
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
diff --git jb/project/tools/common/modules.list jb/project/tools/common/modules.list
|
||||||
|
index 522acb7..c40e689 100644
|
||||||
|
--- jb/project/tools/common/modules.list
|
||||||
|
+++ jb/project/tools/common/modules.list
|
||||||
|
@@ -51,4 +51,7 @@ jdk.unsupported.desktop,
|
||||||
|
jdk.xml.dom,
|
||||||
|
jdk.zipfs,
|
||||||
|
jdk.hotspot.agent,
|
||||||
|
-jdk.jcmd
|
||||||
|
+jdk.jcmd,
|
||||||
|
+jcef,
|
||||||
|
+gluegen.rt,
|
||||||
|
+jogl.all
|
||||||
|
diff --git src/java.desktop/share/classes/module-info.java src/java.desktop/share/classes/module-info.java
|
||||||
|
index 897647e..781d180 100644
|
||||||
|
--- src/java.desktop/share/classes/module-info.java
|
||||||
|
+++ src/java.desktop/share/classes/module-info.java
|
||||||
|
@@ -116,7 +116,11 @@ module java.desktop {
|
||||||
|
// see make/GensrcModuleInfo.gmk
|
||||||
|
exports sun.awt to
|
||||||
|
jdk.accessibility,
|
||||||
|
- jdk.unsupported.desktop;
|
||||||
|
+ jdk.unsupported.desktop,
|
||||||
|
+ jcef,
|
||||||
|
+ jogl.all;
|
||||||
|
+
|
||||||
|
+ exports java.awt.peer to jcef;
|
||||||
|
|
||||||
|
exports java.awt.dnd.peer to jdk.unsupported.desktop;
|
||||||
|
exports sun.awt.dnd to jdk.unsupported.desktop;
|
||||||
162
jb/project/tools/test/check_jbr_size.sh
Normal file
162
jb/project/tools/test/check_jbr_size.sh
Normal file
@@ -0,0 +1,162 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
TC_PRINT=0
|
||||||
|
# Always print TeamCity service messages if running under TeamCity
|
||||||
|
[[ -n "${TEAMCITY_VERSION:-}" ]] && TC_PRINT=1
|
||||||
|
|
||||||
|
while getopts ":t" o; do
|
||||||
|
case "${o}" in
|
||||||
|
t) TC_PRINT=1 ;;
|
||||||
|
*);;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
shift $((OPTIND-1))
|
||||||
|
|
||||||
|
NEWFILEPATH="$1"
|
||||||
|
CONFIGID="$2"
|
||||||
|
BUILDID="$3"
|
||||||
|
TOKEN="$4"
|
||||||
|
|
||||||
|
if [ ! -f "$NEWFILEPATH" ]; then
|
||||||
|
echo "File not found: $NEWFILEPATH"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
#
|
||||||
|
# Get the size of new artifact
|
||||||
|
#
|
||||||
|
|
||||||
|
unameOut="$(uname -s)"
|
||||||
|
case "${unameOut}" in
|
||||||
|
Linux*)
|
||||||
|
NEWFILESIZE=$(stat -c%s "$NEWFILEPATH")
|
||||||
|
;;
|
||||||
|
Darwin*)
|
||||||
|
NEWFILESIZE=$(stat -f%z "$NEWFILEPATH")
|
||||||
|
;;
|
||||||
|
CYGWIN*)
|
||||||
|
NEWFILESIZE=$(stat -c%s "$NEWFILEPATH")
|
||||||
|
;;
|
||||||
|
MINGW*)
|
||||||
|
NEWFILESIZE=$(stat -c%s "$NEWFILEPATH")
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unknown machine: ${unameOut}"
|
||||||
|
exit 1
|
||||||
|
esac
|
||||||
|
FILENAME=$(basename "${NEWFILEPATH}")
|
||||||
|
|
||||||
|
#
|
||||||
|
# Get pattern of artifact name
|
||||||
|
# Base filename pattern: <BUNDLE_TYPE>-<JDK_VERSION>-<OS>-<ARCH>-b<BUILD>.tar.gz: jbr_dcevm-17.0.2-osx-x64-b1234.tar.gz
|
||||||
|
# BUNDLE_TYPE: jbr, jbrsdk, jbr_dcevm, jbrsdk_jcef etc.
|
||||||
|
# OS_ARCH_PATTERN - <os_architecture>: osx-x64, linux-aarch64, linux-musl-x64, windows-x64 etc.
|
||||||
|
|
||||||
|
BUNDLE_TYPE=jbrsdk
|
||||||
|
OS_ARCH_PATTERN=""
|
||||||
|
FILE_EXTENSION=tar.gz
|
||||||
|
|
||||||
|
re='(jbr[a-z_]*).*-[0-9_\.]+-(.+)-b[0-9]+(.+)'
|
||||||
|
if [[ $FILENAME =~ $re ]]; then
|
||||||
|
BUNDLE_TYPE=${BASH_REMATCH[1]}
|
||||||
|
OS_ARCH_PATTERN=${BASH_REMATCH[2]}
|
||||||
|
FILE_EXTENSION=${BASH_REMATCH[3]}
|
||||||
|
else
|
||||||
|
echo "File name $FILENAME does not match regex $re"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
function test_started_msg() {
|
||||||
|
if [ $TC_PRINT -eq 1 ]; then
|
||||||
|
echo "##teamcity[testStarted name='$1']"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function test_failed_msg() {
|
||||||
|
if [ $TC_PRINT -eq 1 ]; then
|
||||||
|
echo "##teamcity[testFailed name='$1' message='$2']"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function test_finished_msg() {
|
||||||
|
if [ $TC_PRINT -eq 1 ]; then
|
||||||
|
echo "##teamcity[testFinished name='$1']"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
test_name="${BUNDLE_TYPE}_${OS_ARCH_PATTERN//\-/_}${FILE_EXTENSION//\./_}"
|
||||||
|
test_started_msg "$test_name"
|
||||||
|
|
||||||
|
echo "BUNDLE_TYPE: $BUNDLE_TYPE"
|
||||||
|
echo "OS_ARCH_PATTERN: $OS_ARCH_PATTERN"
|
||||||
|
echo "FILE_EXTENSION: $FILE_EXTENSION"
|
||||||
|
echo "Size of $FILENAME is $NEWFILESIZE bytes"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Get previous successful build ID
|
||||||
|
# Example:
|
||||||
|
# CONFIGID=IntellijCustomJdk_Jdk17_Master_LinuxX64jcef
|
||||||
|
# BUILDID=12345678
|
||||||
|
#
|
||||||
|
# expected return value
|
||||||
|
# id="123".number="567"
|
||||||
|
#
|
||||||
|
CURL_RESPONSE=$(curl -sSL --header "Authorization: Bearer $TOKEN" "https://buildserver.labs.intellij.net/app/rest/builds/?locator=buildType:(id:$CONFIGID),status:success,count:1,finishDate:(build:$BUILDID,condition:before)")
|
||||||
|
re='id=\"([0-9]+)\".+number=\"([0-9\.]+)\"'
|
||||||
|
|
||||||
|
# ID: Previous successful build id
|
||||||
|
ID=0
|
||||||
|
if [[ $CURL_RESPONSE =~ $re ]]; then
|
||||||
|
ID=${BASH_REMATCH[1]}
|
||||||
|
echo "Previous build ID: $ID"
|
||||||
|
echo "Previous build number: ${BASH_REMATCH[2]}"
|
||||||
|
else
|
||||||
|
msg="ERROR: cannot find previous build"
|
||||||
|
echo "$msg"
|
||||||
|
echo "$CURL_RESPONSE"
|
||||||
|
test_failed_msg "$test_name" "$msg"
|
||||||
|
test_finished_msg "$test_name"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# Get artifacts from previous successful build
|
||||||
|
#
|
||||||
|
# expected return value
|
||||||
|
# name="jbrsdk_jcef*.tar.gz size="123'
|
||||||
|
#
|
||||||
|
CURL_RESPONSE=$(curl -sSL --header "Authorization: Bearer $TOKEN" "https://buildserver.labs.intellij.net/app/rest/builds/$ID?fields=id,number,artifacts(file(name,size))")
|
||||||
|
echo "Artifacts of the previous build:"
|
||||||
|
echo "$CURL_RESPONSE"
|
||||||
|
|
||||||
|
# Find binary size (in response) with reg exp
|
||||||
|
re="name=\"(${BUNDLE_TYPE}[^\"]+${OS_ARCH_PATTERN}[^\"]+${FILE_EXTENSION})\" size=\"([0-9]+)\""
|
||||||
|
|
||||||
|
if [[ $CURL_RESPONSE =~ $re ]]; then
|
||||||
|
prevFileName=${BASH_REMATCH[1]}
|
||||||
|
echo "Previous artifact name: $prevFileName"
|
||||||
|
prevFileSize=${BASH_REMATCH[2]}
|
||||||
|
echo "Previous artifact size: $prevFileSize"
|
||||||
|
|
||||||
|
((allowedSize=prevFileSize+prevFileSize/20)) # use 5% threshold
|
||||||
|
echo "Allowed size: $allowedSize"
|
||||||
|
if [[ "$NEWFILESIZE" -gt "$allowedSize" ]]; then
|
||||||
|
msg="ERROR: new size is significantly greater than previous size (need to investigate)"
|
||||||
|
echo "$msg"
|
||||||
|
test_failed_msg "$test_name" "$msg"
|
||||||
|
test_finished_msg "$test_name"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
echo "PASSED"
|
||||||
|
test_finished_msg "$test_name"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
msg="ERROR: cannot find string with size in xml response:"
|
||||||
|
echo "Regex: $re"
|
||||||
|
echo "$msg"
|
||||||
|
echo "$CURL_RESPONSE"
|
||||||
|
test_failed_msg "$test_name" "$msg"
|
||||||
|
test_finished_msg "$test_name"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
93
jb/project/tools/test/perfcmp.sh
Executable file
93
jb/project/tools/test/perfcmp.sh
Executable file
@@ -0,0 +1,93 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
set -x
|
||||||
|
|
||||||
|
usage ()
|
||||||
|
{
|
||||||
|
echo "Usage: perfcmp.sh [options] <test_results_cur> <test_results_ref> <results> <test_prefix> <noHeaders>"
|
||||||
|
echo "Options:"
|
||||||
|
echo -e " -h, --help\tdisplay this help"
|
||||||
|
echo -e " -tc\tprint teacmity statistic"
|
||||||
|
echo -e "test_results_cur - the file with metrics values for the current measuring"
|
||||||
|
echo -e "test_results_ref - the file with metrics values for the reference measuring"
|
||||||
|
echo -e "results - results of comaprison"
|
||||||
|
echo -e "test_prefix - specifys measuring type, makes sense for enabled -tc, by default no prefixes"
|
||||||
|
echo -e "noHeaders - by default 1-st line contains headers"
|
||||||
|
echo -e ""
|
||||||
|
echo -e "test_results_* files content should be in csv format with header and tab separator:"
|
||||||
|
echo -e "The 1-st column is the test name"
|
||||||
|
echo -e "The 2-st column is the test value"
|
||||||
|
echo -e ""
|
||||||
|
echo -e "Example:"
|
||||||
|
echo -e "Test Value"
|
||||||
|
echo -e "Testname 51.54"
|
||||||
|
}
|
||||||
|
|
||||||
|
while [ -n "$1" ]
|
||||||
|
do
|
||||||
|
case "$1" in
|
||||||
|
-h | --help) usage
|
||||||
|
exit 1 ;;
|
||||||
|
-tc) tc=1
|
||||||
|
shift
|
||||||
|
break ;;
|
||||||
|
*) break;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ "$#" < "3" ]]; then
|
||||||
|
echo "Error: Invalid arguments"
|
||||||
|
usage
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
curFile=$1
|
||||||
|
refFile=$2
|
||||||
|
resFile=$3
|
||||||
|
testNamePrefix=$4
|
||||||
|
noHeaders=$5
|
||||||
|
echo $curFile
|
||||||
|
echo $refFile
|
||||||
|
echo $resFile
|
||||||
|
|
||||||
|
curValues=`cat "$curFile" | cut -f 2 | tr -d '\t'`
|
||||||
|
if [ -z $noHeaders ]; then
|
||||||
|
curValuesHeader=`echo "$curValues" | head -n +1`_cur
|
||||||
|
header=`cat "$refFile" | head -n +1 | awk -F'\t' -v x=$curValuesHeader '{print " "$1"\t"$2"_ref\t"x"\tratio"}'`
|
||||||
|
testContent=`paste -d '\t' $refFile <(echo "$curValues") | tail -n +2`
|
||||||
|
else
|
||||||
|
testContent=`paste -d '\t' $refFile <(echo "$curValues") | tail -n +1`
|
||||||
|
fi
|
||||||
|
|
||||||
|
testContent=`echo "$testContent" | tr "," "." | awk -F'\t' '{
|
||||||
|
if ($3>$2+$2*0.1) {
|
||||||
|
print "* "$1"\t"$2"\t"$3"\t"(($2>0)?$3/$2:"-")
|
||||||
|
} else {
|
||||||
|
print " "$1"\t"$2"\t"$3"\t"(($2>0)?$3/$2:"-")
|
||||||
|
}
|
||||||
|
}'`
|
||||||
|
if [ -z $noHeaders ]; then
|
||||||
|
echo "$header" > $resFile
|
||||||
|
fi
|
||||||
|
echo "$testContent" >> $resFile
|
||||||
|
cat "$resFile" | tr '\t' ';' | column -t -s ';' | tee $resFile
|
||||||
|
|
||||||
|
if [ -z $tc ]; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
failed=0
|
||||||
|
echo "$testContent" 2>&1 | (
|
||||||
|
while read -r s; do
|
||||||
|
testname=`echo "$s" | cut -f 1 | tr -d "[:space:]" | tr -d "*"`
|
||||||
|
duration=`echo "$s" | cut -f 3`
|
||||||
|
echo "$s" | cut -c1 | grep -c "*" && failed=1
|
||||||
|
echo \#\#teamcity[testStarted name=\'$testNamePrefix$testname\']
|
||||||
|
echo "===>$s"
|
||||||
|
echo \#\#teamcity[buildStatisticValue key=\'$testNamePrefix$testname\' value=\'$duration\']
|
||||||
|
[ $failed -eq 1 ] && echo \#\#teamcity[testFailed name=\'$testNamePrefix$testname\' message=\'$s\']
|
||||||
|
echo \#\#teamcity[testFinished name=\'$testNamePrefix$testname\' duration=\'$duration\']
|
||||||
|
failed=0
|
||||||
|
done
|
||||||
|
)
|
||||||
148
jb/project/tools/windows/scripts/mkimages_aarch64.sh
Normal file
148
jb/project/tools/windows/scripts/mkimages_aarch64.sh
Normal file
@@ -0,0 +1,148 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
set -x
|
||||||
|
|
||||||
|
# The following parameters must be specified:
|
||||||
|
# build_number - specifies the number of JetBrainsRuntime build
|
||||||
|
# bundle_type - specifies bundle to be built;possible values:
|
||||||
|
# <empty> or nomod - the release bundles without any additional modules (jcef)
|
||||||
|
# jcef - the release bundles with jcef
|
||||||
|
# fd - the fastdebug bundles which also include the jcef module
|
||||||
|
#
|
||||||
|
# This script makes test-image along with JDK images when bundle_type is set to "jcef".
|
||||||
|
# If the character 't' is added at the end of bundle_type then it also makes test-image along with JDK images.
|
||||||
|
#
|
||||||
|
# Environment variables:
|
||||||
|
# JDK_BUILD_NUMBER - specifies update release of OpenJDK build or the value of --with-version-build argument
|
||||||
|
# to configure
|
||||||
|
# By default JDK_BUILD_NUMBER is set zero
|
||||||
|
# JCEF_PATH - specifies the path to the directory with JCEF binaries.
|
||||||
|
# By default JCEF binaries should be located in ./jcef_win_aarch64
|
||||||
|
|
||||||
|
if [ -z "$BUILD_JDK" ]; then
|
||||||
|
echo "BUILD_JDK environment variable must be specified and point to a JDK built from the current sources" \
|
||||||
|
" and is able to run on the build system. See OpenJDK documentation for --with-build-jdk for more info."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
source jb/project/tools/common/scripts/common.sh
|
||||||
|
|
||||||
|
WORK_DIR=$(pwd)
|
||||||
|
JCEF_PATH=${JCEF_PATH:=$WORK_DIR/jcef_win_aarch64}
|
||||||
|
NVDA_PATH=${NVDA_PATH:=$WORK_DIR/nvda_controllerClient}
|
||||||
|
|
||||||
|
function do_configure {
|
||||||
|
sh ./configure \
|
||||||
|
--openjdk-target=aarch64-unknown-cygwin \
|
||||||
|
$WITH_DEBUG_LEVEL \
|
||||||
|
--with-vendor-name="$VENDOR_NAME" \
|
||||||
|
--with-vendor-version-string="$VENDOR_VERSION_STRING" \
|
||||||
|
--with-jvm-features=shenandoahgc \
|
||||||
|
--with-version-pre= \
|
||||||
|
--with-version-build=$JDK_BUILD_NUMBER \
|
||||||
|
--with-version-opt=b${build_number} \
|
||||||
|
--with-toolchain-version=$TOOLCHAIN_VERSION \
|
||||||
|
--with-boot-jdk=$BOOT_JDK \
|
||||||
|
--with-build-jdk=$BUILD_JDK \
|
||||||
|
--with-nvdacontrollerclient=$NVDA_PATH \
|
||||||
|
--disable-ccache \
|
||||||
|
$STATIC_CONF_ARGS \
|
||||||
|
$REPRODUCIBLE_BUILD_OPTS \
|
||||||
|
--enable-cds=yes || do_exit $?
|
||||||
|
}
|
||||||
|
|
||||||
|
function create_image_bundle {
|
||||||
|
__bundle_name=$1
|
||||||
|
__arch_name=$2
|
||||||
|
__modules_path=$3
|
||||||
|
__modules=$4
|
||||||
|
|
||||||
|
fastdebug_infix=''
|
||||||
|
|
||||||
|
[ "$bundle_type" == "fd" ] && [ "$__arch_name" == "$JBRSDK_BUNDLE" ] && __bundle_name=$__arch_name && fastdebug_infix="fastdebug-"
|
||||||
|
__root_dir=${__bundle_name}-${JBSDK_VERSION}-windows-aarch64-${fastdebug_infix}b${build_number}
|
||||||
|
|
||||||
|
echo Running jlink ...
|
||||||
|
${BUILD_JDK}/bin/jlink \
|
||||||
|
--module-path $__modules_path --no-man-pages --compress=2 \
|
||||||
|
--add-modules $__modules --output $__root_dir || do_exit $?
|
||||||
|
|
||||||
|
grep -v "^JAVA_VERSION" "$JSDK"/release | grep -v "^MODULES" >> $__arch_name/release
|
||||||
|
if [ "$__arch_name" == "$JBRSDK_BUNDLE" ]; then
|
||||||
|
sed 's/JBR/JBRSDK/g' $__root_dir/release > release
|
||||||
|
mv release $__root_dir/release
|
||||||
|
cp $IMAGES_DIR/jdk/lib/src.zip $__root_dir/lib
|
||||||
|
for dir in $(ls -d $IMAGES_DIR/jdk/*); do
|
||||||
|
rsync -amv --include="*/" --include="*.pdb" --exclude="*" $dir $__root_dir
|
||||||
|
done
|
||||||
|
copy_jmods "$__modules" "$__modules_path" "$__root_dir"/jmods
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
WITH_DEBUG_LEVEL="--with-debug-level=release"
|
||||||
|
RELEASE_NAME=windows-aarch64-server-release
|
||||||
|
|
||||||
|
case "$bundle_type" in
|
||||||
|
"jcef")
|
||||||
|
do_reset_changes=0
|
||||||
|
do_maketest=1
|
||||||
|
;;
|
||||||
|
"nomod" | "")
|
||||||
|
bundle_type=""
|
||||||
|
;;
|
||||||
|
"fd")
|
||||||
|
do_reset_changes=0
|
||||||
|
WITH_DEBUG_LEVEL="--with-debug-level=fastdebug"
|
||||||
|
RELEASE_NAME=windows-aarch64-server-fastdebug
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ -z "${INC_BUILD:-}" ]; then
|
||||||
|
do_configure || do_exit $?
|
||||||
|
if [ $do_maketest -eq 1 ]; then
|
||||||
|
make LOG=info CONF=$RELEASE_NAME clean images test-image jbr-api JBR_API_JBR_VERSION=TEST || do_exit $?
|
||||||
|
else
|
||||||
|
make LOG=info CONF=$RELEASE_NAME clean images || do_exit $?
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if [ $do_maketest -eq 1 ]; then
|
||||||
|
make LOG=info CONF=$RELEASE_NAME images test-image jbr-api JBR_API_JBR_VERSION=TEST || do_exit $?
|
||||||
|
else
|
||||||
|
make LOG=info CONF=$RELEASE_NAME images || do_exit $?
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
IMAGES_DIR=build/$RELEASE_NAME/images
|
||||||
|
JSDK=$IMAGES_DIR/jdk
|
||||||
|
JSDK_MODS_DIR=$IMAGES_DIR/jmods
|
||||||
|
JBRSDK_BUNDLE=jbrsdk
|
||||||
|
|
||||||
|
where cygpath
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
JCEF_PATH="$(cygpath -w $JCEF_PATH | sed 's/\\/\//g')"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ]; then
|
||||||
|
git apply -p0 < jb/project/tools/patches/add_jcef_module_aarch64.patch || do_exit $?
|
||||||
|
update_jsdk_mods "$BUILD_JDK" "$JCEF_PATH"/jmods "$JSDK"/jmods "$JSDK_MODS_DIR" || do_exit $?
|
||||||
|
cp $JCEF_PATH/jmods/* $JSDK_MODS_DIR # $JSDK/jmods is not unchanged
|
||||||
|
|
||||||
|
jbr_name_postfix="_${bundle_type}"
|
||||||
|
else
|
||||||
|
jbr_name_postfix=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
# create runtime image bundle
|
||||||
|
modules=$(xargs < jb/project/tools/common/modules.list | sed s/" "//g) || do_exit $?
|
||||||
|
modules+=",jdk.crypto.mscapi"
|
||||||
|
create_image_bundle "jbr${jbr_name_postfix}" "jbr" $JSDK_MODS_DIR "$modules" || do_exit $?
|
||||||
|
|
||||||
|
# create sdk image bundle
|
||||||
|
modules=$(cat ${JSDK}/release | grep MODULES | sed s/MODULES=//g | sed s/' '/','/g | sed s/\"//g | sed s/\\r//g | sed s/\\n//g) || do_exit $?
|
||||||
|
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ] || [ "$bundle_type" == "$JBRSDK_BUNDLE" ]; then
|
||||||
|
modules=${modules},$(get_mods_list "$JCEF_PATH"/jmods)
|
||||||
|
fi
|
||||||
|
create_image_bundle "$JBRSDK_BUNDLE${jbr_name_postfix}" "$JBRSDK_BUNDLE" "$JSDK_MODS_DIR" "$modules" || do_exit $?
|
||||||
|
|
||||||
|
do_exit 0
|
||||||
141
jb/project/tools/windows/scripts/mkimages_x64.sh
Executable file
141
jb/project/tools/windows/scripts/mkimages_x64.sh
Executable file
@@ -0,0 +1,141 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
set -x
|
||||||
|
|
||||||
|
# The following parameters must be specified:
|
||||||
|
# build_number - specifies the number of JetBrainsRuntime build
|
||||||
|
# bundle_type - specifies bundle to be built;possible values:
|
||||||
|
# <empty> or nomod - the release bundles without any additional modules (jcef)
|
||||||
|
# jcef - the release bundles with jcef
|
||||||
|
# fd - the fastdebug bundles which also include the jcef module
|
||||||
|
#
|
||||||
|
# This script makes test-image along with JDK images when bundle_type is set to "jcef".
|
||||||
|
# If the character 't' is added at the end of bundle_type then it also makes test-image along with JDK images.
|
||||||
|
#
|
||||||
|
# Environment variables:
|
||||||
|
# JDK_BUILD_NUMBER - specifies update release of OpenJDK build or the value of --with-version-build argument
|
||||||
|
# to configure
|
||||||
|
# By default JDK_BUILD_NUMBER is set zero
|
||||||
|
# JCEF_PATH - specifies the path to the directory with JCEF binaries.
|
||||||
|
# By default JCEF binaries should be located in ./jcef_win_x64
|
||||||
|
|
||||||
|
source jb/project/tools/common/scripts/common.sh
|
||||||
|
|
||||||
|
WORK_DIR=$(pwd)
|
||||||
|
JCEF_PATH=${JCEF_PATH:=$WORK_DIR/jcef_win_x64}
|
||||||
|
NVDA_PATH=${NVDA_PATH:=$WORK_DIR/nvda_controllerClient}
|
||||||
|
|
||||||
|
function do_configure {
|
||||||
|
sh ./configure \
|
||||||
|
$WITH_DEBUG_LEVEL \
|
||||||
|
--with-vendor-name="$VENDOR_NAME" \
|
||||||
|
--with-vendor-version-string="$VENDOR_VERSION_STRING" \
|
||||||
|
--with-jvm-features=shenandoahgc \
|
||||||
|
--with-version-pre= \
|
||||||
|
--with-version-build=$JDK_BUILD_NUMBER \
|
||||||
|
--with-version-opt=b${build_number} \
|
||||||
|
--with-toolchain-version=$TOOLCHAIN_VERSION \
|
||||||
|
--with-boot-jdk=$BOOT_JDK \
|
||||||
|
--with-nvdacontrollerclient=$NVDA_PATH \
|
||||||
|
--disable-ccache \
|
||||||
|
--enable-cds=yes \
|
||||||
|
$STATIC_CONF_ARGS \
|
||||||
|
$REPRODUCIBLE_BUILD_OPTS \
|
||||||
|
|| do_exit $?
|
||||||
|
}
|
||||||
|
|
||||||
|
function create_image_bundle {
|
||||||
|
__bundle_name=$1
|
||||||
|
__arch_name=$2
|
||||||
|
__modules_path=$3
|
||||||
|
__modules=$4
|
||||||
|
|
||||||
|
fastdebug_infix=''
|
||||||
|
|
||||||
|
[ "$bundle_type" == "fd" ] && [ "$__arch_name" == "$JBRSDK_BUNDLE" ] && __bundle_name=$__arch_name && fastdebug_infix="fastdebug-"
|
||||||
|
__root_dir=${__bundle_name}-${JBSDK_VERSION}-windows-x64-${fastdebug_infix}b${build_number}
|
||||||
|
|
||||||
|
echo Running jlink ...
|
||||||
|
${JSDK}/bin/jlink \
|
||||||
|
--module-path $__modules_path --no-man-pages --compress=2 \
|
||||||
|
--add-modules $__modules --output $__root_dir || do_exit $?
|
||||||
|
|
||||||
|
grep -v "^JAVA_VERSION" "$JSDK"/release | grep -v "^MODULES" >> $__root_dir/release
|
||||||
|
if [ "$__arch_name" == "$JBRSDK_BUNDLE" ]; then
|
||||||
|
sed 's/JBR/JBRSDK/g' $__root_dir/release > release
|
||||||
|
mv release $__root_dir/release
|
||||||
|
cp $IMAGES_DIR/jdk/lib/src.zip $__root_dir/lib
|
||||||
|
for dir in $(ls -d $IMAGES_DIR/jdk/*); do
|
||||||
|
rsync -amv --include="*/" --include="*.pdb" --exclude="*" $dir $__root_dir
|
||||||
|
done
|
||||||
|
copy_jmods "$__modules" "$__modules_path" "$__root_dir"/jmods
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
WITH_DEBUG_LEVEL="--with-debug-level=release"
|
||||||
|
RELEASE_NAME=windows-x86_64-server-release
|
||||||
|
|
||||||
|
case "$bundle_type" in
|
||||||
|
"jcef")
|
||||||
|
do_reset_changes=0
|
||||||
|
do_maketest=1
|
||||||
|
;;
|
||||||
|
"nomod" | "")
|
||||||
|
bundle_type=""
|
||||||
|
;;
|
||||||
|
"fd")
|
||||||
|
do_reset_changes=0
|
||||||
|
WITH_DEBUG_LEVEL="--with-debug-level=fastdebug"
|
||||||
|
RELEASE_NAME=windows-x86_64-server-fastdebug
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ -z "${INC_BUILD:-}" ]; then
|
||||||
|
do_configure || do_exit $?
|
||||||
|
if [ $do_maketest -eq 1 ]; then
|
||||||
|
make LOG=info CONF=$RELEASE_NAME clean images test-image jbr-api JBR_API_JBR_VERSION=TEST || do_exit $?
|
||||||
|
else
|
||||||
|
make LOG=info CONF=$RELEASE_NAME clean images || do_exit $?
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if [ $do_maketest -eq 1 ]; then
|
||||||
|
make LOG=info CONF=$RELEASE_NAME images test-image jbr-api JBR_API_JBR_VERSION=TEST || do_exit $?
|
||||||
|
else
|
||||||
|
make LOG=info CONF=$RELEASE_NAME images || do_exit $?
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
IMAGES_DIR=build/$RELEASE_NAME/images
|
||||||
|
JSDK=$IMAGES_DIR/jdk
|
||||||
|
JSDK_MODS_DIR=$IMAGES_DIR/jmods
|
||||||
|
JBRSDK_BUNDLE=jbrsdk
|
||||||
|
|
||||||
|
where cygpath
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
JCEF_PATH="$(cygpath -w $JCEF_PATH | sed 's/\\/\//g')"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ]; then
|
||||||
|
git apply -p0 < jb/project/tools/patches/add_jcef_module.patch || do_exit $?
|
||||||
|
update_jsdk_mods "$JSDK" "$JCEF_PATH"/jmods "$JSDK"/jmods "$JSDK_MODS_DIR" || do_exit $?
|
||||||
|
cp $JCEF_PATH/jmods/* ${JSDK_MODS_DIR} # $JSDK/jmods is not unchanged
|
||||||
|
|
||||||
|
jbr_name_postfix="_${bundle_type}"
|
||||||
|
else
|
||||||
|
jbr_name_postfix=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
# create runtime image bundle
|
||||||
|
modules=$(xargs < jb/project/tools/common/modules.list | sed s/" "//g) || do_exit $?
|
||||||
|
modules+=",jdk.crypto.mscapi"
|
||||||
|
create_image_bundle "jbr${jbr_name_postfix}" "jbr" $JSDK_MODS_DIR "$modules" || do_exit $?
|
||||||
|
|
||||||
|
# create sdk image bundle
|
||||||
|
modules=$(cat ${JSDK}/release | grep MODULES | sed s/MODULES=//g | sed s/' '/','/g | sed s/\"//g | sed s/\\r//g | sed s/\\n//g)
|
||||||
|
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ] || [ "$bundle_type" == "$JBRSDK_BUNDLE" ]; then
|
||||||
|
modules=${modules},$(get_mods_list "$JCEF_PATH"/jmods)
|
||||||
|
fi
|
||||||
|
create_image_bundle "$JBRSDK_BUNDLE${jbr_name_postfix}" "$JBRSDK_BUNDLE" "$JSDK_MODS_DIR" "$modules" || do_exit $?
|
||||||
|
|
||||||
|
do_exit 0
|
||||||
131
jb/project/tools/windows/scripts/mkimages_x86.sh
Executable file
131
jb/project/tools/windows/scripts/mkimages_x86.sh
Executable file
@@ -0,0 +1,131 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
set -x
|
||||||
|
|
||||||
|
# The following parameters must be specified:
|
||||||
|
# build_number - specifies the number of JetBrainsRuntime build
|
||||||
|
# bundle_type - specifies bundle to be built;possible values:
|
||||||
|
# <empty> or nomod - the release bundles without any additional modules (jcef)
|
||||||
|
# jcef - the release bundles with jcef
|
||||||
|
# fd - the fastdebug bundles which also include the jcef module
|
||||||
|
#
|
||||||
|
# $ ./java --version
|
||||||
|
# openjdk 11.0.6 2020-01-14
|
||||||
|
# OpenJDK Runtime Environment (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number})
|
||||||
|
# OpenJDK 64-Bit Server VM (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number}, mixed mode)
|
||||||
|
#
|
||||||
|
|
||||||
|
source jb/project/tools/common/scripts/common.sh
|
||||||
|
|
||||||
|
WORK_DIR=$(pwd)
|
||||||
|
NVDA_PATH=${NVDA_PATH:=$WORK_DIR/nvda_controllerClient}
|
||||||
|
|
||||||
|
|
||||||
|
function do_configure {
|
||||||
|
sh ./configure \
|
||||||
|
$WITH_DEBUG_LEVEL \
|
||||||
|
--with-vendor-name="$VENDOR_NAME" \
|
||||||
|
--with-vendor-version-string="$VENDOR_VERSION_STRING" \
|
||||||
|
--with-jvm-features=shenandoahgc \
|
||||||
|
--with-version-pre= \
|
||||||
|
--with-version-build=$JDK_BUILD_NUMBER \
|
||||||
|
--with-version-opt=b${build_number} \
|
||||||
|
--with-toolchain-version=$TOOLCHAIN_VERSION \
|
||||||
|
--with-boot-jdk=$BOOT_JDK \
|
||||||
|
--with-nvdacontrollerclient=$NVDA_PATH \
|
||||||
|
--disable-ccache \
|
||||||
|
--enable-cds=yes \
|
||||||
|
$STATIC_CONF_ARGS \
|
||||||
|
$REPRODUCIBLE_BUILD_OPTS \
|
||||||
|
|| do_exit $?
|
||||||
|
}
|
||||||
|
|
||||||
|
function create_image_bundle {
|
||||||
|
__bundle_name=$1
|
||||||
|
__arch_name=$2
|
||||||
|
__modules_path=$3
|
||||||
|
__modules=$4
|
||||||
|
|
||||||
|
fastdebug_infix=''
|
||||||
|
|
||||||
|
[ "$bundle_type" == "fd" ] && [ "$__arch_name" == "$JBRSDK_BUNDLE" ] && __bundle_name=$__arch_name && fastdebug_infix="fastdebug-"
|
||||||
|
__root_dir=${__bundle_name}-${JBSDK_VERSION}-windows-x86-${fastdebug_infix}b${build_number}
|
||||||
|
|
||||||
|
echo Running jlink ...
|
||||||
|
${JSDK}/bin/jlink \
|
||||||
|
--module-path $__modules_path --no-man-pages --compress=2 \
|
||||||
|
--add-modules $__modules --output $__root_dir || do_exit $?
|
||||||
|
|
||||||
|
grep -v "^JAVA_VERSION" "$JSDK"/release | grep -v "^MODULES" >> $__root_dir/release
|
||||||
|
if [ "$__arch_name" == "$JBRSDK_BUNDLE" ]; then
|
||||||
|
sed 's/JBR/JBRSDK/g' $__root_dir/release > release
|
||||||
|
mv release $__root_dir/release
|
||||||
|
cp $IMAGES_DIR/jdk/lib/src.zip $__root_dir/lib
|
||||||
|
for dir in $(ls -d $IMAGES_DIR/jdk/*); do
|
||||||
|
rsync -amv --include="*/" --include="*.pdb" --exclude="*" $dir $__root_dir
|
||||||
|
done
|
||||||
|
copy_jmods "$__modules" "$__modules_path" "$__root_dir"/jmods
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
WITH_DEBUG_LEVEL="--with-debug-level=release"
|
||||||
|
RELEASE_NAME=windows-x86_64-server-release
|
||||||
|
|
||||||
|
case "$bundle_type" in
|
||||||
|
"jcef")
|
||||||
|
echo "not implemented" && do_exit 1
|
||||||
|
;;
|
||||||
|
"nomod" | "")
|
||||||
|
bundle_type=""
|
||||||
|
;;
|
||||||
|
"fd")
|
||||||
|
do_reset_changes=0
|
||||||
|
WITH_DEBUG_LEVEL="--with-debug-level=fastdebug"
|
||||||
|
RELEASE_NAME=windows-x86_64-server-fastdebug
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ -z "${INC_BUILD:-}" ]; then
|
||||||
|
do_configure || do_exit $?
|
||||||
|
if [ $do_maketest -eq 1 ]; then
|
||||||
|
make LOG=info CONF=$RELEASE_NAME clean images test-image jbr-api JBR_API_JBR_VERSION=TEST || do_exit $?
|
||||||
|
else
|
||||||
|
make LOG=info CONF=$RELEASE_NAME clean images || do_exit $?
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if [ $do_maketest -eq 1 ]; then
|
||||||
|
make LOG=info CONF=$RELEASE_NAME images test-image jbr-api JBR_API_JBR_VERSION=TEST || do_exit $?
|
||||||
|
else
|
||||||
|
make LOG=info CONF=$RELEASE_NAME images || do_exit $?
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
IMAGES_DIR=build/$RELEASE_NAME/images
|
||||||
|
JSDK=$IMAGES_DIR/jdk
|
||||||
|
JSDK_MODS_DIR=$IMAGES_DIR/jmods
|
||||||
|
JBRSDK_BUNDLE=jbrsdk
|
||||||
|
|
||||||
|
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ]; then
|
||||||
|
git apply -p0 < jb/project/tools/patches/add_jcef_module.patch || do_exit $?
|
||||||
|
update_jsdk_mods "$JSDK" "$JCEF_PATH"/jmods "$JSDK"/jmods "$JSDK_MODS_DIR" || do_exit $?
|
||||||
|
cp $JCEF_PATH/jmods/* ${JSDK_MODS_DIR} # $JSDK/jmods is not unchanged
|
||||||
|
|
||||||
|
jbr_name_postfix="_${bundle_type}"
|
||||||
|
else
|
||||||
|
jbr_name_postfix=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
# create runtime image bundle
|
||||||
|
modules=$(grep -v "jdk.internal.vm" jb/project/tools/common/modules.list | xargs | sed s/" "//g) || do_exit $?
|
||||||
|
modules+=",jdk.crypto.mscapi"
|
||||||
|
create_image_bundle "jbr${jbr_name_postfix}" "jbr" $JSDK_MODS_DIR "$modules" || do_exit $?
|
||||||
|
|
||||||
|
# create sdk image bundle
|
||||||
|
modules=$(cat ${JSDK}/release | grep MODULES | sed s/MODULES=//g | sed s/' '/','/g | sed s/\"//g | sed s/\\r//g | sed s/\\n//g)
|
||||||
|
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ] || [ "$bundle_type" == "$JBRSDK_BUNDLE" ]; then
|
||||||
|
modules=${modules},$(get_mods_list "$JCEF_PATH"/jmods)
|
||||||
|
fi
|
||||||
|
create_image_bundle "$JBRSDK_BUNDLE${jbr_name_postfix}" "$JBRSDK_BUNDLE" "$JSDK_MODS_DIR" "$modules" || do_exit $?
|
||||||
|
|
||||||
|
do_exit 0
|
||||||
57
jb/project/tools/windows/scripts/pack_aarch64.sh
Normal file
57
jb/project/tools/windows/scripts/pack_aarch64.sh
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
set -x
|
||||||
|
|
||||||
|
# The following parameters must be specified:
|
||||||
|
# build_number - specifies the number of JetBrainsRuntime build
|
||||||
|
# bundle_type - specifies bundle to be built;possible values:
|
||||||
|
# <empty> or nomod - the release bundles without any additional modules (jcef)
|
||||||
|
# jcef - the release bundles with jcef
|
||||||
|
# fd - the fastdebug bundles which also include the jcef module
|
||||||
|
#
|
||||||
|
# This script packs test-image along with JDK images when bundle_type is set to "jcef".
|
||||||
|
# If the character 't' is added at the end of bundle_type then it also makes test-image along with JDK images.
|
||||||
|
#
|
||||||
|
|
||||||
|
source jb/project/tools/common/scripts/common.sh
|
||||||
|
|
||||||
|
[ "$bundle_type" == "jcef" ] && do_maketest=1
|
||||||
|
|
||||||
|
function pack_jbr {
|
||||||
|
__bundle_name=$1
|
||||||
|
__arch_name=$2
|
||||||
|
|
||||||
|
fastdebug_infix=''
|
||||||
|
|
||||||
|
[ "$bundle_type" == "fd" ] && [ "$__arch_name" == "$JBRSDK_BUNDLE" ] && __bundle_name=$__arch_name && fastdebug_infix="fastdebug-"
|
||||||
|
JBR=${__bundle_name}-${JBSDK_VERSION}-windows-aarch64-${fastdebug_infix}b${build_number}
|
||||||
|
__root_dir=${__bundle_name}-${JBSDK_VERSION}-windows-aarch64-${fastdebug_infix}b${build_number}
|
||||||
|
|
||||||
|
echo Creating $JBR.tar.gz ...
|
||||||
|
|
||||||
|
/usr/bin/tar -czf $JBR.tar.gz -C $BASE_DIR $__root_dir || do_exit $?
|
||||||
|
}
|
||||||
|
|
||||||
|
[ "$bundle_type" == "nomod" ] && bundle_type=""
|
||||||
|
|
||||||
|
JBRSDK_BUNDLE=jbrsdk
|
||||||
|
RELEASE_NAME=windows-aarch64-server-release
|
||||||
|
IMAGES_DIR=build/$RELEASE_NAME/images
|
||||||
|
BASE_DIR=.
|
||||||
|
|
||||||
|
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "dcevm" ] || [ "$bundle_type" == "fd" ]; then
|
||||||
|
jbr_name_postfix="_${bundle_type}"
|
||||||
|
else
|
||||||
|
jbr_name_postfix=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
pack_jbr jbr${jbr_name_postfix} jbr
|
||||||
|
pack_jbr jbrsdk${jbr_name_postfix} jbrsdk
|
||||||
|
|
||||||
|
if [ $do_maketest -eq 1 ]; then
|
||||||
|
JBRSDK_TEST=$JBRSDK_BUNDLE-$JBSDK_VERSION-windows-test-aarch64-b$build_number
|
||||||
|
cp "build/${RELEASE_NAME}/jbr-api/jbr-api.jar" "${IMAGES_DIR}/test" || do_exit $?
|
||||||
|
echo Creating $JBRSDK_TEST.tar.gz ...
|
||||||
|
/usr/bin/tar -czf $JBRSDK_TEST.tar.gz -C $IMAGES_DIR --exclude='test/jdk/demos' test || do_exit $?
|
||||||
|
fi
|
||||||
57
jb/project/tools/windows/scripts/pack_x64.sh
Executable file
57
jb/project/tools/windows/scripts/pack_x64.sh
Executable file
@@ -0,0 +1,57 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
set -x
|
||||||
|
|
||||||
|
# The following parameters must be specified:
|
||||||
|
# build_number - specifies the number of JetBrainsRuntime build
|
||||||
|
# bundle_type - specifies bundle to be built;possible values:
|
||||||
|
# <empty> or nomod - the release bundles without any additional modules (jcef)
|
||||||
|
# jcef - the release bundles with jcef
|
||||||
|
# fd - the fastdebug bundles which also include the jcef module
|
||||||
|
#
|
||||||
|
# This script packs test-image along with JDK images when bundle_type is set to "jcef".
|
||||||
|
# If the character 't' is added at the end of bundle_type then it also makes test-image along with JDK images.
|
||||||
|
#
|
||||||
|
|
||||||
|
source jb/project/tools/common/scripts/common.sh
|
||||||
|
|
||||||
|
[ "$bundle_type" == "jcef" ] && do_maketest=1
|
||||||
|
|
||||||
|
function pack_jbr {
|
||||||
|
__bundle_name=$1
|
||||||
|
__arch_name=$2
|
||||||
|
|
||||||
|
fastdebug_infix=''
|
||||||
|
|
||||||
|
[ "$bundle_type" == "fd" ] && [ "$__arch_name" == "$JBRSDK_BUNDLE" ] && __bundle_name=$__arch_name && fastdebug_infix="fastdebug-"
|
||||||
|
JBR=${__bundle_name}-${JBSDK_VERSION}-windows-x64-${fastdebug_infix}b${build_number}
|
||||||
|
__root_dir=${__bundle_name}-${JBSDK_VERSION}-windows-x64-${fastdebug_infix}b${build_number}
|
||||||
|
|
||||||
|
echo Creating $JBR.tar.gz ...
|
||||||
|
chmod -R ug+rwx,o+rx ${BASE_DIR}/$__root_dir
|
||||||
|
/usr/bin/tar -czf $JBR.tar.gz -C $BASE_DIR $__root_dir || do_exit $?
|
||||||
|
}
|
||||||
|
|
||||||
|
[ "$bundle_type" == "nomod" ] && bundle_type=""
|
||||||
|
|
||||||
|
JBRSDK_BUNDLE=jbrsdk
|
||||||
|
RELEASE_NAME=windows-x86_64-server-release
|
||||||
|
IMAGES_DIR=build/$RELEASE_NAME/images
|
||||||
|
BASE_DIR=.
|
||||||
|
|
||||||
|
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "dcevm" ] || [ "$bundle_type" == "fd" ]; then
|
||||||
|
jbr_name_postfix="_${bundle_type}"
|
||||||
|
else
|
||||||
|
jbr_name_postfix=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
pack_jbr jbr${jbr_name_postfix} jbr
|
||||||
|
pack_jbr jbrsdk${jbr_name_postfix} jbrsdk
|
||||||
|
|
||||||
|
if [ $do_maketest -eq 1 ]; then
|
||||||
|
JBRSDK_TEST=$JBRSDK_BUNDLE-$JBSDK_VERSION-windows-test-x64-b$build_number
|
||||||
|
cp "build/${RELEASE_NAME}/jbr-api/jbr-api.jar" "${IMAGES_DIR}/test" || do_exit $?
|
||||||
|
echo Creating $JBRSDK_TEST.tar.gz ...
|
||||||
|
/usr/bin/tar -czf $JBRSDK_TEST.tar.gz -C $IMAGES_DIR --exclude='test/jdk/demos' test || do_exit $?
|
||||||
|
fi
|
||||||
53
jb/project/tools/windows/scripts/pack_x86.sh
Executable file
53
jb/project/tools/windows/scripts/pack_x86.sh
Executable file
@@ -0,0 +1,53 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
set -x
|
||||||
|
|
||||||
|
# The following parameters must be specified:
|
||||||
|
# build_number - specifies the number of JetBrainsRuntime build
|
||||||
|
# bundle_type - specifies bundle to be built;possible values:
|
||||||
|
# <empty> or nomod - the release bundles without any additional modules (jcef)
|
||||||
|
# fd - the fastdebug bundles which also include the jcef module
|
||||||
|
#
|
||||||
|
|
||||||
|
source jb/project/tools/common/scripts/common.sh
|
||||||
|
|
||||||
|
[ "$bundle_type" == "jcef" ] && echo "not implemented" && do_exit 1
|
||||||
|
|
||||||
|
function pack_jbr {
|
||||||
|
__bundle_name=$1
|
||||||
|
__arch_name=$2
|
||||||
|
|
||||||
|
fastdebug_infix=''
|
||||||
|
|
||||||
|
[ "$bundle_type" == "fd" ] && [ "$__arch_name" == "$JBRSDK_BUNDLE" ] && __bundle_name=$__arch_name && fastdebug_infix="fastdebug-"
|
||||||
|
JBR=${__bundle_name}-${JBSDK_VERSION}-windows-x86-${fastdebug_infix}b${build_number}
|
||||||
|
__root_dir=${__bundle_name}-${JBSDK_VERSION}-windows-x86-${fastdebug_infix}b${build_number}
|
||||||
|
|
||||||
|
echo Creating $JBR.tar.gz ...
|
||||||
|
chmod -R ug+rwx,o+rx ${BASE_DIR}/$__root_dir
|
||||||
|
/usr/bin/tar -czf $JBR.tar.gz -C $BASE_DIR $__root_dir || do_exit $?
|
||||||
|
}
|
||||||
|
|
||||||
|
[ "$bundle_type" == "nomod" ] && bundle_type=""
|
||||||
|
|
||||||
|
JBRSDK_BUNDLE=jbrsdk
|
||||||
|
RELEASE_NAME=windows-x86_64-server-release
|
||||||
|
IMAGES_DIR=build/$RELEASE_NAME/images
|
||||||
|
BASE_DIR=.
|
||||||
|
|
||||||
|
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "dcevm" ] || [ "$bundle_type" == "fd" ]; then
|
||||||
|
jbr_name_postfix="_${bundle_type}"
|
||||||
|
else
|
||||||
|
jbr_name_postfix=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
pack_jbr jbr${jbr_name_postfix} jbr
|
||||||
|
pack_jbr jbrsdk${jbr_name_postfix} jbrsdk
|
||||||
|
|
||||||
|
if [ $do_maketest -eq 1 ]; then
|
||||||
|
JBRSDK_TEST=$JBRSDK_BUNDLE-$JBSDK_VERSION-windows-test-x86-b$build_number
|
||||||
|
cp "build/${RELEASE_NAME}/jbr-api/jbr-api.jar" "${IMAGES_DIR}/test" || do_exit $?
|
||||||
|
echo Creating $JBRSDK_TEST.tar.gz ...
|
||||||
|
/usr/bin/tar -czf $JBRSDK_TEST.tar.gz -C $BASE_DIR --exclude='test/jdk/demos' test || do_exit $?
|
||||||
|
fi
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2016, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2016, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -449,7 +449,7 @@ ifneq ($(filter jcov-bundles, $(MAKECMDGOALS)), )
|
|||||||
BUNDLE_NAME := $(JCOV_BUNDLE_NAME), \
|
BUNDLE_NAME := $(JCOV_BUNDLE_NAME), \
|
||||||
FILES := $(JCOV_BUNDLE_FILES), \
|
FILES := $(JCOV_BUNDLE_FILES), \
|
||||||
BASE_DIRS := $(JCOV_IMAGE_DIR), \
|
BASE_DIRS := $(JCOV_IMAGE_DIR), \
|
||||||
SUBDIR := jdk-$(VERSION_NUMBER), \
|
SUBDIR := $(JDK_BUNDLE_SUBDIR), \
|
||||||
))
|
))
|
||||||
|
|
||||||
JCOV_TARGETS += $(BUILD_JCOV_BUNDLE)
|
JCOV_TARGETS += $(BUILD_JCOV_BUNDLE)
|
||||||
@@ -478,27 +478,6 @@ endif
|
|||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
ifneq ($(filter static-libs-graal-bundles, $(MAKECMDGOALS)), )
|
|
||||||
STATIC_LIBS_GRAAL_BUNDLE_FILES := $(call FindFiles, $(STATIC_LIBS_GRAAL_IMAGE_DIR))
|
|
||||||
|
|
||||||
ifeq ($(OPENJDK_TARGET_OS)-$(DEBUG_LEVEL), macosx-release)
|
|
||||||
STATIC_LIBS_GRAAL_BUNDLE_SUBDIR := $(JDK_MACOSX_CONTENTS_SUBDIR)/Home
|
|
||||||
else
|
|
||||||
STATIC_LIBS_GRAAL_BUNDLE_SUBDIR := $(JDK_BUNDLE_SUBDIR)
|
|
||||||
endif
|
|
||||||
|
|
||||||
$(eval $(call SetupBundleFile, BUILD_STATIC_LIBS_GRAAL_BUNDLE, \
|
|
||||||
BUNDLE_NAME := $(STATIC_LIBS_GRAAL_BUNDLE_NAME), \
|
|
||||||
FILES := $(STATIC_LIBS_GRAAL_BUNDLE_FILES), \
|
|
||||||
BASE_DIRS := $(STATIC_LIBS_GRAAL_IMAGE_DIR), \
|
|
||||||
SUBDIR := $(STATIC_LIBS_GRAAL_BUNDLE_SUBDIR), \
|
|
||||||
))
|
|
||||||
|
|
||||||
STATIC_LIBS_GRAAL_TARGETS += $(BUILD_STATIC_LIBS_GRAAL_BUNDLE)
|
|
||||||
endif
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
|
|
||||||
# Hook to include the corresponding custom file, if present.
|
# Hook to include the corresponding custom file, if present.
|
||||||
$(eval $(call IncludeCustomExtension, Bundles.gmk))
|
$(eval $(call IncludeCustomExtension, Bundles.gmk))
|
||||||
|
|
||||||
@@ -511,9 +490,8 @@ docs-jdk-bundles: $(DOCS_JDK_TARGETS)
|
|||||||
docs-javase-bundles: $(DOCS_JAVASE_TARGETS)
|
docs-javase-bundles: $(DOCS_JAVASE_TARGETS)
|
||||||
docs-reference-bundles: $(DOCS_REFERENCE_TARGETS)
|
docs-reference-bundles: $(DOCS_REFERENCE_TARGETS)
|
||||||
static-libs-bundles: $(STATIC_LIBS_TARGETS)
|
static-libs-bundles: $(STATIC_LIBS_TARGETS)
|
||||||
static-libs-graal-bundles: $(STATIC_LIBS_GRAAL_TARGETS)
|
|
||||||
jcov-bundles: $(JCOV_TARGETS)
|
jcov-bundles: $(JCOV_TARGETS)
|
||||||
|
|
||||||
.PHONY: all default product-bundles test-bundles \
|
.PHONY: all default product-bundles test-bundles \
|
||||||
docs-jdk-bundles docs-javase-bundles docs-reference-bundles \
|
docs-jdk-bundles docs-javase-bundles docs-reference-bundles \
|
||||||
static-libs-bundles static-libs-graal-bundles jcov-bundles
|
static-libs-bundles jcov-bundles
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -58,7 +58,7 @@ DEMO_MANIFEST := $(SUPPORT_OUTPUTDIR)/demos/java-main-manifest.mf
|
|||||||
# This rule will be depended on due to the MANIFEST line in SetupBuildDemo
|
# This rule will be depended on due to the MANIFEST line in SetupBuildDemo
|
||||||
# and SetupBuildJvmtiDemo.
|
# and SetupBuildJvmtiDemo.
|
||||||
$(eval $(call SetupTextFileProcessing, BUILD_JAVA_MANIFEST, \
|
$(eval $(call SetupTextFileProcessing, BUILD_JAVA_MANIFEST, \
|
||||||
SOURCE_FILES := $(TOPDIR)/make/data/mainmanifest/manifest.mf.template, \
|
SOURCE_FILES := $(TOPDIR)/make/data/mainmanifest/manifest.mf, \
|
||||||
OUTPUT_FILE := $(DEMO_MANIFEST), \
|
OUTPUT_FILE := $(DEMO_MANIFEST), \
|
||||||
REPLACEMENTS := \
|
REPLACEMENTS := \
|
||||||
@@VERSION_SPECIFICATION@@ => $(VERSION_SPECIFICATION) ; \
|
@@VERSION_SPECIFICATION@@ => $(VERSION_SPECIFICATION) ; \
|
||||||
@@ -171,41 +171,41 @@ $(BUILD_DEMO_CodePointIM_JAR): $(CODEPOINT_METAINF_SERVICE_FILE)
|
|||||||
|
|
||||||
$(eval $(call SetupBuildDemo, FileChooserDemo, \
|
$(eval $(call SetupBuildDemo, FileChooserDemo, \
|
||||||
DEMO_SUBDIR := jfc, \
|
DEMO_SUBDIR := jfc, \
|
||||||
DISABLED_WARNINGS := rawtypes deprecation unchecked this-escape, \
|
DISABLED_WARNINGS := rawtypes deprecation unchecked, \
|
||||||
))
|
))
|
||||||
|
|
||||||
$(eval $(call SetupBuildDemo, SwingSet2, \
|
$(eval $(call SetupBuildDemo, SwingSet2, \
|
||||||
DEMO_SUBDIR := jfc, \
|
DEMO_SUBDIR := jfc, \
|
||||||
EXTRA_COPY_TO_JAR := .java, \
|
EXTRA_COPY_TO_JAR := .java, \
|
||||||
EXTRA_MANIFEST_ATTR := SplashScreen-Image: resources/images/splash.png, \
|
EXTRA_MANIFEST_ATTR := SplashScreen-Image: resources/images/splash.png, \
|
||||||
DISABLED_WARNINGS := rawtypes deprecation unchecked static serial cast this-escape, \
|
DISABLED_WARNINGS := rawtypes deprecation unchecked static serial cast, \
|
||||||
))
|
))
|
||||||
|
|
||||||
$(eval $(call SetupBuildDemo, Font2DTest, \
|
$(eval $(call SetupBuildDemo, Font2DTest, \
|
||||||
DISABLED_WARNINGS := rawtypes deprecation unchecked serial cast this-escape, \
|
DISABLED_WARNINGS := rawtypes deprecation unchecked serial cast, \
|
||||||
DEMO_SUBDIR := jfc, \
|
DEMO_SUBDIR := jfc, \
|
||||||
))
|
))
|
||||||
|
|
||||||
$(eval $(call SetupBuildDemo, J2Ddemo, \
|
$(eval $(call SetupBuildDemo, J2Ddemo, \
|
||||||
DEMO_SUBDIR := jfc, \
|
DEMO_SUBDIR := jfc, \
|
||||||
MAIN_CLASS := java2d.J2Ddemo, \
|
MAIN_CLASS := java2d.J2Ddemo, \
|
||||||
DISABLED_WARNINGS := rawtypes deprecation unchecked cast lossy-conversions this-escape, \
|
DISABLED_WARNINGS := rawtypes deprecation unchecked cast lossy-conversions, \
|
||||||
JAR_NAME := J2Ddemo, \
|
JAR_NAME := J2Ddemo, \
|
||||||
))
|
))
|
||||||
|
|
||||||
$(eval $(call SetupBuildDemo, Metalworks, \
|
$(eval $(call SetupBuildDemo, Metalworks, \
|
||||||
DISABLED_WARNINGS := rawtypes unchecked this-escape, \
|
DISABLED_WARNINGS := rawtypes unchecked, \
|
||||||
DEMO_SUBDIR := jfc, \
|
DEMO_SUBDIR := jfc, \
|
||||||
))
|
))
|
||||||
|
|
||||||
$(eval $(call SetupBuildDemo, Notepad, \
|
$(eval $(call SetupBuildDemo, Notepad, \
|
||||||
DISABLED_WARNINGS := rawtypes this-escape, \
|
DISABLED_WARNINGS := rawtypes, \
|
||||||
DEMO_SUBDIR := jfc, \
|
DEMO_SUBDIR := jfc, \
|
||||||
))
|
))
|
||||||
|
|
||||||
$(eval $(call SetupBuildDemo, Stylepad, \
|
$(eval $(call SetupBuildDemo, Stylepad, \
|
||||||
DEMO_SUBDIR := jfc, \
|
DEMO_SUBDIR := jfc, \
|
||||||
DISABLED_WARNINGS := rawtypes unchecked this-escape, \
|
DISABLED_WARNINGS := rawtypes unchecked, \
|
||||||
EXTRA_SRC_DIR := $(DEMO_SHARE_SRC)/jfc/Notepad, \
|
EXTRA_SRC_DIR := $(DEMO_SHARE_SRC)/jfc/Notepad, \
|
||||||
EXCLUDE_FILES := $(DEMO_SHARE_SRC)/jfc/Notepad/README.txt, \
|
EXCLUDE_FILES := $(DEMO_SHARE_SRC)/jfc/Notepad/README.txt, \
|
||||||
))
|
))
|
||||||
@@ -215,12 +215,11 @@ $(eval $(call SetupBuildDemo, SampleTree, \
|
|||||||
))
|
))
|
||||||
|
|
||||||
$(eval $(call SetupBuildDemo, TableExample, \
|
$(eval $(call SetupBuildDemo, TableExample, \
|
||||||
DISABLED_WARNINGS := rawtypes unchecked deprecation this-escape, \
|
DISABLED_WARNINGS := rawtypes unchecked deprecation, \
|
||||||
DEMO_SUBDIR := jfc, \
|
DEMO_SUBDIR := jfc, \
|
||||||
))
|
))
|
||||||
|
|
||||||
$(eval $(call SetupBuildDemo, TransparentRuler, \
|
$(eval $(call SetupBuildDemo, TransparentRuler, \
|
||||||
DISABLED_WARNINGS := this-escape, \
|
|
||||||
DEMO_SUBDIR := jfc, \
|
DEMO_SUBDIR := jfc, \
|
||||||
MAIN_CLASS := transparentruler.Ruler, \
|
MAIN_CLASS := transparentruler.Ruler, \
|
||||||
))
|
))
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2014, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2014, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -98,10 +98,6 @@ define SetupInterimModule
|
|||||||
EXCLUDES := sun javax/tools/snippet-files, \
|
EXCLUDES := sun javax/tools/snippet-files, \
|
||||||
EXCLUDE_FILES := $(TOPDIR)/src/$1/share/classes/module-info.java \
|
EXCLUDE_FILES := $(TOPDIR)/src/$1/share/classes/module-info.java \
|
||||||
$(TOPDIR)/src/$1/share/classes/javax/tools/ToolProvider.java \
|
$(TOPDIR)/src/$1/share/classes/javax/tools/ToolProvider.java \
|
||||||
$(TOPDIR)/src/$1/share/classes/com/sun/tools/javac/launcher/Main.java \
|
|
||||||
$(TOPDIR)/src/$1/share/classes/com/sun/tools/javac/launcher/MemoryContext.java \
|
|
||||||
$(TOPDIR)/src/$1/share/classes/com/sun/tools/javac/launcher/MemoryModuleFinder.java \
|
|
||||||
$(TOPDIR)/src/$1/share/classes/com/sun/tools/javac/launcher/SourceLauncher.java \
|
|
||||||
Standard.java, \
|
Standard.java, \
|
||||||
EXTRA_FILES := $(BUILDTOOLS_OUTPUTDIR)/gensrc/$1.interim/module-info.java \
|
EXTRA_FILES := $(BUILDTOOLS_OUTPUTDIR)/gensrc/$1.interim/module-info.java \
|
||||||
$($1.interim_EXTRA_FILES), \
|
$($1.interim_EXTRA_FILES), \
|
||||||
@@ -113,9 +109,7 @@ define SetupInterimModule
|
|||||||
$$(INTERIM_LANGTOOLS_ADD_EXPORTS) \
|
$$(INTERIM_LANGTOOLS_ADD_EXPORTS) \
|
||||||
--patch-module java.base=$(BUILDTOOLS_OUTPUTDIR)/gensrc/java.base.interim \
|
--patch-module java.base=$(BUILDTOOLS_OUTPUTDIR)/gensrc/java.base.interim \
|
||||||
--add-exports java.base/jdk.internal.javac=java.compiler.interim \
|
--add-exports java.base/jdk.internal.javac=java.compiler.interim \
|
||||||
--add-exports java.base/jdk.internal.javac=jdk.compiler.interim \
|
--add-exports java.base/jdk.internal.javac=jdk.compiler.interim, \
|
||||||
--add-exports jdk.internal.opt/jdk.internal.opt=jdk.compiler.interim \
|
|
||||||
--add-exports jdk.internal.opt/jdk.internal.opt=jdk.javadoc.interim, \
|
|
||||||
))
|
))
|
||||||
|
|
||||||
$1_DEPS_INTERIM := $$(addsuffix .interim, $$(filter \
|
$1_DEPS_INTERIM := $$(addsuffix .interim, $$(filter \
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2013, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -53,7 +53,7 @@ $(eval $(call SetupJavaCompilation, BUILD_JIGSAW_TOOLS, \
|
|||||||
build/tools/jigsaw, \
|
build/tools/jigsaw, \
|
||||||
COPY := .properties .html, \
|
COPY := .properties .html, \
|
||||||
BIN := $(TOOLS_CLASSES_DIR), \
|
BIN := $(TOOLS_CLASSES_DIR), \
|
||||||
DISABLED_WARNINGS := fallthrough this-escape, \
|
DISABLED_WARNINGS := fallthrough, \
|
||||||
JAVAC_FLAGS := \
|
JAVAC_FLAGS := \
|
||||||
--add-modules jdk.jdeps \
|
--add-modules jdk.jdeps \
|
||||||
--add-exports java.base/jdk.internal.module=ALL-UNNAMED \
|
--add-exports java.base/jdk.internal.module=ALL-UNNAMED \
|
||||||
|
|||||||
@@ -57,9 +57,7 @@ $(eval $(call SetupJavaCompilation, BUILD_TOOLS_JDK, \
|
|||||||
JAVAC_FLAGS := \
|
JAVAC_FLAGS := \
|
||||||
--add-exports java.desktop/sun.awt=ALL-UNNAMED \
|
--add-exports java.desktop/sun.awt=ALL-UNNAMED \
|
||||||
--add-exports java.base/sun.text=ALL-UNNAMED \
|
--add-exports java.base/sun.text=ALL-UNNAMED \
|
||||||
--add-exports java.base/sun.security.util=ALL-UNNAMED \
|
--add-exports java.base/sun.security.util=ALL-UNNAMED, \
|
||||||
--add-exports jdk.internal.opt/jdk.internal.opt=jdk.compiler.interim \
|
|
||||||
--add-exports jdk.internal.opt/jdk.internal.opt=jdk.javadoc.interim, \
|
|
||||||
))
|
))
|
||||||
|
|
||||||
TARGETS += $(BUILD_TOOLS_JDK)
|
TARGETS += $(BUILD_TOOLS_JDK)
|
||||||
@@ -92,9 +90,7 @@ $(eval $(call SetupJavaCompilation, COMPILE_DEPEND, \
|
|||||||
--add-exports jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED \
|
--add-exports jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED \
|
||||||
--add-exports jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED \
|
--add-exports jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED \
|
||||||
--add-exports jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED \
|
--add-exports jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED \
|
||||||
--add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED \
|
--add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED, \
|
||||||
--add-exports jdk.internal.opt/jdk.internal.opt=jdk.compiler.interim \
|
|
||||||
--add-exports jdk.internal.opt/jdk.internal.opt=jdk.javadoc.interim, \
|
|
||||||
))
|
))
|
||||||
|
|
||||||
DEPEND_SERVICE_PROVIDER := $(BUILDTOOLS_OUTPUTDIR)/depend/META-INF/services/com.sun.source.util.Plugin
|
DEPEND_SERVICE_PROVIDER := $(BUILDTOOLS_OUTPUTDIR)/depend/META-INF/services/com.sun.source.util.Plugin
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2014, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2014, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -81,11 +81,13 @@ endif
|
|||||||
ifneq ($(CMDS_DIR), )
|
ifneq ($(CMDS_DIR), )
|
||||||
DEPS += $(call FindFiles, $(CMDS_DIR))
|
DEPS += $(call FindFiles, $(CMDS_DIR))
|
||||||
ifeq ($(call isTargetOs, windows)+$(SHIP_DEBUG_SYMBOLS), true+public)
|
ifeq ($(call isTargetOs, windows)+$(SHIP_DEBUG_SYMBOLS), true+public)
|
||||||
# For public debug symbols on Windows, we have to use stripped pdbs and rename them
|
# For public debug symbols on Windows, we have to use stripped pdbs, rename them
|
||||||
|
# and filter out a few launcher pdbs where there's a lib that goes by the same name
|
||||||
rename_stripped = $(patsubst %.stripped.pdb,%.pdb,$1)
|
rename_stripped = $(patsubst %.stripped.pdb,%.pdb,$1)
|
||||||
CMDS_DIR_FILTERED := $(subst modules_cmds,modules_cmds_filtered, $(CMDS_DIR))
|
CMDS_DIR_FILTERED := $(subst modules_cmds,modules_cmds_filtered, $(CMDS_DIR))
|
||||||
FILES_CMDS := $(filter-out %.pdb, $(call FindFiles, $(CMDS_DIR))) \
|
FILES_CMDS := $(filter-out %.pdb, $(call FindFiles, $(CMDS_DIR))) \
|
||||||
$(filter %.stripped.pdb, $(call FindFiles, $(CMDS_DIR)))
|
$(filter-out %jimage.stripped.pdb %jpackage.stripped.pdb %java.stripped.pdb, \
|
||||||
|
$(filter %.stripped.pdb, $(call FindFiles, $(CMDS_DIR))))
|
||||||
$(eval $(call SetupCopyFiles, COPY_FILTERED_CMDS, \
|
$(eval $(call SetupCopyFiles, COPY_FILTERED_CMDS, \
|
||||||
SRC := $(CMDS_DIR), \
|
SRC := $(CMDS_DIR), \
|
||||||
DEST := $(CMDS_DIR_FILTERED), \
|
DEST := $(CMDS_DIR_FILTERED), \
|
||||||
@@ -94,6 +96,18 @@ ifneq ($(CMDS_DIR), )
|
|||||||
))
|
))
|
||||||
DEPS += $(COPY_FILTERED_CMDS)
|
DEPS += $(COPY_FILTERED_CMDS)
|
||||||
JMOD_FLAGS += --cmds $(CMDS_DIR_FILTERED)
|
JMOD_FLAGS += --cmds $(CMDS_DIR_FILTERED)
|
||||||
|
else ifeq ($(call isTargetOs, windows)+$(SHIP_DEBUG_SYMBOLS), true+full)
|
||||||
|
# For full debug symbols on Windows, we have to filter out a few launcher pdbs
|
||||||
|
# where there's a lib that goes by the same name
|
||||||
|
CMDS_DIR_FILTERED := $(subst modules_cmds,modules_cmds_filtered, $(CMDS_DIR))
|
||||||
|
$(eval $(call SetupCopyFiles, COPY_FILTERED_CMDS, \
|
||||||
|
SRC := $(CMDS_DIR), \
|
||||||
|
DEST := $(CMDS_DIR_FILTERED), \
|
||||||
|
FILES := $(filter-out %jimage.pdb %jpackage.pdb %java.pdb, \
|
||||||
|
$(call FindFiles, $(CMDS_DIR))), \
|
||||||
|
))
|
||||||
|
DEPS += $(COPY_FILTERED_CMDS)
|
||||||
|
JMOD_FLAGS += --cmds $(CMDS_DIR_FILTERED)
|
||||||
else
|
else
|
||||||
JMOD_FLAGS += --cmds $(CMDS_DIR)
|
JMOD_FLAGS += --cmds $(CMDS_DIR)
|
||||||
endif
|
endif
|
||||||
@@ -182,14 +196,9 @@ else # not java.base
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
################################################################################
|
# Set main class of jdk.httpserver module
|
||||||
# Include module specific build settings
|
ifeq ($(MODULE), jdk.httpserver)
|
||||||
|
JMOD_FLAGS += --main-class sun.net.httpserver.simpleserver.Main
|
||||||
-include Jmod.gmk
|
|
||||||
|
|
||||||
# Set main class
|
|
||||||
ifneq ($(JMOD_FLAGS_main_class), )
|
|
||||||
JMOD_FLAGS += $(JMOD_FLAGS_main_class)
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Changes to the jmod tool itself should also trigger a rebuild of all jmods.
|
# Changes to the jmod tool itself should also trigger a rebuild of all jmods.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# Copyright (c) 1997, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 1997, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -66,6 +66,11 @@ MODULES_SOURCE_PATH := $(call PathList, $(call GetModuleSrcPath) )
|
|||||||
# In order to get a specific ordering it's necessary to specify the total
|
# 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.
|
# ordering of tags as the tags are otherwise ordered in order of definition.
|
||||||
JAVADOC_TAGS := \
|
JAVADOC_TAGS := \
|
||||||
|
-tag beaninfo:X \
|
||||||
|
-tag revised:X \
|
||||||
|
-tag since.unbundled:X \
|
||||||
|
-tag Note:X \
|
||||||
|
-tag ToDo:X \
|
||||||
-tag 'apiNote:a:API Note:' \
|
-tag 'apiNote:a:API Note:' \
|
||||||
-tag 'implSpec:a:Implementation Requirements:' \
|
-tag 'implSpec:a:Implementation Requirements:' \
|
||||||
-tag 'implNote:a:Implementation Note:' \
|
-tag 'implNote:a:Implementation Note:' \
|
||||||
@@ -105,15 +110,13 @@ JAVA_WARNINGS_ARE_ERRORS ?= -Werror
|
|||||||
JAVADOC_OPTIONS := -use -keywords -notimestamp \
|
JAVADOC_OPTIONS := -use -keywords -notimestamp \
|
||||||
-encoding ISO-8859-1 -docencoding UTF-8 -breakiterator \
|
-encoding ISO-8859-1 -docencoding UTF-8 -breakiterator \
|
||||||
-splitIndex --system none -javafx --expand-requires transitive \
|
-splitIndex --system none -javafx --expand-requires transitive \
|
||||||
--override-methods=summary \
|
--override-methods=summary
|
||||||
--no-external-specs-page
|
|
||||||
|
|
||||||
# The reference options must stay stable to allow for comparisons across the
|
# The reference options must stay stable to allow for comparisons across the
|
||||||
# development cycle.
|
# development cycle.
|
||||||
REFERENCE_OPTIONS := -XDignore.symbol.file=true -use -keywords -notimestamp \
|
REFERENCE_OPTIONS := -XDignore.symbol.file=true -use -keywords -notimestamp \
|
||||||
-encoding ISO-8859-1 -breakiterator -splitIndex --system none \
|
-encoding ISO-8859-1 -breakiterator -splitIndex --system none \
|
||||||
-html5 -javafx --expand-requires transitive \
|
-html5 -javafx --expand-requires transitive
|
||||||
--no-external-specs-page
|
|
||||||
|
|
||||||
# Should we add DRAFT stamps to the generated javadoc?
|
# Should we add DRAFT stamps to the generated javadoc?
|
||||||
ifeq ($(VERSION_IS_GA), true)
|
ifeq ($(VERSION_IS_GA), true)
|
||||||
@@ -139,6 +142,11 @@ ifeq ($(IS_DRAFT), true)
|
|||||||
endif
|
endif
|
||||||
DRAFT_TEXT := This specification is not final and is subject to change. \
|
DRAFT_TEXT := This specification is not final and is subject to change. \
|
||||||
Use is subject to <a href="$(LICENSE_URL)">license terms</a>.
|
Use is subject to <a href="$(LICENSE_URL)">license terms</a>.
|
||||||
|
|
||||||
|
# Workaround stylesheet bug
|
||||||
|
HEADER_STYLE := style="margin-top: 9px;"
|
||||||
|
else
|
||||||
|
HEADER_STYLE := style="margin-top: 14px;"
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# $1 - Relative prefix to COPYRIGHT_URL
|
# $1 - Relative prefix to COPYRIGHT_URL
|
||||||
@@ -334,7 +342,7 @@ define SetupApiDocsGenerationBody
|
|||||||
$1_DOC_TITLE := $$($1_LONG_NAME)<br>Version $$(VERSION_SPECIFICATION) API \
|
$1_DOC_TITLE := $$($1_LONG_NAME)<br>Version $$(VERSION_SPECIFICATION) API \
|
||||||
Specification
|
Specification
|
||||||
$1_WINDOW_TITLE := $$(subst &,&,$$($1_SHORT_NAME))$$(DRAFT_MARKER_TITLE)
|
$1_WINDOW_TITLE := $$(subst &,&,$$($1_SHORT_NAME))$$(DRAFT_MARKER_TITLE)
|
||||||
$1_HEADER_TITLE := <div><strong>$$($1_SHORT_NAME)</strong> \
|
$1_HEADER_TITLE := <div $$(HEADER_STYLE)><strong>$$($1_SHORT_NAME)</strong> \
|
||||||
$$(DRAFT_MARKER_STR)</div>
|
$$(DRAFT_MARKER_STR)</div>
|
||||||
ifneq ($$($1_OTHER_VERSIONS), )
|
ifneq ($$($1_OTHER_VERSIONS), )
|
||||||
$1_JAVADOC_BOTTOM := $$(call JAVADOC_BOTTOM, <a href="$$($1_OTHER_VERSIONS)">Other versions.</a>)
|
$1_JAVADOC_BOTTOM := $$(call JAVADOC_BOTTOM, <a href="$$($1_OTHER_VERSIONS)">Other versions.</a>)
|
||||||
@@ -642,7 +650,7 @@ ifeq ($(ENABLE_PANDOC), true)
|
|||||||
GLOBAL_SPECS_DEFAULT_CSS_FILE := $(DOCS_OUTPUTDIR)/resources/jdk-default.css
|
GLOBAL_SPECS_DEFAULT_CSS_FILE := $(DOCS_OUTPUTDIR)/resources/jdk-default.css
|
||||||
# Unset the following to suppress the link to the tool guides
|
# Unset the following to suppress the link to the tool guides
|
||||||
NAV_LINK_GUIDES := --nav-link-guides
|
NAV_LINK_GUIDES := --nav-link-guides
|
||||||
HEADER_RIGHT_SIDE_INFO := <strong>$(subst &,&,$(JDK_SHORT_NAME))</strong>$(DRAFT_MARKER_STR)
|
HEADER_RIGHT_SIDE_INFO := <strong>$(subst &,&,$(JDK_SHORT_NAME))$(DRAFT_MARKER_STR)</strong>
|
||||||
|
|
||||||
$(foreach m, $(ALL_MODULES), \
|
$(foreach m, $(ALL_MODULES), \
|
||||||
$(eval SPECS_$m := $(call FindModuleSpecsDirs, $m)) \
|
$(eval SPECS_$m := $(call FindModuleSpecsDirs, $m)) \
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2012, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2012, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -52,6 +52,7 @@ help:
|
|||||||
$(info $(_) make docs # Create all docs)
|
$(info $(_) make docs # Create all docs)
|
||||||
$(info $(_) make docs-jdk-api # Create just JDK javadocs)
|
$(info $(_) make docs-jdk-api # Create just JDK javadocs)
|
||||||
$(info $(_) make bootcycle-images # Build images twice, second time with newly built JDK)
|
$(info $(_) make bootcycle-images # Build images twice, second time with newly built JDK)
|
||||||
|
$(info $(_) make install # Install the generated images locally)
|
||||||
$(info $(_) make check # Run basic testing (currently tier1))
|
$(info $(_) make check # Run basic testing (currently tier1))
|
||||||
$(info $(_) make test-<test> # Run test, e.g. test-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 test TEST=<t> # Run test(s) given by TEST specification)
|
||||||
@@ -124,11 +125,6 @@ test-prebuilt:
|
|||||||
$(MAKE) --no-print-directory -r -R -I make/common/ -f make/RunTestsPrebuilt.gmk \
|
$(MAKE) --no-print-directory -r -R -I make/common/ -f make/RunTestsPrebuilt.gmk \
|
||||||
test-prebuilt CUSTOM_MAKE_DIR=$(CUSTOM_MAKE_DIR) TEST="$(TEST)" )
|
test-prebuilt CUSTOM_MAKE_DIR=$(CUSTOM_MAKE_DIR) TEST="$(TEST)" )
|
||||||
|
|
||||||
test-prebuilt-with-exit-code:
|
|
||||||
@( cd $(topdir) && \
|
|
||||||
$(MAKE) --no-print-directory -r -R -I make/common/ -f make/RunTestsPrebuilt.gmk \
|
|
||||||
test-prebuilt-with-exit-code CUSTOM_MAKE_DIR=$(CUSTOM_MAKE_DIR) TEST="$(TEST)" )
|
|
||||||
|
|
||||||
# Alias for backwards compatibility
|
# Alias for backwards compatibility
|
||||||
run-test-prebuilt: test-prebuilt
|
run-test-prebuilt: test-prebuilt
|
||||||
|
|
||||||
|
|||||||
@@ -43,10 +43,10 @@ $(eval $(call SetupCopyFiles, COPY_JDK_IMG, \
|
|||||||
TARGETS += $(COPY_JDK_IMG)
|
TARGETS += $(COPY_JDK_IMG)
|
||||||
|
|
||||||
$(eval $(call SetupCopyFiles, COPY_STATIC_LIBS, \
|
$(eval $(call SetupCopyFiles, COPY_STATIC_LIBS, \
|
||||||
SRC := $(STATIC_LIBS_GRAAL_IMAGE_DIR)/lib, \
|
SRC := $(STATIC_LIBS_IMAGE_DIR)/lib, \
|
||||||
DEST := $(GRAAL_BUILDER_IMAGE_DIR)/lib, \
|
DEST := $(GRAAL_BUILDER_IMAGE_DIR)/lib, \
|
||||||
FILES := $(filter %$(STATIC_LIBRARY_SUFFIX), \
|
FILES := $(filter %$(STATIC_LIBRARY_SUFFIX), \
|
||||||
$(call FindFiles, $(STATIC_LIBS_GRAAL_IMAGE_DIR)/lib)), \
|
$(call FindFiles, $(STATIC_LIBS_IMAGE_DIR)/lib)), \
|
||||||
))
|
))
|
||||||
TARGETS += $(COPY_STATIC_LIBS)
|
TARGETS += $(COPY_STATIC_LIBS)
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2020, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2020, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -47,7 +47,7 @@ ifeq ($(HSDIS_BACKEND), capstone)
|
|||||||
CAPSTONE_ARCH := CS_ARCH_X86
|
CAPSTONE_ARCH := CS_ARCH_X86
|
||||||
CAPSTONE_MODE := CS_MODE_$(OPENJDK_TARGET_CPU_BITS)
|
CAPSTONE_MODE := CS_MODE_$(OPENJDK_TARGET_CPU_BITS)
|
||||||
else ifeq ($(call isTargetCpuArch, aarch64), true)
|
else ifeq ($(call isTargetCpuArch, aarch64), true)
|
||||||
CAPSTONE_ARCH := CS_ARCH_$(CAPSTONE_ARCH_AARCH64_NAME)
|
CAPSTONE_ARCH := CS_ARCH_ARM64
|
||||||
CAPSTONE_MODE := CS_MODE_ARM
|
CAPSTONE_MODE := CS_MODE_ARM
|
||||||
else
|
else
|
||||||
$(error No support for Capstone on this platform)
|
$(error No support for Capstone on this platform)
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2014, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2014, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -29,7 +29,6 @@ include $(SPEC)
|
|||||||
include MakeBase.gmk
|
include MakeBase.gmk
|
||||||
include Execute.gmk
|
include Execute.gmk
|
||||||
include Modules.gmk
|
include Modules.gmk
|
||||||
include Utils.gmk
|
|
||||||
|
|
||||||
JDK_TARGETS :=
|
JDK_TARGETS :=
|
||||||
JRE_TARGETS :=
|
JRE_TARGETS :=
|
||||||
@@ -40,7 +39,7 @@ $(eval $(call IncludeCustomExtension, Images-pre.gmk))
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
# All modules for the current target platform.
|
# All modules for the current target platform.
|
||||||
ALL_MODULES := $(call FindAllModules) $(EXTRA_MODULES)
|
ALL_MODULES := $(call FindAllModules)
|
||||||
|
|
||||||
$(eval $(call ReadImportMetaData))
|
$(eval $(call ReadImportMetaData))
|
||||||
|
|
||||||
@@ -55,10 +54,7 @@ JDK_MODULES_LIST := $(call CommaList, $(JDK_MODULES))
|
|||||||
|
|
||||||
BASE_RELEASE_FILE := $(JDK_OUTPUTDIR)/release
|
BASE_RELEASE_FILE := $(JDK_OUTPUTDIR)/release
|
||||||
|
|
||||||
JMODS_DIRS := $(EXTRA_JMODS_DIR) $(IMAGES_OUTPUTDIR)/jmods
|
JMODS := $(wildcard $(IMAGES_OUTPUTDIR)/jmods/*.jmod)
|
||||||
|
|
||||||
JDK_JMODS := $(foreach m, $(JDK_MODULES), $(firstword $(wildcard $(addsuffix /$m.jmod, $(JMODS_DIRS)))))
|
|
||||||
JRE_JMODS := $(foreach m, $(JRE_MODULES), $(firstword $(wildcard $(addsuffix /$m.jmod, $(JMODS_DIRS)))))
|
|
||||||
|
|
||||||
JLINK_ORDER_RESOURCES := **module-info.class
|
JLINK_ORDER_RESOURCES := **module-info.class
|
||||||
JLINK_JLI_CLASSES :=
|
JLINK_JLI_CLASSES :=
|
||||||
@@ -75,7 +71,7 @@ JLINK_ORDER_RESOURCES += \
|
|||||||
#
|
#
|
||||||
|
|
||||||
JLINK_TOOL := $(JLINK) -J-Djlink.debug=true \
|
JLINK_TOOL := $(JLINK) -J-Djlink.debug=true \
|
||||||
--module-path $(call PathList, $(JMODS_DIRS)) \
|
--module-path $(IMAGES_OUTPUTDIR)/jmods \
|
||||||
--endian $(OPENJDK_TARGET_CPU_ENDIAN) \
|
--endian $(OPENJDK_TARGET_CPU_ENDIAN) \
|
||||||
--release-info $(BASE_RELEASE_FILE) \
|
--release-info $(BASE_RELEASE_FILE) \
|
||||||
--order-resources=$(call CommaList, $(JLINK_ORDER_RESOURCES)) \
|
--order-resources=$(call CommaList, $(JLINK_ORDER_RESOURCES)) \
|
||||||
@@ -91,15 +87,12 @@ endif
|
|||||||
|
|
||||||
JLINK_DISABLE_WARNINGS := | ( $(GREP) -v -e "WARNING: Using incubator module" || test "$$?" = "1" )
|
JLINK_DISABLE_WARNINGS := | ( $(GREP) -v -e "WARNING: Using incubator module" || test "$$?" = "1" )
|
||||||
|
|
||||||
JDK_IMAGE_SUPPORT_DIR := $(SUPPORT_OUTPUTDIR)/images/jdk
|
|
||||||
JRE_IMAGE_SUPPORT_DIR := $(SUPPORT_OUTPUTDIR)/images/jre
|
|
||||||
|
|
||||||
$(eval $(call SetupExecute, jlink_jdk, \
|
$(eval $(call SetupExecute, jlink_jdk, \
|
||||||
WARN := Creating jdk image, \
|
WARN := Creating jdk image, \
|
||||||
DEPS := $(JDK_JMODS) $(BASE_RELEASE_FILE) \
|
DEPS := $(JMODS) $(BASE_RELEASE_FILE) \
|
||||||
$(call DependOnVariable, JDK_MODULES_LIST, $(JDK_IMAGE_SUPPORT_DIR)/_jlink_jdk.vardeps), \
|
$(call DependOnVariable, JDK_MODULES_LIST), \
|
||||||
OUTPUT_DIR := $(JDK_IMAGE_DIR), \
|
OUTPUT_DIR := $(JDK_IMAGE_DIR), \
|
||||||
SUPPORT_DIR := $(JDK_IMAGE_SUPPORT_DIR), \
|
SUPPORT_DIR := $(SUPPORT_OUTPUTDIR)/images/jdk, \
|
||||||
PRE_COMMAND := $(RM) -r $(JDK_IMAGE_DIR), \
|
PRE_COMMAND := $(RM) -r $(JDK_IMAGE_DIR), \
|
||||||
COMMAND := $(JLINK_TOOL) --add-modules $(JDK_MODULES_LIST) \
|
COMMAND := $(JLINK_TOOL) --add-modules $(JDK_MODULES_LIST) \
|
||||||
$(JLINK_JDK_EXTRA_OPTS) --output $(JDK_IMAGE_DIR) \
|
$(JLINK_JDK_EXTRA_OPTS) --output $(JDK_IMAGE_DIR) \
|
||||||
@@ -110,10 +103,10 @@ JLINK_JDK_TARGETS := $(jlink_jdk)
|
|||||||
|
|
||||||
$(eval $(call SetupExecute, jlink_jre, \
|
$(eval $(call SetupExecute, jlink_jre, \
|
||||||
WARN := Creating legacy jre image, \
|
WARN := Creating legacy jre image, \
|
||||||
DEPS := $(JRE_JMODS) $(BASE_RELEASE_FILE) \
|
DEPS := $(JMODS) $(BASE_RELEASE_FILE) \
|
||||||
$(call DependOnVariable, JRE_MODULES_LIST, $(JRE_IMAGE_SUPPORT_DIR)/_jlink_jre.vardeps), \
|
$(call DependOnVariable, JDK_MODULES_LIST), \
|
||||||
OUTPUT_DIR := $(JRE_IMAGE_DIR), \
|
OUTPUT_DIR := $(JRE_IMAGE_DIR), \
|
||||||
SUPPORT_DIR := $(JRE_IMAGE_SUPPORT_DIR), \
|
SUPPORT_DIR := $(SUPPORT_OUTPUTDIR)/images/jre, \
|
||||||
PRE_COMMAND := $(RM) -r $(JRE_IMAGE_DIR), \
|
PRE_COMMAND := $(RM) -r $(JRE_IMAGE_DIR), \
|
||||||
COMMAND := $(JLINK_TOOL) --add-modules $(JRE_MODULES_LIST) \
|
COMMAND := $(JLINK_TOOL) --add-modules $(JRE_MODULES_LIST) \
|
||||||
$(JLINK_JRE_EXTRA_OPTS) --output $(JRE_IMAGE_DIR), \
|
$(JLINK_JRE_EXTRA_OPTS) --output $(JRE_IMAGE_DIR), \
|
||||||
@@ -149,7 +142,7 @@ define CreateCDSArchive
|
|||||||
INFO := Using CDS flags for $1: $$($1_$2_CDS_DUMP_FLAGS), \
|
INFO := Using CDS flags for $1: $$($1_$2_CDS_DUMP_FLAGS), \
|
||||||
DEPS := $$(jlink_jdk), \
|
DEPS := $$(jlink_jdk), \
|
||||||
OUTPUT_FILE := $$(JDK_IMAGE_DIR)/$$($1_$2_CDS_ARCHIVE), \
|
OUTPUT_FILE := $$(JDK_IMAGE_DIR)/$$($1_$2_CDS_ARCHIVE), \
|
||||||
SUPPORT_DIR := $$(JDK_IMAGE_SUPPORT_DIR), \
|
SUPPORT_DIR := $$(SUPPORT_OUTPUTDIR)/images/jdk, \
|
||||||
COMMAND := $$(FIXPATH) $$(JDK_IMAGE_DIR)/bin/java -Xshare:dump \
|
COMMAND := $$(FIXPATH) $$(JDK_IMAGE_DIR)/bin/java -Xshare:dump \
|
||||||
-XX:SharedArchiveFile=$$(JDK_IMAGE_DIR)/$$($1_$2_CDS_ARCHIVE) \
|
-XX:SharedArchiveFile=$$(JDK_IMAGE_DIR)/$$($1_$2_CDS_ARCHIVE) \
|
||||||
-$1 $$($1_$2_DUMP_EXTRA_ARG) $$($1_$2_CDS_DUMP_FLAGS) $$(LOG_INFO), \
|
-$1 $$($1_$2_DUMP_EXTRA_ARG) $$($1_$2_CDS_DUMP_FLAGS) $$(LOG_INFO), \
|
||||||
@@ -162,7 +155,7 @@ define CreateCDSArchive
|
|||||||
INFO := Using CDS flags for $1: $$($1_$2_CDS_DUMP_FLAGS), \
|
INFO := Using CDS flags for $1: $$($1_$2_CDS_DUMP_FLAGS), \
|
||||||
DEPS := $$(jlink_jre), \
|
DEPS := $$(jlink_jre), \
|
||||||
OUTPUT_FILE := $$(JRE_IMAGE_DIR)/$$($1_$2_CDS_ARCHIVE), \
|
OUTPUT_FILE := $$(JRE_IMAGE_DIR)/$$($1_$2_CDS_ARCHIVE), \
|
||||||
SUPPORT_DIR := $$(JRE_IMAGE_SUPPORT_DIR), \
|
SUPPORT_DIR := $$(SUPPORT_OUTPUTDIR)/images/jre, \
|
||||||
COMMAND := $$(FIXPATH) $$(JRE_IMAGE_DIR)/bin/java -Xshare:dump \
|
COMMAND := $$(FIXPATH) $$(JRE_IMAGE_DIR)/bin/java -Xshare:dump \
|
||||||
-XX:SharedArchiveFile=$$(JRE_IMAGE_DIR)/$$($1_$2_CDS_ARCHIVE) \
|
-XX:SharedArchiveFile=$$(JRE_IMAGE_DIR)/$$($1_$2_CDS_ARCHIVE) \
|
||||||
-$1 $$($1_$2_DUMP_EXTRA_ARG) $$($1_$2_CDS_DUMP_FLAGS) $$(LOG_INFO), \
|
-$1 $$($1_$2_DUMP_EXTRA_ARG) $$($1_$2_CDS_DUMP_FLAGS) $$(LOG_INFO), \
|
||||||
@@ -274,6 +267,9 @@ else
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
FILTERED_PDBS := %jimage.stripped.pdb %jpackage.stripped.pdb %java.stripped.pdb \
|
||||||
|
%jimage.pdb %jpackage.pdb %java.pdb %jimage.map %jpackage.map %java.map
|
||||||
|
|
||||||
# Param 1 - either JDK or JRE
|
# Param 1 - either JDK or JRE
|
||||||
SetupCopyDebuginfo = \
|
SetupCopyDebuginfo = \
|
||||||
$(foreach m, $(ALL_$1_MODULES), \
|
$(foreach m, $(ALL_$1_MODULES), \
|
||||||
@@ -287,8 +283,8 @@ SetupCopyDebuginfo = \
|
|||||||
$(eval $(call SetupCopyFiles, COPY_$1_CMDS_DEBUGINFO_$m, \
|
$(eval $(call SetupCopyFiles, COPY_$1_CMDS_DEBUGINFO_$m, \
|
||||||
SRC := $(SUPPORT_OUTPUTDIR)/modules_cmds/$m, \
|
SRC := $(SUPPORT_OUTPUTDIR)/modules_cmds/$m, \
|
||||||
DEST := $($1_IMAGE_DIR)/$(CMDS_TARGET_SUBDIR), \
|
DEST := $($1_IMAGE_DIR)/$(CMDS_TARGET_SUBDIR), \
|
||||||
FILES := $(call FindDebuginfoFiles, \
|
FILES := $(filter-out $(FILTERED_PDBS), $(call FindDebuginfoFiles, \
|
||||||
$(SUPPORT_OUTPUTDIR)/modules_cmds/$m), \
|
$(SUPPORT_OUTPUTDIR)/modules_cmds/$m)), \
|
||||||
)) \
|
)) \
|
||||||
$(eval $1_TARGETS += $$(COPY_$1_CMDS_DEBUGINFO_$m)) \
|
$(eval $1_TARGETS += $$(COPY_$1_CMDS_DEBUGINFO_$m)) \
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2012, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2012, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -138,10 +138,7 @@ ifeq ($(HAS_SPEC),)
|
|||||||
# The spec files depend on the autoconf source code. This check makes sure
|
# The spec files depend on the autoconf source code. This check makes sure
|
||||||
# the configuration is up to date after changes to configure.
|
# the configuration is up to date after changes to configure.
|
||||||
$(SPECS): $(wildcard $(topdir)/make/autoconf/*) \
|
$(SPECS): $(wildcard $(topdir)/make/autoconf/*) \
|
||||||
$(if $(CUSTOM_CONFIG_DIR), $(wildcard $(CUSTOM_CONFIG_DIR)/*)) \
|
$(if $(CUSTOM_CONFIG_DIR), $(wildcard $(CUSTOM_CONFIG_DIR)/*))
|
||||||
$(addprefix $(topdir)/make/conf/, version-numbers.conf branding.conf) \
|
|
||||||
$(if $(CUSTOM_CONF_DIR), $(wildcard $(addprefix $(CUSTOM_CONF_DIR)/, \
|
|
||||||
version-numbers.conf branding.conf)))
|
|
||||||
ifeq ($(CONF_CHECK), fail)
|
ifeq ($(CONF_CHECK), fail)
|
||||||
@echo Error: The configuration is not up to date for \
|
@echo Error: The configuration is not up to date for \
|
||||||
"'$(lastword $(subst /, , $(dir $@)))'."
|
"'$(lastword $(subst /, , $(dir $@)))'."
|
||||||
|
|||||||
43
make/Install.gmk
Normal file
43
make/Install.gmk
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2014, 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
|
||||||
|
# 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: install
|
||||||
|
|
||||||
|
include $(SPEC)
|
||||||
|
|
||||||
|
BINARIES := $(notdir $(wildcard $(JDK_IMAGE_DIR)/bin/*))
|
||||||
|
INSTALLDIR := openjdk-$(VERSION_SHORT)
|
||||||
|
|
||||||
|
# Install the jdk image, in a very crude way. Not taking into
|
||||||
|
# account, how to install properly on macosx or windows etc.
|
||||||
|
install:
|
||||||
|
echo Installing jdk image into $(INSTALL_PREFIX)/jvm/$(INSTALLDIR)
|
||||||
|
echo and creating $(words $(BINARIES)) links from $(INSTALL_PREFIX)/bin into the jdk.
|
||||||
|
$(MKDIR) -p $(INSTALL_PREFIX)/jvm/$(INSTALLDIR)
|
||||||
|
$(RM) -r $(INSTALL_PREFIX)/jvm/$(INSTALLDIR)/*
|
||||||
|
$(CP) -rp $(JDK_IMAGE_DIR)/* $(INSTALL_PREFIX)/jvm/$(INSTALLDIR)
|
||||||
|
$(MKDIR) -p $(INSTALL_PREFIX)/bin
|
||||||
|
$(RM) $(addprefix $(INSTALL_PREFIX)/bin/, $(BINARIES))
|
||||||
|
$(foreach b, $(BINARIES), $(LN) -s $(INSTALL_PREFIX)/jvm/$(INSTALLDIR)/bin/$b $(INSTALL_PREFIX)/bin/$b &&) true
|
||||||
93
make/JBRApi.gmk
Normal file
93
make/JBRApi.gmk
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
#
|
||||||
|
# Copyright 2000-2023 JetBrains s.r.o.
|
||||||
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
|
#
|
||||||
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
|
# under the terms of the GNU General Public License version 2 only, as
|
||||||
|
# published by the Free Software Foundation. Oracle designates this
|
||||||
|
# particular file as subject to the "Classpath" exception as provided
|
||||||
|
# by Oracle in the LICENSE file that accompanied this code.
|
||||||
|
#
|
||||||
|
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
# version 2 for more details (a copy is included in the LICENSE file that
|
||||||
|
# accompanied this code).
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License version
|
||||||
|
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||||
|
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
#
|
||||||
|
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||||
|
# or visit www.oracle.com if you need additional information or have any
|
||||||
|
# questions.
|
||||||
|
#
|
||||||
|
|
||||||
|
include $(SPEC)
|
||||||
|
include MakeBase.gmk
|
||||||
|
include JavaCompilation.gmk
|
||||||
|
|
||||||
|
JBR_API_ROOT_DIR := $(TOPDIR)/src/jetbrains.api
|
||||||
|
JBR_API_TOOLS_DIR := $(JBR_API_ROOT_DIR)/tools
|
||||||
|
JBR_API_SRC_DIR := $(JBR_API_ROOT_DIR)/src
|
||||||
|
JBR_API_OUTPUT_DIR := $(OUTPUTDIR)/jbr-api
|
||||||
|
JBR_API_GENSRC_DIR := $(JBR_API_OUTPUT_DIR)/gensrc
|
||||||
|
JBR_API_BIN_DIR := $(JBR_API_OUTPUT_DIR)/bin
|
||||||
|
JBR_API_VERSION_PROPERTIES := $(JBR_API_ROOT_DIR)/version.properties
|
||||||
|
JBR_API_VERSION_GENSRC := $(JBR_API_OUTPUT_DIR)/jbr-api.version
|
||||||
|
JBR_API_GENSRC_BATCH := $(JBR_API_VERSION_GENSRC)
|
||||||
|
|
||||||
|
JBR_API_SRC_FILES := $(call FindFiles, $(JBR_API_SRC_DIR))
|
||||||
|
JBR_API_GENSRC_FILES := $(foreach f, $(call FindFiles, $(JBR_API_SRC_DIR)), \
|
||||||
|
$(JBR_API_GENSRC_DIR)/$(call RelativePath, $f, $(JBR_API_SRC_DIR)))
|
||||||
|
|
||||||
|
ifeq ($(JBR_API_JBR_VERSION),)
|
||||||
|
JBR_API_JBR_VERSION := DEVELOPMENT
|
||||||
|
JBR_API_FAIL_ON_HASH_MISMATCH := false
|
||||||
|
else
|
||||||
|
.PHONY: $(JBR_API_VERSION_PROPERTIES)
|
||||||
|
JBR_API_FAIL_ON_HASH_MISMATCH := true
|
||||||
|
endif
|
||||||
|
|
||||||
|
ARCHIVE_BUILD_JBR_API_BIN := $(JBR_API_BIN_DIR)
|
||||||
|
$(eval $(call SetupJavaCompilation, BUILD_JBR_API, \
|
||||||
|
SMALL_JAVA := true, \
|
||||||
|
COMPILER := bootjdk, \
|
||||||
|
SRC := $(JBR_API_GENSRC_DIR), \
|
||||||
|
EXTRA_FILES := $(JBR_API_GENSRC_FILES), \
|
||||||
|
BIN := $(JBR_API_BIN_DIR), \
|
||||||
|
JAR := $(JBR_API_OUTPUT_DIR)/jbr-api.jar, \
|
||||||
|
))
|
||||||
|
|
||||||
|
$(eval $(call SetupJarArchive, BUILD_JBR_API_SOURCES_JAR, \
|
||||||
|
DEPENDENCIES := $(JBR_API_GENSRC_FILES), \
|
||||||
|
SRCS := $(JBR_API_GENSRC_DIR), \
|
||||||
|
JAR := $(JBR_API_OUTPUT_DIR)/jbr-api-sources.jar, \
|
||||||
|
SUFFIXES := .java, \
|
||||||
|
BIN := $(JBR_API_BIN_DIR), \
|
||||||
|
))
|
||||||
|
|
||||||
|
# Grouped targets may not be supported, so hack dependencies: sources -> version file -> generated sources
|
||||||
|
$(JBR_API_VERSION_GENSRC): $(JBR_API_SRC_FILES) $(JBR_API_VERSION_PROPERTIES) $(JBR_API_TOOLS_DIR)/Gensrc.java
|
||||||
|
$(ECHO) Generating sources for JBR API
|
||||||
|
$(JAVA_CMD) $(JAVA_FLAGS_SMALL) "$(JBR_API_TOOLS_DIR)/Gensrc.java" \
|
||||||
|
"$(TOPDIR)/src" "$(JBR_API_OUTPUT_DIR)" "$(JBR_API_JBR_VERSION)"
|
||||||
|
$(JBR_API_GENSRC_FILES): $(JBR_API_VERSION_GENSRC)
|
||||||
|
$(TOUCH) $@
|
||||||
|
|
||||||
|
jbr-api-check-version: $(JBR_API_GENSRC_FILES) $(JBR_API_VERSION_PROPERTIES)
|
||||||
|
$(JAVA_CMD) $(JAVA_FLAGS_SMALL) "$(JBR_API_TOOLS_DIR)/CheckVersion.java" \
|
||||||
|
"$(JBR_API_ROOT_DIR)" "$(JBR_API_GENSRC_DIR)" "$(JBR_API_FAIL_ON_HASH_MISMATCH)"
|
||||||
|
|
||||||
|
jbr-api: $(BUILD_JBR_API) $(BUILD_JBR_API_SOURCES_JAR) jbr-api-check-version
|
||||||
|
|
||||||
|
.PHONY: jbr-api jbr-api-check-version
|
||||||
|
|
||||||
|
ifneq ($(JBR_API_CONF_FILE),)
|
||||||
|
$(JBR_API_CONF_FILE): $(JBR_API_GENSRC_FILES)
|
||||||
|
$(ECHO) "VERSION=`$(CAT) $(JBR_API_VERSION_GENSRC)`" > $(JBR_API_CONF_FILE)
|
||||||
|
$(ECHO) "JAR=$(JBR_API_OUTPUT_DIR)/jbr-api.jar" >> $(JBR_API_CONF_FILE)
|
||||||
|
$(ECHO) "SOURCES_JAR=$(JBR_API_OUTPUT_DIR)/jbr-api-sources.jar" >> $(JBR_API_CONF_FILE)
|
||||||
|
jbr-api: $(JBR_API_CONF_FILE)
|
||||||
|
.PHONY: $(JBR_API_CONF_FILE)
|
||||||
|
endif
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2014, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2014, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -33,7 +33,7 @@ include TextFileProcessing.gmk
|
|||||||
|
|
||||||
# This rule will be depended on due to the MANIFEST line
|
# This rule will be depended on due to the MANIFEST line
|
||||||
$(eval $(call SetupTextFileProcessing, BUILD_JAVA_MANIFEST, \
|
$(eval $(call SetupTextFileProcessing, BUILD_JAVA_MANIFEST, \
|
||||||
SOURCE_FILES := $(TOPDIR)/make/data/mainmanifest/manifest.mf.template, \
|
SOURCE_FILES := $(TOPDIR)/make/data/mainmanifest/manifest.mf, \
|
||||||
OUTPUT_FILE := $(SUPPORT_OUTPUTDIR)/java-main-manifest.mf, \
|
OUTPUT_FILE := $(SUPPORT_OUTPUTDIR)/java-main-manifest.mf, \
|
||||||
REPLACEMENTS := \
|
REPLACEMENTS := \
|
||||||
@@VERSION_SPECIFICATION@@ => $(VERSION_SPECIFICATION) ; \
|
@@VERSION_SPECIFICATION@@ => $(VERSION_SPECIFICATION) ; \
|
||||||
@@ -46,10 +46,8 @@ JIMAGE_PKGS := \
|
|||||||
jdk/internal/jrtfs \
|
jdk/internal/jrtfs \
|
||||||
#
|
#
|
||||||
|
|
||||||
# Compile jrt-fs.jar with the interim compiler, as it
|
|
||||||
# ends up in the image, this will ensure reproducible classes
|
|
||||||
$(eval $(call SetupJavaCompilation, BUILD_JRTFS, \
|
$(eval $(call SetupJavaCompilation, BUILD_JRTFS, \
|
||||||
COMPILER := interim, \
|
COMPILER := bootjdk, \
|
||||||
DISABLED_WARNINGS := options, \
|
DISABLED_WARNINGS := options, \
|
||||||
TARGET_RELEASE := $(TARGET_RELEASE_JDK8), \
|
TARGET_RELEASE := $(TARGET_RELEASE_JDK8), \
|
||||||
SRC := $(TOPDIR)/src/java.base/share/classes, \
|
SRC := $(TOPDIR)/src/java.base/share/classes, \
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ ifeq ($(call isTargetOs, macosx), true)
|
|||||||
))
|
))
|
||||||
|
|
||||||
$(eval $(call SetupTextFileProcessing, BUILD_JDK_PLIST, \
|
$(eval $(call SetupTextFileProcessing, BUILD_JDK_PLIST, \
|
||||||
SOURCE_FILES := $(MACOSX_PLIST_SRC)/JDK-Info.plist.template, \
|
SOURCE_FILES := $(MACOSX_PLIST_SRC)/JDK-Info.plist, \
|
||||||
OUTPUT_FILE := $(JDK_MACOSX_CONTENTS_DIR)/Info.plist, \
|
OUTPUT_FILE := $(JDK_MACOSX_CONTENTS_DIR)/Info.plist, \
|
||||||
REPLACEMENTS := \
|
REPLACEMENTS := \
|
||||||
@@ID@@ => $(MACOSX_BUNDLE_ID_BASE).jdk ; \
|
@@ID@@ => $(MACOSX_BUNDLE_ID_BASE).jdk ; \
|
||||||
@@ -82,7 +82,7 @@ ifeq ($(call isTargetOs, macosx), true)
|
|||||||
))
|
))
|
||||||
|
|
||||||
$(eval $(call SetupTextFileProcessing, BUILD_JRE_PLIST, \
|
$(eval $(call SetupTextFileProcessing, BUILD_JRE_PLIST, \
|
||||||
SOURCE_FILES := $(MACOSX_PLIST_SRC)/JRE-Info.plist.template, \
|
SOURCE_FILES := $(MACOSX_PLIST_SRC)/JRE-Info.plist, \
|
||||||
OUTPUT_FILE := $(JRE_MACOSX_CONTENTS_DIR)/Info.plist, \
|
OUTPUT_FILE := $(JRE_MACOSX_CONTENTS_DIR)/Info.plist, \
|
||||||
REPLACEMENTS := \
|
REPLACEMENTS := \
|
||||||
@@ID@@ => $(MACOSX_BUNDLE_ID_BASE).jre ; \
|
@@ID@@ => $(MACOSX_BUNDLE_ID_BASE).jre ; \
|
||||||
|
|||||||
176
make/Main.gmk
176
make/Main.gmk
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -233,7 +233,6 @@ ALL_TARGETS += $(LAUNCHER_TARGETS)
|
|||||||
HOTSPOT_VARIANT_TARGETS := $(addprefix hotspot-, $(JVM_VARIANTS))
|
HOTSPOT_VARIANT_TARGETS := $(addprefix hotspot-, $(JVM_VARIANTS))
|
||||||
HOTSPOT_VARIANT_GENSRC_TARGETS := $(addsuffix -gensrc, $(HOTSPOT_VARIANT_TARGETS))
|
HOTSPOT_VARIANT_GENSRC_TARGETS := $(addsuffix -gensrc, $(HOTSPOT_VARIANT_TARGETS))
|
||||||
HOTSPOT_VARIANT_LIBS_TARGETS := $(addsuffix -libs, $(HOTSPOT_VARIANT_TARGETS))
|
HOTSPOT_VARIANT_LIBS_TARGETS := $(addsuffix -libs, $(HOTSPOT_VARIANT_TARGETS))
|
||||||
HOTSPOT_VARIANT_STATIC_LIBS_TARGETS := $(addsuffix -static-libs, $(HOTSPOT_VARIANT_TARGETS))
|
|
||||||
|
|
||||||
define DeclareHotspotGensrcRecipe
|
define DeclareHotspotGensrcRecipe
|
||||||
hotspot-$1-gensrc:
|
hotspot-$1-gensrc:
|
||||||
@@ -252,62 +251,14 @@ endef
|
|||||||
|
|
||||||
$(foreach v, $(JVM_VARIANTS), $(eval $(call DeclareHotspotLibsRecipe,$v)))
|
$(foreach v, $(JVM_VARIANTS), $(eval $(call DeclareHotspotLibsRecipe,$v)))
|
||||||
|
|
||||||
define DeclareHotspotStaticLibsRecipe
|
|
||||||
hotspot-$1-static-libs:
|
|
||||||
+($(CD) $(TOPDIR)/make/hotspot && $(MAKE) $(MAKE_ARGS) -f lib/CompileLibraries.gmk \
|
|
||||||
JVM_VARIANT=$1 STATIC_LIBS=true)
|
|
||||||
endef
|
|
||||||
|
|
||||||
$(foreach v, $(JVM_VARIANTS), $(eval $(call DeclareHotspotStaticLibsRecipe,$v)))
|
|
||||||
|
|
||||||
$(eval $(call SetupTarget, hotspot-ide-project, \
|
$(eval $(call SetupTarget, hotspot-ide-project, \
|
||||||
MAKEFILE := ide/visualstudio/hotspot/CreateVSProject, \
|
MAKEFILE := ide/visualstudio/hotspot/CreateVSProject, \
|
||||||
DEPS := hotspot exploded-image, \
|
DEPS := hotspot exploded-image, \
|
||||||
ARGS := -I$(TOPDIR)/make/hotspot, \
|
ARGS := -I$(TOPDIR)/make/hotspot, \
|
||||||
))
|
))
|
||||||
|
|
||||||
$(eval $(call SetupTarget, eclipse-java-env, \
|
|
||||||
MAKEFILE := ide/eclipse/CreateWorkspace, \
|
|
||||||
ARGS := --always-make WORKSPACE=java SHARED=false, \
|
|
||||||
))
|
|
||||||
|
|
||||||
$(eval $(call SetupTarget, eclipse-hotspot-env, \
|
|
||||||
MAKEFILE := ide/eclipse/CreateWorkspace, \
|
|
||||||
ARGS := --always-make WORKSPACE=hotspot SHARED=false, \
|
|
||||||
))
|
|
||||||
|
|
||||||
$(eval $(call SetupTarget, eclipse-native-env, \
|
|
||||||
MAKEFILE := ide/eclipse/CreateWorkspace, \
|
|
||||||
ARGS := --always-make WORKSPACE=native SHARED=false, \
|
|
||||||
))
|
|
||||||
|
|
||||||
$(eval $(call SetupTarget, eclipse-mixed-env, \
|
|
||||||
MAKEFILE := ide/eclipse/CreateWorkspace, \
|
|
||||||
ARGS := --always-make SHARED=false, \
|
|
||||||
))
|
|
||||||
|
|
||||||
$(eval $(call SetupTarget, eclipse-shared-java-env, \
|
|
||||||
MAKEFILE := ide/eclipse/CreateWorkspace, \
|
|
||||||
ARGS := --always-make WORKSPACE=java SHARED=true, \
|
|
||||||
))
|
|
||||||
|
|
||||||
$(eval $(call SetupTarget, eclipse-shared-hotspot-env, \
|
|
||||||
MAKEFILE := ide/eclipse/CreateWorkspace, \
|
|
||||||
ARGS := --always-make WORKSPACE=hotspot SHARED=true, \
|
|
||||||
))
|
|
||||||
|
|
||||||
$(eval $(call SetupTarget, eclipse-shared-native-env, \
|
|
||||||
MAKEFILE := ide/eclipse/CreateWorkspace, \
|
|
||||||
ARGS := --always-make WORKSPACE=native SHARED=true, \
|
|
||||||
))
|
|
||||||
|
|
||||||
$(eval $(call SetupTarget, eclipse-shared-mixed-env, \
|
|
||||||
MAKEFILE := ide/eclipse/CreateWorkspace, \
|
|
||||||
ARGS := --always-make SHARED=true, \
|
|
||||||
))
|
|
||||||
|
|
||||||
ALL_TARGETS += $(HOTSPOT_VARIANT_TARGETS) $(HOTSPOT_VARIANT_GENSRC_TARGETS) \
|
ALL_TARGETS += $(HOTSPOT_VARIANT_TARGETS) $(HOTSPOT_VARIANT_GENSRC_TARGETS) \
|
||||||
$(HOTSPOT_VARIANT_LIBS_TARGETS) $(HOTSPOT_VARIANT_STATIC_LIBS_TARGETS)
|
$(HOTSPOT_VARIANT_LIBS_TARGETS)
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Help and user support
|
# Help and user support
|
||||||
@@ -405,9 +356,8 @@ JMOD_TARGETS := $(addsuffix -jmod, $(JMOD_MODULES))
|
|||||||
|
|
||||||
define DeclareJmodRecipe
|
define DeclareJmodRecipe
|
||||||
$1-jmod:
|
$1-jmod:
|
||||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) \
|
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CreateJmods.gmk \
|
||||||
$(patsubst %,-I%/modules/$1,$(PHASE_MAKEDIRS)) \
|
MODULE=$1)
|
||||||
-f CreateJmods.gmk MODULE=$1)
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
$(foreach m, $(JMOD_MODULES), $(eval $(call DeclareJmodRecipe,$m)))
|
$(foreach m, $(JMOD_MODULES), $(eval $(call DeclareJmodRecipe,$m)))
|
||||||
@@ -472,12 +422,6 @@ $(eval $(call SetupTarget, symbols-image, \
|
|||||||
|
|
||||||
$(eval $(call SetupTarget, static-libs-image, \
|
$(eval $(call SetupTarget, static-libs-image, \
|
||||||
MAKEFILE := StaticLibsImage, \
|
MAKEFILE := StaticLibsImage, \
|
||||||
TARGET := static-libs-image, \
|
|
||||||
))
|
|
||||||
|
|
||||||
$(eval $(call SetupTarget, static-libs-graal-image, \
|
|
||||||
MAKEFILE := StaticLibsImage, \
|
|
||||||
TARGET := static-libs-graal-image, \
|
|
||||||
))
|
))
|
||||||
|
|
||||||
$(eval $(call SetupTarget, mac-jdk-bundle, \
|
$(eval $(call SetupTarget, mac-jdk-bundle, \
|
||||||
@@ -505,7 +449,7 @@ $(eval $(call SetupTarget, exploded-image-optimize, \
|
|||||||
|
|
||||||
$(eval $(call SetupTarget, graal-builder-image, \
|
$(eval $(call SetupTarget, graal-builder-image, \
|
||||||
MAKEFILE := GraalBuilderImage, \
|
MAKEFILE := GraalBuilderImage, \
|
||||||
DEPS := jdk-image static-libs-graal-image, \
|
DEPS := jdk-image static-libs-image, \
|
||||||
))
|
))
|
||||||
|
|
||||||
ifeq ($(JCOV_ENABLED), true)
|
ifeq ($(JCOV_ENABLED), true)
|
||||||
@@ -608,11 +552,11 @@ endif
|
|||||||
ifeq ($(CREATING_BUILDJDK), true)
|
ifeq ($(CREATING_BUILDJDK), true)
|
||||||
# This target is only called by the recursive call below.
|
# This target is only called by the recursive call below.
|
||||||
create-buildjdk-interim-image-helper: interim-image jdk.jlink-launchers \
|
create-buildjdk-interim-image-helper: interim-image jdk.jlink-launchers \
|
||||||
java.base-copy jdk.jdeps-launchers jdk.compiler-launchers
|
java.base-copy jdk.jdeps-launchers
|
||||||
endif
|
endif
|
||||||
|
|
||||||
BUILDJDK_MODULES := $(sort $(foreach m, jdk.jlink jdk.compiler \
|
BUILDJDK_MODULES := $(sort $(foreach m, jdk.jlink $(INTERIM_IMAGE_MODULES), \
|
||||||
$(INTERIM_IMAGE_MODULES), $(call FindTransitiveDepsForModule, $m) $m))
|
$(call FindTransitiveDepsForModule, $m) $m))
|
||||||
|
|
||||||
$(eval $(call SetupTarget, create-buildjdk-interim-image, \
|
$(eval $(call SetupTarget, create-buildjdk-interim-image, \
|
||||||
MAKEFILE := Main, \
|
MAKEFILE := Main, \
|
||||||
@@ -744,16 +688,9 @@ endif
|
|||||||
|
|
||||||
$(eval $(call SetupTarget, build-test-lib, \
|
$(eval $(call SetupTarget, build-test-lib, \
|
||||||
MAKEFILE := test/BuildTestLib, \
|
MAKEFILE := test/BuildTestLib, \
|
||||||
TARGET := build-test-lib, \
|
|
||||||
DEPS := exploded-image, \
|
DEPS := exploded-image, \
|
||||||
))
|
))
|
||||||
|
|
||||||
$(eval $(call SetupTarget, test-image-lib, \
|
|
||||||
MAKEFILE := test/BuildTestLib, \
|
|
||||||
TARGET := test-image-lib, \
|
|
||||||
DEPS := build-test-lib, \
|
|
||||||
))
|
|
||||||
|
|
||||||
ifeq ($(BUILD_FAILURE_HANDLER), true)
|
ifeq ($(BUILD_FAILURE_HANDLER), true)
|
||||||
# Builds the failure handler jtreg extension
|
# Builds the failure handler jtreg extension
|
||||||
$(eval $(call SetupTarget, build-test-failure-handler, \
|
$(eval $(call SetupTarget, build-test-failure-handler, \
|
||||||
@@ -770,25 +707,9 @@ ifeq ($(BUILD_FAILURE_HANDLER), true)
|
|||||||
))
|
))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(BUILD_JTREG_TEST_THREAD_FACTORY), true)
|
|
||||||
# Builds the test thread factory jtreg extension
|
|
||||||
$(eval $(call SetupTarget, build-test-test-thread-factory, \
|
|
||||||
MAKEFILE := test/BuildJtregTestThreadFactory, \
|
|
||||||
TARGET := build, \
|
|
||||||
DEPS := interim-langtools exploded-image, \
|
|
||||||
))
|
|
||||||
|
|
||||||
# Copies the jtreg test thread factory into the test image
|
|
||||||
$(eval $(call SetupTarget, test-image-test-thread-factory, \
|
|
||||||
MAKEFILE := test/BuildJtregTestThreadFactory, \
|
|
||||||
TARGET := images, \
|
|
||||||
DEPS := build-test-test-thread-factory, \
|
|
||||||
))
|
|
||||||
endif
|
|
||||||
|
|
||||||
$(eval $(call SetupTarget, build-microbenchmark, \
|
$(eval $(call SetupTarget, build-microbenchmark, \
|
||||||
MAKEFILE := test/BuildMicrobenchmark, \
|
MAKEFILE := test/BuildMicrobenchmark, \
|
||||||
DEPS := interim-langtools exploded-image build-test-lib, \
|
DEPS := interim-langtools exploded-image, \
|
||||||
))
|
))
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
@@ -859,12 +780,6 @@ $(eval $(call SetupTarget, static-libs-bundles, \
|
|||||||
DEPS := static-libs-image, \
|
DEPS := static-libs-image, \
|
||||||
))
|
))
|
||||||
|
|
||||||
$(eval $(call SetupTarget, static-libs-graal-bundles, \
|
|
||||||
MAKEFILE := Bundles, \
|
|
||||||
TARGET := static-libs-graal-bundles, \
|
|
||||||
DEPS := static-libs-graal-image, \
|
|
||||||
))
|
|
||||||
|
|
||||||
ifeq ($(JCOV_ENABLED), true)
|
ifeq ($(JCOV_ENABLED), true)
|
||||||
$(eval $(call SetupTarget, jcov-bundles, \
|
$(eval $(call SetupTarget, jcov-bundles, \
|
||||||
MAKEFILE := Bundles, \
|
MAKEFILE := Bundles, \
|
||||||
@@ -873,6 +788,14 @@ ifeq ($(JCOV_ENABLED), true)
|
|||||||
))
|
))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Install targets
|
||||||
|
|
||||||
|
$(eval $(call SetupTarget, install, \
|
||||||
|
MAKEFILE := Install, \
|
||||||
|
DEPS := product-images, \
|
||||||
|
))
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
#
|
#
|
||||||
# Dependency declarations between targets.
|
# Dependency declarations between targets.
|
||||||
@@ -910,7 +833,6 @@ else
|
|||||||
$(foreach v, $(JVM_VARIANTS), \
|
$(foreach v, $(JVM_VARIANTS), \
|
||||||
$(eval hotspot-$v-gensrc: java.base-copy buildtools-hotspot) \
|
$(eval hotspot-$v-gensrc: java.base-copy buildtools-hotspot) \
|
||||||
$(eval hotspot-$v-libs: hotspot-$v-gensrc java.base-copy) \
|
$(eval hotspot-$v-libs: hotspot-$v-gensrc java.base-copy) \
|
||||||
$(eval hotspot-$v-static-libs: hotspot-$v-gensrc java.base-copy) \
|
|
||||||
)
|
)
|
||||||
|
|
||||||
# If not already set, set the JVM variant target so that the JVM will be built.
|
# If not already set, set the JVM variant target so that the JVM will be built.
|
||||||
@@ -969,40 +891,15 @@ else
|
|||||||
|
|
||||||
jdk.jdeps-gendata: java
|
jdk.jdeps-gendata: java
|
||||||
|
|
||||||
# jdk.compiler gendata generates ct.sym, which requires all generated
|
# The ct.sym generation uses all the moduleinfos as input
|
||||||
# java source and compiled classes present.
|
jdk.compiler-gendata: $(GENSRC_MODULEINFO_TARGETS)
|
||||||
jdk.compiler-gendata: $(JAVA_TARGETS)
|
|
||||||
|
|
||||||
# jdk.javadoc gendata generates element-list, which requires all java sources
|
|
||||||
# but not compiled classes.
|
|
||||||
jdk.javadoc-gendata: $(GENSRC_TARGETS)
|
|
||||||
|
|
||||||
# ct.sym and element-list generation also needs the BUILD_JDK. If the
|
|
||||||
# BUILD_JDK was supplied externally, no extra prerequisites are needed.
|
|
||||||
ifeq ($(CREATE_BUILDJDK), true)
|
|
||||||
ifneq ($(CREATING_BUILDJDK), true)
|
|
||||||
# When cross compiling and an external BUILD_JDK wasn't supplied, it's
|
|
||||||
# produced by the create-buildjdk target.
|
|
||||||
jdk.compiler-gendata: create-buildjdk
|
|
||||||
jdk.javadoc-gendata: create-buildjdk
|
|
||||||
endif
|
|
||||||
else ifeq ($(EXTERNAL_BUILDJDK), false)
|
|
||||||
# When not cross compiling, the BUILD_JDK is the interim jdk image, and
|
|
||||||
# the javac launcher is needed.
|
|
||||||
jdk.compiler-gendata: jdk.compiler-launchers
|
|
||||||
jdk.javadoc-gendata: jdk.compiler-launchers
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Declare dependencies between jmod targets.
|
# Declare dependencies between jmod targets.
|
||||||
# java.base jmod needs jrt-fs.jar and access to the jmods for all non
|
# java.base jmod needs jrt-fs.jar and access to the other jmods to be built.
|
||||||
# upgradeable modules and their transitive dependencies.
|
|
||||||
# When creating the BUILDJDK, we don't need to add hashes to java.base, thus
|
# When creating the BUILDJDK, we don't need to add hashes to java.base, thus
|
||||||
# we don't need to depend on all other jmods
|
# we don't need to depend on all other jmods
|
||||||
ifneq ($(CREATING_BUILDJDK), true)
|
ifneq ($(CREATING_BUILDJDK), true)
|
||||||
java.base-jmod: jrtfs-jar $(addsuffix -jmod, $(filter-out java.base, $(sort \
|
java.base-jmod: jrtfs-jar $(filter-out java.base-jmod, $(JMOD_TARGETS))
|
||||||
$(foreach m, $(filter-out $(call FindAllUpgradeableModules), $(JMOD_MODULES)), \
|
|
||||||
$m $(call FindTransitiveDepsForModules, $m) \
|
|
||||||
))))
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# If not already set, set the JVM target so that the JVM will be built.
|
# If not already set, set the JVM target so that the JVM will be built.
|
||||||
@@ -1074,9 +971,6 @@ else
|
|||||||
# All modules include the main license files from java.base.
|
# All modules include the main license files from java.base.
|
||||||
$(JMOD_TARGETS): java.base-copy
|
$(JMOD_TARGETS): java.base-copy
|
||||||
|
|
||||||
# jdk.javadoc uses an internal copy of the main license files from java.base.
|
|
||||||
jdk.javadoc-copy: java.base-copy
|
|
||||||
|
|
||||||
zip-security: $(filter jdk.crypto%, $(JAVA_TARGETS))
|
zip-security: $(filter jdk.crypto%, $(JAVA_TARGETS))
|
||||||
|
|
||||||
ifeq ($(ENABLE_GENERATE_CLASSLIST), true)
|
ifeq ($(ENABLE_GENERATE_CLASSLIST), true)
|
||||||
@@ -1097,9 +991,7 @@ else
|
|||||||
|
|
||||||
symbols-image: $(LIBS_TARGETS) $(LAUNCHER_TARGETS)
|
symbols-image: $(LIBS_TARGETS) $(LAUNCHER_TARGETS)
|
||||||
|
|
||||||
static-libs-image: hotspot-static-libs $(STATIC_LIBS_TARGETS)
|
static-libs-image: $(STATIC_LIBS_TARGETS)
|
||||||
|
|
||||||
static-libs-graal-image: $(STATIC_LIBS_TARGETS)
|
|
||||||
|
|
||||||
bootcycle-images: jdk-image
|
bootcycle-images: jdk-image
|
||||||
|
|
||||||
@@ -1149,7 +1041,6 @@ hotspot: $(HOTSPOT_VARIANT_TARGETS)
|
|||||||
$(foreach v, $(JVM_VARIANTS), \
|
$(foreach v, $(JVM_VARIANTS), \
|
||||||
$(eval hotspot-libs: hotspot-$v-libs) \
|
$(eval hotspot-libs: hotspot-$v-libs) \
|
||||||
$(eval hotspot-gensrc: hotspot-$v-gensrc) \
|
$(eval hotspot-gensrc: hotspot-$v-gensrc) \
|
||||||
$(eval hotspot-static-libs: hotspot-$v-static-libs) \
|
|
||||||
)
|
)
|
||||||
|
|
||||||
gensrc: $(GENSRC_TARGETS)
|
gensrc: $(GENSRC_TARGETS)
|
||||||
@@ -1279,7 +1170,7 @@ all-docs-bundles: docs-jdk-bundles docs-javase-bundles docs-reference-bundles
|
|||||||
# This target builds the test image
|
# This target builds the test image
|
||||||
test-image: prepare-test-image test-image-jdk-jtreg-native \
|
test-image: prepare-test-image test-image-jdk-jtreg-native \
|
||||||
test-image-demos-jdk test-image-libtest-jtreg-native \
|
test-image-demos-jdk test-image-libtest-jtreg-native \
|
||||||
test-image-lib test-image-lib-native
|
test-image-lib-native
|
||||||
|
|
||||||
ifneq ($(JVM_TEST_IMAGE_TARGETS), )
|
ifneq ($(JVM_TEST_IMAGE_TARGETS), )
|
||||||
# If JVM_TEST_IMAGE_TARGETS is externally defined, use it instead of the
|
# If JVM_TEST_IMAGE_TARGETS is externally defined, use it instead of the
|
||||||
@@ -1296,10 +1187,6 @@ ifeq ($(BUILD_FAILURE_HANDLER), true)
|
|||||||
test-image: test-image-failure-handler
|
test-image: test-image-failure-handler
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(BUILD_JTREG_TEST_THREAD_FACTORY), true)
|
|
||||||
test-image: test-image-test-thread-factory
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifneq ($(JMH_CORE_JAR), )
|
ifneq ($(JMH_CORE_JAR), )
|
||||||
test-image: build-microbenchmark
|
test-image: build-microbenchmark
|
||||||
endif
|
endif
|
||||||
@@ -1312,8 +1199,7 @@ all-images: product-images test-image all-docs-images
|
|||||||
# all-bundles packages all our deliverables as tar.gz bundles.
|
# all-bundles packages all our deliverables as tar.gz bundles.
|
||||||
all-bundles: product-bundles test-bundles docs-bundles static-libs-bundles
|
all-bundles: product-bundles test-bundles docs-bundles static-libs-bundles
|
||||||
|
|
||||||
ALL_TARGETS += buildtools hotspot hotspot-libs hotspot-static-libs \
|
ALL_TARGETS += buildtools hotspot hotspot-libs hotspot-gensrc gensrc gendata \
|
||||||
hotspot-gensrc gensrc gendata \
|
|
||||||
copy java libs static-libs launchers jmods \
|
copy java libs static-libs launchers jmods \
|
||||||
jdk.jdwp.agent-gensrc $(ALL_MODULES) demos \
|
jdk.jdwp.agent-gensrc $(ALL_MODULES) demos \
|
||||||
exploded-image-base exploded-image runnable-buildjdk \
|
exploded-image-base exploded-image runnable-buildjdk \
|
||||||
@@ -1455,19 +1341,27 @@ ALL_TARGETS += $(addsuffix -only, $(filter-out dist-clean clean%, $(ALL_TARGETS)
|
|||||||
# are internal only, to support Init.gmk.
|
# are internal only, to support Init.gmk.
|
||||||
|
|
||||||
print-targets:
|
print-targets:
|
||||||
$(info $(subst $(SPACE),$(NEWLINE),$(sort $(ALL_TARGETS))))
|
@$(ECHO) $(sort $(ALL_TARGETS))
|
||||||
|
|
||||||
print-modules:
|
print-modules:
|
||||||
$(info $(subst $(SPACE),$(NEWLINE),$(sort $(ALL_MODULES))))
|
@$(ECHO) $(sort $(ALL_MODULES))
|
||||||
|
|
||||||
print-tests:
|
print-tests:
|
||||||
$(info $(subst $(SPACE),$(NEWLINE),$(sort $(ALL_NAMED_TESTS))))
|
@$(ECHO) $(sort $(ALL_NAMED_TESTS))
|
||||||
|
|
||||||
create-main-targets-include:
|
create-main-targets-include:
|
||||||
$(call LogInfo, Generating main target list)
|
$(call LogInfo, Generating main target list)
|
||||||
@$(ECHO) ALL_MAIN_TARGETS := $(sort $(ALL_TARGETS)) > \
|
@$(ECHO) ALL_MAIN_TARGETS := $(sort $(ALL_TARGETS)) > \
|
||||||
$(MAKESUPPORT_OUTPUTDIR)/main-targets.gmk
|
$(MAKESUPPORT_OUTPUTDIR)/main-targets.gmk
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# JBR API
|
||||||
|
|
||||||
|
$(eval $(call SetupTarget, jbr-api, \
|
||||||
|
MAKEFILE := JBRApi, \
|
||||||
|
TARGET := jbr-api \
|
||||||
|
))
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Hook to include the corresponding custom file, if present.
|
# Hook to include the corresponding custom file, if present.
|
||||||
$(eval $(call IncludeCustomExtension, Main-post.gmk))
|
$(eval $(call IncludeCustomExtension, Main-post.gmk))
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -38,16 +38,11 @@ _MAINSUPPORT_GMK := 1
|
|||||||
# TARGET the makefile target
|
# TARGET the makefile target
|
||||||
# ARGS arguments to the makefile
|
# ARGS arguments to the makefile
|
||||||
# DEPS the target(s) this new rule depends on
|
# DEPS the target(s) this new rule depends on
|
||||||
# DIR the directory of the makefile (defaults to $(TOPDIR)/make)
|
|
||||||
#
|
#
|
||||||
SetupTarget = $(NamedParamsMacroTemplate)
|
SetupTarget = $(NamedParamsMacroTemplate)
|
||||||
define SetupTargetBody
|
define SetupTargetBody
|
||||||
ifeq ($$($1_DIR), )
|
|
||||||
$1_DIR := $(TOPDIR)/make
|
|
||||||
endif
|
|
||||||
|
|
||||||
$1:
|
$1:
|
||||||
+($(CD) $$($1_DIR) && $(MAKE) $(MAKE_ARGS) -f $$($1_MAKEFILE).gmk $$($1_TARGET) $$($1_ARGS))
|
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f $$($1_MAKEFILE).gmk $$($1_TARGET) $$($1_ARGS))
|
||||||
|
|
||||||
ALL_TARGETS += $1
|
ALL_TARGETS += $1
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2016, 2023, 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.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
|
|||||||
@@ -93,9 +93,6 @@ endif
|
|||||||
JTREG_FAILURE_HANDLER_DIR := $(TEST_IMAGE_DIR)/failure_handler
|
JTREG_FAILURE_HANDLER_DIR := $(TEST_IMAGE_DIR)/failure_handler
|
||||||
JTREG_FAILURE_HANDLER := $(JTREG_FAILURE_HANDLER_DIR)/jtregFailureHandler.jar
|
JTREG_FAILURE_HANDLER := $(JTREG_FAILURE_HANDLER_DIR)/jtregFailureHandler.jar
|
||||||
|
|
||||||
JTREG_TEST_THREAD_FACTORY_DIR := $(TEST_IMAGE_DIR)/jtreg_test_thread_factory
|
|
||||||
JTREG_TEST_THREAD_FACTORY_JAR := $(JTREG_TEST_THREAD_FACTORY_DIR)/jtregTestThreadFactory.jar
|
|
||||||
|
|
||||||
JTREG_FAILURE_HANDLER_TIMEOUT ?= 0
|
JTREG_FAILURE_HANDLER_TIMEOUT ?= 0
|
||||||
|
|
||||||
ifneq ($(wildcard $(JTREG_FAILURE_HANDLER)), )
|
ifneq ($(wildcard $(JTREG_FAILURE_HANDLER)), )
|
||||||
@@ -178,8 +175,7 @@ ifeq ($(TEST_JOBS), 0)
|
|||||||
c = c * $(TEST_JOBS_FACTOR_JDL); \
|
c = c * $(TEST_JOBS_FACTOR_JDL); \
|
||||||
c = c * $(TEST_JOBS_FACTOR_MACHINE); \
|
c = c * $(TEST_JOBS_FACTOR_MACHINE); \
|
||||||
if (c < 1) c = 1; \
|
if (c < 1) c = 1; \
|
||||||
c = c + 0.5; \
|
printf "%.0f", c; \
|
||||||
printf "%d", c; \
|
|
||||||
}')
|
}')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -204,7 +200,7 @@ $(eval $(call SetTestOpt,REPORT,JTREG))
|
|||||||
|
|
||||||
$(eval $(call ParseKeywordVariable, JTREG, \
|
$(eval $(call ParseKeywordVariable, JTREG, \
|
||||||
SINGLE_KEYWORDS := JOBS TIMEOUT_FACTOR FAILURE_HANDLER_TIMEOUT \
|
SINGLE_KEYWORDS := JOBS TIMEOUT_FACTOR FAILURE_HANDLER_TIMEOUT \
|
||||||
TEST_MODE ASSERT VERBOSE RETAIN TEST_THREAD_FACTORY MAX_MEM RUN_PROBLEM_LISTS \
|
TEST_MODE ASSERT VERBOSE RETAIN MAX_MEM RUN_PROBLEM_LISTS \
|
||||||
RETRY_COUNT REPEAT_COUNT MAX_OUTPUT REPORT $(CUSTOM_JTREG_SINGLE_KEYWORDS), \
|
RETRY_COUNT REPEAT_COUNT MAX_OUTPUT REPORT $(CUSTOM_JTREG_SINGLE_KEYWORDS), \
|
||||||
STRING_KEYWORDS := OPTIONS JAVA_OPTIONS VM_OPTIONS KEYWORDS \
|
STRING_KEYWORDS := OPTIONS JAVA_OPTIONS VM_OPTIONS KEYWORDS \
|
||||||
EXTRA_PROBLEM_LISTS LAUNCHER_OPTIONS \
|
EXTRA_PROBLEM_LISTS LAUNCHER_OPTIONS \
|
||||||
@@ -357,7 +353,7 @@ ExpandJtregPath = \
|
|||||||
# with test id: dir/Test.java#selection -> Test.java#selection -> .java#selection -> #selection
|
# with test id: dir/Test.java#selection -> Test.java#selection -> .java#selection -> #selection
|
||||||
# without: dir/Test.java -> Test.java -> .java -> <<empty string>>
|
# without: dir/Test.java -> Test.java -> .java -> <<empty string>>
|
||||||
TestID = \
|
TestID = \
|
||||||
$(subst .jasm,,$(subst .sh,,$(subst .html,,$(subst .java,,$(suffix $(notdir $1))))))
|
$(subst .sh,,$(subst .html,,$(subst .java,,$(suffix $(notdir $1)))))
|
||||||
|
|
||||||
# The test id starting with a hash (#testid) will be stripped by all
|
# The test id starting with a hash (#testid) will be stripped by all
|
||||||
# evals in ParseJtregTestSelectionInner and will be reinserted by calling
|
# evals in ParseJtregTestSelectionInner and will be reinserted by calling
|
||||||
@@ -620,16 +616,11 @@ define SetupRunMicroTestBody
|
|||||||
$1_MICRO_WARMUP_TIME := -w $$(MICRO_WARMUP_TIME)
|
$1_MICRO_WARMUP_TIME := -w $$(MICRO_WARMUP_TIME)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Microbenchmarks are executed from the root of the test image directory.
|
|
||||||
# This enables JMH tests to add dependencies using relative paths such as
|
|
||||||
# -Djava.library.path=micro/native
|
|
||||||
|
|
||||||
run-test-$1: pre-run-test
|
run-test-$1: pre-run-test
|
||||||
$$(call LogWarn)
|
$$(call LogWarn)
|
||||||
$$(call LogWarn, Running test '$$($1_TEST)')
|
$$(call LogWarn, Running test '$$($1_TEST)')
|
||||||
$$(call MakeDir, $$($1_TEST_RESULTS_DIR) $$($1_TEST_SUPPORT_DIR))
|
$$(call MakeDir, $$($1_TEST_RESULTS_DIR) $$($1_TEST_SUPPORT_DIR))
|
||||||
$$(call ExecuteWithLog, $$($1_TEST_SUPPORT_DIR)/micro, ( \
|
$$(call ExecuteWithLog, $$($1_TEST_SUPPORT_DIR)/micro, ( \
|
||||||
$$(CD) $$(TEST_IMAGE_DIR) && \
|
|
||||||
$$(FIXPATH) $$($1_MICRO_TEST_JDK)/bin/java $$($1_MICRO_JAVA_OPTIONS) \
|
$$(FIXPATH) $$($1_MICRO_TEST_JDK)/bin/java $$($1_MICRO_JAVA_OPTIONS) \
|
||||||
-jar $$($1_MICRO_BENCHMARKS_JAR) \
|
-jar $$($1_MICRO_BENCHMARKS_JAR) \
|
||||||
$$($1_MICRO_ITER) $$($1_MICRO_FORK) $$($1_MICRO_TIME) \
|
$$($1_MICRO_ITER) $$($1_MICRO_FORK) $$($1_MICRO_TIME) \
|
||||||
@@ -752,7 +743,6 @@ define SetupRunJtregTestBody
|
|||||||
|
|
||||||
JTREG_VERBOSE ?= fail,error,summary
|
JTREG_VERBOSE ?= fail,error,summary
|
||||||
JTREG_RETAIN ?= fail,error
|
JTREG_RETAIN ?= fail,error
|
||||||
JTREG_TEST_THREAD_FACTORY ?=
|
|
||||||
JTREG_RUN_PROBLEM_LISTS ?= false
|
JTREG_RUN_PROBLEM_LISTS ?= false
|
||||||
JTREG_RETRY_COUNT ?= 0
|
JTREG_RETRY_COUNT ?= 0
|
||||||
JTREG_REPEAT_COUNT ?= 0
|
JTREG_REPEAT_COUNT ?= 0
|
||||||
@@ -766,14 +756,6 @@ define SetupRunJtregTestBody
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifneq ($$(JTREG_TEST_THREAD_FACTORY), )
|
|
||||||
$1_JTREG_BASIC_OPTIONS += -testThreadFactoryPath:$$(JTREG_TEST_THREAD_FACTORY_JAR)
|
|
||||||
$1_JTREG_BASIC_OPTIONS += -testThreadFactory:$$(JTREG_TEST_THREAD_FACTORY)
|
|
||||||
$1_JTREG_BASIC_OPTIONS += $$(addprefix $$(JTREG_PROBLEM_LIST_PREFIX), $$(wildcard \
|
|
||||||
$$(addprefix $$($1_TEST_ROOT)/, ProblemList-$$(JTREG_TEST_THREAD_FACTORY).txt) \
|
|
||||||
))
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifneq ($$(JTREG_LAUNCHER_OPTIONS), )
|
ifneq ($$(JTREG_LAUNCHER_OPTIONS), )
|
||||||
$1_JTREG_LAUNCHER_OPTIONS += $$(JTREG_LAUNCHER_OPTIONS)
|
$1_JTREG_LAUNCHER_OPTIONS += $$(JTREG_LAUNCHER_OPTIONS)
|
||||||
endif
|
endif
|
||||||
@@ -806,10 +788,8 @@ define SetupRunJtregTestBody
|
|||||||
$1_JTREG_BASIC_OPTIONS += -e:JIB_DATA_DIR
|
$1_JTREG_BASIC_OPTIONS += -e:JIB_DATA_DIR
|
||||||
# If running on Windows, propagate the _NT_SYMBOL_PATH to enable
|
# If running on Windows, propagate the _NT_SYMBOL_PATH to enable
|
||||||
# symbol lookup in hserr files
|
# symbol lookup in hserr files
|
||||||
# The minidumps are disabled by default on client Windows, so enable them
|
|
||||||
ifeq ($$(call isTargetOs, windows), true)
|
ifeq ($$(call isTargetOs, windows), true)
|
||||||
$1_JTREG_BASIC_OPTIONS += -e:_NT_SYMBOL_PATH
|
$1_JTREG_BASIC_OPTIONS += -e:_NT_SYMBOL_PATH
|
||||||
$1_JTREG_BASIC_OPTIONS += -vmoption:-XX:+CreateCoredumpOnCrash
|
|
||||||
else ifeq ($$(call isTargetOs, linux), true)
|
else ifeq ($$(call isTargetOs, linux), true)
|
||||||
$1_JTREG_BASIC_OPTIONS += -e:_JVM_DWARF_PATH=$$(SYMBOLS_IMAGE_DIR)
|
$1_JTREG_BASIC_OPTIONS += -e:_JVM_DWARF_PATH=$$(SYMBOLS_IMAGE_DIR)
|
||||||
endif
|
endif
|
||||||
@@ -868,12 +848,11 @@ define SetupRunJtregTestBody
|
|||||||
|
|
||||||
$$(eval $$(call SetupRunJtregTestCustom, $1))
|
$$(eval $$(call SetupRunJtregTestCustom, $1))
|
||||||
|
|
||||||
clean-outputdirs-$1:
|
clean-workdir-$1:
|
||||||
$$(RM) -r $$($1_TEST_SUPPORT_DIR)
|
$$(RM) -r $$($1_TEST_SUPPORT_DIR)
|
||||||
$$(RM) -r $$($1_TEST_RESULTS_DIR)
|
|
||||||
|
|
||||||
$1_COMMAND_LINE := \
|
$1_COMMAND_LINE := \
|
||||||
$$(JTREG_JAVA) $$($1_JTREG_LAUNCHER_OPTIONS) \
|
$$(JAVA) $$($1_JTREG_LAUNCHER_OPTIONS) \
|
||||||
-Dprogram=jtreg -jar $$(JT_HOME)/lib/jtreg.jar \
|
-Dprogram=jtreg -jar $$(JT_HOME)/lib/jtreg.jar \
|
||||||
$$($1_JTREG_BASIC_OPTIONS) \
|
$$($1_JTREG_BASIC_OPTIONS) \
|
||||||
-testjdk:$$(JDK_UNDER_TEST) \
|
-testjdk:$$(JDK_UNDER_TEST) \
|
||||||
@@ -916,7 +895,7 @@ define SetupRunJtregTestBody
|
|||||||
done
|
done
|
||||||
endif
|
endif
|
||||||
|
|
||||||
run-test-$1: pre-run-test clean-outputdirs-$1
|
run-test-$1: pre-run-test clean-workdir-$1
|
||||||
$$(call LogWarn)
|
$$(call LogWarn)
|
||||||
$$(call LogWarn, Running test '$$($1_TEST)')
|
$$(call LogWarn, Running test '$$($1_TEST)')
|
||||||
$$(call MakeDir, $$($1_TEST_RESULTS_DIR) $$($1_TEST_SUPPORT_DIR) \
|
$$(call MakeDir, $$($1_TEST_RESULTS_DIR) $$($1_TEST_SUPPORT_DIR) \
|
||||||
@@ -953,9 +932,9 @@ define SetupRunJtregTestBody
|
|||||||
$$(eval $1_TOTAL := 1) \
|
$$(eval $1_TOTAL := 1) \
|
||||||
)
|
)
|
||||||
|
|
||||||
$1: run-test-$1 parse-test-$1 clean-outputdirs-$1
|
$1: run-test-$1 parse-test-$1 clean-workdir-$1
|
||||||
|
|
||||||
TARGETS += $1 run-test-$1 parse-test-$1 clean-outputdirs-$1
|
TARGETS += $1 run-test-$1 parse-test-$1 clean-workdir-$1
|
||||||
TEST_TARGETS += parse-test-$1
|
TEST_TARGETS += parse-test-$1
|
||||||
|
|
||||||
endef
|
endef
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2017, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -122,7 +122,6 @@ $(eval $(call SetupVariable,JT_HOME))
|
|||||||
$(eval $(call SetupVariable,JDK_IMAGE_DIR,$(OUTPUTDIR)/images/jdk))
|
$(eval $(call SetupVariable,JDK_IMAGE_DIR,$(OUTPUTDIR)/images/jdk))
|
||||||
$(eval $(call SetupVariable,TEST_IMAGE_DIR,$(OUTPUTDIR)/images/test))
|
$(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,NO_CHECK))
|
||||||
$(eval $(call SetupVariable,JTREG_JDK,$(BOOT_JDK)))
|
|
||||||
|
|
||||||
# Provide default values for tools that we need
|
# Provide default values for tools that we need
|
||||||
$(eval $(call SetupVariable,MAKE,make,NO_CHECK))
|
$(eval $(call SetupVariable,MAKE,make,NO_CHECK))
|
||||||
@@ -158,10 +157,6 @@ ifeq ($(UNAME_OS), CYGWIN)
|
|||||||
OPENJDK_TARGET_OS := windows
|
OPENJDK_TARGET_OS := windows
|
||||||
OPENJDK_TARGET_OS_TYPE := windows
|
OPENJDK_TARGET_OS_TYPE := windows
|
||||||
OPENJDK_TARGET_OS_ENV := windows.cygwin
|
OPENJDK_TARGET_OS_ENV := windows.cygwin
|
||||||
else ifeq ($(UNAME_OS), MINGW64)
|
|
||||||
OPENJDK_TARGET_OS := windows
|
|
||||||
OPENJDK_TARGET_OS_TYPE := windows
|
|
||||||
OPENJDK_TARGET_OS_ENV := windows.msys2
|
|
||||||
else
|
else
|
||||||
OPENJDK_TARGET_OS_TYPE:=unix
|
OPENJDK_TARGET_OS_TYPE:=unix
|
||||||
ifeq ($(UNAME_OS), Linux)
|
ifeq ($(UNAME_OS), Linux)
|
||||||
@@ -174,9 +169,6 @@ else
|
|||||||
OPENJDK_TARGET_OS_ENV := $(OPENJDK_TARGET_OS)
|
OPENJDK_TARGET_OS_ENV := $(OPENJDK_TARGET_OS)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Sanity check env detection
|
|
||||||
$(info Detected target OS, type and env: [$(OPENJDK_TARGET_OS)] [$(OPENJDK_TARGET_OS_TYPE)] [$(OPENJDK_TARGET_OS_ENV)])
|
|
||||||
|
|
||||||
# Assume little endian unless otherwise specified
|
# Assume little endian unless otherwise specified
|
||||||
OPENJDK_TARGET_CPU_ENDIAN := little
|
OPENJDK_TARGET_CPU_ENDIAN := little
|
||||||
|
|
||||||
@@ -256,7 +248,6 @@ $(call CreateNewSpec, $(NEW_SPEC), \
|
|||||||
TOPDIR := $(TOPDIR), \
|
TOPDIR := $(TOPDIR), \
|
||||||
OUTPUTDIR := $(OUTPUTDIR), \
|
OUTPUTDIR := $(OUTPUTDIR), \
|
||||||
BOOT_JDK := $(BOOT_JDK), \
|
BOOT_JDK := $(BOOT_JDK), \
|
||||||
JTREG_JDK := $(JTREG_JDK), \
|
|
||||||
JT_HOME := $(JT_HOME), \
|
JT_HOME := $(JT_HOME), \
|
||||||
JDK_IMAGE_DIR := $(JDK_IMAGE_DIR), \
|
JDK_IMAGE_DIR := $(JDK_IMAGE_DIR), \
|
||||||
JCOV_IMAGE_DIR := $(JCOV_IMAGE_DIR), \
|
JCOV_IMAGE_DIR := $(JCOV_IMAGE_DIR), \
|
||||||
@@ -304,11 +295,6 @@ test-prebuilt:
|
|||||||
@cd $(TOPDIR) && $(MAKE) $(MAKE_ARGS) -f make/RunTests.gmk run-test \
|
@cd $(TOPDIR) && $(MAKE) $(MAKE_ARGS) -f make/RunTests.gmk run-test \
|
||||||
TEST="$(TEST)"
|
TEST="$(TEST)"
|
||||||
|
|
||||||
test-prebuilt-with-exit-code: test-prebuilt
|
|
||||||
@if test -f $(MAKESUPPORT_OUTPUTDIR)/exit-with-error ; then \
|
|
||||||
exit 1 ; \
|
|
||||||
fi
|
|
||||||
|
|
||||||
all: test-prebuilt
|
all: test-prebuilt
|
||||||
|
|
||||||
.PHONY: default all test-prebuilt
|
.PHONY: default all test-prebuilt
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2017, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -124,8 +124,6 @@ JAR := $(FIXPATH) $(JAR_CMD)
|
|||||||
JLINK := $(FIXPATH) $(JLINK_CMD)
|
JLINK := $(FIXPATH) $(JLINK_CMD)
|
||||||
JMOD := $(FIXPATH) $(JMOD_CMD)
|
JMOD := $(FIXPATH) $(JMOD_CMD)
|
||||||
|
|
||||||
JTREG_JAVA := $(FIXPATH) $(JTREG_JDK)/bin/java $(JAVA_FLAGS_BIG) $(JAVA_FLAGS)
|
|
||||||
|
|
||||||
BUILD_JAVA := $(JDK_IMAGE_DIR)/bin/JAVA
|
BUILD_JAVA := $(JDK_IMAGE_DIR)/bin/JAVA
|
||||||
################################################################################
|
################################################################################
|
||||||
# Some common tools. Assume most common name and no path.
|
# Some common tools. Assume most common name and no path.
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2019, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -38,43 +38,19 @@ ALL_MODULES = $(call FindAllModules)
|
|||||||
|
|
||||||
TARGETS :=
|
TARGETS :=
|
||||||
|
|
||||||
ifneq ($(filter static-libs-image, $(MAKECMDGOALS)), )
|
|
||||||
IMAGE_DEST_DIR=$(STATIC_LIBS_IMAGE_DIR)/lib
|
|
||||||
else ifneq ($(filter static-libs-graal-image, $(MAKECMDGOALS)), )
|
|
||||||
IMAGE_DEST_DIR=$(STATIC_LIBS_GRAAL_IMAGE_DIR)/lib
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Copy JDK static libs to the image.
|
|
||||||
$(foreach m, $(ALL_MODULES), \
|
$(foreach m, $(ALL_MODULES), \
|
||||||
$(eval $(call SetupCopyFiles, COPY_STATIC_LIBS_$m, \
|
$(eval $(call SetupCopyFiles, COPY_STATIC_LIBS_$m, \
|
||||||
FLATTEN := true, \
|
FLATTEN := true, \
|
||||||
SRC := $(SUPPORT_OUTPUTDIR)/native/$m, \
|
SRC := $(SUPPORT_OUTPUTDIR)/native/$m, \
|
||||||
DEST := $(IMAGE_DEST_DIR), \
|
DEST := $(STATIC_LIBS_IMAGE_DIR)/lib, \
|
||||||
FILES := $(filter %$(STATIC_LIBRARY_SUFFIX), \
|
FILES := $(filter %$(STATIC_LIBRARY_SUFFIX), \
|
||||||
$(call FindFiles, $(SUPPORT_OUTPUTDIR)/native/$m/*/static)), \
|
$(call FindFiles, $(SUPPORT_OUTPUTDIR)/native/$m/*/static)), \
|
||||||
)) \
|
)) \
|
||||||
$(eval TARGETS += $$(COPY_STATIC_LIBS_$m)) \
|
$(eval TARGETS += $$(COPY_STATIC_LIBS_$m)) \
|
||||||
$(eval STATIC_LIBS_TARGETS += $$(COPY_STATIC_LIBS_$m)) \
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ifneq ($(filter static-libs-image, $(MAKECMDGOALS)), )
|
|
||||||
# Copy libjvm static library to the image.
|
|
||||||
$(foreach v, $(JVM_VARIANTS), \
|
|
||||||
$(eval $(call SetupCopyFiles, COPY_STATIC_LIBS_$v, \
|
|
||||||
SRC := $(HOTSPOT_OUTPUTDIR)/variant-$v/libjvm/objs/static, \
|
|
||||||
DEST := $(IMAGE_DEST_DIR)/$v, \
|
|
||||||
FILES := $(wildcard $(HOTSPOT_OUTPUTDIR)/variant-$v/libjvm/objs/static/*$(STATIC_LIBRARY_SUFFIX)), \
|
|
||||||
)) \
|
|
||||||
$(eval TARGETS += $$(COPY_STATIC_LIBS_$v)) \
|
|
||||||
$(eval HOTSPOT_VARIANT_STATIC_LIBS_TARGETS += $$(COPY_STATIC_LIBS_$v)) \
|
|
||||||
)
|
|
||||||
endif
|
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
static-libs-image: $(HOTSPOT_VARIANT_STATIC_LIBS_TARGETS) $(STATIC_LIBS_TARGETS)
|
|
||||||
static-libs-graal-image: $(STATIC_LIBS_TARGETS)
|
|
||||||
|
|
||||||
all: $(TARGETS)
|
all: $(TARGETS)
|
||||||
|
|
||||||
.PHONY: all
|
.PHONY: all
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -76,8 +76,8 @@ TOOL_GENERATECACERTS = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_class
|
|||||||
-Dkeystore.pkcs12.macAlgorithm=NONE \
|
-Dkeystore.pkcs12.macAlgorithm=NONE \
|
||||||
build.tools.generatecacerts.GenerateCacerts
|
build.tools.generatecacerts.GenerateCacerts
|
||||||
|
|
||||||
TOOL_GENERATEEXTRAPROPERTIES = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \
|
TOOL_GENERATEEMOJIDATA = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \
|
||||||
build.tools.generateextraproperties.GenerateExtraProperties
|
build.tools.generateemojidata.GenerateEmojiData
|
||||||
|
|
||||||
TOOL_MAKEZIPREPRODUCIBLE = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \
|
TOOL_MAKEZIPREPRODUCIBLE = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \
|
||||||
build.tools.makezipreproducible.MakeZipReproducible
|
build.tools.makezipreproducible.MakeZipReproducible
|
||||||
@@ -137,7 +137,4 @@ PANDOC_HTML_MANPAGE_FILTER := $(BUILDTOOLS_OUTPUTDIR)/manpages/pandoc-html-manpa
|
|||||||
|
|
||||||
##########################################################################################
|
##########################################################################################
|
||||||
|
|
||||||
# Hook to include the corresponding custom post file, if present.
|
|
||||||
$(eval $(call IncludeCustomExtension, ToolsJdk-post.gmk))
|
|
||||||
|
|
||||||
endif # _TOOLS_GMK
|
endif # _TOOLS_GMK
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2014, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2014, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -41,6 +41,7 @@ $(eval $(call SetupZipArchive,BUILD_SEC_BIN_ZIP, \
|
|||||||
modules/java.base/sun/security/internal/interfaces \
|
modules/java.base/sun/security/internal/interfaces \
|
||||||
modules/java.base/sun/security/internal/spec \
|
modules/java.base/sun/security/internal/spec \
|
||||||
modules/java.base/com/sun/crypto/provider \
|
modules/java.base/com/sun/crypto/provider \
|
||||||
|
modules/jdk.crypto.ec/sun/security/ec \
|
||||||
modules/jdk.crypto.mscapi/sun/security/mscapi \
|
modules/jdk.crypto.mscapi/sun/security/mscapi \
|
||||||
modules/jdk.crypto.cryptoki/sun/security/pkcs11 \
|
modules/jdk.crypto.cryptoki/sun/security/pkcs11 \
|
||||||
modules/jdk.crypto.cryptoki/sun/security/pkcs11/wrapper \
|
modules/jdk.crypto.cryptoki/sun/security/pkcs11/wrapper \
|
||||||
@@ -87,9 +88,9 @@ ifeq ($(call isTargetOs, windows), true)
|
|||||||
$(eval $(call SetupZipArchive,BUILD_JGSS_BIN_ZIP, \
|
$(eval $(call SetupZipArchive,BUILD_JGSS_BIN_ZIP, \
|
||||||
SRC := $(SUPPORT_OUTPUTDIR), \
|
SRC := $(SUPPORT_OUTPUTDIR), \
|
||||||
INCLUDE_FILES := modules_libs/java.security.jgss/w2k_lsa_auth.dll \
|
INCLUDE_FILES := modules_libs/java.security.jgss/w2k_lsa_auth.dll \
|
||||||
modules_libs/java.security.jgss/w2k_lsa_auth.dll.diz \
|
modules_libs/java.security.jgss/w2k_lsa_auth.diz \
|
||||||
modules_libs/java.security.jgss/w2k_lsa_auth.dll.map \
|
modules_libs/java.security.jgss/w2k_lsa_auth.map \
|
||||||
modules_libs/java.security.jgss/w2k_lsa_auth.dll.pdb, \
|
modules_libs/java.security.jgss/w2k_lsa_auth.pdb, \
|
||||||
ZIP := $(IMAGES_OUTPUTDIR)/$(JGSS_ZIP_NAME)))
|
ZIP := $(IMAGES_OUTPUTDIR)/$(JGSS_ZIP_NAME)))
|
||||||
|
|
||||||
TARGETS += $(IMAGES_OUTPUTDIR)/$(JGSS_ZIP_NAME)
|
TARGETS += $(IMAGES_OUTPUTDIR)/$(JGSS_ZIP_NAME)
|
||||||
|
|||||||
27
make/autoconf/Makefile.in
Normal file
27
make/autoconf/Makefile.in
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2011, 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
|
||||||
|
# under the terms of the GNU General Public License version 2 only, as
|
||||||
|
# published by the Free Software Foundation.
|
||||||
|
#
|
||||||
|
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
# version 2 for more details (a copy is included in the LICENSE file that
|
||||||
|
# accompanied this code).
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License version
|
||||||
|
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||||
|
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
#
|
||||||
|
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||||
|
# or visit www.oracle.com if you need additional information or have any
|
||||||
|
# questions.
|
||||||
|
#
|
||||||
|
|
||||||
|
# This Makefile was generated by configure @DATE_WHEN_CONFIGURED@
|
||||||
|
# GENERATED FILE, DO NOT EDIT
|
||||||
|
SPEC:=@OUTPUTDIR@/spec.gmk
|
||||||
|
include @TOPDIR@/Makefile
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
#
|
|
||||||
# Copyright (c) 2011, 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
|
|
||||||
# under the terms of the GNU General Public License version 2 only, as
|
|
||||||
# published by the Free Software Foundation.
|
|
||||||
#
|
|
||||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
# version 2 for more details (a copy is included in the LICENSE file that
|
|
||||||
# accompanied this code).
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License version
|
|
||||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
|
||||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
#
|
|
||||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
||||||
# or visit www.oracle.com if you need additional information or have any
|
|
||||||
# questions.
|
|
||||||
#
|
|
||||||
|
|
||||||
# This Makefile was generated by configure @DATE_WHEN_CONFIGURED@
|
|
||||||
# GENERATED FILE, DO NOT EDIT
|
|
||||||
SPEC:=@OUTPUTDIR@/spec.gmk
|
|
||||||
include @WORKSPACE_ROOT@/Makefile
|
|
||||||
@@ -60,7 +60,6 @@ AC_DEFUN([BASIC_CHECK_LEFTOVER_OVERRIDDEN],
|
|||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Setup basic configuration paths, and platform-specific stuff related to PATHs.
|
# Setup basic configuration paths, and platform-specific stuff related to PATHs.
|
||||||
# Make sure to only use tools set up in BASIC_SETUP_FUNDAMENTAL_TOOLS.
|
|
||||||
AC_DEFUN_ONCE([BASIC_SETUP_PATHS],
|
AC_DEFUN_ONCE([BASIC_SETUP_PATHS],
|
||||||
[
|
[
|
||||||
# Save the current directory this script was started from
|
# Save the current directory this script was started from
|
||||||
@@ -406,9 +405,9 @@ AC_DEFUN_ONCE([BASIC_SETUP_OUTPUT_DIR],
|
|||||||
# WARNING: This might be a bad thing to do. You need to be sure you want to
|
# WARNING: This might be a bad thing to do. You need to be sure you want to
|
||||||
# have a configuration in this directory. Do some sanity checks!
|
# have a configuration in this directory. Do some sanity checks!
|
||||||
|
|
||||||
if test ! -e "$OUTPUTDIR/spec.gmk" && test ! -e "$OUTPUTDIR/configure-support/generated-configure.sh"; then
|
if test ! -e "$OUTPUTDIR/spec.gmk"; then
|
||||||
# If we have a spec.gmk or configure-support/generated-configure.sh,
|
# If we have a spec.gmk, we have run here before and we are OK. Otherwise, check for
|
||||||
# we have run here before and we are OK. Otherwise, check for other files
|
# other files
|
||||||
files_present=`$LS $OUTPUTDIR`
|
files_present=`$LS $OUTPUTDIR`
|
||||||
# Configure has already touched config.log and confdefs.h in the current dir when this check
|
# Configure has already touched config.log and confdefs.h in the current dir when this check
|
||||||
# is performed.
|
# is performed.
|
||||||
@@ -423,9 +422,8 @@ AC_DEFUN_ONCE([BASIC_SETUP_OUTPUT_DIR],
|
|||||||
AC_MSG_NOTICE([Current directory is $CONFIGURE_START_DIR.])
|
AC_MSG_NOTICE([Current directory is $CONFIGURE_START_DIR.])
|
||||||
AC_MSG_NOTICE([Since this is not the source root, configure will output the configuration here])
|
AC_MSG_NOTICE([Since this is not the source root, configure will output the configuration here])
|
||||||
AC_MSG_NOTICE([(as opposed to creating a configuration in <src_root>/build/<conf-name>).])
|
AC_MSG_NOTICE([(as opposed to creating a configuration in <src_root>/build/<conf-name>).])
|
||||||
AC_MSG_NOTICE([However, this directory is not empty, additionally to some allowed files])
|
AC_MSG_NOTICE([However, this directory is not empty. This is not allowed, since it could])
|
||||||
AC_MSG_NOTICE([it contains $filtered_files.])
|
AC_MSG_NOTICE([seriously mess up just about everything.])
|
||||||
AC_MSG_NOTICE([This is not allowed, since it could seriously mess up just about everything.])
|
|
||||||
AC_MSG_NOTICE([Try 'cd $TOPDIR' and restart configure])
|
AC_MSG_NOTICE([Try 'cd $TOPDIR' and restart configure])
|
||||||
AC_MSG_NOTICE([(or create a new empty directory and cd to it).])
|
AC_MSG_NOTICE([(or create a new empty directory and cd to it).])
|
||||||
AC_MSG_ERROR([Will not continue creating configuration in $CONFIGURE_START_DIR])
|
AC_MSG_ERROR([Will not continue creating configuration in $CONFIGURE_START_DIR])
|
||||||
@@ -448,17 +446,17 @@ AC_DEFUN_ONCE([BASIC_SETUP_OUTPUT_DIR],
|
|||||||
AC_SUBST(CONFIGURESUPPORT_OUTPUTDIR)
|
AC_SUBST(CONFIGURESUPPORT_OUTPUTDIR)
|
||||||
|
|
||||||
# The spec.gmk file contains all variables for the make system.
|
# The spec.gmk file contains all variables for the make system.
|
||||||
AC_CONFIG_FILES([$OUTPUTDIR/spec.gmk:$AUTOCONF_DIR/spec.gmk.template])
|
AC_CONFIG_FILES([$OUTPUTDIR/spec.gmk:$AUTOCONF_DIR/spec.gmk.in])
|
||||||
# The bootcycle-spec.gmk file contains support for boot cycle builds.
|
# The bootcycle-spec.gmk file contains support for boot cycle builds.
|
||||||
AC_CONFIG_FILES([$OUTPUTDIR/bootcycle-spec.gmk:$AUTOCONF_DIR/bootcycle-spec.gmk.template])
|
AC_CONFIG_FILES([$OUTPUTDIR/bootcycle-spec.gmk:$AUTOCONF_DIR/bootcycle-spec.gmk.in])
|
||||||
# The buildjdk-spec.gmk file contains support for building a buildjdk when cross compiling.
|
# The buildjdk-spec.gmk file contains support for building a buildjdk when cross compiling.
|
||||||
AC_CONFIG_FILES([$OUTPUTDIR/buildjdk-spec.gmk:$AUTOCONF_DIR/buildjdk-spec.gmk.template])
|
AC_CONFIG_FILES([$OUTPUTDIR/buildjdk-spec.gmk:$AUTOCONF_DIR/buildjdk-spec.gmk.in])
|
||||||
# The compare.sh is used to compare the build output to other builds.
|
# The compare.sh is used to compare the build output to other builds.
|
||||||
AC_CONFIG_FILES([$OUTPUTDIR/compare.sh:$AUTOCONF_DIR/compare.sh.template])
|
AC_CONFIG_FILES([$OUTPUTDIR/compare.sh:$AUTOCONF_DIR/compare.sh.in])
|
||||||
# The generated Makefile knows where the spec.gmk is and where the source is.
|
# The generated Makefile knows where the spec.gmk is and where the source is.
|
||||||
# You can run make from the OUTPUTDIR, or from the top-level Makefile
|
# You can run make from the OUTPUTDIR, or from the top-level Makefile
|
||||||
# which will look for generated configurations
|
# which will look for generated configurations
|
||||||
AC_CONFIG_FILES([$OUTPUTDIR/Makefile:$AUTOCONF_DIR/Makefile.template])
|
AC_CONFIG_FILES([$OUTPUTDIR/Makefile:$AUTOCONF_DIR/Makefile.in])
|
||||||
])
|
])
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
@@ -479,11 +477,7 @@ AC_DEFUN([BASIC_CHECK_DIR_ON_LOCAL_DISK],
|
|||||||
# df on AIX does not understand -l. On modern AIXes it understands "-T local" which
|
# df on AIX does not understand -l. On modern AIXes it understands "-T local" which
|
||||||
# is the same. On older AIXes we just continue to live with a "not local build" warning.
|
# is the same. On older AIXes we just continue to live with a "not local build" warning.
|
||||||
if test "x$OPENJDK_TARGET_OS" = xaix; then
|
if test "x$OPENJDK_TARGET_OS" = xaix; then
|
||||||
if $DF -T local > /dev/null 2>&1; then
|
DF_LOCAL_ONLY_OPTION='-T local'
|
||||||
DF_LOCAL_ONLY_OPTION='-T local'
|
|
||||||
else # AIX may use GNU-utils instead
|
|
||||||
DF_LOCAL_ONLY_OPTION='-l'
|
|
||||||
fi
|
|
||||||
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl1"; then
|
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl1"; then
|
||||||
# In WSL1, we can only build on a drvfs file system (that is, a mounted real Windows drive)
|
# In WSL1, we can only build on a drvfs file system (that is, a mounted real Windows drive)
|
||||||
DF_LOCAL_ONLY_OPTION='-t drvfs'
|
DF_LOCAL_ONLY_OPTION='-t drvfs'
|
||||||
|
|||||||
@@ -29,8 +29,8 @@
|
|||||||
RECOMMENDED_PANDOC_VERSION=2.19.2
|
RECOMMENDED_PANDOC_VERSION=2.19.2
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Setup the most fundamental tools, used for setting up build platform and
|
# Setup the most fundamental tools that relies on not much else to set up,
|
||||||
# path handling.
|
# but is used by much of the early bootstrap code.
|
||||||
AC_DEFUN_ONCE([BASIC_SETUP_FUNDAMENTAL_TOOLS],
|
AC_DEFUN_ONCE([BASIC_SETUP_FUNDAMENTAL_TOOLS],
|
||||||
[
|
[
|
||||||
# Bootstrapping: These tools are needed by UTIL_LOOKUP_PROGS
|
# Bootstrapping: These tools are needed by UTIL_LOOKUP_PROGS
|
||||||
@@ -42,28 +42,7 @@ AC_DEFUN_ONCE([BASIC_SETUP_FUNDAMENTAL_TOOLS],
|
|||||||
UTIL_CHECK_NONEMPTY(FILE)
|
UTIL_CHECK_NONEMPTY(FILE)
|
||||||
AC_PATH_PROGS(LDD, ldd)
|
AC_PATH_PROGS(LDD, ldd)
|
||||||
|
|
||||||
# Required tools
|
# First are all the fundamental required tools.
|
||||||
UTIL_REQUIRE_PROGS(ECHO, echo)
|
|
||||||
UTIL_REQUIRE_PROGS(TR, tr)
|
|
||||||
UTIL_REQUIRE_PROGS(UNAME, uname)
|
|
||||||
UTIL_REQUIRE_PROGS(WC, wc)
|
|
||||||
|
|
||||||
# Required tools with some special treatment
|
|
||||||
UTIL_REQUIRE_SPECIAL(GREP, [AC_PROG_GREP])
|
|
||||||
UTIL_REQUIRE_SPECIAL(EGREP, [AC_PROG_EGREP])
|
|
||||||
UTIL_REQUIRE_SPECIAL(SED, [AC_PROG_SED])
|
|
||||||
|
|
||||||
# Tools only needed on some platforms
|
|
||||||
UTIL_LOOKUP_PROGS(PATHTOOL, cygpath wslpath)
|
|
||||||
UTIL_LOOKUP_PROGS(CMD, cmd.exe, $PATH:/cygdrive/c/windows/system32:/mnt/c/windows/system32:/c/windows/system32)
|
|
||||||
])
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# Setup further tools that should be resolved early but after setting up
|
|
||||||
# build platform and path handling.
|
|
||||||
AC_DEFUN_ONCE([BASIC_SETUP_TOOLS],
|
|
||||||
[
|
|
||||||
# Required tools
|
|
||||||
UTIL_REQUIRE_PROGS(BASH, bash)
|
UTIL_REQUIRE_PROGS(BASH, bash)
|
||||||
UTIL_REQUIRE_PROGS(CAT, cat)
|
UTIL_REQUIRE_PROGS(CAT, cat)
|
||||||
UTIL_REQUIRE_PROGS(CHMOD, chmod)
|
UTIL_REQUIRE_PROGS(CHMOD, chmod)
|
||||||
@@ -71,6 +50,7 @@ AC_DEFUN_ONCE([BASIC_SETUP_TOOLS],
|
|||||||
UTIL_REQUIRE_PROGS(CUT, cut)
|
UTIL_REQUIRE_PROGS(CUT, cut)
|
||||||
UTIL_REQUIRE_PROGS(DATE, date)
|
UTIL_REQUIRE_PROGS(DATE, date)
|
||||||
UTIL_REQUIRE_PROGS(DIFF, gdiff diff)
|
UTIL_REQUIRE_PROGS(DIFF, gdiff diff)
|
||||||
|
UTIL_REQUIRE_PROGS(ECHO, echo)
|
||||||
UTIL_REQUIRE_PROGS(EXPR, expr)
|
UTIL_REQUIRE_PROGS(EXPR, expr)
|
||||||
UTIL_REQUIRE_PROGS(FIND, find)
|
UTIL_REQUIRE_PROGS(FIND, find)
|
||||||
UTIL_REQUIRE_PROGS(GUNZIP, gunzip)
|
UTIL_REQUIRE_PROGS(GUNZIP, gunzip)
|
||||||
@@ -92,10 +72,16 @@ AC_DEFUN_ONCE([BASIC_SETUP_TOOLS],
|
|||||||
UTIL_REQUIRE_PROGS(TAR, gtar tar)
|
UTIL_REQUIRE_PROGS(TAR, gtar tar)
|
||||||
UTIL_REQUIRE_PROGS(TEE, tee)
|
UTIL_REQUIRE_PROGS(TEE, tee)
|
||||||
UTIL_REQUIRE_PROGS(TOUCH, touch)
|
UTIL_REQUIRE_PROGS(TOUCH, touch)
|
||||||
|
UTIL_REQUIRE_PROGS(TR, tr)
|
||||||
|
UTIL_REQUIRE_PROGS(UNAME, uname)
|
||||||
|
UTIL_REQUIRE_PROGS(WC, wc)
|
||||||
UTIL_REQUIRE_PROGS(XARGS, xargs)
|
UTIL_REQUIRE_PROGS(XARGS, xargs)
|
||||||
|
|
||||||
# Required tools with some special treatment
|
# Then required tools that require some special treatment.
|
||||||
|
UTIL_REQUIRE_SPECIAL(GREP, [AC_PROG_GREP])
|
||||||
|
UTIL_REQUIRE_SPECIAL(EGREP, [AC_PROG_EGREP])
|
||||||
UTIL_REQUIRE_SPECIAL(FGREP, [AC_PROG_FGREP])
|
UTIL_REQUIRE_SPECIAL(FGREP, [AC_PROG_FGREP])
|
||||||
|
UTIL_REQUIRE_SPECIAL(SED, [AC_PROG_SED])
|
||||||
|
|
||||||
# Optional tools, we can do without them
|
# Optional tools, we can do without them
|
||||||
UTIL_LOOKUP_PROGS(DF, df)
|
UTIL_LOOKUP_PROGS(DF, df)
|
||||||
@@ -104,8 +90,10 @@ AC_DEFUN_ONCE([BASIC_SETUP_TOOLS],
|
|||||||
UTIL_LOOKUP_PROGS(READLINK, greadlink readlink)
|
UTIL_LOOKUP_PROGS(READLINK, greadlink readlink)
|
||||||
UTIL_LOOKUP_PROGS(WHOAMI, whoami)
|
UTIL_LOOKUP_PROGS(WHOAMI, whoami)
|
||||||
|
|
||||||
# Tools only needed on some platforms
|
# These are only needed on some platforms
|
||||||
|
UTIL_LOOKUP_PROGS(PATHTOOL, cygpath wslpath)
|
||||||
UTIL_LOOKUP_PROGS(LSB_RELEASE, lsb_release)
|
UTIL_LOOKUP_PROGS(LSB_RELEASE, lsb_release)
|
||||||
|
UTIL_LOOKUP_PROGS(CMD, cmd.exe, $PATH:/cygdrive/c/windows/system32:/mnt/c/windows/system32:/c/windows/system32)
|
||||||
|
|
||||||
# For compare.sh only
|
# For compare.sh only
|
||||||
UTIL_LOOKUP_PROGS(CMP, cmp)
|
UTIL_LOOKUP_PROGS(CMP, cmp)
|
||||||
@@ -390,17 +378,6 @@ AC_DEFUN_ONCE([BASIC_SETUP_COMPLEX_TOOLS],
|
|||||||
|
|
||||||
if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then
|
if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then
|
||||||
UTIL_REQUIRE_PROGS(DSYMUTIL, dsymutil)
|
UTIL_REQUIRE_PROGS(DSYMUTIL, dsymutil)
|
||||||
AC_MSG_CHECKING([if dsymutil supports --reproducer option])
|
|
||||||
if $DSYMUTIL --help | $GREP -q '\--reproducer '; then
|
|
||||||
AC_MSG_RESULT([yes])
|
|
||||||
# --reproducer option is supported
|
|
||||||
# set "--reproducer Off" to prevent unnecessary temporary
|
|
||||||
# directories creation
|
|
||||||
DSYMUTIL="$DSYMUTIL --reproducer Off"
|
|
||||||
else
|
|
||||||
# --reproducer option isn't supported
|
|
||||||
AC_MSG_RESULT([no])
|
|
||||||
fi
|
|
||||||
UTIL_REQUIRE_PROGS(MIG, mig)
|
UTIL_REQUIRE_PROGS(MIG, mig)
|
||||||
UTIL_REQUIRE_PROGS(XATTR, xattr)
|
UTIL_REQUIRE_PROGS(XATTR, xattr)
|
||||||
UTIL_LOOKUP_PROGS(CODESIGN, codesign)
|
UTIL_LOOKUP_PROGS(CODESIGN, codesign)
|
||||||
|
|||||||
@@ -89,8 +89,8 @@ AC_DEFUN([BASIC_SETUP_PATHS_WINDOWS],
|
|||||||
WINENV_TEMP_DIR=$($PATHTOOL -u $($CMD /q /c echo %TEMP% 2> /dev/null) | $TR -d '\r\n')
|
WINENV_TEMP_DIR=$($PATHTOOL -u $($CMD /q /c echo %TEMP% 2> /dev/null) | $TR -d '\r\n')
|
||||||
AC_MSG_RESULT([$WINENV_TEMP_DIR])
|
AC_MSG_RESULT([$WINENV_TEMP_DIR])
|
||||||
|
|
||||||
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl2"; then
|
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl1" || test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl2"; then
|
||||||
# Don't trust the current directory for WSL2, but change to an OK temp dir
|
# Don't trust the current directory for WSL, but change to an OK temp dir
|
||||||
cd "$WINENV_TEMP_DIR"
|
cd "$WINENV_TEMP_DIR"
|
||||||
# Bring along confdefs.h or autoconf gets all confused
|
# Bring along confdefs.h or autoconf gets all confused
|
||||||
cp "$CONFIGURE_START_DIR/confdefs.h" "$WINENV_TEMP_DIR"
|
cp "$CONFIGURE_START_DIR/confdefs.h" "$WINENV_TEMP_DIR"
|
||||||
@@ -228,7 +228,7 @@ AC_DEFUN([BASIC_WINDOWS_FINALIZE_FIXPATH],
|
|||||||
# Platform-specific finalization
|
# Platform-specific finalization
|
||||||
AC_DEFUN([BASIC_WINDOWS_FINALIZE],
|
AC_DEFUN([BASIC_WINDOWS_FINALIZE],
|
||||||
[
|
[
|
||||||
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl2"; then
|
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl1" || test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl2"; then
|
||||||
# Change back from temp dir
|
# Change back from temp dir
|
||||||
cd $CONFIGURE_START_DIR
|
cd $CONFIGURE_START_DIR
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -520,8 +520,8 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK_ARGUMENTS],
|
|||||||
|
|
||||||
# Don't presuppose SerialGC is present in the buildjdk. Also, we cannot test
|
# Don't presuppose SerialGC is present in the buildjdk. Also, we cannot test
|
||||||
# the buildjdk, but on the other hand we know what it will support.
|
# the buildjdk, but on the other hand we know what it will support.
|
||||||
BUILD_JAVA_FLAGS_SMALL="-Xms32M -Xmx512M -XX:TieredStopAtLevel=1"
|
BUILDJDK_JAVA_FLAGS_SMALL="-Xms32M -Xmx512M -XX:TieredStopAtLevel=1"
|
||||||
AC_SUBST(BUILD_JAVA_FLAGS_SMALL)
|
AC_SUBST(BUILDJDK_JAVA_FLAGS_SMALL)
|
||||||
|
|
||||||
JAVA_TOOL_FLAGS_SMALL=""
|
JAVA_TOOL_FLAGS_SMALL=""
|
||||||
for f in $JAVA_FLAGS_SMALL; do
|
for f in $JAVA_FLAGS_SMALL; do
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user