mirror of
https://github.com/JetBrains/JetBrainsRuntime.git
synced 2025-12-15 05:49:40 +01:00
Compare commits
1088 Commits
jdk-21.0.1
...
jb21-b51
| 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 |
4
.github/actions/get-jtreg/action.yml
vendored
4
.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
|
||||||
@@ -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
|
||||||
|
|||||||
3
.github/actions/get-msys2/action.yml
vendored
3
.github/actions/get-msys2/action.yml
vendored
@@ -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
|
||||||
|
|||||||
27
.github/workflows/build-cross-compile.yml
vendored
27
.github/workflows/build-cross-compile.yml
vendored
@@ -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,7 +86,8 @@ 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:
|
||||||
@@ -107,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'
|
||||||
@@ -130,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 }}
|
||||||
@@ -145,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'
|
||||||
|
|||||||
5
.github/workflows/build-linux.yml
vendored
5
.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
|
||||||
@@ -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'
|
||||||
|
|||||||
16
.github/workflows/build-windows.yml
vendored
16
.github/workflows/build-windows.yml
vendored
@@ -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: >
|
||||||
|
|||||||
18
.github/workflows/main.yml
vendored
18
.github/workflows/main.yml
vendored
@@ -26,10 +26,6 @@
|
|||||||
name: 'OpenJDK GHA Sanity Checks'
|
name: 'OpenJDK GHA Sanity Checks'
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
|
||||||
branches-ignore:
|
|
||||||
- master
|
|
||||||
- pr/*
|
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
inputs:
|
inputs:
|
||||||
platforms:
|
platforms:
|
||||||
@@ -59,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 }}
|
||||||
@@ -130,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
|
||||||
@@ -143,10 +141,11 @@ 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'
|
apt-extra-packages: 'libfreetype6-dev:i386 libtiff-dev:i386 libcupsimage2-dev:i386 libc6-i386'
|
||||||
extra-conf-options: '--with-target-bits=32'
|
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 }}
|
||||||
@@ -161,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 }}
|
||||||
@@ -175,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 }}
|
||||||
@@ -189,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 }}
|
||||||
@@ -204,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 }}
|
||||||
@@ -217,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'
|
||||||
@@ -282,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'
|
||||||
|
|||||||
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
|
||||||
5
.github/workflows/test.yml
vendored
5
.github/workflows/test.yml
vendored
@@ -64,7 +64,6 @@ jobs:
|
|||||||
- 'hs/tier1 gc'
|
- 'hs/tier1 gc'
|
||||||
- 'hs/tier1 runtime'
|
- 'hs/tier1 runtime'
|
||||||
- 'hs/tier1 serviceability'
|
- 'hs/tier1 serviceability'
|
||||||
- 'lib-test/tier1'
|
|
||||||
|
|
||||||
include:
|
include:
|
||||||
- test-name: 'jdk/tier1 part 1'
|
- test-name: 'jdk/tier1 part 1'
|
||||||
@@ -99,10 +98,6 @@ jobs:
|
|||||||
test-suite: 'test/hotspot/jtreg/:tier1_serviceability'
|
test-suite: 'test/hotspot/jtreg/:tier1_serviceability'
|
||||||
debug-suffix: -debug
|
debug-suffix: -debug
|
||||||
|
|
||||||
- test-name: 'lib-test/tier1'
|
|
||||||
test-suite: 'test/lib-test/:tier1'
|
|
||||||
debug-suffix: -debug
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: 'Checkout the JDK source'
|
- name: 'Checkout the JDK source'
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
|
|||||||
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-updates
|
project=jdk
|
||||||
jbs=JDK
|
jbs=JDK
|
||||||
version=21.0.1
|
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
|
||||||
|
|||||||
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/).
|
||||||
|
|||||||
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."
|
||||||
|
|||||||
@@ -80,7 +80,6 @@ id="toc-getting-jdk-binaries">Getting JDK binaries</a></li>
|
|||||||
id="toc-external-library-requirements">External Library Requirements</a>
|
id="toc-external-library-requirements">External Library Requirements</a>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#freetype" id="toc-freetype">FreeType</a></li>
|
<li><a href="#freetype" id="toc-freetype">FreeType</a></li>
|
||||||
<li><a href="#fontconfig" id="toc-fontconfig">Fontconfig</a></li>
|
|
||||||
<li><a href="#cups" id="toc-cups">CUPS</a></li>
|
<li><a href="#cups" id="toc-cups">CUPS</a></li>
|
||||||
<li><a href="#x11" id="toc-x11">X11</a></li>
|
<li><a href="#x11" id="toc-x11">X11</a></li>
|
||||||
<li><a href="#alsa" id="toc-alsa">ALSA</a></li>
|
<li><a href="#alsa" id="toc-alsa">ALSA</a></li>
|
||||||
@@ -135,8 +134,6 @@ id="toc-cross-compiling-with-debian-sysroots">Cross compiling with
|
|||||||
Debian sysroots</a></li>
|
Debian sysroots</a></li>
|
||||||
<li><a href="#building-for-armaarch64"
|
<li><a href="#building-for-armaarch64"
|
||||||
id="toc-building-for-armaarch64">Building for ARM/aarch64</a></li>
|
id="toc-building-for-armaarch64">Building for ARM/aarch64</a></li>
|
||||||
<li><a href="#building-for-risc-v" id="toc-building-for-risc-v">Building
|
|
||||||
for RISC-V</a></li>
|
|
||||||
<li><a href="#building-for-musl" id="toc-building-for-musl">Building for
|
<li><a href="#building-for-musl" id="toc-building-for-musl">Building for
|
||||||
musl</a></li>
|
musl</a></li>
|
||||||
<li><a href="#verifying-the-build"
|
<li><a href="#verifying-the-build"
|
||||||
@@ -324,7 +321,6 @@ GB of free disk space is required.</p>
|
|||||||
<p>Even for 32-bit builds, it is recommended to use a 64-bit build
|
<p>Even for 32-bit builds, it is recommended to use a 64-bit build
|
||||||
machine, and instead create a 32-bit target using
|
machine, and instead create a 32-bit target using
|
||||||
<code>--with-target-bits=32</code>.</p>
|
<code>--with-target-bits=32</code>.</p>
|
||||||
<p>Note: The Windows 32-bit x86 port is deprecated and may be removed in a future release.</p>
|
|
||||||
<h3 id="building-on-aarch64">Building on aarch64</h3>
|
<h3 id="building-on-aarch64">Building on aarch64</h3>
|
||||||
<p>At a minimum, a machine with 8 cores is advisable, as well as 8 GB of
|
<p>At a minimum, a machine with 8 cores is advisable, as well as 8 GB of
|
||||||
RAM. (The more cores to use, the more memory you need.) At least 6 GB of
|
RAM. (The more cores to use, the more memory you need.) At least 6 GB of
|
||||||
@@ -355,22 +351,22 @@ to date at the time of writing.</p>
|
|||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr class="header">
|
<tr class="header">
|
||||||
<th>Operating system</th>
|
<th style="text-align: left;">Operating system</th>
|
||||||
<th>Vendor/version used</th>
|
<th style="text-align: left;">Vendor/version used</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td>Linux</td>
|
<td style="text-align: left;">Linux</td>
|
||||||
<td>Oracle Enterprise Linux 6.4 / 7.6</td>
|
<td style="text-align: left;">Oracle Enterprise Linux 6.4 / 7.6</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="even">
|
<tr class="even">
|
||||||
<td>macOS</td>
|
<td style="text-align: left;">macOS</td>
|
||||||
<td>Mac OS X 10.13 (High Sierra)</td>
|
<td style="text-align: left;">Mac OS X 10.13 (High Sierra)</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td>Windows</td>
|
<td style="text-align: left;">Windows</td>
|
||||||
<td>Windows Server 2012 R2</td>
|
<td style="text-align: left;">Windows Server 2012 R2</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
@@ -401,7 +397,6 @@ to the build system, e.g. in arguments to <code>configure</code>. So,
|
|||||||
use <code>--with-msvcr-dll=/cygdrive/c/msvcr100.dll</code> rather than
|
use <code>--with-msvcr-dll=/cygdrive/c/msvcr100.dll</code> rather than
|
||||||
<code>--with-msvcr-dll=c:\msvcr100.dll</code>. For details on this
|
<code>--with-msvcr-dll=c:\msvcr100.dll</code>. For details on this
|
||||||
conversion, see the section on <a href="#fixpath">Fixpath</a>.</p>
|
conversion, see the section on <a href="#fixpath">Fixpath</a>.</p>
|
||||||
<p>Note: The Windows 32-bit x86 port is deprecated and may be removed in a future release.</p>
|
|
||||||
<h4 id="cygwin">Cygwin</h4>
|
<h4 id="cygwin">Cygwin</h4>
|
||||||
<p>A functioning <a href="http://www.cygwin.com/">Cygwin</a> environment
|
<p>A functioning <a href="http://www.cygwin.com/">Cygwin</a> environment
|
||||||
is required for building the JDK on Windows. If you have a 64-bit OS, we
|
is required for building the JDK on Windows. If you have a 64-bit OS, we
|
||||||
@@ -680,19 +675,6 @@ copy.</p>
|
|||||||
<p>Use <code>--with-freetype-include=<path></code> and
|
<p>Use <code>--with-freetype-include=<path></code> and
|
||||||
<code>--with-freetype-lib=<path></code> if <code>configure</code>
|
<code>--with-freetype-lib=<path></code> if <code>configure</code>
|
||||||
does not automatically locate the platform FreeType files.</p>
|
does not automatically locate the platform FreeType files.</p>
|
||||||
<h3 id="fontconfig">Fontconfig</h3>
|
|
||||||
<p>Fontconfig from <a href="http://fontconfig.org">freedesktop.org
|
|
||||||
Fontconfig</a> is required on all platforms except Windows and
|
|
||||||
macOS.</p>
|
|
||||||
<ul>
|
|
||||||
<li>To install on an apt-based Linux, try running
|
|
||||||
<code>sudo apt-get install libfontconfig-dev</code>.</li>
|
|
||||||
<li>To install on an rpm-based Linux, try running
|
|
||||||
<code>sudo yum install fontconfig-devel</code>.</li>
|
|
||||||
</ul>
|
|
||||||
<p>Use <code>--with-fontconfig-include=<path></code> and
|
|
||||||
<code>--with-fontconfig=<path></code> if <code>configure</code>
|
|
||||||
does not automatically locate the platform Fontconfig files.</p>
|
|
||||||
<h3 id="cups">CUPS</h3>
|
<h3 id="cups">CUPS</h3>
|
||||||
<p>CUPS, <a href="http://www.cups.org">Common UNIX Printing System</a>
|
<p>CUPS, <a href="http://www.cups.org">Common UNIX Printing System</a>
|
||||||
header files are required on all platforms, except Windows. Often these
|
header files are required on all platforms, except Windows. Often these
|
||||||
@@ -1211,27 +1193,27 @@ following targets are known to work:</p>
|
|||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr class="header">
|
<tr class="header">
|
||||||
<th>Supported devkit targets</th>
|
<th style="text-align: left;">Supported devkit targets</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td>x86_64-linux-gnu</td>
|
<td style="text-align: left;">x86_64-linux-gnu</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="even">
|
<tr class="even">
|
||||||
<td>aarch64-linux-gnu</td>
|
<td style="text-align: left;">aarch64-linux-gnu</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td>arm-linux-gnueabihf</td>
|
<td style="text-align: left;">arm-linux-gnueabihf</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="even">
|
<tr class="even">
|
||||||
<td>ppc64-linux-gnu</td>
|
<td style="text-align: left;">ppc64-linux-gnu</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td>ppc64le-linux-gnu</td>
|
<td style="text-align: left;">ppc64le-linux-gnu</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="even">
|
<tr class="even">
|
||||||
<td>s390x-linux-gnu</td>
|
<td style="text-align: left;">s390x-linux-gnu</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
@@ -1394,10 +1376,10 @@ No such file or directory cp: cannot stat
|
|||||||
Debian sysroots</h3>
|
Debian sysroots</h3>
|
||||||
<p>Fortunately, you can create sysroots for foreign architectures with
|
<p>Fortunately, you can create sysroots for foreign architectures with
|
||||||
tools provided by your OS. On Debian/Ubuntu systems, one could use
|
tools provided by your OS. On Debian/Ubuntu systems, one could use
|
||||||
<code>debootstrap</code> to create the <em>target</em> system chroot,
|
<code>qemu-deboostrap</code> to create the <em>target</em> system
|
||||||
which would have the native libraries and headers specific to that
|
chroot, which would have the native libraries and headers specific to
|
||||||
<em>target</em> system. After that, we can use the cross-compiler on the
|
that <em>target</em> system. After that, we can use the cross-compiler
|
||||||
<em>build</em> system, pointing into chroot to get the build
|
on the <em>build</em> system, pointing into chroot to get the build
|
||||||
dependencies right. This allows building for foreign architectures with
|
dependencies right. This allows building for foreign architectures with
|
||||||
native compilation speed.</p>
|
native compilation speed.</p>
|
||||||
<p>For example, cross-compiling to AArch64 from x86_64 could be done
|
<p>For example, cross-compiling to AArch64 from x86_64 could be done
|
||||||
@@ -1407,7 +1389,7 @@ like this:</p>
|
|||||||
<code>apt install g++-aarch64-linux-gnu gcc-aarch64-linux-gnu</code></p></li>
|
<code>apt install g++-aarch64-linux-gnu gcc-aarch64-linux-gnu</code></p></li>
|
||||||
<li><p>Create chroot on the <em>build</em> system, configuring it for
|
<li><p>Create chroot on the <em>build</em> system, configuring it for
|
||||||
<em>target</em> system:
|
<em>target</em> system:
|
||||||
<code>sudo debootstrap \ --arch=arm64 \ --verbose \ --include=fakeroot,symlinks,build-essential,libx11-dev,libxext-dev,libxrender-dev,libxrandr-dev,libxtst-dev,libxt-dev,libcups2-dev,libfontconfig1-dev,libasound2-dev,libfreetype6-dev,libpng-dev,libffi-dev \ --resolve-deps \ buster \ ~/sysroot-arm64 \ http://httpredir.debian.org/debian/ # If the target architecture is `riscv64`, # the path should be `debian-ports` instead of `debian`.</code></p></li>
|
<code>sudo qemu-debootstrap \ --arch=arm64 \ --verbose \ --include=fakeroot,symlinks,build-essential,libx11-dev,libxext-dev,libxrender-dev,libxrandr-dev,libxtst-dev,libxt-dev,libcups2-dev,libfontconfig1-dev,libasound2-dev,libfreetype6-dev,libpng-dev,libffi-dev \ --resolve-deps \ buster \ ~/sysroot-arm64 \ http://httpredir.debian.org/debian/</code></p></li>
|
||||||
<li><p>Make sure the symlinks inside the newly created chroot point to
|
<li><p>Make sure the symlinks inside the newly created chroot point to
|
||||||
proper locations:
|
proper locations:
|
||||||
<code>sudo chroot ~/sysroot-arm64 symlinks -cr .</code></p></li>
|
<code>sudo chroot ~/sysroot-arm64 symlinks -cr .</code></p></li>
|
||||||
@@ -1433,121 +1415,107 @@ example <code>${sysroot}/usr/lib/${target}/</code></p></li>
|
|||||||
<p>Architectures that are known to successfully cross-compile like this
|
<p>Architectures that are known to successfully cross-compile like this
|
||||||
are:</p>
|
are:</p>
|
||||||
<table>
|
<table>
|
||||||
<colgroup>
|
|
||||||
<col style="width: 13%" />
|
|
||||||
<col style="width: 13%" />
|
|
||||||
<col style="width: 15%" />
|
|
||||||
<col style="width: 27%" />
|
|
||||||
<col style="width: 29%" />
|
|
||||||
</colgroup>
|
|
||||||
<thead>
|
<thead>
|
||||||
<tr class="header">
|
<tr class="header">
|
||||||
<th>Target</th>
|
<th style="text-align: left;">Target</th>
|
||||||
<th>Debian tree</th>
|
<th style="text-align: left;">Debian tree</th>
|
||||||
<th>Debian arch</th>
|
<th style="text-align: left;">Debian arch</th>
|
||||||
<th><code>--openjdk-target=...</code></th>
|
<th style="text-align: left;"><code>--openjdk-target=...</code></th>
|
||||||
<th><code>--with-jvm-variants=...</code></th>
|
<th><code>--with-jvm-variants=...</code></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td>x86</td>
|
<td style="text-align: left;">x86</td>
|
||||||
<td>buster</td>
|
<td style="text-align: left;">buster</td>
|
||||||
<td>i386</td>
|
<td style="text-align: left;">i386</td>
|
||||||
<td>i386-linux-gnu</td>
|
<td style="text-align: left;">i386-linux-gnu</td>
|
||||||
<td>(all)</td>
|
<td>(all)</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="even">
|
<tr class="even">
|
||||||
<td>arm</td>
|
<td style="text-align: left;">arm</td>
|
||||||
<td>buster</td>
|
<td style="text-align: left;">buster</td>
|
||||||
<td>armhf</td>
|
<td style="text-align: left;">armhf</td>
|
||||||
<td>arm-linux-gnueabihf</td>
|
<td style="text-align: left;">arm-linux-gnueabihf</td>
|
||||||
<td>(all)</td>
|
<td>(all)</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td>aarch64</td>
|
<td style="text-align: left;">aarch64</td>
|
||||||
<td>buster</td>
|
<td style="text-align: left;">buster</td>
|
||||||
<td>arm64</td>
|
<td style="text-align: left;">arm64</td>
|
||||||
<td>aarch64-linux-gnu</td>
|
<td style="text-align: left;">aarch64-linux-gnu</td>
|
||||||
<td>(all)</td>
|
<td>(all)</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="even">
|
<tr class="even">
|
||||||
<td>ppc64le</td>
|
<td style="text-align: left;">ppc64le</td>
|
||||||
<td>buster</td>
|
<td style="text-align: left;">buster</td>
|
||||||
<td>ppc64el</td>
|
<td style="text-align: left;">ppc64el</td>
|
||||||
<td>powerpc64le-linux-gnu</td>
|
<td style="text-align: left;">powerpc64le-linux-gnu</td>
|
||||||
<td>(all)</td>
|
<td>(all)</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td>s390x</td>
|
<td style="text-align: left;">s390x</td>
|
||||||
<td>buster</td>
|
<td style="text-align: left;">buster</td>
|
||||||
<td>s390x</td>
|
<td style="text-align: left;">s390x</td>
|
||||||
<td>s390x-linux-gnu</td>
|
<td style="text-align: left;">s390x-linux-gnu</td>
|
||||||
<td>(all)</td>
|
<td>(all)</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="even">
|
<tr class="even">
|
||||||
<td>mipsle</td>
|
<td style="text-align: left;">mipsle</td>
|
||||||
<td>buster</td>
|
<td style="text-align: left;">buster</td>
|
||||||
<td>mipsel</td>
|
<td style="text-align: left;">mipsel</td>
|
||||||
<td>mipsel-linux-gnu</td>
|
<td style="text-align: left;">mipsel-linux-gnu</td>
|
||||||
<td>zero</td>
|
<td>zero</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td>mips64le</td>
|
<td style="text-align: left;">mips64le</td>
|
||||||
<td>buster</td>
|
<td style="text-align: left;">buster</td>
|
||||||
<td>mips64el</td>
|
<td style="text-align: left;">mips64el</td>
|
||||||
<td>mips64el-linux-gnueabi64</td>
|
<td style="text-align: left;">mips64el-linux-gnueabi64</td>
|
||||||
<td>zero</td>
|
<td>zero</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="even">
|
<tr class="even">
|
||||||
<td>armel</td>
|
<td style="text-align: left;">armel</td>
|
||||||
<td>buster</td>
|
<td style="text-align: left;">buster</td>
|
||||||
<td>arm</td>
|
<td style="text-align: left;">arm</td>
|
||||||
<td>arm-linux-gnueabi</td>
|
<td style="text-align: left;">arm-linux-gnueabi</td>
|
||||||
<td>zero</td>
|
<td>zero</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td>ppc</td>
|
<td style="text-align: left;">ppc</td>
|
||||||
<td>sid</td>
|
<td style="text-align: left;">sid</td>
|
||||||
<td>powerpc</td>
|
<td style="text-align: left;">powerpc</td>
|
||||||
<td>powerpc-linux-gnu</td>
|
<td style="text-align: left;">powerpc-linux-gnu</td>
|
||||||
<td>zero</td>
|
<td>zero</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="even">
|
<tr class="even">
|
||||||
<td>ppc64be</td>
|
<td style="text-align: left;">ppc64be</td>
|
||||||
<td>sid</td>
|
<td style="text-align: left;">sid</td>
|
||||||
<td>ppc64</td>
|
<td style="text-align: left;">ppc64</td>
|
||||||
<td>powerpc64-linux-gnu</td>
|
<td style="text-align: left;">powerpc64-linux-gnu</td>
|
||||||
<td>(all)</td>
|
<td>(all)</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td>m68k</td>
|
<td style="text-align: left;">m68k</td>
|
||||||
<td>sid</td>
|
<td style="text-align: left;">sid</td>
|
||||||
<td>m68k</td>
|
<td style="text-align: left;">m68k</td>
|
||||||
<td>m68k-linux-gnu</td>
|
<td style="text-align: left;">m68k-linux-gnu</td>
|
||||||
<td>zero</td>
|
<td>zero</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="even">
|
<tr class="even">
|
||||||
<td>alpha</td>
|
<td style="text-align: left;">alpha</td>
|
||||||
<td>sid</td>
|
<td style="text-align: left;">sid</td>
|
||||||
<td>alpha</td>
|
<td style="text-align: left;">alpha</td>
|
||||||
<td>alpha-linux-gnu</td>
|
<td style="text-align: left;">alpha-linux-gnu</td>
|
||||||
<td>zero</td>
|
<td>zero</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td>sh4</td>
|
<td style="text-align: left;">sh4</td>
|
||||||
<td>sid</td>
|
<td style="text-align: left;">sid</td>
|
||||||
<td>sh4</td>
|
<td style="text-align: left;">sh4</td>
|
||||||
<td>sh4-linux-gnu</td>
|
<td style="text-align: left;">sh4-linux-gnu</td>
|
||||||
<td>zero</td>
|
<td>zero</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="even">
|
|
||||||
<td>riscv64</td>
|
|
||||||
<td>sid</td>
|
|
||||||
<td>riscv64</td>
|
|
||||||
<td>riscv64-linux-gnu</td>
|
|
||||||
<td>(all)</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<h3 id="building-for-armaarch64">Building for ARM/aarch64</h3>
|
<h3 id="building-for-armaarch64">Building for ARM/aarch64</h3>
|
||||||
@@ -1557,21 +1525,6 @@ profiles are available using <code>--with-abi-profile</code>:
|
|||||||
arm-vfp-sflt, arm-vfp-hflt, arm-sflt, armv5-vfp-sflt, armv6-vfp-hflt.
|
arm-vfp-sflt, arm-vfp-hflt, arm-sflt, armv5-vfp-sflt, armv6-vfp-hflt.
|
||||||
Note that soft-float ABIs are no longer properly supported by the
|
Note that soft-float ABIs are no longer properly supported by the
|
||||||
JDK.</p>
|
JDK.</p>
|
||||||
<h3 id="building-for-risc-v">Building for RISC-V</h3>
|
|
||||||
<p>The RISC-V community provides a basic <a
|
|
||||||
href="https://github.com/riscv-collab/riscv-gnu-toolchain">GNU compiler
|
|
||||||
toolchain</a>, but the <a href="#External-Library-Requirements">external
|
|
||||||
libraries</a> required by OpenJDK complicate the building process. The
|
|
||||||
placeholder <code><toolchain-installed-path></code> shown below is
|
|
||||||
the path where you want to install the toolchain.</p>
|
|
||||||
<ul>
|
|
||||||
<li><p>Install the RISC-V GNU compiler toolchain:
|
|
||||||
<code>git clone --recursive https://github.com/riscv-collab/riscv-gnu-toolchain cd riscv-gnu-toolchain ./configure --prefix=<toolchain-installed-path> make linux export PATH=<toolchain-installed-path>/bin:$PATH</code></p></li>
|
|
||||||
<li><p>Cross-compile all the required libraries:
|
|
||||||
<code># An example for libffi git clone https://github.com/libffi/libffi cd libffi ./configure --host=riscv64-unknown-linux-gnu --prefix=<toolchain-installed-path>/sysroot/usr make make install</code></p></li>
|
|
||||||
<li><p>Configure and build OpenJDK:
|
|
||||||
<code>bash configure \ --with-boot-jdk=$BOOT_JDK \ --openjdk-target=riscv64-linux-gnu \ --with-sysroot=<toolchain-installed-path>/sysroot \ --with-toolchain-path=<toolchain-installed-path>/bin \ --with-extra-path=<toolchain-installed-path>/bin make images</code></p></li>
|
|
||||||
</ul>
|
|
||||||
<h3 id="building-for-musl">Building for musl</h3>
|
<h3 id="building-for-musl">Building for musl</h3>
|
||||||
<p>Just like it's possible to cross-compile for a different CPU, it's
|
<p>Just like it's possible to cross-compile for a different CPU, it's
|
||||||
possible to cross-compile for musl libc on a glibc-based <em>build</em>
|
possible to cross-compile for musl libc on a glibc-based <em>build</em>
|
||||||
|
|||||||
118
doc/building.md
118
doc/building.md
@@ -126,8 +126,6 @@ space is required.
|
|||||||
Even for 32-bit builds, it is recommended to use a 64-bit build machine, and
|
Even for 32-bit builds, it is recommended to use a 64-bit build machine, and
|
||||||
instead create a 32-bit target using `--with-target-bits=32`.
|
instead create a 32-bit target using `--with-target-bits=32`.
|
||||||
|
|
||||||
Note: The Windows 32-bit x86 port is deprecated and may be removed in a future release.
|
|
||||||
|
|
||||||
### Building on aarch64
|
### Building on aarch64
|
||||||
|
|
||||||
At a minimum, a machine with 8 cores is advisable, as well as 8 GB of RAM.
|
At a minimum, a machine with 8 cores is advisable, as well as 8 GB of RAM.
|
||||||
@@ -164,11 +162,11 @@ This table lists the OS versions used by Oracle when building the JDK. Such
|
|||||||
information is always subject to change, but this table is up to date at the
|
information is always subject to change, but this table is up to date at the
|
||||||
time of writing.
|
time of writing.
|
||||||
|
|
||||||
| Operating system | Vendor/version used |
|
Operating system Vendor/version used
|
||||||
| ----------------- | ---------------------------------- |
|
----------------- -------------------------------------------------------
|
||||||
| Linux | Oracle Enterprise Linux 6.4 / 7.6 |
|
Linux Oracle Enterprise Linux 6.4 / 7.6
|
||||||
| macOS | Mac OS X 10.13 (High Sierra) |
|
macOS Mac OS X 10.13 (High Sierra)
|
||||||
| Windows | Windows Server 2012 R2 |
|
Windows Windows Server 2012 R2
|
||||||
|
|
||||||
The double version numbers for Linux are due to the hybrid model
|
The double version numbers for Linux are due to the hybrid model
|
||||||
used at Oracle, where header files and external libraries from an older version
|
used at Oracle, where header files and external libraries from an older version
|
||||||
@@ -201,8 +199,6 @@ rule also applies to input to the build system, e.g. in arguments to
|
|||||||
`--with-msvcr-dll=c:\msvcr100.dll`. For details on this conversion, see the section
|
`--with-msvcr-dll=c:\msvcr100.dll`. For details on this conversion, see the section
|
||||||
on [Fixpath](#fixpath).
|
on [Fixpath](#fixpath).
|
||||||
|
|
||||||
Note: The Windows 32-bit x86 port is deprecated and may be removed in a future release.
|
|
||||||
|
|
||||||
#### Cygwin
|
#### Cygwin
|
||||||
|
|
||||||
A functioning [Cygwin](http://www.cygwin.com/) environment is required for
|
A functioning [Cygwin](http://www.cygwin.com/) environment is required for
|
||||||
@@ -475,19 +471,6 @@ rather than bundling the JDK's own copy.
|
|||||||
Use `--with-freetype-include=<path>` and `--with-freetype-lib=<path>`
|
Use `--with-freetype-include=<path>` and `--with-freetype-lib=<path>`
|
||||||
if `configure` does not automatically locate the platform FreeType files.
|
if `configure` does not automatically locate the platform FreeType files.
|
||||||
|
|
||||||
### Fontconfig
|
|
||||||
|
|
||||||
Fontconfig from [freedesktop.org Fontconfig](http://fontconfig.org) is required
|
|
||||||
on all platforms except Windows and macOS.
|
|
||||||
|
|
||||||
* To install on an apt-based Linux, try running `sudo apt-get install
|
|
||||||
libfontconfig-dev`.
|
|
||||||
* To install on an rpm-based Linux, try running `sudo yum install
|
|
||||||
fontconfig-devel`.
|
|
||||||
|
|
||||||
Use `--with-fontconfig-include=<path>` and `--with-fontconfig=<path>`
|
|
||||||
if `configure` does not automatically locate the platform Fontconfig files.
|
|
||||||
|
|
||||||
### CUPS
|
### CUPS
|
||||||
|
|
||||||
CUPS, [Common UNIX Printing System](http://www.cups.org) header files are
|
CUPS, [Common UNIX Printing System](http://www.cups.org) header files are
|
||||||
@@ -987,14 +970,14 @@ https://sourceware.org/autobook/autobook/autobook_17.html). If no
|
|||||||
targets are given, a native toolchain for the current platform will be
|
targets are given, a native toolchain for the current platform will be
|
||||||
created. Currently, at least the following targets are known to work:
|
created. Currently, at least the following targets are known to work:
|
||||||
|
|
||||||
| Supported devkit targets |
|
Supported devkit targets
|
||||||
| ------------------------ |
|
-------------------------
|
||||||
| x86_64-linux-gnu |
|
x86_64-linux-gnu
|
||||||
| aarch64-linux-gnu |
|
aarch64-linux-gnu
|
||||||
| arm-linux-gnueabihf |
|
arm-linux-gnueabihf
|
||||||
| ppc64-linux-gnu |
|
ppc64-linux-gnu
|
||||||
| ppc64le-linux-gnu |
|
ppc64le-linux-gnu
|
||||||
| s390x-linux-gnu |
|
s390x-linux-gnu
|
||||||
|
|
||||||
`BASE_OS` must be one of "OEL6" for Oracle Enterprise Linux 6 or
|
`BASE_OS` must be one of "OEL6" for Oracle Enterprise Linux 6 or
|
||||||
"Fedora" (if not specified "OEL6" will be the default). If the base OS
|
"Fedora" (if not specified "OEL6" will be the default). If the base OS
|
||||||
@@ -1164,7 +1147,7 @@ Note that X11 is needed even if you only want to build a headless JDK.
|
|||||||
### Cross compiling with Debian sysroots
|
### Cross compiling with Debian sysroots
|
||||||
|
|
||||||
Fortunately, you can create sysroots for foreign architectures with tools
|
Fortunately, you can create sysroots for foreign architectures with tools
|
||||||
provided by your OS. On Debian/Ubuntu systems, one could use `debootstrap` to
|
provided by your OS. On Debian/Ubuntu systems, one could use `qemu-deboostrap` to
|
||||||
create the *target* system chroot, which would have the native libraries and headers
|
create the *target* system chroot, which would have the native libraries and headers
|
||||||
specific to that *target* system. After that, we can use the cross-compiler on the *build*
|
specific to that *target* system. After that, we can use the cross-compiler on the *build*
|
||||||
system, pointing into chroot to get the build dependencies right. This allows building
|
system, pointing into chroot to get the build dependencies right. This allows building
|
||||||
@@ -1179,7 +1162,7 @@ For example, cross-compiling to AArch64 from x86_64 could be done like this:
|
|||||||
|
|
||||||
* Create chroot on the *build* system, configuring it for *target* system:
|
* Create chroot on the *build* system, configuring it for *target* system:
|
||||||
```
|
```
|
||||||
sudo debootstrap \
|
sudo qemu-debootstrap \
|
||||||
--arch=arm64 \
|
--arch=arm64 \
|
||||||
--verbose \
|
--verbose \
|
||||||
--include=fakeroot,symlinks,build-essential,libx11-dev,libxext-dev,libxrender-dev,libxrandr-dev,libxtst-dev,libxt-dev,libcups2-dev,libfontconfig1-dev,libasound2-dev,libfreetype6-dev,libpng-dev,libffi-dev \
|
--include=fakeroot,symlinks,build-essential,libx11-dev,libxext-dev,libxrender-dev,libxrandr-dev,libxtst-dev,libxt-dev,libcups2-dev,libfontconfig1-dev,libasound2-dev,libfreetype6-dev,libpng-dev,libffi-dev \
|
||||||
@@ -1187,8 +1170,6 @@ For example, cross-compiling to AArch64 from x86_64 could be done like this:
|
|||||||
buster \
|
buster \
|
||||||
~/sysroot-arm64 \
|
~/sysroot-arm64 \
|
||||||
http://httpredir.debian.org/debian/
|
http://httpredir.debian.org/debian/
|
||||||
# If the target architecture is `riscv64`,
|
|
||||||
# the path should be `debian-ports` instead of `debian`.
|
|
||||||
```
|
```
|
||||||
|
|
||||||
* Make sure the symlinks inside the newly created chroot point to proper locations:
|
* Make sure the symlinks inside the newly created chroot point to proper locations:
|
||||||
@@ -1221,22 +1202,21 @@ it might require a little nudge with:
|
|||||||
|
|
||||||
Architectures that are known to successfully cross-compile like this are:
|
Architectures that are known to successfully cross-compile like this are:
|
||||||
|
|
||||||
| Target | Debian tree | Debian arch | `--openjdk-target=...` | `--with-jvm-variants=...` |
|
Target Debian tree Debian arch `--openjdk-target=...` `--with-jvm-variants=...`
|
||||||
| ------------ | ------------ | ------------- | ------------------------ | ------------------------- |
|
------------ ------------ ------------- ------------------------ --------------
|
||||||
| x86 | buster | i386 | i386-linux-gnu | (all) |
|
x86 buster i386 i386-linux-gnu (all)
|
||||||
| arm | buster | armhf | arm-linux-gnueabihf | (all) |
|
arm buster armhf arm-linux-gnueabihf (all)
|
||||||
| aarch64 | buster | arm64 | aarch64-linux-gnu | (all) |
|
aarch64 buster arm64 aarch64-linux-gnu (all)
|
||||||
| ppc64le | buster | ppc64el | powerpc64le-linux-gnu | (all) |
|
ppc64le buster ppc64el powerpc64le-linux-gnu (all)
|
||||||
| s390x | buster | s390x | s390x-linux-gnu | (all) |
|
s390x buster s390x s390x-linux-gnu (all)
|
||||||
| mipsle | buster | mipsel | mipsel-linux-gnu | zero |
|
mipsle buster mipsel mipsel-linux-gnu zero
|
||||||
| mips64le | buster | mips64el | mips64el-linux-gnueabi64 | zero |
|
mips64le buster mips64el mips64el-linux-gnueabi64 zero
|
||||||
| armel | buster | arm | arm-linux-gnueabi | zero |
|
armel buster arm arm-linux-gnueabi zero
|
||||||
| ppc | sid | powerpc | powerpc-linux-gnu | zero |
|
ppc sid powerpc powerpc-linux-gnu zero
|
||||||
| ppc64be | sid | ppc64 | powerpc64-linux-gnu | (all) |
|
ppc64be sid ppc64 powerpc64-linux-gnu (all)
|
||||||
| m68k | sid | m68k | m68k-linux-gnu | zero |
|
m68k sid m68k m68k-linux-gnu zero
|
||||||
| alpha | sid | alpha | alpha-linux-gnu | zero |
|
alpha sid alpha alpha-linux-gnu zero
|
||||||
| sh4 | sid | sh4 | sh4-linux-gnu | zero |
|
sh4 sid sh4 sh4-linux-gnu zero
|
||||||
| riscv64 | sid | riscv64 | riscv64-linux-gnu | (all) |
|
|
||||||
|
|
||||||
### Building for ARM/aarch64
|
### Building for ARM/aarch64
|
||||||
|
|
||||||
@@ -1246,44 +1226,6 @@ available using `--with-abi-profile`: arm-vfp-sflt, arm-vfp-hflt, arm-sflt,
|
|||||||
armv5-vfp-sflt, armv6-vfp-hflt. Note that soft-float ABIs are no longer
|
armv5-vfp-sflt, armv6-vfp-hflt. Note that soft-float ABIs are no longer
|
||||||
properly supported by the JDK.
|
properly supported by the JDK.
|
||||||
|
|
||||||
### Building for RISC-V
|
|
||||||
|
|
||||||
The RISC-V community provides a basic
|
|
||||||
[GNU compiler toolchain](https://github.com/riscv-collab/riscv-gnu-toolchain),
|
|
||||||
but the [external libraries](#External-Library-Requirements) required by OpenJDK
|
|
||||||
complicate the building process. The placeholder `<toolchain-installed-path>`
|
|
||||||
shown below is the path where you want to install the toolchain.
|
|
||||||
|
|
||||||
* Install the RISC-V GNU compiler toolchain:
|
|
||||||
```
|
|
||||||
git clone --recursive https://github.com/riscv-collab/riscv-gnu-toolchain
|
|
||||||
cd riscv-gnu-toolchain
|
|
||||||
./configure --prefix=<toolchain-installed-path>
|
|
||||||
make linux
|
|
||||||
export PATH=<toolchain-installed-path>/bin:$PATH
|
|
||||||
```
|
|
||||||
|
|
||||||
* Cross-compile all the required libraries:
|
|
||||||
```
|
|
||||||
# An example for libffi
|
|
||||||
git clone https://github.com/libffi/libffi
|
|
||||||
cd libffi
|
|
||||||
./configure --host=riscv64-unknown-linux-gnu --prefix=<toolchain-installed-path>/sysroot/usr
|
|
||||||
make
|
|
||||||
make install
|
|
||||||
```
|
|
||||||
|
|
||||||
* Configure and build OpenJDK:
|
|
||||||
```
|
|
||||||
bash configure \
|
|
||||||
--with-boot-jdk=$BOOT_JDK \
|
|
||||||
--openjdk-target=riscv64-linux-gnu \
|
|
||||||
--with-sysroot=<toolchain-installed-path>/sysroot \
|
|
||||||
--with-toolchain-path=<toolchain-installed-path>/bin \
|
|
||||||
--with-extra-path=<toolchain-installed-path>/bin
|
|
||||||
make images
|
|
||||||
```
|
|
||||||
|
|
||||||
### Building for musl
|
### Building for musl
|
||||||
|
|
||||||
Just like it's possible to cross-compile for a different CPU, it's possible to
|
Just like it's possible to cross-compile for a different CPU, it's possible to
|
||||||
|
|||||||
@@ -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
|
|
||||||
```
|
|
||||||
|
|||||||
@@ -426,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>
|
||||||
|
|||||||
@@ -378,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`).
|
||||||
|
|||||||
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)
|
||||||
|
|||||||
@@ -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,7 +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 \
|
|
||||||
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), \
|
||||||
@@ -110,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 \
|
||||||
|
|||||||
@@ -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,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
|
||||||
@@ -110,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)
|
||||||
|
|||||||
@@ -125,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
|
||||||
|
|
||||||
|
|||||||
@@ -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 $@)))'."
|
||||||
|
|||||||
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) 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
|
||||||
@@ -257,46 +257,6 @@ $(eval $(call SetupTarget, hotspot-ide-project, \
|
|||||||
ARGS := -I$(TOPDIR)/make/hotspot, \
|
ARGS := -I$(TOPDIR)/make/hotspot, \
|
||||||
))
|
))
|
||||||
|
|
||||||
$(eval $(call SetupTarget, eclipse-java-env, \
|
|
||||||
MAKEFILE := ide/eclipse/CreateWorkspace, \
|
|
||||||
ARGS := --always-make WORKSPACE=java SHARED=false, \
|
|
||||||
))
|
|
||||||
|
|
||||||
$(eval $(call SetupTarget, eclipse-hotspot-env, \
|
|
||||||
MAKEFILE := ide/eclipse/CreateWorkspace, \
|
|
||||||
ARGS := --always-make WORKSPACE=hotspot SHARED=false, \
|
|
||||||
))
|
|
||||||
|
|
||||||
$(eval $(call SetupTarget, eclipse-native-env, \
|
|
||||||
MAKEFILE := ide/eclipse/CreateWorkspace, \
|
|
||||||
ARGS := --always-make WORKSPACE=native SHARED=false, \
|
|
||||||
))
|
|
||||||
|
|
||||||
$(eval $(call SetupTarget, eclipse-mixed-env, \
|
|
||||||
MAKEFILE := ide/eclipse/CreateWorkspace, \
|
|
||||||
ARGS := --always-make SHARED=false, \
|
|
||||||
))
|
|
||||||
|
|
||||||
$(eval $(call SetupTarget, eclipse-shared-java-env, \
|
|
||||||
MAKEFILE := ide/eclipse/CreateWorkspace, \
|
|
||||||
ARGS := --always-make WORKSPACE=java SHARED=true, \
|
|
||||||
))
|
|
||||||
|
|
||||||
$(eval $(call SetupTarget, eclipse-shared-hotspot-env, \
|
|
||||||
MAKEFILE := ide/eclipse/CreateWorkspace, \
|
|
||||||
ARGS := --always-make WORKSPACE=hotspot SHARED=true, \
|
|
||||||
))
|
|
||||||
|
|
||||||
$(eval $(call SetupTarget, eclipse-shared-native-env, \
|
|
||||||
MAKEFILE := ide/eclipse/CreateWorkspace, \
|
|
||||||
ARGS := --always-make WORKSPACE=native SHARED=true, \
|
|
||||||
))
|
|
||||||
|
|
||||||
$(eval $(call SetupTarget, eclipse-shared-mixed-env, \
|
|
||||||
MAKEFILE := ide/eclipse/CreateWorkspace, \
|
|
||||||
ARGS := --always-make SHARED=true, \
|
|
||||||
))
|
|
||||||
|
|
||||||
ALL_TARGETS += $(HOTSPOT_VARIANT_TARGETS) $(HOTSPOT_VARIANT_GENSRC_TARGETS) \
|
ALL_TARGETS += $(HOTSPOT_VARIANT_TARGETS) $(HOTSPOT_VARIANT_GENSRC_TARGETS) \
|
||||||
$(HOTSPOT_VARIANT_LIBS_TARGETS)
|
$(HOTSPOT_VARIANT_LIBS_TARGETS)
|
||||||
|
|
||||||
@@ -747,22 +707,6 @@ 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, \
|
DEPS := interim-langtools exploded-image, \
|
||||||
@@ -1243,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
|
||||||
@@ -1414,6 +1354,14 @@ create-main-targets-include:
|
|||||||
@$(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))
|
||||||
|
|||||||
@@ -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)), )
|
||||||
@@ -203,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 \
|
||||||
@@ -746,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
|
||||||
@@ -760,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
|
||||||
|
|||||||
@@ -295,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
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -478,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)
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -103,7 +103,3 @@ JVM_FEATURES_server := cds compiler1 compiler2 g1gc serialgc
|
|||||||
override EXTRA_CFLAGS :=
|
override EXTRA_CFLAGS :=
|
||||||
override EXTRA_CXXFLAGS :=
|
override EXTRA_CXXFLAGS :=
|
||||||
override EXTRA_LDFLAGS :=
|
override EXTRA_LDFLAGS :=
|
||||||
|
|
||||||
# hsdis is not needed
|
|
||||||
HSDIS_BACKEND := none
|
|
||||||
ENABLE_HSDIS_BUNDLING := false
|
|
||||||
|
|||||||
@@ -86,7 +86,6 @@ PLATFORM_SETUP_OPENJDK_BUILD_AND_TARGET
|
|||||||
|
|
||||||
# Continue setting up basic stuff. Most remaining code require fundamental tools.
|
# Continue setting up basic stuff. Most remaining code require fundamental tools.
|
||||||
BASIC_SETUP_PATHS
|
BASIC_SETUP_PATHS
|
||||||
BASIC_SETUP_TOOLS
|
|
||||||
BASIC_SETUP_BUILD_ENV
|
BASIC_SETUP_BUILD_ENV
|
||||||
|
|
||||||
# Check if it's a pure open build or if custom sources are to be used.
|
# Check if it's a pure open build or if custom sources are to be used.
|
||||||
@@ -223,10 +222,6 @@ JDKOPT_SETUP_UNDEFINED_BEHAVIOR_SANITIZER
|
|||||||
# LeakSanitizer
|
# LeakSanitizer
|
||||||
JDKOPT_SETUP_LEAK_SANITIZER
|
JDKOPT_SETUP_LEAK_SANITIZER
|
||||||
|
|
||||||
# Fallback linker
|
|
||||||
# This needs to go before 'LIB_DETERMINE_DEPENDENCIES'
|
|
||||||
JDKOPT_SETUP_FALLBACK_LINKER
|
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
#
|
#
|
||||||
# Check dependencies for external and internal libraries.
|
# Check dependencies for external and internal libraries.
|
||||||
@@ -254,7 +249,6 @@ HOTSPOT_SETUP_MISC
|
|||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
LIB_TESTS_ENABLE_DISABLE_FAILURE_HANDLER
|
LIB_TESTS_ENABLE_DISABLE_FAILURE_HANDLER
|
||||||
LIB_TESTS_ENABLE_DISABLE_JTREG_TEST_THREAD_FACTORY
|
|
||||||
|
|
||||||
JDKOPT_ENABLE_DISABLE_GENERATE_CLASSLIST
|
JDKOPT_ENABLE_DISABLE_GENERATE_CLASSLIST
|
||||||
JDKOPT_EXCLUDE_TRANSLATIONS
|
JDKOPT_EXCLUDE_TRANSLATIONS
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -51,14 +51,6 @@ AC_DEFUN([FLAGS_SETUP_SHARED_LIBS],
|
|||||||
SET_SHARED_LIBRARY_NAME='-Wl,-install_name,@rpath/[$]1'
|
SET_SHARED_LIBRARY_NAME='-Wl,-install_name,@rpath/[$]1'
|
||||||
SET_SHARED_LIBRARY_MAPFILE='-Wl,-exported_symbols_list,[$]1'
|
SET_SHARED_LIBRARY_MAPFILE='-Wl,-exported_symbols_list,[$]1'
|
||||||
|
|
||||||
elif test "x$OPENJDK_TARGET_OS" = xaix; then
|
|
||||||
# Linking is different on aix
|
|
||||||
SHARED_LIBRARY_FLAGS="-shared -Wl,-bM:SRE -Wl,-bnoentry"
|
|
||||||
SET_EXECUTABLE_ORIGIN=""
|
|
||||||
SET_SHARED_LIBRARY_ORIGIN=''
|
|
||||||
SET_SHARED_LIBRARY_NAME=''
|
|
||||||
SET_SHARED_LIBRARY_MAPFILE=''
|
|
||||||
|
|
||||||
else
|
else
|
||||||
# Default works for linux, might work on other platforms as well.
|
# Default works for linux, might work on other platforms as well.
|
||||||
SHARED_LIBRARY_FLAGS='-shared'
|
SHARED_LIBRARY_FLAGS='-shared'
|
||||||
@@ -197,10 +189,6 @@ AC_DEFUN([FLAGS_SETUP_WARNINGS],
|
|||||||
WARNINGS_ENABLE_ALL_CXXFLAGS="$WARNINGS_ENABLE_ALL_CFLAGS $WARNINGS_ENABLE_ADDITIONAL_CXX"
|
WARNINGS_ENABLE_ALL_CXXFLAGS="$WARNINGS_ENABLE_ALL_CFLAGS $WARNINGS_ENABLE_ADDITIONAL_CXX"
|
||||||
|
|
||||||
DISABLED_WARNINGS="unused-parameter unused"
|
DISABLED_WARNINGS="unused-parameter unused"
|
||||||
# gcc10/11 on ppc generate lots of abi warnings about layout of aggregates containing vectors
|
|
||||||
if test "x$OPENJDK_TARGET_CPU_ARCH" = "xppc"; then
|
|
||||||
DISABLED_WARNINGS="$DISABLED_WARNINGS psabi"
|
|
||||||
fi
|
|
||||||
;;
|
;;
|
||||||
|
|
||||||
clang)
|
clang)
|
||||||
@@ -214,6 +202,7 @@ AC_DEFUN([FLAGS_SETUP_WARNINGS],
|
|||||||
WARNINGS_ENABLE_ALL="-Wall -Wextra -Wformat=2 $WARNINGS_ENABLE_ADDITIONAL"
|
WARNINGS_ENABLE_ALL="-Wall -Wextra -Wformat=2 $WARNINGS_ENABLE_ADDITIONAL"
|
||||||
|
|
||||||
DISABLED_WARNINGS="unknown-warning-option unused-parameter unused"
|
DISABLED_WARNINGS="unknown-warning-option unused-parameter unused"
|
||||||
|
|
||||||
;;
|
;;
|
||||||
|
|
||||||
xlc)
|
xlc)
|
||||||
@@ -291,15 +280,9 @@ AC_DEFUN([FLAGS_SETUP_OPTIMIZATION],
|
|||||||
C_O_FLAG_NONE="${C_O_FLAG_NONE} ${DISABLE_FORTIFY_CFLAGS}"
|
C_O_FLAG_NONE="${C_O_FLAG_NONE} ${DISABLE_FORTIFY_CFLAGS}"
|
||||||
fi
|
fi
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xclang; then
|
elif test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||||
if test "x$OPENJDK_TARGET_OS" = xaix; then
|
C_O_FLAG_HIGHEST_JVM="-O3"
|
||||||
C_O_FLAG_HIGHEST_JVM="-O3 -finline-functions"
|
C_O_FLAG_HIGHEST="-O3"
|
||||||
C_O_FLAG_HIGHEST="-O3 -finline-functions"
|
C_O_FLAG_HI="-O3"
|
||||||
C_O_FLAG_HI="-O3 -finline-functions"
|
|
||||||
else
|
|
||||||
C_O_FLAG_HIGHEST_JVM="-O3"
|
|
||||||
C_O_FLAG_HIGHEST="-O3"
|
|
||||||
C_O_FLAG_HI="-O3"
|
|
||||||
fi
|
|
||||||
C_O_FLAG_NORM="-O2"
|
C_O_FLAG_NORM="-O2"
|
||||||
C_O_FLAG_DEBUG_JVM="-O0"
|
C_O_FLAG_DEBUG_JVM="-O0"
|
||||||
C_O_FLAG_SIZE="-Os"
|
C_O_FLAG_SIZE="-Os"
|
||||||
@@ -471,9 +454,6 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
|
|||||||
# so for debug we build with '-qpic=large -bbigtoc'.
|
# so for debug we build with '-qpic=large -bbigtoc'.
|
||||||
DEBUG_CFLAGS_JVM="-qpic=large"
|
DEBUG_CFLAGS_JVM="-qpic=large"
|
||||||
fi
|
fi
|
||||||
if test "x$TOOLCHAIN_TYPE" = xclang && test "x$OPENJDK_TARGET_OS" = xaix; then
|
|
||||||
DEBUG_CFLAGS_JVM="-fpic -mcmodel=large"
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "x$DEBUG_LEVEL" != xrelease; then
|
if test "x$DEBUG_LEVEL" != xrelease; then
|
||||||
@@ -496,7 +476,8 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
|
|||||||
ALWAYS_DEFINES_JDK="-DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0602 \
|
ALWAYS_DEFINES_JDK="-DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0602 \
|
||||||
-D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE -DWIN32 -DIAL"
|
-D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE -DWIN32 -DIAL"
|
||||||
ALWAYS_DEFINES_JVM="-DNOMINMAX -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0602 \
|
ALWAYS_DEFINES_JVM="-DNOMINMAX -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0602 \
|
||||||
-D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE"
|
-D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE \
|
||||||
|
-D_WINSOCK_DEPRECATED_NO_WARNINGS"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
@@ -509,14 +490,8 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
|
|||||||
-fvisibility=hidden -fno-strict-aliasing -fno-omit-frame-pointer"
|
-fvisibility=hidden -fno-strict-aliasing -fno-omit-frame-pointer"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "x$TOOLCHAIN_TYPE" = xclang && test "x$OPENJDK_TARGET_OS" = xaix; then
|
|
||||||
# clang compiler on aix needs -ffunction-sections
|
|
||||||
TOOLCHAIN_CFLAGS_JVM="$TOOLCHAIN_CFLAGS_JVM -ffunction-sections -ftls-model -fno-math-errno -fstack-protector"
|
|
||||||
TOOLCHAIN_CFLAGS_JDK="-ffunction-sections -fsigned-char -fstack-protector"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "x$TOOLCHAIN_TYPE" = xgcc; then
|
if test "x$TOOLCHAIN_TYPE" = xgcc; then
|
||||||
TOOLCHAIN_CFLAGS_JVM="$TOOLCHAIN_CFLAGS_JVM -fstack-protector"
|
TOOLCHAIN_CFLAGS_JVM="$TOOLCHAIN_CFLAGS_JVM -fcheck-new -fstack-protector"
|
||||||
TOOLCHAIN_CFLAGS_JDK="-pipe -fstack-protector"
|
TOOLCHAIN_CFLAGS_JDK="-pipe -fstack-protector"
|
||||||
# reduce lib size on linux in link step, this needs also special compile flags
|
# reduce lib size on linux in link step, this needs also special compile flags
|
||||||
# do this on s390x also for libjvm (where serviceability agent is not supported)
|
# do this on s390x also for libjvm (where serviceability agent is not supported)
|
||||||
@@ -623,9 +598,6 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
|
|||||||
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
|
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||||
PICFLAG="-fPIC"
|
PICFLAG="-fPIC"
|
||||||
PIEFLAG="-fPIE"
|
PIEFLAG="-fPIE"
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xclang && test "x$OPENJDK_TARGET_OS" = xaix; then
|
|
||||||
JVM_PICFLAG="-fpic -mcmodel=large -Wl,-bbigtoc
|
|
||||||
JDK_PICFLAG="-fpic
|
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
|
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
|
||||||
# '-qpic' defaults to 'qpic=small'. This means that the compiler generates only
|
# '-qpic' defaults to 'qpic=small'. This means that the compiler generates only
|
||||||
# one instruction for accessing the TOC. If the TOC grows larger than 64K, the linker
|
# one instruction for accessing the TOC. If the TOC grows larger than 64K, the linker
|
||||||
@@ -662,7 +634,7 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
|
|||||||
STATIC_LIBS_CFLAGS="-DSTATIC_BUILD=1"
|
STATIC_LIBS_CFLAGS="-DSTATIC_BUILD=1"
|
||||||
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
|
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||||
STATIC_LIBS_CFLAGS="$STATIC_LIBS_CFLAGS -ffunction-sections -fdata-sections \
|
STATIC_LIBS_CFLAGS="$STATIC_LIBS_CFLAGS -ffunction-sections -fdata-sections \
|
||||||
-DJNIEXPORT='__attribute__((visibility(\"default\")))'"
|
-DJNIEXPORT='__attribute__((visibility(\"hidden\")))'"
|
||||||
else
|
else
|
||||||
STATIC_LIBS_CFLAGS="$STATIC_LIBS_CFLAGS -DJNIEXPORT="
|
STATIC_LIBS_CFLAGS="$STATIC_LIBS_CFLAGS -DJNIEXPORT="
|
||||||
fi
|
fi
|
||||||
@@ -771,9 +743,6 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP],
|
|||||||
$1_CFLAGS_CPU_JDK="${$1_CFLAGS_CPU_JDK} -fno-omit-frame-pointer"
|
$1_CFLAGS_CPU_JDK="${$1_CFLAGS_CPU_JDK} -fno-omit-frame-pointer"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if test "x$OPENJDK_TARGET_OS" = xaix; then
|
|
||||||
$1_CFLAGS_CPU="-mcpu=pwr8"
|
|
||||||
fi
|
|
||||||
|
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
|
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
|
||||||
if test "x$FLAGS_CPU" = xppc64; then
|
if test "x$FLAGS_CPU" = xppc64; then
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -70,16 +70,12 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
BASIC_LDFLAGS_JVM_ONLY=""
|
BASIC_LDFLAGS_JVM_ONLY="-Wl,-O1"
|
||||||
|
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xclang; then
|
elif test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||||
BASIC_LDFLAGS_JVM_ONLY="-mno-omit-leaf-frame-pointer -mstack-alignment=16 \
|
BASIC_LDFLAGS_JVM_ONLY="-mno-omit-leaf-frame-pointer -mstack-alignment=16 \
|
||||||
-fPIC"
|
-fPIC"
|
||||||
if test "x$OPENJDK_TARGET_OS" = xaix; then
|
|
||||||
BASIC_LDFLAGS="-Wl,-b64 -Wl,-brtl -Wl,-bnorwexec -Wl,-bnolibpath -Wl,-bnoexpall \
|
|
||||||
-Wl,-bernotok -Wl,-bdatapsize:64k -Wl,-btextpsize:64k -Wl,-bstackpsize:64k"
|
|
||||||
BASIC_LDFLAGS_JVM_ONLY="$BASIC_LDFLAGS_JVM_ONLY -Wl,-lC_r -Wl,-bbigtoc"
|
|
||||||
fi
|
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
|
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
|
||||||
BASIC_LDFLAGS="-b64 -brtl -bnorwexec -bnolibpath -bnoexpall -bernotok -btextpsize:64K \
|
BASIC_LDFLAGS="-b64 -brtl -bnorwexec -bnolibpath -bnoexpall -bernotok -btextpsize:64K \
|
||||||
-bdatapsize:64K -bstackpsize:64K"
|
-bdatapsize:64K -bstackpsize:64K"
|
||||||
@@ -92,8 +88,7 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
|
|||||||
BASIC_LDFLAGS_JVM_ONLY="-opt:icf,8 -subsystem:windows"
|
BASIC_LDFLAGS_JVM_ONLY="-opt:icf,8 -subsystem:windows"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if (test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang) \
|
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||||
&& test "x$OPENJDK_TARGET_OS" != xaix; then
|
|
||||||
if test -n "$HAS_NOEXECSTACK"; then
|
if test -n "$HAS_NOEXECSTACK"; then
|
||||||
BASIC_LDFLAGS="$BASIC_LDFLAGS -Wl,-z,noexecstack"
|
BASIC_LDFLAGS="$BASIC_LDFLAGS -Wl,-z,noexecstack"
|
||||||
fi
|
fi
|
||||||
@@ -121,14 +116,6 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
|
|||||||
if test "x$DEBUG_LEVEL" != xrelease; then
|
if test "x$DEBUG_LEVEL" != xrelease; then
|
||||||
DEBUGLEVEL_LDFLAGS_JVM_ONLY="$DEBUGLEVEL_LDFLAGS_JVM_ONLY -bbigtoc"
|
DEBUGLEVEL_LDFLAGS_JVM_ONLY="$DEBUGLEVEL_LDFLAGS_JVM_ONLY -bbigtoc"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xclang && test "x$OPENJDK_TARGET_OS" = xaix; then
|
|
||||||
# We need '-fpic' or '-fpic -mcmodel=large -Wl,-bbigtoc' if the TOC overflows.
|
|
||||||
# Hotspot now overflows its 64K TOC (currently only for debug),
|
|
||||||
# so we build with '-fpic -mcmodel=large -Wl,-bbigtoc'.
|
|
||||||
if test "x$DEBUG_LEVEL" != xrelease; then
|
|
||||||
DEBUGLEVEL_LDFLAGS_JVM_ONLY="$DEBUGLEVEL_LDFLAGS_JVM_ONLY -Wl,-bbigtoc"
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Setup LDFLAGS for linking executables
|
# Setup LDFLAGS for linking executables
|
||||||
|
|||||||
@@ -234,6 +234,31 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_JDK_OPTIONS],
|
|||||||
fi
|
fi
|
||||||
AC_SUBST(HOTSPOT_OVERRIDE_LIBPATH)
|
AC_SUBST(HOTSPOT_OVERRIDE_LIBPATH)
|
||||||
|
|
||||||
|
# Should we build the client for the JAWS screen reader?
|
||||||
|
if test "x$OPENJDK_TARGET_OS" = xwindows; then
|
||||||
|
AC_MSG_CHECKING([if JAWS client support is enabled])
|
||||||
|
|
||||||
|
A11Y_JAWS_ANNOUNCING_ENABLED=true
|
||||||
|
AC_ARG_ENABLE(
|
||||||
|
[jaws-client],
|
||||||
|
[AS_HELP_STRING([--disable-jaws-client], [Set to disable to exclude the client for the JAWS screen reader from the build])],
|
||||||
|
[
|
||||||
|
if test "x$ENABLE_HEADLESS_ONLY" = xtrue; then
|
||||||
|
AC_MSG_WARN([--[enable|disable]-jaws-client[=*] flags are ignored for headless builds])
|
||||||
|
elif test "x$enableval" != xyes; then
|
||||||
|
A11Y_JAWS_ANNOUNCING_ENABLED=false
|
||||||
|
fi
|
||||||
|
]
|
||||||
|
)
|
||||||
|
if test "x$ENABLE_HEADLESS_ONLY" = xtrue; then
|
||||||
|
A11Y_JAWS_ANNOUNCING_ENABLED=false
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_MSG_RESULT([$A11Y_JAWS_ANNOUNCING_ENABLED])
|
||||||
|
else
|
||||||
|
A11Y_JAWS_ANNOUNCING_ENABLED=false
|
||||||
|
fi
|
||||||
|
AC_SUBST(A11Y_JAWS_ANNOUNCING_ENABLED)
|
||||||
])
|
])
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
@@ -822,9 +847,6 @@ AC_DEFUN([JDKOPT_CHECK_CODESIGN_PARAMS],
|
|||||||
$RM "$CODESIGN_TESTFILE"
|
$RM "$CODESIGN_TESTFILE"
|
||||||
$TOUCH "$CODESIGN_TESTFILE"
|
$TOUCH "$CODESIGN_TESTFILE"
|
||||||
CODESIGN_SUCCESS=false
|
CODESIGN_SUCCESS=false
|
||||||
|
|
||||||
$ECHO "check codesign, calling $CODESIGN $PARAMS $CODESIGN_TESTFILE" >&AS_MESSAGE_LOG_FD
|
|
||||||
|
|
||||||
eval \"$CODESIGN\" $PARAMS \"$CODESIGN_TESTFILE\" 2>&AS_MESSAGE_LOG_FD \
|
eval \"$CODESIGN\" $PARAMS \"$CODESIGN_TESTFILE\" 2>&AS_MESSAGE_LOG_FD \
|
||||||
>&AS_MESSAGE_LOG_FD && CODESIGN_SUCCESS=true
|
>&AS_MESSAGE_LOG_FD && CODESIGN_SUCCESS=true
|
||||||
$RM "$CODESIGN_TESTFILE"
|
$RM "$CODESIGN_TESTFILE"
|
||||||
@@ -906,22 +928,3 @@ AC_DEFUN([JDKOPT_SETUP_MACOSX_SIGNING],
|
|||||||
AC_SUBST(MACOSX_CODESIGN_MODE)
|
AC_SUBST(MACOSX_CODESIGN_MODE)
|
||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
|
|
||||||
################################################################################
|
|
||||||
#
|
|
||||||
# fallback linker
|
|
||||||
#
|
|
||||||
AC_DEFUN_ONCE([JDKOPT_SETUP_FALLBACK_LINKER],
|
|
||||||
[
|
|
||||||
FALLBACK_LINKER_DEFAULT=false
|
|
||||||
|
|
||||||
if HOTSPOT_CHECK_JVM_VARIANT(zero); then
|
|
||||||
FALLBACK_LINKER_DEFAULT=true
|
|
||||||
fi
|
|
||||||
|
|
||||||
UTIL_ARG_ENABLE(NAME: fallback-linker, DEFAULT: $FALLBACK_LINKER_DEFAULT,
|
|
||||||
RESULT: ENABLE_FALLBACK_LINKER,
|
|
||||||
DESC: [enable libffi-based fallback implementation of java.lang.foreign.Linker],
|
|
||||||
CHECKING_MSG: [if fallback linker enabled])
|
|
||||||
AC_SUBST(ENABLE_FALLBACK_LINKER)
|
|
||||||
])
|
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -247,14 +247,8 @@ AC_DEFUN_ONCE([JVM_FEATURES_CHECK_CDS],
|
|||||||
AC_DEFUN_ONCE([JVM_FEATURES_CHECK_DTRACE],
|
AC_DEFUN_ONCE([JVM_FEATURES_CHECK_DTRACE],
|
||||||
[
|
[
|
||||||
JVM_FEATURES_CHECK_AVAILABILITY(dtrace, [
|
JVM_FEATURES_CHECK_AVAILABILITY(dtrace, [
|
||||||
AC_MSG_CHECKING([for dtrace tool and platform support])
|
AC_MSG_CHECKING([for dtrace tool])
|
||||||
if test "x$OPENJDK_TARGET_CPU_ARCH" = "xppc"; then
|
if test "x$DTRACE" != "x" && test -x "$DTRACE"; then
|
||||||
AC_MSG_RESULT([no, $OPENJDK_TARGET_CPU_ARCH])
|
|
||||||
AVAILABLE=false
|
|
||||||
elif test "x$OPENJDK_TARGET_CPU_ARCH" = "xs390"; then
|
|
||||||
AC_MSG_RESULT([no, $OPENJDK_TARGET_CPU_ARCH])
|
|
||||||
AVAILABLE=false
|
|
||||||
elif test "x$DTRACE" != "x" && test -x "$DTRACE"; then
|
|
||||||
AC_MSG_RESULT([$DTRACE])
|
AC_MSG_RESULT([$DTRACE])
|
||||||
else
|
else
|
||||||
AC_MSG_RESULT([no])
|
AC_MSG_RESULT([no])
|
||||||
|
|||||||
121
make/autoconf/lib-nvdacontrollerclient.m4
Normal file
121
make/autoconf/lib-nvdacontrollerclient.m4
Normal file
@@ -0,0 +1,121 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
# Copyright (c) 2022, JetBrains s.r.o.. 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Setup nvdacontrollerclient (The library for communication with
|
||||||
|
# NVDA - a screen reader for Microsoft Windows)
|
||||||
|
################################################################################
|
||||||
|
AC_DEFUN_ONCE([LIB_SETUP_NVDACONTROLLERCLIENT], [
|
||||||
|
# To enable NVDA, user specifies neither --with-nvdacontrollerclient or
|
||||||
|
# a pair (--with-nvdacontrollerclient-include, --with-nvdacontrollerclient-lib)
|
||||||
|
AC_ARG_WITH(nvdacontrollerclient, [AS_HELP_STRING([--with-nvdacontrollerclient],
|
||||||
|
[specify prefix directory for the NVDA Controller Client library package
|
||||||
|
(expecting headers and libs under PATH/<target-arch>/)])])
|
||||||
|
AC_ARG_WITH(nvdacontrollerclient-include, [AS_HELP_STRING([--with-nvdacontrollerclient-include],
|
||||||
|
[specify directory for the NVDA Controller Client include files])])
|
||||||
|
AC_ARG_WITH(nvdacontrollerclient-lib, [AS_HELP_STRING([--with-nvdacontrollerclient-lib],
|
||||||
|
[specify directory for the NVDA Controller Client library])])
|
||||||
|
|
||||||
|
NVDACONTROLLERCLIENT_FOUND=no
|
||||||
|
NVDACONTROLLERCLIENT_LIB=
|
||||||
|
NVDACONTROLLERCLIENT_DLL=
|
||||||
|
NVDACONTROLLERCLIENT_CFLAGS=
|
||||||
|
|
||||||
|
if test "x${NEEDS_LIB_NVDACONTROLLERCLIENT}" = "xtrue" ; then
|
||||||
|
if (test "x${with_nvdacontrollerclient_include}" = "x" && test "x${with_nvdacontrollerclient_lib}" != "x") || \
|
||||||
|
(test "x${with_nvdacontrollerclient_include}" != "x" && test "x${with_nvdacontrollerclient_lib}" = "x") ; then
|
||||||
|
AC_MSG_ERROR([Must specify both or neither of --with-nvdacontrollerclient-include and --with-nvdacontrollerclient-lib])
|
||||||
|
elif (test "x${with_nvdacontrollerclient}" != "x" && test "x${with_nvdacontrollerclient_include}" != "x") ; then
|
||||||
|
AC_MSG_ERROR([Must specify either --with-nvdacontrollerclient or a pair (--with-nvdacontrollerclient-include, --with-nvdacontrollerclient-lib)])
|
||||||
|
fi
|
||||||
|
|
||||||
|
if (test "x${with_nvdacontrollerclient}" != "x") || \
|
||||||
|
(test "x${with_nvdacontrollerclient_include}" != "x" && test "x${with_nvdacontrollerclient_lib}" != "x") ; then
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([for nvdacontrollerclient])
|
||||||
|
|
||||||
|
if test "x${OPENJDK_TARGET_OS}" != "xwindows" ; then
|
||||||
|
AC_MSG_ERROR([--with-nvdacontrollerclient[-*] flags are applicable only to Windows builds])
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "x${OPENJDK_TARGET_CPU_ARCH}" = "xaarch64" ; then
|
||||||
|
NVDACONTROLLERCLIENT_BIN_BASENAME="nvdaControllerClient32"
|
||||||
|
NVDACONTROLLERCLIENT_ARCHDIR="arm64"
|
||||||
|
elif test "x${OPENJDK_TARGET_CPU_ARCH}" = "xx86" && test "x${OPENJDK_TARGET_CPU_BITS}" = "x64" ; then
|
||||||
|
NVDACONTROLLERCLIENT_BIN_BASENAME="nvdaControllerClient64"
|
||||||
|
NVDACONTROLLERCLIENT_ARCHDIR="x64"
|
||||||
|
elif test "x${OPENJDK_TARGET_CPU_ARCH}" = "xx86" && test "x${OPENJDK_TARGET_CPU_BITS}" = "x32" ; then
|
||||||
|
NVDACONTROLLERCLIENT_BIN_BASENAME="nvdaControllerClient32"
|
||||||
|
NVDACONTROLLERCLIENT_ARCHDIR="x86"
|
||||||
|
else
|
||||||
|
AC_MSG_ERROR([The nvdacontrollerclient library exists only for x86_32, x86_64, AArch64 architectures])
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "x${with_nvdacontrollerclient}" != "x" ; then
|
||||||
|
# NVDACONTROLLERCLIENT_ARCHDIR is used only here
|
||||||
|
NVDACONTROLLERCLIENT_INC_PATH="${with_nvdacontrollerclient}/${NVDACONTROLLERCLIENT_ARCHDIR}"
|
||||||
|
NVDACONTROLLERCLIENT_BIN_PATH="${with_nvdacontrollerclient}/${NVDACONTROLLERCLIENT_ARCHDIR}"
|
||||||
|
else
|
||||||
|
NVDACONTROLLERCLIENT_INC_PATH="${with_nvdacontrollerclient_include}"
|
||||||
|
NVDACONTROLLERCLIENT_BIN_PATH="${with_nvdacontrollerclient_lib}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
POTENTIAL_NVDACONTROLLERCLIENT_DLL="${NVDACONTROLLERCLIENT_BIN_PATH}/${NVDACONTROLLERCLIENT_BIN_BASENAME}.dll"
|
||||||
|
POTENTIAL_NVDACONTROLLERCLIENT_LIB="${NVDACONTROLLERCLIENT_BIN_PATH}/${NVDACONTROLLERCLIENT_BIN_BASENAME}.lib"
|
||||||
|
POTENTIAL_NVDACONTROLLERCLIENT_EXP="${NVDACONTROLLERCLIENT_BIN_PATH}/${NVDACONTROLLERCLIENT_BIN_BASENAME}.exp"
|
||||||
|
|
||||||
|
if ! test -s "${POTENTIAL_NVDACONTROLLERCLIENT_DLL}" || \
|
||||||
|
! test -s "${POTENTIAL_NVDACONTROLLERCLIENT_LIB}" || \
|
||||||
|
! test -s "${POTENTIAL_NVDACONTROLLERCLIENT_EXP}" ; then
|
||||||
|
AC_MSG_ERROR([Could not find ${NVDACONTROLLERCLIENT_BIN_BASENAME}.dll and/or ${NVDACONTROLLERCLIENT_BIN_BASENAME}.lib and/or ${NVDACONTROLLERCLIENT_BIN_BASENAME}.exp inside ${NVDACONTROLLERCLIENT_BIN_PATH}])
|
||||||
|
fi
|
||||||
|
if ! test -s "${NVDACONTROLLERCLIENT_INC_PATH}/nvdaController.h" ; then
|
||||||
|
AC_MSG_ERROR([Could not find the header file nvdaController.h inside ${NVDACONTROLLERCLIENT_INC_PATH}])
|
||||||
|
fi
|
||||||
|
|
||||||
|
NVDACONTROLLERCLIENT_CFLAGS="-I${NVDACONTROLLERCLIENT_INC_PATH}"
|
||||||
|
NVDACONTROLLERCLIENT_DLL="${POTENTIAL_NVDACONTROLLERCLIENT_DLL}"
|
||||||
|
NVDACONTROLLERCLIENT_LIB="${POTENTIAL_NVDACONTROLLERCLIENT_LIB}"
|
||||||
|
NVDACONTROLLERCLIENT_FOUND=yes
|
||||||
|
|
||||||
|
AC_MSG_RESULT([includes at ${NVDACONTROLLERCLIENT_INC_PATH} ; binaries at ${NVDACONTROLLERCLIENT_BIN_PATH}])
|
||||||
|
fi
|
||||||
|
elif test "x${with_nvdacontrollerclient}" != "x" || \
|
||||||
|
test "x${with_nvdacontrollerclient_include}" != "x" || test "x${with_nvdacontrollerclient_lib}" != "x" ; then
|
||||||
|
AC_MSG_WARN([[nvdacontrollerclient is not used, so --with-nvdacontrollerclient[-*] is ignored]])
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "x${NVDACONTROLLERCLIENT_FOUND}" = "xyes" ; then
|
||||||
|
A11Y_NVDA_ANNOUNCING_ENABLED=true
|
||||||
|
else
|
||||||
|
A11Y_NVDA_ANNOUNCING_ENABLED=false
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_SUBST(A11Y_NVDA_ANNOUNCING_ENABLED)
|
||||||
|
AC_SUBST(NVDACONTROLLERCLIENT_CFLAGS)
|
||||||
|
AC_SUBST(NVDACONTROLLERCLIENT_DLL)
|
||||||
|
AC_SUBST(NVDACONTROLLERCLIENT_LIB)
|
||||||
|
])
|
||||||
92
make/autoconf/lib-speechd.m4
Normal file
92
make/autoconf/lib-speechd.m4
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
# Copyright (c) 2022, JetBrains s.r.o.. 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Setup speechd
|
||||||
|
################################################################################
|
||||||
|
AC_DEFUN_ONCE([LIB_SETUP_SPEECHD],
|
||||||
|
[
|
||||||
|
AC_ARG_WITH(speechd, [AS_HELP_STRING([--with-speechd],
|
||||||
|
[specify prefix directory for the libspeechd package
|
||||||
|
(expecting the headers under PATH/include); required for AccessibleAnnouncer to work])])
|
||||||
|
AC_ARG_WITH(speechd-include, [AS_HELP_STRING([--with-speechd-include],
|
||||||
|
[specify directory for the speechd include files])])
|
||||||
|
|
||||||
|
if test "x$NEEDS_LIB_SPEECHD" = xfalse || test "x${with_speechd}" = xno || \
|
||||||
|
test "x${with_speechd_include}" = xno; then
|
||||||
|
if (test "x${with_speechd}" != x && test "x${with_speechd}" != xno) || \
|
||||||
|
(test "x${with_speechd_include}" != x && test "x${with_speechd_include}" != xno); then
|
||||||
|
AC_MSG_WARN([[speechd not used, so --with-speechd[-*] is ignored]])
|
||||||
|
fi
|
||||||
|
A11Y_SPEECHD_ANNOUNCING_ENABLED=false
|
||||||
|
SPEECHD_CFLAGS=
|
||||||
|
SPEECHD_LIBS=
|
||||||
|
else
|
||||||
|
SPEECHD_FOUND=no
|
||||||
|
|
||||||
|
if test "x${with_speechd}" != x && test "x${with_speechd}" != xyes; then
|
||||||
|
AC_MSG_CHECKING([for speechd header and library])
|
||||||
|
if test -s "${with_speechd}/include/libspeechd.h"; then
|
||||||
|
SPEECHD_CFLAGS="-I${with_speechd}/include"
|
||||||
|
SPEECHD_LIBS="-L${with_speechd}/lib -lspeechd"
|
||||||
|
SPEECHD_FOUND=yes
|
||||||
|
AC_MSG_RESULT([$SPEECHD_FOUND])
|
||||||
|
else
|
||||||
|
AC_MSG_ERROR([Can't find 'include/libspeechd.h' under ${with_speechd} given with the --with-speechd option.])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if test "x${with_speechd_include}" != x; then
|
||||||
|
AC_MSG_CHECKING([for speechd headers])
|
||||||
|
if test -s "${with_speechd_include}/libspeechd.h"; then
|
||||||
|
SPEECHD_CFLAGS="-I${with_speechd_include}"
|
||||||
|
SPEECHD_FOUND=yes
|
||||||
|
AC_MSG_RESULT([$SPEECHD_FOUND])
|
||||||
|
else
|
||||||
|
AC_MSG_ERROR([Can't find 'include/libspeechd.h' under ${with_speechd} given with the --with-speechd-include option.])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if test "x$SPEECHD_FOUND" = xno; then
|
||||||
|
# Are the libspeechd headers installed in the default /usr/include location?
|
||||||
|
AC_CHECK_HEADERS([libspeechd.h],
|
||||||
|
[ SPEECHD_FOUND=yes ],
|
||||||
|
[ SPEECHD_FOUND=no; break ]
|
||||||
|
)
|
||||||
|
if test "x$SPEECHD_FOUND" = xyes; then
|
||||||
|
SPEECHD_CFLAGS=
|
||||||
|
SPEECHD_LIBS="-lspeechd"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if test "x$SPEECHD_FOUND" = xno; then
|
||||||
|
A11Y_SPEECHD_ANNOUNCING_ENABLED=false
|
||||||
|
else
|
||||||
|
A11Y_SPEECHD_ANNOUNCING_ENABLED=true
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_SUBST(A11Y_SPEECHD_ANNOUNCING_ENABLED)
|
||||||
|
AC_SUBST(SPEECHD_CFLAGS)
|
||||||
|
AC_SUBST(SPEECHD_LIBS)
|
||||||
|
])
|
||||||
@@ -28,7 +28,7 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
# Minimum supported versions
|
# Minimum supported versions
|
||||||
JTREG_MINIMUM_VERSION=7.2
|
JTREG_MINIMUM_VERSION=7.1.1
|
||||||
GTEST_MINIMUM_VERSION=1.13.0
|
GTEST_MINIMUM_VERSION=1.13.0
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
@@ -61,7 +61,7 @@ AC_DEFUN_ONCE([LIB_TESTS_SETUP_GTEST],
|
|||||||
|
|
||||||
# Verify that the version is the required one.
|
# Verify that the version is the required one.
|
||||||
# This is a simplified version of TOOLCHAIN_CHECK_COMPILER_VERSION
|
# This is a simplified version of TOOLCHAIN_CHECK_COMPILER_VERSION
|
||||||
gtest_version="`$GREP GOOGLETEST_VERSION $GTEST_FRAMEWORK_SRC/CMakeLists.txt | $SED -e 's/set(GOOGLETEST_VERSION \(.*\))/\1/'`"
|
gtest_version="`$GREP GOOGLETEST_VERSION $GTEST_FRAMEWORK_SRC/CMakeLists.txt | $SED -E -e 's/set\(GOOGLETEST_VERSION (.*)\)/\1/'`"
|
||||||
comparable_actual_version=`$AWK -F. '{ printf("%05d%05d%05d%05d\n", [$]1, [$]2, [$]3, [$]4) }' <<< "$gtest_version"`
|
comparable_actual_version=`$AWK -F. '{ printf("%05d%05d%05d%05d\n", [$]1, [$]2, [$]3, [$]4) }' <<< "$gtest_version"`
|
||||||
comparable_minimum_version=`$AWK -F. '{ printf("%05d%05d%05d%05d\n", [$]1, [$]2, [$]3, [$]4) }' <<< "$GTEST_MINIMUM_VERSION"`
|
comparable_minimum_version=`$AWK -F. '{ printf("%05d%05d%05d%05d\n", [$]1, [$]2, [$]3, [$]4) }' <<< "$GTEST_MINIMUM_VERSION"`
|
||||||
if test $comparable_actual_version -lt $comparable_minimum_version ; then
|
if test $comparable_actual_version -lt $comparable_minimum_version ; then
|
||||||
@@ -301,22 +301,3 @@ AC_DEFUN_ONCE([LIB_TESTS_ENABLE_DISABLE_FAILURE_HANDLER],
|
|||||||
])
|
])
|
||||||
AC_SUBST(BUILD_FAILURE_HANDLER)
|
AC_SUBST(BUILD_FAILURE_HANDLER)
|
||||||
])
|
])
|
||||||
|
|
||||||
AC_DEFUN_ONCE([LIB_TESTS_ENABLE_DISABLE_JTREG_TEST_THREAD_FACTORY],
|
|
||||||
[
|
|
||||||
UTIL_ARG_ENABLE(NAME: jtreg-test-thread-factory, DEFAULT: auto,
|
|
||||||
RESULT: BUILD_JTREG_TEST_THREAD_FACTORY,
|
|
||||||
DESC: [enable building of the jtreg test thread factory],
|
|
||||||
DEFAULT_DESC: [enabled if jtreg is present],
|
|
||||||
CHECKING_MSG: [if the jtreg test thread factory should be built],
|
|
||||||
CHECK_AVAILABLE: [
|
|
||||||
AC_MSG_CHECKING([if the jtreg test thread factory is available])
|
|
||||||
if test "x$JT_HOME" != "x"; then
|
|
||||||
AC_MSG_RESULT([yes])
|
|
||||||
else
|
|
||||||
AVAILABLE=false
|
|
||||||
AC_MSG_RESULT([no (jtreg not present)])
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
AC_SUBST(BUILD_JTREG_TEST_THREAD_FACTORY)
|
|
||||||
])
|
|
||||||
|
|||||||
@@ -33,7 +33,9 @@ m4_include([lib-freetype.m4])
|
|||||||
m4_include([lib-hsdis.m4])
|
m4_include([lib-hsdis.m4])
|
||||||
m4_include([lib-std.m4])
|
m4_include([lib-std.m4])
|
||||||
m4_include([lib-x11.m4])
|
m4_include([lib-x11.m4])
|
||||||
|
m4_include([lib-fontconfig.m4])
|
||||||
|
m4_include([lib-speechd.m4])
|
||||||
|
m4_include([lib-nvdacontrollerclient.m4])
|
||||||
m4_include([lib-tests.m4])
|
m4_include([lib-tests.m4])
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
@@ -45,10 +47,16 @@ AC_DEFUN_ONCE([LIB_DETERMINE_DEPENDENCIES],
|
|||||||
if test "x$OPENJDK_TARGET_OS" = xwindows || test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
if test "x$OPENJDK_TARGET_OS" = xwindows || test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
||||||
# No X11 support on windows or macosx
|
# No X11 support on windows or macosx
|
||||||
NEEDS_LIB_X11=false
|
NEEDS_LIB_X11=false
|
||||||
|
NEEDS_LIB_SPEECHD=false
|
||||||
|
elif test "x$ENABLE_HEADLESS_ONLY" = xtrue; then
|
||||||
|
# No X11 support needed when building headless only
|
||||||
|
NEEDS_LIB_X11=false
|
||||||
|
NEEDS_LIB_SPEECHD=false
|
||||||
else
|
else
|
||||||
# All other instances need X11, even if building headless only, libawt still
|
# All other instances need X11, even if building headless only, libawt still
|
||||||
# needs X11 headers.
|
# needs X11 headers.
|
||||||
NEEDS_LIB_X11=true
|
NEEDS_LIB_X11=true
|
||||||
|
NEEDS_LIB_SPEECHD=true
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Check if fontconfig is needed
|
# Check if fontconfig is needed
|
||||||
@@ -82,11 +90,18 @@ AC_DEFUN_ONCE([LIB_DETERMINE_DEPENDENCIES],
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Check if ffi is needed
|
# Check if ffi is needed
|
||||||
if HOTSPOT_CHECK_JVM_VARIANT(zero) || test "x$ENABLE_FALLBACK_LINKER" = "xtrue"; then
|
if HOTSPOT_CHECK_JVM_VARIANT(zero); then
|
||||||
NEEDS_LIB_FFI=true
|
NEEDS_LIB_FFI=true
|
||||||
else
|
else
|
||||||
NEEDS_LIB_FFI=false
|
NEEDS_LIB_FFI=false
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Check if nvdacontrollerclient is needed
|
||||||
|
if test "x$OPENJDK_TARGET_OS" = xwindows && test "x$ENABLE_HEADLESS_ONLY" != xtrue; then
|
||||||
|
NEEDS_LIB_NVDACONTROLLERCLIENT=true
|
||||||
|
else
|
||||||
|
NEEDS_LIB_NVDACONTROLLERCLIENT=false
|
||||||
|
fi
|
||||||
])
|
])
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
@@ -132,7 +147,8 @@ AC_DEFUN_ONCE([LIB_SETUP_LIBRARIES],
|
|||||||
LIB_SETUP_LIBFFI
|
LIB_SETUP_LIBFFI
|
||||||
LIB_SETUP_MISC_LIBS
|
LIB_SETUP_MISC_LIBS
|
||||||
LIB_SETUP_X11
|
LIB_SETUP_X11
|
||||||
|
LIB_SETUP_SPEECHD
|
||||||
|
LIB_SETUP_NVDACONTROLLERCLIENT
|
||||||
LIB_TESTS_SETUP_GTEST
|
LIB_TESTS_SETUP_GTEST
|
||||||
|
|
||||||
BASIC_JDKLIB_LIBS=""
|
BASIC_JDKLIB_LIBS=""
|
||||||
@@ -171,7 +187,7 @@ AC_DEFUN_ONCE([LIB_SETUP_LIBRARIES],
|
|||||||
if test "x$OPENJDK_TARGET_OS" = xwindows; then
|
if test "x$OPENJDK_TARGET_OS" = xwindows; then
|
||||||
BASIC_JVM_LIBS="$BASIC_JVM_LIBS kernel32.lib user32.lib gdi32.lib winspool.lib \
|
BASIC_JVM_LIBS="$BASIC_JVM_LIBS kernel32.lib user32.lib gdi32.lib winspool.lib \
|
||||||
comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib powrprof.lib uuid.lib \
|
comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib powrprof.lib uuid.lib \
|
||||||
ws2_32.lib winmm.lib version.lib psapi.lib"
|
wsock32.lib winmm.lib version.lib psapi.lib"
|
||||||
fi
|
fi
|
||||||
LIB_SETUP_JVM_LIBS(BUILD)
|
LIB_SETUP_JVM_LIBS(BUILD)
|
||||||
LIB_SETUP_JVM_LIBS(TARGET)
|
LIB_SETUP_JVM_LIBS(TARGET)
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 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
|
||||||
@@ -567,6 +567,8 @@ AC_DEFUN([PLATFORM_SETUP_LEGACY_VARS_HELPER],
|
|||||||
HOTSPOT_$1_CPU_DEFINE=PPC64
|
HOTSPOT_$1_CPU_DEFINE=PPC64
|
||||||
elif test "x$OPENJDK_$1_CPU" = xppc64le; then
|
elif test "x$OPENJDK_$1_CPU" = xppc64le; then
|
||||||
HOTSPOT_$1_CPU_DEFINE=PPC64
|
HOTSPOT_$1_CPU_DEFINE=PPC64
|
||||||
|
elif test "x$OPENJDK_$1_CPU" = xriscv32; then
|
||||||
|
HOTSPOT_$1_CPU_DEFINE=RISCV32
|
||||||
elif test "x$OPENJDK_$1_CPU" = xriscv64; then
|
elif test "x$OPENJDK_$1_CPU" = xriscv64; then
|
||||||
HOTSPOT_$1_CPU_DEFINE=RISCV64
|
HOTSPOT_$1_CPU_DEFINE=RISCV64
|
||||||
|
|
||||||
@@ -575,14 +577,10 @@ AC_DEFUN([PLATFORM_SETUP_LEGACY_VARS_HELPER],
|
|||||||
HOTSPOT_$1_CPU_DEFINE=SPARC
|
HOTSPOT_$1_CPU_DEFINE=SPARC
|
||||||
elif test "x$OPENJDK_$1_CPU" = xppc; then
|
elif test "x$OPENJDK_$1_CPU" = xppc; then
|
||||||
HOTSPOT_$1_CPU_DEFINE=PPC32
|
HOTSPOT_$1_CPU_DEFINE=PPC32
|
||||||
elif test "x$OPENJDK_$1_CPU" = xriscv32; then
|
|
||||||
HOTSPOT_$1_CPU_DEFINE=RISCV32
|
|
||||||
elif test "x$OPENJDK_$1_CPU" = xs390; then
|
elif test "x$OPENJDK_$1_CPU" = xs390; then
|
||||||
HOTSPOT_$1_CPU_DEFINE=S390
|
HOTSPOT_$1_CPU_DEFINE=S390
|
||||||
elif test "x$OPENJDK_$1_CPU" = xs390x; then
|
elif test "x$OPENJDK_$1_CPU" = xs390x; then
|
||||||
HOTSPOT_$1_CPU_DEFINE=S390
|
HOTSPOT_$1_CPU_DEFINE=S390
|
||||||
elif test "x$OPENJDK_$1_CPU" = xloongarch64; then
|
|
||||||
HOTSPOT_$1_CPU_DEFINE=LOONGARCH64
|
|
||||||
elif test "x$OPENJDK_$1_CPU" != x; then
|
elif test "x$OPENJDK_$1_CPU" != x; then
|
||||||
HOTSPOT_$1_CPU_DEFINE=$(echo $OPENJDK_$1_CPU | tr a-z A-Z)
|
HOTSPOT_$1_CPU_DEFINE=$(echo $OPENJDK_$1_CPU | tr a-z A-Z)
|
||||||
fi
|
fi
|
||||||
@@ -642,7 +640,6 @@ AC_DEFUN([PLATFORM_SET_MODULE_TARGET_OS_VALUES],
|
|||||||
])
|
])
|
||||||
|
|
||||||
#%%% Build and target systems %%%
|
#%%% Build and target systems %%%
|
||||||
# Make sure to only use tools set up in BASIC_SETUP_FUNDAMENTAL_TOOLS.
|
|
||||||
AC_DEFUN_ONCE([PLATFORM_SETUP_OPENJDK_BUILD_AND_TARGET],
|
AC_DEFUN_ONCE([PLATFORM_SETUP_OPENJDK_BUILD_AND_TARGET],
|
||||||
[
|
[
|
||||||
# Figure out the build and target systems. # Note that in autoconf terminology, "build" is obvious, but "target"
|
# Figure out the build and target systems. # Note that in autoconf terminology, "build" is obvious, but "target"
|
||||||
@@ -659,21 +656,6 @@ AC_DEFUN_ONCE([PLATFORM_SETUP_OPENJDK_BUILD_AND_TARGET],
|
|||||||
PLATFORM_SET_MODULE_TARGET_OS_VALUES
|
PLATFORM_SET_MODULE_TARGET_OS_VALUES
|
||||||
PLATFORM_SET_RELEASE_FILE_OS_VALUES
|
PLATFORM_SET_RELEASE_FILE_OS_VALUES
|
||||||
PLATFORM_SETUP_LEGACY_VARS
|
PLATFORM_SETUP_LEGACY_VARS
|
||||||
PLATFORM_CHECK_DEPRECATION
|
|
||||||
])
|
|
||||||
|
|
||||||
AC_DEFUN([PLATFORM_CHECK_DEPRECATION],
|
|
||||||
[
|
|
||||||
AC_ARG_ENABLE(deprecated-ports, [AS_HELP_STRING([--enable-deprecated-ports@<:@=yes/no@:>@],
|
|
||||||
[Suppress the error when configuring for a deprecated port @<:@no@:>@])])
|
|
||||||
if test "x$OPENJDK_TARGET_OS" = xwindows && test "x$OPENJDK_TARGET_CPU" = xx86; then
|
|
||||||
if test "x$enable_deprecated_ports" = "xyes"; then
|
|
||||||
AC_MSG_WARN([The Windows 32-bit x86 port is deprecated and may be removed in a future release.])
|
|
||||||
else
|
|
||||||
AC_MSG_ERROR(m4_normalize([The Windows 32-bit x86 port is deprecated and may be removed in a future release.
|
|
||||||
Use --enable-deprecated-ports=yes to suppress this error.]))
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
])
|
])
|
||||||
|
|
||||||
AC_DEFUN_ONCE([PLATFORM_SETUP_OPENJDK_BUILD_OS_VERSION],
|
AC_DEFUN_ONCE([PLATFORM_SETUP_OPENJDK_BUILD_OS_VERSION],
|
||||||
@@ -741,7 +723,7 @@ AC_DEFUN_ONCE([PLATFORM_SETUP_OPENJDK_TARGET_ENDIANNESS],
|
|||||||
[
|
[
|
||||||
###############################################################################
|
###############################################################################
|
||||||
#
|
#
|
||||||
# Is the target little or big endian?
|
# Is the target little of big endian?
|
||||||
#
|
#
|
||||||
AC_C_BIGENDIAN([ENDIAN="big"],[ENDIAN="little"],[ENDIAN="unknown"],[ENDIAN="universal_endianness"])
|
AC_C_BIGENDIAN([ENDIAN="big"],[ENDIAN="little"],[ENDIAN="unknown"],[ENDIAN="universal_endianness"])
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -358,8 +358,6 @@ BUILDJDK_OUTPUTDIR=$(OUTPUTDIR)/buildjdk
|
|||||||
|
|
||||||
BUILD_FAILURE_HANDLER := @BUILD_FAILURE_HANDLER@
|
BUILD_FAILURE_HANDLER := @BUILD_FAILURE_HANDLER@
|
||||||
|
|
||||||
BUILD_JTREG_TEST_THREAD_FACTORY := @BUILD_JTREG_TEST_THREAD_FACTORY@
|
|
||||||
|
|
||||||
ENABLE_GENERATE_CLASSLIST := @ENABLE_GENERATE_CLASSLIST@
|
ENABLE_GENERATE_CLASSLIST := @ENABLE_GENERATE_CLASSLIST@
|
||||||
|
|
||||||
EXCLUDE_TRANSLATIONS := @EXCLUDE_TRANSLATIONS@
|
EXCLUDE_TRANSLATIONS := @EXCLUDE_TRANSLATIONS@
|
||||||
@@ -409,9 +407,6 @@ TEST_JOBS?=@TEST_JOBS@
|
|||||||
DEFAULT_MAKE_TARGET:=@DEFAULT_MAKE_TARGET@
|
DEFAULT_MAKE_TARGET:=@DEFAULT_MAKE_TARGET@
|
||||||
DEFAULT_LOG:=@DEFAULT_LOG@
|
DEFAULT_LOG:=@DEFAULT_LOG@
|
||||||
|
|
||||||
# Fallback linker
|
|
||||||
ENABLE_FALLBACK_LINKER:=@ENABLE_FALLBACK_LINKER@
|
|
||||||
|
|
||||||
FREETYPE_TO_USE:=@FREETYPE_TO_USE@
|
FREETYPE_TO_USE:=@FREETYPE_TO_USE@
|
||||||
FREETYPE_LIBS:=@FREETYPE_LIBS@
|
FREETYPE_LIBS:=@FREETYPE_LIBS@
|
||||||
FREETYPE_CFLAGS:=@FREETYPE_CFLAGS@
|
FREETYPE_CFLAGS:=@FREETYPE_CFLAGS@
|
||||||
@@ -465,6 +460,20 @@ UBSAN_LDFLAGS:=@UBSAN_LDFLAGS@
|
|||||||
X_CFLAGS:=@X_CFLAGS@
|
X_CFLAGS:=@X_CFLAGS@
|
||||||
X_LIBS:=@X_LIBS@
|
X_LIBS:=@X_LIBS@
|
||||||
|
|
||||||
|
# Linux speechd a11y announcer
|
||||||
|
A11Y_SPEECHD_ANNOUNCING_ENABLED:=@A11Y_SPEECHD_ANNOUNCING_ENABLED@
|
||||||
|
SPEECHD_CFLAGS:=@SPEECHD_CFLAGS@
|
||||||
|
SPEECHD_LIBS:=@SPEECHD_LIBS@
|
||||||
|
|
||||||
|
# Windows NVDA a11y announcer
|
||||||
|
A11Y_NVDA_ANNOUNCING_ENABLED:=@A11Y_NVDA_ANNOUNCING_ENABLED@
|
||||||
|
NVDACONTROLLERCLIENT_CFLAGS:=@NVDACONTROLLERCLIENT_CFLAGS@
|
||||||
|
NVDACONTROLLERCLIENT_DLL:=@NVDACONTROLLERCLIENT_DLL@
|
||||||
|
NVDACONTROLLERCLIENT_LIB:=@NVDACONTROLLERCLIENT_LIB@
|
||||||
|
|
||||||
|
# Windows the client for the JAWS screen reader
|
||||||
|
A11Y_JAWS_ANNOUNCING_ENABLED:=@A11Y_JAWS_ANNOUNCING_ENABLED@
|
||||||
|
|
||||||
# The lowest required version of macosx
|
# The lowest required version of macosx
|
||||||
MACOSX_VERSION_MIN=@MACOSX_VERSION_MIN@
|
MACOSX_VERSION_MIN=@MACOSX_VERSION_MIN@
|
||||||
# The highest allowed version of macosx
|
# The highest allowed version of macosx
|
||||||
@@ -695,8 +704,6 @@ INTERIM_LANGTOOLS_ADD_EXPORTS := \
|
|||||||
--add-exports java.base/sun.invoke.util=jdk.compiler.interim \
|
--add-exports java.base/sun.invoke.util=jdk.compiler.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 \
|
|
||||||
#
|
#
|
||||||
INTERIM_LANGTOOLS_MODULES_COMMA := $(strip $(subst $(SPACE),$(COMMA),$(strip \
|
INTERIM_LANGTOOLS_MODULES_COMMA := $(strip $(subst $(SPACE),$(COMMA),$(strip \
|
||||||
$(INTERIM_LANGTOOLS_MODULES))))
|
$(INTERIM_LANGTOOLS_MODULES))))
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -40,7 +40,7 @@ VALID_TOOLCHAINS_all="gcc clang xlc microsoft"
|
|||||||
# These toolchains are valid on different platforms
|
# These toolchains are valid on different platforms
|
||||||
VALID_TOOLCHAINS_linux="gcc clang"
|
VALID_TOOLCHAINS_linux="gcc clang"
|
||||||
VALID_TOOLCHAINS_macosx="clang"
|
VALID_TOOLCHAINS_macosx="clang"
|
||||||
VALID_TOOLCHAINS_aix="xlc clang"
|
VALID_TOOLCHAINS_aix="xlc"
|
||||||
VALID_TOOLCHAINS_windows="microsoft"
|
VALID_TOOLCHAINS_windows="microsoft"
|
||||||
|
|
||||||
# Toolchain descriptions
|
# Toolchain descriptions
|
||||||
@@ -53,7 +53,7 @@ TOOLCHAIN_DESCRIPTION_xlc="IBM XL C/C++"
|
|||||||
TOOLCHAIN_MINIMUM_VERSION_clang="3.5"
|
TOOLCHAIN_MINIMUM_VERSION_clang="3.5"
|
||||||
TOOLCHAIN_MINIMUM_VERSION_gcc="6.0"
|
TOOLCHAIN_MINIMUM_VERSION_gcc="6.0"
|
||||||
TOOLCHAIN_MINIMUM_VERSION_microsoft="19.28.0.0" # VS2019 16.8, aka MSVC 14.28
|
TOOLCHAIN_MINIMUM_VERSION_microsoft="19.28.0.0" # VS2019 16.8, aka MSVC 14.28
|
||||||
TOOLCHAIN_MINIMUM_VERSION_xlc="16.1.0.0011"
|
TOOLCHAIN_MINIMUM_VERSION_xlc=""
|
||||||
|
|
||||||
# Minimum supported linker versions, empty means unspecified
|
# Minimum supported linker versions, empty means unspecified
|
||||||
TOOLCHAIN_MINIMUM_LD_VERSION_gcc="2.18"
|
TOOLCHAIN_MINIMUM_LD_VERSION_gcc="2.18"
|
||||||
@@ -234,25 +234,6 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETERMINE_TOOLCHAIN_TYPE],
|
|||||||
# First toolchain type in the list is the default
|
# First toolchain type in the list is the default
|
||||||
DEFAULT_TOOLCHAIN=${VALID_TOOLCHAINS%% *}
|
DEFAULT_TOOLCHAIN=${VALID_TOOLCHAINS%% *}
|
||||||
|
|
||||||
# On AIX the default toolchain depends on the installed (found) compiler
|
|
||||||
# xlclang++ -> xlc toolchain
|
|
||||||
# ibm-clang++_r -> clang toolchain
|
|
||||||
# The compiler is searched on the PATH and TOOLCHAIN_PATH
|
|
||||||
# xlclang++ has precedence over ibm-clang++_r if both are installed
|
|
||||||
if test "x$OPENJDK_TARGET_OS" = xaix; then
|
|
||||||
DEFAULT_TOOLCHAIN="clang"
|
|
||||||
if test "x$TOOLCHAIN_PATH" != x; then
|
|
||||||
if test -e ${TOOLCHAIN_PATH}/xlclang++; then
|
|
||||||
DEFAULT_TOOLCHAIN="xlc"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
UTIL_LOOKUP_PROGS(XLCLANG_TEST_PATH, xlclang++)
|
|
||||||
if test "x$XLCLANG_TEST_PATH" != x; then
|
|
||||||
DEFAULT_TOOLCHAIN="xlc"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "x$with_toolchain_type" = xlist; then
|
if test "x$with_toolchain_type" = xlist; then
|
||||||
# List all toolchains
|
# List all toolchains
|
||||||
AC_MSG_NOTICE([The following toolchains are valid on this platform:])
|
AC_MSG_NOTICE([The following toolchains are valid on this platform:])
|
||||||
@@ -282,40 +263,22 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETERMINE_TOOLCHAIN_TYPE],
|
|||||||
if test "x$TOOLCHAIN_PATH" != x; then
|
if test "x$TOOLCHAIN_PATH" != x; then
|
||||||
XLC_TEST_PATH=${TOOLCHAIN_PATH}/
|
XLC_TEST_PATH=${TOOLCHAIN_PATH}/
|
||||||
fi
|
fi
|
||||||
if test "x$TOOLCHAIN_TYPE" = xclang; then
|
|
||||||
TOOLCHAIN_DESCRIPTION_clang="IBM Open XL C/C++"
|
XLCLANG_VERSION_OUTPUT=`${XLC_TEST_PATH}xlclang++ -qversion 2>&1 | $HEAD -n 1`
|
||||||
XLCLANG_VERSION_OUTPUT=`${XLC_TEST_PATH}ibm-clang++_r --version 2>&1 | $HEAD -n 1`
|
$ECHO "$XLCLANG_VERSION_OUTPUT" | $GREP "IBM XL C/C++ for AIX" > /dev/null
|
||||||
$ECHO "$XLCLANG_VERSION_OUTPUT" | $GREP "IBM Open XL C/C++ for AIX" > /dev/null
|
if test $? -eq 0; then
|
||||||
if test $? -eq 0; then
|
AC_MSG_NOTICE([xlclang++ output: $XLCLANG_VERSION_OUTPUT])
|
||||||
AC_MSG_NOTICE([ibm-clang++_r output: $XLCLANG_VERSION_OUTPUT])
|
|
||||||
else
|
|
||||||
AC_MSG_ERROR([ibm-clang++_r version output check failed, output: $XLCLANG_VERSION_OUTPUT])
|
|
||||||
fi
|
|
||||||
else
|
else
|
||||||
XLCLANG_VERSION_OUTPUT=`${XLC_TEST_PATH}xlclang++ -qversion 2>&1 | $HEAD -n 1`
|
AC_MSG_ERROR([xlclang++ version output check failed, output: $XLCLANG_VERSION_OUTPUT])
|
||||||
$ECHO "$XLCLANG_VERSION_OUTPUT" | $GREP "IBM XL C/C++ for AIX" > /dev/null
|
|
||||||
if test $? -eq 0; then
|
|
||||||
AC_MSG_NOTICE([xlclang++ output: $XLCLANG_VERSION_OUTPUT])
|
|
||||||
else
|
|
||||||
AC_MSG_ERROR([xlclang++ version output check failed, output: $XLCLANG_VERSION_OUTPUT])
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "x$OPENJDK_TARGET_OS" = xaix; then
|
TOOLCHAIN_CC_BINARY_clang="clang"
|
||||||
TOOLCHAIN_CC_BINARY_clang="ibm-clang_r"
|
|
||||||
else
|
|
||||||
TOOLCHAIN_CC_BINARY_clang="clang"
|
|
||||||
fi
|
|
||||||
TOOLCHAIN_CC_BINARY_gcc="gcc"
|
TOOLCHAIN_CC_BINARY_gcc="gcc"
|
||||||
TOOLCHAIN_CC_BINARY_microsoft="cl"
|
TOOLCHAIN_CC_BINARY_microsoft="cl"
|
||||||
TOOLCHAIN_CC_BINARY_xlc="xlclang"
|
TOOLCHAIN_CC_BINARY_xlc="xlclang"
|
||||||
|
|
||||||
if test "x$OPENJDK_TARGET_OS" = xaix; then
|
TOOLCHAIN_CXX_BINARY_clang="clang++"
|
||||||
TOOLCHAIN_CXX_BINARY_clang="ibm-clang++_r"
|
|
||||||
else
|
|
||||||
TOOLCHAIN_CXX_BINARY_clang="clang++"
|
|
||||||
fi
|
|
||||||
TOOLCHAIN_CXX_BINARY_gcc="g++"
|
TOOLCHAIN_CXX_BINARY_gcc="g++"
|
||||||
TOOLCHAIN_CXX_BINARY_microsoft="cl"
|
TOOLCHAIN_CXX_BINARY_microsoft="cl"
|
||||||
TOOLCHAIN_CXX_BINARY_xlc="xlclang++"
|
TOOLCHAIN_CXX_BINARY_xlc="xlclang++"
|
||||||
@@ -421,7 +384,7 @@ AC_DEFUN([TOOLCHAIN_EXTRACT_COMPILER_VERSION],
|
|||||||
# Collapse compiler output into a single line
|
# Collapse compiler output into a single line
|
||||||
COMPILER_VERSION_STRING=`$ECHO $COMPILER_VERSION_OUTPUT`
|
COMPILER_VERSION_STRING=`$ECHO $COMPILER_VERSION_OUTPUT`
|
||||||
COMPILER_VERSION_NUMBER=`$ECHO $COMPILER_VERSION_OUTPUT | \
|
COMPILER_VERSION_NUMBER=`$ECHO $COMPILER_VERSION_OUTPUT | \
|
||||||
$SED -e 's/^.*Version: \(@<:@1-9@:>@@<:@0-9.@:>@*\).*$/\1/'`
|
$SED -e 's/^.*, V\(@<:@1-9@:>@@<:@0-9.@:>@*\).*$/\1/'`
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||||
# There is no specific version flag, but all output starts with a version string.
|
# There is no specific version flag, but all output starts with a version string.
|
||||||
# First line typically looks something like:
|
# First line typically looks something like:
|
||||||
@@ -669,7 +632,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETECT_TOOLCHAIN_CORE],
|
|||||||
if test "x$TOOLCHAIN_MINIMUM_VERSION" != x; then
|
if test "x$TOOLCHAIN_MINIMUM_VERSION" != x; then
|
||||||
TOOLCHAIN_CHECK_COMPILER_VERSION(VERSION: $TOOLCHAIN_MINIMUM_VERSION,
|
TOOLCHAIN_CHECK_COMPILER_VERSION(VERSION: $TOOLCHAIN_MINIMUM_VERSION,
|
||||||
IF_OLDER_THAN: [
|
IF_OLDER_THAN: [
|
||||||
AC_MSG_WARN([You are using $TOOLCHAIN_TYPE $CC_VERSION_NUMBER which is older than $TOOLCHAIN_MINIMUM_VERSION. This is not a supported configuration.])
|
AC_MSG_WARN([You are using $TOOLCHAIN_TYPE older than $TOOLCHAIN_MINIMUM_VERSION. This is not a supported configuration.])
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
fi
|
fi
|
||||||
@@ -804,11 +767,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETECT_TOOLCHAIN_EXTRA],
|
|||||||
|
|
||||||
case $TOOLCHAIN_TYPE in
|
case $TOOLCHAIN_TYPE in
|
||||||
gcc|clang)
|
gcc|clang)
|
||||||
if test "x$OPENJDK_TARGET_OS" = xaix; then
|
UTIL_REQUIRE_TOOLCHAIN_PROGS(CXXFILT, c++filt)
|
||||||
UTIL_REQUIRE_TOOLCHAIN_PROGS(CXXFILT, ibm-llvm-cxxfilt)
|
|
||||||
else
|
|
||||||
UTIL_REQUIRE_TOOLCHAIN_PROGS(CXXFILT, c++filt)
|
|
||||||
fi
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
])
|
])
|
||||||
@@ -1007,11 +966,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_MISC_CHECKS],
|
|||||||
# Setup hotspot lecagy names for toolchains
|
# Setup hotspot lecagy names for toolchains
|
||||||
HOTSPOT_TOOLCHAIN_TYPE=$TOOLCHAIN_TYPE
|
HOTSPOT_TOOLCHAIN_TYPE=$TOOLCHAIN_TYPE
|
||||||
if test "x$TOOLCHAIN_TYPE" = xclang; then
|
if test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||||
if test "x$OPENJDK_TARGET_OS" = xaix; then
|
HOTSPOT_TOOLCHAIN_TYPE=gcc
|
||||||
HOTSPOT_TOOLCHAIN_TYPE=xlc
|
|
||||||
else
|
|
||||||
HOTSPOT_TOOLCHAIN_TYPE=gcc
|
|
||||||
fi
|
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||||
HOTSPOT_TOOLCHAIN_TYPE=visCPP
|
HOTSPOT_TOOLCHAIN_TYPE=visCPP
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -130,6 +130,7 @@ define SetupBuildLauncherBody
|
|||||||
$$(shell $(FIND) $(SUPPORT_OUTPUTDIR)/modules_libs/java.base -name "*.a") \
|
$$(shell $(FIND) $(SUPPORT_OUTPUTDIR)/modules_libs/java.base -name "*.a") \
|
||||||
$(SUPPORT_OUTPUTDIR)/modules_libs/jdk.jdwp.agent/libdt_socket.a \
|
$(SUPPORT_OUTPUTDIR)/modules_libs/jdk.jdwp.agent/libdt_socket.a \
|
||||||
$(SUPPORT_OUTPUTDIR)/modules_libs/jdk.jdwp.agent/libjdwp.a \
|
$(SUPPORT_OUTPUTDIR)/modules_libs/jdk.jdwp.agent/libjdwp.a \
|
||||||
|
$(SUPPORT_OUTPUTDIR)/native/java.base/$(LIBRARY_PREFIX)fdlibm$(STATIC_LIBRARY_SUFFIX) \
|
||||||
-framework CoreFoundation \
|
-framework CoreFoundation \
|
||||||
-framework Foundation \
|
-framework Foundation \
|
||||||
-framework SystemConfiguration \
|
-framework SystemConfiguration \
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ DOCS_MODULES= \
|
|||||||
jdk.hotspot.agent \
|
jdk.hotspot.agent \
|
||||||
jdk.httpserver \
|
jdk.httpserver \
|
||||||
jdk.jpackage \
|
jdk.jpackage \
|
||||||
|
jdk.incubator.concurrent \
|
||||||
jdk.incubator.vector \
|
jdk.incubator.vector \
|
||||||
jdk.jartool \
|
jdk.jartool \
|
||||||
jdk.javadoc \
|
jdk.javadoc \
|
||||||
|
|||||||
@@ -26,16 +26,16 @@
|
|||||||
# Versions and download locations for dependencies used by GitHub Actions (GHA)
|
# Versions and download locations for dependencies used by GitHub Actions (GHA)
|
||||||
|
|
||||||
GTEST_VERSION=1.13.0
|
GTEST_VERSION=1.13.0
|
||||||
JTREG_VERSION=7.2+1
|
JTREG_VERSION=7.1.1+1
|
||||||
|
|
||||||
LINUX_X64_BOOT_JDK_EXT=tar.gz
|
LINUX_X64_BOOT_JDK_EXT=tar.gz
|
||||||
LINUX_X64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk20/bdc68b4b9cbc4ebcb30745c85038d91d/36/GPL/openjdk-20_linux-x64_bin.tar.gz
|
LINUX_X64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk19/877d6127e982470ba2a7faa31cc93d04/36/GPL/openjdk-19_linux-x64_bin.tar.gz
|
||||||
LINUX_X64_BOOT_JDK_SHA256=bb863b2d542976d1ae4b7b81af3e78b1e4247a64644350b552d298d8dc5980dc
|
LINUX_X64_BOOT_JDK_SHA256=f47aba585cfc9ecff1ed8e023524e8309f4315ed8b80100b40c7dcc232c12f96
|
||||||
|
|
||||||
MACOS_X64_BOOT_JDK_EXT=tar.gz
|
MACOS_X64_BOOT_JDK_EXT=tar.gz
|
||||||
MACOS_X64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk20/bdc68b4b9cbc4ebcb30745c85038d91d/36/GPL/openjdk-20_macos-x64_bin.tar.gz
|
MACOS_X64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk19/877d6127e982470ba2a7faa31cc93d04/36/GPL/openjdk-19_macos-x64_bin.tar.gz
|
||||||
MACOS_X64_BOOT_JDK_SHA256=47cf960d9bb89dbe987535a389f7e26c42de7c984ef5108612d77c81aa8cc6a4
|
MACOS_X64_BOOT_JDK_SHA256=bfd33f5b2590fd552ae2d9231340c6b4704a872f927dce1c52860b78c49a5a11
|
||||||
|
|
||||||
WINDOWS_X64_BOOT_JDK_EXT=zip
|
WINDOWS_X64_BOOT_JDK_EXT=zip
|
||||||
WINDOWS_X64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk20/bdc68b4b9cbc4ebcb30745c85038d91d/36/GPL/openjdk-20_windows-x64_bin.zip
|
WINDOWS_X64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk19/877d6127e982470ba2a7faa31cc93d04/36/GPL/openjdk-19_windows-x64_bin.zip
|
||||||
WINDOWS_X64_BOOT_JDK_SHA256=c92fae5e42b9aecf444a66c8ec563c652f60b1e231dfdd33a4f5a3e3603058fb
|
WINDOWS_X64_BOOT_JDK_SHA256=8fabcee7c4e8d3b53486777ecd27bb906d67d7c1efd1bf22a8290cf659afa487
|
||||||
|
|||||||
@@ -390,7 +390,7 @@ var getJibProfilesCommon = function (input, data) {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
common.boot_jdk_version = "20";
|
common.boot_jdk_version = "19";
|
||||||
common.boot_jdk_build_number = "36";
|
common.boot_jdk_build_number = "36";
|
||||||
common.boot_jdk_home = input.get("boot_jdk", "install_path") + "/jdk-"
|
common.boot_jdk_home = input.get("boot_jdk", "install_path") + "/jdk-"
|
||||||
+ common.boot_jdk_version
|
+ common.boot_jdk_version
|
||||||
@@ -463,8 +463,7 @@ var getJibProfilesProfiles = function (input, common, data) {
|
|||||||
target_cpu: "x86",
|
target_cpu: "x86",
|
||||||
build_cpu: "x64",
|
build_cpu: "x64",
|
||||||
dependencies: ["devkit", "gtest"],
|
dependencies: ["devkit", "gtest"],
|
||||||
configure_args: concat(common.configure_args_32bit,
|
configure_args: concat(common.configure_args_32bit),
|
||||||
"--enable-deprecated-ports"),
|
|
||||||
},
|
},
|
||||||
|
|
||||||
"windows-aarch64": {
|
"windows-aarch64": {
|
||||||
@@ -588,23 +587,21 @@ var getJibProfilesProfiles = function (input, common, data) {
|
|||||||
"linux-x64-zero": {
|
"linux-x64-zero": {
|
||||||
target_os: "linux",
|
target_os: "linux",
|
||||||
target_cpu: "x64",
|
target_cpu: "x64",
|
||||||
dependencies: ["devkit", "gtest", "libffi"],
|
dependencies: ["devkit", "gtest"],
|
||||||
configure_args: concat(common.configure_args_64bit, [
|
configure_args: concat(common.configure_args_64bit, [
|
||||||
"--with-zlib=system",
|
"--with-zlib=system",
|
||||||
"--with-jvm-variants=zero",
|
"--with-jvm-variants=zero",
|
||||||
"--with-libffi=" + input.get("libffi", "home_path"),
|
"--enable-libffi-bundling"
|
||||||
"--enable-libffi-bundling",
|
|
||||||
])
|
])
|
||||||
},
|
},
|
||||||
|
|
||||||
"linux-aarch64-zero": {
|
"linux-aarch64-zero": {
|
||||||
target_os: "linux",
|
target_os: "linux",
|
||||||
target_cpu: "aarch64",
|
target_cpu: "aarch64",
|
||||||
dependencies: ["devkit", "gtest", "libffi"],
|
dependencies: ["devkit", "gtest"],
|
||||||
configure_args: concat(common.configure_args_64bit, [
|
configure_args: concat(common.configure_args_64bit, [
|
||||||
"--with-zlib=system",
|
"--with-zlib=system",
|
||||||
"--with-jvm-variants=zero",
|
"--with-jvm-variants=zero",
|
||||||
"--with-libffi=" + input.get("libffi", "home_path"),
|
|
||||||
"--enable-libffi-bundling"
|
"--enable-libffi-bundling"
|
||||||
])
|
])
|
||||||
},
|
},
|
||||||
@@ -613,11 +610,10 @@ var getJibProfilesProfiles = function (input, common, data) {
|
|||||||
target_os: "linux",
|
target_os: "linux",
|
||||||
target_cpu: "x86",
|
target_cpu: "x86",
|
||||||
build_cpu: "x64",
|
build_cpu: "x64",
|
||||||
dependencies: ["devkit", "gtest", "libffi"],
|
dependencies: ["devkit", "gtest"],
|
||||||
configure_args: concat(common.configure_args_32bit, [
|
configure_args: concat(common.configure_args_32bit, [
|
||||||
"--with-zlib=system",
|
"--with-zlib=system",
|
||||||
"--with-jvm-variants=zero",
|
"--with-jvm-variants=zero",
|
||||||
"--with-libffi=" + input.get("libffi", "home_path"),
|
|
||||||
"--enable-libffi-bundling"
|
"--enable-libffi-bundling"
|
||||||
])
|
])
|
||||||
}
|
}
|
||||||
@@ -748,40 +744,6 @@ var getJibProfilesProfiles = function (input, common, data) {
|
|||||||
common.debug_profile_artifacts(artifactData[name]));
|
common.debug_profile_artifacts(artifactData[name]));
|
||||||
});
|
});
|
||||||
|
|
||||||
// Define artifact just for linux-x64-zero, which is the only one we test on
|
|
||||||
["linux-x64"].forEach(function (name) {
|
|
||||||
var o = artifactData[name]
|
|
||||||
var pf = o.platform
|
|
||||||
var jdk_subdir = (o.jdk_subdir != null ? o.jdk_subdir : "jdk-" + data.version);
|
|
||||||
var jdk_suffix = (o.jdk_suffix != null ? o.jdk_suffix : "tar.gz");
|
|
||||||
var zeroName = name + "-zero";
|
|
||||||
profiles[zeroName].artifacts = {
|
|
||||||
jdk: {
|
|
||||||
local: "bundles/\\(jdk.*bin." + jdk_suffix + "\\)",
|
|
||||||
remote: [
|
|
||||||
"bundles/" + pf + "/jdk-" + data.version + "_" + pf + "_bin-zero." + jdk_suffix,
|
|
||||||
],
|
|
||||||
subdir: jdk_subdir,
|
|
||||||
exploded: "images/jdk",
|
|
||||||
},
|
|
||||||
test: {
|
|
||||||
local: "bundles/\\(jdk.*bin-tests.tar.gz\\)",
|
|
||||||
remote: [
|
|
||||||
"bundles/" + pf + "/jdk-" + data.version + "_" + pf + "_bin-zero-tests.tar.gz",
|
|
||||||
],
|
|
||||||
exploded: "images/test"
|
|
||||||
},
|
|
||||||
jdk_symbols: {
|
|
||||||
local: "bundles/\\(jdk.*bin-symbols.tar.gz\\)",
|
|
||||||
remote: [
|
|
||||||
"bundles/" + pf + "/jdk-" + data.version + "_" + pf + "_bin-zero-symbols.tar.gz",
|
|
||||||
],
|
|
||||||
subdir: jdk_subdir,
|
|
||||||
exploded: "images/jdk"
|
|
||||||
},
|
|
||||||
};
|
|
||||||
});
|
|
||||||
|
|
||||||
buildJdkDep = input.build_os + "-" + input.build_cpu + ".jdk";
|
buildJdkDep = input.build_os + "-" + input.build_cpu + ".jdk";
|
||||||
docsProfiles = {
|
docsProfiles = {
|
||||||
"docs": {
|
"docs": {
|
||||||
@@ -889,7 +851,7 @@ var getJibProfilesProfiles = function (input, common, data) {
|
|||||||
[ "linux-aarch64", "linux-x64", "macosx-x64", "macosx-aarch64", "windows-x64" ]
|
[ "linux-aarch64", "linux-x64", "macosx-x64", "macosx-aarch64", "windows-x64" ]
|
||||||
.forEach(function (name) {
|
.forEach(function (name) {
|
||||||
var o = artifactData[name]
|
var o = artifactData[name]
|
||||||
var jdk_subdir = "jdk-" + data.version;
|
var jdk_subdir = (o.jdk_subdir != null ? o.jdk_subdir : "jdk-" + data.version);
|
||||||
var jdk_suffix = (o.jdk_suffix != null ? o.jdk_suffix : "tar.gz");
|
var jdk_suffix = (o.jdk_suffix != null ? o.jdk_suffix : "tar.gz");
|
||||||
var pf = o.platform
|
var pf = o.platform
|
||||||
var jcovName = name + "-jcov";
|
var jcovName = name + "-jcov";
|
||||||
@@ -1188,9 +1150,9 @@ var getJibProfilesDependencies = function (input, common) {
|
|||||||
jtreg: {
|
jtreg: {
|
||||||
server: "jpg",
|
server: "jpg",
|
||||||
product: "jtreg",
|
product: "jtreg",
|
||||||
version: "7.2",
|
version: "7.1.1",
|
||||||
build_number: "1",
|
build_number: "1",
|
||||||
file: "bundles/jtreg-7.2+1.zip",
|
file: "bundles/jtreg-7.1.1+1.zip",
|
||||||
environment_name: "JT_HOME",
|
environment_name: "JT_HOME",
|
||||||
environment_path: input.get("jtreg", "home_path") + "/bin",
|
environment_path: input.get("jtreg", "home_path") + "/bin",
|
||||||
configure_args: "--with-jtreg=" + input.get("jtreg", "home_path"),
|
configure_args: "--with-jtreg=" + input.get("jtreg", "home_path"),
|
||||||
@@ -1272,13 +1234,6 @@ var getJibProfilesDependencies = function (input, common) {
|
|||||||
ext: "tar.gz",
|
ext: "tar.gz",
|
||||||
revision: "1.13.0+1.0"
|
revision: "1.13.0+1.0"
|
||||||
},
|
},
|
||||||
|
|
||||||
libffi: {
|
|
||||||
organization: common.organization,
|
|
||||||
module: "libffi-" + input.target_platform,
|
|
||||||
ext: "tar.gz",
|
|
||||||
revision: "3.4.2+1.0"
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
|
|
||||||
return dependencies;
|
return dependencies;
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ BOOT_MODULES= \
|
|||||||
java.rmi \
|
java.rmi \
|
||||||
java.security.sasl \
|
java.security.sasl \
|
||||||
java.xml \
|
java.xml \
|
||||||
|
jdk.incubator.concurrent \
|
||||||
jdk.incubator.vector \
|
jdk.incubator.vector \
|
||||||
jdk.internal.vm.ci \
|
jdk.internal.vm.ci \
|
||||||
jdk.jfr \
|
jdk.jfr \
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -28,15 +28,15 @@
|
|||||||
|
|
||||||
DEFAULT_VERSION_FEATURE=21
|
DEFAULT_VERSION_FEATURE=21
|
||||||
DEFAULT_VERSION_INTERIM=0
|
DEFAULT_VERSION_INTERIM=0
|
||||||
DEFAULT_VERSION_UPDATE=1
|
DEFAULT_VERSION_UPDATE=0
|
||||||
DEFAULT_VERSION_PATCH=0
|
DEFAULT_VERSION_PATCH=0
|
||||||
DEFAULT_VERSION_EXTRA1=0
|
DEFAULT_VERSION_EXTRA1=0
|
||||||
DEFAULT_VERSION_EXTRA2=0
|
DEFAULT_VERSION_EXTRA2=0
|
||||||
DEFAULT_VERSION_EXTRA3=0
|
DEFAULT_VERSION_EXTRA3=0
|
||||||
DEFAULT_VERSION_DATE=2023-10-17
|
DEFAULT_VERSION_DATE=2023-09-19
|
||||||
DEFAULT_VERSION_CLASSFILE_MAJOR=65 # "`$EXPR $DEFAULT_VERSION_FEATURE + 44`"
|
DEFAULT_VERSION_CLASSFILE_MAJOR=65 # "`$EXPR $DEFAULT_VERSION_FEATURE + 44`"
|
||||||
DEFAULT_VERSION_CLASSFILE_MINOR=0
|
DEFAULT_VERSION_CLASSFILE_MINOR=0
|
||||||
DEFAULT_VERSION_DOCS_API_SINCE=11
|
DEFAULT_VERSION_DOCS_API_SINCE=11
|
||||||
DEFAULT_ACCEPTABLE_BOOT_VERSIONS="20 21"
|
DEFAULT_ACCEPTABLE_BOOT_VERSIONS="19 20 21"
|
||||||
DEFAULT_JDK_SOURCE_TARGET_VERSION=21
|
DEFAULT_JDK_SOURCE_TARGET_VERSION=21
|
||||||
DEFAULT_PROMOTED_VERSION_PRE=
|
DEFAULT_PROMOTED_VERSION_PRE=ea
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2009, 2023, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2009, 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
|
||||||
@@ -56,10 +56,10 @@ public class $NAME_CLZ$ extends Charset
|
|||||||
return new DoubleByte.Encoder$ENCTYPE$(this, $ENC_REPLACEMENT$ EncodeHolder.c2b, EncodeHolder.c2bIndex, $ASCIICOMPATIBLE$);
|
return new DoubleByte.Encoder$ENCTYPE$(this, $ENC_REPLACEMENT$ EncodeHolder.c2b, EncodeHolder.c2bIndex, $ASCIICOMPATIBLE$);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class DecodeHolder {
|
static class DecodeHolder {
|
||||||
$B2C$
|
$B2C$
|
||||||
public static final char[][] b2c = new char[b2cStr.length][];
|
static final char[][] b2c = new char[b2cStr.length][];
|
||||||
public static final char[] b2cSB;
|
static final char[] b2cSB;
|
||||||
|
|
||||||
static {
|
static {
|
||||||
for (int i = 0; i < b2cStr.length; i++) {
|
for (int i = 0; i < b2cStr.length; i++) {
|
||||||
@@ -72,9 +72,9 @@ public class $NAME_CLZ$ extends Charset
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class EncodeHolder {
|
static class EncodeHolder {
|
||||||
public static final char[] c2b = new char[$C2BLENGTH$];
|
static final char[] c2b = new char[$C2BLENGTH$];
|
||||||
public static final char[] c2bIndex = new char[0x100];
|
static final char[] c2bIndex = new char[0x100];
|
||||||
|
|
||||||
static {
|
static {
|
||||||
$NONROUNDTRIP_B2C$
|
$NONROUNDTRIP_B2C$
|
||||||
|
|||||||
@@ -2,11 +2,13 @@
|
|||||||
# generate these charsets into sun.nio.cs
|
# generate these charsets into sun.nio.cs
|
||||||
#
|
#
|
||||||
Big5
|
Big5
|
||||||
|
Big5_Solaris
|
||||||
Big5_HKSCS
|
Big5_HKSCS
|
||||||
EUC_CN
|
EUC_CN
|
||||||
EUC_KR
|
EUC_KR
|
||||||
EUC_JP
|
EUC_JP
|
||||||
EUC_JP_LINUX
|
EUC_JP_LINUX
|
||||||
|
EUC_JP_Open
|
||||||
EUC_TW
|
EUC_TW
|
||||||
GBK
|
GBK
|
||||||
ISO_8859_11
|
ISO_8859_11
|
||||||
@@ -14,9 +16,12 @@ ISO_8859_3
|
|||||||
ISO_8859_6
|
ISO_8859_6
|
||||||
ISO_8859_8
|
ISO_8859_8
|
||||||
Johab
|
Johab
|
||||||
|
PCK
|
||||||
TIS_620
|
TIS_620
|
||||||
JIS_X_0201
|
JIS_X_0201
|
||||||
JIS_X_0208
|
JIS_X_0208
|
||||||
JIS_X_0212
|
JIS_X_0212
|
||||||
|
JIS_X_0208_Solaris
|
||||||
|
JIS_X_0212_Solaris
|
||||||
MS932
|
MS932
|
||||||
SJIS
|
SJIS
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
CLDR - Unicode Common Locale Data Repository
|
CLDR - Unicode Common Locale Data Repository
|
||||||
http://cldr.unicode.org
|
http://cldr.unicode.org
|
||||||
|
|
||||||
CLDR version installed: 43
|
CLDR version installed: 42
|
||||||
|
|||||||
@@ -67,9 +67,9 @@ For terms of use, see http://www.unicode.org/copyright.html
|
|||||||
<type name="btn" description="Bhutanese Ngultrum"/>
|
<type name="btn" description="Bhutanese Ngultrum"/>
|
||||||
<type name="buk" description="Burmese Kyat" since="1.9"/>
|
<type name="buk" description="Burmese Kyat" since="1.9"/>
|
||||||
<type name="bwp" description="Botswanan Pula"/>
|
<type name="bwp" description="Botswanan Pula"/>
|
||||||
<type name="byb" description="Belarusian Ruble (1994-1999)" since="1.9"/>
|
<type name="byb" description="Belarusian New Ruble (1994-1999)" since="1.9"/>
|
||||||
<type name="byn" description="Belarusian Ruble" since="31"/>
|
<type name="byn" description="Belarusian Ruble" since="31"/>
|
||||||
<type name="byr" description="Belarusian Ruble (2000-2016)" since="1.9"/>
|
<type name="byr" description="Belarusian Ruble (2000–2016)" since="1.9"/>
|
||||||
<type name="bzd" description="Belize Dollar"/>
|
<type name="bzd" description="Belize Dollar"/>
|
||||||
<type name="cad" description="Canadian Dollar"/>
|
<type name="cad" description="Canadian Dollar"/>
|
||||||
<type name="cdf" description="Congolese Franc"/>
|
<type name="cdf" description="Congolese Franc"/>
|
||||||
@@ -112,7 +112,7 @@ For terms of use, see http://www.unicode.org/copyright.html
|
|||||||
<type name="fjd" description="Fijian Dollar"/>
|
<type name="fjd" description="Fijian Dollar"/>
|
||||||
<type name="fkp" description="Falkland Islands Pound"/>
|
<type name="fkp" description="Falkland Islands Pound"/>
|
||||||
<type name="frf" description="French Franc"/>
|
<type name="frf" description="French Franc"/>
|
||||||
<type name="gbp" description="British Pound"/>
|
<type name="gbp" description="British Pound Sterling"/>
|
||||||
<type name="gek" description="Georgian Kupon Larit" since="1.9"/>
|
<type name="gek" description="Georgian Kupon Larit" since="1.9"/>
|
||||||
<type name="gel" description="Georgian Lari" since="1.9"/>
|
<type name="gel" description="Georgian Lari" since="1.9"/>
|
||||||
<type name="ghc" description="Ghanaian Cedi (1979-2007)"/>
|
<type name="ghc" description="Ghanaian Cedi (1979-2007)"/>
|
||||||
@@ -136,8 +136,8 @@ For terms of use, see http://www.unicode.org/copyright.html
|
|||||||
<type name="idr" description="Indonesian Rupiah"/>
|
<type name="idr" description="Indonesian Rupiah"/>
|
||||||
<type name="iep" description="Irish Pound"/>
|
<type name="iep" description="Irish Pound"/>
|
||||||
<type name="ilp" description="Israeli Pound"/>
|
<type name="ilp" description="Israeli Pound"/>
|
||||||
<type name="ilr" description="Israeli Shekel (1980-1985)" since="1.9"/>
|
<type name="ilr" description="Israeli Sheqel (1980-1985)" since="1.9"/>
|
||||||
<type name="ils" description="Israeli New Shekel"/>
|
<type name="ils" description="Israeli New Sheqel"/>
|
||||||
<type name="inr" description="Indian Rupee"/>
|
<type name="inr" description="Indian Rupee"/>
|
||||||
<type name="iqd" description="Iraqi Dinar" since="1.9"/>
|
<type name="iqd" description="Iraqi Dinar" since="1.9"/>
|
||||||
<type name="irr" description="Iranian Rial" since="1.9"/>
|
<type name="irr" description="Iranian Rial" since="1.9"/>
|
||||||
@@ -181,7 +181,7 @@ For terms of use, see http://www.unicode.org/copyright.html
|
|||||||
<type name="mkd" description="Macedonian Denar" since="1.9"/>
|
<type name="mkd" description="Macedonian Denar" since="1.9"/>
|
||||||
<type name="mkn" description="Macedonian Denar (1992-1993)" since="1.9"/>
|
<type name="mkn" description="Macedonian Denar (1992-1993)" since="1.9"/>
|
||||||
<type name="mlf" description="Malian Franc" since="1.9"/>
|
<type name="mlf" description="Malian Franc" since="1.9"/>
|
||||||
<type name="mmk" description="Myanmar Kyat"/>
|
<type name="mmk" description="Myanma Kyat"/>
|
||||||
<type name="mnt" description="Mongolian Tugrik"/>
|
<type name="mnt" description="Mongolian Tugrik"/>
|
||||||
<type name="mop" description="Macanese Pataca"/>
|
<type name="mop" description="Macanese Pataca"/>
|
||||||
<type name="mro" description="Mauritanian Ouguiya (1973-2017)"/>
|
<type name="mro" description="Mauritanian Ouguiya (1973-2017)"/>
|
||||||
@@ -189,7 +189,7 @@ For terms of use, see http://www.unicode.org/copyright.html
|
|||||||
<type name="mtl" description="Maltese Lira"/>
|
<type name="mtl" description="Maltese Lira"/>
|
||||||
<type name="mtp" description="Maltese Pound"/>
|
<type name="mtp" description="Maltese Pound"/>
|
||||||
<type name="mur" description="Mauritian Rupee"/>
|
<type name="mur" description="Mauritian Rupee"/>
|
||||||
<type name="mvp" description="Maldivian Rupee (1947-1981)" since="1.9"/>
|
<type name="mvp" description="Maldivian Rupee" since="1.9"/>
|
||||||
<type name="mvr" description="Maldivian Rufiyaa" since="1.9"/>
|
<type name="mvr" description="Maldivian Rufiyaa" since="1.9"/>
|
||||||
<type name="mwk" description="Malawian Kwacha" since="1.9"/>
|
<type name="mwk" description="Malawian Kwacha" since="1.9"/>
|
||||||
<type name="mxn" description="Mexican Peso" since="1.9"/>
|
<type name="mxn" description="Mexican Peso" since="1.9"/>
|
||||||
@@ -210,7 +210,7 @@ For terms of use, see http://www.unicode.org/copyright.html
|
|||||||
<type name="omr" description="Omani Rial" since="1.9"/>
|
<type name="omr" description="Omani Rial" since="1.9"/>
|
||||||
<type name="pab" description="Panamanian Balboa"/>
|
<type name="pab" description="Panamanian Balboa"/>
|
||||||
<type name="pei" description="Peruvian Inti"/>
|
<type name="pei" description="Peruvian Inti"/>
|
||||||
<type name="pen" description="Peruvian Sol"/>
|
<type name="pen" description="Peruvian Nuevo Sol"/>
|
||||||
<type name="pes" description="Peruvian Sol (1863-1965)" since="1.9"/>
|
<type name="pes" description="Peruvian Sol (1863-1965)" since="1.9"/>
|
||||||
<type name="pgk" description="Papua New Guinean Kina"/>
|
<type name="pgk" description="Papua New Guinean Kina"/>
|
||||||
<type name="php" description="Philippine Peso"/>
|
<type name="php" description="Philippine Peso"/>
|
||||||
@@ -219,7 +219,7 @@ For terms of use, see http://www.unicode.org/copyright.html
|
|||||||
<type name="plz" description="Polish Zloty (1950-1995)" since="1.9"/>
|
<type name="plz" description="Polish Zloty (1950-1995)" since="1.9"/>
|
||||||
<type name="pte" description="Portuguese Escudo"/>
|
<type name="pte" description="Portuguese Escudo"/>
|
||||||
<type name="pyg" description="Paraguayan Guarani"/>
|
<type name="pyg" description="Paraguayan Guarani"/>
|
||||||
<type name="qar" description="Qatari Riyal"/>
|
<type name="qar" description="Qatari Rial"/>
|
||||||
<type name="rhd" description="Rhodesian Dollar"/>
|
<type name="rhd" description="Rhodesian Dollar"/>
|
||||||
<type name="rol" description="Romanian Leu (1952-2006)" since="1.9"/>
|
<type name="rol" description="Romanian Leu (1952-2006)" since="1.9"/>
|
||||||
<type name="ron" description="Romanian Leu"/>
|
<type name="ron" description="Romanian Leu"/>
|
||||||
@@ -235,11 +235,11 @@ For terms of use, see http://www.unicode.org/copyright.html
|
|||||||
<type name="sdp" description="Sudanese Pound (1957-1998)" since="1.9"/>
|
<type name="sdp" description="Sudanese Pound (1957-1998)" since="1.9"/>
|
||||||
<type name="sek" description="Swedish Krona"/>
|
<type name="sek" description="Swedish Krona"/>
|
||||||
<type name="sgd" description="Singapore Dollar"/>
|
<type name="sgd" description="Singapore Dollar"/>
|
||||||
<type name="shp" description="St. Helena Pound"/>
|
<type name="shp" description="Saint Helena Pound"/>
|
||||||
<type name="sit" description="Slovenian Tolar" since="1.9"/>
|
<type name="sit" description="Slovenian Tolar" since="1.9"/>
|
||||||
<type name="skk" description="Slovak Koruna"/>
|
<type name="skk" description="Slovak Koruna"/>
|
||||||
<type name="sle" description="Sierra Leonean Leone" since="41"/>
|
<type name="sle" description="Sierra Leonean New Leone"/>
|
||||||
<type name="sll" description="Sierra Leonean Leone (1964—2022)"/>
|
<type name="sll" description="Sierra Leonean Leone"/>
|
||||||
<type name="sos" description="Somali Shilling"/>
|
<type name="sos" description="Somali Shilling"/>
|
||||||
<type name="srd" description="Surinamese Dollar"/>
|
<type name="srd" description="Surinamese Dollar"/>
|
||||||
<type name="srg" description="Surinamese Guilder"/>
|
<type name="srg" description="Surinamese Guilder"/>
|
||||||
@@ -274,28 +274,28 @@ For terms of use, see http://www.unicode.org/copyright.html
|
|||||||
<type name="uyp" description="Uruguayan Peso (1975-1993)" since="1.9"/>
|
<type name="uyp" description="Uruguayan Peso (1975-1993)" since="1.9"/>
|
||||||
<type name="uyu" description="Uruguayan Peso"/>
|
<type name="uyu" description="Uruguayan Peso"/>
|
||||||
<type name="uyw" description="Uruguayan Nominal Wage Index Unit" since="34"/>
|
<type name="uyw" description="Uruguayan Nominal Wage Index Unit" since="34"/>
|
||||||
<type name="uzs" description="Uzbekistani Som" since="1.9"/>
|
<type name="uzs" description="Uzbekistan Som" since="1.9"/>
|
||||||
<type name="veb" description="Venezuelan Bolívar (1871-2008)" since="1.9"/>
|
<type name="veb" description="Venezuelan Bolívar (1871-2008)" since="1.9"/>
|
||||||
<type name="ved" description="Bolívar Soberano" since="41"/>
|
|
||||||
<type name="vef" description="Venezuelan Bolívar (2008-2018)"/>
|
<type name="vef" description="Venezuelan Bolívar (2008-2018)"/>
|
||||||
<type name="ves" description="Venezuelan Bolívar" since="34"/>
|
<type name="ves" description="Venezuelan Bolívar" since="34"/>
|
||||||
|
<type name="ved" description="Bolívar Soberano" since="41"/>
|
||||||
<type name="vnd" description="Vietnamese Dong"/>
|
<type name="vnd" description="Vietnamese Dong"/>
|
||||||
<type name="vnn" description="Vietnamese Dong (1978-1985)" since="1.9"/>
|
<type name="vnn" description="Vietnamese Dong (1978-1985)" since="1.9"/>
|
||||||
<type name="vuv" description="Vanuatu Vatu"/>
|
<type name="vuv" description="Vanuatu Vatu"/>
|
||||||
<type name="wst" description="Samoan Tala"/>
|
<type name="wst" description="Samoan Tala"/>
|
||||||
<type name="xaf" description="Central African CFA Franc"/>
|
<type name="xaf" description="CFA Franc BEAC"/>
|
||||||
<type name="xag" description="Silver" since="1.9"/>
|
<type name="xag" description="Silver" since="1.9"/>
|
||||||
<type name="xau" description="Gold" since="1.9"/>
|
<type name="xau" description="Gold" since="1.9"/>
|
||||||
<type name="xba" description="European Composite Unit" since="1.9"/>
|
<type name="xba" description="European Composite Unit" since="1.9"/>
|
||||||
<type name="xbb" description="European Monetary Unit" since="1.9"/>
|
<type name="xbb" description="European Monetary Unit" since="1.9"/>
|
||||||
<type name="xbc" description="European Unit of Account (XBC)" since="1.9"/>
|
<type name="xbc" description="European Unit of Account 9" since="1.9"/>
|
||||||
<type name="xbd" description="European Unit of Account (XBD)" since="1.9"/>
|
<type name="xbd" description="European Unit of Account 17" since="1.9"/>
|
||||||
<type name="xcd" description="East Caribbean Dollar"/>
|
<type name="xcd" description="East Caribbean Dollar"/>
|
||||||
<type name="xdr" description="Special Drawing Rights" since="1.9"/>
|
<type name="xdr" description="Special Drawing Rights" since="1.9"/>
|
||||||
<type name="xeu" description="European Currency Unit" since="1.9"/>
|
<type name="xeu" description="European Currency Unit" since="1.9"/>
|
||||||
<type name="xfo" description="French Gold Franc" since="1.9"/>
|
<type name="xfo" description="French Gold Franc" since="1.9"/>
|
||||||
<type name="xfu" description="French UIC-Franc" since="1.9"/>
|
<type name="xfu" description="French UIC-Franc" since="1.9"/>
|
||||||
<type name="xof" description="West African CFA Franc"/>
|
<type name="xof" description="CFA Franc BCEAO"/>
|
||||||
<type name="xpd" description="Palladium" since="1.9"/>
|
<type name="xpd" description="Palladium" since="1.9"/>
|
||||||
<type name="xpf" description="CFP Franc"/>
|
<type name="xpf" description="CFP Franc"/>
|
||||||
<type name="xpt" description="Platinum" since="1.9"/>
|
<type name="xpt" description="Platinum" since="1.9"/>
|
||||||
|
|||||||
@@ -10,25 +10,25 @@ For terms of use, see http://www.unicode.org/copyright.html
|
|||||||
<version number="$Revision$"/>
|
<version number="$Revision$"/>
|
||||||
<keyword>
|
<keyword>
|
||||||
<key name="dx" description="Scripts to exclude from dictionary break" valueType="multiple" since="38">
|
<key name="dx" description="Scripts to exclude from dictionary break" valueType="multiple" since="38">
|
||||||
<type name="SCRIPT_CODE" description="ISO 15924 script code" since="38"/>
|
<type name="SCRIPT_CODE" description="ISO 15924 script code"/>
|
||||||
</key>
|
</key>
|
||||||
|
|
||||||
<key name="lb" description="Line break type key" since="27">
|
<key name="lb" description="Line break type key" since="27">
|
||||||
<type name="strict" description="CSS level 3 line-break=strict, e.g. treat CJ as NS" since="27"/>
|
<type name="strict" description="CSS level 3 line-break=strict, e.g. treat CJ as NS"/>
|
||||||
<type name="normal" description="CSS level 3 line-break=normal, e.g. treat CJ as ID, break before hyphens for ja,zh" since="27"/>
|
<type name="normal" description="CSS level 3 line-break=normal, e.g. treat CJ as ID, break before hyphens for ja,zh"/>
|
||||||
<type name="loose" description="CSS lev 3 line-break=loose" since="27"/>
|
<type name="loose" description="CSS lev 3 line-break=loose"/>
|
||||||
</key>
|
</key>
|
||||||
|
|
||||||
<key name="lw" description="Line break key for CSS lev 3 word-break options" since="28">
|
<key name="lw" description="Line break key for CSS lev 3 word-break options" since="28">
|
||||||
<type name="normal" description="CSS lev 3 word-break=normal, normal script/language behavior for midword breaks" since="28"/>
|
<type name="normal" description="CSS lev 3 word-break=normal, normal script/language behavior for midword breaks"/>
|
||||||
<type name="breakall" description="CSS lev 3 word-break=break-all, allow midword breaks unless forbidden by lb setting" since="28"/>
|
<type name="breakall" description="CSS lev 3 word-break=break-all, allow midword breaks unless forbidden by lb setting"/>
|
||||||
<type name="keepall" description="CSS lev 3 word-break=keep-all, prohibit midword breaks except for dictionary breaks" since="28"/>
|
<type name="keepall" description="CSS lev 3 word-break=keep-all, prohibit midword breaks except for dictionary breaks"/>
|
||||||
<type name="phrase" description="Prioritize keeping natural phrases (of multiple words) together when breaking, used in short text like title and headline" since="41"/>
|
<type name="phrase" description="Prioritize keeping natural phrases (of multiple words) together when breaking, used in short text like title and headline"/>
|
||||||
</key>
|
</key>
|
||||||
|
|
||||||
<key name="ss" description="Sentence break parameter key to control use of suppressions data" since="28">
|
<key name="ss" description="Sentence break parameter key to control use of suppressions data" since="28">
|
||||||
<type name="none" description="Don't use segmentation suppressions data" since="28"/>
|
<type name="none" description="Don't use segmentation suppressions data"/>
|
||||||
<type name="standard" description="Use segmentation suppressions data of type standard" since="28"/>
|
<type name="standard" description="Use segmentation suppressions data of type standard"/>
|
||||||
</key>
|
</key>
|
||||||
|
|
||||||
</keyword>
|
</keyword>
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user