mirror of
https://github.com/JetBrains/JetBrainsRuntime.git
synced 2025-12-20 00:09:39 +01:00
Compare commits
1717 Commits
batrdmi/tr
...
jdk-22+2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
181845ae46 | ||
|
|
931625a930 | ||
|
|
ee4ab6709e | ||
|
|
57b8251241 | ||
|
|
955fc2faba | ||
|
|
554b4d7243 | ||
|
|
84d010a24b | ||
|
|
9872a14192 | ||
|
|
4c18b9e1fa | ||
|
|
1d1ed0d8f7 | ||
|
|
e3d6fc875b | ||
|
|
bd79db3930 | ||
|
|
63fe413d93 | ||
|
|
ba837b4bfa | ||
|
|
5d193193a3 | ||
|
|
8aad881e80 | ||
|
|
9bfe415f66 | ||
|
|
bfef3c3e80 | ||
|
|
d7251c1755 | ||
|
|
b5b5b7ce72 | ||
|
|
75dcc4ef94 | ||
|
|
bed9161c81 | ||
|
|
3eec179c72 | ||
|
|
14010876dc | ||
|
|
e138685648 | ||
|
|
c0aa6bf4fe | ||
|
|
63843b1153 | ||
|
|
6d05360bec | ||
|
|
9b0baa10b9 | ||
|
|
c884862ad2 | ||
|
|
05f896a153 | ||
|
|
4f23fc1f27 | ||
|
|
1a9edb8df9 | ||
|
|
f7de726bd3 | ||
|
|
5d716121c1 | ||
|
|
23a54f3701 | ||
|
|
57fc9a3e96 | ||
|
|
2dca5ae4fd | ||
|
|
3028295fdd | ||
|
|
80a8144af5 | ||
|
|
3c15ad8d47 | ||
|
|
3ce1240ca1 | ||
|
|
1612b6dc6e | ||
|
|
45414fc2df | ||
|
|
a6ad42e00e | ||
|
|
07275072aa | ||
|
|
6cd166a284 | ||
|
|
5d5ae35288 | ||
|
|
8e4e6b056c | ||
|
|
fdaa2c4083 | ||
|
|
4bc6bbb23f | ||
|
|
cf9e6353cc | ||
|
|
268ec61d4f | ||
|
|
4d4706967d | ||
|
|
408cadb351 | ||
|
|
6c3e621f98 | ||
|
|
f5cbe53fdd | ||
|
|
4d66d97745 | ||
|
|
3981297fd3 | ||
|
|
16c3d53b1b | ||
|
|
b94b679e9a | ||
|
|
aace3dc28c | ||
|
|
80edd5c298 | ||
|
|
bdd81b3182 | ||
|
|
beec734fdd | ||
|
|
7d82479096 | ||
|
|
f5ec93eb88 | ||
|
|
cee5724d09 | ||
|
|
7d6f97d04d | ||
|
|
7a970b251d | ||
|
|
84184f9473 | ||
|
|
679a6d8935 | ||
|
|
6cd370e04b | ||
|
|
a48bcf3671 | ||
|
|
c052756154 | ||
|
|
dc842e8587 | ||
|
|
307085618d | ||
|
|
97df6cf55a | ||
|
|
f91e9ba757 | ||
|
|
0a697e73d5 | ||
|
|
6f492e8005 | ||
|
|
c4e6542514 | ||
|
|
34f0a6ec6a | ||
|
|
0be39054a6 | ||
|
|
b2a5271e74 | ||
|
|
bb966827ac | ||
|
|
5a706fb403 | ||
|
|
bb377b2673 | ||
|
|
ac3ce2bf75 | ||
|
|
79a4ac791c | ||
|
|
9d64a9d220 | ||
|
|
5af9d2a0ac | ||
|
|
6646272a05 | ||
|
|
73dd03cc5a | ||
|
|
760cb04a2e | ||
|
|
e8a59843f2 | ||
|
|
90027ff204 | ||
|
|
ea41907396 | ||
|
|
99749c597b | ||
|
|
92beb85510 | ||
|
|
6402004852 | ||
|
|
02bce0b145 | ||
|
|
4ffc8cc216 | ||
|
|
e3f3ac0825 | ||
|
|
c38abbfcaa | ||
|
|
c24b0bada2 | ||
|
|
a54f4d4ab9 | ||
|
|
33bb64f24f | ||
|
|
5b147eb5e4 | ||
|
|
89f5bacaf6 | ||
|
|
6eddbe26dd | ||
|
|
177e8327d6 | ||
|
|
f0236edfba | ||
|
|
9d7bf5329e | ||
|
|
a1ab377d99 | ||
|
|
c49129f545 | ||
|
|
fa791119f0 | ||
|
|
16ebf47fe3 | ||
|
|
5722903d53 | ||
|
|
1de40f360f | ||
|
|
a6726b66db | ||
|
|
8cdd95e8a2 | ||
|
|
9233dcc838 | ||
|
|
749d480193 | ||
|
|
3ccb3c0e09 | ||
|
|
a25b7b8b55 | ||
|
|
fadcd65018 | ||
|
|
0ed4af76c0 | ||
|
|
f1c7afcc3f | ||
|
|
a08c5cb3f1 | ||
|
|
0ceb43227d | ||
|
|
65bdbc7a8c | ||
|
|
4a75fd462c | ||
|
|
0a4f9ad637 | ||
|
|
16ab7bfe22 | ||
|
|
d82436e4e3 | ||
|
|
571fbdc311 | ||
|
|
7d1147ee5c | ||
|
|
9526190863 | ||
|
|
74dc50b7f0 | ||
|
|
0f0fda7abc | ||
|
|
38cef2adbd | ||
|
|
7edd0540e0 | ||
|
|
9188142698 | ||
|
|
d709c25cbf | ||
|
|
ca6f07f9ab | ||
|
|
8f0839bc55 | ||
|
|
01455a07a7 | ||
|
|
7d25bf7722 | ||
|
|
5146a58249 | ||
|
|
41bf2ad159 | ||
|
|
a7a0913005 | ||
|
|
3b85f84f02 | ||
|
|
2e9eff5641 | ||
|
|
6d155a47f1 | ||
|
|
4b1534989b | ||
|
|
b3c9d6785e | ||
|
|
98b53c06cf | ||
|
|
e970ddbc60 | ||
|
|
4b8922f576 | ||
|
|
2b38343e4d | ||
|
|
73352b68c4 | ||
|
|
5cd8af7622 | ||
|
|
80232b7e75 | ||
|
|
6d511f1376 | ||
|
|
9be5769a68 | ||
|
|
db0857ddd8 | ||
|
|
8c9d21e519 | ||
|
|
ac41c03003 | ||
|
|
11fb5b2209 | ||
|
|
a02d8001fa | ||
|
|
3fa776d66a | ||
|
|
22a9a86be0 | ||
|
|
b6c9232b8b | ||
|
|
05fb6c6648 | ||
|
|
08c91c2212 | ||
|
|
ecb17532dc | ||
|
|
ac1597bcc7 | ||
|
|
fdb5893bf0 | ||
|
|
6edd786bf6 | ||
|
|
61bb014a86 | ||
|
|
62c935d4fa | ||
|
|
aff9cea054 | ||
|
|
1bb037bdc6 | ||
|
|
a23bbea959 | ||
|
|
931913fbb2 | ||
|
|
dc21e8aa83 | ||
|
|
59d9d9fcb9 | ||
|
|
cb1e5e3f0f | ||
|
|
e8268d9163 | ||
|
|
7dbdad50a6 | ||
|
|
dc8bc6c98c | ||
|
|
73e7af9e28 | ||
|
|
aeb53e67f9 | ||
|
|
dcd9590fed | ||
|
|
8f1ce78907 | ||
|
|
7b0a33600e | ||
|
|
60f3b87d96 | ||
|
|
8007599756 | ||
|
|
5bd2af26e6 | ||
|
|
325940b091 | ||
|
|
101bf2290d | ||
|
|
2bb1972483 | ||
|
|
0ab09630c6 | ||
|
|
ec55539534 | ||
|
|
e8271649e0 | ||
|
|
be36096a19 | ||
|
|
c6f20db945 | ||
|
|
d987176412 | ||
|
|
050425b141 | ||
|
|
a6109bf1ea | ||
|
|
6adc242cf3 | ||
|
|
39f6d807db | ||
|
|
4460429d7a | ||
|
|
dfd3da3f52 | ||
|
|
96ed1392d1 | ||
|
|
6c7225f819 | ||
|
|
a46b5acc15 | ||
|
|
f9ad7df4da | ||
|
|
8eda97dc8d | ||
|
|
09514745fc | ||
|
|
0119969816 | ||
|
|
f8a924a749 | ||
|
|
5531f6ba1b | ||
|
|
e42a4b659a | ||
|
|
8dbd384003 | ||
|
|
c3cd481a9a | ||
|
|
eae1f59da9 | ||
|
|
45473ef235 | ||
|
|
78aa5f3fc1 | ||
|
|
42ca6e6942 | ||
|
|
1264902517 | ||
|
|
70670b4af6 | ||
|
|
024d9b131d | ||
|
|
25b9803056 | ||
|
|
d66b6d8fd2 | ||
|
|
4aea7dab15 | ||
|
|
a990322429 | ||
|
|
4f3a95af2f | ||
|
|
4f16161607 | ||
|
|
88236263dc | ||
|
|
927a9ed683 | ||
|
|
119994f3ce | ||
|
|
327733c93d | ||
|
|
1e6770fb97 | ||
|
|
cb40db052c | ||
|
|
de7fd1c306 | ||
|
|
7891de331a | ||
|
|
323d6ceda6 | ||
|
|
1b8e6bf31c | ||
|
|
04b0e785f6 | ||
|
|
6b90b0519e | ||
|
|
21af8bae38 | ||
|
|
804f198c73 | ||
|
|
fb0b1f0c23 | ||
|
|
3eced01f9e | ||
|
|
15e028530a | ||
|
|
4526282266 | ||
|
|
f600d0369a | ||
|
|
07f2070411 | ||
|
|
2b186e246e | ||
|
|
78aac241b8 | ||
|
|
1f1f604071 | ||
|
|
d35a550f6d | ||
|
|
457e1cb827 | ||
|
|
7508d9f9e0 | ||
|
|
a4bae3a9e2 | ||
|
|
d73fc70ea2 | ||
|
|
7cf6eecdc8 | ||
|
|
a5d8d59469 | ||
|
|
70130d3b16 | ||
|
|
6360b49931 | ||
|
|
e21f865d84 | ||
|
|
547a8b40b3 | ||
|
|
ca54f4e007 | ||
|
|
5fdb22f911 | ||
|
|
bd113ee048 | ||
|
|
a92363461d | ||
|
|
55d297fdda | ||
|
|
c72b547425 | ||
|
|
77c5adb09e | ||
|
|
ce5251aff7 | ||
|
|
cc0976bf7f | ||
|
|
17ef8a44a9 | ||
|
|
c494770ca0 | ||
|
|
d3b9b364da | ||
|
|
bac02b6e9d | ||
|
|
62537d200f | ||
|
|
f09345b3a4 | ||
|
|
7c072dbd9d | ||
|
|
4becb7bcb6 | ||
|
|
199b1bf500 | ||
|
|
46c4da7fdd | ||
|
|
ee321c70e5 | ||
|
|
dc7683a051 | ||
|
|
4870234552 | ||
|
|
7d2a7ce240 | ||
|
|
27ba8bd4ed | ||
|
|
89b3c375ac | ||
|
|
98acce13d5 | ||
|
|
534de6d8ae | ||
|
|
48d21bd089 | ||
|
|
e7edf8d145 | ||
|
|
90e57fd5a9 | ||
|
|
7e2e05d836 | ||
|
|
2599ada152 | ||
|
|
5a0a238f67 | ||
|
|
38367d3c3a | ||
|
|
4f096eb7c9 | ||
|
|
f27bc59f85 | ||
|
|
426ebf4fe9 | ||
|
|
8d8153e98a | ||
|
|
d87713440a | ||
|
|
aaa61899c9 | ||
|
|
4500bb7a67 | ||
|
|
3272e2597a | ||
|
|
3f4abff59c | ||
|
|
bfcae68ed1 | ||
|
|
2a18e537d6 | ||
|
|
a291f002cd | ||
|
|
89b99143ac | ||
|
|
1451ac1770 | ||
|
|
207fbcb083 | ||
|
|
b44fa365ca | ||
|
|
ac89e3045b | ||
|
|
bacf652311 | ||
|
|
89f2d458a2 | ||
|
|
d10467e27b | ||
|
|
736b90d54b | ||
|
|
7764f46e9e | ||
|
|
d7245f70e7 | ||
|
|
544978cb76 | ||
|
|
65c8dbe693 | ||
|
|
2d4d850813 | ||
|
|
b7a84b0fd7 | ||
|
|
20f15352a3 | ||
|
|
466ec300fc | ||
|
|
05c095cf39 | ||
|
|
beb75e651f | ||
|
|
2836c34b64 | ||
|
|
8ffa264cf0 | ||
|
|
6b27dad76e | ||
|
|
ed0e956fc2 | ||
|
|
bddf48380e | ||
|
|
ab241b3428 | ||
|
|
710453c676 | ||
|
|
e9320f31dc | ||
|
|
97d3b2731e | ||
|
|
bb0ff48aa9 | ||
|
|
c0c4d77192 | ||
|
|
9e196b3631 | ||
|
|
582ddeb2b2 | ||
|
|
1cfb265bef | ||
|
|
eb11508eff | ||
|
|
26227a6ff8 | ||
|
|
80d7de7074 | ||
|
|
e55961331e | ||
|
|
bdd240283e | ||
|
|
4f0f776187 | ||
|
|
06b0a5e038 | ||
|
|
69f508a2ac | ||
|
|
c4408278d1 | ||
|
|
422128b70a | ||
|
|
fe8c689eee | ||
|
|
ada416e66c | ||
|
|
5d8ba938be | ||
|
|
878162b362 | ||
|
|
90d5041b6a | ||
|
|
8474e693b4 | ||
|
|
f99ad11dd1 | ||
|
|
d77a41033a | ||
|
|
3f4cfbdd36 | ||
|
|
491bdeaa90 | ||
|
|
b58980b73d | ||
|
|
29b8d3d9e7 | ||
|
|
5fc9b5787d | ||
|
|
91aeb5de58 | ||
|
|
4f88437b7f | ||
|
|
dc30e68651 | ||
|
|
18e2446420 | ||
|
|
b3cb82b859 | ||
|
|
3d550f7485 | ||
|
|
05e99db466 | ||
|
|
a9705196ce | ||
|
|
6b65e5754c | ||
|
|
8011ba74a2 | ||
|
|
8aa50288a1 | ||
|
|
b588797900 | ||
|
|
928fcf9751 | ||
|
|
41beb448d2 | ||
|
|
b6a9f5c304 | ||
|
|
eaa80ad08c | ||
|
|
5ccc962942 | ||
|
|
a0f4a948bb | ||
|
|
939344b843 | ||
|
|
241455fcd1 | ||
|
|
34468e1c91 | ||
|
|
f0aebc8141 | ||
|
|
265f40b4f7 | ||
|
|
a5343fa605 | ||
|
|
44218b1c9e | ||
|
|
80ef5c228b | ||
|
|
326d778ccf | ||
|
|
690d3969b8 | ||
|
|
fa14314853 | ||
|
|
25868b95ee | ||
|
|
6765761075 | ||
|
|
97ade57fb2 | ||
|
|
e520cdc882 | ||
|
|
42948c04b9 | ||
|
|
4a6d6d5a59 | ||
|
|
148df533af | ||
|
|
d3feedf511 | ||
|
|
02dc95e6b9 | ||
|
|
21aa057faf | ||
|
|
42ecc8a37f | ||
|
|
bb24c36759 | ||
|
|
1b154e4fd3 | ||
|
|
cc5c9b5da2 | ||
|
|
808dc1b047 | ||
|
|
a58e0ca9d2 | ||
|
|
bfc3ccd90d | ||
|
|
57b8ed1398 | ||
|
|
3c9ec26370 | ||
|
|
f4f5542f8d | ||
|
|
95da499ef2 | ||
|
|
6f75dd8741 | ||
|
|
83c096d6e2 | ||
|
|
902585bec1 | ||
|
|
6073edf3cd | ||
|
|
24094482f0 | ||
|
|
950c5df859 | ||
|
|
8bedf2efd7 | ||
|
|
6d4782bc73 | ||
|
|
f57c78337e | ||
|
|
64f6681cc7 | ||
|
|
5763be7267 | ||
|
|
c7951cf674 | ||
|
|
285c833ffa | ||
|
|
1a6f9810cd | ||
|
|
b300e73a4a | ||
|
|
e34ecc97e6 | ||
|
|
5a92aae1d9 | ||
|
|
2f1c65486b | ||
|
|
d3e5065284 | ||
|
|
563152f32d | ||
|
|
cb8b8cdd68 | ||
|
|
f9a785e855 | ||
|
|
4e92991809 | ||
|
|
64d5157116 | ||
|
|
488330d53b | ||
|
|
60ab1358da | ||
|
|
599fa774b8 | ||
|
|
682359cb48 | ||
|
|
9d5bab11f0 | ||
|
|
41ee125a0f | ||
|
|
316bc79e0e | ||
|
|
8686a36b40 | ||
|
|
23cbb2d170 | ||
|
|
be54b54fb3 | ||
|
|
19c8c30d1c | ||
|
|
72294c5402 | ||
|
|
c9b6bb5bd7 | ||
|
|
0790f704fd | ||
|
|
c2ef302468 | ||
|
|
d22bcc813e | ||
|
|
2210e06788 | ||
|
|
05b51c75b9 | ||
|
|
316837226e | ||
|
|
7b0b9b570b | ||
|
|
cc80ada739 | ||
|
|
43c8c650af | ||
|
|
01892f9c6e | ||
|
|
0f7b1c549f | ||
|
|
57e7a3fbea | ||
|
|
97b2ca3de7 | ||
|
|
ffab1ea9e7 | ||
|
|
ad348a8cec | ||
|
|
911cc7cb07 | ||
|
|
8d49ba9e8d | ||
|
|
0ee196bef1 | ||
|
|
3709344166 | ||
|
|
646747fd7c | ||
|
|
f030937a51 | ||
|
|
ceca198ef2 | ||
|
|
5e26e64cbf | ||
|
|
e54051ae9e | ||
|
|
46e3d24a6f | ||
|
|
3bf3876185 | ||
|
|
d8afc7beeb | ||
|
|
38838b344a | ||
|
|
9842ff4129 | ||
|
|
d809823fe4 | ||
|
|
4441a2306f | ||
|
|
a284920b34 | ||
|
|
7455bb23c1 | ||
|
|
6ebea8973f | ||
|
|
3c68c352fc | ||
|
|
9fa8b9a4a6 | ||
|
|
e512a20679 | ||
|
|
4b0f4213a5 | ||
|
|
39dc40fed4 | ||
|
|
f7bbbc6590 | ||
|
|
13a3fce29e | ||
|
|
f09a0f5ca7 | ||
|
|
b6bcbc0cbc | ||
|
|
e1e758a7b4 | ||
|
|
1ce1611ead | ||
|
|
e32de7efd6 | ||
|
|
f3bd031ccd | ||
|
|
5f1f9460d7 | ||
|
|
ccb4dd6144 | ||
|
|
73491fa452 | ||
|
|
33d9a85730 | ||
|
|
9a7b4431ec | ||
|
|
54c06d2d91 | ||
|
|
ce5907727e | ||
|
|
a667213ec5 | ||
|
|
29b8242e07 | ||
|
|
4f355c3525 | ||
|
|
15358636cf | ||
|
|
cbecf422df | ||
|
|
7fcb0fdcd4 | ||
|
|
5d6cce0f85 | ||
|
|
51b8f3cfb9 | ||
|
|
489658dbd2 | ||
|
|
9ad38cbeaf | ||
|
|
2bf7ac58b7 | ||
|
|
d20034b09c | ||
|
|
0cbfbc400a | ||
|
|
ba9714d44c | ||
|
|
ecc1d85dbe | ||
|
|
08fa269886 | ||
|
|
8ac7186331 | ||
|
|
984fbbbcab | ||
|
|
39f4e4d3c3 | ||
|
|
3cb606ef5b | ||
|
|
4795c395e9 | ||
|
|
958d4a7505 | ||
|
|
f250ab2c2a | ||
|
|
cc9f7ad9ce | ||
|
|
edc4adb77e | ||
|
|
df90df298e | ||
|
|
268836482d | ||
|
|
1964954da9 | ||
|
|
9af1787ebe | ||
|
|
8a95020ab6 | ||
|
|
0198afca3a | ||
|
|
1bca05eace | ||
|
|
cc396895e5 | ||
|
|
4251b56214 | ||
|
|
ab34cb98c8 | ||
|
|
0da48f19cb | ||
|
|
4aa65cbeef | ||
|
|
da2c930262 | ||
|
|
540c706bbc | ||
|
|
d993432d44 | ||
|
|
4b4c80bb31 | ||
|
|
d3e6d04e3e | ||
|
|
2be1f10fec | ||
|
|
f5a6b7f7c0 | ||
|
|
a1c3adb88d | ||
|
|
356667f155 | ||
|
|
723582c524 | ||
|
|
98294242a9 | ||
|
|
7f05f6f7c7 | ||
|
|
dde557e312 | ||
|
|
82bcee76ea | ||
|
|
3aff5eacbd | ||
|
|
44fa12e751 | ||
|
|
fdbfc8a73b | ||
|
|
5842fd5beb | ||
|
|
672bade522 | ||
|
|
a05560d993 | ||
|
|
040cb7b5a9 | ||
|
|
f92d095e16 | ||
|
|
7a3bea1f6a | ||
|
|
d2b3eef0f2 | ||
|
|
cd5d0ff5b2 | ||
|
|
07f55c5ea2 | ||
|
|
d9052b9466 | ||
|
|
5e1fe43080 | ||
|
|
14df5c130e | ||
|
|
7f6358a8b5 | ||
|
|
4116b109f0 | ||
|
|
93ee19f58a | ||
|
|
ad90fb6da3 | ||
|
|
5a259d875e | ||
|
|
4b02956d42 | ||
|
|
9f34e4f8d9 | ||
|
|
d2e0e534d7 | ||
|
|
e91f0d3dba | ||
|
|
26755a9686 | ||
|
|
64c0962866 | ||
|
|
bb3e44d8b6 | ||
|
|
5c7ede94ae | ||
|
|
89b7d07597 | ||
|
|
f6ea89795b | ||
|
|
33245d6b38 | ||
|
|
7a1cb64bc1 | ||
|
|
68f385c1ca | ||
|
|
8bbd264c6e | ||
|
|
959e62ca3e | ||
|
|
ad0e5a99ca | ||
|
|
495f2688d6 | ||
|
|
0dca573ca5 | ||
|
|
3d3eaed913 | ||
|
|
1f57ce0a06 | ||
|
|
4e4828eaff | ||
|
|
7d58978f62 | ||
|
|
b5922c3b86 | ||
|
|
73ac710533 | ||
|
|
e2b1013f11 | ||
|
|
4386d42d31 | ||
|
|
27764e6035 | ||
|
|
6c71859ac2 | ||
|
|
65a54883b3 | ||
|
|
d8b230c384 | ||
|
|
b5a48277ab | ||
|
|
47422be2d1 | ||
|
|
3968ab5db5 | ||
|
|
12d6ec66a6 | ||
|
|
6fe959c62d | ||
|
|
3f6a3545a2 | ||
|
|
f143bf7c45 | ||
|
|
746f8d1333 | ||
|
|
1a1ce66dc9 | ||
|
|
3b430b9f73 | ||
|
|
948f3b3c24 | ||
|
|
f94f957734 | ||
|
|
302bc2fd7f | ||
|
|
e19cf26d65 | ||
|
|
1b143ba787 | ||
|
|
a44e8908a1 | ||
|
|
46df171d53 | ||
|
|
111858f3ff | ||
|
|
197d0cc603 | ||
|
|
a87262efb2 | ||
|
|
0c6529d2d3 | ||
|
|
5ca0b08a75 | ||
|
|
2adb3b409e | ||
|
|
dc4096ce13 | ||
|
|
29233e0a00 | ||
|
|
408cec516b | ||
|
|
cecf817f5e | ||
|
|
3f1927a7f3 | ||
|
|
e206d57bfc | ||
|
|
82a8e91ef7 | ||
|
|
465bdd9e41 | ||
|
|
caee1beaaf | ||
|
|
3599448ad8 | ||
|
|
64ac9a05e8 | ||
|
|
03030d47eb | ||
|
|
63cd0a36da | ||
|
|
db8b3cd084 | ||
|
|
dcb2f3f502 | ||
|
|
14874779ee | ||
|
|
705ad7d829 | ||
|
|
3930709af4 | ||
|
|
fc76687c2f | ||
|
|
ccf91f881c | ||
|
|
e9807a4b0f | ||
|
|
fcb280a48b | ||
|
|
891530fbc9 | ||
|
|
e0774bed2d | ||
|
|
462b1df758 | ||
|
|
c8f37564bf | ||
|
|
0b5b6429a0 | ||
|
|
418a82551a | ||
|
|
74667e3d56 | ||
|
|
76991c8129 | ||
|
|
05b9b5821d | ||
|
|
8a70664e52 | ||
|
|
8c106b0c8e | ||
|
|
b76f320e76 | ||
|
|
a8bf2acb7d | ||
|
|
75a4edca6b | ||
|
|
544bd260b6 | ||
|
|
ea9201f420 | ||
|
|
a8d16dea8e | ||
|
|
1532a1b0bd | ||
|
|
860bf9b35f | ||
|
|
86f97fe70c | ||
|
|
2179a8f2d6 | ||
|
|
1227a275a1 | ||
|
|
35e75c131d | ||
|
|
561ec9c5a0 | ||
|
|
ae5f678fba | ||
|
|
c7e1df8328 | ||
|
|
6acf032db8 | ||
|
|
f00a748bc5 | ||
|
|
7d07d19523 | ||
|
|
67dd841432 | ||
|
|
d437c61f5b | ||
|
|
b39a9bffda | ||
|
|
1de1a38859 | ||
|
|
316d303c1d | ||
|
|
a6b4f25bd5 | ||
|
|
2d7c50791b | ||
|
|
e1b06eac72 | ||
|
|
b54c4a33c6 | ||
|
|
b3dbf28bc0 | ||
|
|
6d6d00b69c | ||
|
|
bb7608bacc | ||
|
|
a2d3fc83b0 | ||
|
|
d43a5a289f | ||
|
|
1f689241cf | ||
|
|
b8de39431d | ||
|
|
4818c798bc | ||
|
|
da9efee1c2 | ||
|
|
05af487a2d | ||
|
|
ec5c7926f3 | ||
|
|
6d6f726b74 | ||
|
|
89711f3767 | ||
|
|
9ff555083a | ||
|
|
f83e7302c1 | ||
|
|
82ccfe3a21 | ||
|
|
a177152f22 | ||
|
|
e1196584d5 | ||
|
|
cf799ba232 | ||
|
|
485a0691f4 | ||
|
|
169a7c27a7 | ||
|
|
5d9baa2f93 | ||
|
|
83a98c66f1 | ||
|
|
452cb8432f | ||
|
|
fee02f0668 | ||
|
|
60a29a668c | ||
|
|
3d9d84b742 | ||
|
|
84df74ca39 | ||
|
|
0b5c504ad0 | ||
|
|
eb3af8abe9 | ||
|
|
d3abfec8b7 | ||
|
|
f3c90f0445 | ||
|
|
b827ce8334 | ||
|
|
7871390930 | ||
|
|
6983d05b73 | ||
|
|
80fae514b1 | ||
|
|
eb358619df | ||
|
|
41ba05e450 | ||
|
|
fed262a9cf | ||
|
|
96cdf93b42 | ||
|
|
1be80a4445 | ||
|
|
ba43649530 | ||
|
|
cbccc4c817 | ||
|
|
41d58533ac | ||
|
|
d94ce6566d | ||
|
|
a83c02fe2c | ||
|
|
de0c05da07 | ||
|
|
748476fd80 | ||
|
|
27c5c1070a | ||
|
|
9ebcda2165 | ||
|
|
1e4eafb4fe | ||
|
|
750bece0c2 | ||
|
|
b81c9c8442 | ||
|
|
732179ca84 | ||
|
|
38cc0391f3 | ||
|
|
01b8512911 | ||
|
|
8e36c05d6c | ||
|
|
d0e8aec041 | ||
|
|
a18191fee8 | ||
|
|
9bc6a212f7 | ||
|
|
35e802374c | ||
|
|
2e340e855b | ||
|
|
35e7bc21d3 | ||
|
|
9ad6dc881d | ||
|
|
c5910fa065 | ||
|
|
86f41a4c42 | ||
|
|
d74769826d | ||
|
|
8d899925dc | ||
|
|
44d9f55d0b | ||
|
|
cc894d849a | ||
|
|
ed1ebd242a | ||
|
|
f3e8bd1d11 | ||
|
|
1c1a73f715 | ||
|
|
adf62febe6 | ||
|
|
00b1eacad6 | ||
|
|
88d9ebf8e8 | ||
|
|
1c2dadc31e | ||
|
|
b372f28ad4 | ||
|
|
e3ccaa6541 | ||
|
|
d819debaa5 | ||
|
|
28829f308f | ||
|
|
9beae21864 | ||
|
|
36d61c3106 | ||
|
|
5f4965d422 | ||
|
|
33d6614150 | ||
|
|
c92883a3d5 | ||
|
|
0ff3a2784e | ||
|
|
e8f62de1cf | ||
|
|
98e8616a0c | ||
|
|
07ea445b43 | ||
|
|
17ce0976e4 | ||
|
|
bad6aa68e4 | ||
|
|
5f50e991ca | ||
|
|
9d1fe6565c | ||
|
|
a4a5385831 | ||
|
|
a98f58756d | ||
|
|
d53a5eed0f | ||
|
|
f968da97a5 | ||
|
|
2985738f15 | ||
|
|
31a73b0d70 | ||
|
|
8063aa2e4a | ||
|
|
2471919020 | ||
|
|
f39641ccbd | ||
|
|
b5362dadc5 | ||
|
|
2ea62c1369 | ||
|
|
0dc03c9d54 | ||
|
|
328e512d12 | ||
|
|
937dd3456c | ||
|
|
314db55f6d | ||
|
|
6b81342c22 | ||
|
|
41d6be4d80 | ||
|
|
4b23bef51d | ||
|
|
f32adaf89f | ||
|
|
2763cf14e6 | ||
|
|
b2ccc9731e | ||
|
|
d980cb4879 | ||
|
|
62acc882bf | ||
|
|
7400aff3b8 | ||
|
|
f239695b56 | ||
|
|
136dad7197 | ||
|
|
30fa50d158 | ||
|
|
4a9f8efa86 | ||
|
|
ce493dda90 | ||
|
|
f7d45b85a5 | ||
|
|
4900517479 | ||
|
|
0f51e63263 | ||
|
|
8d696aea9e | ||
|
|
9ed456fac8 | ||
|
|
b2240bf870 | ||
|
|
cb158ffb8a | ||
|
|
117c5b116b | ||
|
|
723037a79d | ||
|
|
d518dbf726 | ||
|
|
9cd5741c14 | ||
|
|
6e77e14fdb | ||
|
|
be6031b87d | ||
|
|
5a00617b1b | ||
|
|
3da987adac | ||
|
|
fdaabd6eec | ||
|
|
36ec05d52a | ||
|
|
8346ae2bc1 | ||
|
|
9a68d1d952 | ||
|
|
2c70828e7d | ||
|
|
ffb2494de4 | ||
|
|
174c1a6d53 | ||
|
|
f63362310e | ||
|
|
afd2501fcc | ||
|
|
d6cf4aa155 | ||
|
|
9412c0a2ca | ||
|
|
20b1d19d26 | ||
|
|
955abcae55 | ||
|
|
c6a288dcd6 | ||
|
|
73018b39cd | ||
|
|
33a7978e85 | ||
|
|
9c2e5b3871 | ||
|
|
6a7dff30ed | ||
|
|
310aa93478 | ||
|
|
64ed816ad9 | ||
|
|
b8f0a668dd | ||
|
|
781d6d793a | ||
|
|
d03128d0e5 | ||
|
|
e764e9b740 | ||
|
|
ed34e7f5ae | ||
|
|
fdb4bafa31 | ||
|
|
4ad3ac6317 | ||
|
|
85de01e676 | ||
|
|
48fd4f2bd3 | ||
|
|
c57af319f6 | ||
|
|
a31a11f44a | ||
|
|
ddb86469e0 | ||
|
|
1a41e12c22 | ||
|
|
c738c8ea3e | ||
|
|
9fb53adfe0 | ||
|
|
ebba42ac52 | ||
|
|
42b7260e8b | ||
|
|
c7faf60201 | ||
|
|
eb8d8cdddd | ||
|
|
77df3152c8 | ||
|
|
f098b490f1 | ||
|
|
9e56d100df | ||
|
|
2e5700a92c | ||
|
|
b1c34c03d7 | ||
|
|
14aad787a8 | ||
|
|
a0f7ae1a95 | ||
|
|
ec119716e5 | ||
|
|
5ec0120152 | ||
|
|
3656939a6a | ||
|
|
c06135b5a6 | ||
|
|
1b5d35ad2c | ||
|
|
0f3828dddd | ||
|
|
803680f17a | ||
|
|
e97fe081ad | ||
|
|
3c7ab80501 | ||
|
|
3bba899574 | ||
|
|
896207de14 | ||
|
|
54f7b6ca34 | ||
|
|
8ecb5dfa34 | ||
|
|
49726ee3a9 | ||
|
|
445ebef437 | ||
|
|
e3ece365ce | ||
|
|
bb1a7bb3e1 | ||
|
|
8858d54342 | ||
|
|
525a91e3fa | ||
|
|
6831f9db8b | ||
|
|
497f9e760d | ||
|
|
4ed933cf77 | ||
|
|
7360960454 | ||
|
|
cc60f2ff3f | ||
|
|
fb58d77e92 | ||
|
|
7551529854 | ||
|
|
02347d0cec | ||
|
|
2240c7ec2f | ||
|
|
1958f0e8bd | ||
|
|
dbd2b5f89f | ||
|
|
c0b4957fcc | ||
|
|
5c95bb1c51 | ||
|
|
2a062f1654 | ||
|
|
7f56de8f78 | ||
|
|
e575924131 | ||
|
|
caa841d9a5 | ||
|
|
314bad3613 | ||
|
|
793da60ee8 | ||
|
|
2cc4bf1a9d | ||
|
|
5a7886575e | ||
|
|
30a140b5a2 | ||
|
|
1fd400608e | ||
|
|
ebeee6dce8 | ||
|
|
d2ce04bb10 | ||
|
|
54bf370079 | ||
|
|
0826ceee65 | ||
|
|
c0c31224db | ||
|
|
3651b92229 | ||
|
|
12358e6c94 | ||
|
|
287bb06def | ||
|
|
8a1639d49b | ||
|
|
76cda9f44a | ||
|
|
b60604e8eb | ||
|
|
92521b100f | ||
|
|
00eb348a52 | ||
|
|
1385c3d2f1 | ||
|
|
90b4006bce | ||
|
|
d7dc474a5a | ||
|
|
e0620b8e05 | ||
|
|
6b9b7d1d92 | ||
|
|
2060c8ea14 | ||
|
|
646b666a26 | ||
|
|
fb9a29d732 | ||
|
|
e846a1d700 | ||
|
|
3f36dd811e | ||
|
|
425ef0685c | ||
|
|
2bbbff209d | ||
|
|
bc15163386 | ||
|
|
19380d74e4 | ||
|
|
87017b5199 | ||
|
|
99a9dbc8f1 | ||
|
|
d8af7a6014 | ||
|
|
b9bdbe9ab3 | ||
|
|
82e8b0332b | ||
|
|
27cf63853c | ||
|
|
42fa000a7d | ||
|
|
475e9a7cad | ||
|
|
1de772cd89 | ||
|
|
d9db90636f | ||
|
|
c789d24039 | ||
|
|
c6d7cf6b48 | ||
|
|
ce4b995556 | ||
|
|
12946f5748 | ||
|
|
9486969bd3 | ||
|
|
628a3f173a | ||
|
|
7a5597c34f | ||
|
|
e5ce7d9e43 | ||
|
|
cd7d53c88c | ||
|
|
2586f36120 | ||
|
|
39398075b7 | ||
|
|
137513025d | ||
|
|
4485737e9b | ||
|
|
0ff2ff6789 | ||
|
|
2aeb0e5267 | ||
|
|
42965d390c | ||
|
|
a43a17c8ea | ||
|
|
ba90dc7795 | ||
|
|
76975da59e | ||
|
|
0d45a524b3 | ||
|
|
0243da2e4a | ||
|
|
a8e3a2dd2f | ||
|
|
db174a15d1 | ||
|
|
969a6b9fd7 | ||
|
|
97276859ab | ||
|
|
50d7335206 | ||
|
|
ec9d816abf | ||
|
|
9e20382311 | ||
|
|
f45b01f883 | ||
|
|
a8871f5d26 | ||
|
|
6b2a86a65e | ||
|
|
dc81603cbf | ||
|
|
c67bbcea92 | ||
|
|
ce6e7461dc | ||
|
|
314e9b3dcc | ||
|
|
0a34018797 | ||
|
|
8db1dd0258 | ||
|
|
1d517afbd4 | ||
|
|
08fbb7bb5e | ||
|
|
536ad9df1a | ||
|
|
ddd50d0db3 | ||
|
|
ce10460e94 | ||
|
|
e52a2aeeac | ||
|
|
6580c4e631 | ||
|
|
b5ea140dff | ||
|
|
a6a3cf485d | ||
|
|
35d22930bb | ||
|
|
5764119024 | ||
|
|
312702567a | ||
|
|
35cb303a2c | ||
|
|
b5d204c3a4 | ||
|
|
507c49a3ab | ||
|
|
39f12a88e7 | ||
|
|
44f33ad1a9 | ||
|
|
ee3023359c | ||
|
|
5919fad1f4 | ||
|
|
022290bdbd | ||
|
|
2e59d21e56 | ||
|
|
f69d88c57f | ||
|
|
a3137c750f | ||
|
|
78ff454f19 | ||
|
|
9f587d272f | ||
|
|
4bf1987856 | ||
|
|
2aec910ea4 | ||
|
|
0e0c022b1f | ||
|
|
b659c35395 | ||
|
|
83a924a100 | ||
|
|
0ec3d2e363 | ||
|
|
ed9592c6e8 | ||
|
|
15fa78e6e7 | ||
|
|
7cf24d1c06 | ||
|
|
a324fa2639 | ||
|
|
3399fbf9fa | ||
|
|
94a05e0caa | ||
|
|
7c650489d2 | ||
|
|
dd59471798 | ||
|
|
2ee4245105 | ||
|
|
7baccd9ee2 | ||
|
|
3ef834fc6f | ||
|
|
c59411929d | ||
|
|
62bd2ebac4 | ||
|
|
f9ed825266 | ||
|
|
73a084c24e | ||
|
|
7b922104f5 | ||
|
|
5881b099f6 | ||
|
|
7ca2aec34c | ||
|
|
ac01e24eaf | ||
|
|
a663d5d694 | ||
|
|
24c6af0637 | ||
|
|
a7546b3a16 | ||
|
|
ac898e9051 | ||
|
|
a1a9ec6e46 | ||
|
|
c6bd489cc8 | ||
|
|
ccbb0e8d89 | ||
|
|
9ce5fdc962 | ||
|
|
b062b1bd81 | ||
|
|
df819cfa5a | ||
|
|
312bbe7d75 | ||
|
|
50e31e06d7 | ||
|
|
85e3974470 | ||
|
|
40aea04680 | ||
|
|
9b9b5a7a5c | ||
|
|
dd7ca757a7 | ||
|
|
f9827ad172 | ||
|
|
6010de0f1d | ||
|
|
127afd3445 | ||
|
|
33d09e587a | ||
|
|
790acedaab | ||
|
|
2e91585ac9 | ||
|
|
094e03de6a | ||
|
|
4de24cdbe6 | ||
|
|
336a23e70a | ||
|
|
ecec611af6 | ||
|
|
aa762102e9 | ||
|
|
b8c748dbe4 | ||
|
|
41a3db267d | ||
|
|
34e66ce1ef | ||
|
|
a19b28ab3e | ||
|
|
8eb4e7e07e | ||
|
|
abfb900829 | ||
|
|
a565be4dc5 | ||
|
|
cccb0191a3 | ||
|
|
bdbf8fc61d | ||
|
|
4a5d7ca7d9 | ||
|
|
dae1ab3aad | ||
|
|
e012685051 | ||
|
|
fe42312f9b | ||
|
|
2f36eb0121 | ||
|
|
049b953f8f | ||
|
|
345669c29d | ||
|
|
dea9db2d0a | ||
|
|
c8f3a97d46 | ||
|
|
7fe5bd2bec | ||
|
|
787832a586 | ||
|
|
a144c713b7 | ||
|
|
d8158897c3 | ||
|
|
5f7b4b8e75 | ||
|
|
83cf28f996 | ||
|
|
05cc02b243 | ||
|
|
d2df36b073 | ||
|
|
1d7bb1ffa0 | ||
|
|
9df2060059 | ||
|
|
b261e6c43f | ||
|
|
2c38e67b29 | ||
|
|
f0dba218ac | ||
|
|
77811fa39b | ||
|
|
2d607c9cd1 | ||
|
|
b3ff8d1c89 | ||
|
|
b524a74165 | ||
|
|
9643f654da | ||
|
|
69152c3b18 | ||
|
|
438c969b7b | ||
|
|
d063b8964f | ||
|
|
be764a711c | ||
|
|
34f4d7f4ad | ||
|
|
42df1a99b7 | ||
|
|
e3855d0054 | ||
|
|
67274906ae | ||
|
|
f07decb74b | ||
|
|
014c658708 | ||
|
|
2fa09333ef | ||
|
|
e56bcb04b1 | ||
|
|
09852884cc | ||
|
|
ff368d504e | ||
|
|
96fa2751e8 | ||
|
|
7239150f8a | ||
|
|
3fbbfd1749 | ||
|
|
50a995f03a | ||
|
|
ca745cb426 | ||
|
|
1683a63a7d | ||
|
|
fab23577ab | ||
|
|
1fc218c58b | ||
|
|
c1f5ca115d | ||
|
|
695683b5b1 | ||
|
|
83ce65e12c | ||
|
|
32ef452132 | ||
|
|
927e674c12 | ||
|
|
c90699eae7 | ||
|
|
395a4ce0dd | ||
|
|
60640a216d | ||
|
|
cddaf686e1 | ||
|
|
a06f46196a | ||
|
|
7987ad427b | ||
|
|
3c4cd50e3c | ||
|
|
4f625c0b9a | ||
|
|
426025aab4 | ||
|
|
6aec6f3a84 | ||
|
|
63ce88b5fb | ||
|
|
554bccf046 | ||
|
|
3b88b2a9f8 | ||
|
|
f8e8fc7e29 | ||
|
|
14b970dc9e | ||
|
|
80e2d52f76 | ||
|
|
6c3b10fb1d | ||
|
|
87b314a985 | ||
|
|
2f34687ec1 | ||
|
|
6b2f34f88a | ||
|
|
138cdc9283 | ||
|
|
46b0602376 | ||
|
|
8d423f7305 | ||
|
|
20830883df | ||
|
|
0712adc2dd | ||
|
|
de1c12ed63 | ||
|
|
10fa7d1f9b | ||
|
|
4acf20df7b | ||
|
|
a5ffa079a0 | ||
|
|
65e01da925 | ||
|
|
38e17148fa | ||
|
|
765a94258d | ||
|
|
3f59b75bd8 | ||
|
|
501b606816 | ||
|
|
97649489d0 | ||
|
|
57276101df | ||
|
|
d8ba227aa4 | ||
|
|
9a8a60f7d6 | ||
|
|
f96aee7401 | ||
|
|
4ec720db9f | ||
|
|
13dd19aac2 | ||
|
|
d61de141eb | ||
|
|
941a7ac7da | ||
|
|
ac6af6a640 | ||
|
|
dd23ee9e87 | ||
|
|
6f67abd352 | ||
|
|
568dd57d0d | ||
|
|
af0504e3f3 | ||
|
|
3859faf183 | ||
|
|
f37674a8f7 | ||
|
|
7f9e691630 | ||
|
|
51035a75e4 | ||
|
|
46cca1a4c5 | ||
|
|
6fa25cc134 | ||
|
|
4b8f7db6be | ||
|
|
c00d0885ae | ||
|
|
147f3473d4 | ||
|
|
bf917ba6af | ||
|
|
63d4afbeb1 | ||
|
|
e2cfcfbfa9 | ||
|
|
af4d5600e3 | ||
|
|
c4338620b7 | ||
|
|
91f407d6fe | ||
|
|
e73411a235 | ||
|
|
a2d8f634de | ||
|
|
37774556da | ||
|
|
760c0128a4 | ||
|
|
75168eaca3 | ||
|
|
4154a980ca | ||
|
|
ddf1e34c1a | ||
|
|
358c61b58d | ||
|
|
c74507eeb3 | ||
|
|
ca94287d2b | ||
|
|
eda0065107 | ||
|
|
c039d26603 | ||
|
|
0156909ab3 | ||
|
|
0deb648985 | ||
|
|
019fcd819c | ||
|
|
d6f20e2fbf | ||
|
|
d788a1bb80 | ||
|
|
bbde2158d1 | ||
|
|
1c04686cd6 | ||
|
|
c65bb2c58e | ||
|
|
4bf1fbb06d | ||
|
|
c4df9b5f17 | ||
|
|
a6b72f56f5 | ||
|
|
a72ba38347 | ||
|
|
bbca7c3ede | ||
|
|
f593a6b52e | ||
|
|
bc0ed730f2 | ||
|
|
2d0d057d66 | ||
|
|
42723dcb18 | ||
|
|
19f2edd9b7 | ||
|
|
622f239448 | ||
|
|
4c8c9935eb | ||
|
|
4ed7350573 | ||
|
|
eb73fa833c | ||
|
|
80e979720a | ||
|
|
c396f1ed8b | ||
|
|
ded6a81319 | ||
|
|
652bda0af8 | ||
|
|
450567031e | ||
|
|
c09f83ec25 | ||
|
|
e339e183c1 | ||
|
|
033c0b17cb | ||
|
|
7503ecc0f1 | ||
|
|
f8482c20f4 | ||
|
|
c56f011baa | ||
|
|
254288a518 | ||
|
|
8f5bb538ab | ||
|
|
b085ab9316 | ||
|
|
bfb812a8ff | ||
|
|
932be3542d | ||
|
|
02a4ee206a | ||
|
|
4486f1b720 | ||
|
|
8d2ebf248e | ||
|
|
d5a150706e | ||
|
|
384a8b85a7 | ||
|
|
6dd6c15ed4 | ||
|
|
cb4ae1922d | ||
|
|
b2639e1d62 | ||
|
|
620564ac61 | ||
|
|
9d518c528b | ||
|
|
ebac7eec8e | ||
|
|
36995c5a75 | ||
|
|
6b42275461 | ||
|
|
8eed7dea7b | ||
|
|
a487a270dc | ||
|
|
2e987d798a | ||
|
|
2f23c80e0d | ||
|
|
96889bf3e4 | ||
|
|
f629152021 | ||
|
|
b5108b4f37 | ||
|
|
7dbab81d3c | ||
|
|
d4eb395335 | ||
|
|
dfc7214a3e | ||
|
|
7277bb19f1 | ||
|
|
b7945bc9e5 | ||
|
|
eefbaa2956 | ||
|
|
42dd9077a0 | ||
|
|
2b81faeb35 | ||
|
|
be08a256ab | ||
|
|
1ae69e3e91 | ||
|
|
116627dfb0 | ||
|
|
824a5e4c60 | ||
|
|
7ad48ea3ad | ||
|
|
35a2969057 | ||
|
|
01e6920581 | ||
|
|
3d77e217b2 | ||
|
|
e3777b0c49 | ||
|
|
349139b2cc | ||
|
|
714b5f036f | ||
|
|
065d3e0d58 | ||
|
|
cd41c69d44 | ||
|
|
f5c8b68c1c | ||
|
|
617c15f5a1 | ||
|
|
f81e1def8f | ||
|
|
45809fd0c0 | ||
|
|
baf11e734f | ||
|
|
830fd41346 | ||
|
|
4e631fa43f | ||
|
|
10f1674625 | ||
|
|
9f9ab02ff6 | ||
|
|
a00f5d24d3 | ||
|
|
da044dd569 | ||
|
|
c466cdf973 | ||
|
|
55aa122462 | ||
|
|
ec1eb00ed3 | ||
|
|
31680b2bcf | ||
|
|
0cc0f063e2 | ||
|
|
43eca1dcb1 | ||
|
|
b6d70f2c49 | ||
|
|
2bb990edde | ||
|
|
c073ef2ed5 | ||
|
|
49181b81dd | ||
|
|
7bbc5e0efb | ||
|
|
a8f662ecb2 | ||
|
|
5685107579 | ||
|
|
671a45219f | ||
|
|
a95bc7acd0 | ||
|
|
f835aaafc7 | ||
|
|
466ffebcae | ||
|
|
431e702b67 | ||
|
|
4cf4c599b9 | ||
|
|
8e41bf222f | ||
|
|
805a4e6806 | ||
|
|
25e7ac226a | ||
|
|
3018b4705e | ||
|
|
b575e54bc9 | ||
|
|
c183fce954 | ||
|
|
31e1e3975b | ||
|
|
1148a659a8 | ||
|
|
d20bde29f2 | ||
|
|
c313e1ac7b | ||
|
|
fbc76c2c78 | ||
|
|
a06426a52f | ||
|
|
98a7a60fcb | ||
|
|
0a4d54f7ce | ||
|
|
2116928528 | ||
|
|
d7f4221bfe | ||
|
|
94de0a73de | ||
|
|
bf16b5b988 | ||
|
|
6f54eda4a4 | ||
|
|
a3358b10ca | ||
|
|
206661d45f | ||
|
|
9dd7b87997 | ||
|
|
c26e1d0148 | ||
|
|
548d552bc1 | ||
|
|
f2a36b4b52 | ||
|
|
a32ee5dd8b | ||
|
|
01312a002b | ||
|
|
6d30bbe62c | ||
|
|
de9f3b6aac | ||
|
|
b9951dd639 | ||
|
|
75d630621c | ||
|
|
b1d89f3066 | ||
|
|
0f26d09da8 | ||
|
|
e26cc52600 | ||
|
|
d06308c54a | ||
|
|
8b740b4609 | ||
|
|
562c8fc668 | ||
|
|
e930b63a8f | ||
|
|
af0ca78a8f | ||
|
|
8b0eb7299a | ||
|
|
5726d31e56 | ||
|
|
a9dba56568 | ||
|
|
769e740181 | ||
|
|
f9aadb943c | ||
|
|
595645c76d | ||
|
|
68b5eef44f | ||
|
|
3227b49a7a | ||
|
|
cdcf5c1ed8 | ||
|
|
4655b790d0 | ||
|
|
1e9942aa11 | ||
|
|
7e01534590 | ||
|
|
713def0bf2 | ||
|
|
34a92466a6 | ||
|
|
a7e308ab6e | ||
|
|
dd79410824 | ||
|
|
dc523a58a6 | ||
|
|
5e232cf0a9 | ||
|
|
8cfd74f76a | ||
|
|
02875e77fd | ||
|
|
ad326fc62b | ||
|
|
05ceb37a2c | ||
|
|
25de2228ac | ||
|
|
5b43804b79 | ||
|
|
f813dc7183 | ||
|
|
404d5bddb9 | ||
|
|
d287a5e9d8 | ||
|
|
ddcb369cea | ||
|
|
56512cfe1f | ||
|
|
8eaf84f094 | ||
|
|
d988252378 | ||
|
|
afda8fbf0b | ||
|
|
1d071d0817 | ||
|
|
09d469e5ad | ||
|
|
21a6ab1e3e | ||
|
|
5fa9bd4582 | ||
|
|
9b10c69475 | ||
|
|
d7298245d6 | ||
|
|
5f1108f8f0 | ||
|
|
32f4d8b5ea | ||
|
|
9f9d678591 | ||
|
|
b5b5cba7fe | ||
|
|
4d4eadeae3 | ||
|
|
f1f4e1de44 | ||
|
|
acf899612f | ||
|
|
ac3ab5b007 | ||
|
|
45a616a891 | ||
|
|
43288bbd68 | ||
|
|
008c5eb4dd | ||
|
|
52d3008773 | ||
|
|
3f2d929dc3 | ||
|
|
7fbfc884f0 | ||
|
|
97c25df4b8 | ||
|
|
94eda53d98 | ||
|
|
c51d40cfeb | ||
|
|
f64ed09e9a | ||
|
|
ccfe1675a2 | ||
|
|
cfb0a25a4e | ||
|
|
a97271e3b5 | ||
|
|
cac81ddc92 | ||
|
|
877ab659b9 | ||
|
|
ae8730fd62 | ||
|
|
5977f266d0 | ||
|
|
dccfe8a2ee | ||
|
|
8e2014527e | ||
|
|
bdffe460cd | ||
|
|
ec4e8aa4f7 | ||
|
|
5753ab5c47 | ||
|
|
fa1cebedb5 | ||
|
|
5f153e056b | ||
|
|
d00a767047 | ||
|
|
15c76e4c02 | ||
|
|
3eff1a0225 | ||
|
|
10d6a8e66a | ||
|
|
148900c2dc | ||
|
|
1bb39a95eb | ||
|
|
9fdbf3cfc4 | ||
|
|
629a9053f0 | ||
|
|
5b2e2e4695 | ||
|
|
cd4b88d0d2 | ||
|
|
ae290541d1 | ||
|
|
a04b1049ff | ||
|
|
99443142cc | ||
|
|
a50dc67a4f | ||
|
|
40c5edfcc4 | ||
|
|
29ee7c3b70 | ||
|
|
e3016c1142 | ||
|
|
ae797c64af | ||
|
|
5085bd5f05 | ||
|
|
379f2061aa | ||
|
|
80739e11b5 | ||
|
|
7449e1c661 | ||
|
|
c6de66c03f | ||
|
|
cbdc7a6f88 | ||
|
|
8bf084ced9 | ||
|
|
ff364c1906 | ||
|
|
df9aad018a | ||
|
|
d23a8bfb14 | ||
|
|
339ca88783 | ||
|
|
e1745bc981 | ||
|
|
c961a918ad | ||
|
|
35003b5f7b | ||
|
|
f3abc4063d | ||
|
|
45d8a175b1 | ||
|
|
e7113dc8a5 | ||
|
|
843d632ad4 | ||
|
|
d4dcba0463 | ||
|
|
2c7d2c0ea9 | ||
|
|
0b63557941 | ||
|
|
32247c336a | ||
|
|
0926d0cbce | ||
|
|
b51ea4204e | ||
|
|
fb13063943 | ||
|
|
c9afd55ed6 | ||
|
|
72de24e59a | ||
|
|
3091744fff | ||
|
|
dbb562d3b1 | ||
|
|
4619e8bae8 | ||
|
|
99f5687eb1 | ||
|
|
dc08216f0e | ||
|
|
d10d40a5b2 | ||
|
|
394eac850c | ||
|
|
6e19387f29 | ||
|
|
9fc518ff8c | ||
|
|
05faa7321b | ||
|
|
4c985e527a | ||
|
|
6af17c1b7d | ||
|
|
c1e77e0564 | ||
|
|
8b86e1ee11 | ||
|
|
4c5d9cfc64 | ||
|
|
2451c5a462 | ||
|
|
539a4951ee | ||
|
|
6b07243f56 | ||
|
|
3aeefbf1de | ||
|
|
1fdaf252b6 | ||
|
|
65da2c5d2d | ||
|
|
7e47d51e10 | ||
|
|
881517586d | ||
|
|
a10d5ac61b | ||
|
|
50dc041ee6 | ||
|
|
61e8867591 | ||
|
|
6423065b7d | ||
|
|
dc5ea6aeb5 | ||
|
|
4a415ad584 | ||
|
|
30302d185a | ||
|
|
e144783eb2 | ||
|
|
5feb13b55d | ||
|
|
1e3c9fd67e | ||
|
|
14a014d430 | ||
|
|
bca60f4767 | ||
|
|
f7f10367b2 | ||
|
|
784f7b1462 | ||
|
|
54603aa1b7 | ||
|
|
4c169d2d7c | ||
|
|
b527edd338 | ||
|
|
42330d28da | ||
|
|
a253b46021 | ||
|
|
55e6bb6b85 | ||
|
|
f5a12768fb | ||
|
|
2fe4e5f8d7 | ||
|
|
f2b03f9a2c | ||
|
|
fbc036e745 | ||
|
|
dbb5581eba | ||
|
|
306134dcf9 | ||
|
|
a2c5a4ac9e | ||
|
|
db217c9ad6 | ||
|
|
2613b94f28 | ||
|
|
d2660a6915 | ||
|
|
1794f49751 | ||
|
|
a43931b79c | ||
|
|
2fb1e3b7e7 | ||
|
|
3a9f491caa | ||
|
|
1dbd18ac63 | ||
|
|
2e78d838a5 | ||
|
|
17e3769ed7 | ||
|
|
b4ea80731c | ||
|
|
ccf3340e82 | ||
|
|
83d77b1cbb | ||
|
|
7d8b8ba9c4 | ||
|
|
8f7c4969c2 | ||
|
|
1a07871454 | ||
|
|
796cdd52f5 | ||
|
|
6b24b4a70f | ||
|
|
4d33fbd582 | ||
|
|
f612dcfebe | ||
|
|
6397cb611a | ||
|
|
71dd7eaf7f | ||
|
|
4b6acad0bd | ||
|
|
a2471b37e3 | ||
|
|
58ca711a97 | ||
|
|
2cf8b8607d | ||
|
|
f113b04ab9 | ||
|
|
1bab93b2d0 | ||
|
|
221f34634d | ||
|
|
23e9d9d3ee | ||
|
|
fcaf871408 | ||
|
|
07e976ac26 | ||
|
|
8de841dd19 | ||
|
|
f893d2315d | ||
|
|
d7ada66129 | ||
|
|
5d7e7e28b1 | ||
|
|
b0e0f37d73 | ||
|
|
1a62a1229a | ||
|
|
ee37af47cd | ||
|
|
83bea26df4 | ||
|
|
25bfed3b12 | ||
|
|
0d5f7439a4 | ||
|
|
adc29c36e1 | ||
|
|
575484806c | ||
|
|
63ef214328 | ||
|
|
30b2ac4a28 | ||
|
|
861eea9bd4 | ||
|
|
60a358172a | ||
|
|
3f3a1f534b | ||
|
|
5e1d1b7940 | ||
|
|
7f35389533 | ||
|
|
b6ecca1268 | ||
|
|
f54e1080c5 | ||
|
|
cba817ae59 | ||
|
|
2c52cf0746 | ||
|
|
180b94c73e | ||
|
|
f319c92bd0 | ||
|
|
e950b95486 | ||
|
|
dcd773ac5c | ||
|
|
46f25250bd | ||
|
|
ce6de37172 | ||
|
|
729c26f70e | ||
|
|
ef1f7bd3b8 | ||
|
|
1ea5f9f7cd | ||
|
|
dfce4e1943 | ||
|
|
5489c821dc | ||
|
|
10b4cc9eb4 | ||
|
|
db483a38a8 | ||
|
|
02eb240c71 | ||
|
|
92dfa1175e | ||
|
|
8b20aa919b | ||
|
|
644fe0a994 | ||
|
|
60e6378925 | ||
|
|
fef1910277 | ||
|
|
622f5604c1 | ||
|
|
9fd77c7b9b | ||
|
|
f35cf79b51 | ||
|
|
63a3501273 | ||
|
|
9145670354 | ||
|
|
aa10f0d3ee | ||
|
|
16a4f02f2d | ||
|
|
17274c72a9 | ||
|
|
29f392e434 | ||
|
|
43c71ddf92 | ||
|
|
91a2b5ec6f | ||
|
|
bb3dfd6adb | ||
|
|
36a0822633 | ||
|
|
0bf3a53e01 | ||
|
|
c7517b3dec | ||
|
|
9a797228f3 | ||
|
|
e47e9ec05b | ||
|
|
7cf7e0a20b | ||
|
|
e731695217 | ||
|
|
b5a7426996 | ||
|
|
6ac5e05c58 | ||
|
|
71cf7c4409 | ||
|
|
98716e2b25 | ||
|
|
303c61f3ca | ||
|
|
7c40c8af69 | ||
|
|
593bec685e | ||
|
|
e971f90a0b | ||
|
|
eaae0baeba | ||
|
|
7e08275cc1 | ||
|
|
5c0f50bc01 | ||
|
|
743a85db06 | ||
|
|
432cf68c4d | ||
|
|
2009dc2b73 | ||
|
|
7abe26935a | ||
|
|
d6716d2e54 | ||
|
|
53be5dc486 | ||
|
|
78f71b4d41 | ||
|
|
f82385e587 | ||
|
|
43cf8b3d80 | ||
|
|
6b082fb3c6 | ||
|
|
7c60b9c98f | ||
|
|
86b9fce980 | ||
|
|
03d613bbab | ||
|
|
a263f28368 | ||
|
|
a917fb3fcf | ||
|
|
6120319afd | ||
|
|
fef3eab9bd | ||
|
|
ea5bfea333 | ||
|
|
edf238b65e | ||
|
|
cd77fcfb5f | ||
|
|
57c9bc39cd | ||
|
|
57fde75b2a | ||
|
|
b8c9d6cdf6 | ||
|
|
dc55a7fc87 | ||
|
|
c4ffe4bf63 | ||
|
|
4f1cffd52c | ||
|
|
c91cd2814b | ||
|
|
47ca5773a5 | ||
|
|
49eb68ba95 | ||
|
|
655a71277d | ||
|
|
b242eef93e | ||
|
|
4ce493f09e | ||
|
|
a39cf2e3b2 | ||
|
|
de80dd9c15 | ||
|
|
e5042dd483 | ||
|
|
574b48c692 | ||
|
|
90e092280f | ||
|
|
f558a6c599 | ||
|
|
a58fa6e73e | ||
|
|
3cc459b6c2 | ||
|
|
2e3cea01da | ||
|
|
9b911b492f | ||
|
|
c29a136787 | ||
|
|
687a461276 | ||
|
|
84c058bb63 | ||
|
|
e045af4c92 | ||
|
|
53ae4c07fd | ||
|
|
c77f64420a | ||
|
|
519229db3c | ||
|
|
6e2d3c6c45 | ||
|
|
1480d418e3 | ||
|
|
573c316c57 | ||
|
|
3ba156082b | ||
|
|
861e302011 | ||
|
|
50dcc2aec5 | ||
|
|
28f5250fa5 | ||
|
|
0c9658446d | ||
|
|
26b111d714 | ||
|
|
52388179e6 | ||
|
|
11194e8b82 | ||
|
|
33bec20710 | ||
|
|
46bcc4901e | ||
|
|
a9a53f417d | ||
|
|
98a392c4fc | ||
|
|
9ccf8ad91f | ||
|
|
bdcbafb219 | ||
|
|
f1d76fa925 | ||
|
|
9c202a5a8f | ||
|
|
ca73f7e80f | ||
|
|
5b2d430131 | ||
|
|
f7dee77d73 | ||
|
|
ec901f28c3 | ||
|
|
8933c2d06a | ||
|
|
77519e5f4f | ||
|
|
2ef001e097 | ||
|
|
8c2c8b3f7f | ||
|
|
6d4b02b6c9 | ||
|
|
7dfe75cf55 | ||
|
|
66742c83d4 | ||
|
|
7c50ab1612 | ||
|
|
92474f13f0 | ||
|
|
ee5f6e156d | ||
|
|
7f71a1040d | ||
|
|
d782125c8f |
68
.github/actions/build-jtreg/action.yml
vendored
68
.github/actions/build-jtreg/action.yml
vendored
@@ -1,68 +0,0 @@
|
|||||||
#
|
|
||||||
# Copyright (c) 2023, 2024, Oracle and/or its affiliates. All rights reserved.
|
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
||||||
#
|
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
|
||||||
# under the terms of the GNU General Public License version 2 only, as
|
|
||||||
# published by the Free Software Foundation. Oracle designates this
|
|
||||||
# particular file as subject to the "Classpath" exception as provided
|
|
||||||
# by Oracle in the LICENSE file that accompanied this code.
|
|
||||||
#
|
|
||||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
# version 2 for more details (a copy is included in the LICENSE file that
|
|
||||||
# accompanied this code).
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License version
|
|
||||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
|
||||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
#
|
|
||||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
||||||
# or visit www.oracle.com if you need additional information or have any
|
|
||||||
# questions.
|
|
||||||
#
|
|
||||||
|
|
||||||
name: 'Build JTReg'
|
|
||||||
description: 'Build JTReg'
|
|
||||||
|
|
||||||
runs:
|
|
||||||
using: composite
|
|
||||||
steps:
|
|
||||||
- name: 'Get JTReg version configuration'
|
|
||||||
id: version
|
|
||||||
uses: ./.github/actions/config
|
|
||||||
with:
|
|
||||||
var: JTREG_VERSION
|
|
||||||
|
|
||||||
- name: 'Check cache for already built JTReg'
|
|
||||||
id: get-cached
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: jtreg/installed
|
|
||||||
key: jtreg-${{ steps.version.outputs.value }}
|
|
||||||
|
|
||||||
- name: 'Checkout the JTReg source'
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
repository: openjdk/jtreg
|
|
||||||
ref: jtreg-${{ steps.version.outputs.value }}
|
|
||||||
path: jtreg/src
|
|
||||||
if: (steps.get-cached.outputs.cache-hit != 'true')
|
|
||||||
|
|
||||||
- name: 'Build JTReg'
|
|
||||||
run: |
|
|
||||||
# Build JTReg and move files to the proper locations
|
|
||||||
bash make/build.sh --jdk "$JAVA_HOME_17_X64"
|
|
||||||
mkdir ../installed
|
|
||||||
mv build/images/jtreg/* ../installed
|
|
||||||
working-directory: jtreg/src
|
|
||||||
shell: bash
|
|
||||||
if: (steps.get-cached.outputs.cache-hit != 'true')
|
|
||||||
|
|
||||||
- name: 'Upload JTReg artifact'
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: bundles-jtreg-${{ steps.version.outputs.value }}
|
|
||||||
path: jtreg/installed
|
|
||||||
retention-days: 1
|
|
||||||
4
.github/actions/do-build/action.yml
vendored
4
.github/actions/do-build/action.yml
vendored
@@ -66,7 +66,7 @@ runs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
|
|
||||||
- name: 'Upload build logs'
|
- name: 'Upload build logs'
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: failure-logs-${{ inputs.platform }}${{ inputs.debug-suffix }}
|
name: failure-logs-${{ inputs.platform }}${{ inputs.debug-suffix }}
|
||||||
path: failure-logs
|
path: failure-logs
|
||||||
@@ -74,7 +74,7 @@ runs:
|
|||||||
|
|
||||||
# This is the best way I found to abort the job with an error message
|
# This is the best way I found to abort the job with an error message
|
||||||
- name: 'Notify about build failures'
|
- name: 'Notify about build failures'
|
||||||
uses: actions/github-script@v7
|
uses: actions/github-script@v6
|
||||||
with:
|
with:
|
||||||
script: core.setFailed('Build failed. See summary for details.')
|
script: core.setFailed('Build failed. See summary for details.')
|
||||||
if: steps.check.outputs.failure == 'true'
|
if: steps.check.outputs.failure == 'true'
|
||||||
|
|||||||
8
.github/actions/get-bootjdk/action.yml
vendored
8
.github/actions/get-bootjdk/action.yml
vendored
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2022, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -65,7 +65,7 @@ runs:
|
|||||||
|
|
||||||
- name: 'Check cache for BootJDK'
|
- name: 'Check cache for BootJDK'
|
||||||
id: get-cached-bootjdk
|
id: get-cached-bootjdk
|
||||||
uses: actions/cache@v4
|
uses: actions/cache@v3
|
||||||
with:
|
with:
|
||||||
path: bootjdk/jdk
|
path: bootjdk/jdk
|
||||||
key: boot-jdk-${{ inputs.platform }}-${{ steps.sha256.outputs.value }}
|
key: boot-jdk-${{ inputs.platform }}-${{ steps.sha256.outputs.value }}
|
||||||
@@ -104,6 +104,6 @@ runs:
|
|||||||
- name: 'Export path to where BootJDK is installed'
|
- name: 'Export path to where BootJDK is installed'
|
||||||
id: path-name
|
id: path-name
|
||||||
run: |
|
run: |
|
||||||
# Export the absolute path
|
# Export the path
|
||||||
echo "path=`pwd`/bootjdk/jdk" >> $GITHUB_OUTPUT
|
echo 'path=bootjdk/jdk' >> $GITHUB_OUTPUT
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|||||||
4
.github/actions/get-bundles/action.yml
vendored
4
.github/actions/get-bundles/action.yml
vendored
@@ -48,14 +48,14 @@ runs:
|
|||||||
steps:
|
steps:
|
||||||
- name: 'Download bundles artifact'
|
- name: 'Download bundles artifact'
|
||||||
id: download-bundles
|
id: download-bundles
|
||||||
uses: actions/download-artifact@v4
|
uses: actions/download-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: bundles-${{ inputs.platform }}${{ inputs.debug-suffix }}
|
name: bundles-${{ inputs.platform }}${{ inputs.debug-suffix }}
|
||||||
path: bundles
|
path: bundles
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
|
|
||||||
- name: 'Download bundles artifact (retry)'
|
- name: 'Download bundles artifact (retry)'
|
||||||
uses: actions/download-artifact@v4
|
uses: actions/download-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: bundles-${{ inputs.platform }}${{ inputs.debug-suffix }}
|
name: bundles-${{ inputs.platform }}${{ inputs.debug-suffix }}
|
||||||
path: bundles
|
path: bundles
|
||||||
|
|||||||
2
.github/actions/get-gtest/action.yml
vendored
2
.github/actions/get-gtest/action.yml
vendored
@@ -40,7 +40,7 @@ runs:
|
|||||||
var: GTEST_VERSION
|
var: GTEST_VERSION
|
||||||
|
|
||||||
- name: 'Checkout GTest source'
|
- name: 'Checkout GTest source'
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
repository: google/googletest
|
repository: google/googletest
|
||||||
ref: 'v${{ steps.version.outputs.value }}'
|
ref: 'v${{ steps.version.outputs.value }}'
|
||||||
|
|||||||
30
.github/actions/get-jtreg/action.yml
vendored
30
.github/actions/get-jtreg/action.yml
vendored
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2023, 2024, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -24,7 +24,7 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
name: 'Get JTReg'
|
name: 'Get JTReg'
|
||||||
description: 'Get JTReg'
|
description: 'Download JTReg from cache or source location'
|
||||||
outputs:
|
outputs:
|
||||||
path:
|
path:
|
||||||
description: 'Path to the installed JTReg'
|
description: 'Path to the installed JTReg'
|
||||||
@@ -39,12 +39,30 @@ runs:
|
|||||||
with:
|
with:
|
||||||
var: JTREG_VERSION
|
var: JTREG_VERSION
|
||||||
|
|
||||||
- name: 'Download JTReg artifact'
|
- name: 'Check cache for JTReg'
|
||||||
id: download-jtreg
|
id: get-cached-jtreg
|
||||||
uses: actions/download-artifact@v4
|
uses: actions/cache@v3
|
||||||
with:
|
with:
|
||||||
name: bundles-jtreg-${{ steps.version.outputs.value }}
|
|
||||||
path: jtreg/installed
|
path: jtreg/installed
|
||||||
|
key: jtreg-${{ steps.version.outputs.value }}
|
||||||
|
|
||||||
|
- name: 'Checkout the JTReg source'
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
repository: openjdk/jtreg
|
||||||
|
ref: jtreg-${{ steps.version.outputs.value }}
|
||||||
|
path: jtreg/src
|
||||||
|
if: steps.get-cached-jtreg.outputs.cache-hit != 'true'
|
||||||
|
|
||||||
|
- name: 'Build JTReg'
|
||||||
|
run: |
|
||||||
|
# Build JTReg and move files to the proper locations
|
||||||
|
bash make/build.sh --jdk "$JAVA_HOME_17_X64"
|
||||||
|
mkdir ../installed
|
||||||
|
mv build/images/jtreg/* ../installed
|
||||||
|
working-directory: jtreg/src
|
||||||
|
shell: bash
|
||||||
|
if: steps.get-cached-jtreg.outputs.cache-hit != 'true'
|
||||||
|
|
||||||
- name: 'Export path to where JTReg is installed'
|
- name: 'Export path to where JTReg is installed'
|
||||||
id: path-name
|
id: path-name
|
||||||
|
|||||||
2
.github/actions/get-msys2/action.yml
vendored
2
.github/actions/get-msys2/action.yml
vendored
@@ -30,7 +30,7 @@ runs:
|
|||||||
using: composite
|
using: composite
|
||||||
steps:
|
steps:
|
||||||
- name: 'Install MSYS2'
|
- name: 'Install MSYS2'
|
||||||
uses: msys2/setup-msys2@v2.22.0
|
uses: msys2/setup-msys2@v2
|
||||||
with:
|
with:
|
||||||
install: 'autoconf tar unzip zip make'
|
install: 'autoconf tar unzip zip make'
|
||||||
path-type: minimal
|
path-type: minimal
|
||||||
|
|||||||
2
.github/actions/upload-bundles/action.yml
vendored
2
.github/actions/upload-bundles/action.yml
vendored
@@ -69,7 +69,7 @@ runs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
|
|
||||||
- name: 'Upload bundles artifact'
|
- name: 'Upload bundles artifact'
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: bundles-${{ inputs.platform }}${{ inputs.debug-suffix }}
|
name: bundles-${{ inputs.platform }}${{ inputs.debug-suffix }}
|
||||||
path: bundles
|
path: bundles
|
||||||
|
|||||||
21
.github/scripts/gen-build-failure-report.sh
vendored
21
.github/scripts/gen-build-failure-report.sh
vendored
@@ -24,19 +24,12 @@
|
|||||||
# questions.
|
# questions.
|
||||||
#
|
#
|
||||||
|
|
||||||
# Import common utils
|
|
||||||
. .github/scripts/report-utils.sh
|
|
||||||
|
|
||||||
GITHUB_STEP_SUMMARY="$1"
|
GITHUB_STEP_SUMMARY="$1"
|
||||||
BUILD_DIR="$(ls -d build/*)"
|
BUILD_DIR="$(ls -d build/*)"
|
||||||
|
|
||||||
# Send signal to the do-build action that we failed
|
# Send signal to the do-build action that we failed
|
||||||
touch "$BUILD_DIR/build-failure"
|
touch "$BUILD_DIR/build-failure"
|
||||||
|
|
||||||
# Collect hs_errs for build-time crashes, e.g. javac, jmod, jlink, CDS.
|
|
||||||
# These usually land in make/
|
|
||||||
hs_err_files=$(ls make/hs_err*.log 2> /dev/null || true)
|
|
||||||
|
|
||||||
(
|
(
|
||||||
echo '### :boom: Build failure summary'
|
echo '### :boom: Build failure summary'
|
||||||
echo ''
|
echo ''
|
||||||
@@ -53,20 +46,6 @@ hs_err_files=$(ls make/hs_err*.log 2> /dev/null || true)
|
|||||||
echo '</details>'
|
echo '</details>'
|
||||||
echo ''
|
echo ''
|
||||||
|
|
||||||
for hs_err in $hs_err_files; do
|
|
||||||
echo "<details><summary><b>View HotSpot error log: "$hs_err"</b></summary>"
|
|
||||||
echo ''
|
|
||||||
echo '```'
|
|
||||||
echo "$hs_err:"
|
|
||||||
echo ''
|
|
||||||
cat "$hs_err"
|
|
||||||
echo '```'
|
|
||||||
echo '</details>'
|
|
||||||
echo ''
|
|
||||||
done
|
|
||||||
|
|
||||||
echo ''
|
echo ''
|
||||||
echo ':arrow_right: To see the entire test log, click the job in the list to the left. To download logs, see the `failure-logs` [artifact above](#artifacts).'
|
echo ':arrow_right: To see the entire test log, click the job in the list to the left. To download logs, see the `failure-logs` [artifact above](#artifacts).'
|
||||||
) >> $GITHUB_STEP_SUMMARY
|
) >> $GITHUB_STEP_SUMMARY
|
||||||
|
|
||||||
truncate_summary
|
|
||||||
|
|||||||
37
.github/scripts/gen-test-results.sh
vendored
37
.github/scripts/gen-test-results.sh
vendored
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
#
|
#
|
||||||
# Copyright (c) 2022, 2024, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -24,9 +24,6 @@
|
|||||||
# questions.
|
# questions.
|
||||||
#
|
#
|
||||||
|
|
||||||
# Import common utils
|
|
||||||
. .github/scripts/report-utils.sh
|
|
||||||
|
|
||||||
GITHUB_STEP_SUMMARY="$1"
|
GITHUB_STEP_SUMMARY="$1"
|
||||||
|
|
||||||
test_suite_name=$(cat build/run-test-prebuilt/test-support/test-last-ids.txt)
|
test_suite_name=$(cat build/run-test-prebuilt/test-support/test-last-ids.txt)
|
||||||
@@ -47,8 +44,8 @@ for test in $failures $errors; do
|
|||||||
base_path="$(echo "$test" | tr '#' '_')"
|
base_path="$(echo "$test" | tr '#' '_')"
|
||||||
report_file="$report_dir/$base_path.jtr"
|
report_file="$report_dir/$base_path.jtr"
|
||||||
hs_err_files=$(ls $report_dir/$base_path/hs_err*.log 2> /dev/null || true)
|
hs_err_files=$(ls $report_dir/$base_path/hs_err*.log 2> /dev/null || true)
|
||||||
replay_files=$(ls $report_dir/$base_path/replay*.log 2> /dev/null || true)
|
|
||||||
echo "#### <a id="$anchor">$test"
|
echo "#### <a id="$anchor">$test"
|
||||||
|
|
||||||
echo '<details><summary>View test results</summary>'
|
echo '<details><summary>View test results</summary>'
|
||||||
echo ''
|
echo ''
|
||||||
echo '```'
|
echo '```'
|
||||||
@@ -76,22 +73,20 @@ for test in $failures $errors; do
|
|||||||
echo ''
|
echo ''
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "$replay_files" != "" ]]; then
|
|
||||||
echo '<details><summary>View HotSpot replay file</summary>'
|
|
||||||
echo ''
|
|
||||||
for replay in $replay_files; do
|
|
||||||
echo '```'
|
|
||||||
echo "$replay:"
|
|
||||||
echo ''
|
|
||||||
cat "$replay"
|
|
||||||
echo '```'
|
|
||||||
done
|
|
||||||
|
|
||||||
echo '</details>'
|
|
||||||
echo ''
|
|
||||||
fi
|
|
||||||
done >> $GITHUB_STEP_SUMMARY
|
done >> $GITHUB_STEP_SUMMARY
|
||||||
|
|
||||||
echo ':arrow_right: To see the entire test log, click the job in the list to the left.' >> $GITHUB_STEP_SUMMARY
|
# With many failures, the summary can easily exceed 1024 kB, the limit set by Github
|
||||||
|
# Trim it down if so.
|
||||||
|
summary_size=$(wc -c < $GITHUB_STEP_SUMMARY)
|
||||||
|
if [[ $summary_size -gt 1000000 ]]; then
|
||||||
|
# Trim to below 1024 kB, and cut off after the last detail group
|
||||||
|
head -c 1000000 $GITHUB_STEP_SUMMARY | tac | sed -n -e '/<\/details>/,$ p' | tac > $GITHUB_STEP_SUMMARY.tmp
|
||||||
|
mv $GITHUB_STEP_SUMMARY.tmp $GITHUB_STEP_SUMMARY
|
||||||
|
(
|
||||||
|
echo ''
|
||||||
|
echo ':x: **WARNING: Summary is too large and has been truncated.**'
|
||||||
|
echo ''
|
||||||
|
) >> $GITHUB_STEP_SUMMARY
|
||||||
|
fi
|
||||||
|
|
||||||
truncate_summary
|
echo ':arrow_right: To see the entire test log, click the job in the list to the left.' >> $GITHUB_STEP_SUMMARY
|
||||||
|
|||||||
1
.github/scripts/gen-test-summary.sh
vendored
1
.github/scripts/gen-test-summary.sh
vendored
@@ -42,7 +42,6 @@ error_count=$(echo $errors | wc -w || true)
|
|||||||
|
|
||||||
if [[ "$failures" = "" && "$errors" = "" ]]; then
|
if [[ "$failures" = "" && "$errors" = "" ]]; then
|
||||||
# We know something went wrong, but not what
|
# We know something went wrong, but not what
|
||||||
echo 'failure=true' >> $GITHUB_OUTPUT
|
|
||||||
echo 'error-message=Unspecified test suite failure. Please see log for job for details.' >> $GITHUB_OUTPUT
|
echo 'error-message=Unspecified test suite failure. Please see log for job for details.' >> $GITHUB_OUTPUT
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|||||||
41
.github/scripts/report-utils.sh
vendored
41
.github/scripts/report-utils.sh
vendored
@@ -1,41 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
#
|
|
||||||
# Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved.
|
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
||||||
#
|
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
|
||||||
# under the terms of the GNU General Public License version 2 only, as
|
|
||||||
# published by the Free Software Foundation. Oracle designates this
|
|
||||||
# particular file as subject to the "Classpath" exception as provided
|
|
||||||
# by Oracle in the LICENSE file that accompanied this code.
|
|
||||||
#
|
|
||||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
# version 2 for more details (a copy is included in the LICENSE file that
|
|
||||||
# accompanied this code).
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License version
|
|
||||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
|
||||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
#
|
|
||||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
||||||
# or visit www.oracle.com if you need additional information or have any
|
|
||||||
# questions.
|
|
||||||
#
|
|
||||||
|
|
||||||
function truncate_summary() {
|
|
||||||
# With large hs_errs, the summary can easily exceed 1024 kB, the limit set by Github
|
|
||||||
# Trim it down if so.
|
|
||||||
summary_size=$(wc -c < $GITHUB_STEP_SUMMARY)
|
|
||||||
if [[ $summary_size -gt 1000000 ]]; then
|
|
||||||
# Trim to below 1024 kB, and cut off after the last detail group
|
|
||||||
head -c 1000000 $GITHUB_STEP_SUMMARY | tac | sed -n -e '/<\/details>/,$ p' | tac > $GITHUB_STEP_SUMMARY.tmp
|
|
||||||
mv $GITHUB_STEP_SUMMARY.tmp $GITHUB_STEP_SUMMARY
|
|
||||||
(
|
|
||||||
echo ''
|
|
||||||
echo ':x: **WARNING: Summary is too large and has been truncated.**'
|
|
||||||
echo ''
|
|
||||||
) >> $GITHUB_STEP_SUMMARY
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
62
.github/workflows/build-cross-compile.yml
vendored
62
.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
|
||||||
@@ -61,36 +67,32 @@ jobs:
|
|||||||
debian-arch: arm64
|
debian-arch: arm64
|
||||||
debian-repository: https://httpredir.debian.org/debian/
|
debian-repository: https://httpredir.debian.org/debian/
|
||||||
debian-version: bullseye
|
debian-version: bullseye
|
||||||
tolerate-sysroot-errors: false
|
|
||||||
- target-cpu: arm
|
- target-cpu: arm
|
||||||
gnu-arch: arm
|
gnu-arch: arm
|
||||||
debian-arch: armhf
|
debian-arch: armhf
|
||||||
debian-repository: https://httpredir.debian.org/debian/
|
debian-repository: https://httpredir.debian.org/debian/
|
||||||
debian-version: bullseye
|
debian-version: bullseye
|
||||||
tolerate-sysroot-errors: false
|
|
||||||
gnu-abi: eabihf
|
gnu-abi: eabihf
|
||||||
- target-cpu: s390x
|
- target-cpu: s390x
|
||||||
gnu-arch: s390x
|
gnu-arch: s390x
|
||||||
debian-arch: s390x
|
debian-arch: s390x
|
||||||
debian-repository: https://httpredir.debian.org/debian/
|
debian-repository: https://httpredir.debian.org/debian/
|
||||||
debian-version: bullseye
|
debian-version: bullseye
|
||||||
tolerate-sysroot-errors: false
|
|
||||||
- target-cpu: ppc64le
|
- target-cpu: ppc64le
|
||||||
gnu-arch: powerpc64le
|
gnu-arch: powerpc64le
|
||||||
debian-arch: ppc64el
|
debian-arch: ppc64el
|
||||||
debian-repository: https://httpredir.debian.org/debian/
|
debian-repository: https://httpredir.debian.org/debian/
|
||||||
debian-version: bullseye
|
debian-version: bullseye
|
||||||
tolerate-sysroot-errors: false
|
|
||||||
- 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
|
||||||
tolerate-sysroot-errors: true
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: 'Checkout the JDK source'
|
- name: 'Checkout the JDK source'
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: 'Get the BootJDK'
|
- name: 'Get the BootJDK'
|
||||||
id: bootjdk
|
id: bootjdk
|
||||||
@@ -98,9 +100,12 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
platform: linux-x64
|
platform: linux-x64
|
||||||
|
|
||||||
- name: 'Get GTest'
|
# Use linux-x64 JDK bundle as build JDK
|
||||||
id: gtest
|
- name: 'Get build JDK'
|
||||||
uses: ./.github/actions/get-gtest
|
id: buildjdk
|
||||||
|
uses: ./.github/actions/get-bundles
|
||||||
|
with:
|
||||||
|
platform: linux-x64
|
||||||
|
|
||||||
# Upgrading apt to solve libc6 installation bugs, see JDK-8260460.
|
# Upgrading apt to solve libc6 installation bugs, see JDK-8260460.
|
||||||
- name: 'Install toolchain and dependencies'
|
- name: 'Install toolchain and dependencies'
|
||||||
@@ -109,16 +114,17 @@ 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'
|
||||||
id: get-cached-sysroot
|
id: get-cached-sysroot
|
||||||
uses: actions/cache@v4
|
uses: actions/cache@v3
|
||||||
with:
|
with:
|
||||||
path: sysroot
|
path: sysroot
|
||||||
key: sysroot-${{ matrix.debian-arch }}-${{ hashFiles('./.github/workflows/build-cross-compile.yml') }}
|
key: sysroot-${{ matrix.debian-arch }}-${{ hashFiles('./.github/workflows/build-cross-compile.yml') }}
|
||||||
@@ -128,19 +134,16 @@ jobs:
|
|||||||
if: steps.get-cached-sysroot.outputs.cache-hit != 'true'
|
if: steps.get-cached-sysroot.outputs.cache-hit != 'true'
|
||||||
|
|
||||||
- name: 'Create sysroot'
|
- name: 'Create sysroot'
|
||||||
id: create-sysroot
|
|
||||||
run: >
|
run: >
|
||||||
sudo debootstrap
|
sudo debootstrap
|
||||||
--no-merged-usr
|
|
||||||
--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 }}
|
||||||
continue-on-error: ${{ matrix.tolerate-sysroot-errors }}
|
|
||||||
if: steps.get-cached-sysroot.outputs.cache-hit != 'true'
|
if: steps.get-cached-sysroot.outputs.cache-hit != 'true'
|
||||||
|
|
||||||
- name: 'Prepare sysroot'
|
- name: 'Prepare sysroot'
|
||||||
@@ -150,17 +153,8 @@ 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'
|
||||||
# /{bin,sbin,lib}/ are not symbolic links to /usr/{bin,sbin,lib}/ when debootstrap with --no-merged-usr
|
|
||||||
rm -rf sysroot/{sbin,bin}
|
|
||||||
rm -rf sysroot/lib/{udev,systemd}
|
|
||||||
if: steps.create-sysroot.outcome == 'success' && steps.get-cached-sysroot.outputs.cache-hit != 'true'
|
|
||||||
|
|
||||||
- name: 'Remove broken sysroot'
|
|
||||||
run: |
|
|
||||||
sudo rm -rf sysroot/
|
|
||||||
if: steps.create-sysroot.outcome != 'success' && steps.get-cached-sysroot.outputs.cache-hit != 'true'
|
|
||||||
|
|
||||||
- name: 'Configure'
|
- name: 'Configure'
|
||||||
run: >
|
run: >
|
||||||
@@ -168,12 +162,12 @@ jobs:
|
|||||||
--with-conf-name=linux-${{ matrix.target-cpu }}
|
--with-conf-name=linux-${{ matrix.target-cpu }}
|
||||||
--with-version-opt=${GITHUB_ACTOR}-${GITHUB_SHA}
|
--with-version-opt=${GITHUB_ACTOR}-${GITHUB_SHA}
|
||||||
--with-boot-jdk=${{ steps.bootjdk.outputs.path }}
|
--with-boot-jdk=${{ steps.bootjdk.outputs.path }}
|
||||||
--with-gtest=${{ steps.gtest.outputs.path }}
|
|
||||||
--with-zlib=system
|
--with-zlib=system
|
||||||
--enable-debug
|
--enable-debug
|
||||||
--disable-precompiled-headers
|
--disable-precompiled-headers
|
||||||
--openjdk-target=${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-abi}}
|
--openjdk-target=${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-abi}}
|
||||||
--with-sysroot=sysroot
|
--with-sysroot=sysroot
|
||||||
|
--with-build-jdk=${{ steps.buildjdk.outputs.jdk-path }}
|
||||||
--with-jmod-compress=zip-1
|
--with-jmod-compress=zip-1
|
||||||
CC=${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-abi}}-gcc-${{ inputs.gcc-major-version }}
|
CC=${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-abi}}-gcc-${{ inputs.gcc-major-version }}
|
||||||
CXX=${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-abi}}-g++-${{ inputs.gcc-major-version }}
|
CXX=${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-abi}}-g++-${{ inputs.gcc-major-version }}
|
||||||
@@ -181,7 +175,6 @@ jobs:
|
|||||||
echo "Dumping config.log:" &&
|
echo "Dumping config.log:" &&
|
||||||
cat config.log &&
|
cat config.log &&
|
||||||
exit 1)
|
exit 1)
|
||||||
if: steps.create-sysroot.outcome == 'success' || steps.get-cached-sysroot.outputs.cache-hit == 'true'
|
|
||||||
|
|
||||||
- name: 'Build'
|
- name: 'Build'
|
||||||
id: build
|
id: build
|
||||||
@@ -189,4 +182,3 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
make-target: 'hotspot ${{ inputs.make-arguments }}'
|
make-target: 'hotspot ${{ inputs.make-arguments }}'
|
||||||
platform: linux-${{ matrix.target-cpu }}
|
platform: linux-${{ matrix.target-cpu }}
|
||||||
if: steps.create-sysroot.outcome == 'success' || steps.get-cached-sysroot.outputs.cache-hit == 'true'
|
|
||||||
|
|||||||
7
.github/workflows/build-linux.yml
vendored
7
.github/workflows/build-linux.yml
vendored
@@ -49,6 +49,9 @@ on:
|
|||||||
required: false
|
required: false
|
||||||
type: string
|
type: string
|
||||||
default: ''
|
default: ''
|
||||||
|
apt-gcc-version:
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
apt-architecture:
|
apt-architecture:
|
||||||
required: false
|
required: false
|
||||||
type: string
|
type: string
|
||||||
@@ -78,7 +81,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: 'Checkout the JDK source'
|
- name: 'Checkout the JDK source'
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: 'Get the BootJDK'
|
- name: 'Get the BootJDK'
|
||||||
id: bootjdk
|
id: bootjdk
|
||||||
@@ -111,7 +114,7 @@ jobs:
|
|||||||
fi
|
fi
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install --only-upgrade apt
|
sudo apt-get install --only-upgrade apt
|
||||||
sudo apt-get install gcc-${{ inputs.gcc-major-version }}${{ inputs.gcc-package-suffix }} g++-${{ inputs.gcc-major-version }}${{ inputs.gcc-package-suffix }} libxrandr-dev${{ steps.arch.outputs.suffix }} libxtst-dev${{ steps.arch.outputs.suffix }} libcups2-dev${{ steps.arch.outputs.suffix }} libasound2-dev${{ steps.arch.outputs.suffix }} ${{ inputs.apt-extra-packages }}
|
sudo apt-get install gcc-${{ inputs.gcc-major-version }}${{ inputs.gcc-package-suffix }}=${{ inputs.apt-gcc-version }} g++-${{ inputs.gcc-major-version }}${{ inputs.gcc-package-suffix }}=${{ inputs.apt-gcc-version }} libxrandr-dev${{ steps.arch.outputs.suffix }} libxtst-dev${{ steps.arch.outputs.suffix }} libcups2-dev${{ steps.arch.outputs.suffix }} libasound2-dev${{ steps.arch.outputs.suffix }} ${{ inputs.apt-extra-packages }}
|
||||||
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-${{ inputs.gcc-major-version }} 100 --slave /usr/bin/g++ g++ /usr/bin/g++-${{ inputs.gcc-major-version }}
|
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-${{ inputs.gcc-major-version }} 100 --slave /usr/bin/g++ g++ /usr/bin/g++-${{ inputs.gcc-major-version }}
|
||||||
|
|
||||||
- name: 'Configure'
|
- name: 'Configure'
|
||||||
|
|||||||
13
.github/workflows/build-macos.yml
vendored
13
.github/workflows/build-macos.yml
vendored
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2022, 2024, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2022, 2023, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -31,9 +31,6 @@ on:
|
|||||||
platform:
|
platform:
|
||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
runs-on:
|
|
||||||
required: true
|
|
||||||
type: string
|
|
||||||
extra-conf-options:
|
extra-conf-options:
|
||||||
required: false
|
required: false
|
||||||
type: string
|
type: string
|
||||||
@@ -58,7 +55,7 @@ on:
|
|||||||
jobs:
|
jobs:
|
||||||
build-macos:
|
build-macos:
|
||||||
name: build
|
name: build
|
||||||
runs-on: ${{ inputs.runs-on }}
|
runs-on: macos-11
|
||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
@@ -71,13 +68,13 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: 'Checkout the JDK source'
|
- name: 'Checkout the JDK source'
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: 'Get the BootJDK'
|
- name: 'Get the BootJDK'
|
||||||
id: bootjdk
|
id: bootjdk
|
||||||
uses: ./.github/actions/get-bootjdk
|
uses: ./.github/actions/get-bootjdk
|
||||||
with:
|
with:
|
||||||
platform: ${{ inputs.platform }}
|
platform: macos-x64
|
||||||
|
|
||||||
- name: 'Get JTReg'
|
- name: 'Get JTReg'
|
||||||
id: jtreg
|
id: jtreg
|
||||||
@@ -90,7 +87,7 @@ jobs:
|
|||||||
- name: 'Install toolchain and dependencies'
|
- name: 'Install toolchain and dependencies'
|
||||||
run: |
|
run: |
|
||||||
# Run Homebrew installation and xcode-select
|
# Run Homebrew installation and xcode-select
|
||||||
brew install autoconf make
|
brew install make
|
||||||
sudo xcode-select --switch /Applications/Xcode_${{ inputs.xcode-toolset-version }}.app/Contents/Developer
|
sudo xcode-select --switch /Applications/Xcode_${{ inputs.xcode-toolset-version }}.app/Contents/Developer
|
||||||
# This will make GNU make available as 'make' and not only as 'gmake'
|
# This will make GNU make available as 'make' and not only as 'gmake'
|
||||||
echo '/usr/local/opt/make/libexec/gnubin' >> $GITHUB_PATH
|
echo '/usr/local/opt/make/libexec/gnubin' >> $GITHUB_PATH
|
||||||
|
|||||||
2
.github/workflows/build-windows.yml
vendored
2
.github/workflows/build-windows.yml
vendored
@@ -79,7 +79,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: 'Checkout the JDK source'
|
- name: 'Checkout the JDK source'
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: 'Get MSYS2'
|
- name: 'Get MSYS2'
|
||||||
uses: ./.github/actions/get-msys2
|
uses: ./.github/actions/get-msys2
|
||||||
|
|||||||
168
.github/workflows/main.yml
vendored
168
.github/workflows/main.yml
vendored
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2022, 2024, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -26,12 +26,16 @@
|
|||||||
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:
|
||||||
description: 'Platform(s) to execute on (comma separated, e.g. "linux-x64, macos, aarch64")'
|
description: 'Platform(s) to execute on (comma separated, e.g. "linux-x64, macos, aarch64")'
|
||||||
required: true
|
required: true
|
||||||
default: 'linux-x64, linux-x86-hs, linux-x64-variants, linux-cross-compile, macos-x64, macos-aarch64, windows-x64, windows-aarch64, docs'
|
default: 'linux-x64, linux-x86, linux-x64-variants, linux-cross-compile, macos-x64, macos-aarch64, windows-x64, windows-aarch64, docs'
|
||||||
configure-arguments:
|
configure-arguments:
|
||||||
description: 'Additional configure arguments'
|
description: 'Additional configure arguments'
|
||||||
required: false
|
required: false
|
||||||
@@ -49,14 +53,13 @@ jobs:
|
|||||||
### Determine platforms to include
|
### Determine platforms to include
|
||||||
###
|
###
|
||||||
|
|
||||||
prepare:
|
select:
|
||||||
name: 'Prepare the run'
|
name: 'Select platforms'
|
||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-22.04
|
||||||
outputs:
|
outputs:
|
||||||
linux-x64: ${{ steps.include.outputs.linux-x64 }}
|
linux-x64: ${{ steps.include.outputs.linux-x64 }}
|
||||||
linux-x86-hs: ${{ steps.include.outputs.linux-x86-hs }}
|
linux-x86: ${{ steps.include.outputs.linux-x86 }}
|
||||||
# additional build options for linux-x64 are disabled
|
linux-x64-variants: ${{ steps.include.outputs.linux-x64-variants }}
|
||||||
# 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 }}
|
||||||
@@ -65,19 +68,7 @@ jobs:
|
|||||||
docs: ${{ steps.include.outputs.docs }}
|
docs: ${{ steps.include.outputs.docs }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: 'Checkout the scripts'
|
# This function must be inlined in main.yml, or we'd be forced to checkout the repo
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
sparse-checkout: |
|
|
||||||
.github
|
|
||||||
make/conf/github-actions.conf
|
|
||||||
|
|
||||||
- name: 'Build JTReg'
|
|
||||||
id: jtreg
|
|
||||||
uses: ./.github/actions/build-jtreg
|
|
||||||
|
|
||||||
# TODO: Now that we are checking out the repo scripts, we can put the following code
|
|
||||||
# into a separate file
|
|
||||||
- name: 'Check what jobs to run'
|
- name: 'Check what jobs to run'
|
||||||
id: include
|
id: include
|
||||||
run: |
|
run: |
|
||||||
@@ -119,7 +110,7 @@ jobs:
|
|||||||
}
|
}
|
||||||
|
|
||||||
echo "linux-x64=$(check_platform linux-x64 linux x64)" >> $GITHUB_OUTPUT
|
echo "linux-x64=$(check_platform linux-x64 linux x64)" >> $GITHUB_OUTPUT
|
||||||
echo "linux-x86-hs=$(check_platform linux-x86-hs linux x86)" >> $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-x64-variants=$(check_platform linux-x64-variants variants)" >> $GITHUB_OUTPUT
|
||||||
echo "linux-cross-compile=$(check_platform linux-cross-compile cross-compile)" >> $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-x64=$(check_platform macos-x64 macos x64)" >> $GITHUB_OUTPUT
|
||||||
@@ -134,78 +125,83 @@ jobs:
|
|||||||
|
|
||||||
build-linux-x64:
|
build-linux-x64:
|
||||||
name: linux-x64
|
name: linux-x64
|
||||||
needs: prepare
|
needs: select
|
||||||
uses: ./.github/workflows/build-linux.yml
|
uses: ./.github/workflows/build-linux.yml
|
||||||
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 }}
|
||||||
if: needs.prepare.outputs.linux-x64 == 'true'
|
# 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-hs:
|
build-linux-x86:
|
||||||
name: linux-x86-hs
|
name: linux-x86
|
||||||
needs: prepare
|
needs: select
|
||||||
uses: ./.github/workflows/build-linux.yml
|
uses: ./.github/workflows/build-linux.yml
|
||||||
with:
|
with:
|
||||||
platform: linux-x86
|
platform: linux-x86
|
||||||
make-target: 'hotspot'
|
|
||||||
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 libgcc-s1:i386 libstdc++6: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 }}
|
||||||
if: needs.prepare.outputs.linux-x86-hs == 'true'
|
if: needs.select.outputs.linux-x86 == 'true'
|
||||||
|
|
||||||
build-linux-x64-hs-nopch:
|
build-linux-x64-hs-nopch:
|
||||||
name: linux-x64-hs-nopch
|
name: linux-x64-hs-nopch
|
||||||
needs: prepare
|
needs: select
|
||||||
uses: ./.github/workflows/build-linux.yml
|
uses: ./.github/workflows/build-linux.yml
|
||||||
with:
|
with:
|
||||||
platform: linux-x64
|
platform: linux-x64
|
||||||
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 }}
|
||||||
if: needs.prepare.outputs.linux-x64-variants == 'true'
|
if: needs.select.outputs.linux-x64-variants == 'true'
|
||||||
|
|
||||||
build-linux-x64-hs-zero:
|
build-linux-x64-hs-zero:
|
||||||
name: linux-x64-hs-zero
|
name: linux-x64-hs-zero
|
||||||
needs: prepare
|
needs: select
|
||||||
uses: ./.github/workflows/build-linux.yml
|
uses: ./.github/workflows/build-linux.yml
|
||||||
with:
|
with:
|
||||||
platform: linux-x64
|
platform: linux-x64
|
||||||
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 }}
|
||||||
if: needs.prepare.outputs.linux-x64-variants == 'true'
|
if: needs.select.outputs.linux-x64-variants == 'true'
|
||||||
|
|
||||||
build-linux-x64-hs-minimal:
|
build-linux-x64-hs-minimal:
|
||||||
name: linux-x64-hs-minimal
|
name: linux-x64-hs-minimal
|
||||||
needs: prepare
|
needs: select
|
||||||
uses: ./.github/workflows/build-linux.yml
|
uses: ./.github/workflows/build-linux.yml
|
||||||
with:
|
with:
|
||||||
platform: linux-x64
|
platform: linux-x64
|
||||||
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 }}
|
||||||
if: needs.prepare.outputs.linux-x64-variants == 'true'
|
if: needs.select.outputs.linux-x64-variants == 'true'
|
||||||
|
|
||||||
build-linux-x64-hs-optimized:
|
build-linux-x64-hs-optimized:
|
||||||
name: linux-x64-hs-optimized
|
name: linux-x64-hs-optimized
|
||||||
needs: prepare
|
needs: select
|
||||||
uses: ./.github/workflows/build-linux.yml
|
uses: ./.github/workflows/build-linux.yml
|
||||||
with:
|
with:
|
||||||
platform: linux-x64
|
platform: linux-x64
|
||||||
@@ -213,48 +209,52 @@ 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 }}
|
||||||
if: needs.prepare.outputs.linux-x64-variants == 'true'
|
if: needs.select.outputs.linux-x64-variants == 'true'
|
||||||
|
|
||||||
build-linux-cross-compile:
|
build-linux-cross-compile:
|
||||||
name: linux-cross-compile
|
name: linux-cross-compile
|
||||||
needs: prepare
|
needs:
|
||||||
|
- select
|
||||||
|
- build-linux-x64
|
||||||
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.prepare.outputs.linux-cross-compile == 'true'
|
if: needs.select.outputs.linux-cross-compile == 'true'
|
||||||
|
|
||||||
build-macos-x64:
|
build-macos-x64:
|
||||||
name: macos-x64
|
name: macos-x64
|
||||||
needs: prepare
|
needs: select
|
||||||
uses: ./.github/workflows/build-macos.yml
|
uses: ./.github/workflows/build-macos.yml
|
||||||
with:
|
with:
|
||||||
platform: macos-x64
|
platform: macos-x64
|
||||||
runs-on: 'macos-13'
|
xcode-toolset-version: '12.5.1'
|
||||||
xcode-toolset-version: '14.3.1'
|
|
||||||
configure-arguments: ${{ github.event.inputs.configure-arguments }}
|
configure-arguments: ${{ github.event.inputs.configure-arguments }}
|
||||||
make-arguments: ${{ github.event.inputs.make-arguments }}
|
make-arguments: ${{ github.event.inputs.make-arguments }}
|
||||||
if: needs.prepare.outputs.macos-x64 == 'true'
|
if: needs.select.outputs.macos-x64 == 'true'
|
||||||
|
|
||||||
build-macos-aarch64:
|
build-macos-aarch64:
|
||||||
name: macos-aarch64
|
name: macos-aarch64
|
||||||
needs: prepare
|
needs: select
|
||||||
uses: ./.github/workflows/build-macos.yml
|
uses: ./.github/workflows/build-macos.yml
|
||||||
with:
|
with:
|
||||||
platform: macos-aarch64
|
platform: macos-aarch64
|
||||||
runs-on: 'macos-14'
|
xcode-toolset-version: '12.5.1'
|
||||||
xcode-toolset-version: '15.4'
|
extra-conf-options: '--openjdk-target=aarch64-apple-darwin'
|
||||||
configure-arguments: ${{ github.event.inputs.configure-arguments }}
|
configure-arguments: ${{ github.event.inputs.configure-arguments }}
|
||||||
make-arguments: ${{ github.event.inputs.make-arguments }}
|
make-arguments: ${{ github.event.inputs.make-arguments }}
|
||||||
if: needs.prepare.outputs.macos-aarch64 == 'true'
|
if: needs.select.outputs.macos-aarch64 == 'true'
|
||||||
|
|
||||||
build-windows-x64:
|
build-windows-x64:
|
||||||
name: windows-x64
|
name: windows-x64
|
||||||
needs: prepare
|
needs: select
|
||||||
uses: ./.github/workflows/build-windows.yml
|
uses: ./.github/workflows/build-windows.yml
|
||||||
with:
|
with:
|
||||||
platform: windows-x64
|
platform: windows-x64
|
||||||
@@ -262,11 +262,11 @@ jobs:
|
|||||||
msvc-toolset-architecture: 'x86.x64'
|
msvc-toolset-architecture: 'x86.x64'
|
||||||
configure-arguments: ${{ github.event.inputs.configure-arguments }}
|
configure-arguments: ${{ github.event.inputs.configure-arguments }}
|
||||||
make-arguments: ${{ github.event.inputs.make-arguments }}
|
make-arguments: ${{ github.event.inputs.make-arguments }}
|
||||||
if: needs.prepare.outputs.windows-x64 == 'true'
|
if: needs.select.outputs.windows-x64 == 'true'
|
||||||
|
|
||||||
build-windows-aarch64:
|
build-windows-aarch64:
|
||||||
name: windows-aarch64
|
name: windows-aarch64
|
||||||
needs: prepare
|
needs: select
|
||||||
uses: ./.github/workflows/build-windows.yml
|
uses: ./.github/workflows/build-windows.yml
|
||||||
with:
|
with:
|
||||||
platform: windows-aarch64
|
platform: windows-aarch64
|
||||||
@@ -276,11 +276,11 @@ jobs:
|
|||||||
extra-conf-options: '--openjdk-target=aarch64-unknown-cygwin'
|
extra-conf-options: '--openjdk-target=aarch64-unknown-cygwin'
|
||||||
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.prepare.outputs.windows-aarch64 == 'true'
|
if: needs.select.outputs.windows-aarch64 == 'true'
|
||||||
|
|
||||||
build-docs:
|
build-docs:
|
||||||
name: docs
|
name: docs
|
||||||
needs: prepare
|
needs: select
|
||||||
uses: ./.github/workflows/build-linux.yml
|
uses: ./.github/workflows/build-linux.yml
|
||||||
with:
|
with:
|
||||||
platform: linux-x64
|
platform: linux-x64
|
||||||
@@ -290,9 +290,10 @@ 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.prepare.outputs.docs == 'true'
|
if: needs.select.outputs.docs == 'true'
|
||||||
|
|
||||||
###
|
###
|
||||||
### Test jobs
|
### Test jobs
|
||||||
@@ -308,6 +309,16 @@ jobs:
|
|||||||
bootjdk-platform: linux-x64
|
bootjdk-platform: linux-x64
|
||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-22.04
|
||||||
|
|
||||||
|
test-linux-x86:
|
||||||
|
name: linux-x86
|
||||||
|
needs:
|
||||||
|
- build-linux-x86
|
||||||
|
uses: ./.github/workflows/test.yml
|
||||||
|
with:
|
||||||
|
platform: linux-x86
|
||||||
|
bootjdk-platform: linux-x64
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
|
|
||||||
test-macos-x64:
|
test-macos-x64:
|
||||||
name: macos-x64
|
name: macos-x64
|
||||||
needs:
|
needs:
|
||||||
@@ -316,19 +327,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
platform: macos-x64
|
platform: macos-x64
|
||||||
bootjdk-platform: macos-x64
|
bootjdk-platform: macos-x64
|
||||||
runs-on: macos-13
|
runs-on: macos-11
|
||||||
xcode-toolset-version: '14.3.1'
|
|
||||||
|
|
||||||
test-macos-aarch64:
|
|
||||||
name: macos-aarch64
|
|
||||||
needs:
|
|
||||||
- build-macos-aarch64
|
|
||||||
uses: ./.github/workflows/test.yml
|
|
||||||
with:
|
|
||||||
platform: macos-aarch64
|
|
||||||
bootjdk-platform: macos-aarch64
|
|
||||||
runs-on: macos-14
|
|
||||||
xcode-toolset-version: '15.4'
|
|
||||||
|
|
||||||
test-windows-x64:
|
test-windows-x64:
|
||||||
name: windows-x64
|
name: windows-x64
|
||||||
@@ -347,7 +346,7 @@ jobs:
|
|||||||
if: always()
|
if: always()
|
||||||
needs:
|
needs:
|
||||||
- build-linux-x64
|
- build-linux-x64
|
||||||
- build-linux-x86-hs
|
- build-linux-x86
|
||||||
- build-linux-x64-hs-nopch
|
- build-linux-x64-hs-nopch
|
||||||
- build-linux-x64-hs-zero
|
- build-linux-x64-hs-zero
|
||||||
- build-linux-x64-hs-minimal
|
- build-linux-x64-hs-minimal
|
||||||
@@ -358,28 +357,31 @@ jobs:
|
|||||||
- build-windows-x64
|
- build-windows-x64
|
||||||
- build-windows-aarch64
|
- build-windows-aarch64
|
||||||
- test-linux-x64
|
- test-linux-x64
|
||||||
|
- test-linux-x86
|
||||||
- test-macos-x64
|
- test-macos-x64
|
||||||
- test-macos-aarch64
|
|
||||||
- test-windows-x64
|
- test-windows-x64
|
||||||
|
|
||||||
steps:
|
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'
|
- name: 'Remove bundle artifacts'
|
||||||
run: |
|
run: |
|
||||||
# Find and remove all bundle artifacts
|
# Find and remove all bundle artifacts
|
||||||
# See: https://docs.github.com/en/rest/actions/artifacts?apiVersion=2022-11-28
|
ALL_ARTIFACT_URLS="$(curl -s \
|
||||||
ALL_ARTIFACT_IDS="$(curl -sL \
|
-H 'Accept: application/json;api-version=6.0-preview' \
|
||||||
-H 'Accept: application/vnd.github+json' \
|
-H 'Authorization: Bearer ${{ fromJson(steps.api.outputs.result).token }}' \
|
||||||
-H 'Authorization: Bearer ${{ github.token }}' \
|
'${{ fromJson(steps.api.outputs.result).url }}_apis/pipelines/workflows/${{ github.run_id }}/artifacts?api-version=6.0-preview')"
|
||||||
-H 'X-GitHub-Api-Version: 2022-11-28' \
|
BUNDLE_ARTIFACT_URLS="$(echo "$ALL_ARTIFACT_URLS" | jq -r -c '.value | map(select(.name|startswith("bundles-"))) | .[].url')"
|
||||||
'${{ github.api_url }}/repos/${{ github.repository }}/actions/runs/${{ github.run_id }}/artifacts?per_page=100')"
|
for url in $BUNDLE_ARTIFACT_URLS; do
|
||||||
BUNDLE_ARTIFACT_IDS="$(echo "$ALL_ARTIFACT_IDS" | jq -r -c '.artifacts | map(select(.name|startswith("bundles-"))) | .[].id')"
|
echo "Removing $url"
|
||||||
for id in $BUNDLE_ARTIFACT_IDS; do
|
curl -s \
|
||||||
echo "Removing $id"
|
-H 'Accept: application/json;api-version=6.0-preview' \
|
||||||
curl -sL \
|
-H 'Authorization: Bearer ${{ fromJson(steps.api.outputs.result).token }}' \
|
||||||
-X DELETE \
|
-X DELETE "$url" \
|
||||||
-H 'Accept: application/vnd.github+json' \
|
|
||||||
-H 'Authorization: Bearer ${{ github.token }}' \
|
|
||||||
-H 'X-GitHub-Api-Version: 2022-11-28' \
|
|
||||||
"${{ github.api_url }}/repos/${{ github.repository }}/actions/artifacts/$id" \
|
|
||||||
|| echo "Failed to remove bundle"
|
|| echo "Failed to remove bundle"
|
||||||
done
|
done
|
||||||
|
|||||||
270
.github/workflows/pr.yml
vendored
270
.github/workflows/pr.yml
vendored
@@ -1,270 +0,0 @@
|
|||||||
#
|
|
||||||
# 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
|
|
||||||
34
.github/workflows/test.yml
vendored
34
.github/workflows/test.yml
vendored
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2022, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -37,9 +37,6 @@ on:
|
|||||||
runs-on:
|
runs-on:
|
||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
xcode-toolset-version:
|
|
||||||
required: false
|
|
||||||
type: string
|
|
||||||
|
|
||||||
env:
|
env:
|
||||||
# These are needed to make the MSYS2 bash work properly
|
# These are needed to make the MSYS2 bash work properly
|
||||||
@@ -63,10 +60,7 @@ jobs:
|
|||||||
- 'jdk/tier1 part 3'
|
- 'jdk/tier1 part 3'
|
||||||
- 'langtools/tier1'
|
- 'langtools/tier1'
|
||||||
- 'hs/tier1 common'
|
- 'hs/tier1 common'
|
||||||
- 'hs/tier1 compiler part 1'
|
- 'hs/tier1 compiler'
|
||||||
- 'hs/tier1 compiler part 2'
|
|
||||||
- 'hs/tier1 compiler part 3'
|
|
||||||
- 'hs/tier1 compiler not-xcomp'
|
|
||||||
- 'hs/tier1 gc'
|
- 'hs/tier1 gc'
|
||||||
- 'hs/tier1 runtime'
|
- 'hs/tier1 runtime'
|
||||||
- 'hs/tier1 serviceability'
|
- 'hs/tier1 serviceability'
|
||||||
@@ -89,20 +83,8 @@ jobs:
|
|||||||
test-suite: 'test/hotspot/jtreg/:tier1_common'
|
test-suite: 'test/hotspot/jtreg/:tier1_common'
|
||||||
debug-suffix: -debug
|
debug-suffix: -debug
|
||||||
|
|
||||||
- test-name: 'hs/tier1 compiler part 1'
|
- test-name: 'hs/tier1 compiler'
|
||||||
test-suite: 'test/hotspot/jtreg/:tier1_compiler_1'
|
test-suite: 'test/hotspot/jtreg/:tier1_compiler'
|
||||||
debug-suffix: -debug
|
|
||||||
|
|
||||||
- test-name: 'hs/tier1 compiler part 2'
|
|
||||||
test-suite: 'test/hotspot/jtreg/:tier1_compiler_2'
|
|
||||||
debug-suffix: -debug
|
|
||||||
|
|
||||||
- test-name: 'hs/tier1 compiler part 3'
|
|
||||||
test-suite: 'test/hotspot/jtreg/:tier1_compiler_3'
|
|
||||||
debug-suffix: -debug
|
|
||||||
|
|
||||||
- test-name: 'hs/tier1 compiler not-xcomp'
|
|
||||||
test-suite: 'test/hotspot/jtreg/:tier1_compiler_not_xcomp'
|
|
||||||
debug-suffix: -debug
|
debug-suffix: -debug
|
||||||
|
|
||||||
- test-name: 'hs/tier1 gc'
|
- test-name: 'hs/tier1 gc'
|
||||||
@@ -123,7 +105,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: 'Checkout the JDK source'
|
- name: 'Checkout the JDK source'
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: 'Get MSYS2'
|
- name: 'Get MSYS2'
|
||||||
uses: ./.github/actions/get-msys2
|
uses: ./.github/actions/get-msys2
|
||||||
@@ -150,7 +132,7 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
# On macOS we need to install some dependencies for testing
|
# On macOS we need to install some dependencies for testing
|
||||||
brew install make
|
brew install make
|
||||||
sudo xcode-select --switch /Applications/Xcode_${{ inputs.xcode-toolset-version }}.app/Contents/Developer
|
sudo xcode-select --switch /Applications/Xcode_11.7.app/Contents/Developer
|
||||||
# This will make GNU make available as 'make' and not only as 'gmake'
|
# This will make GNU make available as 'make' and not only as 'gmake'
|
||||||
echo '/usr/local/opt/make/libexec/gnubin' >> $GITHUB_PATH
|
echo '/usr/local/opt/make/libexec/gnubin' >> $GITHUB_PATH
|
||||||
if: runner.os == 'macOS'
|
if: runner.os == 'macOS'
|
||||||
@@ -214,7 +196,7 @@ jobs:
|
|||||||
if: always()
|
if: always()
|
||||||
|
|
||||||
- name: 'Upload test results'
|
- name: 'Upload test results'
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
path: results
|
path: results
|
||||||
name: ${{ steps.package.outputs.artifact-name }}
|
name: ${{ steps.package.outputs.artifact-name }}
|
||||||
@@ -222,7 +204,7 @@ jobs:
|
|||||||
|
|
||||||
# This is the best way I found to abort the job with an error message
|
# This is the best way I found to abort the job with an error message
|
||||||
- name: 'Notify about test failures'
|
- name: 'Notify about test failures'
|
||||||
uses: actions/github-script@v7
|
uses: actions/github-script@v6
|
||||||
with:
|
with:
|
||||||
script: core.setFailed('${{ steps.run-tests.outputs.error-message }}')
|
script: core.setFailed('${{ steps.run-tests.outputs.error-message }}')
|
||||||
if: steps.run-tests.outputs.failure == 'true'
|
if: steps.run-tests.outputs.failure == 'true'
|
||||||
|
|||||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -23,4 +23,3 @@ NashornProfile.txt
|
|||||||
/.cproject
|
/.cproject
|
||||||
/compile_commands.json
|
/compile_commands.json
|
||||||
/.cache
|
/.cache
|
||||||
/jbr-api/
|
|
||||||
|
|||||||
@@ -1,11 +1,10 @@
|
|||||||
[general]
|
[general]
|
||||||
project=jdk-updates
|
project=jdk
|
||||||
jbs=JDK
|
jbs=JDK
|
||||||
version=21.0.8
|
version=22
|
||||||
|
|
||||||
[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
|
||||||
warning=issuestitle,binary
|
|
||||||
|
|
||||||
[repository]
|
[repository]
|
||||||
tags=(?:jdk-(?:[1-9]([0-9]*)(?:\.(?:0|[1-9][0-9]*)){0,4})(?:\+(?:(?:[0-9]+))|(?:-ga)))|(?:jdk[4-9](?:u\d{1,3})?-(?:(?:b\d{2,3})|(?:ga)))|(?:hs\d\d(?:\.\d{1,2})?-b\d\d)
|
tags=(?:jdk-(?:[1-9]([0-9]*)(?:\.(?:0|[1-9][0-9]*)){0,4})(?:\+(?:(?:[0-9]+))|(?:-ga)))|(?:jdk[4-9](?:u\d{1,3})?-(?:(?:b\d{2,3})|(?:ga)))|(?:hs\d\d(?:\.\d{1,2})?-b\d\d)
|
||||||
|
|||||||
258
README.md
258
README.md
@@ -1,252 +1,12 @@
|
|||||||
[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
|
# Welcome to the JDK!
|
||||||
|
|
||||||
# Welcome to JetBrains Runtime!
|
For build instructions please see the
|
||||||
|
[online documentation](https://openjdk.org/groups/build/doc/building.html),
|
||||||
|
or either of these files:
|
||||||
|
|
||||||
JetBrains Runtime is a fork of [OpenJDK](https://github.com/openjdk/jdk) available for Windows, Mac OS X, and Linux.
|
- [doc/building.html](doc/building.html) (html version)
|
||||||
It supports enhanced class redefinition ([DCEVM](https://ssw.jku.at/dcevm/)),
|
- [doc/building.md](doc/building.md) (markdown version)
|
||||||
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.
|
|
||||||
|
|
||||||
> **_NOTE_**: This is a **development** branch that is periodically synchronized with
|
See <https://openjdk.org/> for more information about the OpenJDK
|
||||||
> the [OpenJDK master](https://github.com/openjdk/jdk/tree/master) branch.
|
Community and the JDK and see <https://bugs.openjdk.org> for JDK issue
|
||||||
>
|
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.3 | [17.0.9b1087.7](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-17.0.9b1087.7) | 20-Nov-2023 |
|
|
||||||
| 2023.2 | [17.0.9b1000.46](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-17.0.9b1000.46) | 01-Nov-2023 |
|
|
||||||
| 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 |
|
|
||||||
|
|
||||||
## Release Flavours
|
|
||||||
|
|
||||||
There are many kinds of JBR bundles available on the [Releases page](https://github.com/JetBrains/JetBrainsRuntime/releases):
|
|
||||||
|
|
||||||
| Flavour | Description |
|
|
||||||
|---------------|---------------------------------------------------------------------------------------------------------------|
|
|
||||||
| JBR | Contains the Java Runtime Environment (JRE) suitable to _run_ JVM-based programs. |
|
|
||||||
| JBRSDK | Contains the Software Developmet Kit (SDK) suitable to _develop_ and _run_ JVM-based programs. |
|
|
||||||
| JBR with JCEF | Contains both JBR and JCEF; this flavour is bundled by default with all IntelliJ IDEs. |
|
|
||||||
| vanilla | Contains just JBR. |
|
|
||||||
| fastdebug | The native binaries in this bundle are less optimized and are easier to debug. They also run much slower. |
|
|
||||||
| FreeType | The bundle includes the freetype library built from sources; normally, the library is provided by the system. |
|
|
||||||
| Vulkan | The bundle includes experimental Vulkan support. | |
|
|
||||||
| debug symbols | In addition to the usual contents of the bundle the debug information is also included. |
|
|
||||||
|
|
||||||
## 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)
|
|
||||||
Download an image from [Docker Hub](https://hub.docker.com/repository/docker/jetbrains/runtime/general) related to your architecture:
|
|
||||||
```
|
|
||||||
$ docker pull jetbrains/runtime:oraclelinux8_aarch64
|
|
||||||
```
|
|
||||||
or
|
|
||||||
```
|
|
||||||
$ docker pull jetbrains/runtime:oraclelinux8_x64
|
|
||||||
```
|
|
||||||
Create and run a new container from the downloaded image
|
|
||||||
```
|
|
||||||
$ docker run -v $JetBrainsRuntime:/JetBrainsRuntime -it jetbrains/runtime:oraclelinux8_[arch]
|
|
||||||
```
|
|
||||||
where `$JetBrainsRuntime` is a full path to the directory where the repository was cloned to.
|
|
||||||
|
|
||||||
Run these commands in the container:
|
|
||||||
```
|
|
||||||
# yum install java-21-openjdk-devel
|
|
||||||
# cd /JetBrainsRuntime
|
|
||||||
# BOOT_JDK=/usr/lib/jvm/java-21/ ./jb/project/tools/linux/scripts/mkimages_x64.sh 99 nomod
|
|
||||||
```
|
|
||||||
|
|
||||||
### Ubuntu Linux
|
|
||||||
Install the necessary tools, libraries, and headers with:
|
|
||||||
```
|
|
||||||
$ sudo wget -qO- https://packages.lunarg.com/lunarg-signing-key-pub.asc | tee /etc/apt/trusted.gpg.d/lunarg.asc
|
|
||||||
$ sudo wget -qO /etc/apt/sources.list.d/lunarg-vulkan-noble.list https://packages.lunarg.com/vulkan/lunarg-vulkan-noble.list
|
|
||||||
$ sudo apt update
|
|
||||||
$ sudo apt-get -y install openjdk-21-jdk file zip unzip autoconf make build-essential libx11-dev libxext-dev libxrender-dev \
|
|
||||||
libxtst-dev libxt-dev libxrandr-dev libcups2-dev libfontconfig1-dev libasound2-dev libspeechd-dev libwayland-dev \
|
|
||||||
libxkbcommon-x11-0 vulkan-sdk vulkan-utility-libraries-dev
|
|
||||||
```
|
|
||||||
|
|
||||||
Then run the following:
|
|
||||||
```
|
|
||||||
$ cd /JetBrainsRuntime
|
|
||||||
$ BOOT_JDK=/usr/lib/jvm/java-21-openjdk-amd64 ./jb/project/tools/linux/scripts/mkimages_x64.sh 99 nomod
|
|
||||||
```
|
|
||||||
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/`.
|
|
||||||
|
|
||||||
#### Enable optional NVDA screen reader support
|
|
||||||
If you want to add support of a11y announcing via [NVDA screen reader](https://www.nvaccess.org/about-nvda/),
|
|
||||||
you will need to bundle the NVDA Controller Client library.
|
|
||||||
You can do it with the following steps:
|
|
||||||
1. Download the NVDA Controller Client library. You can find the link in its official README [here](https://github.com/nvaccess/nvda/blob/master/extras/controllerClient/readme.md)
|
|
||||||
2. Pass the path to the unpacked package to `configure` via an additional flag `--with-nvdacontrollerclient=<path>`.
|
|
||||||
The build system will search the required library files under `<path>/<target-arch>`.
|
|
||||||
|
|
||||||
#### Disable optional JAWS screen reader support
|
|
||||||
JBR is built with built-in support of JAWS screen reader.
|
|
||||||
If you want to disable it, run `configure` with the additional flag `--disable-jaws-client`.
|
|
||||||
|
|
||||||
### macOS
|
|
||||||
Install the following:
|
|
||||||
* Xcode command line developer tools and `autoconf` via [Homebrew](https://brew.sh/).
|
|
||||||
* Java 19 (for instance, [Azul Zulu Builds of OpenJDK 19](https://www.azul.com/downloads/?version=java-19-sts&os=macos&package=jdk)).
|
|
||||||
|
|
||||||
From the command line:
|
|
||||||
```
|
|
||||||
$ cd JetBrainsRuntime
|
|
||||||
$ git checkout main
|
|
||||||
$ sh ./configure
|
|
||||||
$ make images
|
|
||||||
```
|
|
||||||
This will build the release configuration under `./build/macosx-x86_64-server-release/`.
|
|
||||||
|
|
||||||
## Developing
|
|
||||||
You can use [CLion](https://www.jetbrains.com/clion/) to develop native parts of the JetBrains Runtime and
|
|
||||||
[IntelliJ IDEA](https://www.jetbrains.com/idea/) for the parts written in Java.
|
|
||||||
Both require projects to be created.
|
|
||||||
|
|
||||||
### CLion
|
|
||||||
Run
|
|
||||||
```
|
|
||||||
$ make compile-commands
|
|
||||||
```
|
|
||||||
in the git root and open the resulting `build/.../compile_commands.json` file as a project.
|
|
||||||
Then use `Tools | Compilation Database | Change Project Root` to point to git root of this repository.
|
|
||||||
|
|
||||||
See also this detailed step-by-step tutorial for all platforms:
|
|
||||||
[How to develop OpenJDK with CLion](https://blog.jetbrains.com/clion/2020/03/openjdk-with-clion/).
|
|
||||||
|
|
||||||
### IDEA
|
|
||||||
Run
|
|
||||||
```
|
|
||||||
$ sh ./bin/idea.sh
|
|
||||||
```
|
|
||||||
in the git root to generate project files (add `--help` for options). If you have multiple
|
|
||||||
configurations (for example, `release` and `fastdebug`), supply the `--conf <conf_name>` argument.
|
|
||||||
Then open the git root directory as a project in IDEA.
|
|
||||||
|
|
||||||
## Contributing
|
|
||||||
We are happy to receive your pull requests!
|
|
||||||
Before you submit one, please sign our [Contributor License Agreement (CLA)](https://www.jetbrains.com/agreements/cla/).
|
|
||||||
|
|
||||||
## Resources
|
|
||||||
* [JetBrains Runtime on GitHub](https://github.com/JetBrains/JetBrainsRuntime).
|
|
||||||
* [OpenJDK build instructions](https://openjdk.java.net/groups/build/doc/building.html).
|
|
||||||
* [OpenJDK test instructions](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openjdk/jdk/master/doc/building.html#running-tests).
|
|
||||||
* [How to develop OpenJDK with CLion](https://blog.jetbrains.com/clion/2020/03/openjdk-with-clion/).
|
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
# JDK Vulnerabilities
|
|
||||||
|
|
||||||
Please follow the process outlined in the [OpenJDK Vulnerability Policy](https://openjdk.org/groups/vulnerability/report) to disclose vulnerabilities in the JDK.
|
|
||||||
296
bin/idea.sh
296
bin/idea.sh
@@ -25,26 +25,7 @@
|
|||||||
# 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] [-q|--quiet] [-a|--absolute-paths] [-r|--root <path>] [-o|--output <path>] [-c|--conf <conf_name>] [modules...]"
|
echo "usage: $0 [-h|--help] [-v|--verbose] [-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
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -52,13 +33,10 @@ 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;
|
||||||
|
|
||||||
VERBOSE=true
|
IDEA_OUTPUT=$TOP/.idea
|
||||||
ABSOLUTE_PATHS=false
|
VERBOSE="false"
|
||||||
CONF_ARG=
|
CONF_ARG=
|
||||||
while [ $# -gt 0 ]
|
while [ $# -gt 0 ]
|
||||||
do
|
do
|
||||||
@@ -67,24 +45,14 @@ do
|
|||||||
usage
|
usage
|
||||||
;;
|
;;
|
||||||
|
|
||||||
-q | --quiet )
|
-v | --vebose )
|
||||||
VERBOSE=false
|
VERBOSE="true"
|
||||||
;;
|
|
||||||
|
|
||||||
-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
|
||||||
@@ -101,17 +69,20 @@ do
|
|||||||
shift
|
shift
|
||||||
done
|
done
|
||||||
|
|
||||||
if [ "x$IDEA_OUTPUT" = "x" ] ; then
|
if [ -e $IDEA_OUTPUT ] ; then
|
||||||
IDEA_OUTPUT="$TOPLEVEL_DIR/.idea"
|
rm -r $IDEA_OUTPUT
|
||||||
|
fi
|
||||||
|
mkdir -p $IDEA_OUTPUT || exit 1
|
||||||
|
cd $IDEA_OUTPUT; IDEA_OUTPUT=`pwd`
|
||||||
|
|
||||||
|
if [ "x$TOPLEVEL_DIR" = "x" ] ; then
|
||||||
|
cd $SCRIPT_DIR/..
|
||||||
|
TOPLEVEL_DIR=`pwd`
|
||||||
|
cd $IDEA_OUTPUT
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mkdir -p $IDEA_OUTPUT || exit 1
|
MAKE_DIR="$SCRIPT_DIR/../make"
|
||||||
cd "$TOP" ; cd $TOPLEVEL_DIR; TOPLEVEL_DIR=`pwd`
|
IDEA_MAKE="$MAKE_DIR/ide/idea/jdk"
|
||||||
cd "$TOP" ; cd $IDEA_OUTPUT; IDEA_OUTPUT=`pwd`
|
|
||||||
cd ..; IDEA_OUTPUT_PARENT=`pwd`
|
|
||||||
cd "$SCRIPT_DIR/.." ; OPENJDK_DIR=`pwd`
|
|
||||||
|
|
||||||
IDEA_MAKE="$OPENJDK_DIR/make/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"
|
||||||
@@ -123,31 +94,31 @@ if [ -d "$TEMPLATES_OVERRIDE" ] ; then
|
|||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$VERBOSE" = true ] ; then
|
if [ "$VERBOSE" = "true" ] ; then
|
||||||
echo "Will generate IDEA project files in \"$IDEA_OUTPUT\" for project \"$TOPLEVEL_DIR\""
|
echo "output dir: $IDEA_OUTPUT"
|
||||||
|
echo "idea template dir: $IDEA_TEMPLATE"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cd $TOP ; make -f "$IDEA_MAKE/idea.gmk" -I "$OPENJDK_DIR" idea TOPLEVEL_DIR="$TOPLEVEL_DIR" \
|
cd $TOP ; make -f "$IDEA_MAKE/idea.gmk" -I $MAKE_DIR/.. idea MAKEOVERRIDES= OUT=$IDEA_OUTPUT/env.cfg MODULES="$*" $CONF_ARG || exit 1
|
||||||
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 MODULES, MODULE_NAMES, RELATIVE_PROJECT_DIR, RELATIVE_BUILD_DIR to be set
|
# Expect MODULE_ROOTS, MODULE_NAMES, BOOT_JDK & SPEC to be set
|
||||||
if [ "xMODULES" = "x" ] ; then
|
if [ "x$MODULE_ROOTS" = "x" ] ; then
|
||||||
echo "FATAL: MODULES is empty" >&2; exit 1
|
echo "FATAL: MODULE_ROOTS 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$RELATIVE_PROJECT_DIR" = "x" ] ; then
|
if [ "x$BOOT_JDK" = "x" ] ; then
|
||||||
echo "FATAL: RELATIVE_PROJECT_DIR is empty" >&2; exit 1
|
echo "FATAL: BOOT_JDK is empty" >&2; exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "x$RELATIVE_BUILD_DIR" = "x" ] ; then
|
if [ "x$SPEC" = "x" ] ; then
|
||||||
echo "FATAL: RELATIVE_BUILD_DIR is empty" >&2; exit 1
|
echo "FATAL: SPEC is empty" >&2; exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -d "$TOPLEVEL_DIR/.hg" ] ; then
|
if [ -d "$TOPLEVEL_DIR/.hg" ] ; then
|
||||||
@@ -158,43 +129,6 @@ 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
|
||||||
@@ -218,106 +152,116 @@ 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"
|
||||||
add_replacement "###BUILD_DIR###" "$BUILD_DIR"
|
SPEC_DIR=`dirname $SPEC`
|
||||||
add_replacement "###RELATIVE_BUILD_DIR###" "$RELATIVE_BUILD_DIR"
|
if [ "x$CYGPATH" != "x" ]; then
|
||||||
if [ "x$PATHTOOL" != "x" ]; then
|
add_replacement "###BUILD_DIR###" "`$CYGPATH -am $SPEC_DIR`"
|
||||||
add_replacement "###BASH_RUNNER_PREFIX###" "\$PROJECT_DIR\$/.idea/bash.bat"
|
add_replacement "###IMAGES_DIR###" "`$CYGPATH -am $SPEC_DIR`/images/jdk"
|
||||||
else
|
add_replacement "###ROOT_DIR###" "`$CYGPATH -am $TOPLEVEL_DIR`"
|
||||||
add_replacement "###BASH_RUNNER_PREFIX###" ""
|
add_replacement "###IDEA_DIR###" "`$CYGPATH -am $IDEA_OUTPUT`"
|
||||||
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###" "`$PATHTOOL -am $JT_HOME`"
|
add_replacement "###JTREG_HOME###" "`$CYGPATH -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
|
||||||
|
|
||||||
MODULE_IMLS=""
|
SOURCE_PREFIX="<sourceFolder url=\"file://"
|
||||||
TEST_MODULE_DEPENDENCIES=""
|
SOURCE_POSTFIX="\" isTestSource=\"false\" />"
|
||||||
for module in $MODULE_NAMES; do
|
|
||||||
MODULE_IMLS="$MODULE_IMLS<module fileurl=\"file://\$PROJECT_DIR$/.idea/$module.iml\" filepath=\"\$PROJECT_DIR$/.idea/$module.iml\" /> "
|
for root in $MODULE_ROOTS; do
|
||||||
TEST_MODULE_DEPENDENCIES="$TEST_MODULE_DEPENDENCIES<orderEntry type=\"module\" module-name=\"$module\" scope=\"TEST\" /> "
|
if [ "x$CYGPATH" != "x" ]; then
|
||||||
|
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 "###TEST_MODULE_DEPENDENCIES###" "$TEST_MODULE_DEPENDENCIES"
|
add_replacement "###SOURCE_ROOTS###" "$SOURCES"
|
||||||
|
|
||||||
replace_template_dir "$IDEA_OUTPUT"
|
replace_template_dir "$IDEA_OUTPUT"
|
||||||
|
|
||||||
### Generate module project files
|
### Compile the custom Logger
|
||||||
|
|
||||||
if [ "$VERBOSE" = true ] ; then
|
CLASSES=$IDEA_OUTPUT/classes
|
||||||
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"
|
|
||||||
|
|
||||||
### Create shell script runner for Windows
|
if [ "x$ANT_HOME" = "x" ] ; then
|
||||||
|
# try some common locations
|
||||||
if [ "x$PATHTOOL" != "x" ]; then
|
if [ -f "/usr/share/ant/lib/ant.jar" ] ; then
|
||||||
echo "@echo off" > "$IDEA_OUTPUT/bash.bat"
|
ANT_HOME="/usr/share/ant"
|
||||||
if [ "x$WSL_DISTRO_NAME" != "x" ] ; then
|
|
||||||
echo "wsl -d $WSL_DISTRO_NAME --cd \"%cd%\" -e %*" >> "$IDEA_OUTPUT/bash.bat"
|
|
||||||
else
|
else
|
||||||
echo "$WINENV_ROOT\bin\bash.exe -l -c \"cd %CD:\=/%/ && %*\"" >> "$IDEA_OUTPUT/bash.bat"
|
try_ant=$(ls /opt/homebrew/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)
|
||||||
|
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
|
||||||
if [ "$VERBOSE" = true ] ; then
|
|
||||||
IDEA_PROJECT_DIR="`dirname $IDEA_OUTPUT`"
|
|
||||||
if [ "x$PATHTOOL" != "x" ]; then
|
|
||||||
IDEA_PROJECT_DIR="`$PATHTOOL -am $IDEA_PROJECT_DIR`"
|
|
||||||
fi
|
fi
|
||||||
echo "
|
CP=$ANT_HOME/lib/ant.jar
|
||||||
Now you can open \"$IDEA_PROJECT_DIR\" as IDEA project
|
rm -rf $CLASSES; mkdir $CLASSES
|
||||||
You can also run 'bash \"$IDEA_OUTPUT/jdk-clion/update-project.sh\"' to generate Clion project"
|
|
||||||
|
# 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,
|
||||||
|
# and we need to use realpath instead of CYGPATH to make javac work on both.
|
||||||
|
# We need to handle this case first since CYGPATH might be set on WSL.
|
||||||
|
if [ "x$WSL_DISTRO_NAME" != "x" ]; then
|
||||||
|
JAVAC_SOURCE_FILE=`realpath --relative-to=./ $IDEA_OUTPUT/src/idea/IdeaLoggerWrapper.java`
|
||||||
|
JAVAC_SOURCE_PATH=`realpath --relative-to=./ $IDEA_OUTPUT/src`
|
||||||
|
JAVAC_CLASSES=`realpath --relative-to=./ $CLASSES`
|
||||||
|
ANT_TEMP=`mktemp -d -p ./`
|
||||||
|
cp $ANT_HOME/lib/ant.jar $ANT_TEMP/ant.jar
|
||||||
|
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
|
fi
|
||||||
@@ -569,9 +569,10 @@ be accepted by <code>configure</code>.</p>
|
|||||||
<code>--with-toolchain-type=clang</code>.</p>
|
<code>--with-toolchain-type=clang</code>.</p>
|
||||||
<h3 id="apple-xcode">Apple Xcode</h3>
|
<h3 id="apple-xcode">Apple Xcode</h3>
|
||||||
<p>The oldest supported version of Xcode is 8.</p>
|
<p>The oldest supported version of Xcode is 8.</p>
|
||||||
<p>You will need to download Xcode either from the App Store or specific
|
<p>You will need the Xcode command line developer tools to be able to
|
||||||
versions can be easily located via the <a
|
build the JDK. (Actually, <em>only</em> the command line tools are
|
||||||
href="https://xcodereleases.com">Xcode Releases</a> website.</p>
|
needed, not the IDE.) The simplest way to install these is to run:</p>
|
||||||
|
<pre><code>xcode-select --install</code></pre>
|
||||||
<p>When updating Xcode, it is advisable to keep an older version for
|
<p>When updating Xcode, it is advisable to keep an older version for
|
||||||
building the JDK. To use a specific version of Xcode you have multiple
|
building the JDK. To use a specific version of Xcode you have multiple
|
||||||
options:</p>
|
options:</p>
|
||||||
|
|||||||
@@ -366,9 +366,12 @@ To use clang instead of gcc on Linux, use `--with-toolchain-type=clang`.
|
|||||||
|
|
||||||
The oldest supported version of Xcode is 8.
|
The oldest supported version of Xcode is 8.
|
||||||
|
|
||||||
You will need to download Xcode either from the App Store or specific versions
|
You will need the Xcode command line developer tools to be able to build
|
||||||
can be easily located via the [Xcode Releases](https://xcodereleases.com)
|
the JDK. (Actually, *only* the command line tools are needed, not the IDE.)
|
||||||
website.
|
The simplest way to install these is to run:
|
||||||
|
```
|
||||||
|
xcode-select --install
|
||||||
|
```
|
||||||
|
|
||||||
When updating Xcode, it is advisable to keep an older version for building the JDK.
|
When updating Xcode, it is advisable to keep an older version for building the JDK.
|
||||||
To use a specific version of Xcode you have multiple options:
|
To use a specific version of Xcode you have multiple options:
|
||||||
|
|||||||
@@ -72,9 +72,6 @@ id="toc-notes-for-specific-tests">Notes for Specific Tests</a>
|
|||||||
<li><a href="#non-us-locale" id="toc-non-us-locale">Non-US
|
<li><a href="#non-us-locale" id="toc-non-us-locale">Non-US
|
||||||
locale</a></li>
|
locale</a></li>
|
||||||
<li><a href="#pkcs11-tests" id="toc-pkcs11-tests">PKCS11 Tests</a></li>
|
<li><a href="#pkcs11-tests" id="toc-pkcs11-tests">PKCS11 Tests</a></li>
|
||||||
<li><a href="#testing-with-alternative-security-providers"
|
|
||||||
id="toc-testing-with-alternative-security-providers">Testing with
|
|
||||||
alternative security providers</a></li>
|
|
||||||
<li><a href="#client-ui-tests" id="toc-client-ui-tests">Client UI
|
<li><a href="#client-ui-tests" id="toc-client-ui-tests">Client UI
|
||||||
Tests</a></li>
|
Tests</a></li>
|
||||||
</ul></li>
|
</ul></li>
|
||||||
@@ -182,9 +179,8 @@ more tab-completion friendly. For more complex test runs, the
|
|||||||
<p>The test specifications given in <code>TEST</code> is parsed into
|
<p>The test specifications given in <code>TEST</code> is parsed into
|
||||||
fully qualified test descriptors, which clearly and unambigously show
|
fully qualified test descriptors, which clearly and unambigously show
|
||||||
which tests will be run. As an example, <code>:tier1</code> will expand
|
which tests will be run. As an example, <code>:tier1</code> will expand
|
||||||
to include all subcomponent test directories that define `tier1`,
|
to
|
||||||
for example:
|
<code>jtreg:$(TOPDIR)/test/hotspot/jtreg:tier1 jtreg:$(TOPDIR)/test/jdk:tier1 jtreg:$(TOPDIR)/test/langtools:tier1 jtreg:$(TOPDIR)/test/nashorn:tier1 jtreg:$(TOPDIR)/test/jaxp:tier1</code>.
|
||||||
<code>jtreg:$(TOPDIR)/test/hotspot/jtreg:tier1 jtreg:$(TOPDIR)/test/jdk:tier1 jtreg:$(TOPDIR)/test/langtools:tier1 ...</code>.
|
|
||||||
You can always submit a list of fully qualified test descriptors in the
|
You can always submit a list of fully qualified test descriptors in the
|
||||||
<code>TEST</code> variable if you want to shortcut the parser.</p>
|
<code>TEST</code> variable if you want to shortcut the parser.</p>
|
||||||
<h3 id="common-test-groups">Common Test Groups</h3>
|
<h3 id="common-test-groups">Common Test Groups</h3>
|
||||||
@@ -581,29 +577,14 @@ PKCS11 tests. Improper NSS version may lead to unexpected failures which
|
|||||||
are hard to diagnose. For example,
|
are hard to diagnose. For example,
|
||||||
sun/security/pkcs11/Secmod/AddTrustedCert.java may fail on Ubuntu 18.04
|
sun/security/pkcs11/Secmod/AddTrustedCert.java may fail on Ubuntu 18.04
|
||||||
with the default NSS version in the system. To run these tests
|
with the default NSS version in the system. To run these tests
|
||||||
correctly, the system property
|
correctly, the system property <code>test.nss.lib.paths</code> is
|
||||||
<code>jdk.test.lib.artifacts.<NAME></code> is required on Ubuntu
|
required on Ubuntu 18.04 to specify the alternative NSS lib
|
||||||
18.04 to specify the alternative NSS lib directory. The
|
directories.</p>
|
||||||
<code><NAME></code> component should be replaced with the name
|
|
||||||
element of the appropriate <code>@Artifact</code> class. (See
|
|
||||||
<code>test/jdk/sun/security/pkcs11/PKCS11Test.java</code>)</p>
|
|
||||||
<p>For example:</p>
|
<p>For example:</p>
|
||||||
<pre><code>$ make test TEST="jtreg:sun/security/pkcs11/Secmod/AddTrustedCert.java" \
|
<pre><code>$ make test TEST="jtreg:sun/security/pkcs11/Secmod/AddTrustedCert.java" \
|
||||||
JTREG="JAVA_OPTIONS=-Djdk.test.lib.artifacts.nsslib-linux_aarch64=/path/to/NSS-libs"</code></pre>
|
JTREG="JAVA_OPTIONS=-Dtest.nss.lib.paths=/path/to/your/latest/NSS-libs"</code></pre>
|
||||||
<p>For more notes about the PKCS11 tests, please refer to
|
<p>For more notes about the PKCS11 tests, please refer to
|
||||||
test/jdk/sun/security/pkcs11/README.</p>
|
test/jdk/sun/security/pkcs11/README.</p>
|
||||||
<h3 id="testing-with-alternative-security-providers">Testing with
|
|
||||||
alternative security providers</h3>
|
|
||||||
<p>Some security tests use a hardcoded provider for
|
|
||||||
<code>KeyFactory</code>, <code>Cipher</code>,
|
|
||||||
<code>KeyPairGenerator</code>, <code>KeyGenerator</code>,
|
|
||||||
<code>AlgorithmParameterGenerator</code>, <code>KeyAgreement</code>,
|
|
||||||
<code>Mac</code>, <code>MessageDigest</code>, <code>SecureRandom</code>,
|
|
||||||
<code>Signature</code>, <code>AlgorithmParameters</code>,
|
|
||||||
<code>Configuration</code>, <code>Policy</code>, or
|
|
||||||
<code>SecretKeyFactory</code> objects. Specify the
|
|
||||||
<code>-Dtest.provider.name=NAME</code> property to use a different
|
|
||||||
provider for the service(s).</p>
|
|
||||||
<h3 id="client-ui-tests">Client UI Tests</h3>
|
<h3 id="client-ui-tests">Client UI Tests</h3>
|
||||||
<h4 id="system-key-shortcuts">System key shortcuts</h4>
|
<h4 id="system-key-shortcuts">System key shortcuts</h4>
|
||||||
<p>Some Client UI tests use key sequences which may be reserved by the
|
<p>Some Client UI tests use key sequences which may be reserved by the
|
||||||
|
|||||||
@@ -102,11 +102,11 @@ test runs, the `test TEST="x"` solution needs to be used.
|
|||||||
|
|
||||||
The test specifications given in `TEST` is parsed into fully qualified test
|
The test specifications given in `TEST` is parsed into fully qualified test
|
||||||
descriptors, which clearly and unambigously show which tests will be run. As an
|
descriptors, which clearly and unambigously show which tests will be run. As an
|
||||||
example, `:tier1` will expand to include all subcomponent test directories
|
example, `:tier1` will expand to `jtreg:$(TOPDIR)/test/hotspot/jtreg:tier1
|
||||||
that define `tier1`, for example: `jtreg:$(TOPDIR)/test/hotspot/jtreg:tier1
|
jtreg:$(TOPDIR)/test/jdk:tier1 jtreg:$(TOPDIR)/test/langtools:tier1
|
||||||
jtreg:$(TOPDIR)/test/jdk:tier1 jtreg:$(TOPDIR)/test/langtools:tier1 ...`. You
|
jtreg:$(TOPDIR)/test/nashorn:tier1 jtreg:$(TOPDIR)/test/jaxp:tier1`. You can
|
||||||
can always submit a list of fully qualified test descriptors in the `TEST`
|
always submit a list of fully qualified test descriptors in the `TEST` variable
|
||||||
variable if you want to shortcut the parser.
|
if you want to shortcut the parser.
|
||||||
|
|
||||||
### Common Test Groups
|
### Common Test Groups
|
||||||
|
|
||||||
@@ -600,30 +600,19 @@ It is highly recommended to use the latest NSS version when running PKCS11
|
|||||||
tests. Improper NSS version may lead to unexpected failures which are hard to
|
tests. Improper NSS version may lead to unexpected failures which are hard to
|
||||||
diagnose. For example, sun/security/pkcs11/Secmod/AddTrustedCert.java may fail
|
diagnose. For example, sun/security/pkcs11/Secmod/AddTrustedCert.java may fail
|
||||||
on Ubuntu 18.04 with the default NSS version in the system. To run these tests
|
on Ubuntu 18.04 with the default NSS version in the system. To run these tests
|
||||||
correctly, the system property `jdk.test.lib.artifacts.<NAME>` is required on
|
correctly, the system property `test.nss.lib.paths` is required on Ubuntu 18.04
|
||||||
Ubuntu 18.04 to specify the alternative NSS lib directory. The `<NAME>`
|
to specify the alternative NSS lib directories.
|
||||||
component should be replaced with the name element of the appropriate
|
|
||||||
`@Artifact` class. (See `test/jdk/sun/security/pkcs11/PKCS11Test.java`)
|
|
||||||
|
|
||||||
For example:
|
For example:
|
||||||
|
|
||||||
```
|
```
|
||||||
$ make test TEST="jtreg:sun/security/pkcs11/Secmod/AddTrustedCert.java" \
|
$ make test TEST="jtreg:sun/security/pkcs11/Secmod/AddTrustedCert.java" \
|
||||||
JTREG="JAVA_OPTIONS=-Djdk.test.lib.artifacts.nsslib-linux_aarch64=/path/to/NSS-libs"
|
JTREG="JAVA_OPTIONS=-Dtest.nss.lib.paths=/path/to/your/latest/NSS-libs"
|
||||||
```
|
```
|
||||||
|
|
||||||
For more notes about the PKCS11 tests, please refer to
|
For more notes about the PKCS11 tests, please refer to
|
||||||
test/jdk/sun/security/pkcs11/README.
|
test/jdk/sun/security/pkcs11/README.
|
||||||
|
|
||||||
### Testing with alternative security providers
|
|
||||||
|
|
||||||
Some security tests use a hardcoded provider for `KeyFactory`, `Cipher`,
|
|
||||||
`KeyPairGenerator`, `KeyGenerator`, `AlgorithmParameterGenerator`,
|
|
||||||
`KeyAgreement`, `Mac`, `MessageDigest`, `SecureRandom`, `Signature`,
|
|
||||||
`AlgorithmParameters`, `Configuration`, `Policy`, or `SecretKeyFactory` objects.
|
|
||||||
Specify the `-Dtest.provider.name=NAME` property to use a different provider for
|
|
||||||
the service(s).
|
|
||||||
|
|
||||||
### Client UI Tests
|
### Client UI Tests
|
||||||
|
|
||||||
#### System key shortcuts
|
#### System key shortcuts
|
||||||
|
|||||||
238
jb/branchdiff.py
238
jb/branchdiff.py
@@ -1,238 +0,0 @@
|
|||||||
#!/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()
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
if [[ -z "$1" ]]; then
|
|
||||||
SCANNER=wayland-scanner
|
|
||||||
else
|
|
||||||
SCANNER="$1"
|
|
||||||
fi
|
|
||||||
|
|
||||||
set -ex
|
|
||||||
|
|
||||||
"$SCANNER" client-header src/java.desktop/share/native/libwakefield/protocol/wakefield.xml src/java.desktop/unix/native/libawt_wlawt/wakefield-client-protocol.h
|
|
||||||
"$SCANNER" private-code src/java.desktop/share/native/libwakefield/protocol/wakefield.xml src/java.desktop/unix/native/libawt_wlawt/wakefield-client-protocol.c
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
1.0.2
|
|
||||||
230
jb/jdkdiff.py
230
jb/jdkdiff.py
@@ -1,230 +0,0 @@
|
|||||||
#!/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()
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
JetBrainsRuntime
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
<?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>
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
<?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/test.iml" filepath="$PROJECT_DIR$/.idea/test.iml" />
|
|
||||||
</modules>
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
<?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>
|
|
||||||
@@ -1,135 +0,0 @@
|
|||||||
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
|
|
||||||
@@ -1,54 +0,0 @@
|
|||||||
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
|
|
||||||
@@ -1,190 +0,0 @@
|
|||||||
#!/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" ] && [ "${bundle_type: -2}" != "ft" ]; 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
|
|
||||||
}
|
|
||||||
|
|
||||||
DISABLE_WARNINGS_AS_ERRORS=""
|
|
||||||
CONTINUOUS_INTEGRATION=""
|
|
||||||
while getopts ":iwc?" o; do
|
|
||||||
case "${o}" in
|
|
||||||
i) INC_BUILD=1 ;;
|
|
||||||
w) DISABLE_WARNINGS_AS_ERRORS="--disable-warnings-as-errors" ;;
|
|
||||||
c) CONTINUOUS_INTEGRATION=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
|
|
||||||
|
|
||||||
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}']"
|
|
||||||
tag_prefix="jbr-"
|
|
||||||
OPENJDK_TAG=$(git log --simplify-by-decoration --decorate=short --pretty=short | grep "${tag_prefix}${JBSDK_VERSION}" | cut -d "(" -f2 | cut -d ")" -f1 | awk '{print $2}' | sort -t "-" -k 2 -V -f | tail -n 1 | tr -d ",")
|
|
||||||
JDK_BUILD_NUMBER=$(echo $OPENJDK_TAG | awk -F "-|[+]" '{print $3}')
|
|
||||||
[ -z $JDK_BUILD_NUMBER ] && JDK_BUILD_NUMBER=1
|
|
||||||
re='^[0-9]+$'
|
|
||||||
if ! [[ $JDK_BUILD_NUMBER =~ $re ]] ; then
|
|
||||||
echo "error: JDK_BUILD_NUMBER Not a number: $JDK_BUILD_NUMBER"
|
|
||||||
JDK_BUILD_NUMBER=1
|
|
||||||
fi
|
|
||||||
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"
|
|
||||||
|
|
||||||
if [ "$bundle_type" == "nomodft" ]; then
|
|
||||||
WITH_BUNDLED_FREETYPE="--with-freetype=bundled"
|
|
||||||
else
|
|
||||||
WITH_BUNDLED_FREETYPE=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
REPRODUCIBLE_BUILD_OPTS="--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 +0,0 @@
|
|||||||
--with-vendor-vm-bug-url=https://youtrack.jetbrains.com/issues/JBR
|
|
||||||
@@ -1,172 +0,0 @@
|
|||||||
#!/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 \
|
|
||||||
--with-vulkan \
|
|
||||||
$DISABLE_WARNINGS_AS_ERRORS \
|
|
||||||
$STATIC_CONF_ARGS \
|
|
||||||
$REPRODUCIBLE_BUILD_OPTS \
|
|
||||||
$WITH_ZIPPED_NATIVE_DEBUG_SYMBOLS \
|
|
||||||
$WITH_BUNDLED_FREETYPE \
|
|
||||||
|| 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=''
|
|
||||||
__cds_opt=''
|
|
||||||
|
|
||||||
if is_musl; then libc_type_suffix='musl-' ; fi
|
|
||||||
__cds_opt="--generate-cds-archive"
|
|
||||||
|
|
||||||
[ "$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 \
|
|
||||||
$__cds_opt --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
|
|
||||||
[ -f "$IMAGES_DIR"/"$__root_dir"/lib/cef_server ] && chmod a+x "$IMAGES_DIR"/"$__root_dir"/lib/cef_server
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
jbr_name_postfix=""
|
|
||||||
|
|
||||||
case "$bundle_type" in
|
|
||||||
"jcef")
|
|
||||||
do_reset_changes=1
|
|
||||||
jbr_name_postfix="_${bundle_type}"
|
|
||||||
do_maketest=1
|
|
||||||
;;
|
|
||||||
"nomod" | "")
|
|
||||||
bundle_type=""
|
|
||||||
;;
|
|
||||||
"nomodft" | "")
|
|
||||||
jbr_name_postfix="_ft"
|
|
||||||
;;
|
|
||||||
"fd")
|
|
||||||
do_reset_changes=1
|
|
||||||
jbr_name_postfix="_${bundle_type}"
|
|
||||||
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" ]; 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
|
|
||||||
cat $JCEF_PATH/jcef.version >> $JSDK/release
|
|
||||||
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" == "$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 CONF=$RELEASE_NAME JBR_API_JBR_VERSION=TEST || do_exit $?
|
|
||||||
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
|
|
||||||
@@ -1,189 +0,0 @@
|
|||||||
#!/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 {
|
|
||||||
if is_musl; then
|
|
||||||
LINUX_TARGET=""
|
|
||||||
else
|
|
||||||
LINUX_TARGET="\
|
|
||||||
--build=x86_64-unknown-linux-gnu \
|
|
||||||
--openjdk-target=x86_64-unknown-linux-gnu"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -n "${JCEF_BUILD_LEGACY:-}" ]; then
|
|
||||||
WITH_VULKAN=""
|
|
||||||
else
|
|
||||||
WITH_VULKAN="--with-vulkan"
|
|
||||||
fi
|
|
||||||
|
|
||||||
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 \
|
|
||||||
$WITH_VULKAN \
|
|
||||||
$LINUX_TARGET \
|
|
||||||
$DISABLE_WARNINGS_AS_ERRORS \
|
|
||||||
$STATIC_CONF_ARGS \
|
|
||||||
$REPRODUCIBLE_BUILD_OPTS \
|
|
||||||
$WITH_ZIPPED_NATIVE_DEBUG_SYMBOLS \
|
|
||||||
$WITH_BUNDLED_FREETYPE \
|
|
||||||
|| 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=''
|
|
||||||
__cds_opt=''
|
|
||||||
|
|
||||||
if is_musl; then libc_type_suffix='musl-' ; fi
|
|
||||||
__cds_opt="--generate-cds-archive"
|
|
||||||
|
|
||||||
[ "$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 \
|
|
||||||
$__cds_opt --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
|
|
||||||
if [ ! -n "${JCEF_BUILD_LEGACY:-}" ]; then
|
|
||||||
[ -f "$IMAGES_DIR"/"$__root_dir"/lib/cef_server ] && chmod a+x "$IMAGES_DIR"/"$__root_dir"/lib/cef_server
|
|
||||||
fi
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
jbr_name_postfix=""
|
|
||||||
|
|
||||||
case "$bundle_type" in
|
|
||||||
"jcef")
|
|
||||||
do_reset_changes=1
|
|
||||||
jbr_name_postfix="_${bundle_type}"
|
|
||||||
do_maketest=1
|
|
||||||
;;
|
|
||||||
"nomod" | "")
|
|
||||||
bundle_type=""
|
|
||||||
;;
|
|
||||||
"nomodft" | "")
|
|
||||||
jbr_name_postfix="_ft"
|
|
||||||
;;
|
|
||||||
"fd")
|
|
||||||
do_reset_changes=1
|
|
||||||
jbr_name_postfix="_${bundle_type}"
|
|
||||||
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" ]; 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
|
|
||||||
cat $JCEF_PATH/jcef.version >> $JSDK/release
|
|
||||||
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" == "$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 CONF=$RELEASE_NAME JBR_API_JBR_VERSION=TEST || do_exit $?
|
|
||||||
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
|
|
||||||
@@ -1,147 +0,0 @@
|
|||||||
#!/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
|
|
||||||
ENABLE_CDS="no"
|
|
||||||
|
|
||||||
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=$ENABLE_CDS \
|
|
||||||
$DISABLE_WARNINGS_AS_ERRORS \
|
|
||||||
$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=''
|
|
||||||
__cds_opt=''
|
|
||||||
|
|
||||||
if is_musl; then libc_type_suffix='musl-' ; fi
|
|
||||||
[ "${ENABLE_CDS}" == "yes" ] && __cds_opt="--generate-cds-archive"
|
|
||||||
|
|
||||||
[ "$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 \
|
|
||||||
$__cds_opt --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 CONF=$RELEASE_NAME JBR_API_JBR_VERSION=TEST || do_exit $?
|
|
||||||
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
|
|
||||||
@@ -1,63 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
SCRIPT_DIR="$(cd "$(dirname "$0")" >/dev/null && pwd)"
|
|
||||||
|
|
||||||
source "$SCRIPT_DIR/jetsign-common.sh" || exit 1
|
|
||||||
|
|
||||||
function isMacOsBinary() {
|
|
||||||
file "$1" | grep -q 'Mach-O'
|
|
||||||
}
|
|
||||||
|
|
||||||
function isSigned() {
|
|
||||||
codesign --verify "$1" >/dev/null 2>&1 && ! grep -q Signature=adhoc < <(codesign --display --verbose "$1" 2>&1)
|
|
||||||
}
|
|
||||||
|
|
||||||
# last argument is a path to be signed
|
|
||||||
pathToBeSigned="$(pwd)/${*: -1}"
|
|
||||||
jetSignArgs=("${@:1:$#-1}")
|
|
||||||
if [[ ! -f "$pathToBeSigned" ]]; then
|
|
||||||
echo "$pathToBeSigned is missing or not a file"
|
|
||||||
exit 1
|
|
||||||
elif isSigned "$pathToBeSigned" && ! isForced "${jetSignArgs[@]}" ; then
|
|
||||||
echo "Already signed: $pathToBeSigned"
|
|
||||||
elif [[ "$JETSIGN_CLIENT" == "null" ]]; then
|
|
||||||
echo "JetSign client is missing, cannot proceed with signing"
|
|
||||||
exit 1
|
|
||||||
elif ! isMacOsBinary "$pathToBeSigned" && [[ "$pathToBeSigned" != *.sit ]] && [[ "$pathToBeSigned" != *.tar.gz ]]; then
|
|
||||||
echo "$pathToBeSigned won't be signed, assumed not to be a macOS executable"
|
|
||||||
else
|
|
||||||
if isMacOsBinary "$pathToBeSigned" && ! isSigned "$pathToBeSigned" ; then
|
|
||||||
echo "Unsigned macOS binary: $pathToBeSigned"
|
|
||||||
fi
|
|
||||||
workDir=$(dirname "$pathToBeSigned")
|
|
||||||
pathSigned="$workDir/signed/${pathToBeSigned##*/}"
|
|
||||||
jetSignExtensions=$(jetSignExtensions "${jetSignArgs[@]}")
|
|
||||||
contentType=$(jetSignContentType "$pathToBeSigned")
|
|
||||||
(
|
|
||||||
cd "$workDir" || exit 1
|
|
||||||
|
|
||||||
max_attempts=3
|
|
||||||
attempt=1
|
|
||||||
while [ $attempt -le $max_attempts ]; do
|
|
||||||
if "$JETSIGN_CLIENT" -log-format text -max-wait 1m -denoted-content-type "$contentType" -extensions "$jetSignExtensions" "$pathToBeSigned"; then
|
|
||||||
break
|
|
||||||
else
|
|
||||||
if [ $attempt -eq $max_attempts ]; then
|
|
||||||
echo "Failed to sign after $max_attempts attempts"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo "Attempt $attempt failed, retrying in 5 seconds..."
|
|
||||||
sleep 5
|
|
||||||
((attempt++))
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# SRE-1223 (Codesign removes execute bits in executable files) workaround
|
|
||||||
chmod "$(stat -f %A "$pathToBeSigned")" "$pathSigned"
|
|
||||||
if isMacOsBinary "$pathSigned"; then
|
|
||||||
isSigned "$pathSigned"
|
|
||||||
fi
|
|
||||||
rm "$pathToBeSigned"
|
|
||||||
mv "$pathSigned" "$pathToBeSigned"
|
|
||||||
rm -rf "$workDir/signed"
|
|
||||||
)
|
|
||||||
fi
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
<?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>
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
<?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>
|
|
||||||
<false/>
|
|
||||||
<key>com.apple.security.cs.allow-dyld-environment-variables</key>
|
|
||||||
<false/>
|
|
||||||
<key>com.apple.security.cs.disable-library-validation</key>
|
|
||||||
<false/>
|
|
||||||
<key>com.apple.security.cs.disable-executable-page-protection</key>
|
|
||||||
<false/>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
@@ -1,63 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
set -euo pipefail
|
|
||||||
|
|
||||||
function isForced() {
|
|
||||||
for arg in "$@"; do
|
|
||||||
if [[ "$arg" == --force ]]; then
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
function jetSignExtensions() {
|
|
||||||
args=("$@")
|
|
||||||
((lastElementIndex=${#args[@]}-1))
|
|
||||||
for index in "${!args[@]}"; do
|
|
||||||
arg=${args[$index]}
|
|
||||||
case "$arg" in
|
|
||||||
--sign | -s)
|
|
||||||
echo -n 'mac_codesign_identity='
|
|
||||||
continue
|
|
||||||
;;
|
|
||||||
--entitlements)
|
|
||||||
echo -n 'mac_codesign_entitlements='
|
|
||||||
continue
|
|
||||||
;;
|
|
||||||
--options=runtime)
|
|
||||||
echo -n 'mac_codesign_options=runtime'
|
|
||||||
;;
|
|
||||||
--force)
|
|
||||||
echo -n 'mac_codesign_force=true'
|
|
||||||
;;
|
|
||||||
--timestamp | --verbose | -v)
|
|
||||||
continue
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo -n "$arg"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
if [[ $index != "$lastElementIndex" ]]; then
|
|
||||||
echo -n ","
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
# See jetbrains.sign.util.FileUtil.contentType
|
|
||||||
function jetSignContentType() {
|
|
||||||
case "${1##*/}" in
|
|
||||||
*.sit)
|
|
||||||
echo -n 'application/x-mac-app-zip'
|
|
||||||
;;
|
|
||||||
*.tar.gz)
|
|
||||||
echo -n 'application/x-mac-app-targz'
|
|
||||||
;;
|
|
||||||
*.pkg)
|
|
||||||
echo -n 'application/x-mac-pkg'
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo -n 'application/x-mac-app-bin'
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,190 +0,0 @@
|
|||||||
#!/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)}
|
|
||||||
XCODE_PATH=${XCODE_PATH:-}
|
|
||||||
if [ -d "$XCODE_PATH" ]; then
|
|
||||||
WITH_XCODE_PATH="--with-xcode-path=$XCODE_PATH"
|
|
||||||
else
|
|
||||||
if [ -z "${CONTINUOUS_INTEGRATION:-}" ]; then
|
|
||||||
WITH_XCODE_PATH=""
|
|
||||||
if [ -n "${XCODE_PATH}" ]; then
|
|
||||||
echo "XCode not found in the directory: ${XCODE_PATH}"
|
|
||||||
echo "default XCode will be used"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
if [ -z "${XCODE_PATH}" ]; then
|
|
||||||
echo "specify XCode via setting XCODE_PATH"
|
|
||||||
else
|
|
||||||
echo "XCode not found in the directory: ${XCODE_PATH}"
|
|
||||||
fi
|
|
||||||
do_exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
function do_configure {
|
|
||||||
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 \
|
|
||||||
$DISABLE_WARNINGS_AS_ERRORS \
|
|
||||||
$STATIC_CONF_ARGS \
|
|
||||||
$REPRODUCIBLE_BUILD_OPTS \
|
|
||||||
$WITH_ZIPPED_NATIVE_DEBUG_SYMBOLS \
|
|
||||||
$WITH_XCODE_PATH \
|
|
||||||
|| do_exit $?
|
|
||||||
}
|
|
||||||
|
|
||||||
function create_image_bundle {
|
|
||||||
__bundle_name=$1
|
|
||||||
__arch_name=$2
|
|
||||||
__modules_path=$3
|
|
||||||
__modules=$4
|
|
||||||
|
|
||||||
fastdebug_infix=''
|
|
||||||
__cds_opt=''
|
|
||||||
__cds_opt="--generate-cds-archive"
|
|
||||||
|
|
||||||
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 \
|
|
||||||
$__cds_opt --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
|
|
||||||
|
|
||||||
if [ "$bundle_type" == "jcef" ]; then
|
|
||||||
cat $JCEF_PATH/jcef.version >> "$JRE_CONTENTS/Home/release"
|
|
||||||
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
|
|
||||||
if [ "$bundle_type" == "jcef" ]; 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
|
|
||||||
fi
|
|
||||||
|
|
||||||
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" == "$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 CONF=$RELEASE_NAME JBR_API_JBR_VERSION=TEST || do_exit $?
|
|
||||||
[ -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
|
|
||||||
@@ -1,63 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
#immediately exit script with an error if a command fails
|
|
||||||
set -euo pipefail
|
|
||||||
[[ "${SCRIPT_VERBOSE:-}" == "1" ]] && set -x
|
|
||||||
|
|
||||||
APP_PATH=$1
|
|
||||||
|
|
||||||
if [[ -z "$APP_PATH" ]]; then
|
|
||||||
echo "Usage: $0 AppPath"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
if [[ ! -f "$APP_PATH" ]]; then
|
|
||||||
echo "AppName '$APP_PATH' does not exist or not a file"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
function log() {
|
|
||||||
echo "$(date '+[%H:%M:%S]') $*"
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
# check required parameters
|
|
||||||
: "${APPLE_ISSUER_ID}"
|
|
||||||
: "${APPLE_KEY_ID}"
|
|
||||||
: "${APPLE_PRIVATE_KEY}"
|
|
||||||
|
|
||||||
# shellcheck disable=SC2064
|
|
||||||
trap "rm -f \"$PWD/tmp_key\"" INT EXIT RETURN
|
|
||||||
echo -n "${APPLE_PRIVATE_KEY}" > tmp_key
|
|
||||||
|
|
||||||
log "Notarizing $APP_PATH..."
|
|
||||||
xcrun notarytool submit --key tmp_key --key-id "${APPLE_KEY_ID}" --issuer "${APPLE_ISSUER_ID}" "$APP_PATH" 2>&1 --wait| tee "notarytool.submit.out"
|
|
||||||
REQUEST_ID="$(grep -e " id: " "notarytool.submit.out" | grep -oE '([0-9a-f-]{36})'| head -n1)"
|
|
||||||
|
|
||||||
waitOutput=$(xcrun notarytool wait "$REQUEST_ID" --key tmp_key --key-id "${APPLE_KEY_ID}" --issuer "${APPLE_ISSUER_ID}" --timeout 6h)
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
log "Notarizing failed (wait command)"
|
|
||||||
echo "$waitOutput"
|
|
||||||
exit 1
|
|
||||||
else
|
|
||||||
echo "$waitOutput"
|
|
||||||
fi
|
|
||||||
|
|
||||||
logOutout=$(xcrun notarytool log "$REQUEST_ID" --key tmp_key --key-id "${APPLE_KEY_ID}" --issuer "${APPLE_ISSUER_ID}" developer_log.json)
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
log "Notarizing failed (log command)"
|
|
||||||
echo "$logOutout"
|
|
||||||
exit 1
|
|
||||||
else
|
|
||||||
echo "$logOutout"
|
|
||||||
fi
|
|
||||||
|
|
||||||
infoOUtput=$(xcrun notarytool info "$REQUEST_ID" --key tmp_key --key-id "${APPLE_KEY_ID}" --issuer "${APPLE_ISSUER_ID}")
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
log "Notarizing failed (info command)"
|
|
||||||
echo "$infoOUtput"
|
|
||||||
exit 1
|
|
||||||
else
|
|
||||||
echo "$infoOUtput"
|
|
||||||
fi
|
|
||||||
|
|
||||||
log "Notarizing finished"
|
|
||||||
@@ -1,41 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
SCRIPT_DIR="$(cd "$(dirname "$0")" >/dev/null && pwd)"
|
|
||||||
|
|
||||||
source "$SCRIPT_DIR/jetsign-common.sh" || exit 1
|
|
||||||
|
|
||||||
function isSigned() {
|
|
||||||
pkgutil --check-signature "$1" >/dev/null 2>&1 && grep -q "signed by a developer certificate" < <(pkgutil --check-signature "$1" 2>&1)
|
|
||||||
}
|
|
||||||
|
|
||||||
# second last argument is a path to be signed
|
|
||||||
pathToBeSigned="$(pwd)/${*:(-2):1}"
|
|
||||||
# last argument is a path to signed file
|
|
||||||
pathOut="$(pwd)/${*:(-1)}"
|
|
||||||
jetSignArgs=("${@:1:$#-2}")
|
|
||||||
if [[ ! -f "$pathToBeSigned" ]]; then
|
|
||||||
echo "$pathToBeSigned is missing or not a file"
|
|
||||||
exit 1
|
|
||||||
elif isSigned "$pathToBeSigned" && ! isForced "${jetSignArgs[@]}" ; then
|
|
||||||
echo "Already signed: $pathToBeSigned"
|
|
||||||
elif [[ "$JETSIGN_CLIENT" == "null" ]]; then
|
|
||||||
echo "JetSign client is missing, cannot proceed with signing"
|
|
||||||
exit 1
|
|
||||||
elif [[ "$pathToBeSigned" != *.pkg ]]; then
|
|
||||||
echo "$pathToBeSigned won't be signed, assumed not to be a macOS package"
|
|
||||||
else
|
|
||||||
if ! isSigned "$pathToBeSigned" ; then
|
|
||||||
echo "Unsigned macOS package: $pathToBeSigned"
|
|
||||||
fi
|
|
||||||
workDir=$(dirname "$pathToBeSigned")
|
|
||||||
pathSigned="$workDir/signed/${pathToBeSigned##*/}"
|
|
||||||
jetSignExtensions=$(jetSignExtensions "${jetSignArgs[@]}")
|
|
||||||
contentType=$(jetSignContentType "$pathToBeSigned")
|
|
||||||
(
|
|
||||||
cd "$workDir" || exit 1
|
|
||||||
"$JETSIGN_CLIENT" -log-format text -denoted-content-type "$contentType" -extensions "$jetSignExtensions" "$pathToBeSigned"
|
|
||||||
isSigned "$pathSigned"
|
|
||||||
rm -f "$pathOut"
|
|
||||||
mv "$pathSigned" "$pathOut"
|
|
||||||
rm -rf "$workDir/signed"
|
|
||||||
)
|
|
||||||
fi
|
|
||||||
@@ -1,241 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
#immediately exit script with an error if a command fails
|
|
||||||
set -euo pipefail
|
|
||||||
[[ "${SCRIPT_VERBOSE:-}" == "1" ]] && set -x
|
|
||||||
|
|
||||||
if [[ $# -lt 5 ]]; then
|
|
||||||
echo "Usage: $0 AppDirectory AppName BundleId CertificateID InstallerCertificateID"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
APPLICATION_PATH=$1
|
|
||||||
PKG_NAME=$2
|
|
||||||
BUNDLE_ID=$3
|
|
||||||
JB_DEVELOPER_CERT=$4
|
|
||||||
JB_INSTALLER_CERT=$5
|
|
||||||
|
|
||||||
SCRIPT_DIR="$(cd "$(dirname "$0")" >/dev/null && pwd)"
|
|
||||||
|
|
||||||
# Use JetBrains sign utility if it's available
|
|
||||||
if [[ "${JETSIGN_CLIENT:=}" == "null" ]] || [[ "$JETSIGN_CLIENT" == "" ]]; then
|
|
||||||
JB_SIGN=false
|
|
||||||
SIGN_UTILITY="codesign"
|
|
||||||
PRODUCTSIGN_UTILITY="productsign"
|
|
||||||
else
|
|
||||||
JB_SIGN=true
|
|
||||||
SIGN_UTILITY="$SCRIPT_DIR/codesign.sh"
|
|
||||||
PRODUCTSIGN_UTILITY="$SCRIPT_DIR/productsign.sh"
|
|
||||||
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]') $*"
|
|
||||||
}
|
|
||||||
|
|
||||||
# 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"; 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 sh -c '"$1" --timestamp -v -s "$2" --options=runtime --force --entitlements "$3" "$4" || exit 1' sh "$SIGN_UTILITY" "$JB_DEVELOPER_CERT" "$SCRIPT_DIR/entitlements.xml" {} \;
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
log "Signing JCEF libraries and executables..."
|
|
||||||
if [ -d "$APPLICATION_PATH/Contents/Frameworks" ]; then
|
|
||||||
find "$APPLICATION_PATH/Contents/Frameworks" \
|
|
||||||
-type f \( -name "*.dylib" -o -perm +111 \) \
|
|
||||||
-exec sh -c '"$1" --timestamp -v -s "$2" --options=runtime --force --entitlements "$3" "$4" || exit 1' sh "$SIGN_UTILITY" "$JB_DEVELOPER_CERT" "$SCRIPT_DIR/entitlements_jcef.xml" {} \;
|
|
||||||
fi
|
|
||||||
|
|
||||||
log "Signing jmod files"
|
|
||||||
JMODS_DIR="$APPLICATION_PATH/Contents/Home/jmods"
|
|
||||||
JMOD_EXE="$BOOT_JDK/bin/jmod"
|
|
||||||
if [ -d "$JMODS_DIR" ]; then
|
|
||||||
log "processing jmods"
|
|
||||||
|
|
||||||
for jmod_file in "$JMODS_DIR"/*.jmod; do
|
|
||||||
log "Processing $jmod_file"
|
|
||||||
|
|
||||||
TMP_DIR="$JMODS_DIR/tmp"
|
|
||||||
rm -rf "$TMP_DIR"
|
|
||||||
mkdir "$TMP_DIR"
|
|
||||||
|
|
||||||
log "Unzipping $jmod_file"
|
|
||||||
$JMOD_EXE extract --dir "$TMP_DIR" "$jmod_file" >/dev/null
|
|
||||||
|
|
||||||
log "Signing dylibs in $TMP_DIR"
|
|
||||||
find "$TMP_DIR" \
|
|
||||||
-type f \( -name "*.dylib" -o -name "*.so" -o -perm +111 -o -name jarsigner -o -name jdeps -o -name jpackageapplauncher -o -name jspawnhelper -o -name jar -o -name javap -o -name jdeprscan -o -name jfr -o -name rmiregistry -o -name java -o -name jhsdb -o -name jstatd -o -name jstatd -o -name jpackage -o -name keytool -o -name jmod -o -name jlink -o -name jimage -o -name jstack -o -name jcmd -o -name jps -o -name jmap -o -name jstat -o -name jinfo -o -name jshell -o -name jwebserver -o -name javac -o -name serialver -o -name jrunscript -o -name jdb -o -name jconsole -o -name javadoc \) \
|
|
||||||
-exec sh -c '"$1" --timestamp -v -s "$2" --options=runtime --force --entitlements "$3" "$4" || exit 1' sh "$SIGN_UTILITY" "$JB_DEVELOPER_CERT" "$SCRIPT_DIR/entitlements.xml" {} \;
|
|
||||||
|
|
||||||
log "Removing $jmod_file"
|
|
||||||
rm -f "$jmod_file"
|
|
||||||
cmd="$JMOD_EXE create --class-path $TMP_DIR/classes"
|
|
||||||
|
|
||||||
# Check each directory and add to the command if it exists
|
|
||||||
[ -d "$TMP_DIR/bin" ] && cmd="$cmd --cmds $TMP_DIR/bin"
|
|
||||||
[ -d "$TMP_DIR/conf" ] && cmd="$cmd --config $TMP_DIR/conf"
|
|
||||||
[ -d "$TMP_DIR/lib" ] && cmd="$cmd --libs $TMP_DIR/lib"
|
|
||||||
[ -d "$TMP_DIR/include" ] && cmd="$cmd --header-files $TMP_DIR/include"
|
|
||||||
[ -d "$TMP_DIR/legal" ] && cmd="$cmd --legal-notices $TMP_DIR/legal"
|
|
||||||
[ -d "$TMP_DIR/man" ] && cmd="$cmd --man-pages $TMP_DIR/man"
|
|
||||||
|
|
||||||
log "Creating jmod file"
|
|
||||||
log "$cmd"
|
|
||||||
# Add the output file
|
|
||||||
cmd="$cmd $jmod_file"
|
|
||||||
|
|
||||||
# Execute the command
|
|
||||||
eval $cmd
|
|
||||||
|
|
||||||
log "Removing $TMP_DIR"
|
|
||||||
rm -rf "$TMP_DIR"
|
|
||||||
done
|
|
||||||
|
|
||||||
log "Repack java.base.jmod with new hashes of modules"
|
|
||||||
hash_modules=$($JMOD_EXE describe $JMODS_DIR/java.base.jmod | grep hashes | awk '{print $2}' | tr '\n' '|' | sed s/\|$//) || exit $?
|
|
||||||
|
|
||||||
TMP_DIR="$JMODS_DIR/tmp"
|
|
||||||
rm -rf "$TMP_DIR"
|
|
||||||
mkdir "$TMP_DIR"
|
|
||||||
|
|
||||||
jmod_file="$JMODS_DIR/java.base.jmod"
|
|
||||||
log "Unzipping $jmod_file"
|
|
||||||
$JMOD_EXE extract --dir "$TMP_DIR" "$jmod_file" >/dev/null
|
|
||||||
|
|
||||||
log "Removing java.base.jmod"
|
|
||||||
rm -f "$jmod_file"
|
|
||||||
|
|
||||||
cmd="$JMOD_EXE create --class-path $TMP_DIR/classes --hash-modules \"$hash_modules\" --module-path $JMODS_DIR"
|
|
||||||
|
|
||||||
# Check each directory and add to the command if it exists
|
|
||||||
[ -d "$TMP_DIR/bin" ] && cmd="$cmd --cmds $TMP_DIR/bin"
|
|
||||||
[ -d "$TMP_DIR/conf" ] && cmd="$cmd --config $TMP_DIR/conf"
|
|
||||||
[ -d "$TMP_DIR/lib" ] && cmd="$cmd --libs $TMP_DIR/lib"
|
|
||||||
[ -d "$TMP_DIR/include" ] && cmd="$cmd --header-files $TMP_DIR/include"
|
|
||||||
[ -d "$TMP_DIR/legal" ] && cmd="$cmd --legal-notices $TMP_DIR/legal"
|
|
||||||
[ -d "$TMP_DIR/man" ] && cmd="$cmd --man-pages $TMP_DIR/man"
|
|
||||||
|
|
||||||
log "Creating jmod file"
|
|
||||||
log "$cmd"
|
|
||||||
# Add the output file
|
|
||||||
cmd="$cmd $jmod_file"
|
|
||||||
|
|
||||||
# Execute the command
|
|
||||||
eval $cmd
|
|
||||||
|
|
||||||
log "Removing $TMP_DIR"
|
|
||||||
rm -rf "$TMP_DIR"
|
|
||||||
else
|
|
||||||
echo "Directory '$JMODS_DIR' does not exist. Skipping signing of jmod files."
|
|
||||||
fi
|
|
||||||
|
|
||||||
log "Signing libraries in jars in $APPLICATION_PATH"
|
|
||||||
|
|
||||||
# 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 sh -c '"$1" --timestamp --force -v -s "$2" --options=runtime --entitlements "$3" "$4" || exit 1' sh "$SIGN_UTILITY" "$JB_DEVELOPER_CERT" "$SCRIPT_DIR/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..."
|
|
||||||
# shellcheck disable=SC2043
|
|
||||||
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 sh -c '"$1" --timestamp -v -s "$2" --options=runtime --force --entitlements "$3" "$4" || exit 1' sh "$SIGN_UTILITY" "$JB_DEVELOPER_CERT" "$SCRIPT_DIR/entitlements.xml" {} \;
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
log "Signing whole frameworks..."
|
|
||||||
# shellcheck disable=SC2043
|
|
||||||
if [ "$JB_SIGN" = true ]; then for f in \
|
|
||||||
"Contents/Frameworks/cef_server.app/Contents/Frameworks" "Contents/Frameworks"; do
|
|
||||||
if [ -d "$APPLICATION_PATH/$f" ]; then
|
|
||||||
find "$APPLICATION_PATH/$f" \( -name '*.framework' -o -name '*.app' \) -maxdepth 1 | while read -r line
|
|
||||||
do
|
|
||||||
log "Signing '$line':"
|
|
||||||
tar -pczf tmp-to-sign.tar.gz -C "$(dirname "$line")" "$(basename "$line")"
|
|
||||||
"$SIGN_UTILITY" --timestamp \
|
|
||||||
-v -s "$JB_DEVELOPER_CERT" --options=runtime \
|
|
||||||
--force \
|
|
||||||
--entitlements "$SCRIPT_DIR/entitlements_jcef.xml" tmp-to-sign.tar.gz || exit 1
|
|
||||||
rm -rf "$line"
|
|
||||||
tar -xzf tmp-to-sign.tar.gz --directory "$(dirname "$line")"
|
|
||||||
rm -f tmp-to-sign.tar.gz
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
done; fi
|
|
||||||
|
|
||||||
log "Checking framework signatures..."
|
|
||||||
|
|
||||||
if [ -d "$APPLICATION_PATH/Contents/Frameworks" ]; then
|
|
||||||
find "$APPLICATION_PATH/Contents/Frameworks" -name '*.framework' -maxdepth 1 | while read -r line
|
|
||||||
do
|
|
||||||
log "Checking '$line':"
|
|
||||||
codesign --verify --deep --strict --verbose=4 "$line"
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
log "Signing whole app..."
|
|
||||||
if [ "$JB_SIGN" = true ]; then
|
|
||||||
tar -pczf tmp-to-sign.tar.gz --exclude='man' -C "$(dirname "$APPLICATION_PATH")" "$(basename "$APPLICATION_PATH")"
|
|
||||||
"$SIGN_UTILITY" --timestamp \
|
|
||||||
-v -s "$JB_DEVELOPER_CERT" --options=runtime \
|
|
||||||
--force \
|
|
||||||
--entitlements "$SCRIPT_DIR/entitlements.xml" tmp-to-sign.tar.gz || exit 1
|
|
||||||
rm -rf "$APPLICATION_PATH"
|
|
||||||
tar -xzf tmp-to-sign.tar.gz --directory "$(dirname "$APPLICATION_PATH")"
|
|
||||||
rm -f tmp-to-sign.tar.gz
|
|
||||||
else
|
|
||||||
"$SIGN_UTILITY" --timestamp \
|
|
||||||
-v -s "$JB_DEVELOPER_CERT" --options=runtime \
|
|
||||||
--force \
|
|
||||||
--entitlements "$SCRIPT_DIR/entitlements.xml" "$APPLICATION_PATH" || exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
BUILD_NAME="$(basename "$APPLICATION_PATH")"
|
|
||||||
|
|
||||||
log "Creating $PKG_NAME..."
|
|
||||||
rm -rf "$PKG_NAME"
|
|
||||||
|
|
||||||
mkdir -p unsigned
|
|
||||||
pkgbuild --identifier $BUNDLE_ID --root $APPLICATION_PATH \
|
|
||||||
--install-location /Library/Java/JavaVirtualMachines/${BUILD_NAME} unsigned/${PKG_NAME}
|
|
||||||
log "Signing $PKG_NAME..."
|
|
||||||
"$PRODUCTSIGN_UTILITY" --timestamp --sign "$JB_INSTALLER_CERT" unsigned/${PKG_NAME} ${PKG_NAME}
|
|
||||||
|
|
||||||
log "Verifying java is not broken"
|
|
||||||
find "$APPLICATION_PATH" \
|
|
||||||
-type f -name 'java' -perm +111 -exec {} -version \;
|
|
||||||
@@ -1,156 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
#immediately exit script with an error if a command fails
|
|
||||||
set -euo pipefail
|
|
||||||
[[ "${SCRIPT_VERBOSE:-}" == "1" ]] && 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
|
|
||||||
|
|
||||||
SCRIPT_DIR="$(cd "$(dirname "$0")" >/dev/null && pwd)"
|
|
||||||
|
|
||||||
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"
|
|
||||||
|
|
||||||
log "$INPUT_FILE extracted and removed"
|
|
||||||
|
|
||||||
APP_NAME=$(basename "$INPUT_FILE" | awk -F".tar" '{ print $1 }')
|
|
||||||
PKG_NAME="$APP_NAME.pkg"
|
|
||||||
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
|
|
||||||
|
|
||||||
if [[ "${JETSIGN_CLIENT:=}" == "null" ]] || [[ "$JETSIGN_CLIENT" == "" ]]; then
|
|
||||||
log "Unlocking keychain..."
|
|
||||||
# Make sure *.p12 is imported into local KeyChain
|
|
||||||
security unlock-keychain -p "$PASSWORD" "/Users/$USERNAME/Library/Keychains/login.keychain"
|
|
||||||
fi
|
|
||||||
|
|
||||||
attempt=1
|
|
||||||
limit=3
|
|
||||||
set +e
|
|
||||||
while [[ $attempt -le $limit ]]; do
|
|
||||||
log "Signing (attempt $attempt) $APPLICATION_PATH ..."
|
|
||||||
"$SCRIPT_DIR/sign.sh" "$APPLICATION_PATH" "$PKG_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..."
|
|
||||||
"$SCRIPT_DIR/notarize.sh" "$PKG_NAME"
|
|
||||||
|
|
||||||
log "Stapling..."
|
|
||||||
appStaplerOutput=$(xcrun stapler staple "$APPLICATION_PATH")
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
log "Stapling application failed"
|
|
||||||
echo "$appStaplerOutput"
|
|
||||||
exit 1
|
|
||||||
else
|
|
||||||
echo "$appStaplerOutput"
|
|
||||||
fi
|
|
||||||
|
|
||||||
log "Stapling package..."
|
|
||||||
pkgStaplerOutput=$(xcrun stapler staple "$PKG_NAME")
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
log "Stapling package failed"
|
|
||||||
echo "$pkgStaplerOutput"
|
|
||||||
exit 1
|
|
||||||
else
|
|
||||||
echo "$pkgStaplerOutput"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Verify stapling
|
|
||||||
log "Verifying stapling..."
|
|
||||||
if ! stapler validate "$APPLICATION_PATH"; then
|
|
||||||
log "Stapling verification failed for application"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
if ! stapler validate "$PKG_NAME"; then
|
|
||||||
log "Stapling verification failed for package"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
log "Notarization disabled"
|
|
||||||
log "Stapling disabled"
|
|
||||||
fi
|
|
||||||
|
|
||||||
log "Zipping $BUILD_NAME to $INPUT_FILE ..."
|
|
||||||
(
|
|
||||||
if [[ "$APPLICATION_PATH" != "$EXPLODED/$BUILD_NAME" ]]; then
|
|
||||||
mv $APPLICATION_PATH $EXPLODED/$BUILD_NAME
|
|
||||||
else
|
|
||||||
echo "No move, source == destination: $APPLICATION_PATH"
|
|
||||||
fi
|
|
||||||
|
|
||||||
tar -pczvf $INPUT_FILE --exclude='man' -C $EXPLODED $BUILD_NAME
|
|
||||||
log "Finished zipping"
|
|
||||||
)
|
|
||||||
rm -rf "$EXPLODED"
|
|
||||||
log "Done"
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
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;
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
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;
|
|
||||||
@@ -1,267 +0,0 @@
|
|||||||
prog.verbose=disabled
|
|
||||||
prog.printresults=enabled
|
|
||||||
global.env.outputwidth=640
|
|
||||||
global.env.outputheight=480
|
|
||||||
global.env.runcount=5
|
|
||||||
global.env.repcount=0
|
|
||||||
global.env.testtime=2500
|
|
||||||
global.results.workunits=units
|
|
||||||
global.results.timeunits=sec
|
|
||||||
global.results.ratio=unitspersec
|
|
||||||
global.dest.offscreen=disabled
|
|
||||||
global.dest.frame.defaultframe=enabled
|
|
||||||
global.dest.frame.transframe=disabled
|
|
||||||
global.dest.frame.shapedframe=disabled
|
|
||||||
global.dest.frame.shapedtransframe=disabled
|
|
||||||
global.dest.compatimg.compatimg=disabled
|
|
||||||
global.dest.compatimg.opqcompatimg=disabled
|
|
||||||
global.dest.compatimg.bmcompatimg=disabled
|
|
||||||
global.dest.compatimg.transcompatimg=disabled
|
|
||||||
global.dest.volimg.volimg=disabled
|
|
||||||
global.dest.volimg.opqvolimg=disabled
|
|
||||||
global.dest.volimg.bmvolimg=disabled
|
|
||||||
global.dest.volimg.transvolimg=disabled
|
|
||||||
global.dest.bufimg.IntXrgb=disabled
|
|
||||||
global.dest.bufimg.IntArgb=disabled
|
|
||||||
global.dest.bufimg.IntArgbPre=disabled
|
|
||||||
global.dest.bufimg.3ByteBgr=disabled
|
|
||||||
global.dest.bufimg.ByteIndexed=disabled
|
|
||||||
global.dest.bufimg.ByteGray=disabled
|
|
||||||
global.dest.bufimg.4ByteAbgr=disabled
|
|
||||||
global.dest.bufimg.4ByteAbgrPre=disabled
|
|
||||||
global.dest.bufimg.custom=disabled
|
|
||||||
graphics.opts.anim=2
|
|
||||||
graphics.opts.sizes=250
|
|
||||||
graphics.opts.alpharule=SrcOver
|
|
||||||
graphics.opts.transform=ident
|
|
||||||
graphics.opts.extraalpha=Off
|
|
||||||
graphics.opts.xormode=Off
|
|
||||||
graphics.opts.clip=Off
|
|
||||||
graphics.opts.renderhint=Default
|
|
||||||
graphics.render.opts.paint=random
|
|
||||||
graphics.render.opts.alphacolor=Off
|
|
||||||
graphics.render.opts.antialias=On
|
|
||||||
graphics.render.opts.stroke=width1
|
|
||||||
graphics.render.tests.drawLine=disabled
|
|
||||||
graphics.render.tests.drawLineHoriz=disabled
|
|
||||||
graphics.render.tests.drawLineVert=disabled
|
|
||||||
graphics.render.tests.fillRect=disabled
|
|
||||||
graphics.render.tests.drawRect=disabled
|
|
||||||
graphics.render.tests.fillOval=disabled
|
|
||||||
graphics.render.tests.drawOval=disabled
|
|
||||||
graphics.render.tests.fillPoly=disabled
|
|
||||||
graphics.render.tests.drawPoly=enabled
|
|
||||||
graphics.render.tests.shape.fillCubic=disabled
|
|
||||||
graphics.render.tests.shape.drawCubic=disabled
|
|
||||||
graphics.render.tests.shape.fillEllipse2D=disabled
|
|
||||||
graphics.render.tests.shape.drawEllipse2D=disabled
|
|
||||||
graphics.imaging.src.offscr.opaque=disabled
|
|
||||||
graphics.imaging.src.offscr.bitmask=disabled
|
|
||||||
graphics.imaging.src.offscr.translucent=disabled
|
|
||||||
graphics.imaging.src.opqcompatimg.opaque=disabled
|
|
||||||
graphics.imaging.src.opqcompatimg.bitmask=disabled
|
|
||||||
graphics.imaging.src.opqcompatimg.translucent=disabled
|
|
||||||
graphics.imaging.src.bmcompatimg.opaque=disabled
|
|
||||||
graphics.imaging.src.bmcompatimg.bitmask=disabled
|
|
||||||
graphics.imaging.src.bmcompatimg.translucent=disabled
|
|
||||||
graphics.imaging.src.transcompatimg.opaque=disabled
|
|
||||||
graphics.imaging.src.transcompatimg.bitmask=disabled
|
|
||||||
graphics.imaging.src.transcompatimg.translucent=disabled
|
|
||||||
graphics.imaging.src.opqvolimg.opaque=disabled
|
|
||||||
graphics.imaging.src.opqvolimg.bitmask=disabled
|
|
||||||
graphics.imaging.src.opqvolimg.translucent=disabled
|
|
||||||
graphics.imaging.src.bmvolimg.opaque=disabled
|
|
||||||
graphics.imaging.src.bmvolimg.bitmask=disabled
|
|
||||||
graphics.imaging.src.bmvolimg.translucent=disabled
|
|
||||||
graphics.imaging.src.transvolimg.opaque=disabled
|
|
||||||
graphics.imaging.src.transvolimg.bitmask=disabled
|
|
||||||
graphics.imaging.src.transvolimg.translucent=disabled
|
|
||||||
graphics.imaging.src.bufimg.IntXrgb.opaque=disabled
|
|
||||||
graphics.imaging.src.bufimg.IntXrgb.bitmask=disabled
|
|
||||||
graphics.imaging.src.bufimg.IntXrgb.translucent=disabled
|
|
||||||
graphics.imaging.src.bufimg.IntArgb.opaque=disabled
|
|
||||||
graphics.imaging.src.bufimg.IntArgb.bitmask=disabled
|
|
||||||
graphics.imaging.src.bufimg.IntArgb.translucent=disabled
|
|
||||||
graphics.imaging.src.bufimg.IntArgbPre.opaque=disabled
|
|
||||||
graphics.imaging.src.bufimg.IntArgbPre.bitmask=disabled
|
|
||||||
graphics.imaging.src.bufimg.IntArgbPre.translucent=disabled
|
|
||||||
graphics.imaging.src.bufimg.ByteGray.opaque=disabled
|
|
||||||
graphics.imaging.src.bufimg.ByteGray.bitmask=disabled
|
|
||||||
graphics.imaging.src.bufimg.ByteGray.translucent=disabled
|
|
||||||
graphics.imaging.src.bufimg.3ByteBgr.opaque=disabled
|
|
||||||
graphics.imaging.src.bufimg.3ByteBgr.bitmask=disabled
|
|
||||||
graphics.imaging.src.bufimg.3ByteBgr.translucent=disabled
|
|
||||||
graphics.imaging.src.bufimg.4ByteAbgr.opaque=disabled
|
|
||||||
graphics.imaging.src.bufimg.4ByteAbgr.bitmask=disabled
|
|
||||||
graphics.imaging.src.bufimg.4ByteAbgr.translucent=disabled
|
|
||||||
graphics.imaging.src.bufimg.4ByteAbgrPre.opaque=disabled
|
|
||||||
graphics.imaging.src.bufimg.4ByteAbgrPre.bitmask=disabled
|
|
||||||
graphics.imaging.src.bufimg.4ByteAbgrPre.translucent=disabled
|
|
||||||
graphics.imaging.src.bufimg.ByteIndexedBm.opaque=disabled
|
|
||||||
graphics.imaging.src.bufimg.ByteIndexedBm.bitmask=disabled
|
|
||||||
graphics.imaging.src.bufimg.ByteIndexedBm.translucent=disabled
|
|
||||||
graphics.imaging.src.bufimg.unmanagedIntXrgb.opaque=disabled
|
|
||||||
graphics.imaging.src.bufimg.unmanagedIntXrgb.bitmask=disabled
|
|
||||||
graphics.imaging.src.bufimg.unmanagedIntXrgb.translucent=disabled
|
|
||||||
graphics.imaging.src.bufimg.unmanagedIntArgb.opaque=disabled
|
|
||||||
graphics.imaging.src.bufimg.unmanagedIntArgb.bitmask=disabled
|
|
||||||
graphics.imaging.src.bufimg.unmanagedIntArgb.translucent=disabled
|
|
||||||
graphics.imaging.src.bufimg.unmanagedIntArgbPre.opaque=disabled
|
|
||||||
graphics.imaging.src.bufimg.unmanagedIntArgbPre.bitmask=disabled
|
|
||||||
graphics.imaging.src.bufimg.unmanagedIntArgbPre.translucent=disabled
|
|
||||||
graphics.imaging.src.bufimg.unmanaged3ByteBgr.opaque=disabled
|
|
||||||
graphics.imaging.src.bufimg.unmanaged3ByteBgr.bitmask=disabled
|
|
||||||
graphics.imaging.src.bufimg.unmanaged3ByteBgr.translucent=disabled
|
|
||||||
graphics.imaging.benchmarks.opts.interpolation=Nearest neighbor
|
|
||||||
graphics.imaging.benchmarks.opts.touchsrc=Off
|
|
||||||
graphics.imaging.benchmarks.tests.drawimage=disabled
|
|
||||||
graphics.imaging.benchmarks.tests.drawimagebg=disabled
|
|
||||||
graphics.imaging.benchmarks.tests.drawimagescaleup=disabled
|
|
||||||
graphics.imaging.benchmarks.tests.drawimagescaledown=disabled
|
|
||||||
graphics.imaging.benchmarks.tests.drawimagescalesplit=disabled
|
|
||||||
graphics.imaging.benchmarks.tests.drawimagetxform=disabled
|
|
||||||
graphics.imaging.imageops.opts.op=convolve3x3zero
|
|
||||||
graphics.imaging.imageops.tests.graphics2d.drawimageop=disabled
|
|
||||||
graphics.imaging.imageops.tests.bufimgop.filternull=disabled
|
|
||||||
graphics.imaging.imageops.tests.bufimgop.filtercached=disabled
|
|
||||||
graphics.imaging.imageops.tests.rasterop.filternull=disabled
|
|
||||||
graphics.imaging.imageops.tests.rasterop.filtercached=disabled
|
|
||||||
graphics.misc.copytests.copyAreaVert=disabled
|
|
||||||
graphics.misc.copytests.copyAreaHoriz=disabled
|
|
||||||
graphics.misc.copytests.copyAreaDiag=disabled
|
|
||||||
pixel.opts.renderto=Off
|
|
||||||
pixel.opts.renderfrom=Off
|
|
||||||
pixel.src.1BitBinary=disabled
|
|
||||||
pixel.src.2BitBinary=disabled
|
|
||||||
pixel.src.4BitBinary=disabled
|
|
||||||
pixel.src.ByteIndexed=disabled
|
|
||||||
pixel.src.ByteGray=disabled
|
|
||||||
pixel.src.Short555=disabled
|
|
||||||
pixel.src.Short565=disabled
|
|
||||||
pixel.src.ShortGray=disabled
|
|
||||||
pixel.src.3ByteBgr=disabled
|
|
||||||
pixel.src.4ByteAbgr=disabled
|
|
||||||
pixel.src.IntXrgb=disabled
|
|
||||||
pixel.src.IntXbgr=disabled
|
|
||||||
pixel.src.IntArgb=disabled
|
|
||||||
pixel.bimgtests.getrgb=disabled
|
|
||||||
pixel.bimgtests.setrgb=disabled
|
|
||||||
pixel.rastests.getdataelem=disabled
|
|
||||||
pixel.rastests.setdataelem=disabled
|
|
||||||
pixel.rastests.getpixel=disabled
|
|
||||||
pixel.rastests.setpixel=disabled
|
|
||||||
pixel.dbtests.getelem=disabled
|
|
||||||
pixel.dbtests.setelem=disabled
|
|
||||||
text.opts.data.tlength=16
|
|
||||||
text.opts.data.tscript=english
|
|
||||||
text.opts.font.fname=serif,physical
|
|
||||||
text.opts.font.fstyle=0
|
|
||||||
text.opts.font.fsize=13.0
|
|
||||||
text.opts.font.ftx=Identity
|
|
||||||
text.opts.graphics.textaa=Off
|
|
||||||
text.opts.graphics.tfm=Off
|
|
||||||
text.opts.graphics.gaa=Off
|
|
||||||
text.opts.graphics.gtx=Identity
|
|
||||||
text.opts.advopts.gvstyle=0
|
|
||||||
text.opts.advopts.tlruns=1
|
|
||||||
text.opts.advopts.maptype=FONT
|
|
||||||
text.Rendering.tests.drawString=disabled
|
|
||||||
text.Rendering.tests.drawChars=disabled
|
|
||||||
text.Rendering.tests.drawBytes=disabled
|
|
||||||
text.Rendering.tests.drawGlyphVectors=disabled
|
|
||||||
text.Rendering.tests.drawTextLayout=disabled
|
|
||||||
text.Measuring.tests.stringWidth=disabled
|
|
||||||
text.Measuring.tests.stringBounds=disabled
|
|
||||||
text.Measuring.tests.charsWidth=disabled
|
|
||||||
text.Measuring.tests.charsBounds=disabled
|
|
||||||
text.Measuring.tests.fontcandisplay=disabled
|
|
||||||
text.Measuring.tests.gvWidth=disabled
|
|
||||||
text.Measuring.tests.gvLogicalBounds=disabled
|
|
||||||
text.Measuring.tests.gvVisualBounds=disabled
|
|
||||||
text.Measuring.tests.gvPixelBounds=disabled
|
|
||||||
text.Measuring.tests.gvOutline=disabled
|
|
||||||
text.Measuring.tests.gvGlyphLogicalBounds=disabled
|
|
||||||
text.Measuring.tests.gvGlyphVisualBounds=disabled
|
|
||||||
text.Measuring.tests.gvGlyphPixelBounds=disabled
|
|
||||||
text.Measuring.tests.gvGlyphOutline=disabled
|
|
||||||
text.Measuring.tests.gvGlyphTransform=disabled
|
|
||||||
text.Measuring.tests.gvGlyphMetrics=disabled
|
|
||||||
text.Measuring.tests.tlAdvance=disabled
|
|
||||||
text.Measuring.tests.tlAscent=disabled
|
|
||||||
text.Measuring.tests.tlBounds=disabled
|
|
||||||
text.Measuring.tests.tlGetCaretInfo=disabled
|
|
||||||
text.Measuring.tests.tlGetNextHit=disabled
|
|
||||||
text.Measuring.tests.tlGetCaretShape=disabled
|
|
||||||
text.Measuring.tests.tlGetLogicalHighlightShape=disabled
|
|
||||||
text.Measuring.tests.tlHitTest=disabled
|
|
||||||
text.Measuring.tests.tlOutline=disabled
|
|
||||||
text.construction.tests.gvfromfontstring=disabled
|
|
||||||
text.construction.tests.gvfromfontchars=disabled
|
|
||||||
text.construction.tests.gvfromfontci=disabled
|
|
||||||
text.construction.tests.gvfromfontglyphs=disabled
|
|
||||||
text.construction.tests.gvfromfontlayout=disabled
|
|
||||||
text.construction.tests.tlfromfont=disabled
|
|
||||||
text.construction.tests.tlfrommap=disabled
|
|
||||||
imageio.opts.size=250
|
|
||||||
imageio.opts.content=photo
|
|
||||||
imageio.input.opts.general.source.file=disabled
|
|
||||||
imageio.input.opts.general.source.url=disabled
|
|
||||||
imageio.input.opts.general.source.byteArray=disabled
|
|
||||||
imageio.input.opts.imageio.useCache=Off
|
|
||||||
imageio.input.image.toolkit.opts.format=
|
|
||||||
imageio.input.image.toolkit.tests.createImage=disabled
|
|
||||||
imageio.input.image.imageio.opts.format=
|
|
||||||
imageio.input.image.imageio.tests.imageioRead=disabled
|
|
||||||
imageio.input.image.imageio.reader.opts.seekForwardOnly=On
|
|
||||||
imageio.input.image.imageio.reader.opts.ignoreMetadata=On
|
|
||||||
imageio.input.image.imageio.reader.opts.installListener=Off
|
|
||||||
imageio.input.image.imageio.reader.tests.read=disabled
|
|
||||||
imageio.input.image.imageio.reader.tests.getImageMetadata=disabled
|
|
||||||
imageio.input.stream.tests.construct=disabled
|
|
||||||
imageio.input.stream.tests.read=disabled
|
|
||||||
imageio.input.stream.tests.readByteArray=disabled
|
|
||||||
imageio.input.stream.tests.readFullyByteArray=disabled
|
|
||||||
imageio.input.stream.tests.readBit=disabled
|
|
||||||
imageio.input.stream.tests.readByte=disabled
|
|
||||||
imageio.input.stream.tests.readUnsignedByte=disabled
|
|
||||||
imageio.input.stream.tests.readShort=disabled
|
|
||||||
imageio.input.stream.tests.readUnsignedShort=disabled
|
|
||||||
imageio.input.stream.tests.readInt=disabled
|
|
||||||
imageio.input.stream.tests.readUnsignedInt=disabled
|
|
||||||
imageio.input.stream.tests.readFloat=disabled
|
|
||||||
imageio.input.stream.tests.readLong=disabled
|
|
||||||
imageio.input.stream.tests.readDouble=disabled
|
|
||||||
imageio.input.stream.tests.skipBytes=disabled
|
|
||||||
imageio.output.opts.general.dest.file=disabled
|
|
||||||
imageio.output.opts.general.dest.byteArray=disabled
|
|
||||||
imageio.output.opts.imageio.useCache=Off
|
|
||||||
imageio.output.image.imageio.opts.format=
|
|
||||||
imageio.output.image.imageio.tests.imageioWrite=disabled
|
|
||||||
imageio.output.image.imageio.writer.opts.installListener=Off
|
|
||||||
imageio.output.image.imageio.writer.tests.write=disabled
|
|
||||||
imageio.output.stream.tests.construct=disabled
|
|
||||||
imageio.output.stream.tests.write=disabled
|
|
||||||
imageio.output.stream.tests.writeByteArray=disabled
|
|
||||||
imageio.output.stream.tests.writeBit=disabled
|
|
||||||
imageio.output.stream.tests.writeByte=disabled
|
|
||||||
imageio.output.stream.tests.writeShort=disabled
|
|
||||||
imageio.output.stream.tests.writeInt=disabled
|
|
||||||
imageio.output.stream.tests.writeFloat=disabled
|
|
||||||
imageio.output.stream.tests.writeLong=disabled
|
|
||||||
imageio.output.stream.tests.writeDouble=disabled
|
|
||||||
cmm.opts.profiles=1001
|
|
||||||
cmm.colorconv.data.fromRGB=disabled
|
|
||||||
cmm.colorconv.data.toRGB=disabled
|
|
||||||
cmm.colorconv.data.fromCIEXYZ=disabled
|
|
||||||
cmm.colorconv.data.toCIEXYZ=disabled
|
|
||||||
cmm.colorconv.ccop.ccopOptions.size=250
|
|
||||||
cmm.colorconv.ccop.ccopOptions.content=photo
|
|
||||||
cmm.colorconv.ccop.ccopOptions.srcType=INT_RGB
|
|
||||||
cmm.colorconv.ccop.ccopOptions.dstType=INT_RGB
|
|
||||||
cmm.colorconv.ccop.op_img=disabled
|
|
||||||
cmm.colorconv.ccop.op_rst=disabled
|
|
||||||
cmm.colorconv.ccop.op_draw=disabled
|
|
||||||
cmm.colorconv.embed.embedOptions.Images=512x512
|
|
||||||
cmm.colorconv.embed.embd_img_read=disabled
|
|
||||||
cmm.profiles.getHeader=disabled
|
|
||||||
cmm.profiles.getNumComponents=disabled
|
|
||||||
@@ -1,267 +0,0 @@
|
|||||||
prog.verbose=disabled
|
|
||||||
prog.printresults=enabled
|
|
||||||
global.env.outputwidth=640
|
|
||||||
global.env.outputheight=480
|
|
||||||
global.env.runcount=5
|
|
||||||
global.env.repcount=0
|
|
||||||
global.env.testtime=2500
|
|
||||||
global.results.workunits=units
|
|
||||||
global.results.timeunits=sec
|
|
||||||
global.results.ratio=unitspersec
|
|
||||||
global.dest.offscreen=disabled
|
|
||||||
global.dest.frame.defaultframe=enabled
|
|
||||||
global.dest.frame.transframe=disabled
|
|
||||||
global.dest.frame.shapedframe=disabled
|
|
||||||
global.dest.frame.shapedtransframe=disabled
|
|
||||||
global.dest.compatimg.compatimg=disabled
|
|
||||||
global.dest.compatimg.opqcompatimg=disabled
|
|
||||||
global.dest.compatimg.bmcompatimg=disabled
|
|
||||||
global.dest.compatimg.transcompatimg=disabled
|
|
||||||
global.dest.volimg.volimg=disabled
|
|
||||||
global.dest.volimg.opqvolimg=disabled
|
|
||||||
global.dest.volimg.bmvolimg=disabled
|
|
||||||
global.dest.volimg.transvolimg=disabled
|
|
||||||
global.dest.bufimg.IntXrgb=disabled
|
|
||||||
global.dest.bufimg.IntArgb=disabled
|
|
||||||
global.dest.bufimg.IntArgbPre=disabled
|
|
||||||
global.dest.bufimg.3ByteBgr=disabled
|
|
||||||
global.dest.bufimg.ByteIndexed=disabled
|
|
||||||
global.dest.bufimg.ByteGray=disabled
|
|
||||||
global.dest.bufimg.4ByteAbgr=disabled
|
|
||||||
global.dest.bufimg.4ByteAbgrPre=disabled
|
|
||||||
global.dest.bufimg.custom=disabled
|
|
||||||
graphics.opts.anim=2
|
|
||||||
graphics.opts.sizes=250
|
|
||||||
graphics.opts.alpharule=SrcOver
|
|
||||||
graphics.opts.transform=ident
|
|
||||||
graphics.opts.extraalpha=Off
|
|
||||||
graphics.opts.xormode=Off
|
|
||||||
graphics.opts.clip=Off
|
|
||||||
graphics.opts.renderhint=Default
|
|
||||||
graphics.render.opts.paint=random
|
|
||||||
graphics.render.opts.alphacolor=Off
|
|
||||||
graphics.render.opts.antialias=Off
|
|
||||||
graphics.render.opts.stroke=width1
|
|
||||||
graphics.render.tests.drawLine=disabled
|
|
||||||
graphics.render.tests.drawLineHoriz=disabled
|
|
||||||
graphics.render.tests.drawLineVert=disabled
|
|
||||||
graphics.render.tests.fillRect=disabled
|
|
||||||
graphics.render.tests.drawRect=disabled
|
|
||||||
graphics.render.tests.fillOval=disabled
|
|
||||||
graphics.render.tests.drawOval=disabled
|
|
||||||
graphics.render.tests.fillPoly=disabled
|
|
||||||
graphics.render.tests.drawPoly=enabled
|
|
||||||
graphics.render.tests.shape.fillCubic=disabled
|
|
||||||
graphics.render.tests.shape.drawCubic=disabled
|
|
||||||
graphics.render.tests.shape.fillEllipse2D=disabled
|
|
||||||
graphics.render.tests.shape.drawEllipse2D=disabled
|
|
||||||
graphics.imaging.src.offscr.opaque=disabled
|
|
||||||
graphics.imaging.src.offscr.bitmask=disabled
|
|
||||||
graphics.imaging.src.offscr.translucent=disabled
|
|
||||||
graphics.imaging.src.opqcompatimg.opaque=disabled
|
|
||||||
graphics.imaging.src.opqcompatimg.bitmask=disabled
|
|
||||||
graphics.imaging.src.opqcompatimg.translucent=disabled
|
|
||||||
graphics.imaging.src.bmcompatimg.opaque=disabled
|
|
||||||
graphics.imaging.src.bmcompatimg.bitmask=disabled
|
|
||||||
graphics.imaging.src.bmcompatimg.translucent=disabled
|
|
||||||
graphics.imaging.src.transcompatimg.opaque=disabled
|
|
||||||
graphics.imaging.src.transcompatimg.bitmask=disabled
|
|
||||||
graphics.imaging.src.transcompatimg.translucent=disabled
|
|
||||||
graphics.imaging.src.opqvolimg.opaque=disabled
|
|
||||||
graphics.imaging.src.opqvolimg.bitmask=disabled
|
|
||||||
graphics.imaging.src.opqvolimg.translucent=disabled
|
|
||||||
graphics.imaging.src.bmvolimg.opaque=disabled
|
|
||||||
graphics.imaging.src.bmvolimg.bitmask=disabled
|
|
||||||
graphics.imaging.src.bmvolimg.translucent=disabled
|
|
||||||
graphics.imaging.src.transvolimg.opaque=disabled
|
|
||||||
graphics.imaging.src.transvolimg.bitmask=disabled
|
|
||||||
graphics.imaging.src.transvolimg.translucent=disabled
|
|
||||||
graphics.imaging.src.bufimg.IntXrgb.opaque=disabled
|
|
||||||
graphics.imaging.src.bufimg.IntXrgb.bitmask=disabled
|
|
||||||
graphics.imaging.src.bufimg.IntXrgb.translucent=disabled
|
|
||||||
graphics.imaging.src.bufimg.IntArgb.opaque=disabled
|
|
||||||
graphics.imaging.src.bufimg.IntArgb.bitmask=disabled
|
|
||||||
graphics.imaging.src.bufimg.IntArgb.translucent=disabled
|
|
||||||
graphics.imaging.src.bufimg.IntArgbPre.opaque=disabled
|
|
||||||
graphics.imaging.src.bufimg.IntArgbPre.bitmask=disabled
|
|
||||||
graphics.imaging.src.bufimg.IntArgbPre.translucent=disabled
|
|
||||||
graphics.imaging.src.bufimg.ByteGray.opaque=disabled
|
|
||||||
graphics.imaging.src.bufimg.ByteGray.bitmask=disabled
|
|
||||||
graphics.imaging.src.bufimg.ByteGray.translucent=disabled
|
|
||||||
graphics.imaging.src.bufimg.3ByteBgr.opaque=disabled
|
|
||||||
graphics.imaging.src.bufimg.3ByteBgr.bitmask=disabled
|
|
||||||
graphics.imaging.src.bufimg.3ByteBgr.translucent=disabled
|
|
||||||
graphics.imaging.src.bufimg.4ByteAbgr.opaque=disabled
|
|
||||||
graphics.imaging.src.bufimg.4ByteAbgr.bitmask=disabled
|
|
||||||
graphics.imaging.src.bufimg.4ByteAbgr.translucent=disabled
|
|
||||||
graphics.imaging.src.bufimg.4ByteAbgrPre.opaque=disabled
|
|
||||||
graphics.imaging.src.bufimg.4ByteAbgrPre.bitmask=disabled
|
|
||||||
graphics.imaging.src.bufimg.4ByteAbgrPre.translucent=disabled
|
|
||||||
graphics.imaging.src.bufimg.ByteIndexedBm.opaque=disabled
|
|
||||||
graphics.imaging.src.bufimg.ByteIndexedBm.bitmask=disabled
|
|
||||||
graphics.imaging.src.bufimg.ByteIndexedBm.translucent=disabled
|
|
||||||
graphics.imaging.src.bufimg.unmanagedIntXrgb.opaque=disabled
|
|
||||||
graphics.imaging.src.bufimg.unmanagedIntXrgb.bitmask=disabled
|
|
||||||
graphics.imaging.src.bufimg.unmanagedIntXrgb.translucent=disabled
|
|
||||||
graphics.imaging.src.bufimg.unmanagedIntArgb.opaque=disabled
|
|
||||||
graphics.imaging.src.bufimg.unmanagedIntArgb.bitmask=disabled
|
|
||||||
graphics.imaging.src.bufimg.unmanagedIntArgb.translucent=disabled
|
|
||||||
graphics.imaging.src.bufimg.unmanagedIntArgbPre.opaque=disabled
|
|
||||||
graphics.imaging.src.bufimg.unmanagedIntArgbPre.bitmask=disabled
|
|
||||||
graphics.imaging.src.bufimg.unmanagedIntArgbPre.translucent=disabled
|
|
||||||
graphics.imaging.src.bufimg.unmanaged3ByteBgr.opaque=disabled
|
|
||||||
graphics.imaging.src.bufimg.unmanaged3ByteBgr.bitmask=disabled
|
|
||||||
graphics.imaging.src.bufimg.unmanaged3ByteBgr.translucent=disabled
|
|
||||||
graphics.imaging.benchmarks.opts.interpolation=Nearest neighbor
|
|
||||||
graphics.imaging.benchmarks.opts.touchsrc=Off
|
|
||||||
graphics.imaging.benchmarks.tests.drawimage=disabled
|
|
||||||
graphics.imaging.benchmarks.tests.drawimagebg=disabled
|
|
||||||
graphics.imaging.benchmarks.tests.drawimagescaleup=disabled
|
|
||||||
graphics.imaging.benchmarks.tests.drawimagescaledown=disabled
|
|
||||||
graphics.imaging.benchmarks.tests.drawimagescalesplit=disabled
|
|
||||||
graphics.imaging.benchmarks.tests.drawimagetxform=disabled
|
|
||||||
graphics.imaging.imageops.opts.op=convolve3x3zero
|
|
||||||
graphics.imaging.imageops.tests.graphics2d.drawimageop=disabled
|
|
||||||
graphics.imaging.imageops.tests.bufimgop.filternull=disabled
|
|
||||||
graphics.imaging.imageops.tests.bufimgop.filtercached=disabled
|
|
||||||
graphics.imaging.imageops.tests.rasterop.filternull=disabled
|
|
||||||
graphics.imaging.imageops.tests.rasterop.filtercached=disabled
|
|
||||||
graphics.misc.copytests.copyAreaVert=disabled
|
|
||||||
graphics.misc.copytests.copyAreaHoriz=disabled
|
|
||||||
graphics.misc.copytests.copyAreaDiag=disabled
|
|
||||||
pixel.opts.renderto=Off
|
|
||||||
pixel.opts.renderfrom=Off
|
|
||||||
pixel.src.1BitBinary=disabled
|
|
||||||
pixel.src.2BitBinary=disabled
|
|
||||||
pixel.src.4BitBinary=disabled
|
|
||||||
pixel.src.ByteIndexed=disabled
|
|
||||||
pixel.src.ByteGray=disabled
|
|
||||||
pixel.src.Short555=disabled
|
|
||||||
pixel.src.Short565=disabled
|
|
||||||
pixel.src.ShortGray=disabled
|
|
||||||
pixel.src.3ByteBgr=disabled
|
|
||||||
pixel.src.4ByteAbgr=disabled
|
|
||||||
pixel.src.IntXrgb=disabled
|
|
||||||
pixel.src.IntXbgr=disabled
|
|
||||||
pixel.src.IntArgb=disabled
|
|
||||||
pixel.bimgtests.getrgb=disabled
|
|
||||||
pixel.bimgtests.setrgb=disabled
|
|
||||||
pixel.rastests.getdataelem=disabled
|
|
||||||
pixel.rastests.setdataelem=disabled
|
|
||||||
pixel.rastests.getpixel=disabled
|
|
||||||
pixel.rastests.setpixel=disabled
|
|
||||||
pixel.dbtests.getelem=disabled
|
|
||||||
pixel.dbtests.setelem=disabled
|
|
||||||
text.opts.data.tlength=16
|
|
||||||
text.opts.data.tscript=english
|
|
||||||
text.opts.font.fname=serif,physical
|
|
||||||
text.opts.font.fstyle=0
|
|
||||||
text.opts.font.fsize=13.0
|
|
||||||
text.opts.font.ftx=Identity
|
|
||||||
text.opts.graphics.textaa=Off
|
|
||||||
text.opts.graphics.tfm=Off
|
|
||||||
text.opts.graphics.gaa=Off
|
|
||||||
text.opts.graphics.gtx=Identity
|
|
||||||
text.opts.advopts.gvstyle=0
|
|
||||||
text.opts.advopts.tlruns=1
|
|
||||||
text.opts.advopts.maptype=FONT
|
|
||||||
text.Rendering.tests.drawString=disabled
|
|
||||||
text.Rendering.tests.drawChars=disabled
|
|
||||||
text.Rendering.tests.drawBytes=disabled
|
|
||||||
text.Rendering.tests.drawGlyphVectors=disabled
|
|
||||||
text.Rendering.tests.drawTextLayout=disabled
|
|
||||||
text.Measuring.tests.stringWidth=disabled
|
|
||||||
text.Measuring.tests.stringBounds=disabled
|
|
||||||
text.Measuring.tests.charsWidth=disabled
|
|
||||||
text.Measuring.tests.charsBounds=disabled
|
|
||||||
text.Measuring.tests.fontcandisplay=disabled
|
|
||||||
text.Measuring.tests.gvWidth=disabled
|
|
||||||
text.Measuring.tests.gvLogicalBounds=disabled
|
|
||||||
text.Measuring.tests.gvVisualBounds=disabled
|
|
||||||
text.Measuring.tests.gvPixelBounds=disabled
|
|
||||||
text.Measuring.tests.gvOutline=disabled
|
|
||||||
text.Measuring.tests.gvGlyphLogicalBounds=disabled
|
|
||||||
text.Measuring.tests.gvGlyphVisualBounds=disabled
|
|
||||||
text.Measuring.tests.gvGlyphPixelBounds=disabled
|
|
||||||
text.Measuring.tests.gvGlyphOutline=disabled
|
|
||||||
text.Measuring.tests.gvGlyphTransform=disabled
|
|
||||||
text.Measuring.tests.gvGlyphMetrics=disabled
|
|
||||||
text.Measuring.tests.tlAdvance=disabled
|
|
||||||
text.Measuring.tests.tlAscent=disabled
|
|
||||||
text.Measuring.tests.tlBounds=disabled
|
|
||||||
text.Measuring.tests.tlGetCaretInfo=disabled
|
|
||||||
text.Measuring.tests.tlGetNextHit=disabled
|
|
||||||
text.Measuring.tests.tlGetCaretShape=disabled
|
|
||||||
text.Measuring.tests.tlGetLogicalHighlightShape=disabled
|
|
||||||
text.Measuring.tests.tlHitTest=disabled
|
|
||||||
text.Measuring.tests.tlOutline=disabled
|
|
||||||
text.construction.tests.gvfromfontstring=disabled
|
|
||||||
text.construction.tests.gvfromfontchars=disabled
|
|
||||||
text.construction.tests.gvfromfontci=disabled
|
|
||||||
text.construction.tests.gvfromfontglyphs=disabled
|
|
||||||
text.construction.tests.gvfromfontlayout=disabled
|
|
||||||
text.construction.tests.tlfromfont=disabled
|
|
||||||
text.construction.tests.tlfrommap=disabled
|
|
||||||
imageio.opts.size=250
|
|
||||||
imageio.opts.content=photo
|
|
||||||
imageio.input.opts.general.source.file=disabled
|
|
||||||
imageio.input.opts.general.source.url=disabled
|
|
||||||
imageio.input.opts.general.source.byteArray=disabled
|
|
||||||
imageio.input.opts.imageio.useCache=Off
|
|
||||||
imageio.input.image.toolkit.opts.format=
|
|
||||||
imageio.input.image.toolkit.tests.createImage=disabled
|
|
||||||
imageio.input.image.imageio.opts.format=
|
|
||||||
imageio.input.image.imageio.tests.imageioRead=disabled
|
|
||||||
imageio.input.image.imageio.reader.opts.seekForwardOnly=On
|
|
||||||
imageio.input.image.imageio.reader.opts.ignoreMetadata=On
|
|
||||||
imageio.input.image.imageio.reader.opts.installListener=Off
|
|
||||||
imageio.input.image.imageio.reader.tests.read=disabled
|
|
||||||
imageio.input.image.imageio.reader.tests.getImageMetadata=disabled
|
|
||||||
imageio.input.stream.tests.construct=disabled
|
|
||||||
imageio.input.stream.tests.read=disabled
|
|
||||||
imageio.input.stream.tests.readByteArray=disabled
|
|
||||||
imageio.input.stream.tests.readFullyByteArray=disabled
|
|
||||||
imageio.input.stream.tests.readBit=disabled
|
|
||||||
imageio.input.stream.tests.readByte=disabled
|
|
||||||
imageio.input.stream.tests.readUnsignedByte=disabled
|
|
||||||
imageio.input.stream.tests.readShort=disabled
|
|
||||||
imageio.input.stream.tests.readUnsignedShort=disabled
|
|
||||||
imageio.input.stream.tests.readInt=disabled
|
|
||||||
imageio.input.stream.tests.readUnsignedInt=disabled
|
|
||||||
imageio.input.stream.tests.readFloat=disabled
|
|
||||||
imageio.input.stream.tests.readLong=disabled
|
|
||||||
imageio.input.stream.tests.readDouble=disabled
|
|
||||||
imageio.input.stream.tests.skipBytes=disabled
|
|
||||||
imageio.output.opts.general.dest.file=disabled
|
|
||||||
imageio.output.opts.general.dest.byteArray=disabled
|
|
||||||
imageio.output.opts.imageio.useCache=Off
|
|
||||||
imageio.output.image.imageio.opts.format=
|
|
||||||
imageio.output.image.imageio.tests.imageioWrite=disabled
|
|
||||||
imageio.output.image.imageio.writer.opts.installListener=Off
|
|
||||||
imageio.output.image.imageio.writer.tests.write=disabled
|
|
||||||
imageio.output.stream.tests.construct=disabled
|
|
||||||
imageio.output.stream.tests.write=disabled
|
|
||||||
imageio.output.stream.tests.writeByteArray=disabled
|
|
||||||
imageio.output.stream.tests.writeBit=disabled
|
|
||||||
imageio.output.stream.tests.writeByte=disabled
|
|
||||||
imageio.output.stream.tests.writeShort=disabled
|
|
||||||
imageio.output.stream.tests.writeInt=disabled
|
|
||||||
imageio.output.stream.tests.writeFloat=disabled
|
|
||||||
imageio.output.stream.tests.writeLong=disabled
|
|
||||||
imageio.output.stream.tests.writeDouble=disabled
|
|
||||||
cmm.opts.profiles=1001
|
|
||||||
cmm.colorconv.data.fromRGB=disabled
|
|
||||||
cmm.colorconv.data.toRGB=disabled
|
|
||||||
cmm.colorconv.data.fromCIEXYZ=disabled
|
|
||||||
cmm.colorconv.data.toCIEXYZ=disabled
|
|
||||||
cmm.colorconv.ccop.ccopOptions.size=250
|
|
||||||
cmm.colorconv.ccop.ccopOptions.content=photo
|
|
||||||
cmm.colorconv.ccop.ccopOptions.srcType=INT_RGB
|
|
||||||
cmm.colorconv.ccop.ccopOptions.dstType=INT_RGB
|
|
||||||
cmm.colorconv.ccop.op_img=disabled
|
|
||||||
cmm.colorconv.ccop.op_rst=disabled
|
|
||||||
cmm.colorconv.ccop.op_draw=disabled
|
|
||||||
cmm.colorconv.embed.embedOptions.Images=512x512
|
|
||||||
cmm.colorconv.embed.embd_img_read=disabled
|
|
||||||
cmm.profiles.getHeader=disabled
|
|
||||||
cmm.profiles.getNumComponents=disabled
|
|
||||||
@@ -1,267 +0,0 @@
|
|||||||
prog.verbose=disabled
|
|
||||||
prog.printresults=enabled
|
|
||||||
global.env.outputwidth=640
|
|
||||||
global.env.outputheight=480
|
|
||||||
global.env.runcount=5
|
|
||||||
global.env.repcount=0
|
|
||||||
global.env.testtime=2500
|
|
||||||
global.results.workunits=units
|
|
||||||
global.results.timeunits=sec
|
|
||||||
global.results.ratio=unitspersec
|
|
||||||
global.dest.offscreen=disabled
|
|
||||||
global.dest.frame.defaultframe=enabled
|
|
||||||
global.dest.frame.transframe=disabled
|
|
||||||
global.dest.frame.shapedframe=disabled
|
|
||||||
global.dest.frame.shapedtransframe=disabled
|
|
||||||
global.dest.compatimg.compatimg=disabled
|
|
||||||
global.dest.compatimg.opqcompatimg=disabled
|
|
||||||
global.dest.compatimg.bmcompatimg=disabled
|
|
||||||
global.dest.compatimg.transcompatimg=disabled
|
|
||||||
global.dest.volimg.volimg=disabled
|
|
||||||
global.dest.volimg.opqvolimg=disabled
|
|
||||||
global.dest.volimg.bmvolimg=disabled
|
|
||||||
global.dest.volimg.transvolimg=disabled
|
|
||||||
global.dest.bufimg.IntXrgb=disabled
|
|
||||||
global.dest.bufimg.IntArgb=disabled
|
|
||||||
global.dest.bufimg.IntArgbPre=disabled
|
|
||||||
global.dest.bufimg.3ByteBgr=disabled
|
|
||||||
global.dest.bufimg.ByteIndexed=disabled
|
|
||||||
global.dest.bufimg.ByteGray=disabled
|
|
||||||
global.dest.bufimg.4ByteAbgr=disabled
|
|
||||||
global.dest.bufimg.4ByteAbgrPre=disabled
|
|
||||||
global.dest.bufimg.custom=disabled
|
|
||||||
graphics.opts.anim=2
|
|
||||||
graphics.opts.sizes=250
|
|
||||||
graphics.opts.alpharule=SrcOver
|
|
||||||
graphics.opts.transform=ident
|
|
||||||
graphics.opts.extraalpha=Off
|
|
||||||
graphics.opts.xormode=Off
|
|
||||||
graphics.opts.clip=Off
|
|
||||||
graphics.opts.renderhint=Default
|
|
||||||
graphics.render.opts.paint=single
|
|
||||||
graphics.render.opts.alphacolor=Off
|
|
||||||
graphics.render.opts.antialias=Off
|
|
||||||
graphics.render.opts.stroke=width1
|
|
||||||
graphics.render.tests.drawLine=disabled
|
|
||||||
graphics.render.tests.drawLineHoriz=disabled
|
|
||||||
graphics.render.tests.drawLineVert=disabled
|
|
||||||
graphics.render.tests.fillRect=disabled
|
|
||||||
graphics.render.tests.drawRect=disabled
|
|
||||||
graphics.render.tests.fillOval=disabled
|
|
||||||
graphics.render.tests.drawOval=disabled
|
|
||||||
graphics.render.tests.fillPoly=disabled
|
|
||||||
graphics.render.tests.drawPoly=enabled
|
|
||||||
graphics.render.tests.shape.fillCubic=disabled
|
|
||||||
graphics.render.tests.shape.drawCubic=disabled
|
|
||||||
graphics.render.tests.shape.fillEllipse2D=disabled
|
|
||||||
graphics.render.tests.shape.drawEllipse2D=disabled
|
|
||||||
graphics.imaging.src.offscr.opaque=disabled
|
|
||||||
graphics.imaging.src.offscr.bitmask=disabled
|
|
||||||
graphics.imaging.src.offscr.translucent=disabled
|
|
||||||
graphics.imaging.src.opqcompatimg.opaque=disabled
|
|
||||||
graphics.imaging.src.opqcompatimg.bitmask=disabled
|
|
||||||
graphics.imaging.src.opqcompatimg.translucent=disabled
|
|
||||||
graphics.imaging.src.bmcompatimg.opaque=disabled
|
|
||||||
graphics.imaging.src.bmcompatimg.bitmask=disabled
|
|
||||||
graphics.imaging.src.bmcompatimg.translucent=disabled
|
|
||||||
graphics.imaging.src.transcompatimg.opaque=disabled
|
|
||||||
graphics.imaging.src.transcompatimg.bitmask=disabled
|
|
||||||
graphics.imaging.src.transcompatimg.translucent=disabled
|
|
||||||
graphics.imaging.src.opqvolimg.opaque=disabled
|
|
||||||
graphics.imaging.src.opqvolimg.bitmask=disabled
|
|
||||||
graphics.imaging.src.opqvolimg.translucent=disabled
|
|
||||||
graphics.imaging.src.bmvolimg.opaque=disabled
|
|
||||||
graphics.imaging.src.bmvolimg.bitmask=disabled
|
|
||||||
graphics.imaging.src.bmvolimg.translucent=disabled
|
|
||||||
graphics.imaging.src.transvolimg.opaque=disabled
|
|
||||||
graphics.imaging.src.transvolimg.bitmask=disabled
|
|
||||||
graphics.imaging.src.transvolimg.translucent=disabled
|
|
||||||
graphics.imaging.src.bufimg.IntXrgb.opaque=disabled
|
|
||||||
graphics.imaging.src.bufimg.IntXrgb.bitmask=disabled
|
|
||||||
graphics.imaging.src.bufimg.IntXrgb.translucent=disabled
|
|
||||||
graphics.imaging.src.bufimg.IntArgb.opaque=disabled
|
|
||||||
graphics.imaging.src.bufimg.IntArgb.bitmask=disabled
|
|
||||||
graphics.imaging.src.bufimg.IntArgb.translucent=disabled
|
|
||||||
graphics.imaging.src.bufimg.IntArgbPre.opaque=disabled
|
|
||||||
graphics.imaging.src.bufimg.IntArgbPre.bitmask=disabled
|
|
||||||
graphics.imaging.src.bufimg.IntArgbPre.translucent=disabled
|
|
||||||
graphics.imaging.src.bufimg.ByteGray.opaque=disabled
|
|
||||||
graphics.imaging.src.bufimg.ByteGray.bitmask=disabled
|
|
||||||
graphics.imaging.src.bufimg.ByteGray.translucent=disabled
|
|
||||||
graphics.imaging.src.bufimg.3ByteBgr.opaque=disabled
|
|
||||||
graphics.imaging.src.bufimg.3ByteBgr.bitmask=disabled
|
|
||||||
graphics.imaging.src.bufimg.3ByteBgr.translucent=disabled
|
|
||||||
graphics.imaging.src.bufimg.4ByteAbgr.opaque=disabled
|
|
||||||
graphics.imaging.src.bufimg.4ByteAbgr.bitmask=disabled
|
|
||||||
graphics.imaging.src.bufimg.4ByteAbgr.translucent=disabled
|
|
||||||
graphics.imaging.src.bufimg.4ByteAbgrPre.opaque=disabled
|
|
||||||
graphics.imaging.src.bufimg.4ByteAbgrPre.bitmask=disabled
|
|
||||||
graphics.imaging.src.bufimg.4ByteAbgrPre.translucent=disabled
|
|
||||||
graphics.imaging.src.bufimg.ByteIndexedBm.opaque=disabled
|
|
||||||
graphics.imaging.src.bufimg.ByteIndexedBm.bitmask=disabled
|
|
||||||
graphics.imaging.src.bufimg.ByteIndexedBm.translucent=disabled
|
|
||||||
graphics.imaging.src.bufimg.unmanagedIntXrgb.opaque=disabled
|
|
||||||
graphics.imaging.src.bufimg.unmanagedIntXrgb.bitmask=disabled
|
|
||||||
graphics.imaging.src.bufimg.unmanagedIntXrgb.translucent=disabled
|
|
||||||
graphics.imaging.src.bufimg.unmanagedIntArgb.opaque=disabled
|
|
||||||
graphics.imaging.src.bufimg.unmanagedIntArgb.bitmask=disabled
|
|
||||||
graphics.imaging.src.bufimg.unmanagedIntArgb.translucent=disabled
|
|
||||||
graphics.imaging.src.bufimg.unmanagedIntArgbPre.opaque=disabled
|
|
||||||
graphics.imaging.src.bufimg.unmanagedIntArgbPre.bitmask=disabled
|
|
||||||
graphics.imaging.src.bufimg.unmanagedIntArgbPre.translucent=disabled
|
|
||||||
graphics.imaging.src.bufimg.unmanaged3ByteBgr.opaque=disabled
|
|
||||||
graphics.imaging.src.bufimg.unmanaged3ByteBgr.bitmask=disabled
|
|
||||||
graphics.imaging.src.bufimg.unmanaged3ByteBgr.translucent=disabled
|
|
||||||
graphics.imaging.benchmarks.opts.interpolation=Nearest neighbor
|
|
||||||
graphics.imaging.benchmarks.opts.touchsrc=Off
|
|
||||||
graphics.imaging.benchmarks.tests.drawimage=disabled
|
|
||||||
graphics.imaging.benchmarks.tests.drawimagebg=disabled
|
|
||||||
graphics.imaging.benchmarks.tests.drawimagescaleup=disabled
|
|
||||||
graphics.imaging.benchmarks.tests.drawimagescaledown=disabled
|
|
||||||
graphics.imaging.benchmarks.tests.drawimagescalesplit=disabled
|
|
||||||
graphics.imaging.benchmarks.tests.drawimagetxform=disabled
|
|
||||||
graphics.imaging.imageops.opts.op=convolve3x3zero
|
|
||||||
graphics.imaging.imageops.tests.graphics2d.drawimageop=disabled
|
|
||||||
graphics.imaging.imageops.tests.bufimgop.filternull=disabled
|
|
||||||
graphics.imaging.imageops.tests.bufimgop.filtercached=disabled
|
|
||||||
graphics.imaging.imageops.tests.rasterop.filternull=disabled
|
|
||||||
graphics.imaging.imageops.tests.rasterop.filtercached=disabled
|
|
||||||
graphics.misc.copytests.copyAreaVert=disabled
|
|
||||||
graphics.misc.copytests.copyAreaHoriz=disabled
|
|
||||||
graphics.misc.copytests.copyAreaDiag=disabled
|
|
||||||
pixel.opts.renderto=Off
|
|
||||||
pixel.opts.renderfrom=Off
|
|
||||||
pixel.src.1BitBinary=disabled
|
|
||||||
pixel.src.2BitBinary=disabled
|
|
||||||
pixel.src.4BitBinary=disabled
|
|
||||||
pixel.src.ByteIndexed=disabled
|
|
||||||
pixel.src.ByteGray=disabled
|
|
||||||
pixel.src.Short555=disabled
|
|
||||||
pixel.src.Short565=disabled
|
|
||||||
pixel.src.ShortGray=disabled
|
|
||||||
pixel.src.3ByteBgr=disabled
|
|
||||||
pixel.src.4ByteAbgr=disabled
|
|
||||||
pixel.src.IntXrgb=disabled
|
|
||||||
pixel.src.IntXbgr=disabled
|
|
||||||
pixel.src.IntArgb=disabled
|
|
||||||
pixel.bimgtests.getrgb=disabled
|
|
||||||
pixel.bimgtests.setrgb=disabled
|
|
||||||
pixel.rastests.getdataelem=disabled
|
|
||||||
pixel.rastests.setdataelem=disabled
|
|
||||||
pixel.rastests.getpixel=disabled
|
|
||||||
pixel.rastests.setpixel=disabled
|
|
||||||
pixel.dbtests.getelem=disabled
|
|
||||||
pixel.dbtests.setelem=disabled
|
|
||||||
text.opts.data.tlength=16
|
|
||||||
text.opts.data.tscript=english
|
|
||||||
text.opts.font.fname=serif,physical
|
|
||||||
text.opts.font.fstyle=0
|
|
||||||
text.opts.font.fsize=13.0
|
|
||||||
text.opts.font.ftx=Identity
|
|
||||||
text.opts.graphics.textaa=Off
|
|
||||||
text.opts.graphics.tfm=Off
|
|
||||||
text.opts.graphics.gaa=Off
|
|
||||||
text.opts.graphics.gtx=Identity
|
|
||||||
text.opts.advopts.gvstyle=0
|
|
||||||
text.opts.advopts.tlruns=1
|
|
||||||
text.opts.advopts.maptype=FONT
|
|
||||||
text.Rendering.tests.drawString=disabled
|
|
||||||
text.Rendering.tests.drawChars=disabled
|
|
||||||
text.Rendering.tests.drawBytes=disabled
|
|
||||||
text.Rendering.tests.drawGlyphVectors=disabled
|
|
||||||
text.Rendering.tests.drawTextLayout=disabled
|
|
||||||
text.Measuring.tests.stringWidth=disabled
|
|
||||||
text.Measuring.tests.stringBounds=disabled
|
|
||||||
text.Measuring.tests.charsWidth=disabled
|
|
||||||
text.Measuring.tests.charsBounds=disabled
|
|
||||||
text.Measuring.tests.fontcandisplay=disabled
|
|
||||||
text.Measuring.tests.gvWidth=disabled
|
|
||||||
text.Measuring.tests.gvLogicalBounds=disabled
|
|
||||||
text.Measuring.tests.gvVisualBounds=disabled
|
|
||||||
text.Measuring.tests.gvPixelBounds=disabled
|
|
||||||
text.Measuring.tests.gvOutline=disabled
|
|
||||||
text.Measuring.tests.gvGlyphLogicalBounds=disabled
|
|
||||||
text.Measuring.tests.gvGlyphVisualBounds=disabled
|
|
||||||
text.Measuring.tests.gvGlyphPixelBounds=disabled
|
|
||||||
text.Measuring.tests.gvGlyphOutline=disabled
|
|
||||||
text.Measuring.tests.gvGlyphTransform=disabled
|
|
||||||
text.Measuring.tests.gvGlyphMetrics=disabled
|
|
||||||
text.Measuring.tests.tlAdvance=disabled
|
|
||||||
text.Measuring.tests.tlAscent=disabled
|
|
||||||
text.Measuring.tests.tlBounds=disabled
|
|
||||||
text.Measuring.tests.tlGetCaretInfo=disabled
|
|
||||||
text.Measuring.tests.tlGetNextHit=disabled
|
|
||||||
text.Measuring.tests.tlGetCaretShape=disabled
|
|
||||||
text.Measuring.tests.tlGetLogicalHighlightShape=disabled
|
|
||||||
text.Measuring.tests.tlHitTest=disabled
|
|
||||||
text.Measuring.tests.tlOutline=disabled
|
|
||||||
text.construction.tests.gvfromfontstring=disabled
|
|
||||||
text.construction.tests.gvfromfontchars=disabled
|
|
||||||
text.construction.tests.gvfromfontci=disabled
|
|
||||||
text.construction.tests.gvfromfontglyphs=disabled
|
|
||||||
text.construction.tests.gvfromfontlayout=disabled
|
|
||||||
text.construction.tests.tlfromfont=disabled
|
|
||||||
text.construction.tests.tlfrommap=disabled
|
|
||||||
imageio.opts.size=250
|
|
||||||
imageio.opts.content=photo
|
|
||||||
imageio.input.opts.general.source.file=disabled
|
|
||||||
imageio.input.opts.general.source.url=disabled
|
|
||||||
imageio.input.opts.general.source.byteArray=disabled
|
|
||||||
imageio.input.opts.imageio.useCache=Off
|
|
||||||
imageio.input.image.toolkit.opts.format=
|
|
||||||
imageio.input.image.toolkit.tests.createImage=disabled
|
|
||||||
imageio.input.image.imageio.opts.format=
|
|
||||||
imageio.input.image.imageio.tests.imageioRead=disabled
|
|
||||||
imageio.input.image.imageio.reader.opts.seekForwardOnly=On
|
|
||||||
imageio.input.image.imageio.reader.opts.ignoreMetadata=On
|
|
||||||
imageio.input.image.imageio.reader.opts.installListener=Off
|
|
||||||
imageio.input.image.imageio.reader.tests.read=disabled
|
|
||||||
imageio.input.image.imageio.reader.tests.getImageMetadata=disabled
|
|
||||||
imageio.input.stream.tests.construct=disabled
|
|
||||||
imageio.input.stream.tests.read=disabled
|
|
||||||
imageio.input.stream.tests.readByteArray=disabled
|
|
||||||
imageio.input.stream.tests.readFullyByteArray=disabled
|
|
||||||
imageio.input.stream.tests.readBit=disabled
|
|
||||||
imageio.input.stream.tests.readByte=disabled
|
|
||||||
imageio.input.stream.tests.readUnsignedByte=disabled
|
|
||||||
imageio.input.stream.tests.readShort=disabled
|
|
||||||
imageio.input.stream.tests.readUnsignedShort=disabled
|
|
||||||
imageio.input.stream.tests.readInt=disabled
|
|
||||||
imageio.input.stream.tests.readUnsignedInt=disabled
|
|
||||||
imageio.input.stream.tests.readFloat=disabled
|
|
||||||
imageio.input.stream.tests.readLong=disabled
|
|
||||||
imageio.input.stream.tests.readDouble=disabled
|
|
||||||
imageio.input.stream.tests.skipBytes=disabled
|
|
||||||
imageio.output.opts.general.dest.file=disabled
|
|
||||||
imageio.output.opts.general.dest.byteArray=disabled
|
|
||||||
imageio.output.opts.imageio.useCache=Off
|
|
||||||
imageio.output.image.imageio.opts.format=
|
|
||||||
imageio.output.image.imageio.tests.imageioWrite=disabled
|
|
||||||
imageio.output.image.imageio.writer.opts.installListener=Off
|
|
||||||
imageio.output.image.imageio.writer.tests.write=disabled
|
|
||||||
imageio.output.stream.tests.construct=disabled
|
|
||||||
imageio.output.stream.tests.write=disabled
|
|
||||||
imageio.output.stream.tests.writeByteArray=disabled
|
|
||||||
imageio.output.stream.tests.writeBit=disabled
|
|
||||||
imageio.output.stream.tests.writeByte=disabled
|
|
||||||
imageio.output.stream.tests.writeShort=disabled
|
|
||||||
imageio.output.stream.tests.writeInt=disabled
|
|
||||||
imageio.output.stream.tests.writeFloat=disabled
|
|
||||||
imageio.output.stream.tests.writeLong=disabled
|
|
||||||
imageio.output.stream.tests.writeDouble=disabled
|
|
||||||
cmm.opts.profiles=1001
|
|
||||||
cmm.colorconv.data.fromRGB=disabled
|
|
||||||
cmm.colorconv.data.toRGB=disabled
|
|
||||||
cmm.colorconv.data.fromCIEXYZ=disabled
|
|
||||||
cmm.colorconv.data.toCIEXYZ=disabled
|
|
||||||
cmm.colorconv.ccop.ccopOptions.size=250
|
|
||||||
cmm.colorconv.ccop.ccopOptions.content=photo
|
|
||||||
cmm.colorconv.ccop.ccopOptions.srcType=INT_RGB
|
|
||||||
cmm.colorconv.ccop.ccopOptions.dstType=INT_RGB
|
|
||||||
cmm.colorconv.ccop.op_img=disabled
|
|
||||||
cmm.colorconv.ccop.op_rst=disabled
|
|
||||||
cmm.colorconv.ccop.op_draw=disabled
|
|
||||||
cmm.colorconv.embed.embedOptions.Images=512x512
|
|
||||||
cmm.colorconv.embed.embd_img_read=disabled
|
|
||||||
cmm.profiles.getHeader=disabled
|
|
||||||
cmm.profiles.getNumComponents=disabled
|
|
||||||
@@ -1,137 +0,0 @@
|
|||||||
export LC_ALL=C
|
|
||||||
ST=1 # sleep between iterations
|
|
||||||
|
|
||||||
# number of iterations (jvm spawned)
|
|
||||||
N=5
|
|
||||||
# number of repeats (within jvm)
|
|
||||||
R=3
|
|
||||||
|
|
||||||
type datamash 2>&1 > /dev/null ; ec=$?
|
|
||||||
if [ $ec -ne 0 ] ; then
|
|
||||||
echo "Missing datamash utility"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
DATAMASH_CMD="datamash --format=%.2f -H count x min x q1 x median x q3 x max x mad x"
|
|
||||||
|
|
||||||
J2D_OPTS=""
|
|
||||||
OS=""
|
|
||||||
case "$OSTYPE" in
|
|
||||||
linux*) echo "Linux"
|
|
||||||
;;
|
|
||||||
darwin*) echo "OSX"
|
|
||||||
;;
|
|
||||||
*) echo "unknown: $OSTYPE"
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
read -r -d '' RENDER_OPS_DOC << EOM
|
|
||||||
rendering_options:
|
|
||||||
-opengl # OpenGL pipeline (windows, linux, macOS)
|
|
||||||
-metal # Metal pipeline (macOS)
|
|
||||||
-vulkan # Vulkan pipeline (WLToolkit)
|
|
||||||
-accelsd # Vulkan full acceleration (WLToolkit, Vulkan)
|
|
||||||
-devnum num # Provide Vulkan device for rendering
|
|
||||||
-tk tk_name # AWT toolkit (linux: WLToolkit|XToolkit)
|
|
||||||
-scale # UI scale
|
|
||||||
-N num # Number of iterations (JVM runs)
|
|
||||||
-R num # Number of repeats in the test
|
|
||||||
EOM
|
|
||||||
|
|
||||||
while [ $# -ge 1 ] ; do
|
|
||||||
case "$1" in
|
|
||||||
-opengl) J2D_OPTS=$J2D_OPTS" -Dsun.java2d.opengl=true"
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
-metal) J2D_OPTS=$J2D_OPTS" -Dsun.java2d.metal=true"
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
-vulkan) J2D_OPTS=$J2D_OPTS" -Dsun.java2d.vulkan=true"
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
-accelsd) J2D_OPTS=$J2D_OPTS" -Dsun.java2d.vulkan.accelsd=true"
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
-devnum) shift
|
|
||||||
if [ $# -ge 1 ] ; then
|
|
||||||
J2D_OPTS=$J2D_OPTS" -Dsun.java2d.vulkan.deviceNumber="$1
|
|
||||||
shift
|
|
||||||
else
|
|
||||||
echo "Invalid parameters for -devnum option. Use: -devnum num"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
-tk) shift
|
|
||||||
if [ $# -ge 1 ] ; then
|
|
||||||
J2D_OPTS=$J2D_OPTS" -Dawt.toolkit.name="$1
|
|
||||||
shift
|
|
||||||
else
|
|
||||||
echo "Invalid parameters for -tk option. Use: -tk tkname"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
-N) shift
|
|
||||||
if [ $# -ge 1 ] ; then
|
|
||||||
N=$1
|
|
||||||
shift
|
|
||||||
else
|
|
||||||
echo "Invalid parameters for -N option. Use: -N <number>"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
-R) shift
|
|
||||||
if [ $# -ge 1 ] ; then
|
|
||||||
R=$1
|
|
||||||
shift
|
|
||||||
else
|
|
||||||
echo "Invalid parameters for -R option. Use: -R <number>"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
-scale) shift
|
|
||||||
if [ $# -ge 1 ] ; then
|
|
||||||
J2D_OPTS=$J2D_OPTS" -Dsun.java2d.uiScale="$1
|
|
||||||
shift
|
|
||||||
else
|
|
||||||
echo "Invalid parameters for -scale option. Use: -scale scale"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
-dSync) shift
|
|
||||||
if [ $# -ge 1 ] ; then
|
|
||||||
J2D_OPTS=$J2D_OPTS" -Dsun.java2d.metal.displaySync="$1
|
|
||||||
shift
|
|
||||||
else
|
|
||||||
echo "Invalid parameters for -dSync option. Use: -dSync [true|false]"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
-jdk) shift
|
|
||||||
if [ $# -ge 1 ] ; then
|
|
||||||
JAVA=$1/bin/java
|
|
||||||
shift
|
|
||||||
else
|
|
||||||
echo "Invalid parameters for -jdk option"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
*) break
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
if [ -z "$JAVA" ] ; then
|
|
||||||
BUILD_DIR=`find $BASE_DIR/../../../../build -name '*-release' -type d | head -n 1`
|
|
||||||
JAVA=`find $BUILD_DIR/images/jdk -name java -type f | head -n 1`
|
|
||||||
fi
|
|
||||||
|
|
||||||
JAVA_HOME=`dirname $JAVA`/../
|
|
||||||
"$JAVA" -version
|
|
||||||
|
|
||||||
LANG=C
|
|
||||||
|
|
||||||
WS_ROOT=$BASE_DIR/../../../..
|
|
||||||
|
|
||||||
echo "N: $N"
|
|
||||||
echo "R: $R"
|
|
||||||
echo "J2D_OPTS: $J2D_OPTS"
|
|
||||||
@@ -1,53 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
BASE_DIR=$(dirname "$0")
|
|
||||||
source $BASE_DIR/run_inc.sh
|
|
||||||
|
|
||||||
J2DBENCH_DIR=$WS_ROOT/src/demo/share/java2d/J2DBench
|
|
||||||
|
|
||||||
if [ -z "$J2DBENCH" ]; then
|
|
||||||
if [ ! -f "$J2DBENCH_DIR/dist/J2DBench.jar" ]; then
|
|
||||||
PATH=$JAVA_HOME/bin:$PATH make -C $J2DBENCH_DIR
|
|
||||||
fi
|
|
||||||
if [ ! -f "$J2DBENCH_DIR/dist/J2DBench.jar" ]; then
|
|
||||||
echo "Cannot build J2DBench. You may use J2DBench env variable instead pointing to the J2DBench.jar."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
J2DBENCH=$J2DBENCH_DIR/dist/J2DBench.jar
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $# -ne 1 ] ; then
|
|
||||||
echo "Usage: run_j2b.sh [rendering_options] bench_name"
|
|
||||||
echo
|
|
||||||
echo "bench_name: poly250 poly250-rand_col poly250-AA-rand_col"
|
|
||||||
echo ""
|
|
||||||
echo "$RENDER_OPS_DOC"
|
|
||||||
exit 2
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -f "$BASE_DIR/j2dbopts_$1.txt" ]; then
|
|
||||||
echo "Unknown test: $1"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
OPTS="j2dbopts_$1.txt"
|
|
||||||
#OPTS=j2dbopts_poly250.txt
|
|
||||||
#OPTS=j2dbopts_poly250-rand_col.txt
|
|
||||||
#OPTS=j2dbopts_poly250-AA-rand_col.txt
|
|
||||||
|
|
||||||
echo "OPTS: $OPTS"
|
|
||||||
|
|
||||||
for i in `seq $N`; do
|
|
||||||
if [ $i -eq 1 ]; then
|
|
||||||
echo x
|
|
||||||
fi
|
|
||||||
echo `$JAVA $J2D_OPTS -jar $J2DBENCH \
|
|
||||||
-batch -loadopts $BASE_DIR/$OPTS -saveres pl.res \
|
|
||||||
-title pl -desc pl | awk '/averaged/{print $3}' | head -n1`
|
|
||||||
|
|
||||||
if [ $i -ne $N ]; then
|
|
||||||
sleep $ST
|
|
||||||
fi
|
|
||||||
done | $DATAMASH_CMD | expand -t12
|
|
||||||
@@ -1,88 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
#set -euo pipefail
|
|
||||||
#set -x
|
|
||||||
|
|
||||||
BASE_DIR=$(dirname "$0")
|
|
||||||
source $BASE_DIR/run_inc.sh
|
|
||||||
|
|
||||||
RENDERPERFTEST_DIR=$WS_ROOT/test/jdk/performance/client/RenderPerfTest
|
|
||||||
RENDERPERFTEST=""
|
|
||||||
if [ -z "$RENDERPERFTEST" ]; then
|
|
||||||
if [ ! -f "$RENDERPERFTEST_DIR/dist/RenderPerfTest.jar" ]; then
|
|
||||||
PATH=$JAVA_HOME/bin:$PATH make -C $RENDERPERFTEST_DIR
|
|
||||||
fi
|
|
||||||
if [ ! -f "$RENDERPERFTEST_DIR/dist/RenderPerfTest.jar" ]; then
|
|
||||||
echo "Cannot build RenderPerfTest. You may use RENDERPERFTEST env variable instead pointing to the RenderPerfTest.jar."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
RENDERPERFTEST=$RENDERPERFTEST_DIR/dist/RenderPerfTest.jar
|
|
||||||
fi
|
|
||||||
|
|
||||||
TRACE=false
|
|
||||||
|
|
||||||
# removes leading hyphen
|
|
||||||
mode_param="${1/-}"
|
|
||||||
MODE="Robot"
|
|
||||||
while [ $# -ge 1 ] ; do
|
|
||||||
case "$1" in
|
|
||||||
-onscreen) MODE="Robot"
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
-volatile) MODE="Volatile"
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
-buffer) MODE="Buffer"
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
*) break
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
if [[ ($# -eq 1 && "$1" == "-help") || ($# -eq 0) ]] ; then
|
|
||||||
echo "Usage: run_rp.sh [rp_rendering_mode] [rendering_options] bench_name"
|
|
||||||
echo
|
|
||||||
echo "bench_name: ArgbSurfaceBlitImage ArgbSwBlitImage BgrSurfaceBlitImage BgrSwBlitImage"
|
|
||||||
echo " Image ImageAA Image_XOR VolImage VolImageAA"
|
|
||||||
echo " ClipFlatBox ClipFlatBoxAA ClipFlatOval ClipFlatOvalAA"
|
|
||||||
echo " FlatBox FlatBoxAA FlatOval FlatOvalAA FlatOval_XOR FlatQuad FlatQuadAA"
|
|
||||||
echo " RotatedBox RotatedBoxAA RotatedBox_XOR RotatedOval RotatedOvalAA"
|
|
||||||
echo " WiredBox WiredBoxAA WiredBubbles WiredBubblesAA WiredQuad WiredQuadAA"
|
|
||||||
echo " Lines LinesAA Lines_XOR"
|
|
||||||
echo " TextGray TextLCD TextLCD_XOR TextNoAA TextNoAA_XOR"
|
|
||||||
echo " LargeTextGray LargeTextLCD LargeTextNoAA WhiteTextGray WhiteTextLCD WhiteTextNoAA"
|
|
||||||
echo " LinGrad3RotatedOval LinGrad3RotatedOvalAA LinGradRotatedOval LinGradRotatedOvalAA"
|
|
||||||
echo " RadGrad3RotatedOval RadGrad3RotatedOvalAA"
|
|
||||||
echo ""
|
|
||||||
echo "rp_rendering_mode: "
|
|
||||||
echo " -onscreen : rendering to the window and check it using Robot"
|
|
||||||
echo " -volatile : rendering to volatile image (default)"
|
|
||||||
echo " -buffer : rendering to buffered image"
|
|
||||||
echo "$RENDER_OPS_DOC"
|
|
||||||
exit 2
|
|
||||||
fi
|
|
||||||
|
|
||||||
OPTS=""
|
|
||||||
# use time + repeat
|
|
||||||
OPTS="$OPTS -t -n=$N -e$MODE $1"
|
|
||||||
|
|
||||||
echo "OPTS: $OPTS"
|
|
||||||
|
|
||||||
echo "Unit: Milliseconds (not FPS), lower is better"
|
|
||||||
for i in `seq $R` ; do
|
|
||||||
if [ $i -eq 1 ]; then
|
|
||||||
echo x
|
|
||||||
fi
|
|
||||||
|
|
||||||
# echo "[debug] " + "test run"
|
|
||||||
# $JAVA $J2D_OPTS -DTRACE=$TRACE \
|
|
||||||
# -jar $RENDERPERFTEST $OPTS 2>&1 | awk '/'$1'/{print $3 }' | tee test_run.log
|
|
||||||
|
|
||||||
$JAVA $J2D_OPTS -DTRACE=$TRACE \
|
|
||||||
-jar $RENDERPERFTEST $OPTS -v 2>&1 | tee render_$1_${mode_param}_$i.log | grep -v "^#" | tail -n 1 | \
|
|
||||||
awk '{print $3 }'
|
|
||||||
if [ $i -ne $N ]; then
|
|
||||||
sleep $ST
|
|
||||||
fi
|
|
||||||
done | $DATAMASH_CMD | expand -t12 | tee render_$1_${mode_param}.log
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
BASE_DIR=$(dirname "$0")
|
|
||||||
source $BASE_DIR/run_inc.sh
|
|
||||||
|
|
||||||
SWINGMARK_DIR=$WS_ROOT/test/jdk/performance/client/SwingMark
|
|
||||||
|
|
||||||
if [ -z "$SWINGMARK" ]; then
|
|
||||||
if [ ! -f "$SWINGMARK_DIR/dist/SwingMark.jar" ]; then
|
|
||||||
PATH=$JAVA_HOME/bin:$PATH make -C $SWINGMARK_DIR
|
|
||||||
fi
|
|
||||||
if [ ! -f "$SWINGMARK_DIR/dist/SwingMark.jar" ]; then
|
|
||||||
echo "Cannot build SwingMark. You may use SWINGMARK env variable instead pointing to the SwingMark.jar."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
SWINGMARK=$SWINGMARK_DIR/dist/SwingMark.jar
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $# -eq 1 -a "$1" == "--help" ] ; then
|
|
||||||
shift
|
|
||||||
echo "Usage: run_sm [rendering_options]"
|
|
||||||
echo ""
|
|
||||||
echo "$RENDER_OPS_DOC"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
for i in `seq $N` ; do
|
|
||||||
if [ $i -eq 1 ]; then
|
|
||||||
echo x
|
|
||||||
fi
|
|
||||||
|
|
||||||
# SwingMark gives 1 global 'Score: <value>'
|
|
||||||
echo `$JAVA $J2D_OPTS -jar $BASE_DIR/../../../../test/jdk/performance/client/SwingMark/dist/SwingMark.jar \
|
|
||||||
-r $R -q -lf javax.swing.plaf.metal.MetalLookAndFeel | awk '/Score/{print $2}'`
|
|
||||||
|
|
||||||
if [ $i -ne $N ]; then
|
|
||||||
sleep $ST
|
|
||||||
fi
|
|
||||||
done | $DATAMASH_CMD | expand -t12
|
|
||||||
@@ -1,162 +0,0 @@
|
|||||||
#!/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
|
|
||||||
@@ -1,93 +0,0 @@
|
|||||||
#!/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
|
|
||||||
)
|
|
||||||
@@ -1,153 +0,0 @@
|
|||||||
#!/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 \
|
|
||||||
--enable-option-checking=fatal \
|
|
||||||
--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 \
|
|
||||||
--enable-cds=yes \
|
|
||||||
$DISABLE_WARNINGS_AS_ERRORS \
|
|
||||||
$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-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" >> $__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-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_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_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
|
|
||||||
if [ "$bundle_type" == "jcef" ]; 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
|
|
||||||
cat $JCEF_PATH/jcef.version >> $JSDK/release
|
|
||||||
fi
|
|
||||||
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" == "$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
|
|
||||||
@@ -1,146 +0,0 @@
|
|||||||
#!/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 \
|
|
||||||
$DISABLE_WARNINGS_AS_ERRORS \
|
|
||||||
$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=''
|
|
||||||
__cds_opt=''
|
|
||||||
__cds_opt="--generate-cds-archive"
|
|
||||||
|
|
||||||
[ "$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 \
|
|
||||||
$__cds_opt --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_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_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
|
|
||||||
if [ "$bundle_type" == "jcef" ]; 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
|
|
||||||
cat $JCEF_PATH/jcef.version >> $JSDK/release
|
|
||||||
fi
|
|
||||||
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" == "$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
|
|
||||||
@@ -1,136 +0,0 @@
|
|||||||
#!/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 \
|
|
||||||
$DISABLE_WARNINGS_AS_ERRORS \
|
|
||||||
$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=''
|
|
||||||
__cds_opt=''
|
|
||||||
__cds_opt="--generate-cds-archive"
|
|
||||||
|
|
||||||
[ "$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 \
|
|
||||||
$__cds_opt --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_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_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
|
|
||||||
if [ "$bundle_type" == "jcef" ]; 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
|
|
||||||
fi
|
|
||||||
|
|
||||||
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
|
|
||||||
@@ -1,59 +0,0 @@
|
|||||||
#!/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 ...
|
|
||||||
chmod -R ug+rwx,o+rx ${BASE_DIR}/$__root_dir
|
|
||||||
/usr/bin/tar -czf $JBR.tar.gz -C $BASE_DIR $__root_dir || do_exit $?
|
|
||||||
|
|
||||||
echo Creating $JBR.zip ...
|
|
||||||
/usr/bin/zip -r $JBR.zip $__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
|
|
||||||
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
|
|
||||||
@@ -1,59 +0,0 @@
|
|||||||
#!/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 $?
|
|
||||||
|
|
||||||
echo Creating $JBR.zip ...
|
|
||||||
/usr/bin/zip -r $JBR.zip $__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
|
|
||||||
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
|
|
||||||
@@ -1,55 +0,0 @@
|
|||||||
#!/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 $?
|
|
||||||
|
|
||||||
echo Creating $JBR.zip ...
|
|
||||||
/usr/bin/zip -r $JBR.zip $__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
|
|
||||||
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
|
|
||||||
@@ -242,10 +242,7 @@ ifneq ($(filter product-bundles% legacy-bundles, $(MAKECMDGOALS)), )
|
|||||||
)
|
)
|
||||||
|
|
||||||
JDK_SYMBOLS_BUNDLE_FILES := \
|
JDK_SYMBOLS_BUNDLE_FILES := \
|
||||||
$(filter-out \
|
$(call FindFiles, $(SYMBOLS_IMAGE_DIR))
|
||||||
%.stripped.pdb, \
|
|
||||||
$(call FindFiles, $(SYMBOLS_IMAGE_DIR)) \
|
|
||||||
)
|
|
||||||
|
|
||||||
TEST_DEMOS_BUNDLE_FILES := $(filter $(JDK_DEMOS_IMAGE_HOMEDIR)/demo/%, \
|
TEST_DEMOS_BUNDLE_FILES := $(filter $(JDK_DEMOS_IMAGE_HOMEDIR)/demo/%, \
|
||||||
$(ALL_JDK_DEMOS_FILES))
|
$(ALL_JDK_DEMOS_FILES))
|
||||||
|
|||||||
@@ -100,7 +100,6 @@ $(eval $(call SetupJavaCompilation, $(MODULE), \
|
|||||||
BIN := $(if $($(MODULE)_BIN), $($(MODULE)_BIN), $(JDK_OUTPUTDIR)/modules), \
|
BIN := $(if $($(MODULE)_BIN), $($(MODULE)_BIN), $(JDK_OUTPUTDIR)/modules), \
|
||||||
HEADERS := $(SUPPORT_OUTPUTDIR)/headers, \
|
HEADERS := $(SUPPORT_OUTPUTDIR)/headers, \
|
||||||
CREATE_API_DIGEST := true, \
|
CREATE_API_DIGEST := true, \
|
||||||
PROCESS_JBR_API := true, \
|
|
||||||
CLEAN := $(CLEAN), \
|
CLEAN := $(CLEAN), \
|
||||||
CLEAN_FILES := $(CLEAN_FILES), \
|
CLEAN_FILES := $(CLEAN_FILES), \
|
||||||
COPY := $(COPY), \
|
COPY := $(COPY), \
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ $(eval $(call SetupJavaCompilation, COMPILE_DEPEND, \
|
|||||||
TARGET_RELEASE := $(TARGET_RELEASE_BOOTJDK), \
|
TARGET_RELEASE := $(TARGET_RELEASE_BOOTJDK), \
|
||||||
SRC := $(TOPDIR)/make/jdk/src/classes, \
|
SRC := $(TOPDIR)/make/jdk/src/classes, \
|
||||||
INCLUDES := build/tools/depend, \
|
INCLUDES := build/tools/depend, \
|
||||||
BIN := $(BUILDTOOLS_OUTPUTDIR)/plugins, \
|
BIN := $(BUILDTOOLS_OUTPUTDIR)/depend, \
|
||||||
DISABLED_WARNINGS := options, \
|
DISABLED_WARNINGS := options, \
|
||||||
JAVAC_FLAGS := \
|
JAVAC_FLAGS := \
|
||||||
--add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED \
|
--add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED \
|
||||||
@@ -97,21 +97,13 @@ $(eval $(call SetupJavaCompilation, COMPILE_DEPEND, \
|
|||||||
--add-exports jdk.internal.opt/jdk.internal.opt=jdk.javadoc.interim, \
|
--add-exports jdk.internal.opt/jdk.internal.opt=jdk.javadoc.interim, \
|
||||||
))
|
))
|
||||||
|
|
||||||
$(eval $(call SetupJavaCompilation, COMPILE_JBR_API_PLUGIN, \
|
DEPEND_SERVICE_PROVIDER := $(BUILDTOOLS_OUTPUTDIR)/depend/META-INF/services/com.sun.source.util.Plugin
|
||||||
TARGET_RELEASE := $(TARGET_RELEASE_BOOTJDK), \
|
|
||||||
SRC := $(TOPDIR)/make/jdk/src/classes, \
|
|
||||||
INCLUDES := build/tools/jbrapi, \
|
|
||||||
BIN := $(BUILDTOOLS_OUTPUTDIR)/plugins, \
|
|
||||||
))
|
|
||||||
|
|
||||||
PLUGINS_SERVICE_PROVIDER := $(BUILDTOOLS_OUTPUTDIR)/plugins/META-INF/services/com.sun.source.util.Plugin
|
$(DEPEND_SERVICE_PROVIDER):
|
||||||
|
$(call MakeDir, $(BUILDTOOLS_OUTPUTDIR)/depend/META-INF/services)
|
||||||
$(PLUGINS_SERVICE_PROVIDER):
|
|
||||||
$(call MakeDir, $(BUILDTOOLS_OUTPUTDIR)/plugins/META-INF/services)
|
|
||||||
$(ECHO) build.tools.depend.Depend > $@
|
$(ECHO) build.tools.depend.Depend > $@
|
||||||
$(ECHO) build.tools.jbrapi.JBRApiPlugin >> $@
|
|
||||||
|
|
||||||
TARGETS += $(COMPILE_DEPEND) $(COMPILE_JBR_API_PLUGIN) $(PLUGINS_SERVICE_PROVIDER)
|
TARGETS += $(COMPILE_DEPEND) $(DEPEND_SERVICE_PROVIDER)
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2014, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2014, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -81,11 +81,13 @@ endif
|
|||||||
ifneq ($(CMDS_DIR), )
|
ifneq ($(CMDS_DIR), )
|
||||||
DEPS += $(call FindFiles, $(CMDS_DIR))
|
DEPS += $(call FindFiles, $(CMDS_DIR))
|
||||||
ifeq ($(call isTargetOs, windows)+$(SHIP_DEBUG_SYMBOLS), true+public)
|
ifeq ($(call isTargetOs, windows)+$(SHIP_DEBUG_SYMBOLS), true+public)
|
||||||
# For public debug symbols on Windows, we have to use stripped pdbs and rename them
|
# For public debug symbols on Windows, we have to use stripped pdbs, rename them
|
||||||
|
# and filter out a few launcher pdbs where there's a lib that goes by the same name
|
||||||
rename_stripped = $(patsubst %.stripped.pdb,%.pdb,$1)
|
rename_stripped = $(patsubst %.stripped.pdb,%.pdb,$1)
|
||||||
CMDS_DIR_FILTERED := $(subst modules_cmds,modules_cmds_filtered, $(CMDS_DIR))
|
CMDS_DIR_FILTERED := $(subst modules_cmds,modules_cmds_filtered, $(CMDS_DIR))
|
||||||
FILES_CMDS := $(filter-out %.pdb, $(call FindFiles, $(CMDS_DIR))) \
|
FILES_CMDS := $(filter-out %.pdb, $(call FindFiles, $(CMDS_DIR))) \
|
||||||
$(filter %.stripped.pdb, $(call FindFiles, $(CMDS_DIR)))
|
$(filter-out %jimage.stripped.pdb %jpackage.stripped.pdb %java.stripped.pdb, \
|
||||||
|
$(filter %.stripped.pdb, $(call FindFiles, $(CMDS_DIR))))
|
||||||
$(eval $(call SetupCopyFiles, COPY_FILTERED_CMDS, \
|
$(eval $(call SetupCopyFiles, COPY_FILTERED_CMDS, \
|
||||||
SRC := $(CMDS_DIR), \
|
SRC := $(CMDS_DIR), \
|
||||||
DEST := $(CMDS_DIR_FILTERED), \
|
DEST := $(CMDS_DIR_FILTERED), \
|
||||||
@@ -94,6 +96,18 @@ ifneq ($(CMDS_DIR), )
|
|||||||
))
|
))
|
||||||
DEPS += $(COPY_FILTERED_CMDS)
|
DEPS += $(COPY_FILTERED_CMDS)
|
||||||
JMOD_FLAGS += --cmds $(CMDS_DIR_FILTERED)
|
JMOD_FLAGS += --cmds $(CMDS_DIR_FILTERED)
|
||||||
|
else ifeq ($(call isTargetOs, windows)+$(SHIP_DEBUG_SYMBOLS), true+full)
|
||||||
|
# For full debug symbols on Windows, we have to filter out a few launcher pdbs
|
||||||
|
# where there's a lib that goes by the same name
|
||||||
|
CMDS_DIR_FILTERED := $(subst modules_cmds,modules_cmds_filtered, $(CMDS_DIR))
|
||||||
|
$(eval $(call SetupCopyFiles, COPY_FILTERED_CMDS, \
|
||||||
|
SRC := $(CMDS_DIR), \
|
||||||
|
DEST := $(CMDS_DIR_FILTERED), \
|
||||||
|
FILES := $(filter-out %jimage.pdb %jpackage.pdb %java.pdb, \
|
||||||
|
$(call FindFiles, $(CMDS_DIR))), \
|
||||||
|
))
|
||||||
|
DEPS += $(COPY_FILTERED_CMDS)
|
||||||
|
JMOD_FLAGS += --cmds $(CMDS_DIR_FILTERED)
|
||||||
else
|
else
|
||||||
JMOD_FLAGS += --cmds $(CMDS_DIR)
|
JMOD_FLAGS += --cmds $(CMDS_DIR)
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ $(CLASSLIST_FILE): $(INTERIM_IMAGE_DIR)/bin/java$(EXECUTABLE_SUFFIX) $(CLASSLIST
|
|||||||
$(FIXPATH) $(INTERIM_IMAGE_DIR)/bin/java -XX:DumpLoadedClassList=$@.raw \
|
$(FIXPATH) $(INTERIM_IMAGE_DIR)/bin/java -XX:DumpLoadedClassList=$@.raw \
|
||||||
-Duser.language=en -Duser.country=US \
|
-Duser.language=en -Duser.country=US \
|
||||||
-cp $(SUPPORT_OUTPUTDIR)/classlist.jar \
|
-cp $(SUPPORT_OUTPUTDIR)/classlist.jar \
|
||||||
build.tools.classlist.HelloClasslist jdk/src/classes/build/tools/classlist/clear.classlist $(LOG_DEBUG)
|
build.tools.classlist.HelloClasslist $(LOG_DEBUG)
|
||||||
$(GREP) -v HelloClasslist $@.raw > $@.interim
|
$(GREP) -v HelloClasslist $@.raw > $@.interim
|
||||||
$(FIXPATH) $(INTERIM_IMAGE_DIR)/bin/java -Xshare:dump \
|
$(FIXPATH) $(INTERIM_IMAGE_DIR)/bin/java -Xshare:dump \
|
||||||
-XX:SharedClassListFile=$@.interim -XX:SharedArchiveFile=$@.jsa \
|
-XX:SharedClassListFile=$@.interim -XX:SharedArchiveFile=$@.jsa \
|
||||||
@@ -79,7 +79,7 @@ $(CLASSLIST_FILE): $(INTERIM_IMAGE_DIR)/bin/java$(EXECUTABLE_SUFFIX) $(CLASSLIST
|
|||||||
-Duser.language=en -Duser.country=US \
|
-Duser.language=en -Duser.country=US \
|
||||||
--module-path $(SUPPORT_OUTPUTDIR)/classlist.jar \
|
--module-path $(SUPPORT_OUTPUTDIR)/classlist.jar \
|
||||||
-cp $(SUPPORT_OUTPUTDIR)/classlist.jar \
|
-cp $(SUPPORT_OUTPUTDIR)/classlist.jar \
|
||||||
build.tools.classlist.HelloClasslist jdk/src/classes/build/tools/classlist/clear.classlist \
|
build.tools.classlist.HelloClasslist \
|
||||||
2> $(LINK_OPT_DIR)/stderr > $(JLI_TRACE_FILE) \
|
2> $(LINK_OPT_DIR)/stderr > $(JLI_TRACE_FILE) \
|
||||||
|| ( \
|
|| ( \
|
||||||
exitcode=$$? ; \
|
exitcode=$$? ; \
|
||||||
|
|||||||
@@ -43,10 +43,10 @@ $(eval $(call SetupCopyFiles, COPY_JDK_IMG, \
|
|||||||
TARGETS += $(COPY_JDK_IMG)
|
TARGETS += $(COPY_JDK_IMG)
|
||||||
|
|
||||||
$(eval $(call SetupCopyFiles, COPY_STATIC_LIBS, \
|
$(eval $(call SetupCopyFiles, COPY_STATIC_LIBS, \
|
||||||
SRC := $(STATIC_LIBS_IMAGE_DIR)/lib, \
|
SRC := $(STATIC_LIBS_GRAAL_IMAGE_DIR)/lib, \
|
||||||
DEST := $(GRAAL_BUILDER_IMAGE_DIR)/lib, \
|
DEST := $(GRAAL_BUILDER_IMAGE_DIR)/lib, \
|
||||||
FILES := $(filter %$(STATIC_LIBRARY_SUFFIX), \
|
FILES := $(filter %$(STATIC_LIBRARY_SUFFIX), \
|
||||||
$(call FindFiles, $(STATIC_LIBS_IMAGE_DIR)/lib)), \
|
$(call FindFiles, $(STATIC_LIBS_GRAAL_IMAGE_DIR)/lib)), \
|
||||||
))
|
))
|
||||||
TARGETS += $(COPY_STATIC_LIBS)
|
TARGETS += $(COPY_STATIC_LIBS)
|
||||||
|
|
||||||
|
|||||||
@@ -267,6 +267,9 @@ else
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
FILTERED_PDBS := %jimage.stripped.pdb %jpackage.stripped.pdb %java.stripped.pdb \
|
||||||
|
%jimage.pdb %jpackage.pdb %java.pdb %jimage.map %jpackage.map %java.map
|
||||||
|
|
||||||
# Param 1 - either JDK or JRE
|
# Param 1 - either JDK or JRE
|
||||||
SetupCopyDebuginfo = \
|
SetupCopyDebuginfo = \
|
||||||
$(foreach m, $(ALL_$1_MODULES), \
|
$(foreach m, $(ALL_$1_MODULES), \
|
||||||
@@ -280,8 +283,8 @@ SetupCopyDebuginfo = \
|
|||||||
$(eval $(call SetupCopyFiles, COPY_$1_CMDS_DEBUGINFO_$m, \
|
$(eval $(call SetupCopyFiles, COPY_$1_CMDS_DEBUGINFO_$m, \
|
||||||
SRC := $(SUPPORT_OUTPUTDIR)/modules_cmds/$m, \
|
SRC := $(SUPPORT_OUTPUTDIR)/modules_cmds/$m, \
|
||||||
DEST := $($1_IMAGE_DIR)/$(CMDS_TARGET_SUBDIR), \
|
DEST := $($1_IMAGE_DIR)/$(CMDS_TARGET_SUBDIR), \
|
||||||
FILES := $(call FindDebuginfoFiles, \
|
FILES := $(filter-out $(FILTERED_PDBS), $(call FindDebuginfoFiles, \
|
||||||
$(SUPPORT_OUTPUTDIR)/modules_cmds/$m), \
|
$(SUPPORT_OUTPUTDIR)/modules_cmds/$m)), \
|
||||||
)) \
|
)) \
|
||||||
$(eval $1_TARGETS += $$(COPY_$1_CMDS_DEBUGINFO_$m)) \
|
$(eval $1_TARGETS += $$(COPY_$1_CMDS_DEBUGINFO_$m)) \
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,73 +0,0 @@
|
|||||||
#
|
|
||||||
# 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 Utils.gmk
|
|
||||||
|
|
||||||
JBR_API_ORIGIN := https://github.com/JetBrains/JetBrainsRuntimeApi.git
|
|
||||||
JBR_API_DIR := $(TOPDIR)/jbr-api
|
|
||||||
|
|
||||||
ARTIFACT_NAME := jbr-api-SNAPSHOT
|
|
||||||
ifeq ($(call isBuildOsEnv, windows.cygwin windows.msys2), true)
|
|
||||||
HOME := $$USERPROFILE
|
|
||||||
M2_REPO := $(shell $(PATHTOOL) $(HOME))/.m2/repository
|
|
||||||
else ifeq ($(call isBuildOsEnv, windows.wsl1 windows.wsl2), true)
|
|
||||||
HOME := `cmd.exe /C "echo %USERPROFILE%" 2> /dev/null`
|
|
||||||
M2_REPO := $(shell $(PATHTOOL) $(HOME))/.m2/repository
|
|
||||||
else
|
|
||||||
M2_REPO := $(HOME)/.m2/repository
|
|
||||||
endif
|
|
||||||
M2_ARTIFACT := $(M2_REPO)/com/jetbrains/jbr-api/SNAPSHOT
|
|
||||||
M2_POM_CONTENT := \
|
|
||||||
<?xml version="1.0" encoding="UTF-8"?> \
|
|
||||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" \
|
|
||||||
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> \
|
|
||||||
<modelVersion>4.0.0</modelVersion> \
|
|
||||||
<groupId>com.jetbrains</groupId> \
|
|
||||||
<artifactId>jbr-api</artifactId> \
|
|
||||||
<version>SNAPSHOT</version> \
|
|
||||||
</project> \
|
|
||||||
|
|
||||||
jbr-api:
|
|
||||||
if [ -d "$(JBR_API_DIR)" ]; then \
|
|
||||||
$(GIT) -C "$(JBR_API_DIR)" fetch; \
|
|
||||||
$(GIT) -C "$(JBR_API_DIR)" merge-base --is-ancestor origin/main HEAD || \
|
|
||||||
$(ECHO) "!!! Current JBR API revision is outdated, update the branch in $(JBR_API_DIR) !!!"; \
|
|
||||||
else \
|
|
||||||
$(ECHO) "JBR API directory does not exist. Initializing..."; \
|
|
||||||
$(GIT) clone "$(JBR_API_ORIGIN)" "$(JBR_API_DIR)" --config core.autocrlf=false; \
|
|
||||||
fi
|
|
||||||
$(BASH) "$(JBR_API_DIR)/tools/build.sh" dev "$(BOOT_JDK)"
|
|
||||||
if [ -d "$(M2_REPO)" ]; then \
|
|
||||||
$(MKDIR) -p $(M2_ARTIFACT); \
|
|
||||||
$(ECHO) "$(M2_POM_CONTENT)" > $(M2_ARTIFACT)/$(ARTIFACT_NAME).pom; \
|
|
||||||
$(CP) "$(JBR_API_DIR)/out/$(ARTIFACT_NAME).jar" "$(M2_ARTIFACT)"; \
|
|
||||||
$(ECHO) "Installed into local Maven repository as com.jetbrains:jbr-api:SNAPSHOT"; \
|
|
||||||
else \
|
|
||||||
$(ECHO) "No Maven repository found at $(M2_REPO) - skipping local installation"; \
|
|
||||||
fi
|
|
||||||
|
|
||||||
.PHONY: jbr-api
|
|
||||||
@@ -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
|
||||||
@@ -46,10 +46,8 @@ JIMAGE_PKGS := \
|
|||||||
jdk/internal/jrtfs \
|
jdk/internal/jrtfs \
|
||||||
#
|
#
|
||||||
|
|
||||||
# Compile jrt-fs.jar with the interim compiler, as it
|
|
||||||
# ends up in the image, this will ensure reproducible classes
|
|
||||||
$(eval $(call SetupJavaCompilation, BUILD_JRTFS, \
|
$(eval $(call SetupJavaCompilation, BUILD_JRTFS, \
|
||||||
COMPILER := interim, \
|
COMPILER := bootjdk, \
|
||||||
DISABLED_WARNINGS := options, \
|
DISABLED_WARNINGS := options, \
|
||||||
TARGET_RELEASE := $(TARGET_RELEASE_JDK8), \
|
TARGET_RELEASE := $(TARGET_RELEASE_JDK8), \
|
||||||
SRC := $(TOPDIR)/src/java.base/share/classes, \
|
SRC := $(TOPDIR)/src/java.base/share/classes, \
|
||||||
|
|||||||
@@ -233,6 +233,7 @@ ALL_TARGETS += $(LAUNCHER_TARGETS)
|
|||||||
HOTSPOT_VARIANT_TARGETS := $(addprefix hotspot-, $(JVM_VARIANTS))
|
HOTSPOT_VARIANT_TARGETS := $(addprefix hotspot-, $(JVM_VARIANTS))
|
||||||
HOTSPOT_VARIANT_GENSRC_TARGETS := $(addsuffix -gensrc, $(HOTSPOT_VARIANT_TARGETS))
|
HOTSPOT_VARIANT_GENSRC_TARGETS := $(addsuffix -gensrc, $(HOTSPOT_VARIANT_TARGETS))
|
||||||
HOTSPOT_VARIANT_LIBS_TARGETS := $(addsuffix -libs, $(HOTSPOT_VARIANT_TARGETS))
|
HOTSPOT_VARIANT_LIBS_TARGETS := $(addsuffix -libs, $(HOTSPOT_VARIANT_TARGETS))
|
||||||
|
HOTSPOT_VARIANT_STATIC_LIBS_TARGETS := $(addsuffix -static-libs, $(HOTSPOT_VARIANT_TARGETS))
|
||||||
|
|
||||||
define DeclareHotspotGensrcRecipe
|
define DeclareHotspotGensrcRecipe
|
||||||
hotspot-$1-gensrc:
|
hotspot-$1-gensrc:
|
||||||
@@ -251,6 +252,14 @@ endef
|
|||||||
|
|
||||||
$(foreach v, $(JVM_VARIANTS), $(eval $(call DeclareHotspotLibsRecipe,$v)))
|
$(foreach v, $(JVM_VARIANTS), $(eval $(call DeclareHotspotLibsRecipe,$v)))
|
||||||
|
|
||||||
|
define DeclareHotspotStaticLibsRecipe
|
||||||
|
hotspot-$1-static-libs:
|
||||||
|
+($(CD) $(TOPDIR)/make/hotspot && $(MAKE) $(MAKE_ARGS) -f lib/CompileLibraries.gmk \
|
||||||
|
JVM_VARIANT=$1 STATIC_LIBS=true)
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(foreach v, $(JVM_VARIANTS), $(eval $(call DeclareHotspotStaticLibsRecipe,$v)))
|
||||||
|
|
||||||
$(eval $(call SetupTarget, hotspot-ide-project, \
|
$(eval $(call SetupTarget, hotspot-ide-project, \
|
||||||
MAKEFILE := ide/visualstudio/hotspot/CreateVSProject, \
|
MAKEFILE := ide/visualstudio/hotspot/CreateVSProject, \
|
||||||
DEPS := hotspot exploded-image, \
|
DEPS := hotspot exploded-image, \
|
||||||
@@ -298,7 +307,7 @@ $(eval $(call SetupTarget, eclipse-shared-mixed-env, \
|
|||||||
))
|
))
|
||||||
|
|
||||||
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) $(HOTSPOT_VARIANT_STATIC_LIBS_TARGETS)
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Help and user support
|
# Help and user support
|
||||||
@@ -462,6 +471,12 @@ $(eval $(call SetupTarget, symbols-image, \
|
|||||||
|
|
||||||
$(eval $(call SetupTarget, static-libs-image, \
|
$(eval $(call SetupTarget, static-libs-image, \
|
||||||
MAKEFILE := StaticLibsImage, \
|
MAKEFILE := StaticLibsImage, \
|
||||||
|
TARGET := static-libs-image, \
|
||||||
|
))
|
||||||
|
|
||||||
|
$(eval $(call SetupTarget, static-libs-graal-image, \
|
||||||
|
MAKEFILE := StaticLibsImage, \
|
||||||
|
TARGET := static-libs-graal-image, \
|
||||||
))
|
))
|
||||||
|
|
||||||
$(eval $(call SetupTarget, mac-jdk-bundle, \
|
$(eval $(call SetupTarget, mac-jdk-bundle, \
|
||||||
@@ -489,7 +504,7 @@ $(eval $(call SetupTarget, exploded-image-optimize, \
|
|||||||
|
|
||||||
$(eval $(call SetupTarget, graal-builder-image, \
|
$(eval $(call SetupTarget, graal-builder-image, \
|
||||||
MAKEFILE := GraalBuilderImage, \
|
MAKEFILE := GraalBuilderImage, \
|
||||||
DEPS := jdk-image static-libs-image, \
|
DEPS := jdk-image static-libs-graal-image, \
|
||||||
))
|
))
|
||||||
|
|
||||||
ifeq ($(JCOV_ENABLED), true)
|
ifeq ($(JCOV_ENABLED), true)
|
||||||
@@ -889,6 +904,7 @@ else
|
|||||||
$(foreach v, $(JVM_VARIANTS), \
|
$(foreach v, $(JVM_VARIANTS), \
|
||||||
$(eval hotspot-$v-gensrc: java.base-copy buildtools-hotspot) \
|
$(eval hotspot-$v-gensrc: java.base-copy buildtools-hotspot) \
|
||||||
$(eval hotspot-$v-libs: hotspot-$v-gensrc java.base-copy) \
|
$(eval hotspot-$v-libs: hotspot-$v-gensrc java.base-copy) \
|
||||||
|
$(eval hotspot-$v-static-libs: hotspot-$v-gensrc java.base-copy) \
|
||||||
)
|
)
|
||||||
|
|
||||||
# If not already set, set the JVM variant target so that the JVM will be built.
|
# If not already set, set the JVM variant target so that the JVM will be built.
|
||||||
@@ -1047,7 +1063,9 @@ else
|
|||||||
|
|
||||||
symbols-image: $(LIBS_TARGETS) $(LAUNCHER_TARGETS)
|
symbols-image: $(LIBS_TARGETS) $(LAUNCHER_TARGETS)
|
||||||
|
|
||||||
static-libs-image: $(STATIC_LIBS_TARGETS)
|
static-libs-image: hotspot-static-libs $(STATIC_LIBS_TARGETS)
|
||||||
|
|
||||||
|
static-libs-graal-image: $(STATIC_LIBS_TARGETS)
|
||||||
|
|
||||||
bootcycle-images: jdk-image
|
bootcycle-images: jdk-image
|
||||||
|
|
||||||
@@ -1097,6 +1115,7 @@ hotspot: $(HOTSPOT_VARIANT_TARGETS)
|
|||||||
$(foreach v, $(JVM_VARIANTS), \
|
$(foreach v, $(JVM_VARIANTS), \
|
||||||
$(eval hotspot-libs: hotspot-$v-libs) \
|
$(eval hotspot-libs: hotspot-$v-libs) \
|
||||||
$(eval hotspot-gensrc: hotspot-$v-gensrc) \
|
$(eval hotspot-gensrc: hotspot-$v-gensrc) \
|
||||||
|
$(eval hotspot-static-libs: hotspot-$v-static-libs) \
|
||||||
)
|
)
|
||||||
|
|
||||||
gensrc: $(GENSRC_TARGETS)
|
gensrc: $(GENSRC_TARGETS)
|
||||||
@@ -1259,7 +1278,8 @@ all-images: product-images test-image all-docs-images
|
|||||||
# all-bundles packages all our deliverables as tar.gz bundles.
|
# all-bundles packages all our deliverables as tar.gz bundles.
|
||||||
all-bundles: product-bundles test-bundles docs-bundles static-libs-bundles
|
all-bundles: product-bundles test-bundles docs-bundles static-libs-bundles
|
||||||
|
|
||||||
ALL_TARGETS += buildtools hotspot hotspot-libs hotspot-gensrc gensrc gendata \
|
ALL_TARGETS += buildtools hotspot hotspot-libs hotspot-static-libs \
|
||||||
|
hotspot-gensrc gensrc gendata \
|
||||||
copy java libs static-libs launchers jmods \
|
copy java libs static-libs launchers jmods \
|
||||||
jdk.jdwp.agent-gensrc $(ALL_MODULES) demos \
|
jdk.jdwp.agent-gensrc $(ALL_MODULES) demos \
|
||||||
exploded-image-base exploded-image runnable-buildjdk \
|
exploded-image-base exploded-image runnable-buildjdk \
|
||||||
@@ -1414,14 +1434,6 @@ 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))
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2016, 2023, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# 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
|
||||||
@@ -178,8 +178,7 @@ ifeq ($(TEST_JOBS), 0)
|
|||||||
c = c * $(TEST_JOBS_FACTOR_JDL); \
|
c = c * $(TEST_JOBS_FACTOR_JDL); \
|
||||||
c = c * $(TEST_JOBS_FACTOR_MACHINE); \
|
c = c * $(TEST_JOBS_FACTOR_MACHINE); \
|
||||||
if (c < 1) c = 1; \
|
if (c < 1) c = 1; \
|
||||||
c = c + 0.5; \
|
printf "%.0f", c; \
|
||||||
printf "%d", c; \
|
|
||||||
}')
|
}')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -357,7 +356,7 @@ ExpandJtregPath = \
|
|||||||
# with test id: dir/Test.java#selection -> Test.java#selection -> .java#selection -> #selection
|
# with test id: dir/Test.java#selection -> Test.java#selection -> .java#selection -> #selection
|
||||||
# without: dir/Test.java -> Test.java -> .java -> <<empty string>>
|
# without: dir/Test.java -> Test.java -> .java -> <<empty string>>
|
||||||
TestID = \
|
TestID = \
|
||||||
$(subst .jasm,,$(subst .sh,,$(subst .html,,$(subst .java,,$(suffix $(notdir $1))))))
|
$(subst .sh,,$(subst .html,,$(subst .java,,$(suffix $(notdir $1)))))
|
||||||
|
|
||||||
# The test id starting with a hash (#testid) will be stripped by all
|
# The test id starting with a hash (#testid) will be stripped by all
|
||||||
# evals in ParseJtregTestSelectionInner and will be reinserted by calling
|
# evals in ParseJtregTestSelectionInner and will be reinserted by calling
|
||||||
@@ -602,7 +601,7 @@ define SetupRunMicroTestBody
|
|||||||
$1_JMH_JVM_ARGS += $$(MICRO_VM_OPTIONS) $$(MICRO_JAVA_OPTIONS)
|
$1_JMH_JVM_ARGS += $$(MICRO_VM_OPTIONS) $$(MICRO_JAVA_OPTIONS)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
$1_MICRO_VM_OPTIONS := -jvmArgsPrepend $(call ShellQuote,$$($1_JMH_JVM_ARGS))
|
$1_MICRO_VM_OPTIONS := -jvmArgs $(call ShellQuote,$$($1_JMH_JVM_ARGS))
|
||||||
|
|
||||||
ifneq ($$(MICRO_ITER), )
|
ifneq ($$(MICRO_ITER), )
|
||||||
$1_MICRO_ITER := -i $$(MICRO_ITER)
|
$1_MICRO_ITER := -i $$(MICRO_ITER)
|
||||||
@@ -743,6 +742,8 @@ define SetupRunJtregTestBody
|
|||||||
# we may end up with a lot of JVM's
|
# we may end up with a lot of JVM's
|
||||||
$1_JTREG_MAX_RAM_PERCENTAGE := $$(shell $(AWK) 'BEGIN { print 25 / $$($1_JTREG_JOBS); }')
|
$1_JTREG_MAX_RAM_PERCENTAGE := $$(shell $(AWK) 'BEGIN { print 25 / $$($1_JTREG_JOBS); }')
|
||||||
|
|
||||||
|
JTREG_TIMEOUT_FACTOR ?= 4
|
||||||
|
|
||||||
JTREG_VERBOSE ?= fail,error,summary
|
JTREG_VERBOSE ?= fail,error,summary
|
||||||
JTREG_RETAIN ?= fail,error
|
JTREG_RETAIN ?= fail,error
|
||||||
JTREG_TEST_THREAD_FACTORY ?=
|
JTREG_TEST_THREAD_FACTORY ?=
|
||||||
@@ -799,10 +800,8 @@ define SetupRunJtregTestBody
|
|||||||
$1_JTREG_BASIC_OPTIONS += -e:JIB_DATA_DIR
|
$1_JTREG_BASIC_OPTIONS += -e:JIB_DATA_DIR
|
||||||
# If running on Windows, propagate the _NT_SYMBOL_PATH to enable
|
# If running on Windows, propagate the _NT_SYMBOL_PATH to enable
|
||||||
# symbol lookup in hserr files
|
# symbol lookup in hserr files
|
||||||
# The minidumps are disabled by default on client Windows, so enable them
|
|
||||||
ifeq ($$(call isTargetOs, windows), true)
|
ifeq ($$(call isTargetOs, windows), true)
|
||||||
$1_JTREG_BASIC_OPTIONS += -e:_NT_SYMBOL_PATH
|
$1_JTREG_BASIC_OPTIONS += -e:_NT_SYMBOL_PATH
|
||||||
$1_JTREG_BASIC_OPTIONS += -vmoption:-XX:+CreateCoredumpOnCrash
|
|
||||||
else ifeq ($$(call isTargetOs, linux), true)
|
else ifeq ($$(call isTargetOs, linux), true)
|
||||||
$1_JTREG_BASIC_OPTIONS += -e:_JVM_DWARF_PATH=$$(SYMBOLS_IMAGE_DIR)
|
$1_JTREG_BASIC_OPTIONS += -e:_JVM_DWARF_PATH=$$(SYMBOLS_IMAGE_DIR)
|
||||||
endif
|
endif
|
||||||
@@ -830,28 +829,6 @@ define SetupRunJtregTestBody
|
|||||||
$1_JTREG_BASIC_OPTIONS += $$(addprefix $$(JTREG_PROBLEM_LIST_PREFIX), $$($1_JTREG_PROBLEM_LIST))
|
$1_JTREG_BASIC_OPTIONS += $$(addprefix $$(JTREG_PROBLEM_LIST_PREFIX), $$($1_JTREG_PROBLEM_LIST))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
JTREG_ALL_OPTIONS := $$(JTREG_JAVA_OPTIONS) $$(JTREG_VM_OPTIONS)
|
|
||||||
|
|
||||||
JTREG_AUTO_PROBLEM_LISTS :=
|
|
||||||
JTREG_AUTO_TIMEOUT_FACTOR := 4
|
|
||||||
|
|
||||||
ifneq ($$(findstring -Xcomp, $$(JTREG_ALL_OPTIONS)), )
|
|
||||||
JTREG_AUTO_PROBLEM_LISTS += ProblemList-Xcomp.txt
|
|
||||||
JTREG_AUTO_TIMEOUT_FACTOR := 10
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifneq ($$(findstring -XX:+UseZGC, $$(JTREG_ALL_OPTIONS)), )
|
|
||||||
ifneq ($$(findstring -XX:-ZGenerational, $$(JTREG_ALL_OPTIONS)), )
|
|
||||||
JTREG_AUTO_PROBLEM_LISTS += ProblemList-zgc.txt
|
|
||||||
else
|
|
||||||
JTREG_AUTO_PROBLEM_LISTS += ProblemList-generational-zgc.txt
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifneq ($$(findstring -XX:+UseShenandoahGC, $$(JTREG_ALL_OPTIONS)), )
|
|
||||||
JTREG_AUTO_PROBLEM_LISTS += ProblemList-shenandoah.txt
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifneq ($$(JTREG_EXTRA_PROBLEM_LISTS), )
|
ifneq ($$(JTREG_EXTRA_PROBLEM_LISTS), )
|
||||||
# Accept both absolute paths as well as relative to the current test root.
|
# Accept both absolute paths as well as relative to the current test root.
|
||||||
$1_JTREG_BASIC_OPTIONS += $$(addprefix $$(JTREG_PROBLEM_LIST_PREFIX), $$(wildcard \
|
$1_JTREG_BASIC_OPTIONS += $$(addprefix $$(JTREG_PROBLEM_LIST_PREFIX), $$(wildcard \
|
||||||
@@ -883,24 +860,11 @@ define SetupRunJtregTestBody
|
|||||||
|
|
||||||
$$(eval $$(call SetupRunJtregTestCustom, $1))
|
$$(eval $$(call SetupRunJtregTestCustom, $1))
|
||||||
|
|
||||||
# SetupRunJtregTestCustom might also adjust JTREG_AUTO_ variables
|
clean-workdir-$1:
|
||||||
# so set the final results after setting values from custom setup
|
|
||||||
ifneq ($$(JTREG_AUTO_PROBLEM_LISTS), )
|
|
||||||
# Accept both absolute paths as well as relative to the current test root.
|
|
||||||
$1_JTREG_BASIC_OPTIONS += $$(addprefix $$(JTREG_PROBLEM_LIST_PREFIX), $$(wildcard \
|
|
||||||
$$(JTREG_AUTO_PROBLEM_LISTS) \
|
|
||||||
$$(addprefix $$($1_TEST_ROOT)/, $$(JTREG_AUTO_PROBLEM_LISTS)) \
|
|
||||||
))
|
|
||||||
endif
|
|
||||||
|
|
||||||
JTREG_TIMEOUT_FACTOR ?= $$(JTREG_AUTO_TIMEOUT_FACTOR)
|
|
||||||
|
|
||||||
clean-outputdirs-$1:
|
|
||||||
$$(RM) -r $$($1_TEST_SUPPORT_DIR)
|
$$(RM) -r $$($1_TEST_SUPPORT_DIR)
|
||||||
$$(RM) -r $$($1_TEST_RESULTS_DIR)
|
|
||||||
|
|
||||||
$1_COMMAND_LINE := \
|
$1_COMMAND_LINE := \
|
||||||
$$(JTREG_JAVA) $$($1_JTREG_LAUNCHER_OPTIONS) \
|
$$(JAVA) $$($1_JTREG_LAUNCHER_OPTIONS) \
|
||||||
-Dprogram=jtreg -jar $$(JT_HOME)/lib/jtreg.jar \
|
-Dprogram=jtreg -jar $$(JT_HOME)/lib/jtreg.jar \
|
||||||
$$($1_JTREG_BASIC_OPTIONS) \
|
$$($1_JTREG_BASIC_OPTIONS) \
|
||||||
-testjdk:$$(JDK_UNDER_TEST) \
|
-testjdk:$$(JDK_UNDER_TEST) \
|
||||||
@@ -943,7 +907,7 @@ define SetupRunJtregTestBody
|
|||||||
done
|
done
|
||||||
endif
|
endif
|
||||||
|
|
||||||
run-test-$1: pre-run-test clean-outputdirs-$1
|
run-test-$1: pre-run-test clean-workdir-$1
|
||||||
$$(call LogWarn)
|
$$(call LogWarn)
|
||||||
$$(call LogWarn, Running test '$$($1_TEST)')
|
$$(call LogWarn, Running test '$$($1_TEST)')
|
||||||
$$(call MakeDir, $$($1_TEST_RESULTS_DIR) $$($1_TEST_SUPPORT_DIR) \
|
$$(call MakeDir, $$($1_TEST_RESULTS_DIR) $$($1_TEST_SUPPORT_DIR) \
|
||||||
@@ -980,9 +944,9 @@ define SetupRunJtregTestBody
|
|||||||
$$(eval $1_TOTAL := 1) \
|
$$(eval $1_TOTAL := 1) \
|
||||||
)
|
)
|
||||||
|
|
||||||
$1: run-test-$1 parse-test-$1 clean-outputdirs-$1
|
$1: run-test-$1 parse-test-$1 clean-workdir-$1
|
||||||
|
|
||||||
TARGETS += $1 run-test-$1 parse-test-$1 clean-outputdirs-$1
|
TARGETS += $1 run-test-$1 parse-test-$1 clean-workdir-$1
|
||||||
TEST_TARGETS += parse-test-$1
|
TEST_TARGETS += parse-test-$1
|
||||||
|
|
||||||
endef
|
endef
|
||||||
|
|||||||
@@ -122,7 +122,6 @@ $(eval $(call SetupVariable,JT_HOME))
|
|||||||
$(eval $(call SetupVariable,JDK_IMAGE_DIR,$(OUTPUTDIR)/images/jdk))
|
$(eval $(call SetupVariable,JDK_IMAGE_DIR,$(OUTPUTDIR)/images/jdk))
|
||||||
$(eval $(call SetupVariable,TEST_IMAGE_DIR,$(OUTPUTDIR)/images/test))
|
$(eval $(call SetupVariable,TEST_IMAGE_DIR,$(OUTPUTDIR)/images/test))
|
||||||
$(eval $(call SetupVariable,SYMBOLS_IMAGE_DIR,$(OUTPUTDIR)/images/symbols,NO_CHECK))
|
$(eval $(call SetupVariable,SYMBOLS_IMAGE_DIR,$(OUTPUTDIR)/images/symbols,NO_CHECK))
|
||||||
$(eval $(call SetupVariable,JTREG_JDK,$(BOOT_JDK)))
|
|
||||||
|
|
||||||
# Provide default values for tools that we need
|
# Provide default values for tools that we need
|
||||||
$(eval $(call SetupVariable,MAKE,make,NO_CHECK))
|
$(eval $(call SetupVariable,MAKE,make,NO_CHECK))
|
||||||
@@ -158,10 +157,6 @@ ifeq ($(UNAME_OS), CYGWIN)
|
|||||||
OPENJDK_TARGET_OS := windows
|
OPENJDK_TARGET_OS := windows
|
||||||
OPENJDK_TARGET_OS_TYPE := windows
|
OPENJDK_TARGET_OS_TYPE := windows
|
||||||
OPENJDK_TARGET_OS_ENV := windows.cygwin
|
OPENJDK_TARGET_OS_ENV := windows.cygwin
|
||||||
else ifeq ($(UNAME_OS), MINGW64)
|
|
||||||
OPENJDK_TARGET_OS := windows
|
|
||||||
OPENJDK_TARGET_OS_TYPE := windows
|
|
||||||
OPENJDK_TARGET_OS_ENV := windows.msys2
|
|
||||||
else
|
else
|
||||||
OPENJDK_TARGET_OS_TYPE:=unix
|
OPENJDK_TARGET_OS_TYPE:=unix
|
||||||
ifeq ($(UNAME_OS), Linux)
|
ifeq ($(UNAME_OS), Linux)
|
||||||
@@ -174,9 +169,6 @@ else
|
|||||||
OPENJDK_TARGET_OS_ENV := $(OPENJDK_TARGET_OS)
|
OPENJDK_TARGET_OS_ENV := $(OPENJDK_TARGET_OS)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Sanity check env detection
|
|
||||||
$(info Detected target OS, type and env: [$(OPENJDK_TARGET_OS)] [$(OPENJDK_TARGET_OS_TYPE)] [$(OPENJDK_TARGET_OS_ENV)])
|
|
||||||
|
|
||||||
# Assume little endian unless otherwise specified
|
# Assume little endian unless otherwise specified
|
||||||
OPENJDK_TARGET_CPU_ENDIAN := little
|
OPENJDK_TARGET_CPU_ENDIAN := little
|
||||||
|
|
||||||
@@ -256,7 +248,6 @@ $(call CreateNewSpec, $(NEW_SPEC), \
|
|||||||
TOPDIR := $(TOPDIR), \
|
TOPDIR := $(TOPDIR), \
|
||||||
OUTPUTDIR := $(OUTPUTDIR), \
|
OUTPUTDIR := $(OUTPUTDIR), \
|
||||||
BOOT_JDK := $(BOOT_JDK), \
|
BOOT_JDK := $(BOOT_JDK), \
|
||||||
JTREG_JDK := $(JTREG_JDK), \
|
|
||||||
JT_HOME := $(JT_HOME), \
|
JT_HOME := $(JT_HOME), \
|
||||||
JDK_IMAGE_DIR := $(JDK_IMAGE_DIR), \
|
JDK_IMAGE_DIR := $(JDK_IMAGE_DIR), \
|
||||||
JCOV_IMAGE_DIR := $(JCOV_IMAGE_DIR), \
|
JCOV_IMAGE_DIR := $(JCOV_IMAGE_DIR), \
|
||||||
|
|||||||
@@ -124,8 +124,6 @@ JAR := $(FIXPATH) $(JAR_CMD)
|
|||||||
JLINK := $(FIXPATH) $(JLINK_CMD)
|
JLINK := $(FIXPATH) $(JLINK_CMD)
|
||||||
JMOD := $(FIXPATH) $(JMOD_CMD)
|
JMOD := $(FIXPATH) $(JMOD_CMD)
|
||||||
|
|
||||||
JTREG_JAVA := $(FIXPATH) $(JTREG_JDK)/bin/java $(JAVA_FLAGS_BIG) $(JAVA_FLAGS)
|
|
||||||
|
|
||||||
BUILD_JAVA := $(JDK_IMAGE_DIR)/bin/JAVA
|
BUILD_JAVA := $(JDK_IMAGE_DIR)/bin/JAVA
|
||||||
################################################################################
|
################################################################################
|
||||||
# Some common tools. Assume most common name and no path.
|
# Some common tools. Assume most common name and no path.
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2019, 2023, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -38,19 +38,43 @@ ALL_MODULES = $(call FindAllModules)
|
|||||||
|
|
||||||
TARGETS :=
|
TARGETS :=
|
||||||
|
|
||||||
|
ifneq ($(filter static-libs-image, $(MAKECMDGOALS)), )
|
||||||
|
IMAGE_DEST_DIR=$(STATIC_LIBS_IMAGE_DIR)/lib
|
||||||
|
else ifneq ($(filter static-libs-graal-image, $(MAKECMDGOALS)), )
|
||||||
|
IMAGE_DEST_DIR=$(STATIC_LIBS_GRAAL_IMAGE_DIR)/lib
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Copy JDK static libs to the image.
|
||||||
$(foreach m, $(ALL_MODULES), \
|
$(foreach m, $(ALL_MODULES), \
|
||||||
$(eval $(call SetupCopyFiles, COPY_STATIC_LIBS_$m, \
|
$(eval $(call SetupCopyFiles, COPY_STATIC_LIBS_$m, \
|
||||||
FLATTEN := true, \
|
FLATTEN := true, \
|
||||||
SRC := $(SUPPORT_OUTPUTDIR)/native/$m, \
|
SRC := $(SUPPORT_OUTPUTDIR)/native/$m, \
|
||||||
DEST := $(STATIC_LIBS_IMAGE_DIR)/lib, \
|
DEST := $(IMAGE_DEST_DIR), \
|
||||||
FILES := $(filter %$(STATIC_LIBRARY_SUFFIX), \
|
FILES := $(filter %$(STATIC_LIBRARY_SUFFIX), \
|
||||||
$(call FindFiles, $(SUPPORT_OUTPUTDIR)/native/$m/*/static)), \
|
$(call FindFiles, $(SUPPORT_OUTPUTDIR)/native/$m/*/static)), \
|
||||||
)) \
|
)) \
|
||||||
$(eval TARGETS += $$(COPY_STATIC_LIBS_$m)) \
|
$(eval TARGETS += $$(COPY_STATIC_LIBS_$m)) \
|
||||||
|
$(eval STATIC_LIBS_TARGETS += $$(COPY_STATIC_LIBS_$m)) \
|
||||||
)
|
)
|
||||||
|
|
||||||
|
ifneq ($(filter static-libs-image, $(MAKECMDGOALS)), )
|
||||||
|
# Copy libjvm static library to the image.
|
||||||
|
$(foreach v, $(JVM_VARIANTS), \
|
||||||
|
$(eval $(call SetupCopyFiles, COPY_STATIC_LIBS_$v, \
|
||||||
|
SRC := $(HOTSPOT_OUTPUTDIR)/variant-$v/libjvm/objs/static, \
|
||||||
|
DEST := $(IMAGE_DEST_DIR)/$v, \
|
||||||
|
FILES := $(wildcard $(HOTSPOT_OUTPUTDIR)/variant-$v/libjvm/objs/static/*$(STATIC_LIBRARY_SUFFIX)), \
|
||||||
|
)) \
|
||||||
|
$(eval TARGETS += $$(COPY_STATIC_LIBS_$v)) \
|
||||||
|
$(eval HOTSPOT_VARIANT_STATIC_LIBS_TARGETS += $$(COPY_STATIC_LIBS_$v)) \
|
||||||
|
)
|
||||||
|
endif
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
static-libs-image: $(HOTSPOT_VARIANT_STATIC_LIBS_TARGETS) $(STATIC_LIBS_TARGETS)
|
||||||
|
static-libs-graal-image: $(STATIC_LIBS_TARGETS)
|
||||||
|
|
||||||
all: $(TARGETS)
|
all: $(TARGETS)
|
||||||
|
|
||||||
.PHONY: all
|
.PHONY: all
|
||||||
|
|||||||
@@ -88,9 +88,9 @@ ifeq ($(call isTargetOs, windows), true)
|
|||||||
$(eval $(call SetupZipArchive,BUILD_JGSS_BIN_ZIP, \
|
$(eval $(call SetupZipArchive,BUILD_JGSS_BIN_ZIP, \
|
||||||
SRC := $(SUPPORT_OUTPUTDIR), \
|
SRC := $(SUPPORT_OUTPUTDIR), \
|
||||||
INCLUDE_FILES := modules_libs/java.security.jgss/w2k_lsa_auth.dll \
|
INCLUDE_FILES := modules_libs/java.security.jgss/w2k_lsa_auth.dll \
|
||||||
modules_libs/java.security.jgss/w2k_lsa_auth.dll.diz \
|
modules_libs/java.security.jgss/w2k_lsa_auth.diz \
|
||||||
modules_libs/java.security.jgss/w2k_lsa_auth.dll.map \
|
modules_libs/java.security.jgss/w2k_lsa_auth.map \
|
||||||
modules_libs/java.security.jgss/w2k_lsa_auth.dll.pdb, \
|
modules_libs/java.security.jgss/w2k_lsa_auth.pdb, \
|
||||||
ZIP := $(IMAGES_OUTPUTDIR)/$(JGSS_ZIP_NAME)))
|
ZIP := $(IMAGES_OUTPUTDIR)/$(JGSS_ZIP_NAME)))
|
||||||
|
|
||||||
TARGETS += $(IMAGES_OUTPUTDIR)/$(JGSS_ZIP_NAME)
|
TARGETS += $(IMAGES_OUTPUTDIR)/$(JGSS_ZIP_NAME)
|
||||||
|
|||||||
@@ -406,9 +406,9 @@ AC_DEFUN_ONCE([BASIC_SETUP_OUTPUT_DIR],
|
|||||||
# WARNING: This might be a bad thing to do. You need to be sure you want to
|
# WARNING: This might be a bad thing to do. You need to be sure you want to
|
||||||
# have a configuration in this directory. Do some sanity checks!
|
# have a configuration in this directory. Do some sanity checks!
|
||||||
|
|
||||||
if test ! -e "$OUTPUTDIR/spec.gmk" && test ! -e "$OUTPUTDIR/configure-support/generated-configure.sh"; then
|
if test ! -e "$OUTPUTDIR/spec.gmk"; then
|
||||||
# If we have a spec.gmk or configure-support/generated-configure.sh,
|
# If we have a spec.gmk, we have run here before and we are OK. Otherwise, check for
|
||||||
# we have run here before and we are OK. Otherwise, check for other files
|
# other files
|
||||||
files_present=`$LS $OUTPUTDIR`
|
files_present=`$LS $OUTPUTDIR`
|
||||||
# Configure has already touched config.log and confdefs.h in the current dir when this check
|
# Configure has already touched config.log and confdefs.h in the current dir when this check
|
||||||
# is performed.
|
# is performed.
|
||||||
@@ -423,9 +423,8 @@ AC_DEFUN_ONCE([BASIC_SETUP_OUTPUT_DIR],
|
|||||||
AC_MSG_NOTICE([Current directory is $CONFIGURE_START_DIR.])
|
AC_MSG_NOTICE([Current directory is $CONFIGURE_START_DIR.])
|
||||||
AC_MSG_NOTICE([Since this is not the source root, configure will output the configuration here])
|
AC_MSG_NOTICE([Since this is not the source root, configure will output the configuration here])
|
||||||
AC_MSG_NOTICE([(as opposed to creating a configuration in <src_root>/build/<conf-name>).])
|
AC_MSG_NOTICE([(as opposed to creating a configuration in <src_root>/build/<conf-name>).])
|
||||||
AC_MSG_NOTICE([However, this directory is not empty, additionally to some allowed files])
|
AC_MSG_NOTICE([However, this directory is not empty. This is not allowed, since it could])
|
||||||
AC_MSG_NOTICE([it contains $filtered_files.])
|
AC_MSG_NOTICE([seriously mess up just about everything.])
|
||||||
AC_MSG_NOTICE([This is not allowed, since it could seriously mess up just about everything.])
|
|
||||||
AC_MSG_NOTICE([Try 'cd $TOPDIR' and restart configure])
|
AC_MSG_NOTICE([Try 'cd $TOPDIR' and restart configure])
|
||||||
AC_MSG_NOTICE([(or create a new empty directory and cd to it).])
|
AC_MSG_NOTICE([(or create a new empty directory and cd to it).])
|
||||||
AC_MSG_ERROR([Will not continue creating configuration in $CONFIGURE_START_DIR])
|
AC_MSG_ERROR([Will not continue creating configuration in $CONFIGURE_START_DIR])
|
||||||
|
|||||||
@@ -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.wsl1" || test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl2"; then
|
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl2"; then
|
||||||
# Don't trust the current directory for WSL, but change to an OK temp dir
|
# Don't trust the current directory for WSL2, 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.wsl1" || test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl2"; then
|
if 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
|
||||||
|
|||||||
@@ -313,11 +313,9 @@ AC_OUTPUT
|
|||||||
|
|
||||||
# After AC_OUTPUT, we need to do final work
|
# After AC_OUTPUT, we need to do final work
|
||||||
CUSTOM_CONFIG_OUTPUT_GENERATED_HOOK
|
CUSTOM_CONFIG_OUTPUT_GENERATED_HOOK
|
||||||
|
BASIC_POST_CONFIG_OUTPUT
|
||||||
|
|
||||||
# Finally output some useful information to the user
|
# Finally output some useful information to the user
|
||||||
HELP_PRINT_SUMMARY_AND_WARNINGS
|
HELP_PRINT_SUMMARY_AND_WARNINGS
|
||||||
CUSTOM_SUMMARY_AND_WARNINGS_HOOK
|
CUSTOM_SUMMARY_AND_WARNINGS_HOOK
|
||||||
HELP_REPEAT_WARNINGS
|
HELP_REPEAT_WARNINGS
|
||||||
|
|
||||||
# All output is done. Do the post-config output management.
|
|
||||||
BASIC_POST_CONFIG_OUTPUT
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2025, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# 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,7 +28,7 @@
|
|||||||
# Setup flags for C/C++ compiler
|
# Setup flags for C/C++ compiler
|
||||||
#
|
#
|
||||||
|
|
||||||
################################################################################
|
###############################################################################
|
||||||
#
|
#
|
||||||
# How to compile shared libraries.
|
# How to compile shared libraries.
|
||||||
#
|
#
|
||||||
@@ -37,10 +37,7 @@ AC_DEFUN([FLAGS_SETUP_SHARED_LIBS],
|
|||||||
if test "x$TOOLCHAIN_TYPE" = xgcc; then
|
if test "x$TOOLCHAIN_TYPE" = xgcc; then
|
||||||
# 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'
|
||||||
# --disable-new-dtags forces use of RPATH instead of RUNPATH for rpaths.
|
SET_EXECUTABLE_ORIGIN='-Wl,-rpath,\$$ORIGIN[$]1'
|
||||||
# This protects internal library dependencies within the JDK from being
|
|
||||||
# overridden using LD_LIBRARY_PATH. See JDK-8326891 for more information.
|
|
||||||
SET_EXECUTABLE_ORIGIN='-Wl,-rpath,\$$ORIGIN[$]1 -Wl,--disable-new-dtags'
|
|
||||||
SET_SHARED_LIBRARY_ORIGIN="-Wl,-z,origin $SET_EXECUTABLE_ORIGIN"
|
SET_SHARED_LIBRARY_ORIGIN="-Wl,-z,origin $SET_EXECUTABLE_ORIGIN"
|
||||||
SET_SHARED_LIBRARY_NAME='-Wl,-soname=[$]1'
|
SET_SHARED_LIBRARY_NAME='-Wl,-soname=[$]1'
|
||||||
SET_SHARED_LIBRARY_MAPFILE='-Wl,-version-script=[$]1'
|
SET_SHARED_LIBRARY_MAPFILE='-Wl,-version-script=[$]1'
|
||||||
@@ -66,9 +63,6 @@ AC_DEFUN([FLAGS_SETUP_SHARED_LIBS],
|
|||||||
# 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'
|
||||||
SET_EXECUTABLE_ORIGIN='-Wl,-rpath,\$$ORIGIN[$]1'
|
SET_EXECUTABLE_ORIGIN='-Wl,-rpath,\$$ORIGIN[$]1'
|
||||||
if test "x$OPENJDK_TARGET_OS" = xlinux; then
|
|
||||||
SET_EXECUTABLE_ORIGIN="$SET_EXECUTABLE_ORIGIN -Wl,--disable-new-dtags"
|
|
||||||
fi
|
|
||||||
SET_SHARED_LIBRARY_NAME='-Wl,-soname=[$]1'
|
SET_SHARED_LIBRARY_NAME='-Wl,-soname=[$]1'
|
||||||
SET_SHARED_LIBRARY_MAPFILE='-Wl,-version-script=[$]1'
|
SET_SHARED_LIBRARY_MAPFILE='-Wl,-version-script=[$]1'
|
||||||
|
|
||||||
@@ -123,16 +117,6 @@ AC_DEFUN([FLAGS_SETUP_DEBUG_SYMBOLS],
|
|||||||
FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [${DEBUG_PREFIX_CFLAGS}],
|
FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [${DEBUG_PREFIX_CFLAGS}],
|
||||||
IF_FALSE: [
|
IF_FALSE: [
|
||||||
DEBUG_PREFIX_CFLAGS=
|
DEBUG_PREFIX_CFLAGS=
|
||||||
],
|
|
||||||
IF_TRUE: [
|
|
||||||
# Add debug prefix map gcc system include paths, as they cause
|
|
||||||
# non-deterministic debug paths depending on gcc path location.
|
|
||||||
DEBUG_PREFIX_MAP_GCC_INCLUDE_PATHS
|
|
||||||
|
|
||||||
# Add debug prefix map for OUTPUTDIR to handle the scenario when
|
|
||||||
# it is not located within WORKSPACE_ROOT
|
|
||||||
outputdir_slash="${OUTPUTDIR%/}/"
|
|
||||||
DEBUG_PREFIX_CFLAGS="$DEBUG_PREFIX_CFLAGS -fdebug-prefix-map=${outputdir_slash}="
|
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
fi
|
fi
|
||||||
@@ -174,55 +158,6 @@ AC_DEFUN([FLAGS_SETUP_DEBUG_SYMBOLS],
|
|||||||
AC_SUBST(ASFLAGS_DEBUG_SYMBOLS)
|
AC_SUBST(ASFLAGS_DEBUG_SYMBOLS)
|
||||||
])
|
])
|
||||||
|
|
||||||
# gcc will embed the full system include paths in the debug info
|
|
||||||
# resulting in non-deterministic debug symbol files and thus
|
|
||||||
# non-reproducible native libraries if gcc includes are located
|
|
||||||
# in different paths.
|
|
||||||
# Add -fdebug-prefix-map'ings for root and gcc include paths,
|
|
||||||
# pointing to a common set of folders so that the binaries are deterministic:
|
|
||||||
# root include : /usr/include
|
|
||||||
# gcc include : /usr/local/gcc_include
|
|
||||||
# g++ include : /usr/local/gxx_include
|
|
||||||
AC_DEFUN([DEBUG_PREFIX_MAP_GCC_INCLUDE_PATHS],
|
|
||||||
[
|
|
||||||
# Determine gcc system include paths.
|
|
||||||
# Assume default roots to start with:
|
|
||||||
GCC_ROOT_INCLUDE="/usr/include"
|
|
||||||
|
|
||||||
# Determine is sysroot or devkit specified?
|
|
||||||
if test "x$SYSROOT" != "x"; then
|
|
||||||
GCC_ROOT_INCLUDE="${SYSROOT%/}/usr/include"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Add root include mapping => /usr/include
|
|
||||||
GCC_INCLUDE_DEBUG_MAP_FLAGS="-fdebug-prefix-map=${GCC_ROOT_INCLUDE}/=/usr/include/"
|
|
||||||
|
|
||||||
# Add gcc system include mapping => /usr/local/gcc_include
|
|
||||||
# Find location of stddef.h using build C compiler
|
|
||||||
GCC_SYSTEM_INCLUDE=`$ECHO "#include <stddef.h>" | \
|
|
||||||
$CC $CFLAGS -v -E - 2>&1 | \
|
|
||||||
$GREP stddef | $TAIL -1 | $TR -s " " | $CUT -d'"' -f2`
|
|
||||||
if test "x$GCC_SYSTEM_INCLUDE" != "x"; then
|
|
||||||
GCC_SYSTEM_INCLUDE=`$DIRNAME $GCC_SYSTEM_INCLUDE`
|
|
||||||
GCC_INCLUDE_DEBUG_MAP_FLAGS="$GCC_INCLUDE_DEBUG_MAP_FLAGS \
|
|
||||||
-fdebug-prefix-map=${GCC_SYSTEM_INCLUDE}/=/usr/local/gcc_include/"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Add g++ system include mapping => /usr/local/gxx_include
|
|
||||||
# Find location of cstddef using build C++ compiler
|
|
||||||
GXX_SYSTEM_INCLUDE=`$ECHO "#include <cstddef>" | \
|
|
||||||
$CXX $CXXFLAGS -v -E -x c++ - 2>&1 | \
|
|
||||||
$GREP cstddef | $TAIL -1 | $TR -s " " | $CUT -d'"' -f2`
|
|
||||||
if test "x$GXX_SYSTEM_INCLUDE" != "x"; then
|
|
||||||
GXX_SYSTEM_INCLUDE=`$DIRNAME $GXX_SYSTEM_INCLUDE`
|
|
||||||
GCC_INCLUDE_DEBUG_MAP_FLAGS="$GCC_INCLUDE_DEBUG_MAP_FLAGS \
|
|
||||||
-fdebug-prefix-map=${GXX_SYSTEM_INCLUDE}/=/usr/local/gxx_include/"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Add to debug prefix cflags
|
|
||||||
DEBUG_PREFIX_CFLAGS="$DEBUG_PREFIX_CFLAGS $GCC_INCLUDE_DEBUG_MAP_FLAGS"
|
|
||||||
])
|
|
||||||
|
|
||||||
AC_DEFUN([FLAGS_SETUP_WARNINGS],
|
AC_DEFUN([FLAGS_SETUP_WARNINGS],
|
||||||
[
|
[
|
||||||
# Set default value.
|
# Set default value.
|
||||||
@@ -490,13 +425,13 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
|
|||||||
[
|
[
|
||||||
#### OS DEFINES, these should be independent on toolchain
|
#### OS DEFINES, these should be independent on toolchain
|
||||||
if test "x$OPENJDK_TARGET_OS" = xlinux; then
|
if test "x$OPENJDK_TARGET_OS" = xlinux; then
|
||||||
CFLAGS_OS_DEF_JVM="-DLINUX -D_FILE_OFFSET_BITS=64"
|
CFLAGS_OS_DEF_JVM="-DLINUX"
|
||||||
CFLAGS_OS_DEF_JDK="-D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE"
|
CFLAGS_OS_DEF_JDK="-D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE"
|
||||||
elif test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
elif test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
||||||
CFLAGS_OS_DEF_JVM="-D_ALLBSD_SOURCE -D_DARWIN_C_SOURCE -D_XOPEN_SOURCE"
|
CFLAGS_OS_DEF_JVM="-D_ALLBSD_SOURCE -D_DARWIN_C_SOURCE -D_XOPEN_SOURCE"
|
||||||
CFLAGS_OS_DEF_JDK="-D_ALLBSD_SOURCE -D_DARWIN_UNLIMITED_SELECT"
|
CFLAGS_OS_DEF_JDK="-D_ALLBSD_SOURCE -D_DARWIN_UNLIMITED_SELECT"
|
||||||
elif test "x$OPENJDK_TARGET_OS" = xaix; then
|
elif test "x$OPENJDK_TARGET_OS" = xaix; then
|
||||||
CFLAGS_OS_DEF_JVM="-DAIX -D_LARGE_FILES"
|
CFLAGS_OS_DEF_JVM="-DAIX"
|
||||||
elif test "x$OPENJDK_TARGET_OS" = xbsd; then
|
elif test "x$OPENJDK_TARGET_OS" = xbsd; then
|
||||||
CFLAGS_OS_DEF_JDK="-D_ALLBSD_SOURCE"
|
CFLAGS_OS_DEF_JDK="-D_ALLBSD_SOURCE"
|
||||||
elif test "x$OPENJDK_TARGET_OS" = xwindows; then
|
elif test "x$OPENJDK_TARGET_OS" = xwindows; then
|
||||||
@@ -835,11 +770,6 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP],
|
|||||||
# for all archs except arm and ppc, prevent gcc to omit frame pointer
|
# for all archs except arm and ppc, prevent gcc to omit frame pointer
|
||||||
$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
|
||||||
if test "x$FLAGS_CPU" = xppc64le; then
|
|
||||||
# Little endian machine uses ELFv2 ABI.
|
|
||||||
# Use Power8, this is the first CPU to support PPC64 LE with ELFv2 ABI.
|
|
||||||
$1_CFLAGS_CPU_JVM="${$1_CFLAGS_CPU_JVM} -DABI_ELFv2 -mcpu=power8 -mtune=power8"
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
if test "x$OPENJDK_TARGET_OS" = xaix; then
|
if test "x$OPENJDK_TARGET_OS" = xaix; then
|
||||||
$1_CFLAGS_CPU="-mcpu=pwr8"
|
$1_CFLAGS_CPU="-mcpu=pwr8"
|
||||||
@@ -867,6 +797,15 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP],
|
|||||||
$1_TOOLCHAIN_CFLAGS="${$1_GCC6_CFLAGS}"
|
$1_TOOLCHAIN_CFLAGS="${$1_GCC6_CFLAGS}"
|
||||||
|
|
||||||
$1_WARNING_CFLAGS_JVM="-Wno-format-zero-length -Wtype-limits -Wuninitialized"
|
$1_WARNING_CFLAGS_JVM="-Wno-format-zero-length -Wtype-limits -Wuninitialized"
|
||||||
|
elif test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||||
|
NO_DELETE_NULL_POINTER_CHECKS_CFLAG="-fno-delete-null-pointer-checks"
|
||||||
|
FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$NO_DELETE_NULL_POINTER_CHECKS_CFLAG],
|
||||||
|
PREFIX: $3,
|
||||||
|
IF_FALSE: [
|
||||||
|
NO_DELETE_NULL_POINTER_CHECKS_CFLAG=
|
||||||
|
]
|
||||||
|
)
|
||||||
|
$1_TOOLCHAIN_CFLAGS="${NO_DELETE_NULL_POINTER_CHECKS_CFLAG}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||||
@@ -877,7 +816,6 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP],
|
|||||||
REPRODUCIBLE_CFLAGS=
|
REPRODUCIBLE_CFLAGS=
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
AC_SUBST(REPRODUCIBLE_CFLAGS)
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Prevent the __FILE__ macro from generating absolute paths into the built
|
# Prevent the __FILE__ macro from generating absolute paths into the built
|
||||||
@@ -911,22 +849,6 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP],
|
|||||||
FILE_MACRO_CFLAGS=
|
FILE_MACRO_CFLAGS=
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
if test "x$FILE_MACRO_CFLAGS" != x; then
|
|
||||||
# Add -pathmap for all VS system include paths using Windows
|
|
||||||
# full Long path name that is generated by the compiler
|
|
||||||
# Not enabled under WSL as there is no easy way to obtain the
|
|
||||||
# Windows full long paths, thus reproducible WSL builds will
|
|
||||||
# depend on building with the same VS toolchain install location.
|
|
||||||
if test "x$OPENJDK_BUILD_OS_ENV" != "xwindows.wsl1" && test "x$OPENJDK_BUILD_OS_ENV" != "xwindows.wsl2"; then
|
|
||||||
for ipath in ${$3SYSROOT_CFLAGS}; do
|
|
||||||
if test "x${ipath:0:2}" == "x-I"; then
|
|
||||||
ipath_path=${ipath#"-I"}
|
|
||||||
UTIL_FIXUP_WIN_LONG_PATH(ipath_path)
|
|
||||||
FILE_MACRO_CFLAGS="$FILE_MACRO_CFLAGS -pathmap:\"$ipath_path\"=vsi"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
AC_MSG_CHECKING([how to prevent absolute paths in output])
|
AC_MSG_CHECKING([how to prevent absolute paths in output])
|
||||||
@@ -1004,12 +926,17 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP],
|
|||||||
# $2 - Prefix for compiler variables (either BUILD_ or nothing).
|
# $2 - Prefix for compiler variables (either BUILD_ or nothing).
|
||||||
AC_DEFUN([FLAGS_SETUP_GCC6_COMPILER_FLAGS],
|
AC_DEFUN([FLAGS_SETUP_GCC6_COMPILER_FLAGS],
|
||||||
[
|
[
|
||||||
# This flag is required for GCC 6 builds as undefined behavior in OpenJDK code
|
# These flags are required for GCC 6 builds as undefined behavior in OpenJDK code
|
||||||
# runs afoul of the more aggressive versions of this optimization.
|
# runs afoul of the more aggressive versions of these optimizations.
|
||||||
|
# Notably, value range propagation now assumes that the this pointer of C++
|
||||||
|
# member functions is non-null.
|
||||||
|
NO_DELETE_NULL_POINTER_CHECKS_CFLAG="-fno-delete-null-pointer-checks"
|
||||||
|
FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$NO_DELETE_NULL_POINTER_CHECKS_CFLAG],
|
||||||
|
PREFIX: $2, IF_FALSE: [NO_DELETE_NULL_POINTER_CHECKS_CFLAG=""])
|
||||||
NO_LIFETIME_DSE_CFLAG="-fno-lifetime-dse"
|
NO_LIFETIME_DSE_CFLAG="-fno-lifetime-dse"
|
||||||
FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$NO_LIFETIME_DSE_CFLAG],
|
FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$NO_LIFETIME_DSE_CFLAG],
|
||||||
PREFIX: $2, IF_FALSE: [NO_LIFETIME_DSE_CFLAG=""])
|
PREFIX: $2, IF_FALSE: [NO_LIFETIME_DSE_CFLAG=""])
|
||||||
$1_GCC6_CFLAGS="${NO_LIFETIME_DSE_CFLAG}"
|
$1_GCC6_CFLAGS="${NO_DELETE_NULL_POINTER_CHECKS_CFLAG} ${NO_LIFETIME_DSE_CFLAG}"
|
||||||
])
|
])
|
||||||
|
|
||||||
AC_DEFUN_ONCE([FLAGS_SETUP_BRANCH_PROTECTION],
|
AC_DEFUN_ONCE([FLAGS_SETUP_BRANCH_PROTECTION],
|
||||||
|
|||||||
@@ -72,9 +72,14 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
|
|||||||
|
|
||||||
BASIC_LDFLAGS_JVM_ONLY=""
|
BASIC_LDFLAGS_JVM_ONLY=""
|
||||||
|
|
||||||
|
LDFLAGS_CXX_PARTIAL_LINKING="$MACHINE_FLAG -r"
|
||||||
|
|
||||||
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"
|
||||||
|
|
||||||
|
LDFLAGS_CXX_PARTIAL_LINKING="$MACHINE_FLAG -r"
|
||||||
|
|
||||||
if test "x$OPENJDK_TARGET_OS" = xaix; then
|
if test "x$OPENJDK_TARGET_OS" = xaix; then
|
||||||
BASIC_LDFLAGS="-Wl,-b64 -Wl,-brtl -Wl,-bnorwexec -Wl,-bnolibpath -Wl,-bnoexpall \
|
BASIC_LDFLAGS="-Wl,-b64 -Wl,-brtl -Wl,-bnorwexec -Wl,-bnolibpath -Wl,-bnoexpall \
|
||||||
-Wl,-bernotok -Wl,-bdatapsize:64k -Wl,-btextpsize:64k -Wl,-bstackpsize:64k"
|
-Wl,-bernotok -Wl,-bdatapsize:64k -Wl,-btextpsize:64k -Wl,-bstackpsize:64k"
|
||||||
@@ -161,6 +166,7 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
|
|||||||
# Export some intermediate variables for compatibility
|
# Export some intermediate variables for compatibility
|
||||||
LDFLAGS_CXX_JDK="$BASIC_LDFLAGS_ONLYCXX $BASIC_LDFLAGS_ONLYCXX_JDK_ONLY $DEBUGLEVEL_LDFLAGS_JDK_ONLY"
|
LDFLAGS_CXX_JDK="$BASIC_LDFLAGS_ONLYCXX $BASIC_LDFLAGS_ONLYCXX_JDK_ONLY $DEBUGLEVEL_LDFLAGS_JDK_ONLY"
|
||||||
AC_SUBST(LDFLAGS_CXX_JDK)
|
AC_SUBST(LDFLAGS_CXX_JDK)
|
||||||
|
AC_SUBST(LDFLAGS_CXX_PARTIAL_LINKING)
|
||||||
])
|
])
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|||||||
@@ -88,16 +88,6 @@ AC_DEFUN([FLAGS_SETUP_RCFLAGS],
|
|||||||
AC_SUBST(RCFLAGS)
|
AC_SUBST(RCFLAGS)
|
||||||
])
|
])
|
||||||
|
|
||||||
AC_DEFUN([FLAGS_SETUP_NMFLAGS],
|
|
||||||
[
|
|
||||||
# On AIX, we need to set NM flag -X64 for processing 64bit object files
|
|
||||||
if test "x$OPENJDK_TARGET_OS" = xaix; then
|
|
||||||
NMFLAGS="-X64"
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_SUBST(NMFLAGS)
|
|
||||||
])
|
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# platform independent
|
# platform independent
|
||||||
AC_DEFUN([FLAGS_SETUP_ASFLAGS],
|
AC_DEFUN([FLAGS_SETUP_ASFLAGS],
|
||||||
|
|||||||
@@ -301,6 +301,7 @@ AC_DEFUN_ONCE([FLAGS_PRE_TOOLCHAIN],
|
|||||||
EXTRA_LDFLAGS="$MACHINE_FLAG $USER_LDFLAGS"
|
EXTRA_LDFLAGS="$MACHINE_FLAG $USER_LDFLAGS"
|
||||||
EXTRA_ASFLAGS="$USER_ASFLAGS"
|
EXTRA_ASFLAGS="$USER_ASFLAGS"
|
||||||
|
|
||||||
|
AC_SUBST(MACHINE_FLAG)
|
||||||
AC_SUBST(EXTRA_CFLAGS)
|
AC_SUBST(EXTRA_CFLAGS)
|
||||||
AC_SUBST(EXTRA_CXXFLAGS)
|
AC_SUBST(EXTRA_CXXFLAGS)
|
||||||
AC_SUBST(EXTRA_LDFLAGS)
|
AC_SUBST(EXTRA_LDFLAGS)
|
||||||
@@ -428,7 +429,6 @@ AC_DEFUN([FLAGS_SETUP_FLAGS],
|
|||||||
FLAGS_SETUP_ARFLAGS
|
FLAGS_SETUP_ARFLAGS
|
||||||
FLAGS_SETUP_STRIPFLAGS
|
FLAGS_SETUP_STRIPFLAGS
|
||||||
FLAGS_SETUP_RCFLAGS
|
FLAGS_SETUP_RCFLAGS
|
||||||
FLAGS_SETUP_NMFLAGS
|
|
||||||
|
|
||||||
FLAGS_SETUP_ASFLAGS
|
FLAGS_SETUP_ASFLAGS
|
||||||
FLAGS_SETUP_ASFLAGS_CPU_DEP([TARGET])
|
FLAGS_SETUP_ASFLAGS_CPU_DEP([TARGET])
|
||||||
|
|||||||
@@ -190,16 +190,6 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_JDK_OPTIONS],
|
|||||||
fi
|
fi
|
||||||
AC_SUBST(INCLUDE_SA)
|
AC_SUBST(INCLUDE_SA)
|
||||||
|
|
||||||
# Setup default CDS alignment. On platforms where one build may run on machines with different
|
|
||||||
# page sizes, the JVM choses a compatible alignment to fit all possible page sizes. This slightly
|
|
||||||
# increases archive size.
|
|
||||||
# The only platform having this problem at the moment is Linux on aarch64, which may encounter
|
|
||||||
# three different page sizes: 4K, 64K, and if run on Mac m1 hardware, 16K.
|
|
||||||
COMPATIBLE_CDS_ALIGNMENT_DEFAULT=false
|
|
||||||
if test "x$OPENJDK_TARGET_OS" = "xlinux" && test "x$OPENJDK_TARGET_CPU" = "xaarch64"; then
|
|
||||||
COMPATIBLE_CDS_ALIGNMENT_DEFAULT=auto
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Compress jars
|
# Compress jars
|
||||||
COMPRESS_JARS=false
|
COMPRESS_JARS=false
|
||||||
|
|
||||||
@@ -244,31 +234,6 @@ 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)
|
|
||||||
])
|
])
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
@@ -524,15 +489,9 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_LEAK_SANITIZER],
|
|||||||
#
|
#
|
||||||
AC_DEFUN_ONCE([JDKOPT_SETUP_UNDEFINED_BEHAVIOR_SANITIZER],
|
AC_DEFUN_ONCE([JDKOPT_SETUP_UNDEFINED_BEHAVIOR_SANITIZER],
|
||||||
[
|
[
|
||||||
UTIL_ARG_WITH(NAME: additional-ubsan-checks, TYPE: string,
|
|
||||||
DEFAULT: [],
|
|
||||||
DESC: [Customizes the ubsan checks],
|
|
||||||
OPTIONAL: true)
|
|
||||||
|
|
||||||
# GCC reports lots of likely false positives for stringop-truncation and format-overflow.
|
# GCC reports lots of likely false positives for stringop-truncation and format-overflow.
|
||||||
# Silence them for now.
|
# Silence them for now.
|
||||||
UBSAN_CHECKS="-fsanitize=undefined -fsanitize=float-divide-by-zero -fno-sanitize=shift-base -fno-sanitize=alignment \
|
UBSAN_CHECKS="-fsanitize=undefined -fsanitize=float-divide-by-zero -fno-sanitize=shift-base"
|
||||||
$ADDITIONAL_UBSAN_CHECKS"
|
|
||||||
UBSAN_CFLAGS="$UBSAN_CHECKS -Wno-stringop-truncation -Wno-format-overflow -fno-omit-frame-pointer -DUNDEFINED_BEHAVIOR_SANITIZER"
|
UBSAN_CFLAGS="$UBSAN_CHECKS -Wno-stringop-truncation -Wno-format-overflow -fno-omit-frame-pointer -DUNDEFINED_BEHAVIOR_SANITIZER"
|
||||||
UBSAN_LDFLAGS="$UBSAN_CHECKS"
|
UBSAN_LDFLAGS="$UBSAN_CHECKS"
|
||||||
UTIL_ARG_ENABLE(NAME: ubsan, DEFAULT: false, RESULT: UBSAN_ENABLED,
|
UTIL_ARG_ENABLE(NAME: ubsan, DEFAULT: false, RESULT: UBSAN_ENABLED,
|
||||||
@@ -714,10 +673,10 @@ AC_DEFUN([JDKOPT_ENABLE_DISABLE_CDS_ARCHIVE],
|
|||||||
#
|
#
|
||||||
AC_DEFUN([JDKOPT_ENABLE_DISABLE_COMPATIBLE_CDS_ALIGNMENT],
|
AC_DEFUN([JDKOPT_ENABLE_DISABLE_COMPATIBLE_CDS_ALIGNMENT],
|
||||||
[
|
[
|
||||||
UTIL_ARG_ENABLE(NAME: compatible-cds-alignment, DEFAULT: $COMPATIBLE_CDS_ALIGNMENT_DEFAULT,
|
UTIL_ARG_ENABLE(NAME: compatible-cds-alignment, DEFAULT: false,
|
||||||
RESULT: ENABLE_COMPATIBLE_CDS_ALIGNMENT,
|
RESULT: ENABLE_COMPATIBLE_CDS_ALIGNMENT,
|
||||||
DESC: [enable use alternative compatible cds core region alignment],
|
DESC: [enable use alternative compatible cds core region alignment],
|
||||||
DEFAULT_DESC: [disabled except on linux-aarch64],
|
DEFAULT_DESC: [disabled],
|
||||||
CHECKING_MSG: [if compatible cds region alignment enabled],
|
CHECKING_MSG: [if compatible cds region alignment enabled],
|
||||||
CHECK_AVAILABLE: [
|
CHECK_AVAILABLE: [
|
||||||
AC_MSG_CHECKING([if CDS archive is available])
|
AC_MSG_CHECKING([if CDS archive is available])
|
||||||
@@ -863,9 +822,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"
|
||||||
|
|||||||
@@ -110,15 +110,6 @@ AC_DEFUN_ONCE([JDKVER_SETUP_JDK_VERSION_NUMBERS],
|
|||||||
CHECK_VALUE: [UTIL_CHECK_STRING_NON_EMPTY_PRINTABLE])
|
CHECK_VALUE: [UTIL_CHECK_STRING_NON_EMPTY_PRINTABLE])
|
||||||
AC_SUBST(COMPANY_NAME)
|
AC_SUBST(COMPANY_NAME)
|
||||||
|
|
||||||
# Set the JDK RC Company name
|
|
||||||
# Otherwise uses the value set for "vendor-name".
|
|
||||||
UTIL_ARG_WITH(NAME: jdk-rc-company-name, TYPE: string,
|
|
||||||
DEFAULT: $COMPANY_NAME,
|
|
||||||
DESC: [Set JDK RC company name. This is used for CompanyName properties of MS Windows binaries.],
|
|
||||||
DEFAULT_DESC: [from branding.conf],
|
|
||||||
CHECK_VALUE: [UTIL_CHECK_STRING_NON_EMPTY_PRINTABLE])
|
|
||||||
AC_SUBST(JDK_RC_COMPANY_NAME)
|
|
||||||
|
|
||||||
# The vendor URL, if any
|
# The vendor URL, if any
|
||||||
# Only set VENDOR_URL if '--with-vendor-url' was used and is not empty.
|
# Only set VENDOR_URL if '--with-vendor-url' was used and is not empty.
|
||||||
# Otherwise we will use the value from "branding.conf" included above.
|
# Otherwise we will use the value from "branding.conf" included above.
|
||||||
|
|||||||
@@ -70,25 +70,6 @@ AC_DEFUN_ONCE([LIB_SETUP_ALSA],
|
|||||||
PKG_CHECK_MODULES(ALSA, alsa, [ALSA_FOUND=yes], [ALSA_FOUND=no])
|
PKG_CHECK_MODULES(ALSA, alsa, [ALSA_FOUND=yes], [ALSA_FOUND=no])
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if test "x$ALSA_FOUND" = xno; then
|
|
||||||
# If we have sysroot set, and no explicit library location is set,
|
|
||||||
# look at known locations in sysroot.
|
|
||||||
if test "x$SYSROOT" != "x" && test "x${with_alsa_lib}" == x; then
|
|
||||||
if test -f "$SYSROOT/usr/lib64/libasound.so" && test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
|
|
||||||
ALSA_LIBS="-L$SYSROOT/usr/lib64 -lasound"
|
|
||||||
ALSA_FOUND=yes
|
|
||||||
elif test -f "$SYSROOT/usr/lib/libasound.so"; then
|
|
||||||
ALSA_LIBS="-L$SYSROOT/usr/lib -lasound"
|
|
||||||
ALSA_FOUND=yes
|
|
||||||
elif test -f "$SYSROOT/usr/lib/$OPENJDK_TARGET_CPU-$OPENJDK_TARGET_OS-$OPENJDK_TARGET_ABI/libasound.so"; then
|
|
||||||
ALSA_LIBS="-L$SYSROOT/usr/lib/$OPENJDK_TARGET_CPU-$OPENJDK_TARGET_OS-$OPENJDK_TARGET_ABI -lasound"
|
|
||||||
ALSA_FOUND=yes
|
|
||||||
elif test -f "$SYSROOT/usr/lib/$OPENJDK_TARGET_CPU_AUTOCONF-$OPENJDK_TARGET_OS-$OPENJDK_TARGET_ABI/libasound.so"; then
|
|
||||||
ALSA_LIBS="-L$SYSROOT/usr/lib/$OPENJDK_TARGET_CPU_AUTOCONF-$OPENJDK_TARGET_OS-$OPENJDK_TARGET_ABI -lasound"
|
|
||||||
ALSA_FOUND=yes
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
if test "x$ALSA_FOUND" = xno; then
|
if test "x$ALSA_FOUND" = xno; then
|
||||||
AC_CHECK_HEADERS([alsa/asoundlib.h],
|
AC_CHECK_HEADERS([alsa/asoundlib.h],
|
||||||
[
|
[
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# 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
|
||||||
@@ -68,21 +68,13 @@ AC_DEFUN_ONCE([LIB_SETUP_CUPS],
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if test "x$CUPS_FOUND" = xno; then
|
if test "x$CUPS_FOUND" = xno; then
|
||||||
# Are the cups headers installed in the default AIX or /usr/include location?
|
# Are the cups headers installed in the default /usr/include location?
|
||||||
if test "x$OPENJDK_TARGET_OS" = "xaix"; then
|
|
||||||
AC_CHECK_HEADERS([/opt/freeware/include/cups/cups.h /opt/freeware/include/cups/ppd.h], [
|
|
||||||
CUPS_FOUND=yes
|
|
||||||
CUPS_CFLAGS="-I/opt/freeware/include"
|
|
||||||
DEFAULT_CUPS=yes
|
|
||||||
])
|
|
||||||
else
|
|
||||||
AC_CHECK_HEADERS([cups/cups.h cups/ppd.h], [
|
AC_CHECK_HEADERS([cups/cups.h cups/ppd.h], [
|
||||||
CUPS_FOUND=yes
|
CUPS_FOUND=yes
|
||||||
CUPS_CFLAGS=
|
CUPS_CFLAGS=
|
||||||
DEFAULT_CUPS=yes
|
DEFAULT_CUPS=yes
|
||||||
])
|
])
|
||||||
fi
|
fi
|
||||||
fi
|
|
||||||
if test "x$CUPS_FOUND" = xno; then
|
if test "x$CUPS_FOUND" = xno; then
|
||||||
HELP_MSG_MISSING_DEPENDENCY([cups])
|
HELP_MSG_MISSING_DEPENDENCY([cups])
|
||||||
AC_MSG_ERROR([Could not find cups! $HELP_MSG ])
|
AC_MSG_ERROR([Could not find cups! $HELP_MSG ])
|
||||||
|
|||||||
@@ -1,55 +0,0 @@
|
|||||||
#
|
|
||||||
# Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved.
|
|
||||||
# Copyright (c) 2024, 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.
|
|
||||||
#
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
# Check if a potential dbus library match is correct and usable
|
|
||||||
################################################################################
|
|
||||||
AC_DEFUN_ONCE([LIB_SETUP_DBUS],
|
|
||||||
[
|
|
||||||
AC_ARG_WITH(dbus-includes, [AS_HELP_STRING([--with-dbus-includes],
|
|
||||||
[specify include directories for the dbus files as list separated by space])])
|
|
||||||
|
|
||||||
if test "x$NEEDS_LIB_DBUS" = xfalse; then
|
|
||||||
DBUS_CFLAGS=
|
|
||||||
DBUS_FOUND=false
|
|
||||||
else
|
|
||||||
if test "x${with_dbus_includes}" != x; then
|
|
||||||
DBUS_FOUND=true
|
|
||||||
DBUS_CFLAGS=""
|
|
||||||
for include in $with_dbus_includes; do
|
|
||||||
DBUS_CFLAGS="${DBUS_CFLAGS}-I${include} "
|
|
||||||
done
|
|
||||||
else
|
|
||||||
PKG_CHECK_MODULES(DBUS, dbus-1, [DBUS_FOUND=true], [
|
|
||||||
DBUS_FOUND=false
|
|
||||||
AC_MSG_NOTICE([Can't find dbus-1 library. This library is needed to use some features. You can install dbus-1 library or specify include directories manually by giving --with-dbus-includes option.])
|
|
||||||
])
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_SUBST(DBUS_CFLAGS)
|
|
||||||
AC_SUBST(DBUS_FOUND)
|
|
||||||
])
|
|
||||||
@@ -57,7 +57,11 @@ AC_DEFUN_ONCE([LIB_SETUP_LIBFFI],
|
|||||||
|
|
||||||
if test "x${with_libffi}" != x; then
|
if test "x${with_libffi}" != x; then
|
||||||
LIBFFI_LIB_PATH="${with_libffi}/lib"
|
LIBFFI_LIB_PATH="${with_libffi}/lib"
|
||||||
|
if test "x${OPENJDK_TARGET_OS}" != "xwindows"; then
|
||||||
LIBFFI_LIBS="-L${with_libffi}/lib -lffi"
|
LIBFFI_LIBS="-L${with_libffi}/lib -lffi"
|
||||||
|
else
|
||||||
|
LIBFFI_LIBS="${with_libffi}/lib/libffi.lib"
|
||||||
|
fi
|
||||||
LIBFFI_CFLAGS="-I${with_libffi}/include"
|
LIBFFI_CFLAGS="-I${with_libffi}/include"
|
||||||
LIBFFI_FOUND=yes
|
LIBFFI_FOUND=yes
|
||||||
fi
|
fi
|
||||||
@@ -67,7 +71,11 @@ AC_DEFUN_ONCE([LIB_SETUP_LIBFFI],
|
|||||||
fi
|
fi
|
||||||
if test "x${with_libffi_lib}" != x; then
|
if test "x${with_libffi_lib}" != x; then
|
||||||
LIBFFI_LIB_PATH="${with_libffi_lib}"
|
LIBFFI_LIB_PATH="${with_libffi_lib}"
|
||||||
|
if test "x${OPENJDK_TARGET_OS}" != "xwindows"; then
|
||||||
LIBFFI_LIBS="-L${with_libffi_lib} -lffi"
|
LIBFFI_LIBS="-L${with_libffi_lib} -lffi"
|
||||||
|
else
|
||||||
|
LIBFFI_LIBS="${with_libffi_lib}/libffi.lib"
|
||||||
|
fi
|
||||||
LIBFFI_FOUND=yes
|
LIBFFI_FOUND=yes
|
||||||
fi
|
fi
|
||||||
# Do not try pkg-config if we have a sysroot set.
|
# Do not try pkg-config if we have a sysroot set.
|
||||||
@@ -106,12 +114,13 @@ AC_DEFUN_ONCE([LIB_SETUP_LIBFFI],
|
|||||||
AC_MSG_ERROR([Could not find libffi! $HELP_MSG])
|
AC_MSG_ERROR([Could not find libffi! $HELP_MSG])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
AC_MSG_CHECKING([if libffi works])
|
|
||||||
AC_LANG_PUSH(C)
|
AC_LANG_PUSH(C)
|
||||||
OLD_CFLAGS="$CFLAGS"
|
OLD_CFLAGS="$CFLAGS"
|
||||||
CFLAGS="$CFLAGS $LIBFFI_CFLAGS"
|
CFLAGS="$CFLAGS $LIBFFI_CFLAGS"
|
||||||
OLD_LIBS="$LIBS"
|
OLD_LIBS="$LIBS"
|
||||||
LIBS="$LIBS $LIBFFI_LIBS"
|
LIBS="$LIBS $LIBFFI_LIBS"
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([if libffi works])
|
||||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <ffi.h>],
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <ffi.h>],
|
||||||
[
|
[
|
||||||
ffi_call(NULL, NULL, NULL, NULL);
|
ffi_call(NULL, NULL, NULL, NULL);
|
||||||
@@ -120,9 +129,6 @@ AC_DEFUN_ONCE([LIB_SETUP_LIBFFI],
|
|||||||
[LIBFFI_WORKS=yes],
|
[LIBFFI_WORKS=yes],
|
||||||
[LIBFFI_WORKS=no]
|
[LIBFFI_WORKS=no]
|
||||||
)
|
)
|
||||||
CFLAGS="$OLD_CFLAGS"
|
|
||||||
LIBS="$OLD_LIBS"
|
|
||||||
AC_LANG_POP(C)
|
|
||||||
AC_MSG_RESULT([$LIBFFI_WORKS])
|
AC_MSG_RESULT([$LIBFFI_WORKS])
|
||||||
|
|
||||||
if test "x$LIBFFI_WORKS" = xno; then
|
if test "x$LIBFFI_WORKS" = xno; then
|
||||||
@@ -130,39 +136,71 @@ AC_DEFUN_ONCE([LIB_SETUP_LIBFFI],
|
|||||||
AC_MSG_ERROR([Found libffi but could not link and compile with it. $HELP_MSG])
|
AC_MSG_ERROR([Found libffi but could not link and compile with it. $HELP_MSG])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Check if FFI_GO_CLOSURES is properly defined. On some distributions, notably MacOS AArch64,
|
||||||
|
# ffitarget.h (included from ffi.h) does not explicitly define FFI_GO_CLOSURES. This makes the
|
||||||
|
# further include of ffi.h trigger the "FFI_GO_CLOSURES is undefined" warning, which fails
|
||||||
|
# the build when warnings are fatal.
|
||||||
|
AC_MSG_CHECKING([for FFI_GO_CLOSURES definition])
|
||||||
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
|
||||||
|
#include <ffi.h>
|
||||||
|
#ifndef FFI_GO_CLOSURES
|
||||||
|
#error "FFI_GO_CLOSURES is not defined"
|
||||||
|
#endif
|
||||||
|
][])],
|
||||||
|
[
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
],
|
||||||
|
[
|
||||||
|
AC_MSG_RESULT([no, defining])
|
||||||
|
LIBFFI_CFLAGS="$LIBFFI_CFLAGS -DFFI_GO_CLOSURES=0"
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
CFLAGS="$OLD_CFLAGS"
|
||||||
|
LIBS="$OLD_LIBS"
|
||||||
|
AC_LANG_POP(C)
|
||||||
|
|
||||||
# Find the libffi.so.X to bundle
|
# Find the libffi.so.X to bundle
|
||||||
if test "x${ENABLE_LIBFFI_BUNDLING}" = "xtrue"; then
|
if test "x${ENABLE_LIBFFI_BUNDLING}" = "xtrue"; then
|
||||||
|
if test "x${OPENJDK_TARGET_OS}" = "xmacosx"; then
|
||||||
|
LIBFFI_LIB_FILE_NAME=libffi.?.dylib
|
||||||
|
elif test "x${OPENJDK_TARGET_OS}" = "xwindows"; then
|
||||||
|
LIBFFI_LIB_FILE_NAME=libffi.dll
|
||||||
|
else
|
||||||
|
LIBFFI_LIB_FILE_NAME=libffi.so.?
|
||||||
|
fi
|
||||||
|
|
||||||
AC_MSG_CHECKING([for libffi lib file location])
|
AC_MSG_CHECKING([for libffi lib file location])
|
||||||
if test "x${LIBFFI_LIB_PATH}" != x; then
|
if test "x${LIBFFI_LIB_PATH}" != x; then
|
||||||
if test -e ${LIBFFI_LIB_PATH}/libffi.so.?; then
|
if test -e ${LIBFFI_LIB_PATH}/${LIBFFI_LIB_FILE_NAME}; then
|
||||||
LIBFFI_LIB_FILE="${LIBFFI_LIB_PATH}/libffi.so.?"
|
LIBFFI_LIB_FILE="${LIBFFI_LIB_PATH}/${LIBFFI_LIB_FILE_NAME}"
|
||||||
else
|
else
|
||||||
AC_MSG_ERROR([Could not locate libffi.so.? for bundling in ${LIBFFI_LIB_PATH}])
|
AC_MSG_ERROR([Could not locate ${LIBFFI_LIB_FILE_NAME} for bundling in ${LIBFFI_LIB_PATH}])
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
# If we don't have an explicit path, look in a few obvious places
|
# If we don't have an explicit path, look in a few obvious places
|
||||||
if test "x${OPENJDK_TARGET_CPU}" = "xx86"; then
|
if test "x${OPENJDK_TARGET_CPU}" = "xx86"; then
|
||||||
if test -e ${SYSROOT}/usr/lib/libffi.so.? ; then
|
if test -e ${SYSROOT}/usr/lib/${LIBFFI_LIB_FILE_NAME} ; then
|
||||||
LIBFFI_LIB_FILE="${SYSROOT}/usr/lib/libffi.so.?"
|
LIBFFI_LIB_FILE="${SYSROOT}/usr/lib/${LIBFFI_LIB_FILE_NAME}"
|
||||||
elif test -e ${SYSROOT}/usr/lib/i386-linux-gnu/libffi.so.? ; then
|
elif test -e ${SYSROOT}/usr/lib/i386-linux-gnu/${LIBFFI_LIB_FILE_NAME} ; then
|
||||||
LIBFFI_LIB_FILE="${SYSROOT}/usr/lib/i386-linux-gnu/libffi.so.?"
|
LIBFFI_LIB_FILE="${SYSROOT}/usr/lib/i386-linux-gnu/${LIBFFI_LIB_FILE_NAME}"
|
||||||
else
|
else
|
||||||
AC_MSG_ERROR([Could not locate libffi.so.? for bundling])
|
AC_MSG_ERROR([Could not locate ${LIBFFI_LIB_FILE_NAME} for bundling])
|
||||||
fi
|
fi
|
||||||
elif test "x${OPENJDK_TARGET_CPU}" = "xx86_64" || test "x${OPENJDK_TARGET_CPU}" = "xaarch64"; then
|
elif test "x${OPENJDK_TARGET_CPU}" = "xx86_64" || test "x${OPENJDK_TARGET_CPU}" = "xaarch64"; then
|
||||||
if test -e ${SYSROOT}/usr/lib64/libffi.so.? ; then
|
if test -e ${SYSROOT}/usr/lib64/${LIBFFI_LIB_FILE_NAME} ; then
|
||||||
LIBFFI_LIB_FILE="${SYSROOT}/usr/lib64/libffi.so.?"
|
LIBFFI_LIB_FILE="${SYSROOT}/usr/lib64/${LIBFFI_LIB_FILE_NAME}"
|
||||||
elif test -e ${SYSROOT}/usr/lib/x86_64-linux-gnu/libffi.so.? ; then
|
elif test -e ${SYSROOT}/usr/lib/x86_64-linux-gnu/${LIBFFI_LIB_FILE_NAME} ; then
|
||||||
LIBFFI_LIB_FILE="${SYSROOT}/usr/lib/x86_64-linux-gnu/libffi.so.?"
|
LIBFFI_LIB_FILE="${SYSROOT}/usr/lib/x86_64-linux-gnu/${LIBFFI_LIB_FILE_NAME}"
|
||||||
else
|
else
|
||||||
AC_MSG_ERROR([Could not locate libffi.so.? for bundling])
|
AC_MSG_ERROR([Could not locate ${LIBFFI_LIB_FILE_NAME} for bundling])
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
# Fallback on the default /usr/lib dir
|
# Fallback on the default /usr/lib dir
|
||||||
if test -e ${SYSROOT}/usr/lib/libffi.so.? ; then
|
if test -e ${SYSROOT}/usr/lib/${LIBFFI_LIB_FILE_NAME} ; then
|
||||||
LIBFFI_LIB_FILE="${SYSROOT}/usr/lib/libffi.so.?"
|
LIBFFI_LIB_FILE="${SYSROOT}/usr/lib/${LIBFFI_LIB_FILE_NAME}"
|
||||||
else
|
else
|
||||||
AC_MSG_ERROR([Could not locate libffi.so.? for bundling])
|
AC_MSG_ERROR([Could not locate ${LIBFFI_LIB_FILE_NAME} for bundling])
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -1,121 +0,0 @@
|
|||||||
#
|
|
||||||
# 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)
|
|
||||||
])
|
|
||||||
@@ -1,92 +0,0 @@
|
|||||||
#
|
|
||||||
# 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)
|
|
||||||
])
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user