mirror of
https://github.com/JetBrains/JetBrainsRuntime.git
synced 2025-12-20 08:19:41 +01:00
Compare commits
1251 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d580bcf956 | ||
|
|
4fa77a2ad4 | ||
|
|
3eb1d05d85 | ||
|
|
0cb0b5db2a | ||
|
|
e3588bba04 | ||
|
|
cc5b9c63cb | ||
|
|
892b8bb6d1 | ||
|
|
05854fd704 | ||
|
|
614db2ea9e | ||
|
|
d292aabf05 | ||
|
|
d0a265039a | ||
|
|
37a5a08378 | ||
|
|
788d2bc40c | ||
|
|
4dfcc6df17 | ||
|
|
9e566d76d1 | ||
|
|
8fc9097b37 | ||
|
|
2725405ac9 | ||
|
|
db01fcd6d8 | ||
|
|
89e0889ab3 | ||
|
|
153410f480 | ||
|
|
da8a095a19 | ||
|
|
472fcb6e6e | ||
|
|
cc1800fa4d | ||
|
|
b9c76dedf4 | ||
|
|
7b1f2c801f | ||
|
|
9d441e3e56 | ||
|
|
44549b605a | ||
|
|
5d19d15517 | ||
|
|
5f7432f7b1 | ||
|
|
7560dbb925 | ||
|
|
4047a3623a | ||
|
|
27ac39a2bc | ||
|
|
fb8f2a0a92 | ||
|
|
447436e18c | ||
|
|
c7cf602078 | ||
|
|
78d1b90468 | ||
|
|
907e30ff00 | ||
|
|
70a15c7363 | ||
|
|
a1fbbffb5e | ||
|
|
26b2ec4847 | ||
|
|
af15c68f3c | ||
|
|
142c311e3b | ||
|
|
cb2a671359 | ||
|
|
0c1b254be9 | ||
|
|
29ba4b7d1e | ||
|
|
f67ec19e23 | ||
|
|
93579c29e3 | ||
|
|
b235682a18 | ||
|
|
19a0151a52 | ||
|
|
cf9b5a71bd | ||
|
|
acc4a82818 | ||
|
|
9f920b9bbf | ||
|
|
c7b9dc463a | ||
|
|
bc73963974 | ||
|
|
476421efe5 | ||
|
|
c013fa1811 | ||
|
|
f33a8445eb | ||
|
|
4324e3be9e | ||
|
|
c7bbf84929 | ||
|
|
23ebd9c3c6 | ||
|
|
4d932d615c | ||
|
|
ce7ebaa606 | ||
|
|
b7a51dd0e8 | ||
|
|
739957ca1e | ||
|
|
13cf0707f9 | ||
|
|
709410d8a4 | ||
|
|
f207aa94f9 | ||
|
|
e80619a032 | ||
|
|
638708cad8 | ||
|
|
e06b568c3c | ||
|
|
528efe206d | ||
|
|
d379afbc11 | ||
|
|
cd534f8197 | ||
|
|
38e3cda442 | ||
|
|
b334a8e5fc | ||
|
|
e669d14d47 | ||
|
|
940d1965f8 | ||
|
|
d44aaa37f9 | ||
|
|
9bc741d04f | ||
|
|
256d48b196 | ||
|
|
177b8a241c | ||
|
|
da009214f1 | ||
|
|
4d36c4adcc | ||
|
|
0efd9dc09b | ||
|
|
46809b396c | ||
|
|
f7f291c5d4 | ||
|
|
771f6a2f8e | ||
|
|
4210e507a0 | ||
|
|
ab183e437c | ||
|
|
ab28045d77 | ||
|
|
ba05c6d0b6 | ||
|
|
fa823bd21c | ||
|
|
e81374e050 | ||
|
|
cc5cda5587 | ||
|
|
ef2bd57213 | ||
|
|
e66788c165 | ||
|
|
1496b5de90 | ||
|
|
16ed191329 | ||
|
|
581b1e29ae | ||
|
|
75195aab49 | ||
|
|
725d87bbc2 | ||
|
|
e41bc42deb | ||
|
|
43080173e8 | ||
|
|
700d2b91de | ||
|
|
bb3e84bd1f | ||
|
|
ac2f8e5af8 | ||
|
|
c434b79cff | ||
|
|
700679011e | ||
|
|
68170ae222 | ||
|
|
9f5ad43358 | ||
|
|
684678f9e8 | ||
|
|
93d1700f23 | ||
|
|
a5a2eca155 | ||
|
|
65d9f119c4 | ||
|
|
481473efce | ||
|
|
dea94f4445 | ||
|
|
d32746ef4a | ||
|
|
000f4d8d15 | ||
|
|
fbeac98c84 | ||
|
|
96530bcc07 | ||
|
|
a112fc8bac | ||
|
|
4e83f4cfc7 | ||
|
|
d3f3011d56 | ||
|
|
e5e7cd20ec | ||
|
|
1b68c731f2 | ||
|
|
e0373e01fe | ||
|
|
03c25b15eb | ||
|
|
eebcc2181f | ||
|
|
a68f5d7331 | ||
|
|
269163d509 | ||
|
|
7231fd78aa | ||
|
|
4f8f48654e | ||
|
|
9ca4ae3d3b | ||
|
|
9214a62f26 | ||
|
|
132921683b | ||
|
|
3b305d502b | ||
|
|
f140eb4c3a | ||
|
|
5f2a92d954 | ||
|
|
2094ff3c7a | ||
|
|
db4842c9d9 | ||
|
|
c01095c0c9 | ||
|
|
f1c69ccadb | ||
|
|
5b6b514441 | ||
|
|
c59c41aa6e | ||
|
|
6eea5d6755 | ||
|
|
053ff76e14 | ||
|
|
e1b0af29e4 | ||
|
|
c0fc9563a7 | ||
|
|
4ef591f71f | ||
|
|
ac5b6cb2d4 | ||
|
|
652fb3aa48 | ||
|
|
9059727df1 | ||
|
|
2dd5fba3bd | ||
|
|
3f2e849c54 | ||
|
|
c901da48e3 | ||
|
|
9e32db266e | ||
|
|
fc0472baf9 | ||
|
|
85fc47c81a | ||
|
|
569b05addf | ||
|
|
dec68d7e36 | ||
|
|
7734466c46 | ||
|
|
9e98118f28 | ||
|
|
f3af91815a | ||
|
|
fb390d202c | ||
|
|
86f1744736 | ||
|
|
7baec66222 | ||
|
|
c342188fd9 | ||
|
|
3c70f26b2f | ||
|
|
48717d63cc | ||
|
|
ece4124f25 | ||
|
|
d32ce65781 | ||
|
|
07194195ce | ||
|
|
0204aacb03 | ||
|
|
9bc1b065db | ||
|
|
65a84c2642 | ||
|
|
044f4ed55d | ||
|
|
71f9c4e7fd | ||
|
|
bfba4894e1 | ||
|
|
42aec8c5e7 | ||
|
|
90ab52e598 | ||
|
|
bf990c8b32 | ||
|
|
80b98c86b8 | ||
|
|
dde519dc21 | ||
|
|
80ccc989a8 | ||
|
|
5249cc0a79 | ||
|
|
c05f8c7223 | ||
|
|
b8dfeafdfd | ||
|
|
d57bdd85ab | ||
|
|
128e60a29f | ||
|
|
06f4b7f54d | ||
|
|
605800e5ab | ||
|
|
09439374ed | ||
|
|
f6390e5f80 | ||
|
|
e8d1ba33b4 | ||
|
|
be1dd275a4 | ||
|
|
fab0edc9e6 | ||
|
|
7c6fd337d0 | ||
|
|
89fb0f837b | ||
|
|
df909e2f9c | ||
|
|
87bd6caca0 | ||
|
|
2482a505e5 | ||
|
|
e6a8fdd82c | ||
|
|
7cc1965a25 | ||
|
|
d4ec783108 | ||
|
|
debd59732d | ||
|
|
acfefc6c7a | ||
|
|
0c3998d2c6 | ||
|
|
d25c452f0c | ||
|
|
759cc67591 | ||
|
|
51381bb13c | ||
|
|
792fc9d114 | ||
|
|
a232e8fb4e | ||
|
|
c879627dbd | ||
|
|
954c50ed88 | ||
|
|
6f8b0a33fa | ||
|
|
1d34b74a64 | ||
|
|
3b9255eb66 | ||
|
|
ad0f329493 | ||
|
|
a43c3cc347 | ||
|
|
11a3673d42 | ||
|
|
1281e18f14 | ||
|
|
49ce85fae9 | ||
|
|
481c866df8 | ||
|
|
44aef38623 | ||
|
|
fcf746dede | ||
|
|
fadc4b197e | ||
|
|
cff0747d7f | ||
|
|
6f2676dc5f | ||
|
|
7502dc99bf | ||
|
|
357c912be5 | ||
|
|
98e4b753e8 | ||
|
|
628e770274 | ||
|
|
092a7343a4 | ||
|
|
7858138ad2 | ||
|
|
2edf4081af | ||
|
|
1ad3ebcf11 | ||
|
|
7f6b7ebbcc | ||
|
|
8f9899b23e | ||
|
|
eb45d5bd64 | ||
|
|
5cae7d20ad | ||
|
|
35b00e640b | ||
|
|
be344e442b | ||
|
|
0db6231198 | ||
|
|
035324503f | ||
|
|
4d64467444 | ||
|
|
7e05a70301 | ||
|
|
7d8561d56b | ||
|
|
a4a5196351 | ||
|
|
da4dd7c008 | ||
|
|
49d8008947 | ||
|
|
0ae4fa71e4 | ||
|
|
107cb536e7 | ||
|
|
07acc0bbad | ||
|
|
cc9a8aba67 | ||
|
|
3b18c5dc5d | ||
|
|
5d4bfad12b | ||
|
|
f3d0c45cbb | ||
|
|
d5b95a0ed3 | ||
|
|
966a42f9b3 | ||
|
|
22f10e045b | ||
|
|
7283c8b075 | ||
|
|
30249c4cca | ||
|
|
94b4ed5766 | ||
|
|
b9c3dc3b47 | ||
|
|
5b41466275 | ||
|
|
313e814bc9 | ||
|
|
8a3bdd5c4d | ||
|
|
201042fd96 | ||
|
|
379ad1fbb4 | ||
|
|
782206bc97 | ||
|
|
0776fff0e3 | ||
|
|
cfd9209e03 | ||
|
|
2cf35246e6 | ||
|
|
5056902e76 | ||
|
|
78beb031c7 | ||
|
|
1f43fa0f8b | ||
|
|
013aff87ce | ||
|
|
b92440f9b1 | ||
|
|
139681a7eb | ||
|
|
9f7aff4e4c | ||
|
|
251347bd7e | ||
|
|
e21da4caac | ||
|
|
4d6235ed11 | ||
|
|
586396cbb5 | ||
|
|
41450e9405 | ||
|
|
0a6e64e2f5 | ||
|
|
c65d308973 | ||
|
|
b9bc31f720 | ||
|
|
18de9321ce | ||
|
|
d74b907d20 | ||
|
|
ffd43c922e | ||
|
|
680ac2cebe | ||
|
|
570ad67204 | ||
|
|
63dd6d1ac5 | ||
|
|
f2b5ffdb8e | ||
|
|
ca5ca85d24 | ||
|
|
d451f818cf | ||
|
|
243cb098d4 | ||
|
|
2d4c757e2e | ||
|
|
761ed250ec | ||
|
|
53628f2ea9 | ||
|
|
2627470946 | ||
|
|
a6dc4bc2b8 | ||
|
|
33aa4b26b1 | ||
|
|
87b40c6ad2 | ||
|
|
6efdaf8ddf | ||
|
|
c4845f01d2 | ||
|
|
585a958441 | ||
|
|
06f7bb5a32 | ||
|
|
1877a48795 | ||
|
|
997e615c69 | ||
|
|
27a03e0dc3 | ||
|
|
d0d4912c3b | ||
|
|
c65da92a80 | ||
|
|
f9d479fe1e | ||
|
|
bdd1aebea3 | ||
|
|
fb4610e6b7 | ||
|
|
de428daf9a | ||
|
|
8dbd4b391f | ||
|
|
7c5e6e74c8 | ||
|
|
972e81d1ad | ||
|
|
5aae80304c | ||
|
|
784f11c35d | ||
|
|
d7273ac8b1 | ||
|
|
53c4714aab | ||
|
|
1261740521 | ||
|
|
f54e598354 | ||
|
|
401834122d | ||
|
|
1bd4abf98e | ||
|
|
ddcd6dece9 | ||
|
|
3d37b28642 | ||
|
|
989fc3e6ea | ||
|
|
13c74535de | ||
|
|
4f336085d1 | ||
|
|
e92ecd9703 | ||
|
|
9f7094079b | ||
|
|
08b03a329f | ||
|
|
ae5e3fdd59 | ||
|
|
326c91e1a2 | ||
|
|
a7461de231 | ||
|
|
2bdd38716c | ||
|
|
992104d477 | ||
|
|
fbb422ece7 | ||
|
|
7d53559d2f | ||
|
|
bee50cd330 | ||
|
|
96bfe613c3 | ||
|
|
fcf48ab3d3 | ||
|
|
b665fe3ac1 | ||
|
|
a7280d1b96 | ||
|
|
721bfee53a | ||
|
|
809995b526 | ||
|
|
c6641c7d2d | ||
|
|
3d106cb091 | ||
|
|
c00c939f99 | ||
|
|
98f0b86641 | ||
|
|
2372aba6a2 | ||
|
|
c653e67c0f | ||
|
|
a089ed2b92 | ||
|
|
560cf59626 | ||
|
|
fec51d4c46 | ||
|
|
e9adcebaf2 | ||
|
|
d6f2a174fc | ||
|
|
0b959098be | ||
|
|
c589555845 | ||
|
|
b7540df6a4 | ||
|
|
e1b661f8c1 | ||
|
|
045eea1130 | ||
|
|
f615ac4bdf | ||
|
|
6f8d351e86 | ||
|
|
8cfacebd06 | ||
|
|
59529a92ca | ||
|
|
43c6f0b588 | ||
|
|
b5cd7efceb | ||
|
|
0583f73574 | ||
|
|
b69d1b51c7 | ||
|
|
e889b460c0 | ||
|
|
7c71f188a3 | ||
|
|
97dc0edde0 | ||
|
|
f3b15abcb7 | ||
|
|
31ac8714e0 | ||
|
|
37e01efb78 | ||
|
|
a3d51d2027 | ||
|
|
f62f2adbc3 | ||
|
|
f68a4b9fc4 | ||
|
|
a9c17a22ca | ||
|
|
7f02f07f75 | ||
|
|
8f0fb27dec | ||
|
|
b38a6c5780 | ||
|
|
acc0a7436f | ||
|
|
012411ad8d | ||
|
|
98434d6105 | ||
|
|
c02e7f4bb5 | ||
|
|
b972997af7 | ||
|
|
437cf354e2 | ||
|
|
e85265abc2 | ||
|
|
5b75199769 | ||
|
|
a065eba56d | ||
|
|
0899b3b5e5 | ||
|
|
12404a5efb | ||
|
|
0d35450362 | ||
|
|
8d6f7849ff | ||
|
|
43af12039f | ||
|
|
742c776a92 | ||
|
|
d29cefb6eb | ||
|
|
b8fc4186d5 | ||
|
|
d9aa1deac8 | ||
|
|
bbfda6599a | ||
|
|
db0e2b8faf | ||
|
|
8f6edd8dc8 | ||
|
|
430290066c | ||
|
|
e772e78179 | ||
|
|
d9ef16dbb6 | ||
|
|
998d0baab0 | ||
|
|
0735c8ab26 | ||
|
|
5fa2bdc6c7 | ||
|
|
be2b92bd8b | ||
|
|
38ad514589 | ||
|
|
b938a5c9ed | ||
|
|
a93605f7fb | ||
|
|
41242cbe5d | ||
|
|
5db50aca69 | ||
|
|
eb4b6fa621 | ||
|
|
e7e8083139 | ||
|
|
e6b3bda2c3 | ||
|
|
1ab6bd434f | ||
|
|
3b90ddfefe | ||
|
|
9b1f1e5294 | ||
|
|
6cad07c23b | ||
|
|
4dd6c44cbd | ||
|
|
33f2382767 | ||
|
|
419191c653 | ||
|
|
349df0a0e5 | ||
|
|
552411f832 | ||
|
|
9f0e7da64e | ||
|
|
81b065a95d | ||
|
|
4fcae1aef5 | ||
|
|
c5c866aafe | ||
|
|
ac3ce2aa15 | ||
|
|
bceaed6d4d | ||
|
|
16d917a85f | ||
|
|
60cbf29250 | ||
|
|
da14aa463b | ||
|
|
d482c1af28 | ||
|
|
e85355ada4 | ||
|
|
5d3d40d962 | ||
|
|
7583419d88 | ||
|
|
c5f1dcccfc | ||
|
|
4d82ea102a | ||
|
|
a48f5966be | ||
|
|
5daf63b717 | ||
|
|
97aca09e58 | ||
|
|
ec9437dbcc | ||
|
|
0901dedefe | ||
|
|
d22d890cac | ||
|
|
93feda3d9a | ||
|
|
fc67c2b4f1 | ||
|
|
b87d9cf2c9 | ||
|
|
0963a4e9a1 | ||
|
|
bf13a4e281 | ||
|
|
f62b5789ad | ||
|
|
9a9cfbe0ba | ||
|
|
3780ad3133 | ||
|
|
2d3c9c5e67 | ||
|
|
20c71ceacd | ||
|
|
c042f08632 | ||
|
|
bb6b04897b | ||
|
|
490825fb91 | ||
|
|
3a00fc732a | ||
|
|
f32f574004 | ||
|
|
09f755a64d | ||
|
|
1799ffeaa9 | ||
|
|
d10f277bd3 | ||
|
|
63f6a563a3 | ||
|
|
27574b384c | ||
|
|
c26c5833cc | ||
|
|
09a78b5da9 | ||
|
|
ef2d5c40c0 | ||
|
|
11fdca0634 | ||
|
|
5d414da504 | ||
|
|
93a2e773a5 | ||
|
|
336bbbe389 | ||
|
|
cb809f8e04 | ||
|
|
c4409eafc4 | ||
|
|
54f09d7345 | ||
|
|
00ffc42cef | ||
|
|
d695af89f6 | ||
|
|
9f9a732c38 | ||
|
|
864cf22241 | ||
|
|
8e5c0ee402 | ||
|
|
724a2a2c4a | ||
|
|
f365d807e5 | ||
|
|
4406915ebc | ||
|
|
cc1e216eb9 | ||
|
|
10eafdc62e | ||
|
|
0f4cd8f1c0 | ||
|
|
8b30503387 | ||
|
|
8e5f6ddb68 | ||
|
|
0bcece9958 | ||
|
|
64f7972a3d | ||
|
|
f0f4d63fa9 | ||
|
|
51e2dde018 | ||
|
|
c022431a00 | ||
|
|
33834b7d14 | ||
|
|
23522682d4 | ||
|
|
492e8bf563 | ||
|
|
5f16f342d9 | ||
|
|
921507c510 | ||
|
|
68eb5a1df5 | ||
|
|
04d43c435d | ||
|
|
d5f3d5c8cc | ||
|
|
d31fd78d96 | ||
|
|
27003b53bb | ||
|
|
36246c975b | ||
|
|
14f9aba921 | ||
|
|
1bd91cdebe | ||
|
|
4d50ee63d6 | ||
|
|
221fbfb436 | ||
|
|
d2590c69b4 | ||
|
|
aa792eabab | ||
|
|
a2d027eaa0 | ||
|
|
b419e95173 | ||
|
|
9538f5d317 | ||
|
|
4957d6a61e | ||
|
|
d60331a21c | ||
|
|
beed4145ec | ||
|
|
56073cd1ea | ||
|
|
bb675afae6 | ||
|
|
5bf859c8e9 | ||
|
|
0d285312a9 | ||
|
|
69a11c7f7e | ||
|
|
9fbcc008cb | ||
|
|
7d32a1a829 | ||
|
|
a3d7f9f242 | ||
|
|
20a25f60ea | ||
|
|
5c5a282f91 | ||
|
|
8668198c26 | ||
|
|
a19314b087 | ||
|
|
f6d7e30b84 | ||
|
|
82609b1ebc | ||
|
|
a776104e21 | ||
|
|
56c50841ee | ||
|
|
aeb6d8c459 | ||
|
|
dc17c268e8 | ||
|
|
b366492761 | ||
|
|
9451677daa | ||
|
|
d422811bb7 | ||
|
|
3742bc626e | ||
|
|
099b744235 | ||
|
|
39627bc429 | ||
|
|
7004c2724d | ||
|
|
c2d9fa26ce | ||
|
|
f50df10591 | ||
|
|
cf13086efe | ||
|
|
3b76372254 | ||
|
|
b5df2f4314 | ||
|
|
267780bf0a | ||
|
|
f3073db42a | ||
|
|
4c7b313e0d | ||
|
|
53102502c3 | ||
|
|
7a76252007 | ||
|
|
00b5c70750 | ||
|
|
4388095cde | ||
|
|
244573e719 | ||
|
|
80b63b6729 | ||
|
|
9f4ec21f47 | ||
|
|
0aaec97527 | ||
|
|
4018b2b196 | ||
|
|
2705ed0a71 | ||
|
|
3d851033e9 | ||
|
|
ba8db1f6d7 | ||
|
|
18cea823a1 | ||
|
|
9029bf644e | ||
|
|
99c9ae127c | ||
|
|
0fdfdf71f2 | ||
|
|
3b1062d45d | ||
|
|
5a988a5087 | ||
|
|
a231706a06 | ||
|
|
2564f0f998 | ||
|
|
9a1b843ff6 | ||
|
|
a0e5e16afb | ||
|
|
0d51b76947 | ||
|
|
2b1a840002 | ||
|
|
b718ae35a8 | ||
|
|
0e2fdc95ae | ||
|
|
8cb9b479c5 | ||
|
|
1aae980c54 | ||
|
|
810daf8206 | ||
|
|
22e81810dd | ||
|
|
b823fa4450 | ||
|
|
09d4936657 | ||
|
|
f6e285103a | ||
|
|
53878eef13 | ||
|
|
130f429c6f | ||
|
|
9c852df6aa | ||
|
|
737b4c515e | ||
|
|
61f249335d | ||
|
|
8dc59763eb | ||
|
|
84965ea1a8 | ||
|
|
0c2def0e3e | ||
|
|
d0039960c4 | ||
|
|
ea98de63f7 | ||
|
|
7f6bb71eb3 | ||
|
|
ea4193222f | ||
|
|
8765b176f9 | ||
|
|
628cd8a489 | ||
|
|
842b895f09 | ||
|
|
243fb46157 | ||
|
|
74b90aa87e | ||
|
|
6dfa7f3941 | ||
|
|
6b7c9718d6 | ||
|
|
13d9e8ff38 | ||
|
|
57b04e1b5d | ||
|
|
7cd25ed605 | ||
|
|
7ec2badd21 | ||
|
|
71ff2d7177 | ||
|
|
c3c1cdd1b0 | ||
|
|
f8d8eecf80 | ||
|
|
088e54f560 | ||
|
|
c266800a3a | ||
|
|
ec20b0aa2e | ||
|
|
618af397b4 | ||
|
|
5dbf13730e | ||
|
|
4513da9496 | ||
|
|
62a4be03cf | ||
|
|
b356fee5d8 | ||
|
|
2ed889b7f2 | ||
|
|
7c6971239d | ||
|
|
482c100646 | ||
|
|
b3e0587ea0 | ||
|
|
d70156d2e2 | ||
|
|
4628763001 | ||
|
|
1e4b701749 | ||
|
|
16b3be0a76 | ||
|
|
1358850aa6 | ||
|
|
6a12362660 | ||
|
|
e5cb78cc88 | ||
|
|
efa071dd06 | ||
|
|
2546afe2aa | ||
|
|
af7eeffddb | ||
|
|
232d136885 | ||
|
|
71d2dbd0b6 | ||
|
|
6c7029ffd4 | ||
|
|
e33d8a2198 | ||
|
|
6303c0e713 | ||
|
|
3ebe6c192a | ||
|
|
d39b7bab27 | ||
|
|
ac4607ed81 | ||
|
|
b42b8886aa | ||
|
|
6944537c3e | ||
|
|
4368437475 | ||
|
|
4a3a38d1b7 | ||
|
|
40708baf7a | ||
|
|
29d89d48cb | ||
|
|
8ef918d667 | ||
|
|
69b2674c68 | ||
|
|
52d497619e | ||
|
|
8b70b8d85a | ||
|
|
5daf622aea | ||
|
|
d165d124b1 | ||
|
|
71b46c38a8 | ||
|
|
e3dc6a7a28 | ||
|
|
cc276ff0df | ||
|
|
8d9ad97c29 | ||
|
|
b797652209 | ||
|
|
9936aeea32 | ||
|
|
d91fb17a80 | ||
|
|
10beb3184e | ||
|
|
0ea75b28d4 | ||
|
|
ab5e94777c | ||
|
|
3c91b59ef9 | ||
|
|
e8ceb7189b | ||
|
|
3d3a8f0ebf | ||
|
|
b58d73b915 | ||
|
|
917838e0a5 | ||
|
|
43089bf006 | ||
|
|
d1099033ac | ||
|
|
1fb9e3d674 | ||
|
|
9cccf0515e | ||
|
|
be7cc1c2b0 | ||
|
|
fbd15b2087 | ||
|
|
299a8ee68d | ||
|
|
3a1f4d0f48 | ||
|
|
18e24d0619 | ||
|
|
a3a2b1fbbf | ||
|
|
a9c6e87c6a | ||
|
|
1ecf74c296 | ||
|
|
c3a632dca7 | ||
|
|
77ee7f0e24 | ||
|
|
4abb10eb0b | ||
|
|
3bffe223a3 | ||
|
|
e0d98dd301 | ||
|
|
f2f634448e | ||
|
|
1797efd68d | ||
|
|
0f5f3c9b97 | ||
|
|
4b1e367eda | ||
|
|
96eb0390d6 | ||
|
|
2d252ee06e | ||
|
|
b814c3184e | ||
|
|
50b17d9846 | ||
|
|
51d7169bd9 | ||
|
|
fd89b334c4 | ||
|
|
d1c82156ba | ||
|
|
f356970b89 | ||
|
|
b75c134fac | ||
|
|
4cd318756d | ||
|
|
b02599d22e | ||
|
|
6d911f68a3 | ||
|
|
542b0b6656 | ||
|
|
9ee9f28849 | ||
|
|
729ae1d787 | ||
|
|
e0fd3f4dab | ||
|
|
f1f93988fb | ||
|
|
ab3b941783 | ||
|
|
f31957e6a1 | ||
|
|
fd3042a04b | ||
|
|
209d87a856 | ||
|
|
7777eb5e15 | ||
|
|
51853f7488 | ||
|
|
c3adc61e6e | ||
|
|
1993652653 | ||
|
|
55c1446b68 | ||
|
|
19e92201b4 | ||
|
|
89e6a02e3b | ||
|
|
d395ac2879 | ||
|
|
51671c0b92 | ||
|
|
cdf918b1d0 | ||
|
|
4da28b40f0 | ||
|
|
0377f1abe1 | ||
|
|
df35462a4e | ||
|
|
af32262c28 | ||
|
|
85e320121e | ||
|
|
8796f43c6c | ||
|
|
80642dd7af | ||
|
|
692c9f8821 | ||
|
|
ed068469f3 | ||
|
|
a18b03b86f | ||
|
|
7476e29053 | ||
|
|
63cb1f8818 | ||
|
|
f613e13397 | ||
|
|
adc3604027 | ||
|
|
1ae851387f | ||
|
|
38c01971ff | ||
|
|
6787c4c3dd | ||
|
|
91d8dac9cf | ||
|
|
783ae56634 | ||
|
|
d3c3194ac3 | ||
|
|
144a08ee50 | ||
|
|
b3ecd55601 | ||
|
|
192349eee4 | ||
|
|
6b09a79d64 | ||
|
|
70e7cdcb9e | ||
|
|
ac1cd31949 | ||
|
|
8e45182357 | ||
|
|
cab74b075e | ||
|
|
6b84f9bb3e | ||
|
|
cd11059f10 | ||
|
|
d9331bfd49 | ||
|
|
68206b533b | ||
|
|
1aba78f272 | ||
|
|
a663248786 | ||
|
|
a2229b18bf | ||
|
|
432756b6e5 | ||
|
|
fe78c0f191 | ||
|
|
5b9b176c67 | ||
|
|
0cc8e5beed | ||
|
|
f2920533e9 | ||
|
|
62c9530c05 | ||
|
|
1f2922ad85 | ||
|
|
2cd1ba6a52 | ||
|
|
1733d2ea24 | ||
|
|
66971600f7 | ||
|
|
725314fb73 | ||
|
|
ec6c35c4ac | ||
|
|
b5c267fc8a | ||
|
|
ec56c72b51 | ||
|
|
f7121de4a0 | ||
|
|
577de17d24 | ||
|
|
83b3c9b3ee | ||
|
|
7d1a48807a | ||
|
|
c3c1d5bd12 | ||
|
|
8892d45b9f | ||
|
|
11e28bd619 | ||
|
|
d51aaf6304 | ||
|
|
f57c7223cf | ||
|
|
f0024f585d | ||
|
|
fd8adf3083 | ||
|
|
a1d65eb6d8 | ||
|
|
b6d364ad88 | ||
|
|
64c3642c57 | ||
|
|
e999dfcb40 | ||
|
|
84deeb6cd5 | ||
|
|
fb07bbe7b2 | ||
|
|
d1e676360d | ||
|
|
c1281e6b45 | ||
|
|
a6bdee48f3 | ||
|
|
951b5f8ecb | ||
|
|
fe0eec7e20 | ||
|
|
4df04f0ec9 | ||
|
|
3066d49cc1 | ||
|
|
7a300b63b5 | ||
|
|
628348d3e9 | ||
|
|
72ba8178a8 | ||
|
|
b39b876493 | ||
|
|
69586e7bdf | ||
|
|
f0bae7939a | ||
|
|
6ad78ca8a5 | ||
|
|
422020c4d6 | ||
|
|
0d5f5e15d4 | ||
|
|
af9cd975ce | ||
|
|
8950d68ddb | ||
|
|
65d6bc1d4c | ||
|
|
525c0cd09f | ||
|
|
2e748c998e | ||
|
|
70f4a4e18e | ||
|
|
ed3272cc44 | ||
|
|
6d1856234f | ||
|
|
91d8ea79d9 | ||
|
|
a65a89522d | ||
|
|
62b3293df0 | ||
|
|
885e9b76d6 | ||
|
|
32ddcf504c | ||
|
|
c313d451a5 | ||
|
|
781f368d42 | ||
|
|
33324a59cc | ||
|
|
10066cd4ef | ||
|
|
bde87895c8 | ||
|
|
b5995a76f7 | ||
|
|
95310eab6c | ||
|
|
39b756a0d1 | ||
|
|
12b89cd2ee | ||
|
|
746a08686b | ||
|
|
ffe3bb6763 | ||
|
|
e709842eae | ||
|
|
7a798d3ceb | ||
|
|
6d36eb78ad | ||
|
|
9d1a6d1484 | ||
|
|
3059c3b69e | ||
|
|
929af9ed03 | ||
|
|
e7fdac9d5c | ||
|
|
3d32c460eb | ||
|
|
2d5cb97288 | ||
|
|
6212264cc6 | ||
|
|
32eb5290c2 | ||
|
|
c702dcabf8 | ||
|
|
c432dc008b | ||
|
|
fb822e49f2 | ||
|
|
00bb6bf509 | ||
|
|
bccd823c8e | ||
|
|
8c003d83c4 | ||
|
|
67f29b16ef | ||
|
|
1c1cb048cd | ||
|
|
b65e5eb14e | ||
|
|
6d2f6408e4 | ||
|
|
c17059dee7 | ||
|
|
96607df7f0 | ||
|
|
edfee7f348 | ||
|
|
8b9bf75880 | ||
|
|
3d8236367d | ||
|
|
2a01c798d3 | ||
|
|
fbaaac63d4 | ||
|
|
791b427f44 | ||
|
|
bcaad515fd | ||
|
|
5acd37fa96 | ||
|
|
f5e6d111b1 | ||
|
|
bcb340da09 | ||
|
|
3696765b7d | ||
|
|
5a74c2a67e | ||
|
|
52523d33dd | ||
|
|
df370d725e | ||
|
|
0d8543d677 | ||
|
|
c9cacfb25d | ||
|
|
bde650f21e | ||
|
|
be943a9fd6 | ||
|
|
d3b2ac1507 | ||
|
|
72f199024d | ||
|
|
c84af49386 | ||
|
|
fd372629f7 | ||
|
|
76afa02dab | ||
|
|
2003610b3b | ||
|
|
a474b37212 | ||
|
|
68b5aab020 | ||
|
|
f54a336cb7 | ||
|
|
f4d08ccf80 | ||
|
|
9049402a1b | ||
|
|
f1b73350c2 | ||
|
|
8700de66e4 | ||
|
|
6c0bebccb0 | ||
|
|
437342b93e | ||
|
|
39005e27d6 | ||
|
|
2865afe759 | ||
|
|
6997bfc68d | ||
|
|
16be38887f | ||
|
|
0081d8c07f | ||
|
|
5f7141982c | ||
|
|
05330227be | ||
|
|
05dad67cc2 | ||
|
|
9efdd242fb | ||
|
|
81df265e41 | ||
|
|
a6c0b10704 | ||
|
|
5c874c19cb | ||
|
|
b6233c3de7 | ||
|
|
bfd2afe5ad | ||
|
|
4c1a0fc58f | ||
|
|
a2b117ae02 | ||
|
|
8e534598b5 | ||
|
|
aeb304b29e | ||
|
|
a22ae909bc | ||
|
|
806ffb1085 | ||
|
|
52f787f675 | ||
|
|
cbfddf4e1d | ||
|
|
57fad67781 | ||
|
|
ff8cc268fd | ||
|
|
dadd9cd1e8 | ||
|
|
de237fb058 | ||
|
|
51dbd36c74 | ||
|
|
ffa33d7b80 | ||
|
|
4e5323538c | ||
|
|
19287eeeb2 | ||
|
|
8b29e127c2 | ||
|
|
7be9f1d054 | ||
|
|
b8dafa642e | ||
|
|
f2a4ed680b | ||
|
|
22642ff0aa | ||
|
|
b89172149d | ||
|
|
bf666bc0c7 | ||
|
|
de97c0eb4b | ||
|
|
f70667ea68 | ||
|
|
2063bb8ffa | ||
|
|
d8b63370f3 | ||
|
|
43d2d68da5 | ||
|
|
b058063c40 | ||
|
|
19c9388c20 | ||
|
|
b533272ecb | ||
|
|
1007618f6f | ||
|
|
790871e908 | ||
|
|
0216f5de55 | ||
|
|
21f647310b | ||
|
|
e2d6023cb9 | ||
|
|
2fd775f69c | ||
|
|
ee4d9aa4c1 | ||
|
|
5045839cb2 | ||
|
|
44a9392eca | ||
|
|
59062402b9 | ||
|
|
e01f6da1b8 | ||
|
|
8abaf11965 | ||
|
|
67204994dc | ||
|
|
bf7bd9a16c | ||
|
|
c1a568c9c4 | ||
|
|
1cc6fbd9b0 | ||
|
|
ed238e8b88 | ||
|
|
fac49b8375 | ||
|
|
fff750c99d | ||
|
|
a2544568f9 | ||
|
|
36f4b34f19 | ||
|
|
b363472265 | ||
|
|
edc0ebb780 | ||
|
|
a03eb6d3f6 | ||
|
|
f5b757ced6 | ||
|
|
1f4474f677 | ||
|
|
dd0694b9cb | ||
|
|
bf813be0f3 | ||
|
|
c84c0ab52d | ||
|
|
f368a0c12e | ||
|
|
a45b5b4921 | ||
|
|
7e0a4ed629 | ||
|
|
34f85ee94e | ||
|
|
62fd26f094 | ||
|
|
8c238eddce | ||
|
|
cd0fe37741 | ||
|
|
45c65e6b1a | ||
|
|
8643cc2133 | ||
|
|
e66a76f524 | ||
|
|
ba3c3bbd87 | ||
|
|
922f8e44ee | ||
|
|
1515bd7c9d | ||
|
|
bdee968e3e | ||
|
|
71d9a83dec | ||
|
|
d83ea92085 | ||
|
|
5cf7947ccd | ||
|
|
dc7d3b182d | ||
|
|
84cf4cb350 | ||
|
|
9e9c05f0ee | ||
|
|
c54bca6f7f | ||
|
|
95a91682c3 | ||
|
|
999e556be4 | ||
|
|
8b6293f6bf | ||
|
|
e33031b850 | ||
|
|
c5e7245096 | ||
|
|
65a0672791 | ||
|
|
e22ab10991 | ||
|
|
be900f1253 | ||
|
|
68c4286026 | ||
|
|
7dc9dd6fdf | ||
|
|
ed18222365 | ||
|
|
3e19bf88d5 | ||
|
|
ba23025cd8 | ||
|
|
7c3a39f400 | ||
|
|
e72723dc5c | ||
|
|
66520be7a7 | ||
|
|
82a63a03c0 | ||
|
|
8d9814a521 | ||
|
|
0ff2deab5d | ||
|
|
8e12053e03 | ||
|
|
e4389d8dc2 | ||
|
|
49e6121347 | ||
|
|
4ea7b36447 | ||
|
|
93bedd7aba | ||
|
|
b78896b9aa | ||
|
|
e10d14004f | ||
|
|
c2e77e2f17 | ||
|
|
9fd855ed47 | ||
|
|
b8ae4a8c09 | ||
|
|
e5aed6be7a | ||
|
|
b922f8d459 | ||
|
|
35e9662767 | ||
|
|
cb1d25fcfa | ||
|
|
2b7fc0506a | ||
|
|
af942a693b | ||
|
|
26de9e247a | ||
|
|
b530c0281b | ||
|
|
e70cb4e6c7 | ||
|
|
d89602a53f | ||
|
|
3bd9042054 | ||
|
|
525063be90 | ||
|
|
c1282b57f5 | ||
|
|
5ba69e1734 | ||
|
|
c96cbe481c | ||
|
|
a7db4feceb | ||
|
|
b86c3b7a68 | ||
|
|
475306b757 | ||
|
|
f016934184 | ||
|
|
2174f6646e | ||
|
|
16170678a7 | ||
|
|
2806adee2d | ||
|
|
ec38505720 | ||
|
|
d2d58dd6a8 | ||
|
|
b2a39c5767 | ||
|
|
679f526d89 | ||
|
|
2e472fe7ea | ||
|
|
88dafe564f | ||
|
|
8d9479910f | ||
|
|
9847086466 | ||
|
|
40861761c2 | ||
|
|
88378ed058 | ||
|
|
8569227473 | ||
|
|
f4ca41ad75 | ||
|
|
376051a9be | ||
|
|
a5071e010b | ||
|
|
28d8149c69 | ||
|
|
e9f7db3045 | ||
|
|
aba19334ea | ||
|
|
f3be138eb8 | ||
|
|
bc05893f82 | ||
|
|
dd8ae61643 | ||
|
|
ee98d26218 | ||
|
|
886386c039 | ||
|
|
438ab7c115 | ||
|
|
52c7ff1d81 | ||
|
|
ff499ef79f | ||
|
|
37a61720b6 | ||
|
|
7d42aa1513 | ||
|
|
6e9671a8a8 | ||
|
|
52a6c37558 | ||
|
|
075fed91bd | ||
|
|
30f93a29c2 | ||
|
|
4cf131a101 | ||
|
|
7286f5291d | ||
|
|
07fce8eff2 | ||
|
|
176606d0cb | ||
|
|
8ae309ebac | ||
|
|
841ab487f8 | ||
|
|
61ebe3b0c4 | ||
|
|
ca9635df33 | ||
|
|
8a4dc79e1a | ||
|
|
d78e8dab93 | ||
|
|
24823ba647 | ||
|
|
d47393bd82 | ||
|
|
387828a3f7 | ||
|
|
c4a83bd6f6 | ||
|
|
827c71dac9 | ||
|
|
2acb5bd992 | ||
|
|
c8fa3e21e6 | ||
|
|
57a65fe436 | ||
|
|
c90768c93b | ||
|
|
29397d29ba | ||
|
|
fc04750817 | ||
|
|
458e563cd9 | ||
|
|
71aac7a5fb | ||
|
|
09c6c4ff02 | ||
|
|
eb9e754b3a | ||
|
|
a40d397d5d | ||
|
|
7edd10e5fa | ||
|
|
d75d876edd | ||
|
|
e44276989f | ||
|
|
3560e680bc | ||
|
|
faa9c6909d | ||
|
|
ace010b38a | ||
|
|
be4614eb5e | ||
|
|
35a1b77da5 | ||
|
|
46965a096c | ||
|
|
700c25f5b4 | ||
|
|
631a9f60f3 | ||
|
|
ed9f3243f0 | ||
|
|
ade21a965f | ||
|
|
f0cfd361bd | ||
|
|
78623c95f2 | ||
|
|
f0e2e4311b | ||
|
|
3dc4bd8581 | ||
|
|
1d1cd32bc3 | ||
|
|
868f8745fa | ||
|
|
2a9c3589d9 | ||
|
|
5235cc987d | ||
|
|
3b1e56a427 | ||
|
|
3fbccb01dc | ||
|
|
ad31ec5c5f | ||
|
|
15cf8f8531 | ||
|
|
ade40741ca | ||
|
|
ea19e9c6aa | ||
|
|
d33dfe5cb2 | ||
|
|
27d5f5c237 | ||
|
|
df22fb322e | ||
|
|
c3cd1f1814 | ||
|
|
dd517c6404 | ||
|
|
83564ea5f3 | ||
|
|
bbe0079d98 | ||
|
|
730663649f | ||
|
|
1369c545ac | ||
|
|
4db7a1c3bb | ||
|
|
755722ced6 | ||
|
|
1cf9335b24 | ||
|
|
13c11487f7 | ||
|
|
028ec7e744 | ||
|
|
54b3ceeca2 | ||
|
|
30a0c61de0 | ||
|
|
409a39ec8d | ||
|
|
296c5b645a | ||
|
|
cc9ab5f197 | ||
|
|
1551928502 | ||
|
|
b67b71cd87 | ||
|
|
7eb25ec7b3 | ||
|
|
539da24863 | ||
|
|
a8e4229852 | ||
|
|
cbe329b90a | ||
|
|
06dd735342 | ||
|
|
9ab29f8dcd | ||
|
|
ba426d6887 | ||
|
|
18cdc903cf | ||
|
|
fcf8368eb1 | ||
|
|
a678416994 | ||
|
|
122bc7770e | ||
|
|
e9e694f4ef | ||
|
|
da1091eed9 | ||
|
|
c2477a5cad | ||
|
|
2cf5f01397 | ||
|
|
38042ad4e9 | ||
|
|
51238c4bdb | ||
|
|
9481d06e62 | ||
|
|
a5cf4210cd | ||
|
|
f9aec02f3c | ||
|
|
7455b1b527 | ||
|
|
d4fb30885b | ||
|
|
d786c49525 | ||
|
|
5852f3eafe | ||
|
|
be0e1c7b14 | ||
|
|
7c1d481d6d | ||
|
|
518ec97114 | ||
|
|
32d80e2caf | ||
|
|
19147f326c | ||
|
|
2a59243cba | ||
|
|
4fc6b0ffa4 | ||
|
|
28c82bf18d | ||
|
|
7263e25d9b | ||
|
|
f695ca5884 | ||
|
|
93fedc12db | ||
|
|
1230853343 | ||
|
|
dce7a5732e | ||
|
|
c53f845ec9 | ||
|
|
84c2379285 | ||
|
|
3b908c4781 | ||
|
|
1802601a12 | ||
|
|
6de23bf36e | ||
|
|
aff659aaf7 | ||
|
|
05745e3f1d | ||
|
|
e8768ae08d | ||
|
|
f6fe39ff11 | ||
|
|
e204242118 | ||
|
|
2d609557ff | ||
|
|
e0bad5153b | ||
|
|
424c58f3e9 | ||
|
|
14dab319a8 | ||
|
|
5fcac7c846 | ||
|
|
2f917bff5c | ||
|
|
7db69e6a12 | ||
|
|
f7dc257a20 | ||
|
|
97db670956 | ||
|
|
51be857f3c | ||
|
|
0f8e4e0a81 | ||
|
|
6313223bcd | ||
|
|
3bc5679cab | ||
|
|
be49dabd0d | ||
|
|
ac968c36d7 | ||
|
|
0ad6c9e3d9 | ||
|
|
fff2e580cd | ||
|
|
7b4d62c794 | ||
|
|
76637c53c5 | ||
|
|
59073fa3eb | ||
|
|
808a03927c | ||
|
|
459957f30a | ||
|
|
b98d13fc3c | ||
|
|
4f3de09672 | ||
|
|
1fde8b868a | ||
|
|
66aeb89469 | ||
|
|
a5122d7f6c | ||
|
|
c0a3b76958 | ||
|
|
7e1d26dd5c | ||
|
|
5584ba36c6 | ||
|
|
75d382d3db | ||
|
|
febf8af4b5 | ||
|
|
10335f60f9 | ||
|
|
ecff9c1ef7 | ||
|
|
a247d0c74b | ||
|
|
341b4e09b7 | ||
|
|
f696796e88 | ||
|
|
413dbf8757 | ||
|
|
f553819502 | ||
|
|
34351b7a79 | ||
|
|
b061b6678f | ||
|
|
dcdcd48d8f | ||
|
|
87ef73329f | ||
|
|
05f7f0ade2 | ||
|
|
6311dabe68 | ||
|
|
bdebf198bb | ||
|
|
20de541b13 | ||
|
|
b31454e362 | ||
|
|
0be0775a76 | ||
|
|
6dfb8120c2 | ||
|
|
a7dde578a8 | ||
|
|
692be57738 | ||
|
|
d02bc873f8 | ||
|
|
8b24851b9d | ||
|
|
c328f9589d | ||
|
|
fde5b16817 | ||
|
|
45a9ade337 | ||
|
|
62b7c5eaed | ||
|
|
69014cd55b | ||
|
|
5a97dbf606 | ||
|
|
2838a916ab | ||
|
|
d2ba3b1ef7 | ||
|
|
d632d743e0 | ||
|
|
ddbbd36e4b | ||
|
|
c8ad7b7f84 |
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@v3
|
uses: actions/upload-artifact@v4
|
||||||
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@v6
|
uses: actions/github-script@v7
|
||||||
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'
|
||||||
|
|||||||
2
.github/actions/get-bootjdk/action.yml
vendored
2
.github/actions/get-bootjdk/action.yml
vendored
@@ -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@v3
|
uses: actions/cache@v4
|
||||||
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 }}
|
||||||
|
|||||||
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@v3
|
uses: actions/download-artifact@v4
|
||||||
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@v3
|
uses: actions/download-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: bundles-${{ inputs.platform }}${{ inputs.debug-suffix }}
|
name: bundles-${{ inputs.platform }}${{ inputs.debug-suffix }}
|
||||||
path: bundles
|
path: bundles
|
||||||
|
|||||||
12
.github/actions/get-jtreg/action.yml
vendored
12
.github/actions/get-jtreg/action.yml
vendored
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2023, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -41,7 +41,7 @@ runs:
|
|||||||
|
|
||||||
- name: 'Check cache for JTReg'
|
- name: 'Check cache for JTReg'
|
||||||
id: get-cached-jtreg
|
id: get-cached-jtreg
|
||||||
uses: actions/cache@v3
|
uses: actions/cache@v4
|
||||||
with:
|
with:
|
||||||
path: jtreg/installed
|
path: jtreg/installed
|
||||||
key: jtreg-${{ steps.version.outputs.value }}
|
key: jtreg-${{ steps.version.outputs.value }}
|
||||||
@@ -56,8 +56,14 @@ runs:
|
|||||||
|
|
||||||
- name: 'Build JTReg'
|
- name: 'Build JTReg'
|
||||||
run: |
|
run: |
|
||||||
|
# If runner architecture is x64 set JAVA_HOME_17_X64 otherwise set to JAVA_HOME_17_arm64
|
||||||
|
if [[ '${{ runner.arch }}' == 'X64' ]]; then
|
||||||
|
JDK="$JAVA_HOME_17_X64"
|
||||||
|
else
|
||||||
|
JDK="$JAVA_HOME_17_arm64"
|
||||||
|
fi
|
||||||
# Build JTReg and move files to the proper locations
|
# Build JTReg and move files to the proper locations
|
||||||
bash make/build.sh --jdk "$JAVA_HOME_17_X64"
|
bash make/build.sh --jdk "$JDK"
|
||||||
mkdir ../installed
|
mkdir ../installed
|
||||||
mv build/images/jtreg/* ../installed
|
mv build/images/jtreg/* ../installed
|
||||||
working-directory: jtreg/src
|
working-directory: jtreg/src
|
||||||
|
|||||||
3
.github/actions/get-msys2/action.yml
vendored
3
.github/actions/get-msys2/action.yml
vendored
@@ -30,8 +30,7 @@ runs:
|
|||||||
using: composite
|
using: composite
|
||||||
steps:
|
steps:
|
||||||
- name: 'Install MSYS2'
|
- name: 'Install MSYS2'
|
||||||
# use a specific release of msys2/setup-msys2 to prevent jtreg build failures on newer release
|
uses: msys2/setup-msys2@v2.22.0
|
||||||
uses: msys2/setup-msys2@7efe20baefed56359985e327d329042cde2434ff
|
|
||||||
with:
|
with:
|
||||||
install: 'autoconf tar unzip zip make'
|
install: 'autoconf tar unzip zip make'
|
||||||
path-type: minimal
|
path-type: minimal
|
||||||
|
|||||||
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@v3
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: bundles-${{ inputs.platform }}${{ inputs.debug-suffix }}
|
name: bundles-${{ inputs.platform }}${{ inputs.debug-suffix }}
|
||||||
path: bundles
|
path: bundles
|
||||||
|
|||||||
18
.github/scripts/gen-test-results.sh
vendored
18
.github/scripts/gen-test-results.sh
vendored
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
#
|
#
|
||||||
# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2022, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -44,8 +44,8 @@ for test in $failures $errors; do
|
|||||||
base_path="$(echo "$test" | tr '#' '_')"
|
base_path="$(echo "$test" | tr '#' '_')"
|
||||||
report_file="$report_dir/$base_path.jtr"
|
report_file="$report_dir/$base_path.jtr"
|
||||||
hs_err_files=$(ls $report_dir/$base_path/hs_err*.log 2> /dev/null || true)
|
hs_err_files=$(ls $report_dir/$base_path/hs_err*.log 2> /dev/null || true)
|
||||||
|
replay_files=$(ls $report_dir/$base_path/replay*.log 2> /dev/null || true)
|
||||||
echo "#### <a id="$anchor">$test"
|
echo "#### <a id="$anchor">$test"
|
||||||
|
|
||||||
echo '<details><summary>View test results</summary>'
|
echo '<details><summary>View test results</summary>'
|
||||||
echo ''
|
echo ''
|
||||||
echo '```'
|
echo '```'
|
||||||
@@ -73,6 +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
|
||||||
|
|
||||||
# With many failures, the summary can easily exceed 1024 kB, the limit set by Github
|
# With many failures, the summary can easily exceed 1024 kB, the limit set by Github
|
||||||
|
|||||||
1
.github/scripts/gen-test-summary.sh
vendored
1
.github/scripts/gen-test-summary.sh
vendored
@@ -42,6 +42,7 @@ 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
|
||||||
|
|||||||
26
.github/workflows/build-cross-compile.yml
vendored
26
.github/workflows/build-cross-compile.yml
vendored
@@ -61,27 +61,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://httpredir.debian.org/debian/
|
||||||
debian-version: sid
|
debian-version: sid
|
||||||
|
tolerate-sysroot-errors: true
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: 'Checkout the JDK source'
|
- name: 'Checkout the JDK source'
|
||||||
@@ -93,13 +98,6 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
platform: linux-x64
|
platform: linux-x64
|
||||||
|
|
||||||
# Use linux-x64 JDK bundle as build JDK
|
|
||||||
- name: 'Get build JDK'
|
|
||||||
id: buildjdk
|
|
||||||
uses: ./.github/actions/get-bundles
|
|
||||||
with:
|
|
||||||
platform: linux-x64
|
|
||||||
|
|
||||||
- name: 'Get GTest'
|
- name: 'Get GTest'
|
||||||
id: gtest
|
id: gtest
|
||||||
uses: ./.github/actions/get-gtest
|
uses: ./.github/actions/get-gtest
|
||||||
@@ -120,7 +118,7 @@ jobs:
|
|||||||
|
|
||||||
- name: 'Check cache for sysroot'
|
- name: 'Check cache for sysroot'
|
||||||
id: get-cached-sysroot
|
id: get-cached-sysroot
|
||||||
uses: actions/cache@v3
|
uses: actions/cache@v4
|
||||||
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') }}
|
||||||
@@ -130,6 +128,7 @@ 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
|
||||||
--arch=${{ matrix.debian-arch }}
|
--arch=${{ matrix.debian-arch }}
|
||||||
@@ -140,6 +139,7 @@ jobs:
|
|||||||
${{ 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'
|
||||||
@@ -151,7 +151,12 @@ jobs:
|
|||||||
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,gcc,udev,systemd}
|
||||||
rm -rf sysroot/usr/libexec/gcc
|
rm -rf sysroot/usr/libexec/gcc
|
||||||
if: steps.get-cached-sysroot.outputs.cache-hit != 'true'
|
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: >
|
||||||
@@ -165,7 +170,6 @@ jobs:
|
|||||||
--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 }}
|
||||||
@@ -173,6 +177,7 @@ 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
|
||||||
@@ -180,3 +185,4 @@ 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'
|
||||||
|
|||||||
11
.github/workflows/build-macos.yml
vendored
11
.github/workflows/build-macos.yml
vendored
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2022, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2022, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -31,6 +31,9 @@ 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
|
||||||
@@ -55,7 +58,7 @@ on:
|
|||||||
jobs:
|
jobs:
|
||||||
build-macos:
|
build-macos:
|
||||||
name: build
|
name: build
|
||||||
runs-on: macos-13
|
runs-on: ${{ inputs.runs-on }}
|
||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
@@ -74,7 +77,7 @@ jobs:
|
|||||||
id: bootjdk
|
id: bootjdk
|
||||||
uses: ./.github/actions/get-bootjdk
|
uses: ./.github/actions/get-bootjdk
|
||||||
with:
|
with:
|
||||||
platform: macos-x64
|
platform: ${{ inputs.platform }}
|
||||||
|
|
||||||
- name: 'Get JTReg'
|
- name: 'Get JTReg'
|
||||||
id: jtreg
|
id: jtreg
|
||||||
@@ -87,7 +90,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 make
|
brew install autoconf 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
|
||||||
|
|||||||
21
.github/workflows/main.yml
vendored
21
.github/workflows/main.yml
vendored
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2022, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2022, 2024, 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
|
||||||
@@ -133,8 +133,7 @@ jobs:
|
|||||||
gcc-major-version: '10'
|
gcc-major-version: '10'
|
||||||
configure-arguments: ${{ github.event.inputs.configure-arguments }}
|
configure-arguments: ${{ github.event.inputs.configure-arguments }}
|
||||||
make-arguments: ${{ github.event.inputs.make-arguments }}
|
make-arguments: ${{ github.event.inputs.make-arguments }}
|
||||||
# The linux-x64 jdk bundle is used as buildjdk for the cross-compile job
|
if: needs.select.outputs.linux-x64 == 'true'
|
||||||
if: needs.select.outputs.linux-x64 == 'true' || needs.select.outputs.linux-cross-compile == 'true'
|
|
||||||
|
|
||||||
build-linux-x86:
|
build-linux-x86:
|
||||||
name: linux-x86
|
name: linux-x86
|
||||||
@@ -214,7 +213,6 @@ jobs:
|
|||||||
name: linux-cross-compile
|
name: linux-cross-compile
|
||||||
needs:
|
needs:
|
||||||
- select
|
- 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'
|
||||||
@@ -228,6 +226,7 @@ jobs:
|
|||||||
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: '14.3.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 }}
|
||||||
@@ -239,8 +238,8 @@ jobs:
|
|||||||
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: '14.3.1'
|
xcode-toolset-version: '14.3.1'
|
||||||
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.select.outputs.macos-aarch64 == 'true'
|
if: needs.select.outputs.macos-aarch64 == 'true'
|
||||||
@@ -321,6 +320,16 @@ jobs:
|
|||||||
bootjdk-platform: macos-x64
|
bootjdk-platform: macos-x64
|
||||||
runs-on: macos-13
|
runs-on: macos-13
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
test-windows-x64:
|
test-windows-x64:
|
||||||
name: windows-x64
|
name: windows-x64
|
||||||
needs:
|
needs:
|
||||||
@@ -357,7 +366,7 @@ jobs:
|
|||||||
# Hack to get hold of the api environment variables that are only defined for actions
|
# Hack to get hold of the api environment variables that are only defined for actions
|
||||||
- name: 'Get API configuration'
|
- name: 'Get API configuration'
|
||||||
id: api
|
id: api
|
||||||
uses: actions/github-script@v6
|
uses: actions/github-script@v7
|
||||||
with:
|
with:
|
||||||
script: 'return { url: process.env["ACTIONS_RUNTIME_URL"], token: process.env["ACTIONS_RUNTIME_TOKEN"] }'
|
script: 'return { url: process.env["ACTIONS_RUNTIME_URL"], token: process.env["ACTIONS_RUNTIME_TOKEN"] }'
|
||||||
|
|
||||||
|
|||||||
11
.github/workflows/test.yml
vendored
11
.github/workflows/test.yml
vendored
@@ -63,6 +63,7 @@ jobs:
|
|||||||
- 'hs/tier1 compiler part 1'
|
- 'hs/tier1 compiler part 1'
|
||||||
- 'hs/tier1 compiler part 2'
|
- 'hs/tier1 compiler part 2'
|
||||||
- 'hs/tier1 compiler part 3'
|
- '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'
|
||||||
@@ -90,13 +91,17 @@ jobs:
|
|||||||
debug-suffix: -debug
|
debug-suffix: -debug
|
||||||
|
|
||||||
- test-name: 'hs/tier1 compiler part 2'
|
- test-name: 'hs/tier1 compiler part 2'
|
||||||
test-suite: 'test/hotspot/jtreg/:tier1_compiler_2 test/hotspot/jtreg/:tier1_compiler_not_xcomp'
|
test-suite: 'test/hotspot/jtreg/:tier1_compiler_2'
|
||||||
debug-suffix: -debug
|
debug-suffix: -debug
|
||||||
|
|
||||||
- test-name: 'hs/tier1 compiler part 3'
|
- test-name: 'hs/tier1 compiler part 3'
|
||||||
test-suite: 'test/hotspot/jtreg/:tier1_compiler_3'
|
test-suite: 'test/hotspot/jtreg/:tier1_compiler_3'
|
||||||
debug-suffix: -debug
|
debug-suffix: -debug
|
||||||
|
|
||||||
|
- test-name: 'hs/tier1 compiler not-xcomp'
|
||||||
|
test-suite: 'test/hotspot/jtreg/:tier1_compiler_not_xcomp'
|
||||||
|
debug-suffix: -debug
|
||||||
|
|
||||||
- test-name: 'hs/tier1 gc'
|
- test-name: 'hs/tier1 gc'
|
||||||
test-suite: 'test/hotspot/jtreg/:tier1_gc'
|
test-suite: 'test/hotspot/jtreg/:tier1_gc'
|
||||||
debug-suffix: -debug
|
debug-suffix: -debug
|
||||||
@@ -206,7 +211,7 @@ jobs:
|
|||||||
if: always()
|
if: always()
|
||||||
|
|
||||||
- name: 'Upload test results'
|
- name: 'Upload test results'
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
path: results
|
path: results
|
||||||
name: ${{ steps.package.outputs.artifact-name }}
|
name: ${{ steps.package.outputs.artifact-name }}
|
||||||
@@ -214,7 +219,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@v6
|
uses: actions/github-script@v7
|
||||||
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'
|
||||||
|
|||||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -18,8 +18,5 @@ NashornProfile.txt
|
|||||||
/src/utils/LogCompilation/target/
|
/src/utils/LogCompilation/target/
|
||||||
/.project/
|
/.project/
|
||||||
/.settings/
|
/.settings/
|
||||||
/.project
|
|
||||||
/.classpath
|
|
||||||
/.cproject
|
|
||||||
/compile_commands.json
|
/compile_commands.json
|
||||||
/.cache
|
/.cache
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ version=0
|
|||||||
domain=openjdk.org
|
domain=openjdk.org
|
||||||
|
|
||||||
[checks "whitespace"]
|
[checks "whitespace"]
|
||||||
files=.*\.cpp|.*\.hpp|.*\.c|.*\.h|.*\.java|.*\.cc|.*\.hh|.*\.m|.*\.mm|.*\.md|.*\.gmk|.*\.m4|.*\.ac|Makefile
|
files=.*\.cpp|.*\.hpp|.*\.c|.*\.h|.*\.java|.*\.cc|.*\.hh|.*\.m|.*\.mm|.*\.S|.*\.md|.*\.properties|.*\.gmk|.*\.m4|.*\.ac|Makefile
|
||||||
ignore-tabs=.*\.gmk|Makefile
|
ignore-tabs=.*\.gmk|Makefile
|
||||||
|
|
||||||
[checks "merge"]
|
[checks "merge"]
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
#
|
#
|
||||||
|
# Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved.
|
||||||
# Copyright 2015 Google, Inc. All Rights Reserved.
|
# Copyright 2015 Google, Inc. All Rights Reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
@@ -26,12 +27,17 @@ usage() {
|
|||||||
echo "$0 DIR ..."
|
echo "$0 DIR ..."
|
||||||
echo "Modifies in place all the java source files found"
|
echo "Modifies in place all the java source files found"
|
||||||
echo "in the given directories so that all java language modifiers"
|
echo "in the given directories so that all java language modifiers"
|
||||||
echo "are in the canonical order given by Modifier#toString()."
|
echo "are in the canonical order."
|
||||||
echo "Tries to get it right even within javadoc comments,"
|
echo "Tries to get it right even within javadoc comments,"
|
||||||
echo "and even if the list of modifiers spans 2 lines."
|
echo "and even if the list of modifiers spans 2 lines."
|
||||||
echo
|
echo
|
||||||
echo "See:"
|
echo "See:"
|
||||||
echo "https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Modifier.html#toString-int-"
|
echo "https://docs.oracle.com/javase/specs/jls/se21/html/jls-8.html#jls-8.1.1"
|
||||||
|
echo "https://docs.oracle.com/javase/specs/jls/se21/html/jls-8.html#jls-8.3.1"
|
||||||
|
echo "https://docs.oracle.com/javase/specs/jls/se21/html/jls-8.html#jls-8.4.3"
|
||||||
|
echo "https://docs.oracle.com/javase/specs/jls/se21/html/jls-8.html#jls-8.8.3"
|
||||||
|
echo "https://docs.oracle.com/javase/specs/jls/se21/html/jls-9.html#jls-9.1.1"
|
||||||
|
echo "https://docs.oracle.com/javase/specs/jls/se21/html/jls-9.html#jls-9.4"
|
||||||
echo
|
echo
|
||||||
echo "Example:"
|
echo "Example:"
|
||||||
echo "$0 jdk/src/java.base jdk/test/java/{util,io,lang}"
|
echo "$0 jdk/src/java.base jdk/test/java/{util,io,lang}"
|
||||||
@@ -46,7 +52,7 @@ for dir in "${dirs[@]}"; do [[ -d "$dir" ]] || usage; done
|
|||||||
|
|
||||||
declare -ar modifiers=(
|
declare -ar modifiers=(
|
||||||
public protected private
|
public protected private
|
||||||
abstract static final transient
|
abstract default static final sealed non-sealed transient
|
||||||
volatile synchronized native strictfp
|
volatile synchronized native strictfp
|
||||||
)
|
)
|
||||||
declare -r SAVE_IFS="$IFS"
|
declare -r SAVE_IFS="$IFS"
|
||||||
|
|||||||
@@ -68,7 +68,8 @@ id="toc-native-compiler-toolchain-requirements">Native Compiler
|
|||||||
<li><a href="#apple-xcode" id="toc-apple-xcode">Apple Xcode</a></li>
|
<li><a href="#apple-xcode" id="toc-apple-xcode">Apple Xcode</a></li>
|
||||||
<li><a href="#microsoft-visual-studio"
|
<li><a href="#microsoft-visual-studio"
|
||||||
id="toc-microsoft-visual-studio">Microsoft Visual Studio</a></li>
|
id="toc-microsoft-visual-studio">Microsoft Visual Studio</a></li>
|
||||||
<li><a href="#ibm-xl-cc" id="toc-ibm-xl-cc">IBM XL C/C++</a></li>
|
<li><a href="#ibm-open-xl-cc" id="toc-ibm-open-xl-cc">IBM Open XL
|
||||||
|
C/C++</a></li>
|
||||||
</ul></li>
|
</ul></li>
|
||||||
<li><a href="#boot-jdk-requirements" id="toc-boot-jdk-requirements">Boot
|
<li><a href="#boot-jdk-requirements" id="toc-boot-jdk-requirements">Boot
|
||||||
JDK Requirements</a>
|
JDK Requirements</a>
|
||||||
@@ -92,6 +93,8 @@ id="toc-build-tools-requirements">Build Tools Requirements</a>
|
|||||||
<li><a href="#autoconf" id="toc-autoconf">Autoconf</a></li>
|
<li><a href="#autoconf" id="toc-autoconf">Autoconf</a></li>
|
||||||
<li><a href="#gnu-make" id="toc-gnu-make">GNU Make</a></li>
|
<li><a href="#gnu-make" id="toc-gnu-make">GNU Make</a></li>
|
||||||
<li><a href="#gnu-bash" id="toc-gnu-bash">GNU Bash</a></li>
|
<li><a href="#gnu-bash" id="toc-gnu-bash">GNU Bash</a></li>
|
||||||
|
<li><a href="#graphviz-and-pandoc" id="toc-graphviz-and-pandoc">Graphviz
|
||||||
|
and Pandoc</a></li>
|
||||||
</ul></li>
|
</ul></li>
|
||||||
<li><a href="#running-configure" id="toc-running-configure">Running
|
<li><a href="#running-configure" id="toc-running-configure">Running
|
||||||
Configure</a>
|
Configure</a>
|
||||||
@@ -524,7 +527,7 @@ header files as provided by your distribution.</p>
|
|||||||
<p>The basic tooling is provided as part of the core operating system,
|
<p>The basic tooling is provided as part of the core operating system,
|
||||||
but you will most likely need to install developer packages.</p>
|
but you will most likely need to install developer packages.</p>
|
||||||
<p>For apt-based distributions (Debian, Ubuntu, etc), try this:</p>
|
<p>For apt-based distributions (Debian, Ubuntu, etc), try this:</p>
|
||||||
<pre><code>sudo apt-get install build-essential</code></pre>
|
<pre><code>sudo apt-get install build-essential autoconf</code></pre>
|
||||||
<p>For rpm-based distributions (Fedora, Red Hat, etc), try this:</p>
|
<p>For rpm-based distributions (Fedora, Red Hat, etc), try this:</p>
|
||||||
<pre><code>sudo yum groupinstall "Development Tools"</code></pre>
|
<pre><code>sudo yum groupinstall "Development Tools"</code></pre>
|
||||||
<p>For Alpine Linux, aside from basic tooling, install the GNU versions
|
<p>For Alpine Linux, aside from basic tooling, install the GNU versions
|
||||||
@@ -560,7 +563,7 @@ system and toolchain.</p>
|
|||||||
</tr>
|
</tr>
|
||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td>AIX</td>
|
<td>AIX</td>
|
||||||
<td>IBM XL C/C++</td>
|
<td>IBM Open XL C/C++</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="even">
|
<tr class="even">
|
||||||
<td>Windows</td>
|
<td>Windows</td>
|
||||||
@@ -599,18 +602,18 @@ to compile successfully without issues.</p>
|
|||||||
<p>All compilers are expected to be able to handle the C11 language
|
<p>All compilers are expected to be able to handle the C11 language
|
||||||
standard for C, and C++14 for C++.</p>
|
standard for C, and C++14 for C++.</p>
|
||||||
<h3 id="gcc">gcc</h3>
|
<h3 id="gcc">gcc</h3>
|
||||||
<p>The minimum accepted version of gcc is 6.0. Older versions will not
|
<p>The minimum accepted version of gcc is 10.0. Older versions will not
|
||||||
be accepted by <code>configure</code>.</p>
|
be accepted by <code>configure</code>.</p>
|
||||||
<p>The JDK is currently known to compile successfully with gcc version
|
<p>The JDK is currently known to compile successfully with gcc version
|
||||||
13.2 or newer.</p>
|
13.2 or newer.</p>
|
||||||
<p>In general, any version between these two should be usable.</p>
|
<p>In general, any version between these two should be usable.</p>
|
||||||
<h3 id="clang">clang</h3>
|
<h3 id="clang">clang</h3>
|
||||||
<p>The minimum accepted version of clang is 3.5. Older versions will not
|
<p>The minimum accepted version of clang is 13. Older versions will not
|
||||||
be accepted by <code>configure</code>.</p>
|
be accepted by <code>configure</code>.</p>
|
||||||
<p>To use clang instead of gcc on Linux, use
|
<p>To use clang instead of gcc on Linux, use
|
||||||
<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 13.0.</p>
|
||||||
<p>You will need the Xcode command line developer tools to be able to
|
<p>You will need the Xcode command line developer tools to be able to
|
||||||
build the JDK. (Actually, <em>only</em> the command line tools are
|
build the JDK. (Actually, <em>only</em> the command line tools are
|
||||||
needed, not the IDE.) The simplest way to install these is to run:</p>
|
needed, not the IDE.) The simplest way to install these is to run:</p>
|
||||||
@@ -671,11 +674,10 @@ the following line: (note that the " characters are essential)</p>
|
|||||||
version number accordingly. If you have not installed the
|
version number accordingly. If you have not installed the
|
||||||
<code>BuildTools</code>, but e.g. <code>Professional</code>, adjust the
|
<code>BuildTools</code>, but e.g. <code>Professional</code>, adjust the
|
||||||
product ID accordingly.</p>
|
product ID accordingly.</p>
|
||||||
<h3 id="ibm-xl-cc">IBM XL C/C++</h3>
|
<h3 id="ibm-open-xl-cc">IBM Open XL C/C++</h3>
|
||||||
<p>Please consult the AIX section of the <a
|
<p>The minimum accepted version of Open XL is 17.1.1.4. This is in
|
||||||
href="https://wiki.openjdk.org/display/Build/Supported+Build+Platforms">Supported
|
essence clang 15, and will be treated as such by the OpenJDK build
|
||||||
Build Platforms</a> OpenJDK Build Wiki page for details about which
|
system.</p>
|
||||||
versions of XLC are supported.</p>
|
|
||||||
<h2 id="boot-jdk-requirements">Boot JDK Requirements</h2>
|
<h2 id="boot-jdk-requirements">Boot JDK Requirements</h2>
|
||||||
<p>Paradoxically, building the JDK requires a pre-existing JDK. This is
|
<p>Paradoxically, building the JDK requires a pre-existing JDK. This is
|
||||||
called the "boot JDK". The boot JDK does not, however, have to be a JDK
|
called the "boot JDK". The boot JDK does not, however, have to be a JDK
|
||||||
@@ -753,6 +755,8 @@ macOS.</p>
|
|||||||
<code>sudo apt-get install libfontconfig-dev</code>.</li>
|
<code>sudo apt-get install libfontconfig-dev</code>.</li>
|
||||||
<li>To install on an rpm-based Linux, try running
|
<li>To install on an rpm-based Linux, try running
|
||||||
<code>sudo yum install fontconfig-devel</code>.</li>
|
<code>sudo yum install fontconfig-devel</code>.</li>
|
||||||
|
<li>To install on Alpine Linux, try running
|
||||||
|
<code>sudo apk add fontconfig-dev</code>.</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>Use <code>--with-fontconfig-include=<path></code> and
|
<p>Use <code>--with-fontconfig-include=<path></code> and
|
||||||
<code>--with-fontconfig=<path></code> if <code>configure</code>
|
<code>--with-fontconfig=<path></code> if <code>configure</code>
|
||||||
@@ -860,6 +864,13 @@ e.g. <code>configure MAKE=/opt/gnu/make</code>.</p>
|
|||||||
href="https://www.gnu.org/software/bash">GNU Bash</a>. No other shells
|
href="https://www.gnu.org/software/bash">GNU Bash</a>. No other shells
|
||||||
are supported.</p>
|
are supported.</p>
|
||||||
<p>At least version 3.2 of GNU Bash must be used.</p>
|
<p>At least version 3.2 of GNU Bash must be used.</p>
|
||||||
|
<h3 id="graphviz-and-pandoc">Graphviz and Pandoc</h3>
|
||||||
|
<p>In order to build the full docs (see the
|
||||||
|
<code>--enable-full-docs</code> configure option) <a
|
||||||
|
href="https://www.graphviz.org">Graphviz</a> and <a
|
||||||
|
href="https://pandoc.org">Pandoc</a> are required. Any recent versions
|
||||||
|
should work. For reference, and subject to change, Oracle builds use
|
||||||
|
Graphviz 9.0.0 and Pandoc 2.19.2.</p>
|
||||||
<h2 id="running-configure">Running Configure</h2>
|
<h2 id="running-configure">Running Configure</h2>
|
||||||
<p>To build the JDK, you need a "configuration", which consists of a
|
<p>To build the JDK, you need a "configuration", which consists of a
|
||||||
directory where to store the build output, coupled with information
|
directory where to store the build output, coupled with information
|
||||||
@@ -1499,9 +1510,7 @@ like this:</p>
|
|||||||
--resolve-deps \
|
--resolve-deps \
|
||||||
buster \
|
buster \
|
||||||
~/sysroot-arm64 \
|
~/sysroot-arm64 \
|
||||||
https://httpredir.debian.org/debian/</code></pre>
|
https://httpredir.debian.org/debian/</code></pre></li>
|
||||||
<p>If the target architecture is <code>riscv64</code>, the path should
|
|
||||||
be <code>debian-ports</code> instead of <code>debian</code>.</p></li>
|
|
||||||
<li><p>To create an Ubuntu-based chroot:</p>
|
<li><p>To create an Ubuntu-based chroot:</p>
|
||||||
<pre><code>sudo debootstrap \
|
<pre><code>sudo debootstrap \
|
||||||
--arch=arm64 \
|
--arch=arm64 \
|
||||||
@@ -2157,15 +2166,26 @@ you can create a directory under <code>build</code> and run
|
|||||||
<code>configure</code> from there, e.g.
|
<code>configure</code> from there, e.g.
|
||||||
<code>mkdir build/<name> && cd build/<name> && bash ../../configure</code>.</p>
|
<code>mkdir build/<name> && cd build/<name> && bash ../../configure</code>.</p>
|
||||||
<p>Then you can build that configuration using
|
<p>Then you can build that configuration using
|
||||||
<code>make CONF_NAME=<name></code> or
|
<code>make CONF=<selector></code>, where
|
||||||
<code>make CONF=<pattern></code>, where
|
<code><selector></code> is interpreted as follows:</p>
|
||||||
<code><pattern></code> is a substring matching one or several
|
<ul>
|
||||||
configurations, e.g. <code>CONF=debug</code>. The special empty pattern
|
<li>If <code><selector></code> exacly matches the name of a
|
||||||
(<code>CONF=</code>) will match <em>all</em> available configuration, so
|
configuration, this and only this configuration will be selected.</li>
|
||||||
<code>make CONF= hotspot</code> will build the <code>hotspot</code>
|
<li>If <code><selector></code> matches (i.e. is a substring of)
|
||||||
target for all configurations. Alternatively, you can execute
|
the names of several configurations, then all these configurations will
|
||||||
<code>make</code> in the configuration directory, e.g.
|
be selected.</li>
|
||||||
<code>cd build/<name> && make</code>.</p>
|
<li>If <code><selector></code> is empty (i.e. <code>CONF=</code>),
|
||||||
|
then all configurations will be selected.</li>
|
||||||
|
<li>If <code><selector></code> begins with <code>!</code>, then
|
||||||
|
all configurations <strong>not</strong> matching the string following
|
||||||
|
<code>!</code> will be selected.</li>
|
||||||
|
</ul>
|
||||||
|
<p>A more specialized version, <code>CONF_NAME=<name></code> also
|
||||||
|
exists, which will only match if the given <code><name></code>
|
||||||
|
exactly matches a single configuration.</p>
|
||||||
|
<p>Alternatively, you can execute <code>make</code> in the configuration
|
||||||
|
directory, e.g. <code>cd build/<name> && make</code>.</p>
|
||||||
|
<p><code>make CONF_NAME=<name></code> or</p>
|
||||||
<h3 id="handling-reconfigurations">Handling Reconfigurations</h3>
|
<h3 id="handling-reconfigurations">Handling Reconfigurations</h3>
|
||||||
<p>If you update the repository and part of the configure script has
|
<p>If you update the repository and part of the configure script has
|
||||||
changed, the build system will force you to re-run
|
changed, the build system will force you to re-run
|
||||||
|
|||||||
@@ -349,7 +349,7 @@ will most likely need to install developer packages.
|
|||||||
For apt-based distributions (Debian, Ubuntu, etc), try this:
|
For apt-based distributions (Debian, Ubuntu, etc), try this:
|
||||||
|
|
||||||
```
|
```
|
||||||
sudo apt-get install build-essential
|
sudo apt-get install build-essential autoconf
|
||||||
```
|
```
|
||||||
|
|
||||||
For rpm-based distributions (Fedora, Red Hat, etc), try this:
|
For rpm-based distributions (Fedora, Red Hat, etc), try this:
|
||||||
@@ -382,7 +382,7 @@ one-to-one correlation between target operating system and toolchain.
|
|||||||
| ------------------ | ------------------------- |
|
| ------------------ | ------------------------- |
|
||||||
| Linux | gcc, clang |
|
| Linux | gcc, clang |
|
||||||
| macOS | Apple Xcode (using clang) |
|
| macOS | Apple Xcode (using clang) |
|
||||||
| AIX | IBM XL C/C++ |
|
| AIX | IBM Open XL C/C++ |
|
||||||
| Windows | Microsoft Visual Studio |
|
| Windows | Microsoft Visual Studio |
|
||||||
|
|
||||||
Please see the individual sections on the toolchains for version
|
Please see the individual sections on the toolchains for version
|
||||||
@@ -403,7 +403,7 @@ C, and C++14 for C++.
|
|||||||
|
|
||||||
### gcc
|
### gcc
|
||||||
|
|
||||||
The minimum accepted version of gcc is 6.0. Older versions will not be accepted
|
The minimum accepted version of gcc is 10.0. Older versions will not be accepted
|
||||||
by `configure`.
|
by `configure`.
|
||||||
|
|
||||||
The JDK is currently known to compile successfully with gcc version 13.2 or
|
The JDK is currently known to compile successfully with gcc version 13.2 or
|
||||||
@@ -413,14 +413,14 @@ In general, any version between these two should be usable.
|
|||||||
|
|
||||||
### clang
|
### clang
|
||||||
|
|
||||||
The minimum accepted version of clang is 3.5. Older versions will not be
|
The minimum accepted version of clang is 13. Older versions will not be
|
||||||
accepted by `configure`.
|
accepted by `configure`.
|
||||||
|
|
||||||
To use clang instead of gcc on Linux, use `--with-toolchain-type=clang`.
|
To use clang instead of gcc on Linux, use `--with-toolchain-type=clang`.
|
||||||
|
|
||||||
### Apple Xcode
|
### Apple Xcode
|
||||||
|
|
||||||
The oldest supported version of Xcode is 8.
|
The oldest supported version of Xcode is 13.0.
|
||||||
|
|
||||||
You will need the Xcode command line developer tools to be able to build the
|
You will need the Xcode command line developer tools to be able to build the
|
||||||
JDK. (Actually, *only* the command line tools are needed, not the IDE.) The
|
JDK. (Actually, *only* the command line tools are needed, not the IDE.) The
|
||||||
@@ -487,11 +487,10 @@ that the " characters are essential)
|
|||||||
accordingly. If you have not installed the `BuildTools`, but e.g.
|
accordingly. If you have not installed the `BuildTools`, but e.g.
|
||||||
`Professional`, adjust the product ID accordingly.
|
`Professional`, adjust the product ID accordingly.
|
||||||
|
|
||||||
### IBM XL C/C++
|
### IBM Open XL C/C++
|
||||||
|
|
||||||
Please consult the AIX section of the [Supported Build Platforms](
|
The minimum accepted version of Open XL is 17.1.1.4. This is in essence clang
|
||||||
https://wiki.openjdk.org/display/Build/Supported+Build+Platforms) OpenJDK Build
|
15, and will be treated as such by the OpenJDK build system.
|
||||||
Wiki page for details about which versions of XLC are supported.
|
|
||||||
|
|
||||||
## Boot JDK Requirements
|
## Boot JDK Requirements
|
||||||
|
|
||||||
@@ -572,6 +571,7 @@ required on all platforms except Windows and macOS.
|
|||||||
libfontconfig-dev`.
|
libfontconfig-dev`.
|
||||||
* To install on an rpm-based Linux, try running `sudo yum install
|
* To install on an rpm-based Linux, try running `sudo yum install
|
||||||
fontconfig-devel`.
|
fontconfig-devel`.
|
||||||
|
* To install on Alpine Linux, try running `sudo apk add fontconfig-dev`.
|
||||||
|
|
||||||
Use `--with-fontconfig-include=<path>` and `--with-fontconfig=<path>` if
|
Use `--with-fontconfig-include=<path>` and `--with-fontconfig=<path>` if
|
||||||
`configure` does not automatically locate the platform Fontconfig files.
|
`configure` does not automatically locate the platform Fontconfig files.
|
||||||
@@ -684,6 +684,14 @@ shells are supported.
|
|||||||
|
|
||||||
At least version 3.2 of GNU Bash must be used.
|
At least version 3.2 of GNU Bash must be used.
|
||||||
|
|
||||||
|
### Graphviz and Pandoc
|
||||||
|
|
||||||
|
In order to build the full docs (see the `--enable-full-docs`
|
||||||
|
configure option) [Graphviz](https://www.graphviz.org) and
|
||||||
|
[Pandoc](https://pandoc.org) are required. Any recent versions should
|
||||||
|
work. For reference, and subject to change, Oracle builds use Graphviz
|
||||||
|
9.0.0 and Pandoc 2.19.2.
|
||||||
|
|
||||||
## Running Configure
|
## Running Configure
|
||||||
|
|
||||||
To build the JDK, you need a "configuration", which consists of a directory
|
To build the JDK, you need a "configuration", which consists of a directory
|
||||||
@@ -1316,9 +1324,6 @@ For example, cross-compiling to AArch64 from x86_64 could be done like this:
|
|||||||
https://httpredir.debian.org/debian/
|
https://httpredir.debian.org/debian/
|
||||||
```
|
```
|
||||||
|
|
||||||
If the target architecture is `riscv64`, the path should be `debian-ports`
|
|
||||||
instead of `debian`.
|
|
||||||
|
|
||||||
* To create an Ubuntu-based chroot:
|
* To create an Ubuntu-based chroot:
|
||||||
|
|
||||||
```
|
```
|
||||||
@@ -1946,12 +1951,25 @@ configuration with the name `<name>`. Alternatively, you can create a directory
|
|||||||
under `build` and run `configure` from there, e.g. `mkdir build/<name> && cd
|
under `build` and run `configure` from there, e.g. `mkdir build/<name> && cd
|
||||||
build/<name> && bash ../../configure`.
|
build/<name> && bash ../../configure`.
|
||||||
|
|
||||||
Then you can build that configuration using `make CONF_NAME=<name>` or `make
|
Then you can build that configuration using `make CONF=<selector>`, where
|
||||||
CONF=<pattern>`, where `<pattern>` is a substring matching one or several
|
`<selector>` is interpreted as follows:
|
||||||
configurations, e.g. `CONF=debug`. The special empty pattern (`CONF=`) will
|
|
||||||
match *all* available configuration, so `make CONF= hotspot` will build the
|
* If `<selector>` exacly matches the name of a configuration, this and only
|
||||||
`hotspot` target for all configurations. Alternatively, you can execute `make`
|
this configuration will be selected.
|
||||||
in the configuration directory, e.g. `cd build/<name> && make`.
|
* If `<selector>` matches (i.e. is a substring of) the names of several
|
||||||
|
configurations, then all these configurations will be selected.
|
||||||
|
* If `<selector>` is empty (i.e. `CONF=`), then all configurations will be
|
||||||
|
selected.
|
||||||
|
* If `<selector>` begins with `!`, then all configurations **not** matching the
|
||||||
|
string following `!` will be selected.
|
||||||
|
|
||||||
|
A more specialized version, `CONF_NAME=<name>` also exists, which will only
|
||||||
|
match if the given `<name>` exactly matches a single configuration.
|
||||||
|
|
||||||
|
Alternatively, you can execute `make` in the configuration directory, e.g. `cd
|
||||||
|
build/<name> && make`.
|
||||||
|
|
||||||
|
`make CONF_NAME=<name>` or
|
||||||
|
|
||||||
### Handling Reconfigurations
|
### Handling Reconfigurations
|
||||||
|
|
||||||
|
|||||||
@@ -748,12 +748,15 @@ cases where dynamic initialization or destruction are essential. See <a
|
|||||||
href="https://bugs.openjdk.org/browse/JDK-8282469">JDK-8282469</a> for
|
href="https://bugs.openjdk.org/browse/JDK-8282469">JDK-8282469</a> for
|
||||||
further discussion.</p>
|
further discussion.</p>
|
||||||
<h3 id="nullptr">nullptr</h3>
|
<h3 id="nullptr">nullptr</h3>
|
||||||
<p>Prefer <code>nullptr</code> (<a
|
<p>Use <code>nullptr</code> (<a
|
||||||
href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2431.pdf">n2431</a>)
|
href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2431.pdf">n2431</a>)
|
||||||
to <code>NULL</code>. Don't use (constexpr or literal) 0 for
|
rather than <code>NULL</code>. See the paper for reasons to avoid
|
||||||
pointers.</p>
|
<code>NULL</code>.</p>
|
||||||
<p>For historical reasons there are widespread uses of both
|
<p>Don't use (constant expression or literal) 0 for pointers. Note that
|
||||||
<code>NULL</code> and of integer 0 as a pointer value.</p>
|
C++14 removed non-literal 0 constants from <em>null pointer
|
||||||
|
constants</em>, though some compilers continue to treat them as such.
|
||||||
|
For historical reasons there may be lingering uses of 0 as a
|
||||||
|
pointer.</p>
|
||||||
<h3 id="atomic"><atomic></h3>
|
<h3 id="atomic"><atomic></h3>
|
||||||
<p>Do not use facilities provided by the <code><atomic></code>
|
<p>Do not use facilities provided by the <code><atomic></code>
|
||||||
header (<a
|
header (<a
|
||||||
|
|||||||
@@ -725,12 +725,14 @@ for further discussion.
|
|||||||
|
|
||||||
### nullptr
|
### nullptr
|
||||||
|
|
||||||
Prefer `nullptr`
|
Use `nullptr`
|
||||||
([n2431](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2431.pdf))
|
([n2431](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2431.pdf))
|
||||||
to `NULL`. Don't use (constexpr or literal) 0 for pointers.
|
rather than `NULL`. See the paper for reasons to avoid `NULL`.
|
||||||
|
|
||||||
For historical reasons there are widespread uses of both `NULL` and of
|
Don't use (constant expression or literal) 0 for pointers. Note that C++14
|
||||||
integer 0 as a pointer value.
|
removed non-literal 0 constants from _null pointer constants_, though some
|
||||||
|
compilers continue to treat them as such. For historical reasons there may be
|
||||||
|
lingering uses of 0 as a pointer.
|
||||||
|
|
||||||
### <atomic>
|
### <atomic>
|
||||||
|
|
||||||
|
|||||||
@@ -110,10 +110,6 @@ Java and C/C++ natures during development by running:</p>
|
|||||||
<pre><code>make eclipse-mixed-env</code></pre>
|
<pre><code>make eclipse-mixed-env</code></pre>
|
||||||
<p>Do note that this generates all features that come with both Java and
|
<p>Do note that this generates all features that come with both Java and
|
||||||
C/C++ natures.</p>
|
C/C++ natures.</p>
|
||||||
<p>By default, the Eclipse Workspace is located in the ide subdirectory
|
|
||||||
in the build output. To share the JDK's source directory with the
|
|
||||||
Eclipse Workspace, you can instead run:</p>
|
|
||||||
<pre><code>make eclipse-shared-<ENV>-env</code></pre>
|
|
||||||
<p>Eclipse support in the JDK is relatively new, so do keep in mind that
|
<p>Eclipse support in the JDK is relatively new, so do keep in mind that
|
||||||
not everything may work at the moment. As such, the resulting Workspace
|
not everything may work at the moment. As such, the resulting Workspace
|
||||||
also has compilation database parsing support enabled, so you can pass
|
also has compilation database parsing support enabled, so you can pass
|
||||||
@@ -160,9 +156,6 @@ to import the newly created Java Workspace.</p>
|
|||||||
<p>If doing so results in an error, you can also import the JDK via
|
<p>If doing so results in an error, you can also import the JDK via
|
||||||
<code>File -> Import -> Existing Projects into Workspace</code> as
|
<code>File -> Import -> Existing Projects into Workspace</code> as
|
||||||
a last resort.</p>
|
a last resort.</p>
|
||||||
<p>Alternatively, if you want a Java Workspace inside the JDK's source
|
|
||||||
directory, you can instead run:</p>
|
|
||||||
<pre><code>make eclipse-shared-java-env</code></pre>
|
|
||||||
<p>As mentioned above for Eclipse CDT, you can create a combined Java
|
<p>As mentioned above for Eclipse CDT, you can create a combined Java
|
||||||
and C/C++ Workspace which can conveniently switch between Java and C/C++
|
and C/C++ Workspace which can conveniently switch between Java and C/C++
|
||||||
natures during development by running:</p>
|
natures during development by running:</p>
|
||||||
|
|||||||
15
doc/ide.md
15
doc/ide.md
@@ -100,14 +100,6 @@ make eclipse-mixed-env
|
|||||||
Do note that this generates all features that come with both Java and C/C++
|
Do note that this generates all features that come with both Java and C/C++
|
||||||
natures.
|
natures.
|
||||||
|
|
||||||
By default, the Eclipse Workspace is located in the ide subdirectory in the
|
|
||||||
build output. To share the JDK's source directory with the Eclipse Workspace,
|
|
||||||
you can instead run:
|
|
||||||
|
|
||||||
```
|
|
||||||
make eclipse-shared-<ENV>-env
|
|
||||||
```
|
|
||||||
|
|
||||||
Eclipse support in the JDK is relatively new, so do keep in mind that not
|
Eclipse support in the JDK is relatively new, so do keep in mind that not
|
||||||
everything may work at the moment. As such, the resulting Workspace also
|
everything may work at the moment. As such, the resulting Workspace also
|
||||||
has compilation database parsing support enabled, so you can pass Eclipse
|
has compilation database parsing support enabled, so you can pass Eclipse
|
||||||
@@ -176,13 +168,6 @@ If doing so results in an error, you can also import the JDK via
|
|||||||
`File -> Import -> Existing Projects into Workspace`
|
`File -> Import -> Existing Projects into Workspace`
|
||||||
as a last resort.
|
as a last resort.
|
||||||
|
|
||||||
Alternatively, if you want a Java Workspace inside the JDK's source directory,
|
|
||||||
you can instead run:
|
|
||||||
|
|
||||||
```
|
|
||||||
make eclipse-shared-java-env
|
|
||||||
```
|
|
||||||
|
|
||||||
As mentioned above for Eclipse CDT, you can create a combined Java and C/C++
|
As mentioned above for Eclipse CDT, you can create a combined Java and C/C++
|
||||||
Workspace which can conveniently switch between Java and C/C++ natures during
|
Workspace which can conveniently switch between Java and C/C++ natures during
|
||||||
development by running:
|
development by running:
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2014, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2014, 2024, 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
|
||||||
@@ -105,7 +105,7 @@ define SetupInterimModule
|
|||||||
Standard.java, \
|
Standard.java, \
|
||||||
EXTRA_FILES := $(BUILDTOOLS_OUTPUTDIR)/gensrc/$1.interim/module-info.java \
|
EXTRA_FILES := $(BUILDTOOLS_OUTPUTDIR)/gensrc/$1.interim/module-info.java \
|
||||||
$($1.interim_EXTRA_FILES), \
|
$($1.interim_EXTRA_FILES), \
|
||||||
COPY := .gif .png .xml .css .svg .js .js.template .txt javax.tools.JavaCompilerTool, \
|
COPY := .gif .png .xml .css .svg .js .js.template .txt .woff .woff2 javax.tools.JavaCompilerTool, \
|
||||||
BIN := $(BUILDTOOLS_OUTPUTDIR)/interim_langtools_modules/$1.interim, \
|
BIN := $(BUILDTOOLS_OUTPUTDIR)/interim_langtools_modules/$1.interim, \
|
||||||
DISABLED_WARNINGS := module options, \
|
DISABLED_WARNINGS := module options, \
|
||||||
JAVAC_FLAGS := \
|
JAVAC_FLAGS := \
|
||||||
|
|||||||
@@ -139,11 +139,6 @@ ifeq ($(IS_DRAFT), true)
|
|||||||
endif
|
endif
|
||||||
DRAFT_TEXT := This specification is not final and is subject to change. \
|
DRAFT_TEXT := This specification is not final and is subject to change. \
|
||||||
Use is subject to <a href="$(LICENSE_URL)">license terms</a>.
|
Use is subject to <a href="$(LICENSE_URL)">license terms</a>.
|
||||||
|
|
||||||
# Workaround stylesheet bug
|
|
||||||
HEADER_STYLE := style="margin-top: 9px;"
|
|
||||||
else
|
|
||||||
HEADER_STYLE := style="margin-top: 14px;"
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# $1 - Relative prefix to COPYRIGHT_URL
|
# $1 - Relative prefix to COPYRIGHT_URL
|
||||||
@@ -339,7 +334,7 @@ define SetupApiDocsGenerationBody
|
|||||||
$1_DOC_TITLE := $$($1_LONG_NAME)<br>Version $$(VERSION_SPECIFICATION) API \
|
$1_DOC_TITLE := $$($1_LONG_NAME)<br>Version $$(VERSION_SPECIFICATION) API \
|
||||||
Specification
|
Specification
|
||||||
$1_WINDOW_TITLE := $$(subst &,&,$$($1_SHORT_NAME))$$(DRAFT_MARKER_TITLE)
|
$1_WINDOW_TITLE := $$(subst &,&,$$($1_SHORT_NAME))$$(DRAFT_MARKER_TITLE)
|
||||||
$1_HEADER_TITLE := <div $$(HEADER_STYLE)><strong>$$($1_SHORT_NAME)</strong> \
|
$1_HEADER_TITLE := <div><strong>$$($1_SHORT_NAME)</strong> \
|
||||||
$$(DRAFT_MARKER_STR)</div>
|
$$(DRAFT_MARKER_STR)</div>
|
||||||
ifneq ($$($1_OTHER_VERSIONS), )
|
ifneq ($$($1_OTHER_VERSIONS), )
|
||||||
$1_JAVADOC_BOTTOM := $$(call JAVADOC_BOTTOM, <a href="$$($1_OTHER_VERSIONS)">Other versions.</a>)
|
$1_JAVADOC_BOTTOM := $$(call JAVADOC_BOTTOM, <a href="$$($1_OTHER_VERSIONS)">Other versions.</a>)
|
||||||
@@ -647,7 +642,7 @@ ifeq ($(ENABLE_PANDOC), true)
|
|||||||
GLOBAL_SPECS_DEFAULT_CSS_FILE := $(DOCS_OUTPUTDIR)/resources/jdk-default.css
|
GLOBAL_SPECS_DEFAULT_CSS_FILE := $(DOCS_OUTPUTDIR)/resources/jdk-default.css
|
||||||
# Unset the following to suppress the link to the tool guides
|
# Unset the following to suppress the link to the tool guides
|
||||||
NAV_LINK_GUIDES := --nav-link-guides
|
NAV_LINK_GUIDES := --nav-link-guides
|
||||||
HEADER_RIGHT_SIDE_INFO := <strong>$(subst &,&,$(JDK_SHORT_NAME))$(DRAFT_MARKER_STR)</strong>
|
HEADER_RIGHT_SIDE_INFO := <strong>$(subst &,&,$(JDK_SHORT_NAME))</strong>$(DRAFT_MARKER_STR)
|
||||||
|
|
||||||
$(foreach m, $(ALL_MODULES), \
|
$(foreach m, $(ALL_MODULES), \
|
||||||
$(eval SPECS_$m := $(call FindModuleSpecsDirs, $m)) \
|
$(eval SPECS_$m := $(call FindModuleSpecsDirs, $m)) \
|
||||||
|
|||||||
@@ -87,10 +87,9 @@ help:
|
|||||||
$(info $(_) # (gensrc, java, copy, libs, launchers, gendata))
|
$(info $(_) # (gensrc, java, copy, libs, launchers, gendata))
|
||||||
$(info )
|
$(info )
|
||||||
$(info Make control variables)
|
$(info Make control variables)
|
||||||
$(info $(_) CONF= # Build all configurations (note, assignment is empty))
|
$(info $(_) CONF=<selector> # Select which configuration(s) to build)
|
||||||
$(info $(_) CONF=<substring> # Build the configuration(s) with a name matching)
|
$(info $(_) CONF= # Select all configurations (note, assignment is empty))
|
||||||
$(info $(_) # <substring>)
|
$(info $(_) CONF_NAME=<string> # Select the configuration with the name <string>)
|
||||||
$(info $(_) CONF_NAME=<string> # Build the configuration with exactly the <string>)
|
|
||||||
$(info $(_) SPEC=<spec file> # Build the configuration given by the spec file)
|
$(info $(_) SPEC=<spec file> # Build the configuration given by the spec file)
|
||||||
$(info $(_) LOG=<loglevel> # Change the log level from warn to <loglevel>)
|
$(info $(_) LOG=<loglevel> # Change the log level from warn to <loglevel>)
|
||||||
$(info $(_) # Available log levels are:)
|
$(info $(_) # Available log levels are:)
|
||||||
@@ -103,9 +102,9 @@ help:
|
|||||||
$(info $(_) # method is 'auto', 'ignore' or 'fail' (default))
|
$(info $(_) # method is 'auto', 'ignore' or 'fail' (default))
|
||||||
$(info $(_) TEST="test1 ..." # Use the given test descriptor(s) for testing, e.g.)
|
$(info $(_) TEST="test1 ..." # Use the given test descriptor(s) for testing, e.g.)
|
||||||
$(info $(_) # make test TEST="jdk_lang gtest:all")
|
$(info $(_) # make test TEST="jdk_lang gtest:all")
|
||||||
$(info $(_) JTREG="OPT1=x;OPT2=y" # Control the JTREG test harness, use 'help' to list)
|
$(info $(_) JTREG="OPT1=x;OPT2=y" # Control the JTREG test harness, use 'make test-only JTREG=help' to list)
|
||||||
$(info $(_) GTEST="OPT1=x;OPT2=y" # Control the GTEST test harness, use 'help' to list)
|
$(info $(_) GTEST="OPT1=x;OPT2=y" # Control the GTEST test harness, use 'make test-only GTEST=help' to list)
|
||||||
$(info $(_) MICRO="OPT1=x;OPT2=y" # Control the MICRO test harness, use 'help' to list)
|
$(info $(_) MICRO="OPT1=x;OPT2=y" # Control the MICRO test harness, use 'make test-only MICRO=help' to list)
|
||||||
$(info $(_) TEST_OPTS="OPT1=x;..." # Generic control of all test harnesses)
|
$(info $(_) TEST_OPTS="OPT1=x;..." # Generic control of all test harnesses)
|
||||||
$(info $(_) TEST_VM_OPTS="ARG ..." # Same as setting TEST_OPTS to VM_OPTIONS="ARG ...")
|
$(info $(_) TEST_VM_OPTS="ARG ..." # Same as setting TEST_OPTS to VM_OPTIONS="ARG ...")
|
||||||
$(info )
|
$(info )
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2020, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2020, 2024, 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,9 +38,7 @@ HSDIS_OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/hsdis
|
|||||||
REAL_HSDIS_NAME := hsdis-$(OPENJDK_TARGET_CPU_LEGACY_LIB)$(SHARED_LIBRARY_SUFFIX)
|
REAL_HSDIS_NAME := hsdis-$(OPENJDK_TARGET_CPU_LEGACY_LIB)$(SHARED_LIBRARY_SUFFIX)
|
||||||
BUILT_HSDIS_LIB := $(HSDIS_OUTPUT_DIR)/$(REAL_HSDIS_NAME)
|
BUILT_HSDIS_LIB := $(HSDIS_OUTPUT_DIR)/$(REAL_HSDIS_NAME)
|
||||||
|
|
||||||
HSDIS_TOOLCHAIN := TOOLCHAIN_DEFAULT
|
HSDIS_LINK_TYPE := C
|
||||||
HSDIS_TOOLCHAIN_CFLAGS := $(CFLAGS_JDKLIB)
|
|
||||||
HSDIS_TOOLCHAIN_LDFLAGS := $(LDFLAGS_JDKLIB)
|
|
||||||
|
|
||||||
ifeq ($(HSDIS_BACKEND), capstone)
|
ifeq ($(HSDIS_BACKEND), capstone)
|
||||||
ifeq ($(call isTargetCpuArch, x86), true)
|
ifeq ($(call isTargetCpuArch, x86), true)
|
||||||
@@ -59,8 +57,7 @@ endif
|
|||||||
|
|
||||||
ifeq ($(HSDIS_BACKEND), llvm)
|
ifeq ($(HSDIS_BACKEND), llvm)
|
||||||
# Use C++ instead of C
|
# Use C++ instead of C
|
||||||
HSDIS_TOOLCHAIN_CFLAGS := $(CXXFLAGS_JDKLIB)
|
HSDIS_LINK_TYPE := C++
|
||||||
HSDIS_TOOLCHAIN := TOOLCHAIN_LINK_CXX
|
|
||||||
|
|
||||||
ifeq ($(call isTargetOs, linux), true)
|
ifeq ($(call isTargetOs, linux), true)
|
||||||
LLVM_OS := pc-linux-gnu
|
LLVM_OS := pc-linux-gnu
|
||||||
@@ -91,14 +88,11 @@ ifeq ($(HSDIS_BACKEND), binutils)
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
$(eval $(call DefineNativeToolchain, TOOLCHAIN_MINGW, \
|
BUILD_HSDIS_CC := $(MINGW_BASE)-gcc
|
||||||
CC := $(MINGW_BASE)-gcc, \
|
BUILD_HSDIS_LD := $(MINGW_BASE)-ld
|
||||||
LD := $(MINGW_BASE)-ld, \
|
BUILD_HSDIS_OBJCOPY := $(MINGW_BASE)-objcopy
|
||||||
OBJCOPY := $(MINGW_BASE)-objcopy, \
|
BUILD_HSDIS_SYSROOT_CFLAGS := --sysroot=$(MINGW_SYSROOT)
|
||||||
RC := $(RC), \
|
BUILD_HSDIS_SYSROOT_LDFLAGS := --sysroot=$(MINGW_SYSROOT)
|
||||||
SYSROOT_CFLAGS := --sysroot=$(MINGW_SYSROOT), \
|
|
||||||
SYSROOT_LDFLAGS := --sysroot=$(MINGW_SYSROOT), \
|
|
||||||
))
|
|
||||||
|
|
||||||
MINGW_SYSROOT_LIB_PATH := $(MINGW_SYSROOT)/mingw/lib
|
MINGW_SYSROOT_LIB_PATH := $(MINGW_SYSROOT)/mingw/lib
|
||||||
ifeq ($(wildcard $(MINGW_SYSROOT_LIB_PATH)), )
|
ifeq ($(wildcard $(MINGW_SYSROOT_LIB_PATH)), )
|
||||||
@@ -122,8 +116,8 @@ ifeq ($(HSDIS_BACKEND), binutils)
|
|||||||
|
|
||||||
TOOLCHAIN_TYPE := gcc
|
TOOLCHAIN_TYPE := gcc
|
||||||
OPENJDK_TARGET_OS := linux
|
OPENJDK_TARGET_OS := linux
|
||||||
|
OPENJDK_TARGET_OS_TYPE := unix
|
||||||
CC_OUT_OPTION := -o$(SPACE)
|
CC_OUT_OPTION := -o$(SPACE)
|
||||||
LD_OUT_OPTION := -o$(SPACE)
|
|
||||||
GENDEPS_FLAGS := -MMD -MF
|
GENDEPS_FLAGS := -MMD -MF
|
||||||
CFLAGS_DEBUG_SYMBOLS := -g
|
CFLAGS_DEBUG_SYMBOLS := -g
|
||||||
DISABLED_WARNINGS :=
|
DISABLED_WARNINGS :=
|
||||||
@@ -131,9 +125,9 @@ ifeq ($(HSDIS_BACKEND), binutils)
|
|||||||
CFLAGS_WARNINGS_ARE_ERRORS := -Werror
|
CFLAGS_WARNINGS_ARE_ERRORS := -Werror
|
||||||
SHARED_LIBRARY_FLAGS := -shared
|
SHARED_LIBRARY_FLAGS := -shared
|
||||||
|
|
||||||
HSDIS_TOOLCHAIN := TOOLCHAIN_MINGW
|
HSDIS_TOOLCHAIN_DEFAULT_CFLAGS := false
|
||||||
HSDIS_TOOLCHAIN_CFLAGS :=
|
HSDIS_TOOLCHAIN_DEFAULT_LDFLAGS := false
|
||||||
HSDIS_TOOLCHAIN_LDFLAGS := -L$(MINGW_GCC_LIB_PATH) -L$(MINGW_SYSROOT_LIB_PATH)
|
HSDIS_LDFLAGS += -L$(MINGW_GCC_LIB_PATH) -L$(MINGW_SYSROOT_LIB_PATH)
|
||||||
MINGW_DLLCRT := $(MINGW_SYSROOT_LIB_PATH)/dllcrt2.o
|
MINGW_DLLCRT := $(MINGW_SYSROOT_LIB_PATH)/dllcrt2.o
|
||||||
HSDIS_TOOLCHAIN_LIBS := $(MINGW_DLLCRT) -lmingw32 -lgcc -lgcc_eh -lmoldname \
|
HSDIS_TOOLCHAIN_LIBS := $(MINGW_DLLCRT) -lmingw32 -lgcc -lgcc_eh -lmoldname \
|
||||||
-lmingwex -lmsvcrt -lpthread -ladvapi32 -lshell32 -luser32 -lkernel32
|
-lmingwex -lmsvcrt -lpthread -ladvapi32 -lshell32 -luser32 -lkernel32
|
||||||
@@ -144,15 +138,19 @@ endif
|
|||||||
|
|
||||||
$(eval $(call SetupJdkLibrary, BUILD_HSDIS, \
|
$(eval $(call SetupJdkLibrary, BUILD_HSDIS, \
|
||||||
NAME := hsdis, \
|
NAME := hsdis, \
|
||||||
|
LINK_TYPE := $(HSDIS_LINK_TYPE), \
|
||||||
SRC := $(TOPDIR)/src/utils/hsdis/$(HSDIS_BACKEND), \
|
SRC := $(TOPDIR)/src/utils/hsdis/$(HSDIS_BACKEND), \
|
||||||
EXTRA_HEADER_DIRS := $(TOPDIR)/src/utils/hsdis, \
|
EXTRA_HEADER_DIRS := $(TOPDIR)/src/utils/hsdis, \
|
||||||
TOOLCHAIN := $(HSDIS_TOOLCHAIN), \
|
|
||||||
OUTPUT_DIR := $(HSDIS_OUTPUT_DIR), \
|
OUTPUT_DIR := $(HSDIS_OUTPUT_DIR), \
|
||||||
OBJECT_DIR := $(HSDIS_OUTPUT_DIR), \
|
OBJECT_DIR := $(HSDIS_OUTPUT_DIR), \
|
||||||
DISABLED_WARNINGS_gcc := undef format-nonliteral sign-compare, \
|
DISABLED_WARNINGS_gcc := undef format-nonliteral sign-compare, \
|
||||||
DISABLED_WARNINGS_clang := undef format-nonliteral, \
|
DISABLED_WARNINGS_clang := undef format-nonliteral, \
|
||||||
CFLAGS := $(HSDIS_TOOLCHAIN_CFLAGS) $(HSDIS_CFLAGS), \
|
DEFAULT_CFLAGS := $(HSDIS_TOOLCHAIN_DEFAULT_CFLAGS), \
|
||||||
LDFLAGS := $(HSDIS_TOOLCHAIN_LDFLAGS) $(HSDIS_LDFLAGS) $(SHARED_LIBRARY_FLAGS), \
|
CFLAGS := $(HSDIS_CFLAGS), \
|
||||||
|
CXXFLAGS := $(HSDIS_CFLAGS), \
|
||||||
|
LD_SET_ORIGIN := false, \
|
||||||
|
DEFAULT_LDFLAGS := $(HSDIS_TOOLCHAIN_DEFAULT_LDFLAGS), \
|
||||||
|
LDFLAGS := $(HSDIS_LDFLAGS) $(SHARED_LIBRARY_FLAGS), \
|
||||||
LIBS := $(HSDIS_LIBS) $(HSDIS_TOOLCHAIN_LIBS), \
|
LIBS := $(HSDIS_LIBS) $(HSDIS_TOOLCHAIN_LIBS), \
|
||||||
))
|
))
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2014, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2014, 2024, 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
|
||||||
@@ -144,6 +144,14 @@ define CreateCDSArchive
|
|||||||
$1_$2_CDS_ARCHIVE := lib/$1/classes$2.jsa
|
$1_$2_CDS_ARCHIVE := lib/$1/classes$2.jsa
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifneq ($(COMPARE_BUILD), )
|
||||||
|
DEBUG_CDS_ARCHIVE := true
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(DEBUG_CDS_ARCHIVE), true)
|
||||||
|
$1_$2_CDS_DUMP_FLAGS += -Xlog:cds+map*=trace:file=$$(JDK_IMAGE_DIR)/$$($1_$2_CDS_ARCHIVE).cdsmap:none:filesize=0
|
||||||
|
endif
|
||||||
|
|
||||||
$$(eval $$(call SetupExecute, $1_$2_gen_cds_archive_jdk, \
|
$$(eval $$(call SetupExecute, $1_$2_gen_cds_archive_jdk, \
|
||||||
WARN := Creating CDS$$($1_$2_DUMP_TYPE) archive for jdk image for $1, \
|
WARN := Creating CDS$$($1_$2_DUMP_TYPE) archive for jdk image for $1, \
|
||||||
INFO := Using CDS flags for $1: $$($1_$2_CDS_DUMP_FLAGS), \
|
INFO := Using CDS flags for $1: $$($1_$2_CDS_DUMP_FLAGS), \
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2022, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2024, 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
|
||||||
@@ -202,8 +202,14 @@ ifeq ($(HAS_SPEC),)
|
|||||||
matching_confs := $$(strip $$(all_confs))
|
matching_confs := $$(strip $$(all_confs))
|
||||||
else
|
else
|
||||||
# Otherwise select those that contain the given CONF string
|
# Otherwise select those that contain the given CONF string
|
||||||
matching_confs := $$(strip $$(foreach var, $$(all_confs), \
|
ifeq ($$(patsubst !%,,$$(CONF)),)
|
||||||
$$(if $$(findstring $$(CONF), $$(var)), $$(var))))
|
# A CONF starting with ! means we should negate the search term
|
||||||
|
matching_confs := $$(strip $$(foreach var, $$(all_confs), \
|
||||||
|
$$(if $$(findstring $$(subst !,,$$(CONF)), $$(var)), ,$$(var))))
|
||||||
|
else
|
||||||
|
matching_confs := $$(strip $$(foreach var, $$(all_confs), \
|
||||||
|
$$(if $$(findstring $$(CONF), $$(var)), $$(var))))
|
||||||
|
endif
|
||||||
ifneq ($$(filter $$(CONF), $$(matching_confs)), )
|
ifneq ($$(filter $$(CONF), $$(matching_confs)), )
|
||||||
# If we found an exact match, use that
|
# If we found an exact match, use that
|
||||||
matching_confs := $$(CONF)
|
matching_confs := $$(CONF)
|
||||||
@@ -421,8 +427,9 @@ else # $(HAS_SPEC)=true
|
|||||||
|
|
||||||
# Cleanup after a compare build
|
# Cleanup after a compare build
|
||||||
define CleanupCompareBuild
|
define CleanupCompareBuild
|
||||||
# If running with a COMPARE_BUILD patch, reverse-apply it
|
# If running with a COMPARE_BUILD patch, reverse-apply it, but continue
|
||||||
$(if $(COMPARE_BUILD_PATCH), cd $(topdir) && $(PATCH) -R -p1 < $(COMPARE_BUILD_PATCH))
|
# even if that fails (can happen with removed files).
|
||||||
|
$(if $(COMPARE_BUILD_PATCH), cd $(topdir) && $(PATCH) -R -p1 < $(COMPARE_BUILD_PATCH) || true)
|
||||||
# Move this build away and restore the original build
|
# Move this build away and restore the original build
|
||||||
$(MKDIR) -p $(topdir)/build/compare-build
|
$(MKDIR) -p $(topdir)/build/compare-build
|
||||||
$(MV) $(OUTPUTDIR) $(COMPARE_BUILD_OUTPUTDIR)
|
$(MV) $(OUTPUTDIR) $(COMPARE_BUILD_OUTPUTDIR)
|
||||||
@@ -435,10 +442,10 @@ else # $(HAS_SPEC)=true
|
|||||||
# Compare first and second build. Ignore any error code from compare.sh.
|
# Compare first and second build. Ignore any error code from compare.sh.
|
||||||
$(ECHO) "Comparing between comparison rebuild (this/new) and baseline (other/old)"
|
$(ECHO) "Comparing between comparison rebuild (this/new) and baseline (other/old)"
|
||||||
$(if $(COMPARE_BUILD_COMP_DIR), \
|
$(if $(COMPARE_BUILD_COMP_DIR), \
|
||||||
+(cd $(COMPARE_BUILD_OUTPUTDIR) && ./compare.sh -vv $(COMPARE_BUILD_COMP_OPTS) \
|
+(cd $(COMPARE_BUILD_OUTPUTDIR) && ./compare.sh --diffs $(COMPARE_BUILD_COMP_OPTS) \
|
||||||
-2dirs $(COMPARE_BUILD_OUTPUTDIR)/$(COMPARE_BUILD_COMP_DIR) \
|
-2dirs $(COMPARE_BUILD_OUTPUTDIR)/$(COMPARE_BUILD_COMP_DIR) \
|
||||||
$(OUTPUTDIR)/$(COMPARE_BUILD_COMP_DIR) $(COMPARE_BUILD_IGNORE_RESULT)), \
|
$(OUTPUTDIR)/$(COMPARE_BUILD_COMP_DIR) $(COMPARE_BUILD_IGNORE_RESULT)), \
|
||||||
+(cd $(COMPARE_BUILD_OUTPUTDIR) && ./compare.sh -vv $(COMPARE_BUILD_COMP_OPTS) \
|
+(cd $(COMPARE_BUILD_OUTPUTDIR) && ./compare.sh --diffs $(COMPARE_BUILD_COMP_OPTS) \
|
||||||
-o $(OUTPUTDIR) $(COMPARE_BUILD_IGNORE_RESULT)) \
|
-o $(OUTPUTDIR) $(COMPARE_BUILD_IGNORE_RESULT)) \
|
||||||
)
|
)
|
||||||
endef
|
endef
|
||||||
|
|||||||
@@ -268,42 +268,22 @@ $(eval $(call SetupTarget, hotspot-ide-project, \
|
|||||||
|
|
||||||
$(eval $(call SetupTarget, eclipse-java-env, \
|
$(eval $(call SetupTarget, eclipse-java-env, \
|
||||||
MAKEFILE := ide/eclipse/CreateWorkspace, \
|
MAKEFILE := ide/eclipse/CreateWorkspace, \
|
||||||
ARGS := --always-make WORKSPACE=java SHARED=false, \
|
ARGS := --always-make WORKSPACE=java, \
|
||||||
))
|
))
|
||||||
|
|
||||||
$(eval $(call SetupTarget, eclipse-hotspot-env, \
|
$(eval $(call SetupTarget, eclipse-hotspot-env, \
|
||||||
MAKEFILE := ide/eclipse/CreateWorkspace, \
|
MAKEFILE := ide/eclipse/CreateWorkspace, \
|
||||||
ARGS := --always-make WORKSPACE=hotspot SHARED=false, \
|
ARGS := --always-make WORKSPACE=hotspot, \
|
||||||
))
|
))
|
||||||
|
|
||||||
$(eval $(call SetupTarget, eclipse-native-env, \
|
$(eval $(call SetupTarget, eclipse-native-env, \
|
||||||
MAKEFILE := ide/eclipse/CreateWorkspace, \
|
MAKEFILE := ide/eclipse/CreateWorkspace, \
|
||||||
ARGS := --always-make WORKSPACE=native SHARED=false, \
|
ARGS := --always-make WORKSPACE=native, \
|
||||||
))
|
))
|
||||||
|
|
||||||
$(eval $(call SetupTarget, eclipse-mixed-env, \
|
$(eval $(call SetupTarget, eclipse-mixed-env, \
|
||||||
MAKEFILE := ide/eclipse/CreateWorkspace, \
|
MAKEFILE := ide/eclipse/CreateWorkspace, \
|
||||||
ARGS := --always-make SHARED=false, \
|
ARGS := --always-make, \
|
||||||
))
|
|
||||||
|
|
||||||
$(eval $(call SetupTarget, eclipse-shared-java-env, \
|
|
||||||
MAKEFILE := ide/eclipse/CreateWorkspace, \
|
|
||||||
ARGS := --always-make WORKSPACE=java SHARED=true, \
|
|
||||||
))
|
|
||||||
|
|
||||||
$(eval $(call SetupTarget, eclipse-shared-hotspot-env, \
|
|
||||||
MAKEFILE := ide/eclipse/CreateWorkspace, \
|
|
||||||
ARGS := --always-make WORKSPACE=hotspot SHARED=true, \
|
|
||||||
))
|
|
||||||
|
|
||||||
$(eval $(call SetupTarget, eclipse-shared-native-env, \
|
|
||||||
MAKEFILE := ide/eclipse/CreateWorkspace, \
|
|
||||||
ARGS := --always-make WORKSPACE=native SHARED=true, \
|
|
||||||
))
|
|
||||||
|
|
||||||
$(eval $(call SetupTarget, eclipse-shared-mixed-env, \
|
|
||||||
MAKEFILE := ide/eclipse/CreateWorkspace, \
|
|
||||||
ARGS := --always-make SHARED=true, \
|
|
||||||
))
|
))
|
||||||
|
|
||||||
ALL_TARGETS += $(HOTSPOT_VARIANT_TARGETS) $(HOTSPOT_VARIANT_GENSRC_TARGETS) \
|
ALL_TARGETS += $(HOTSPOT_VARIANT_TARGETS) $(HOTSPOT_VARIANT_GENSRC_TARGETS) \
|
||||||
@@ -951,6 +931,11 @@ else
|
|||||||
java.base-copy: build-hsdis
|
java.base-copy: build-hsdis
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# On Windows, we need to copy tzmappings generated by gensrc
|
||||||
|
ifeq ($(call isTargetOs, windows), true)
|
||||||
|
java.base-copy: java.base-gensrc
|
||||||
|
endif
|
||||||
|
|
||||||
# jdk.accessibility depends on java.desktop
|
# jdk.accessibility depends on java.desktop
|
||||||
jdk.accessibility-libs: java.desktop-libs
|
jdk.accessibility-libs: java.desktop-libs
|
||||||
|
|
||||||
@@ -969,20 +954,28 @@ else
|
|||||||
|
|
||||||
jdk.jdeps-gendata: java
|
jdk.jdeps-gendata: java
|
||||||
|
|
||||||
# The ct.sym generation uses all the moduleinfos as input
|
# jdk.compiler gendata generates ct.sym, which requires all generated
|
||||||
jdk.compiler-gendata: $(GENSRC_MODULEINFO_TARGETS) $(JAVA_TARGETS)
|
# java source and compiled classes present.
|
||||||
# jdk.compiler-gendata needs the BUILD_JDK. If the BUILD_JDK was supplied
|
jdk.compiler-gendata: $(JAVA_TARGETS)
|
||||||
# externally, no extra prerequisites are needed.
|
|
||||||
|
# jdk.javadoc gendata generates element-list, which requires all java sources
|
||||||
|
# but not compiled classes.
|
||||||
|
jdk.javadoc-gendata: $(GENSRC_TARGETS)
|
||||||
|
|
||||||
|
# ct.sym and element-list generation also needs the BUILD_JDK. If the
|
||||||
|
# BUILD_JDK was supplied externally, no extra prerequisites are needed.
|
||||||
ifeq ($(CREATE_BUILDJDK), true)
|
ifeq ($(CREATE_BUILDJDK), true)
|
||||||
ifneq ($(CREATING_BUILDJDK), true)
|
ifneq ($(CREATING_BUILDJDK), true)
|
||||||
# When cross compiling and an external BUILD_JDK wasn't supplied, it's
|
# When cross compiling and an external BUILD_JDK wasn't supplied, it's
|
||||||
# produced by the create-buildjdk target.
|
# produced by the create-buildjdk target.
|
||||||
jdk.compiler-gendata: create-buildjdk
|
jdk.compiler-gendata: create-buildjdk
|
||||||
|
jdk.javadoc-gendata: create-buildjdk
|
||||||
endif
|
endif
|
||||||
else ifeq ($(EXTERNAL_BUILDJDK), false)
|
else ifeq ($(EXTERNAL_BUILDJDK), false)
|
||||||
# When not cross compiling, the BUILD_JDK is the interim jdk image, and
|
# When not cross compiling, the BUILD_JDK is the interim jdk image, and
|
||||||
# the javac launcher is needed.
|
# the javac launcher is needed.
|
||||||
jdk.compiler-gendata: jdk.compiler-launchers
|
jdk.compiler-gendata: jdk.compiler-launchers
|
||||||
|
jdk.javadoc-gendata: jdk.compiler-launchers
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Declare dependencies between jmod targets.
|
# Declare dependencies between jmod targets.
|
||||||
|
|||||||
@@ -620,11 +620,16 @@ define SetupRunMicroTestBody
|
|||||||
$1_MICRO_WARMUP_TIME := -w $$(MICRO_WARMUP_TIME)
|
$1_MICRO_WARMUP_TIME := -w $$(MICRO_WARMUP_TIME)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# Microbenchmarks are executed from the root of the test image directory.
|
||||||
|
# This enables JMH tests to add dependencies using relative paths such as
|
||||||
|
# -Djava.library.path=micro/native
|
||||||
|
|
||||||
run-test-$1: pre-run-test
|
run-test-$1: pre-run-test
|
||||||
$$(call LogWarn)
|
$$(call LogWarn)
|
||||||
$$(call LogWarn, Running test '$$($1_TEST)')
|
$$(call LogWarn, Running test '$$($1_TEST)')
|
||||||
$$(call MakeDir, $$($1_TEST_RESULTS_DIR) $$($1_TEST_SUPPORT_DIR))
|
$$(call MakeDir, $$($1_TEST_RESULTS_DIR) $$($1_TEST_SUPPORT_DIR))
|
||||||
$$(call ExecuteWithLog, $$($1_TEST_SUPPORT_DIR)/micro, ( \
|
$$(call ExecuteWithLog, $$($1_TEST_SUPPORT_DIR)/micro, ( \
|
||||||
|
$$(CD) $$(TEST_IMAGE_DIR) && \
|
||||||
$$(FIXPATH) $$($1_MICRO_TEST_JDK)/bin/java $$($1_MICRO_JAVA_OPTIONS) \
|
$$(FIXPATH) $$($1_MICRO_TEST_JDK)/bin/java $$($1_MICRO_JAVA_OPTIONS) \
|
||||||
-jar $$($1_MICRO_BENCHMARKS_JAR) \
|
-jar $$($1_MICRO_BENCHMARKS_JAR) \
|
||||||
$$($1_MICRO_ITER) $$($1_MICRO_FORK) $$($1_MICRO_TIME) \
|
$$($1_MICRO_ITER) $$($1_MICRO_FORK) $$($1_MICRO_TIME) \
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2024, 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
|
||||||
@@ -123,6 +123,22 @@ AC_DEFUN_ONCE([BASIC_SETUP_BUILD_ENV],
|
|||||||
]
|
]
|
||||||
)
|
)
|
||||||
AC_SUBST(BUILD_ENV)
|
AC_SUBST(BUILD_ENV)
|
||||||
|
|
||||||
|
if test "x$LOCALE" != x; then
|
||||||
|
# Check if we actually have C.UTF-8; if so, use it
|
||||||
|
if $LOCALE -a | $GREP -q -E "^C\.(utf8|UTF-8)$"; then
|
||||||
|
LOCALE_USED=C.UTF-8
|
||||||
|
else
|
||||||
|
AC_MSG_WARN([C.UTF-8 locale not found, using C locale])
|
||||||
|
LOCALE_USED=C
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
AC_MSG_WARN([locale command not not found, using C locale])
|
||||||
|
LOCALE_USED=C
|
||||||
|
fi
|
||||||
|
|
||||||
|
export LC_ALL=$LOCALE_USED
|
||||||
|
AC_SUBST(LOCALE_USED)
|
||||||
])
|
])
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2024, 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
|
||||||
@@ -54,6 +54,7 @@ AC_DEFUN_ONCE([BASIC_SETUP_FUNDAMENTAL_TOOLS],
|
|||||||
UTIL_REQUIRE_SPECIAL(SED, [AC_PROG_SED])
|
UTIL_REQUIRE_SPECIAL(SED, [AC_PROG_SED])
|
||||||
|
|
||||||
# Tools only needed on some platforms
|
# Tools only needed on some platforms
|
||||||
|
UTIL_LOOKUP_PROGS(LOCALE, locale)
|
||||||
UTIL_LOOKUP_PROGS(PATHTOOL, cygpath wslpath)
|
UTIL_LOOKUP_PROGS(PATHTOOL, cygpath wslpath)
|
||||||
UTIL_LOOKUP_PROGS(CMD, cmd.exe, $PATH:/cygdrive/c/windows/system32:/mnt/c/windows/system32:/c/windows/system32)
|
UTIL_LOOKUP_PROGS(CMD, cmd.exe, $PATH:/cygdrive/c/windows/system32:/mnt/c/windows/system32:/c/windows/system32)
|
||||||
])
|
])
|
||||||
|
|||||||
@@ -54,17 +54,17 @@ AC_DEFUN([PKG_PROG_PKG_CONFIG],
|
|||||||
m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
|
m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
|
||||||
AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl
|
AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl
|
||||||
if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
|
if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
|
||||||
AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
|
AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
|
||||||
fi
|
fi
|
||||||
if test -n "$PKG_CONFIG"; then
|
if test -n "$PKG_CONFIG"; then
|
||||||
_pkg_min_version=m4_default([$1], [0.9.0])
|
_pkg_min_version=m4_default([$1], [0.9.0])
|
||||||
AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
|
AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
|
||||||
if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
|
if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
|
||||||
AC_MSG_RESULT([yes])
|
AC_MSG_RESULT([yes])
|
||||||
else
|
else
|
||||||
AC_MSG_RESULT([no])
|
AC_MSG_RESULT([no])
|
||||||
PKG_CONFIG=""
|
PKG_CONFIG=""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
fi[]dnl
|
fi[]dnl
|
||||||
])# PKG_PROG_PKG_CONFIG
|
])# PKG_PROG_PKG_CONFIG
|
||||||
@@ -97,7 +97,7 @@ m4_define([_PKG_CONFIG],
|
|||||||
elif test -n "$PKG_CONFIG"; then
|
elif test -n "$PKG_CONFIG"; then
|
||||||
PKG_CHECK_EXISTS([$3],
|
PKG_CHECK_EXISTS([$3],
|
||||||
[pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
|
[pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
|
||||||
[pkg_failed=yes])
|
[pkg_failed=yes])
|
||||||
else
|
else
|
||||||
pkg_failed=untried
|
pkg_failed=untried
|
||||||
fi[]dnl
|
fi[]dnl
|
||||||
@@ -143,14 +143,14 @@ See the pkg-config man page for more details.])
|
|||||||
if test $pkg_failed = yes; then
|
if test $pkg_failed = yes; then
|
||||||
_PKG_SHORT_ERRORS_SUPPORTED
|
_PKG_SHORT_ERRORS_SUPPORTED
|
||||||
if test $_pkg_short_errors_supported = yes; then
|
if test $_pkg_short_errors_supported = yes; then
|
||||||
$1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1`
|
$1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1`
|
||||||
else
|
else
|
||||||
$1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1`
|
$1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1`
|
||||||
fi
|
fi
|
||||||
# Put the nasty error message in config.log where it belongs
|
# Put the nasty error message in config.log where it belongs
|
||||||
echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
|
echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
|
||||||
|
|
||||||
ifelse([$4], , [AC_MSG_ERROR(dnl
|
ifelse([$4], , [AC_MSG_ERROR(dnl
|
||||||
[Package requirements ($2) were not met:
|
[Package requirements ($2) were not met:
|
||||||
|
|
||||||
$$1_PKG_ERRORS
|
$$1_PKG_ERRORS
|
||||||
@@ -160,10 +160,10 @@ installed software in a non-standard prefix.
|
|||||||
|
|
||||||
_PKG_TEXT
|
_PKG_TEXT
|
||||||
])],
|
])],
|
||||||
[AC_MSG_RESULT([no])
|
[AC_MSG_RESULT([no])
|
||||||
$4])
|
$4])
|
||||||
elif test $pkg_failed = untried; then
|
elif test $pkg_failed = untried; then
|
||||||
ifelse([$4], , [AC_MSG_FAILURE(dnl
|
ifelse([$4], , [AC_MSG_FAILURE(dnl
|
||||||
[The pkg-config script could not be found or is too old. Make sure it
|
[The pkg-config script could not be found or is too old. Make sure it
|
||||||
is in your PATH or set the PKG_CONFIG environment variable to the full
|
is in your PATH or set the PKG_CONFIG environment variable to the full
|
||||||
path to pkg-config.
|
path to pkg-config.
|
||||||
@@ -171,11 +171,11 @@ path to pkg-config.
|
|||||||
_PKG_TEXT
|
_PKG_TEXT
|
||||||
|
|
||||||
To get pkg-config, see <http://pkg-config.freedesktop.org/>.])],
|
To get pkg-config, see <http://pkg-config.freedesktop.org/>.])],
|
||||||
[$4])
|
[$4])
|
||||||
else
|
else
|
||||||
$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
|
$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
|
||||||
$1[]_LIBS=$pkg_cv_[]$1[]_LIBS
|
$1[]_LIBS=$pkg_cv_[]$1[]_LIBS
|
||||||
AC_MSG_RESULT([yes])
|
AC_MSG_RESULT([yes])
|
||||||
ifelse([$3], , :, [$3])
|
ifelse([$3], , :, [$3])
|
||||||
fi[]dnl
|
fi[]dnl
|
||||||
])# PKG_CHECK_MODULES
|
])# PKG_CHECK_MODULES
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2024, 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
|
||||||
@@ -359,9 +359,6 @@ AC_DEFUN_ONCE([BPERF_SETUP_PRECOMPILED_HEADERS],
|
|||||||
if test "x$ICECC" != "x"; then
|
if test "x$ICECC" != "x"; then
|
||||||
AC_MSG_RESULT([no, does not work effectively with icecc])
|
AC_MSG_RESULT([no, does not work effectively with icecc])
|
||||||
PRECOMPILED_HEADERS_AVAILABLE=false
|
PRECOMPILED_HEADERS_AVAILABLE=false
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
|
|
||||||
AC_MSG_RESULT([no, does not work with xlc])
|
|
||||||
PRECOMPILED_HEADERS_AVAILABLE=false
|
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xgcc; then
|
elif test "x$TOOLCHAIN_TYPE" = xgcc; then
|
||||||
# Check that the compiler actually supports precomp headers.
|
# Check that the compiler actually supports precomp headers.
|
||||||
echo "int alfa();" > conftest.h
|
echo "int alfa();" > conftest.h
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -40,6 +40,7 @@ LDCXX := @BUILD_LDCXX@
|
|||||||
AS := @BUILD_AS@
|
AS := @BUILD_AS@
|
||||||
NM := @BUILD_NM@
|
NM := @BUILD_NM@
|
||||||
AR := @BUILD_AR@
|
AR := @BUILD_AR@
|
||||||
|
LIB := @BUILD_LIB@
|
||||||
OBJCOPY := @BUILD_OBJCOPY@
|
OBJCOPY := @BUILD_OBJCOPY@
|
||||||
STRIP := @BUILD_STRIP@
|
STRIP := @BUILD_STRIP@
|
||||||
SYSROOT_CFLAGS := @BUILD_SYSROOT_CFLAGS@
|
SYSROOT_CFLAGS := @BUILD_SYSROOT_CFLAGS@
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
#
|
#
|
||||||
# Copyright (c) 2012, 2022, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2012, 2024, 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
|
||||||
@@ -45,11 +45,13 @@ export CP="@CP@"
|
|||||||
export CUT="@CUT@"
|
export CUT="@CUT@"
|
||||||
export DIFF="@DIFF@"
|
export DIFF="@DIFF@"
|
||||||
export DUMPBIN="@DUMPBIN@"
|
export DUMPBIN="@DUMPBIN@"
|
||||||
|
export ECHO="@ECHO@"
|
||||||
export EXPR="@EXPR@"
|
export EXPR="@EXPR@"
|
||||||
export FILE="@FILE@"
|
export FILE="@FILE@"
|
||||||
export FIND="@FIND@"
|
export FIND="@FIND@"
|
||||||
export GREP="@GREP@"
|
export GREP="@GREP@"
|
||||||
export GUNZIP="@GUNZIP@"
|
export GUNZIP="@GUNZIP@"
|
||||||
|
export HEAD="@HEAD@"
|
||||||
export LDD="@LDD@"
|
export LDD="@LDD@"
|
||||||
export LN="@LN@"
|
export LN="@LN@"
|
||||||
export MKDIR="@MKDIR@"
|
export MKDIR="@MKDIR@"
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2024, 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,12 @@ 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'
|
||||||
SET_EXECUTABLE_ORIGIN='-Wl,-rpath,\$$ORIGIN[$]1'
|
# --disable-new-dtags forces use of RPATH instead of RUNPATH for rpaths.
|
||||||
|
# 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'
|
|
||||||
|
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xclang; then
|
elif test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||||
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
||||||
@@ -49,7 +51,6 @@ AC_DEFUN([FLAGS_SETUP_SHARED_LIBS],
|
|||||||
SET_EXECUTABLE_ORIGIN='-Wl,-rpath,@loader_path$(or [$]1,/.)'
|
SET_EXECUTABLE_ORIGIN='-Wl,-rpath,@loader_path$(or [$]1,/.)'
|
||||||
SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
|
SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
|
||||||
SET_SHARED_LIBRARY_NAME='-Wl,-install_name,@rpath/[$]1'
|
SET_SHARED_LIBRARY_NAME='-Wl,-install_name,@rpath/[$]1'
|
||||||
SET_SHARED_LIBRARY_MAPFILE='-Wl,-exported_symbols_list,[$]1'
|
|
||||||
|
|
||||||
elif test "x$OPENJDK_TARGET_OS" = xaix; then
|
elif test "x$OPENJDK_TARGET_OS" = xaix; then
|
||||||
# Linking is different on aix
|
# Linking is different on aix
|
||||||
@@ -57,14 +58,15 @@ AC_DEFUN([FLAGS_SETUP_SHARED_LIBS],
|
|||||||
SET_EXECUTABLE_ORIGIN=""
|
SET_EXECUTABLE_ORIGIN=""
|
||||||
SET_SHARED_LIBRARY_ORIGIN=''
|
SET_SHARED_LIBRARY_ORIGIN=''
|
||||||
SET_SHARED_LIBRARY_NAME=''
|
SET_SHARED_LIBRARY_NAME=''
|
||||||
SET_SHARED_LIBRARY_MAPFILE=''
|
|
||||||
|
|
||||||
else
|
else
|
||||||
# Default works for linux, might work on other platforms as well.
|
# Default works for linux, might work on other platforms as well.
|
||||||
SHARED_LIBRARY_FLAGS='-shared'
|
SHARED_LIBRARY_FLAGS='-shared'
|
||||||
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'
|
|
||||||
|
|
||||||
# arm specific settings
|
# arm specific settings
|
||||||
if test "x$OPENJDK_TARGET_CPU" = "xarm"; then
|
if test "x$OPENJDK_TARGET_CPU" = "xarm"; then
|
||||||
@@ -75,25 +77,16 @@ AC_DEFUN([FLAGS_SETUP_SHARED_LIBS],
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
|
|
||||||
SHARED_LIBRARY_FLAGS="-qmkshrobj -bM:SRE -bnoentry"
|
|
||||||
SET_EXECUTABLE_ORIGIN=""
|
|
||||||
SET_SHARED_LIBRARY_ORIGIN=''
|
|
||||||
SET_SHARED_LIBRARY_NAME=''
|
|
||||||
SET_SHARED_LIBRARY_MAPFILE=''
|
|
||||||
|
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||||
SHARED_LIBRARY_FLAGS="-dll"
|
SHARED_LIBRARY_FLAGS="-dll"
|
||||||
SET_EXECUTABLE_ORIGIN=''
|
SET_EXECUTABLE_ORIGIN=''
|
||||||
SET_SHARED_LIBRARY_ORIGIN=''
|
SET_SHARED_LIBRARY_ORIGIN=''
|
||||||
SET_SHARED_LIBRARY_NAME=''
|
SET_SHARED_LIBRARY_NAME=''
|
||||||
SET_SHARED_LIBRARY_MAPFILE='-def:[$]1'
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
AC_SUBST(SET_EXECUTABLE_ORIGIN)
|
AC_SUBST(SET_EXECUTABLE_ORIGIN)
|
||||||
AC_SUBST(SET_SHARED_LIBRARY_ORIGIN)
|
AC_SUBST(SET_SHARED_LIBRARY_ORIGIN)
|
||||||
AC_SUBST(SET_SHARED_LIBRARY_NAME)
|
AC_SUBST(SET_SHARED_LIBRARY_NAME)
|
||||||
AC_SUBST(SET_SHARED_LIBRARY_MAPFILE)
|
|
||||||
AC_SUBST(SHARED_LIBRARY_FLAGS)
|
AC_SUBST(SHARED_LIBRARY_FLAGS)
|
||||||
])
|
])
|
||||||
|
|
||||||
@@ -117,6 +110,16 @@ 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
|
||||||
@@ -143,8 +146,6 @@ AC_DEFUN([FLAGS_SETUP_DEBUG_SYMBOLS],
|
|||||||
|
|
||||||
CFLAGS_DEBUG_SYMBOLS="-g ${GDWARF_FLAGS}"
|
CFLAGS_DEBUG_SYMBOLS="-g ${GDWARF_FLAGS}"
|
||||||
ASFLAGS_DEBUG_SYMBOLS="-g"
|
ASFLAGS_DEBUG_SYMBOLS="-g"
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
|
|
||||||
CFLAGS_DEBUG_SYMBOLS="-g1"
|
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||||
CFLAGS_DEBUG_SYMBOLS="-Z7"
|
CFLAGS_DEBUG_SYMBOLS="-Z7"
|
||||||
fi
|
fi
|
||||||
@@ -158,14 +159,59 @@ 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.
|
||||||
if test "x$TOOLCHAIN_TYPE" != xxlc; then
|
WARNINGS_AS_ERRORS_DEFAULT=true
|
||||||
WARNINGS_AS_ERRORS_DEFAULT=true
|
|
||||||
else
|
|
||||||
WARNINGS_AS_ERRORS_DEFAULT=false
|
|
||||||
fi
|
|
||||||
|
|
||||||
UTIL_ARG_ENABLE(NAME: warnings-as-errors, DEFAULT: $WARNINGS_AS_ERRORS_DEFAULT,
|
UTIL_ARG_ENABLE(NAME: warnings-as-errors, DEFAULT: $WARNINGS_AS_ERRORS_DEFAULT,
|
||||||
RESULT: WARNINGS_AS_ERRORS,
|
RESULT: WARNINGS_AS_ERRORS,
|
||||||
@@ -215,15 +261,6 @@ AC_DEFUN([FLAGS_SETUP_WARNINGS],
|
|||||||
|
|
||||||
DISABLED_WARNINGS="unknown-warning-option unused-parameter unused"
|
DISABLED_WARNINGS="unknown-warning-option unused-parameter unused"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
xlc)
|
|
||||||
DISABLE_WARNING_PREFIX="-Wno-"
|
|
||||||
CFLAGS_WARNINGS_ARE_ERRORS="-qhalt=w"
|
|
||||||
|
|
||||||
# Possibly a better subset than "all" is "lan:trx:ret:zea:cmp:ret"
|
|
||||||
WARNINGS_ENABLE_ALL="-qinfo=all -qformat=all"
|
|
||||||
DISABLED_WARNINGS=""
|
|
||||||
;;
|
|
||||||
esac
|
esac
|
||||||
AC_SUBST(DISABLE_WARNING_PREFIX)
|
AC_SUBST(DISABLE_WARNING_PREFIX)
|
||||||
AC_SUBST(BUILD_CC_DISABLE_WARNING_PREFIX)
|
AC_SUBST(BUILD_CC_DISABLE_WARNING_PREFIX)
|
||||||
@@ -305,15 +342,6 @@ AC_DEFUN([FLAGS_SETUP_OPTIMIZATION],
|
|||||||
C_O_FLAG_SIZE="-Os"
|
C_O_FLAG_SIZE="-Os"
|
||||||
C_O_FLAG_DEBUG="-O0"
|
C_O_FLAG_DEBUG="-O0"
|
||||||
C_O_FLAG_NONE="-O0"
|
C_O_FLAG_NONE="-O0"
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
|
|
||||||
C_O_FLAG_HIGHEST_JVM="-O3 -qhot=level=1 -qinline -qinlglue"
|
|
||||||
C_O_FLAG_HIGHEST="-O3 -qhot=level=1 -qinline -qinlglue"
|
|
||||||
C_O_FLAG_HI="-O3 -qinline -qinlglue"
|
|
||||||
C_O_FLAG_NORM="-O2"
|
|
||||||
C_O_FLAG_DEBUG="-qnoopt"
|
|
||||||
# FIXME: Value below not verified.
|
|
||||||
C_O_FLAG_DEBUG_JVM=""
|
|
||||||
C_O_FLAG_NONE="-qnoopt"
|
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||||
C_O_FLAG_HIGHEST_JVM="-O2 -Oy-"
|
C_O_FLAG_HIGHEST_JVM="-O2 -Oy-"
|
||||||
C_O_FLAG_HIGHEST="-O2"
|
C_O_FLAG_HIGHEST="-O2"
|
||||||
@@ -425,13 +453,14 @@ 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"
|
CFLAGS_OS_DEF_JVM="-DLINUX -D_FILE_OFFSET_BITS=64"
|
||||||
CFLAGS_OS_DEF_JDK="-D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE"
|
CFLAGS_OS_DEF_JDK="-D_GNU_SOURCE -D_REENTRANT -D_FILE_OFFSET_BITS=64"
|
||||||
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"
|
CFLAGS_OS_DEF_JVM="-DAIX -D_LARGE_FILES"
|
||||||
|
CFLAGS_OS_DEF_JDK="-D_LARGE_FILES"
|
||||||
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
|
||||||
@@ -465,12 +494,6 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
|
|||||||
else
|
else
|
||||||
DEBUG_CFLAGS_JDK="-DDEBUG"
|
DEBUG_CFLAGS_JDK="-DDEBUG"
|
||||||
|
|
||||||
if test "x$TOOLCHAIN_TYPE" = xxlc; then
|
|
||||||
# We need '-qminimaltoc' or '-qpic=large -bbigtoc' if the TOC overflows.
|
|
||||||
# Hotspot now overflows its 64K TOC (currently only for debug),
|
|
||||||
# so for debug we build with '-qpic=large -bbigtoc'.
|
|
||||||
DEBUG_CFLAGS_JVM="-qpic=large"
|
|
||||||
fi
|
|
||||||
if test "x$TOOLCHAIN_TYPE" = xclang && test "x$OPENJDK_TARGET_OS" = xaix; then
|
if test "x$TOOLCHAIN_TYPE" = xclang && test "x$OPENJDK_TARGET_OS" = xaix; then
|
||||||
DEBUG_CFLAGS_JVM="-fpic -mcmodel=large"
|
DEBUG_CFLAGS_JVM="-fpic -mcmodel=large"
|
||||||
fi
|
fi
|
||||||
@@ -487,9 +510,6 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
|
|||||||
ALWAYS_DEFINES_JVM="-D_GNU_SOURCE -D_REENTRANT"
|
ALWAYS_DEFINES_JVM="-D_GNU_SOURCE -D_REENTRANT"
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xclang; then
|
elif test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||||
ALWAYS_DEFINES_JVM="-D_GNU_SOURCE"
|
ALWAYS_DEFINES_JVM="-D_GNU_SOURCE"
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
|
|
||||||
ALWAYS_DEFINES_JVM="-D_REENTRANT"
|
|
||||||
ALWAYS_DEFINES_JDK="-D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE -DSTDC"
|
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||||
# Access APIs for Windows 8 and above
|
# Access APIs for Windows 8 and above
|
||||||
# see https://docs.microsoft.com/en-us/cpp/porting/modifying-winver-and-win32-winnt?view=msvc-170
|
# see https://docs.microsoft.com/en-us/cpp/porting/modifying-winver-and-win32-winnt?view=msvc-170
|
||||||
@@ -517,7 +537,7 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
|
|||||||
|
|
||||||
if test "x$TOOLCHAIN_TYPE" = xgcc; then
|
if test "x$TOOLCHAIN_TYPE" = xgcc; then
|
||||||
TOOLCHAIN_CFLAGS_JVM="$TOOLCHAIN_CFLAGS_JVM -fstack-protector"
|
TOOLCHAIN_CFLAGS_JVM="$TOOLCHAIN_CFLAGS_JVM -fstack-protector"
|
||||||
TOOLCHAIN_CFLAGS_JDK="-pipe -fstack-protector"
|
TOOLCHAIN_CFLAGS_JDK="-fvisibility=hidden -pipe -fstack-protector"
|
||||||
# reduce lib size on linux in link step, this needs also special compile flags
|
# reduce lib size on linux in link step, this needs also special compile flags
|
||||||
# do this on s390x also for libjvm (where serviceability agent is not supported)
|
# do this on s390x also for libjvm (where serviceability agent is not supported)
|
||||||
if test "x$ENABLE_LINKTIME_GC" = xtrue; then
|
if test "x$ENABLE_LINKTIME_GC" = xtrue; then
|
||||||
@@ -552,13 +572,8 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
|
|||||||
TOOLCHAIN_CFLAGS_JDK="-pipe"
|
TOOLCHAIN_CFLAGS_JDK="-pipe"
|
||||||
TOOLCHAIN_CFLAGS_JDK_CONLY="-fno-strict-aliasing" # technically NOT for CXX
|
TOOLCHAIN_CFLAGS_JDK_CONLY="-fno-strict-aliasing" # technically NOT for CXX
|
||||||
fi
|
fi
|
||||||
|
TOOLCHAIN_CFLAGS_JDK="$TOOLCHAIN_CFLAGS_JDK -fvisibility=hidden"
|
||||||
|
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
|
|
||||||
# Suggested additions: -qsrcmsg to get improved error reporting
|
|
||||||
# set -qtbtable=full for a better traceback table/better stacks in hs_err when xlc16 is used
|
|
||||||
TOOLCHAIN_CFLAGS_JDK="-qtbtable=full -qchars=signed -qfullpath -qsaveopt -qstackprotect" # add on both CFLAGS
|
|
||||||
TOOLCHAIN_CFLAGS_JVM="-qtbtable=full -qtune=balanced -fno-exceptions \
|
|
||||||
-qalias=noansi -qstrict -qtls=default -qnortti -qnoeh -qignerrno -qstackprotect"
|
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||||
# The -utf-8 option sets source and execution character sets to UTF-8 to enable correct
|
# The -utf-8 option sets source and execution character sets to UTF-8 to enable correct
|
||||||
# compilation of all source files regardless of the active code page on Windows.
|
# compilation of all source files regardless of the active code page on Windows.
|
||||||
@@ -567,7 +582,7 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# CFLAGS C language level for JDK sources (hotspot only uses C++)
|
# CFLAGS C language level for JDK sources (hotspot only uses C++)
|
||||||
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang || test "x$TOOLCHAIN_TYPE" = xxlc; then
|
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||||
LANGSTD_CFLAGS="-std=c11"
|
LANGSTD_CFLAGS="-std=c11"
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||||
LANGSTD_CFLAGS="-std:c11"
|
LANGSTD_CFLAGS="-std:c11"
|
||||||
@@ -575,12 +590,12 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
|
|||||||
TOOLCHAIN_CFLAGS_JDK_CONLY="$LANGSTD_CFLAGS $TOOLCHAIN_CFLAGS_JDK_CONLY"
|
TOOLCHAIN_CFLAGS_JDK_CONLY="$LANGSTD_CFLAGS $TOOLCHAIN_CFLAGS_JDK_CONLY"
|
||||||
|
|
||||||
# CXXFLAGS C++ language level for all of JDK, including Hotspot.
|
# CXXFLAGS C++ language level for all of JDK, including Hotspot.
|
||||||
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang || test "x$TOOLCHAIN_TYPE" = xxlc; then
|
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||||
LANGSTD_CXXFLAGS="-std=c++14"
|
LANGSTD_CXXFLAGS="-std=c++14"
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||||
LANGSTD_CXXFLAGS="-std:c++14"
|
LANGSTD_CXXFLAGS="-std:c++14"
|
||||||
else
|
else
|
||||||
AC_MSG_ERROR([Don't know how to enable C++14 for this toolchain])
|
AC_MSG_ERROR([Cannot enable C++14 for this toolchain])
|
||||||
fi
|
fi
|
||||||
TOOLCHAIN_CFLAGS_JDK_CXXONLY="$TOOLCHAIN_CFLAGS_JDK_CXXONLY $LANGSTD_CXXFLAGS"
|
TOOLCHAIN_CFLAGS_JDK_CXXONLY="$TOOLCHAIN_CFLAGS_JDK_CXXONLY $LANGSTD_CXXFLAGS"
|
||||||
TOOLCHAIN_CFLAGS_JVM="$TOOLCHAIN_CFLAGS_JVM $LANGSTD_CXXFLAGS"
|
TOOLCHAIN_CFLAGS_JVM="$TOOLCHAIN_CFLAGS_JVM $LANGSTD_CXXFLAGS"
|
||||||
@@ -599,8 +614,6 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
|
|||||||
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||||
WARNING_CFLAGS="$WARNINGS_ENABLE_ALL"
|
WARNING_CFLAGS="$WARNINGS_ENABLE_ALL"
|
||||||
|
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
|
|
||||||
WARNING_CFLAGS="" # currently left empty
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Set some additional per-OS defines.
|
# Set some additional per-OS defines.
|
||||||
@@ -625,31 +638,16 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
|
|||||||
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
|
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||||
PICFLAG="-fPIC"
|
PICFLAG="-fPIC"
|
||||||
PIEFLAG="-fPIE"
|
PIEFLAG="-fPIE"
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xclang && test "x$OPENJDK_TARGET_OS" = xaix; then
|
|
||||||
JVM_PICFLAG="-fpic -mcmodel=large -Wl,-bbigtoc
|
|
||||||
JDK_PICFLAG="-fpic
|
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
|
|
||||||
# '-qpic' defaults to 'qpic=small'. This means that the compiler generates only
|
|
||||||
# one instruction for accessing the TOC. If the TOC grows larger than 64K, the linker
|
|
||||||
# will have to patch this single instruction with a call to some out-of-order code which
|
|
||||||
# does the load from the TOC. This is of course slower, and we also would have
|
|
||||||
# to use '-bbigtoc' for linking anyway so we could also change the PICFLAG to 'qpic=large'.
|
|
||||||
# With 'qpic=large' the compiler will by default generate a two-instruction sequence which
|
|
||||||
# can be patched directly by the linker and does not require a jump to out-of-order code.
|
|
||||||
#
|
|
||||||
# Since large TOC causes perf. overhead, only pay it where we must. Currently this is
|
|
||||||
# for all libjvm variants (both gtest and normal) but no other binaries. So, build
|
|
||||||
# libjvm with -qpic=large and link with -bbigtoc.
|
|
||||||
JVM_PICFLAG="-qpic=large"
|
|
||||||
JDK_PICFLAG="-qpic"
|
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||||
PICFLAG=""
|
PICFLAG=""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "x$TOOLCHAIN_TYPE" != xxlc; then
|
if test "x$TOOLCHAIN_TYPE" = xclang && test "x$OPENJDK_TARGET_OS" = xaix; then
|
||||||
|
JVM_PICFLAG="-fpic -mcmodel=large"
|
||||||
|
else
|
||||||
JVM_PICFLAG="$PICFLAG"
|
JVM_PICFLAG="$PICFLAG"
|
||||||
JDK_PICFLAG="$PICFLAG"
|
|
||||||
fi
|
fi
|
||||||
|
JDK_PICFLAG="$PICFLAG"
|
||||||
|
|
||||||
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
||||||
# Linking is different on MacOSX
|
# Linking is different on MacOSX
|
||||||
@@ -699,8 +697,7 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP],
|
|||||||
$1_DEFINES_CPU_JDK="${$1_DEFINES_CPU_JDK} -DARCH='\"$FLAGS_CPU_LEGACY\"' \
|
$1_DEFINES_CPU_JDK="${$1_DEFINES_CPU_JDK} -DARCH='\"$FLAGS_CPU_LEGACY\"' \
|
||||||
-D$FLAGS_CPU_LEGACY"
|
-D$FLAGS_CPU_LEGACY"
|
||||||
|
|
||||||
if test "x$FLAGS_CPU_BITS" = x64 && test "x$FLAGS_OS" != xaix; then
|
if test "x$FLAGS_CPU_BITS" = x64; then
|
||||||
# xlc on AIX defines _LP64=1 by default and issues a warning if we redefine it.
|
|
||||||
$1_DEFINES_CPU_JDK="${$1_DEFINES_CPU_JDK} -D_LP64=1"
|
$1_DEFINES_CPU_JDK="${$1_DEFINES_CPU_JDK} -D_LP64=1"
|
||||||
$1_DEFINES_CPU_JVM="${$1_DEFINES_CPU_JVM} -D_LP64=1"
|
$1_DEFINES_CPU_JVM="${$1_DEFINES_CPU_JVM} -D_LP64=1"
|
||||||
fi
|
fi
|
||||||
@@ -777,11 +774,6 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP],
|
|||||||
$1_CFLAGS_CPU="-mcpu=pwr8"
|
$1_CFLAGS_CPU="-mcpu=pwr8"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
|
|
||||||
if test "x$FLAGS_CPU" = xppc64; then
|
|
||||||
$1_CFLAGS_CPU_JVM="-qarch=ppc64"
|
|
||||||
fi
|
|
||||||
|
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||||
if test "x$FLAGS_CPU" = xx86; then
|
if test "x$FLAGS_CPU" = xx86; then
|
||||||
$1_CFLAGS_CPU_JVM="-arch:IA32"
|
$1_CFLAGS_CPU_JVM="-arch:IA32"
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2024, 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
|
||||||
@@ -61,7 +61,7 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
|
|||||||
# add -z,relro (mark relocations read only) for all libs
|
# add -z,relro (mark relocations read only) for all libs
|
||||||
# add -z,now ("full relro" - more of the Global Offset Table GOT is marked read only)
|
# add -z,now ("full relro" - more of the Global Offset Table GOT is marked read only)
|
||||||
# add --no-as-needed to disable default --as-needed link flag on some GCC toolchains
|
# add --no-as-needed to disable default --as-needed link flag on some GCC toolchains
|
||||||
BASIC_LDFLAGS="-Wl,-z,defs -Wl,-z,relro -Wl,-z,now -Wl,--no-as-needed"
|
BASIC_LDFLAGS="-Wl,-z,defs -Wl,-z,relro -Wl,-z,now -Wl,--no-as-needed -Wl,--exclude-libs,ALL"
|
||||||
# Linux : remove unused code+data in link step
|
# Linux : remove unused code+data in link step
|
||||||
if test "x$ENABLE_LINKTIME_GC" = xtrue; then
|
if test "x$ENABLE_LINKTIME_GC" = xtrue; then
|
||||||
if test "x$OPENJDK_TARGET_CPU" = xs390x; then
|
if test "x$OPENJDK_TARGET_CPU" = xs390x; then
|
||||||
@@ -81,19 +81,17 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
|
|||||||
|
|
||||||
LDFLAGS_CXX_PARTIAL_LINKING="$MACHINE_FLAG -r"
|
LDFLAGS_CXX_PARTIAL_LINKING="$MACHINE_FLAG -r"
|
||||||
|
|
||||||
|
if test "x$OPENJDK_TARGET_OS" = xlinux; then
|
||||||
|
BASIC_LDFLAGS="-Wl,--exclude-libs,ALL"
|
||||||
|
fi
|
||||||
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"
|
||||||
BASIC_LDFLAGS_JVM_ONLY="$BASIC_LDFLAGS_JVM_ONLY -Wl,-lC_r -Wl,-bbigtoc"
|
BASIC_LDFLAGS_JVM_ONLY="$BASIC_LDFLAGS_JVM_ONLY -Wl,-lC_r -Wl,-bbigtoc"
|
||||||
fi
|
fi
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
|
|
||||||
BASIC_LDFLAGS="-b64 -brtl -bnorwexec -bnolibpath -bnoexpall -bernotok -btextpsize:64K \
|
|
||||||
-bdatapsize:64K -bstackpsize:64K"
|
|
||||||
# libjvm.so has gotten too large for normal TOC size; compile with qpic=large and link with bigtoc
|
|
||||||
BASIC_LDFLAGS_JVM_ONLY="-Wl,-lC_r -bbigtoc"
|
|
||||||
|
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||||
BASIC_LDFLAGS="-nologo -opt:ref"
|
BASIC_LDFLAGS="-opt:ref"
|
||||||
BASIC_LDFLAGS_JDK_ONLY="-incremental:no"
|
BASIC_LDFLAGS_JDK_ONLY="-incremental:no"
|
||||||
BASIC_LDFLAGS_JVM_ONLY="-opt:icf,8 -subsystem:windows"
|
BASIC_LDFLAGS_JVM_ONLY="-opt:icf,8 -subsystem:windows"
|
||||||
fi
|
fi
|
||||||
@@ -120,14 +118,6 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
|
|
||||||
# We need '-qminimaltoc' or '-qpic=large -bbigtoc' if the TOC overflows.
|
|
||||||
# Hotspot now overflows its 64K TOC (currently only for debug),
|
|
||||||
# so we build with '-qpic=large -bbigtoc'.
|
|
||||||
if test "x$DEBUG_LEVEL" != xrelease; then
|
|
||||||
DEBUGLEVEL_LDFLAGS_JVM_ONLY="$DEBUGLEVEL_LDFLAGS_JVM_ONLY -bbigtoc"
|
|
||||||
fi
|
|
||||||
|
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xclang && test "x$OPENJDK_TARGET_OS" = xaix; then
|
elif test "x$TOOLCHAIN_TYPE" = xclang && test "x$OPENJDK_TARGET_OS" = xaix; then
|
||||||
# We need '-fpic' or '-fpic -mcmodel=large -Wl,-bbigtoc' if the TOC overflows.
|
# We need '-fpic' or '-fpic -mcmodel=large -Wl,-bbigtoc' if the TOC overflows.
|
||||||
# Hotspot now overflows its 64K TOC (currently only for debug),
|
# Hotspot now overflows its 64K TOC (currently only for debug),
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -33,9 +33,6 @@ AC_DEFUN([FLAGS_SETUP_ARFLAGS],
|
|||||||
# FIXME: figure out if we should select AR flags depending on OS or toolchain.
|
# FIXME: figure out if we should select AR flags depending on OS or toolchain.
|
||||||
if test "x$OPENJDK_TARGET_OS" = xaix; then
|
if test "x$OPENJDK_TARGET_OS" = xaix; then
|
||||||
ARFLAGS="-X64"
|
ARFLAGS="-X64"
|
||||||
elif test "x$OPENJDK_TARGET_OS" = xwindows; then
|
|
||||||
# lib.exe is used as AR to create static libraries.
|
|
||||||
ARFLAGS="-nologo -NODEFAULTLIB:MSVCRT"
|
|
||||||
else
|
else
|
||||||
ARFLAGS=""
|
ARFLAGS=""
|
||||||
fi
|
fi
|
||||||
@@ -43,6 +40,18 @@ AC_DEFUN([FLAGS_SETUP_ARFLAGS],
|
|||||||
AC_SUBST(ARFLAGS)
|
AC_SUBST(ARFLAGS)
|
||||||
])
|
])
|
||||||
|
|
||||||
|
AC_DEFUN([FLAGS_SETUP_LIBFLAGS],
|
||||||
|
[
|
||||||
|
# LIB is used to create static libraries on Windows
|
||||||
|
if test "x$OPENJDK_TARGET_OS" = xwindows; then
|
||||||
|
LIBFLAGS="-nodefaultlib:msvcrt"
|
||||||
|
else
|
||||||
|
LIBFLAGS=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_SUBST(LIBFLAGS)
|
||||||
|
])
|
||||||
|
|
||||||
AC_DEFUN([FLAGS_SETUP_STRIPFLAGS],
|
AC_DEFUN([FLAGS_SETUP_STRIPFLAGS],
|
||||||
[
|
[
|
||||||
## Setup strip.
|
## Setup strip.
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2024, 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
|
||||||
@@ -261,12 +261,9 @@ AC_DEFUN_ONCE([FLAGS_PRE_TOOLCHAIN],
|
|||||||
# The sysroot flags are needed for configure to be able to run the compilers
|
# The sysroot flags are needed for configure to be able to run the compilers
|
||||||
FLAGS_SETUP_SYSROOT_FLAGS
|
FLAGS_SETUP_SYSROOT_FLAGS
|
||||||
|
|
||||||
# For xlc, the word size flag is required for correct behavior.
|
|
||||||
# For clang/gcc, the flag is only strictly required for reduced builds, but
|
# For clang/gcc, the flag is only strictly required for reduced builds, but
|
||||||
# set it always where possible (x86 and ppc).
|
# set it always where possible (x86 and ppc).
|
||||||
if test "x$TOOLCHAIN_TYPE" = xxlc; then
|
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||||
MACHINE_FLAG="-q${OPENJDK_TARGET_CPU_BITS}"
|
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
|
|
||||||
if test "x$OPENJDK_TARGET_CPU_ARCH" = xx86 &&
|
if test "x$OPENJDK_TARGET_CPU_ARCH" = xx86 &&
|
||||||
test "x$OPENJDK_TARGET_CPU" != xx32 ||
|
test "x$OPENJDK_TARGET_CPU" != xx32 ||
|
||||||
test "x$OPENJDK_TARGET_CPU_ARCH" = xppc; then
|
test "x$OPENJDK_TARGET_CPU_ARCH" = xppc; then
|
||||||
@@ -321,75 +318,20 @@ AC_DEFUN_ONCE([FLAGS_PRE_TOOLCHAIN],
|
|||||||
|
|
||||||
AC_DEFUN([FLAGS_SETUP_TOOLCHAIN_CONTROL],
|
AC_DEFUN([FLAGS_SETUP_TOOLCHAIN_CONTROL],
|
||||||
[
|
[
|
||||||
# COMPILER_TARGET_BITS_FLAG : option for selecting 32- or 64-bit output
|
|
||||||
# COMPILER_COMMAND_FILE_FLAG : option for passing a command file to the compiler
|
|
||||||
# COMPILER_BINDCMD_FILE_FLAG : option for specifying a file which saves the binder
|
|
||||||
# commands produced by the link step (currently AIX only)
|
|
||||||
if test "x$TOOLCHAIN_TYPE" = xxlc; then
|
|
||||||
COMPILER_TARGET_BITS_FLAG="-q"
|
|
||||||
COMPILER_COMMAND_FILE_FLAG="-f"
|
|
||||||
COMPILER_BINDCMD_FILE_FLAG="-bloadmap:"
|
|
||||||
else
|
|
||||||
COMPILER_TARGET_BITS_FLAG="-m"
|
|
||||||
COMPILER_COMMAND_FILE_FLAG="@"
|
|
||||||
COMPILER_BINDCMD_FILE_FLAG=""
|
|
||||||
|
|
||||||
# Check if @file is supported by gcc
|
|
||||||
if test "x$TOOLCHAIN_TYPE" = xgcc; then
|
|
||||||
AC_MSG_CHECKING([if @file is supported by gcc])
|
|
||||||
# Extra empty "" to prevent ECHO from interpreting '--version' as argument
|
|
||||||
$ECHO "" "--version" > command.file
|
|
||||||
# Redirect stderr and stdout to config.log (AS_MESSAGE_LOG_FD) via merge
|
|
||||||
if $CXX @command.file 2>&AS_MESSAGE_LOG_FD >&AS_MESSAGE_LOG_FD; then
|
|
||||||
AC_MSG_RESULT(yes)
|
|
||||||
COMPILER_COMMAND_FILE_FLAG="@"
|
|
||||||
else
|
|
||||||
AC_MSG_RESULT(no)
|
|
||||||
COMPILER_COMMAND_FILE_FLAG=
|
|
||||||
fi
|
|
||||||
$RM command.file
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_SUBST(COMPILER_TARGET_BITS_FLAG)
|
|
||||||
AC_SUBST(COMPILER_COMMAND_FILE_FLAG)
|
|
||||||
AC_SUBST(COMPILER_BINDCMD_FILE_FLAG)
|
|
||||||
|
|
||||||
# Check that the compiler supports -mX (or -qX on AIX) flags
|
|
||||||
# Set COMPILER_SUPPORTS_TARGET_BITS_FLAG to 'true' if it does
|
|
||||||
FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}],
|
|
||||||
IF_TRUE: [COMPILER_SUPPORTS_TARGET_BITS_FLAG=true],
|
|
||||||
IF_FALSE: [COMPILER_SUPPORTS_TARGET_BITS_FLAG=false])
|
|
||||||
AC_SUBST(COMPILER_SUPPORTS_TARGET_BITS_FLAG)
|
|
||||||
|
|
||||||
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||||
CC_OUT_OPTION=-Fo
|
CC_OUT_OPTION=-Fo
|
||||||
LD_OUT_OPTION=-out:
|
|
||||||
AR_OUT_OPTION=-out:
|
|
||||||
else
|
else
|
||||||
# The option used to specify the target .o,.a or .so file.
|
# The option used to specify the target .o,.a or .so file.
|
||||||
# When compiling, how to specify the to be created object file.
|
# When compiling, how to specify the to be created object file.
|
||||||
CC_OUT_OPTION='-o$(SPACE)'
|
CC_OUT_OPTION='-o$(SPACE)'
|
||||||
# When linking, how to specify the output
|
|
||||||
LD_OUT_OPTION='-o$(SPACE)'
|
|
||||||
# When archiving, how to specify the destination static archive.
|
|
||||||
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
|
||||||
AR_OUT_OPTION='-r -cs$(SPACE)'
|
|
||||||
else
|
|
||||||
AR_OUT_OPTION='-rcs$(SPACE)'
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
AC_SUBST(CC_OUT_OPTION)
|
AC_SUBST(CC_OUT_OPTION)
|
||||||
AC_SUBST(LD_OUT_OPTION)
|
|
||||||
AC_SUBST(AR_OUT_OPTION)
|
|
||||||
|
|
||||||
# Generate make dependency files
|
# Generate make dependency files
|
||||||
if test "x$TOOLCHAIN_TYPE" = xgcc; then
|
if test "x$TOOLCHAIN_TYPE" = xgcc; then
|
||||||
GENDEPS_FLAGS="-MMD -MF"
|
GENDEPS_FLAGS="-MMD -MF"
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xclang; then
|
elif test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||||
GENDEPS_FLAGS="-MMD -MF"
|
GENDEPS_FLAGS="-MMD -MF"
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
|
|
||||||
GENDEPS_FLAGS="-qmakedep=gcc -MF"
|
|
||||||
fi
|
fi
|
||||||
AC_SUBST(GENDEPS_FLAGS)
|
AC_SUBST(GENDEPS_FLAGS)
|
||||||
])
|
])
|
||||||
@@ -423,6 +365,7 @@ AC_DEFUN([FLAGS_SETUP_FLAGS],
|
|||||||
FLAGS_SETUP_LDFLAGS
|
FLAGS_SETUP_LDFLAGS
|
||||||
|
|
||||||
FLAGS_SETUP_ARFLAGS
|
FLAGS_SETUP_ARFLAGS
|
||||||
|
FLAGS_SETUP_LIBFLAGS
|
||||||
FLAGS_SETUP_STRIPFLAGS
|
FLAGS_SETUP_STRIPFLAGS
|
||||||
FLAGS_SETUP_RCFLAGS
|
FLAGS_SETUP_RCFLAGS
|
||||||
FLAGS_SETUP_NMFLAGS
|
FLAGS_SETUP_NMFLAGS
|
||||||
|
|||||||
@@ -69,11 +69,13 @@ AC_DEFUN_ONCE([LIB_SETUP_LIBJPEG],
|
|||||||
[ AC_MSG_ERROR([--with-libjpeg=system specified, but no libjpeg found])])
|
[ AC_MSG_ERROR([--with-libjpeg=system specified, but no libjpeg found])])
|
||||||
|
|
||||||
USE_EXTERNAL_LIBJPEG=true
|
USE_EXTERNAL_LIBJPEG=true
|
||||||
|
LIBJPEG_LIBS="-ljpeg"
|
||||||
else
|
else
|
||||||
AC_MSG_ERROR([Invalid use of --with-libjpeg: ${with_libjpeg}, use 'system' or 'bundled'])
|
AC_MSG_ERROR([Invalid use of --with-libjpeg: ${with_libjpeg}, use 'system' or 'bundled'])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
AC_SUBST(USE_EXTERNAL_LIBJPEG)
|
AC_SUBST(USE_EXTERNAL_LIBJPEG)
|
||||||
|
AC_SUBST(LIBJPEG_LIBS)
|
||||||
])
|
])
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
@@ -102,11 +104,13 @@ AC_DEFUN_ONCE([LIB_SETUP_GIFLIB],
|
|||||||
[ AC_MSG_ERROR([--with-giflib=system specified, but no giflib found!])])
|
[ AC_MSG_ERROR([--with-giflib=system specified, but no giflib found!])])
|
||||||
|
|
||||||
USE_EXTERNAL_LIBGIF=true
|
USE_EXTERNAL_LIBGIF=true
|
||||||
|
GIFLIB_LIBS=-lgif
|
||||||
else
|
else
|
||||||
AC_MSG_ERROR([Invalid value of --with-giflib: ${with_giflib}, use 'system' or 'bundled'])
|
AC_MSG_ERROR([Invalid value of --with-giflib: ${with_giflib}, use 'system' or 'bundled'])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
AC_SUBST(USE_EXTERNAL_LIBGIF)
|
AC_SUBST(USE_EXTERNAL_LIBGIF)
|
||||||
|
AC_SUBST(GIFLIB_LIBS)
|
||||||
])
|
])
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2024, 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
|
||||||
@@ -171,13 +171,11 @@ AC_DEFUN_ONCE([LIB_SETUP_LIBRARIES],
|
|||||||
LIB_SETUP_JVM_LIBS(TARGET)
|
LIB_SETUP_JVM_LIBS(TARGET)
|
||||||
|
|
||||||
JDKLIB_LIBS="$BASIC_JDKLIB_LIBS"
|
JDKLIB_LIBS="$BASIC_JDKLIB_LIBS"
|
||||||
JDKEXE_LIBS=""
|
|
||||||
JVM_LIBS="$BASIC_JVM_LIBS $BASIC_JVM_LIBS_TARGET"
|
JVM_LIBS="$BASIC_JVM_LIBS $BASIC_JVM_LIBS_TARGET"
|
||||||
OPENJDK_BUILD_JDKLIB_LIBS="$BASIC_JDKLIB_LIBS"
|
OPENJDK_BUILD_JDKLIB_LIBS="$BASIC_JDKLIB_LIBS"
|
||||||
OPENJDK_BUILD_JVM_LIBS="$BASIC_JVM_LIBS $BASIC_JVM_LIBS_BUILD"
|
OPENJDK_BUILD_JVM_LIBS="$BASIC_JVM_LIBS $BASIC_JVM_LIBS_BUILD"
|
||||||
|
|
||||||
AC_SUBST(JDKLIB_LIBS)
|
AC_SUBST(JDKLIB_LIBS)
|
||||||
AC_SUBST(JDKEXE_LIBS)
|
|
||||||
AC_SUBST(JVM_LIBS)
|
AC_SUBST(JVM_LIBS)
|
||||||
AC_SUBST(OPENJDK_BUILD_JDKLIB_LIBS)
|
AC_SUBST(OPENJDK_BUILD_JDKLIB_LIBS)
|
||||||
AC_SUBST(OPENJDK_BUILD_JVM_LIBS)
|
AC_SUBST(OPENJDK_BUILD_JVM_LIBS)
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -56,8 +56,8 @@ COMMA := ,
|
|||||||
# What make to use for main processing, after bootstrapping top-level Makefile.
|
# What make to use for main processing, after bootstrapping top-level Makefile.
|
||||||
MAKE := @MAKE@
|
MAKE := @MAKE@
|
||||||
|
|
||||||
# Make sure all shell commands are executed with the C locale
|
# Make sure all shell commands are executed with a proper locale
|
||||||
export LC_ALL := C
|
export LC_ALL := @LOCALE_USED@
|
||||||
|
|
||||||
# Make sure we override any local CLASSPATH variable
|
# Make sure we override any local CLASSPATH variable
|
||||||
export CLASSPATH := @CLASSPATH@
|
export CLASSPATH := @CLASSPATH@
|
||||||
@@ -191,7 +191,7 @@ PRODUCT_NAME := @PRODUCT_NAME@
|
|||||||
PRODUCT_SUFFIX := @PRODUCT_SUFFIX@
|
PRODUCT_SUFFIX := @PRODUCT_SUFFIX@
|
||||||
JDK_RC_PLATFORM_NAME := @JDK_RC_PLATFORM_NAME@
|
JDK_RC_PLATFORM_NAME := @JDK_RC_PLATFORM_NAME@
|
||||||
JDK_RC_NAME := @JDK_RC_NAME@
|
JDK_RC_NAME := @JDK_RC_NAME@
|
||||||
JDK_RC_COMPANY_NAME:=@JDK_RC_COMPANY_NAME@
|
JDK_RC_COMPANY_NAME := @JDK_RC_COMPANY_NAME@
|
||||||
COMPANY_NAME := @COMPANY_NAME@
|
COMPANY_NAME := @COMPANY_NAME@
|
||||||
HOTSPOT_VM_DISTRO := @HOTSPOT_VM_DISTRO@
|
HOTSPOT_VM_DISTRO := @HOTSPOT_VM_DISTRO@
|
||||||
MACOSX_BUNDLE_NAME_BASE := @MACOSX_BUNDLE_NAME_BASE@
|
MACOSX_BUNDLE_NAME_BASE := @MACOSX_BUNDLE_NAME_BASE@
|
||||||
@@ -477,7 +477,7 @@ MACOSX_VERSION_MAX := @MACOSX_VERSION_MAX@
|
|||||||
MACOSX_CODESIGN_MODE := @MACOSX_CODESIGN_MODE@
|
MACOSX_CODESIGN_MODE := @MACOSX_CODESIGN_MODE@
|
||||||
MACOSX_CODESIGN_IDENTITY := @MACOSX_CODESIGN_IDENTITY@
|
MACOSX_CODESIGN_IDENTITY := @MACOSX_CODESIGN_IDENTITY@
|
||||||
|
|
||||||
# Toolchain type: gcc, clang, xlc, microsoft...
|
# Toolchain type: gcc, clang, microsoft...
|
||||||
TOOLCHAIN_TYPE := @TOOLCHAIN_TYPE@
|
TOOLCHAIN_TYPE := @TOOLCHAIN_TYPE@
|
||||||
TOOLCHAIN_VERSION := @TOOLCHAIN_VERSION@
|
TOOLCHAIN_VERSION := @TOOLCHAIN_VERSION@
|
||||||
CC_VERSION_NUMBER := @CC_VERSION_NUMBER@
|
CC_VERSION_NUMBER := @CC_VERSION_NUMBER@
|
||||||
@@ -486,20 +486,7 @@ CXX_VERSION_NUMBER := @CXX_VERSION_NUMBER@
|
|||||||
# Legacy support
|
# Legacy support
|
||||||
HOTSPOT_TOOLCHAIN_TYPE := @HOTSPOT_TOOLCHAIN_TYPE@
|
HOTSPOT_TOOLCHAIN_TYPE := @HOTSPOT_TOOLCHAIN_TYPE@
|
||||||
|
|
||||||
# Option used to tell the compiler whether to create 32- or 64-bit executables
|
|
||||||
COMPILER_TARGET_BITS_FLAG := @COMPILER_TARGET_BITS_FLAG@
|
|
||||||
COMPILER_SUPPORTS_TARGET_BITS_FLAG := @COMPILER_SUPPORTS_TARGET_BITS_FLAG@
|
|
||||||
|
|
||||||
# Option used to pass a command file to the compiler
|
|
||||||
COMPILER_COMMAND_FILE_FLAG := @COMPILER_COMMAND_FILE_FLAG@
|
|
||||||
|
|
||||||
# Option for specifying a file which saves the binder commands
|
|
||||||
# produced by the link step (for debugging, currently AIX only)
|
|
||||||
COMPILER_BINDCMD_FILE_FLAG := @COMPILER_BINDCMD_FILE_FLAG@
|
|
||||||
|
|
||||||
CC_OUT_OPTION := @CC_OUT_OPTION@
|
CC_OUT_OPTION := @CC_OUT_OPTION@
|
||||||
LD_OUT_OPTION := @LD_OUT_OPTION@
|
|
||||||
AR_OUT_OPTION := @AR_OUT_OPTION@
|
|
||||||
|
|
||||||
# Flags used for overriding the default opt setting for a C/C++ source file.
|
# Flags used for overriding the default opt setting for a C/C++ source file.
|
||||||
C_O_FLAG_HIGHEST_JVM := @C_O_FLAG_HIGHEST_JVM@
|
C_O_FLAG_HIGHEST_JVM := @C_O_FLAG_HIGHEST_JVM@
|
||||||
@@ -572,7 +559,6 @@ JDKLIB_LIBS := @JDKLIB_LIBS@
|
|||||||
|
|
||||||
# LDFLAGS used to link the jdk native launchers (C-code)
|
# LDFLAGS used to link the jdk native launchers (C-code)
|
||||||
LDFLAGS_JDKEXE := @LDFLAGS_JDKEXE@
|
LDFLAGS_JDKEXE := @LDFLAGS_JDKEXE@
|
||||||
JDKEXE_LIBS := @JDKEXE_LIBS@
|
|
||||||
|
|
||||||
# LDFLAGS specific to C++ linking.
|
# LDFLAGS specific to C++ linking.
|
||||||
LDFLAGS_CXX_JDK := @LDFLAGS_CXX_JDK@
|
LDFLAGS_CXX_JDK := @LDFLAGS_CXX_JDK@
|
||||||
@@ -604,10 +590,10 @@ BUILD_SYSROOT_LDFLAGS := @BUILD_SYSROOT_LDFLAGS@
|
|||||||
|
|
||||||
AS := @AS@
|
AS := @AS@
|
||||||
|
|
||||||
# AR is used to create a static library (is ar in unix, lib.exe in windows)
|
|
||||||
AR := @AR@
|
AR := @AR@
|
||||||
ARFLAGS := @ARFLAGS@
|
ARFLAGS := @ARFLAGS@
|
||||||
|
LIB := @LIB@
|
||||||
|
LIBFLAGS := @LIBFLAGS@
|
||||||
NM := @NM@
|
NM := @NM@
|
||||||
NMFLAGS := @NMFLAGS@
|
NMFLAGS := @NMFLAGS@
|
||||||
STRIP := @STRIP@
|
STRIP := @STRIP@
|
||||||
@@ -619,10 +605,6 @@ INSTALL_NAME_TOOL := @INSTALL_NAME_TOOL@
|
|||||||
METAL := @METAL@
|
METAL := @METAL@
|
||||||
METALLIB := @METALLIB@
|
METALLIB := @METALLIB@
|
||||||
|
|
||||||
# Options to linker to specify a mapfile.
|
|
||||||
# (Note absence of := assignment, because we do not want to evaluate the macro body here)
|
|
||||||
SET_SHARED_LIBRARY_MAPFILE = @SET_SHARED_LIBRARY_MAPFILE@
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Options for generating debug symbols
|
# Options for generating debug symbols
|
||||||
COMPILE_WITH_DEBUG_SYMBOLS := @COMPILE_WITH_DEBUG_SYMBOLS@
|
COMPILE_WITH_DEBUG_SYMBOLS := @COMPILE_WITH_DEBUG_SYMBOLS@
|
||||||
@@ -813,7 +795,9 @@ TAR_SUPPORTS_TRANSFORM := @TAR_SUPPORTS_TRANSFORM@
|
|||||||
|
|
||||||
# Build setup
|
# Build setup
|
||||||
USE_EXTERNAL_LIBJPEG := @USE_EXTERNAL_LIBJPEG@
|
USE_EXTERNAL_LIBJPEG := @USE_EXTERNAL_LIBJPEG@
|
||||||
|
LIBJPEG_LIBS := @LIBJPEG_LIBS@
|
||||||
USE_EXTERNAL_LIBGIF := @USE_EXTERNAL_LIBGIF@
|
USE_EXTERNAL_LIBGIF := @USE_EXTERNAL_LIBGIF@
|
||||||
|
GIFLIB_LIBS := @GIFLIB_LIBS@
|
||||||
USE_EXTERNAL_LIBZ := @USE_EXTERNAL_LIBZ@
|
USE_EXTERNAL_LIBZ := @USE_EXTERNAL_LIBZ@
|
||||||
LIBZ_CFLAGS := @LIBZ_CFLAGS@
|
LIBZ_CFLAGS := @LIBZ_CFLAGS@
|
||||||
LIBZ_LIBS := @LIBZ_LIBS@
|
LIBZ_LIBS := @LIBZ_LIBS@
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2024, 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
|
||||||
@@ -35,25 +35,23 @@
|
|||||||
m4_include([toolchain_microsoft.m4])
|
m4_include([toolchain_microsoft.m4])
|
||||||
|
|
||||||
# All valid toolchains, regardless of platform (used by help.m4)
|
# All valid toolchains, regardless of platform (used by help.m4)
|
||||||
VALID_TOOLCHAINS_all="gcc clang xlc microsoft"
|
VALID_TOOLCHAINS_all="gcc clang microsoft"
|
||||||
|
|
||||||
# These toolchains are valid on different platforms
|
# These toolchains are valid on different platforms
|
||||||
VALID_TOOLCHAINS_linux="gcc clang"
|
VALID_TOOLCHAINS_linux="gcc clang"
|
||||||
VALID_TOOLCHAINS_macosx="clang"
|
VALID_TOOLCHAINS_macosx="clang"
|
||||||
VALID_TOOLCHAINS_aix="xlc clang"
|
VALID_TOOLCHAINS_aix="clang"
|
||||||
VALID_TOOLCHAINS_windows="microsoft"
|
VALID_TOOLCHAINS_windows="microsoft"
|
||||||
|
|
||||||
# Toolchain descriptions
|
# Toolchain descriptions
|
||||||
TOOLCHAIN_DESCRIPTION_clang="clang/LLVM"
|
TOOLCHAIN_DESCRIPTION_clang="clang/LLVM"
|
||||||
TOOLCHAIN_DESCRIPTION_gcc="GNU Compiler Collection"
|
TOOLCHAIN_DESCRIPTION_gcc="GNU Compiler Collection"
|
||||||
TOOLCHAIN_DESCRIPTION_microsoft="Microsoft Visual Studio"
|
TOOLCHAIN_DESCRIPTION_microsoft="Microsoft Visual Studio"
|
||||||
TOOLCHAIN_DESCRIPTION_xlc="IBM XL C/C++"
|
|
||||||
|
|
||||||
# Minimum supported versions, empty means unspecified
|
# Minimum supported versions, empty means unspecified
|
||||||
TOOLCHAIN_MINIMUM_VERSION_clang="3.5"
|
TOOLCHAIN_MINIMUM_VERSION_clang="13.0"
|
||||||
TOOLCHAIN_MINIMUM_VERSION_gcc="6.0"
|
TOOLCHAIN_MINIMUM_VERSION_gcc="10.0"
|
||||||
TOOLCHAIN_MINIMUM_VERSION_microsoft="19.28.0.0" # VS2019 16.8, aka MSVC 14.28
|
TOOLCHAIN_MINIMUM_VERSION_microsoft="19.28.0.0" # VS2019 16.8, aka MSVC 14.28
|
||||||
TOOLCHAIN_MINIMUM_VERSION_xlc="16.1.0.0011"
|
|
||||||
|
|
||||||
# Minimum supported linker versions, empty means unspecified
|
# Minimum supported linker versions, empty means unspecified
|
||||||
TOOLCHAIN_MINIMUM_LD_VERSION_gcc="2.18"
|
TOOLCHAIN_MINIMUM_LD_VERSION_gcc="2.18"
|
||||||
@@ -234,25 +232,6 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETERMINE_TOOLCHAIN_TYPE],
|
|||||||
# First toolchain type in the list is the default
|
# First toolchain type in the list is the default
|
||||||
DEFAULT_TOOLCHAIN=${VALID_TOOLCHAINS%% *}
|
DEFAULT_TOOLCHAIN=${VALID_TOOLCHAINS%% *}
|
||||||
|
|
||||||
# On AIX the default toolchain depends on the installed (found) compiler
|
|
||||||
# xlclang++ -> xlc toolchain
|
|
||||||
# ibm-clang++_r -> clang toolchain
|
|
||||||
# The compiler is searched on the PATH and TOOLCHAIN_PATH
|
|
||||||
# xlclang++ has precedence over ibm-clang++_r if both are installed
|
|
||||||
if test "x$OPENJDK_TARGET_OS" = xaix; then
|
|
||||||
DEFAULT_TOOLCHAIN="clang"
|
|
||||||
if test "x$TOOLCHAIN_PATH" != x; then
|
|
||||||
if test -e ${TOOLCHAIN_PATH}/xlclang++; then
|
|
||||||
DEFAULT_TOOLCHAIN="xlc"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
UTIL_LOOKUP_PROGS(XLCLANG_TEST_PATH, xlclang++)
|
|
||||||
if test "x$XLCLANG_TEST_PATH" != x; then
|
|
||||||
DEFAULT_TOOLCHAIN="xlc"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "x$with_toolchain_type" = xlist; then
|
if test "x$with_toolchain_type" = xlist; then
|
||||||
# List all toolchains
|
# List all toolchains
|
||||||
AC_MSG_NOTICE([The following toolchains are valid on this platform:])
|
AC_MSG_NOTICE([The following toolchains are valid on this platform:])
|
||||||
@@ -277,48 +256,13 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETERMINE_TOOLCHAIN_TYPE],
|
|||||||
fi
|
fi
|
||||||
AC_SUBST(TOOLCHAIN_TYPE)
|
AC_SUBST(TOOLCHAIN_TYPE)
|
||||||
|
|
||||||
# on AIX, check for xlclang++ on the PATH and TOOLCHAIN_PATH and use it if it is available
|
TOOLCHAIN_CC_BINARY_clang="ibm-clang_r clang"
|
||||||
if test "x$OPENJDK_TARGET_OS" = xaix; then
|
|
||||||
if test "x$TOOLCHAIN_PATH" != x; then
|
|
||||||
XLC_TEST_PATH=${TOOLCHAIN_PATH}/
|
|
||||||
fi
|
|
||||||
if test "x$TOOLCHAIN_TYPE" = xclang; then
|
|
||||||
TOOLCHAIN_DESCRIPTION_clang="IBM Open XL C/C++"
|
|
||||||
XLCLANG_VERSION_OUTPUT=`${XLC_TEST_PATH}ibm-clang++_r --version 2>&1 | $HEAD -n 1`
|
|
||||||
$ECHO "$XLCLANG_VERSION_OUTPUT" | $GREP "IBM Open XL C/C++ for AIX" > /dev/null
|
|
||||||
if test $? -eq 0; then
|
|
||||||
AC_MSG_NOTICE([ibm-clang++_r output: $XLCLANG_VERSION_OUTPUT])
|
|
||||||
else
|
|
||||||
AC_MSG_ERROR([ibm-clang++_r version output check failed, output: $XLCLANG_VERSION_OUTPUT])
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
XLCLANG_VERSION_OUTPUT=`${XLC_TEST_PATH}xlclang++ -qversion 2>&1 | $HEAD -n 1`
|
|
||||||
$ECHO "$XLCLANG_VERSION_OUTPUT" | $GREP "IBM XL C/C++ for AIX" > /dev/null
|
|
||||||
if test $? -eq 0; then
|
|
||||||
AC_MSG_NOTICE([xlclang++ output: $XLCLANG_VERSION_OUTPUT])
|
|
||||||
else
|
|
||||||
AC_MSG_ERROR([xlclang++ version output check failed, output: $XLCLANG_VERSION_OUTPUT])
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "x$OPENJDK_TARGET_OS" = xaix; then
|
|
||||||
TOOLCHAIN_CC_BINARY_clang="ibm-clang_r"
|
|
||||||
else
|
|
||||||
TOOLCHAIN_CC_BINARY_clang="clang"
|
|
||||||
fi
|
|
||||||
TOOLCHAIN_CC_BINARY_gcc="gcc"
|
TOOLCHAIN_CC_BINARY_gcc="gcc"
|
||||||
TOOLCHAIN_CC_BINARY_microsoft="cl"
|
TOOLCHAIN_CC_BINARY_microsoft="cl"
|
||||||
TOOLCHAIN_CC_BINARY_xlc="xlclang"
|
|
||||||
|
|
||||||
if test "x$OPENJDK_TARGET_OS" = xaix; then
|
TOOLCHAIN_CXX_BINARY_clang="ibm-clang++_r clang++"
|
||||||
TOOLCHAIN_CXX_BINARY_clang="ibm-clang++_r"
|
|
||||||
else
|
|
||||||
TOOLCHAIN_CXX_BINARY_clang="clang++"
|
|
||||||
fi
|
|
||||||
TOOLCHAIN_CXX_BINARY_gcc="g++"
|
TOOLCHAIN_CXX_BINARY_gcc="g++"
|
||||||
TOOLCHAIN_CXX_BINARY_microsoft="cl"
|
TOOLCHAIN_CXX_BINARY_microsoft="cl"
|
||||||
TOOLCHAIN_CXX_BINARY_xlc="xlclang++"
|
|
||||||
|
|
||||||
# Use indirect variable referencing
|
# Use indirect variable referencing
|
||||||
toolchain_var_name=TOOLCHAIN_DESCRIPTION_$TOOLCHAIN_TYPE
|
toolchain_var_name=TOOLCHAIN_DESCRIPTION_$TOOLCHAIN_TYPE
|
||||||
@@ -389,6 +333,10 @@ AC_DEFUN_ONCE([TOOLCHAIN_POST_DETECTION],
|
|||||||
# This is necessary since AC_PROG_CC defaults CFLAGS to "-g -O2"
|
# This is necessary since AC_PROG_CC defaults CFLAGS to "-g -O2"
|
||||||
CFLAGS="$ORG_CFLAGS"
|
CFLAGS="$ORG_CFLAGS"
|
||||||
CXXFLAGS="$ORG_CXXFLAGS"
|
CXXFLAGS="$ORG_CXXFLAGS"
|
||||||
|
|
||||||
|
# filter out some unwanted additions autoconf may add to CXX; we saw this on macOS with autoconf 2.72
|
||||||
|
UTIL_GET_NON_MATCHING_VALUES(cxx_filtered, $CXX, -std=c++11 -std=gnu++11)
|
||||||
|
CXX="$cxx_filtered"
|
||||||
])
|
])
|
||||||
|
|
||||||
# Check if a compiler is of the toolchain type we expect, and save the version
|
# Check if a compiler is of the toolchain type we expect, and save the version
|
||||||
@@ -404,25 +352,7 @@ AC_DEFUN([TOOLCHAIN_EXTRACT_COMPILER_VERSION],
|
|||||||
COMPILER=[$]$1
|
COMPILER=[$]$1
|
||||||
COMPILER_NAME=$2
|
COMPILER_NAME=$2
|
||||||
|
|
||||||
if test "x$TOOLCHAIN_TYPE" = xxlc; then
|
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||||
# xlc -qversion output typically looks like
|
|
||||||
# IBM XL C/C++ for AIX, V11.1 (5724-X13)
|
|
||||||
# Version: 11.01.0000.0015
|
|
||||||
COMPILER_VERSION_OUTPUT=`$COMPILER -qversion 2>&1`
|
|
||||||
# Check that this is likely to be the IBM XL C compiler.
|
|
||||||
$ECHO "$COMPILER_VERSION_OUTPUT" | $GREP "IBM XL C" > /dev/null
|
|
||||||
if test $? -ne 0; then
|
|
||||||
ALT_VERSION_OUTPUT=`$COMPILER --version 2>&1`
|
|
||||||
AC_MSG_NOTICE([The $COMPILER_NAME compiler (located as $COMPILER) does not seem to be the required $TOOLCHAIN_TYPE compiler.])
|
|
||||||
AC_MSG_NOTICE([The result from running with -qversion was: "$COMPILER_VERSION_OUTPUT"])
|
|
||||||
AC_MSG_NOTICE([The result from running with --version was: "$ALT_VERSION_OUTPUT"])
|
|
||||||
AC_MSG_ERROR([A $TOOLCHAIN_TYPE compiler is required. Try setting --with-tools-dir.])
|
|
||||||
fi
|
|
||||||
# Collapse compiler output into a single line
|
|
||||||
COMPILER_VERSION_STRING=`$ECHO $COMPILER_VERSION_OUTPUT`
|
|
||||||
COMPILER_VERSION_NUMBER=`$ECHO $COMPILER_VERSION_OUTPUT | \
|
|
||||||
$SED -e 's/^.*Version: \(@<:@1-9@:>@@<:@0-9.@:>@*\).*$/\1/'`
|
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
|
||||||
# There is no specific version flag, but all output starts with a version string.
|
# There is no specific version flag, but all output starts with a version string.
|
||||||
# First line typically looks something like:
|
# First line typically looks something like:
|
||||||
# Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.40219.01 for 80x86
|
# Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.40219.01 for 80x86
|
||||||
@@ -461,12 +391,22 @@ AC_DEFUN([TOOLCHAIN_EXTRACT_COMPILER_VERSION],
|
|||||||
$SED -e 's/^.* \(@<:@1-9@:>@<:@0-9@:>@*\.@<:@0-9.@:>@*\)@<:@^0-9.@:>@.*$/\1/'`
|
$SED -e 's/^.* \(@<:@1-9@:>@<:@0-9@:>@*\.@<:@0-9.@:>@*\)@<:@^0-9.@:>@.*$/\1/'`
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xclang; then
|
elif test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||||
# clang --version output typically looks like
|
# clang --version output typically looks like
|
||||||
# Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
|
# Apple clang version 15.0.0 (clang-1500.3.9.4)
|
||||||
# clang version 3.3 (tags/RELEASE_33/final)
|
# Target: arm64-apple-darwin23.2.0
|
||||||
|
# Thread model: posix
|
||||||
|
# InstalledDir: /Library/Developer/CommandLineTools/usr/bin
|
||||||
# or
|
# or
|
||||||
# Debian clang version 3.2-7ubuntu1 (tags/RELEASE_32/final) (based on LLVM 3.2)
|
# clang version 10.0.0-4ubuntu1
|
||||||
# Target: x86_64-pc-linux-gnu
|
# Target: x86_64-pc-linux-gnu
|
||||||
# Thread model: posix
|
# Thread model: posix
|
||||||
|
# InstalledDir: /usr/bin
|
||||||
|
# Target: x86_64-pc-linux-gnu
|
||||||
|
# Thread model: posix
|
||||||
|
# or
|
||||||
|
# IBM Open XL C/C++ for AIX 17.1.0 (5725-C72, 5765-J18), clang version 13.0.0
|
||||||
|
# Target: powerpc-ibm-aix7.2.0.0
|
||||||
|
# Thread model: posix
|
||||||
|
# InstalledDir: /opt/IBM/openxlC/17.1.0/bin
|
||||||
COMPILER_VERSION_OUTPUT=`$COMPILER --version 2>&1`
|
COMPILER_VERSION_OUTPUT=`$COMPILER --version 2>&1`
|
||||||
# Check that this is likely to be clang
|
# Check that this is likely to be clang
|
||||||
$ECHO "$COMPILER_VERSION_OUTPUT" | $GREP "clang" > /dev/null
|
$ECHO "$COMPILER_VERSION_OUTPUT" | $GREP "clang" > /dev/null
|
||||||
@@ -475,10 +415,12 @@ AC_DEFUN([TOOLCHAIN_EXTRACT_COMPILER_VERSION],
|
|||||||
AC_MSG_NOTICE([The result from running with --version was: "$COMPILER_VERSION_OUTPUT"])
|
AC_MSG_NOTICE([The result from running with --version was: "$COMPILER_VERSION_OUTPUT"])
|
||||||
AC_MSG_ERROR([A $TOOLCHAIN_TYPE compiler is required. Try setting --with-tools-dir.])
|
AC_MSG_ERROR([A $TOOLCHAIN_TYPE compiler is required. Try setting --with-tools-dir.])
|
||||||
fi
|
fi
|
||||||
# Collapse compiler output into a single line
|
# Remove "Thread model:" and further details from the version string, and
|
||||||
COMPILER_VERSION_STRING=`$ECHO $COMPILER_VERSION_OUTPUT`
|
# collapse into a single line
|
||||||
|
COMPILER_VERSION_STRING=`$ECHO $COMPILER_VERSION_OUTPUT | \
|
||||||
|
$SED -e 's/ *Thread model: .*//'`
|
||||||
COMPILER_VERSION_NUMBER=`$ECHO $COMPILER_VERSION_OUTPUT | \
|
COMPILER_VERSION_NUMBER=`$ECHO $COMPILER_VERSION_OUTPUT | \
|
||||||
$SED -e 's/^.* version \(@<:@1-9@:>@@<:@0-9.@:>@*\).*$/\1/'`
|
$SED -e 's/^.*clang version \(@<:@1-9@:>@@<:@0-9.@:>@*\).*$/\1/'`
|
||||||
else
|
else
|
||||||
AC_MSG_ERROR([Unknown toolchain type $TOOLCHAIN_TYPE.])
|
AC_MSG_ERROR([Unknown toolchain type $TOOLCHAIN_TYPE.])
|
||||||
fi
|
fi
|
||||||
@@ -571,10 +513,7 @@ AC_DEFUN([TOOLCHAIN_EXTRACT_LD_VERSION],
|
|||||||
LINKER=[$]$1
|
LINKER=[$]$1
|
||||||
LINKER_NAME="$2"
|
LINKER_NAME="$2"
|
||||||
|
|
||||||
if test "x$TOOLCHAIN_TYPE" = xxlc; then
|
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||||
LINKER_VERSION_STRING="Unknown"
|
|
||||||
LINKER_VERSION_NUMBER="0.0"
|
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
|
||||||
# There is no specific version flag, but all output starts with a version string.
|
# There is no specific version flag, but all output starts with a version string.
|
||||||
# First line typically looks something like:
|
# First line typically looks something like:
|
||||||
# Microsoft (R) Incremental Linker Version 12.00.31101.0
|
# Microsoft (R) Incremental Linker Version 12.00.31101.0
|
||||||
@@ -728,11 +667,10 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETECT_TOOLCHAIN_CORE],
|
|||||||
AC_SUBST(AS)
|
AC_SUBST(AS)
|
||||||
|
|
||||||
#
|
#
|
||||||
# Setup the archiver (AR)
|
# Setup tools for creating static libraries (AR/LIB)
|
||||||
#
|
#
|
||||||
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||||
# The corresponding ar tool is lib.exe (used to create static libraries)
|
UTIL_LOOKUP_TOOLCHAIN_PROGS(LIB, lib)
|
||||||
UTIL_LOOKUP_TOOLCHAIN_PROGS(AR, lib)
|
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xgcc; then
|
elif test "x$TOOLCHAIN_TYPE" = xgcc; then
|
||||||
UTIL_LOOKUP_TOOLCHAIN_PROGS(AR, ar gcc-ar)
|
UTIL_LOOKUP_TOOLCHAIN_PROGS(AR, ar gcc-ar)
|
||||||
else
|
else
|
||||||
@@ -997,6 +935,14 @@ AC_DEFUN_ONCE([TOOLCHAIN_MISC_CHECKS],
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
if test "x$OPENJDK_TARGET_OS" = xaix; then
|
||||||
|
# Make sure we have the Open XL version of clang on AIX
|
||||||
|
|
||||||
|
$ECHO "$CC_VERSION_STRING" | $GREP "IBM Open XL C/C++ for AIX" > /dev/null
|
||||||
|
if test $? -ne 0; then
|
||||||
|
AC_MSG_ERROR([ibm-clang_r version output check failed, output: $CC_VERSION_OUTPUT])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
|
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||||
# Check if linker has -z noexecstack.
|
# Check if linker has -z noexecstack.
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2024, 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
|
||||||
@@ -199,7 +199,7 @@ AC_DEFUN([UTIL_GET_NON_MATCHING_VALUES],
|
|||||||
if test -z "$legal_values"; then
|
if test -z "$legal_values"; then
|
||||||
$1="$2"
|
$1="$2"
|
||||||
else
|
else
|
||||||
result=`$GREP -Fvx "$legal_values" <<< "$values_to_check" | $GREP -v '^$'`
|
result=`$GREP -Fvx -- "$legal_values" <<< "$values_to_check" | $GREP -v '^$'`
|
||||||
$1=${result//$'\n'/ }
|
$1=${result//$'\n'/ }
|
||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
@@ -226,7 +226,7 @@ AC_DEFUN([UTIL_GET_MATCHING_VALUES],
|
|||||||
if test -z "$illegal_values"; then
|
if test -z "$illegal_values"; then
|
||||||
$1=""
|
$1=""
|
||||||
else
|
else
|
||||||
result=`$GREP -Fx "$illegal_values" <<< "$values_to_check" | $GREP -v '^$'`
|
result=`$GREP -Fx -- "$illegal_values" <<< "$values_to_check" | $GREP -v '^$'`
|
||||||
$1=${result//$'\n'/ }
|
$1=${result//$'\n'/ }
|
||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2018, 2024, 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
|
||||||
@@ -140,6 +140,10 @@ define SetupJdkLibraryBody
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($$($1_LINK_TYPE), C++)
|
||||||
|
$1_LIBS += $(LIBCXX)
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($$($1_SRC), )
|
ifeq ($$($1_SRC), )
|
||||||
ifneq ($$(MODULE), )
|
ifneq ($$(MODULE), )
|
||||||
$1_SRC := $$(call FindSrcDirsForLib, $$(MODULE), $$($1_NAME))
|
$1_SRC := $$(call FindSrcDirsForLib, $$(MODULE), $$($1_NAME))
|
||||||
@@ -183,12 +187,25 @@ define SetupJdkLibraryBody
|
|||||||
# Add the module specific java header dir
|
# Add the module specific java header dir
|
||||||
$1_SRC_HEADER_FLAGS += $$(addprefix -I, $$(call GetJavaHeaderDir, $$(MODULE)))
|
$1_SRC_HEADER_FLAGS += $$(addprefix -I, $$(call GetJavaHeaderDir, $$(MODULE)))
|
||||||
|
|
||||||
|
$1_JDK_LIBS += $$($1_JDK_LIBS_$$(OPENJDK_TARGET_OS))
|
||||||
|
$1_JDK_LIBS += $$($1_JDK_LIBS_$$(OPENJDK_TARGET_OS_TYPE))
|
||||||
|
# Prepend JDK libs before external libs
|
||||||
|
$1_LIBS := $$($1_JDK_LIBS) $$($1_LIBS)
|
||||||
|
|
||||||
ifneq ($$($1_EXTRA_HEADER_DIRS), )
|
ifneq ($$($1_EXTRA_HEADER_DIRS), )
|
||||||
$1_PROCESSED_EXTRA_HEADER_DIRS := $$(foreach dir, $$($1_EXTRA_HEADER_DIRS), \
|
$1_PROCESSED_EXTRA_HEADER_DIRS := $$(foreach dir, $$($1_EXTRA_HEADER_DIRS), \
|
||||||
$$(call ProcessDir, $$(dir)))
|
$$(call ProcessDir, $$(dir)))
|
||||||
$1_EXTRA_HEADER_FLAGS := $$(addprefix -I, $$($1_PROCESSED_EXTRA_HEADER_DIRS))
|
$1_EXTRA_HEADER_FLAGS := $$(addprefix -I, $$($1_PROCESSED_EXTRA_HEADER_DIRS))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifneq ($$($1_DEFAULT_CFLAGS), false)
|
||||||
|
# Set the default flags first to be able to override
|
||||||
|
$1_CFLAGS := $$(filter-out $$($1_CFLAGS_FILTER_OUT), $$(CFLAGS_JDKLIB)) $$($1_CFLAGS)
|
||||||
|
|
||||||
|
# Set the default flags first to be able to override
|
||||||
|
$1_CXXFLAGS := $$(filter-out $$($1_CXXFLAGS_FILTER_OUT), $$(CXXFLAGS_JDKLIB)) $$($1_CXXFLAGS)
|
||||||
|
endif
|
||||||
|
|
||||||
ifneq ($$($1_CFLAGS), )
|
ifneq ($$($1_CFLAGS), )
|
||||||
$1_CFLAGS += $$($1_SRC_HEADER_FLAGS) $$($1_EXTRA_HEADER_FLAGS)
|
$1_CFLAGS += $$($1_SRC_HEADER_FLAGS) $$($1_EXTRA_HEADER_FLAGS)
|
||||||
endif
|
endif
|
||||||
@@ -199,6 +216,18 @@ define SetupJdkLibraryBody
|
|||||||
$1_CFLAGS += $$($1_SRC_HEADER_FLAGS) $$($1_EXTRA_HEADER_FLAGS)
|
$1_CFLAGS += $$($1_SRC_HEADER_FLAGS) $$($1_EXTRA_HEADER_FLAGS)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifneq ($$($1_DEFAULT_LDFLAGS), false)
|
||||||
|
# Set the default flags first to be able to override
|
||||||
|
$1_LDFLAGS := $$(filter-out $$($1_LDFLAGS_FILTER_OUT), $$(LDFLAGS_JDKLIB)) $$($1_LDFLAGS)
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq ($$($1_LD_SET_ORIGIN), false)
|
||||||
|
$1_LDFLAGS += $$(call SET_SHARED_LIBRARY_ORIGIN)
|
||||||
|
endif
|
||||||
|
# APPEND_LDFLAGS, if it exists, must be set after the origin flags
|
||||||
|
# This is a workaround to keep existing behavior
|
||||||
|
$1_LDFLAGS += $$($1_APPEND_LDFLAGS)
|
||||||
|
|
||||||
# Since we reuse the rule name ($1), all our arguments will pass through.
|
# Since we reuse the rule name ($1), all our arguments will pass through.
|
||||||
# We lose in transparency, but gain in brevity in this call...
|
# We lose in transparency, but gain in brevity in this call...
|
||||||
$$(eval $$(call SetupNativeCompilation, $1, ))
|
$$(eval $$(call SetupNativeCompilation, $1, ))
|
||||||
@@ -233,6 +262,23 @@ define SetupJdkExecutableBody
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($$($1_LINK_TYPE), C++)
|
||||||
|
$1_LIBS += $(LIBCXX)
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($$($1_SRC), )
|
||||||
|
ifneq ($$(MODULE), )
|
||||||
|
$1_SRC := $$(call FindSrcDirsForComponent, $$(MODULE), $$($1_NAME))
|
||||||
|
else
|
||||||
|
$$(error Must specify SRC in a MODULE free context)
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
$1_SRC := $$(foreach dir, $$($1_SRC), $$(call ProcessDir, $$(dir)))
|
||||||
|
endif
|
||||||
|
ifneq ($$($1_EXTRA_SRC), )
|
||||||
|
$1_SRC += $$(foreach dir, $$($1_EXTRA_SRC), $$(call ProcessDir, $$(dir)))
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($$($1_VERSIONINFO_RESOURCE), )
|
ifeq ($$($1_VERSIONINFO_RESOURCE), )
|
||||||
$1_VERSIONINFO_RESOURCE := $$(GLOBAL_VERSION_INFO_RESOURCE)
|
$1_VERSIONINFO_RESOURCE := $$(GLOBAL_VERSION_INFO_RESOURCE)
|
||||||
endif
|
endif
|
||||||
@@ -245,6 +291,48 @@ define SetupJdkExecutableBody
|
|||||||
-I$(TOPDIR)/src/java.base/windows/native/common \
|
-I$(TOPDIR)/src/java.base/windows/native/common \
|
||||||
$$($1_EXTRA_RCFLAGS)
|
$$($1_EXTRA_RCFLAGS)
|
||||||
|
|
||||||
|
ifneq ($$($1_HEADERS_FROM_SRC), false)
|
||||||
|
$1_SRC_HEADER_FLAGS := $$(addprefix -I, $$(wildcard $$($1_SRC)))
|
||||||
|
endif
|
||||||
|
|
||||||
|
$1_JDK_LIBS += $$($1_JDK_LIBS_$$(OPENJDK_TARGET_OS))
|
||||||
|
$1_JDK_LIBS += $$($1_JDK_LIBS_$$(OPENJDK_TARGET_OS_TYPE))
|
||||||
|
# Prepend JDK libs before external libs
|
||||||
|
$1_LIBS := $$($1_JDK_LIBS) $$($1_LIBS)
|
||||||
|
|
||||||
|
ifneq ($$($1_EXTRA_HEADER_DIRS), )
|
||||||
|
$1_PROCESSED_EXTRA_HEADER_DIRS := $$(foreach dir, $$($1_EXTRA_HEADER_DIRS), \
|
||||||
|
$$(call ProcessDir, $$(dir)))
|
||||||
|
$1_EXTRA_HEADER_FLAGS := $$(addprefix -I, $$($1_PROCESSED_EXTRA_HEADER_DIRS))
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq ($$($1_DEFAULT_CFLAGS), false)
|
||||||
|
# Set the default flags first to be able to override
|
||||||
|
$1_CFLAGS := $$(filter-out $$($1_CFLAGS_FILTER_OUT), $$(CFLAGS_JDKEXE)) $$($1_CFLAGS)
|
||||||
|
|
||||||
|
# Set the default flags first to be able to override
|
||||||
|
$1_CXXFLAGS := $$(filter-out $$($1_CXXFLAGS_FILTER_OUT), $$(CXXFLAGS_JDKEXE)) $$($1_CXXFLAGS)
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq ($$($1_CFLAGS), )
|
||||||
|
$1_CFLAGS += $$($1_SRC_HEADER_FLAGS) $$($1_EXTRA_HEADER_FLAGS)
|
||||||
|
endif
|
||||||
|
ifneq ($$($1_CXXFLAGS), )
|
||||||
|
$1_CXXFLAGS += $$($1_SRC_HEADER_FLAGS) $$($1_EXTRA_HEADER_FLAGS)
|
||||||
|
endif
|
||||||
|
ifeq ($$($1_CFLAGS)$$($1_CXXFLAGS), )
|
||||||
|
$1_CFLAGS += $$($1_SRC_HEADER_FLAGS) $$($1_EXTRA_HEADER_FLAGS)
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq ($$($1_DEFAULT_LDFLAGS), false)
|
||||||
|
# Set the default flags first to be able to override
|
||||||
|
$1_LDFLAGS := $$(filter-out $$($1_LDFLAGS_FILTER_OUT), $$(LDFLAGS_JDKEXE)) $$($1_LDFLAGS)
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq ($$($1_LD_SET_ORIGIN), false)
|
||||||
|
$1_LDFLAGS += $$(call SET_EXECUTABLE_ORIGIN)
|
||||||
|
endif
|
||||||
|
|
||||||
# Since we reuse the rule name ($1), all our arguments will pass through.
|
# Since we reuse the rule name ($1), all our arguments will pass through.
|
||||||
# We lose in transparency, but gain in brevity in this call...
|
# We lose in transparency, but gain in brevity in this call...
|
||||||
$$(eval $$(call SetupNativeCompilation, $1))
|
$$(eval $$(call SetupNativeCompilation, $1))
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2022, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2024, 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
|
||||||
@@ -152,6 +152,10 @@ define SetupLogging
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifneq ($$(findstring $$(LOG_LEVEL), debug trace),)
|
||||||
|
SHELL := $$(SHELL) -x
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($$(LOG_LEVEL), trace)
|
ifeq ($$(LOG_LEVEL), trace)
|
||||||
SHELL_NO_RECURSE := $$(SHELL)
|
SHELL_NO_RECURSE := $$(SHELL)
|
||||||
# Shell redefinition trick inspired by http://www.cmcrossroads.com/ask-mr-make/6535-tracing-rule-execution-in-gnu-make
|
# Shell redefinition trick inspired by http://www.cmcrossroads.com/ask-mr-make/6535-tracing-rule-execution-in-gnu-make
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -56,21 +56,24 @@ define SetupTestFilesCompilationBody
|
|||||||
$$(error There are duplicate test file names for $1: $$($1_DUPLICATED_NAMES))
|
$$(error There are duplicate test file names for $1: $$($1_DUPLICATED_NAMES))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# Always include common test functionality
|
||||||
|
TEST_CFLAGS := -I$(TOPDIR)/test/lib/native
|
||||||
|
|
||||||
# The list to depend on starts out empty
|
# The list to depend on starts out empty
|
||||||
$1 :=
|
$1 :=
|
||||||
ifeq ($$($1_TYPE), LIBRARY)
|
ifeq ($$($1_TYPE), LIBRARY)
|
||||||
$1_PREFIX = lib
|
$1_PREFIX = lib
|
||||||
$1_OUTPUT_SUBDIR := lib
|
$1_OUTPUT_SUBDIR := lib
|
||||||
$1_BASE_CFLAGS := $(CFLAGS_JDKLIB)
|
$1_BASE_CFLAGS := $(CFLAGS_JDKLIB) $$(TEST_CFLAGS)
|
||||||
$1_BASE_CXXFLAGS := $(CXXFLAGS_JDKLIB)
|
$1_BASE_CXXFLAGS := $(CXXFLAGS_JDKLIB) $$(TEST_CFLAGS)
|
||||||
$1_LDFLAGS := $(LDFLAGS_JDKLIB) $$(call SET_SHARED_LIBRARY_ORIGIN)
|
$1_LDFLAGS := $(LDFLAGS_JDKLIB) $$(call SET_SHARED_LIBRARY_ORIGIN)
|
||||||
$1_COMPILATION_TYPE := LIBRARY
|
$1_COMPILATION_TYPE := LIBRARY
|
||||||
$1_LOG_TYPE := library
|
$1_LOG_TYPE := library
|
||||||
else ifeq ($$($1_TYPE), PROGRAM)
|
else ifeq ($$($1_TYPE), PROGRAM)
|
||||||
$1_PREFIX = exe
|
$1_PREFIX = exe
|
||||||
$1_OUTPUT_SUBDIR := bin
|
$1_OUTPUT_SUBDIR := bin
|
||||||
$1_BASE_CFLAGS := $(CFLAGS_JDKEXE)
|
$1_BASE_CFLAGS := $(CFLAGS_JDKEXE) $$(TEST_CFLAGS)
|
||||||
$1_BASE_CXXFLAGS := $(CXXFLAGS_JDKEXE)
|
$1_BASE_CXXFLAGS := $(CXXFLAGS_JDKEXE) $$(TEST_CFLAGS)
|
||||||
$1_LDFLAGS := $(LDFLAGS_JDKEXE) $(LDFLAGS_TESTEXE)
|
$1_LDFLAGS := $(LDFLAGS_JDKEXE) $(LDFLAGS_TESTEXE)
|
||||||
$1_COMPILATION_TYPE := EXECUTABLE
|
$1_COMPILATION_TYPE := EXECUTABLE
|
||||||
$1_LOG_TYPE := executable
|
$1_LOG_TYPE := executable
|
||||||
@@ -103,6 +106,7 @@ define SetupTestFilesCompilationBody
|
|||||||
$$(eval $$(call SetupNativeCompilation, BUILD_TEST_$$(name), \
|
$$(eval $$(call SetupNativeCompilation, BUILD_TEST_$$(name), \
|
||||||
NAME := $$(unprefixed_name), \
|
NAME := $$(unprefixed_name), \
|
||||||
TYPE := $$($1_COMPILATION_TYPE), \
|
TYPE := $$($1_COMPILATION_TYPE), \
|
||||||
|
LINK_TYPE := $(if $$(filter %.cpp, $$(file)), C++, C), \
|
||||||
EXTRA_FILES := $$(file) $$($1_EXTRA_FILES), \
|
EXTRA_FILES := $$(file) $$($1_EXTRA_FILES), \
|
||||||
OBJECT_DIR := $$($1_OUTPUT_DIR)/support/$$(name), \
|
OBJECT_DIR := $$($1_OUTPUT_DIR)/support/$$(name), \
|
||||||
OUTPUT_DIR := $$($1_OUTPUT_DIR)/$$($1_OUTPUT_SUBDIR), \
|
OUTPUT_DIR := $$($1_OUTPUT_DIR)/$$($1_OUTPUT_SUBDIR), \
|
||||||
@@ -113,7 +117,6 @@ define SetupTestFilesCompilationBody
|
|||||||
DISABLED_WARNINGS_clang := undef format-nonliteral \
|
DISABLED_WARNINGS_clang := undef format-nonliteral \
|
||||||
missing-field-initializers sometimes-uninitialized, \
|
missing-field-initializers sometimes-uninitialized, \
|
||||||
LIBS := $$($1_LIBS_$$(name)), \
|
LIBS := $$($1_LIBS_$$(name)), \
|
||||||
TOOLCHAIN := $(if $$(filter %.cpp, $$(file)), TOOLCHAIN_LINK_CXX, TOOLCHAIN_DEFAULT), \
|
|
||||||
OPTIMIZATION := $$(if $$($1_OPTIMIZATION_$$(name)),$$($1_OPTIMIZATION_$$(name)),LOW), \
|
OPTIMIZATION := $$(if $$($1_OPTIMIZATION_$$(name)),$$($1_OPTIMIZATION_$$(name)),LOW), \
|
||||||
COPY_DEBUG_SYMBOLS := $$($1_COPY_DEBUG_SYMBOLS), \
|
COPY_DEBUG_SYMBOLS := $$($1_COPY_DEBUG_SYMBOLS), \
|
||||||
STRIP_SYMBOLS := $$(if $$($1_STRIP_SYMBOLS_$$(name)),$$($1_STRIP_SYMBOLS_$$(name)),false), \
|
STRIP_SYMBOLS := $$(if $$($1_STRIP_SYMBOLS_$$(name)),$$($1_STRIP_SYMBOLS_$$(name)),false), \
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2024, 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,21 +28,6 @@ include Modules.gmk
|
|||||||
include ProcessMarkdown.gmk
|
include ProcessMarkdown.gmk
|
||||||
include ToolsJdk.gmk
|
include ToolsJdk.gmk
|
||||||
|
|
||||||
# Tell the compiler not to export any functions unless declared so in
|
|
||||||
# the source code. On Windows, this is the default and cannot be changed.
|
|
||||||
# On Mac, we have always exported all symbols, probably due to oversight
|
|
||||||
# and/or misunderstanding. To emulate this, don't hide any symbols
|
|
||||||
# by default.
|
|
||||||
# Also provide an override for non-conformant libraries.
|
|
||||||
ifeq ($(TOOLCHAIN_TYPE), gcc)
|
|
||||||
LAUNCHER_CFLAGS += -fvisibility=hidden
|
|
||||||
LDFLAGS_JDKEXE += -Wl,--exclude-libs,ALL
|
|
||||||
else ifeq ($(TOOLCHAIN_TYPE), clang)
|
|
||||||
LAUNCHER_CFLAGS += -fvisibility=hidden
|
|
||||||
else ifeq ($(TOOLCHAIN_TYPE), xlc)
|
|
||||||
LAUNCHER_CFLAGS += -qvisibility=hidden
|
|
||||||
endif
|
|
||||||
|
|
||||||
LAUNCHER_SRC := $(TOPDIR)/src/java.base/share/native/launcher
|
LAUNCHER_SRC := $(TOPDIR)/src/java.base/share/native/launcher
|
||||||
LAUNCHER_CFLAGS += -I$(TOPDIR)/src/java.base/share/native/launcher \
|
LAUNCHER_CFLAGS += -I$(TOPDIR)/src/java.base/share/native/launcher \
|
||||||
-I$(TOPDIR)/src/java.base/share/native/libjli \
|
-I$(TOPDIR)/src/java.base/share/native/libjli \
|
||||||
@@ -137,10 +122,6 @@ define SetupBuildLauncherBody
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(USE_EXTERNAL_LIBZ), true)
|
|
||||||
$1_LIBS += -lz
|
|
||||||
endif
|
|
||||||
|
|
||||||
$1_WINDOWS_JLI_LIB := $(call FindStaticLib, java.base, jli, /libjli)
|
$1_WINDOWS_JLI_LIB := $(call FindStaticLib, java.base, jli, /libjli)
|
||||||
|
|
||||||
$1_EXTRA_FILES := $(LAUNCHER_SRC)/main.c
|
$1_EXTRA_FILES := $(LAUNCHER_SRC)/main.c
|
||||||
@@ -157,29 +138,32 @@ define SetupBuildLauncherBody
|
|||||||
NAME := $1, \
|
NAME := $1, \
|
||||||
EXTRA_FILES := $$($1_EXTRA_FILES), \
|
EXTRA_FILES := $$($1_EXTRA_FILES), \
|
||||||
OPTIMIZATION := $$($1_OPTIMIZATION), \
|
OPTIMIZATION := $$($1_OPTIMIZATION), \
|
||||||
CFLAGS := $$(CFLAGS_JDKEXE) \
|
CFLAGS := $$(LAUNCHER_CFLAGS) \
|
||||||
$$(LAUNCHER_CFLAGS) \
|
|
||||||
$$(VERSION_CFLAGS) \
|
$$(VERSION_CFLAGS) \
|
||||||
-DLAUNCHER_NAME='"$$(LAUNCHER_NAME)"' \
|
-DLAUNCHER_NAME='"$$(LAUNCHER_NAME)"' \
|
||||||
-DPROGNAME='"$1"' \
|
-DPROGNAME='"$1"' \
|
||||||
$$($1_CFLAGS), \
|
$$($1_CFLAGS), \
|
||||||
CFLAGS_windows := $$($1_CFLAGS_windows), \
|
CFLAGS_windows := $$($1_CFLAGS_windows), \
|
||||||
DISABLED_WARNINGS_gcc := unused-function, \
|
DISABLED_WARNINGS_gcc := unused-function, \
|
||||||
LDFLAGS := $$(LDFLAGS_JDKEXE) \
|
LDFLAGS := $$($1_LDFLAGS), \
|
||||||
$$(call SET_EXECUTABLE_ORIGIN) \
|
|
||||||
$$($1_LDFLAGS), \
|
|
||||||
LDFLAGS_linux := $$(call SET_EXECUTABLE_ORIGIN,/../lib) \
|
LDFLAGS_linux := $$(call SET_EXECUTABLE_ORIGIN,/../lib) \
|
||||||
-L$(call FindLibDirForModule, java.base), \
|
-L$(call FindLibDirForModule, java.base), \
|
||||||
LDFLAGS_macosx := $$(call SET_EXECUTABLE_ORIGIN,/../lib) \
|
LDFLAGS_macosx := $$(call SET_EXECUTABLE_ORIGIN,/../lib) \
|
||||||
-L$(call FindLibDirForModule, java.base), \
|
-L$(call FindLibDirForModule, java.base), \
|
||||||
LDFLAGS_aix := -L$(SUPPORT_OUTPUTDIR)/native/java.base, \
|
LDFLAGS_aix := -L$(SUPPORT_OUTPUTDIR)/native/java.base, \
|
||||||
LIBS := $(JDKEXE_LIBS) $$($1_LIBS), \
|
JDK_LIBS_linux := -ljli, \
|
||||||
LIBS_linux := -ljli -lpthread $(LIBDL), \
|
JDK_LIBS_macosx := -ljli, \
|
||||||
LIBS_macosx := -ljli -framework Cocoa -framework Security \
|
JDK_LIBS_aix := -ljli_static, \
|
||||||
-framework ApplicationServices, \
|
JDK_LIBS_windows := \
|
||||||
LIBS_aix := -ljli_static, \
|
$(SUPPORT_OUTPUTDIR)/native/java.base/libjava/java.lib \
|
||||||
LIBS_windows := $$($1_WINDOWS_JLI_LIB) \
|
$$($1_WINDOWS_JLI_LIB), \
|
||||||
$(SUPPORT_OUTPUTDIR)/native/java.base/libjava/java.lib, \
|
LIBS := $$($1_LIBS), \
|
||||||
|
LIBS_unix := $(LIBZ_LIBS), \
|
||||||
|
LIBS_linux := $(LIBDL) -lpthread, \
|
||||||
|
LIBS_macosx := \
|
||||||
|
-framework ApplicationServices \
|
||||||
|
-framework Cocoa \
|
||||||
|
-framework Security, \
|
||||||
OUTPUT_DIR := $$($1_OUTPUT_DIR), \
|
OUTPUT_DIR := $$($1_OUTPUT_DIR), \
|
||||||
VERSIONINFO_RESOURCE := $$($1_VERSION_INFO_RESOURCE), \
|
VERSIONINFO_RESOURCE := $$($1_VERSION_INFO_RESOURCE), \
|
||||||
EXTRA_RCFLAGS := $$($1_EXTRA_RCFLAGS), \
|
EXTRA_RCFLAGS := $$($1_EXTRA_RCFLAGS), \
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2022, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2024, 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,24 +31,6 @@ include JdkNativeCompilation.gmk
|
|||||||
# elegant solution to this.
|
# elegant solution to this.
|
||||||
WIN_JAVA_LIB := $(SUPPORT_OUTPUTDIR)/native/java.base/libjava/java.lib
|
WIN_JAVA_LIB := $(SUPPORT_OUTPUTDIR)/native/java.base/libjava/java.lib
|
||||||
|
|
||||||
# Tell the compiler not to export any functions unless declared so in
|
|
||||||
# the source code. On Windows, this is the default and cannot be changed.
|
|
||||||
# On Mac, we have always exported all symbols, probably due to oversight
|
|
||||||
# and/or misunderstanding. To emulate this, don't hide any symbols
|
|
||||||
# by default.
|
|
||||||
# Also provide an override for non-conformant libraries.
|
|
||||||
ifeq ($(TOOLCHAIN_TYPE), gcc)
|
|
||||||
CFLAGS_JDKLIB += -fvisibility=hidden
|
|
||||||
CXXFLAGS_JDKLIB += -fvisibility=hidden
|
|
||||||
LDFLAGS_JDKLIB += -Wl,--exclude-libs,ALL
|
|
||||||
else ifeq ($(TOOLCHAIN_TYPE), clang)
|
|
||||||
CFLAGS_JDKLIB += -fvisibility=hidden
|
|
||||||
CXXFLAGS_JDKLIB += -fvisibility=hidden
|
|
||||||
else ifeq ($(TOOLCHAIN_TYPE), xlc)
|
|
||||||
CFLAGS_JDKLIB += -qvisibility=hidden
|
|
||||||
CXXFLAGS_JDKLIB += -qvisibility=hidden
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Put the libraries here.
|
# Put the libraries here.
|
||||||
INSTALL_LIBRARIES_HERE := $(call FindLibDirForModule, $(MODULE))
|
INSTALL_LIBRARIES_HERE := $(call FindLibDirForModule, $(MODULE))
|
||||||
|
|
||||||
|
|||||||
351
make/common/native/CompileFile.gmk
Normal file
351
make/common/native/CompileFile.gmk
Normal file
@@ -0,0 +1,351 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2011, 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# This file contains functionality related to compiling a single native source
|
||||||
|
# file (C, C++ or Objective-C) into an object file. It also harbours related
|
||||||
|
# functionality for generating PCH (precompiled headers) and Windows resource
|
||||||
|
# files.
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Creates a recipe that creates a compile_commands.json fragment. Remove any
|
||||||
|
# occurrences of FIXPATH programs from the command to show the actual invocation.
|
||||||
|
#
|
||||||
|
# Param 1: Name of file to create
|
||||||
|
# Param 2: Working directory
|
||||||
|
# Param 3: Source file
|
||||||
|
# Param 4: Compile command
|
||||||
|
################################################################################
|
||||||
|
define WriteCompileCommandsFragment
|
||||||
|
$(call LogInfo, Creating compile commands fragment for $(notdir $3))
|
||||||
|
$(call MakeDir, $(dir $1))
|
||||||
|
$(call WriteFile,{ \
|
||||||
|
"directory": "$(strip $(call FixPath, $2))"$(COMMA) \
|
||||||
|
"file": "$(strip $(call FixPath, $3))"$(COMMA) \
|
||||||
|
"command": "$(strip $(subst $(DQUOTE),\$(DQUOTE),$(subst \,\\,\
|
||||||
|
$(subst $(FIXPATH),,$(call FixPath, $4)))))" \
|
||||||
|
}$(COMMA), \
|
||||||
|
$1)
|
||||||
|
endef
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Extensions of files handled by this macro.
|
||||||
|
NATIVE_SOURCE_EXTENSIONS := %.S %.c %.cpp %.cc %.m %.mm
|
||||||
|
|
||||||
|
# Replaces native source extensions with the object file extension in a string.
|
||||||
|
# Param 1: the string containing source file names with extensions
|
||||||
|
# The surrounding strip is needed to keep additional whitespace out
|
||||||
|
define replace_with_obj_extension
|
||||||
|
$(strip \
|
||||||
|
$(foreach extension, $(NATIVE_SOURCE_EXTENSIONS), \
|
||||||
|
$(patsubst $(extension),%$(OBJ_SUFFIX), $(filter $(extension), $1))) \
|
||||||
|
)
|
||||||
|
endef
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# This pattern is used to transform the output of the microsoft CL compiler
|
||||||
|
# into a make syntax dependency file (.d)
|
||||||
|
WINDOWS_SHOWINCLUDE_SED_PATTERN := \
|
||||||
|
-e '/^Note: including file:/!d' \
|
||||||
|
-e 's|Note: including file: *||' \
|
||||||
|
-e 's|\r||g' \
|
||||||
|
-e 's|\\|/|g' \
|
||||||
|
-e 's|^\([a-zA-Z]\):|$(WINENV_PREFIX)/\1|g' \
|
||||||
|
-e '\|$(TOPDIR)|I !d' \
|
||||||
|
-e 's|$$$$| \\|g' \
|
||||||
|
#
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# This pattern is used to transform a dependency file (.d) to a list
|
||||||
|
# of make targets for dependent files (.d.targets)
|
||||||
|
DEPENDENCY_TARGET_SED_PATTERN := \
|
||||||
|
-e 's/\#.*//' \
|
||||||
|
-e 's/^[^:]*: *//' \
|
||||||
|
-e 's/ *\\$$$$//' \
|
||||||
|
-e 's/^[ ]*//' \
|
||||||
|
-e '/^$$$$/ d' \
|
||||||
|
-e 's/$$$$/ :/' \
|
||||||
|
#
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Create the recipe needed to compile a single native source file.
|
||||||
|
#
|
||||||
|
# Parameter 1 is the name of the rule, based on the name of the library/
|
||||||
|
# program being build and the name of the source code file, e.g.
|
||||||
|
# BUILD_LIBFOO_fooMain.cpp.
|
||||||
|
#
|
||||||
|
# Remaining parameters are named arguments:
|
||||||
|
# FILE - The full path of the source file to compiler
|
||||||
|
# BASE - The name of the rule for the entire binary to build ($1)
|
||||||
|
#
|
||||||
|
CreateCompiledNativeFile = $(NamedParamsMacroTemplate)
|
||||||
|
define CreateCompiledNativeFileBody
|
||||||
|
$1_FILENAME := $$(notdir $$($1_FILE))
|
||||||
|
|
||||||
|
# The target file to be generated.
|
||||||
|
$1_OBJ := $$($$($1_BASE)_OBJECT_DIR)/$$(call replace_with_obj_extension, \
|
||||||
|
$$($1_FILENAME))
|
||||||
|
|
||||||
|
# Generate the corresponding compile_commands.json fragment.
|
||||||
|
$1_OBJ_JSON = $$(MAKESUPPORT_OUTPUTDIR)/compile-commands/$$(subst /,_,$$(subst \
|
||||||
|
$$(OUTPUTDIR)/,,$$($1_OBJ))).json
|
||||||
|
$$($1_BASE)_ALL_OBJS_JSON += $$($1_OBJ_JSON)
|
||||||
|
|
||||||
|
# Only continue if this object file hasn't been processed already. This lets
|
||||||
|
# the first found source file override any other with the same name.
|
||||||
|
ifeq ($$($1_OBJ_PROCESSED), )
|
||||||
|
$1_OBJ_PROCESSED := true
|
||||||
|
# This is the definite source file to use for $1_FILENAME.
|
||||||
|
$1_SRC_FILE := $$($1_FILE)
|
||||||
|
|
||||||
|
$$(eval $$(call SetupCompileFileFlags,$1,$$($1_BASE)))
|
||||||
|
|
||||||
|
ifneq ($$(filter %.c, $$($1_FILENAME)), )
|
||||||
|
# Compile as a C file
|
||||||
|
$1_CFLAGS += $$($1_WARNINGS_FLAGS)
|
||||||
|
$1_FLAGS := $(CFLAGS_CCACHE) $$($1_USE_PCH_FLAGS) $$($1_BASE_CFLAGS) \
|
||||||
|
$$($1_OPT_CFLAGS) $$($1_CFLAGS) -c
|
||||||
|
$1_COMPILER := $$($$($1_BASE)_CC)
|
||||||
|
else ifneq ($$(filter %.m, $$($1_FILENAME)), )
|
||||||
|
# Compile as an Objective-C file
|
||||||
|
$1_CFLAGS += $$($1_WARNINGS_FLAGS)
|
||||||
|
$1_FLAGS := -x objective-c $(CFLAGS_CCACHE) $$($1_USE_PCH_FLAGS) \
|
||||||
|
$$($1_BASE_CFLAGS) $$($1_OPT_CFLAGS) $$($1_CFLAGS) -c
|
||||||
|
$1_COMPILER := $$($$($1_BASE)_CC)
|
||||||
|
else ifneq ($$(filter %.S, $$($1_FILENAME)), )
|
||||||
|
# Compile as preprocessed assembler file
|
||||||
|
$1_FLAGS := $(BASIC_ASFLAGS) $$($1_BASE_ASFLAGS)
|
||||||
|
$1_COMPILER := $(AS)
|
||||||
|
|
||||||
|
# gcc or clang assembly files must contain an appropriate relative .file
|
||||||
|
# path for reproducible builds.
|
||||||
|
ifneq ($(findstring $(TOOLCHAIN_TYPE), gcc clang), )
|
||||||
|
# If no absolute paths allowed, work out relative source file path
|
||||||
|
# for assembly .file substitution, otherwise use full file path
|
||||||
|
ifeq ($(ALLOW_ABSOLUTE_PATHS_IN_OUTPUT), false)
|
||||||
|
$1_REL_ASM_SRC := $$(call RelativePath, $$($1_FILE), $(WORKSPACE_ROOT))
|
||||||
|
else
|
||||||
|
$1_REL_ASM_SRC := $$($1_FILE)
|
||||||
|
endif
|
||||||
|
$1_FLAGS := $$($1_FLAGS) -DASSEMBLY_SRC_FILE='"$$($1_REL_ASM_SRC)"' \
|
||||||
|
-include $(TOPDIR)/make/data/autoheaders/assemblyprefix.h
|
||||||
|
endif
|
||||||
|
else ifneq ($$(filter %.cpp %.cc %.mm, $$($1_FILENAME)), )
|
||||||
|
# Compile as a C++ or Objective-C++ file
|
||||||
|
$1_CXXFLAGS += $$($1_WARNINGS_FLAGS)
|
||||||
|
$1_FLAGS := $(CFLAGS_CCACHE) $$($1_USE_PCH_FLAGS) $$($1_BASE_CXXFLAGS) \
|
||||||
|
$$($1_OPT_CXXFLAGS) $$($1_CXXFLAGS) -c
|
||||||
|
$1_COMPILER := $$($$($1_BASE)_CXX)
|
||||||
|
else
|
||||||
|
$$(error Internal error in NativeCompilation.gmk: no compiler for file $$($1_FILENAME))
|
||||||
|
endif
|
||||||
|
|
||||||
|
# And this is the dependency file for this obj file.
|
||||||
|
$1_DEPS_FILE := $$(patsubst %$(OBJ_SUFFIX),%.d,$$($1_OBJ))
|
||||||
|
# The dependency target file lists all dependencies as empty targets to
|
||||||
|
# avoid make error "No rule to make target" for removed files
|
||||||
|
$1_DEPS_TARGETS_FILE := $$(patsubst %$(OBJ_SUFFIX),%.d.targets,$$($1_OBJ))
|
||||||
|
|
||||||
|
# Only try to load individual dependency information files if the global
|
||||||
|
# file hasn't been loaded (could happen if make was interrupted).
|
||||||
|
ifneq ($$($$($1_BASE)_DEPS_FILE_LOADED), true)
|
||||||
|
# Include previously generated dependency information. (if it exists)
|
||||||
|
-include $$($1_DEPS_FILE)
|
||||||
|
-include $$($1_DEPS_TARGETS_FILE)
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq ($$(strip $$($1_CFLAGS) $$($1_CXXFLAGS) $$($1_OPTIMIZATION)), )
|
||||||
|
$1_VARDEPS := $$($1_CFLAGS) $$($1_CXXFLAGS) $$($1_OPTIMIZATION)
|
||||||
|
$1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, $$($1_OBJ).vardeps)
|
||||||
|
endif
|
||||||
|
|
||||||
|
$1_OBJ_DEPS := $$($1_SRC_FILE) $$($$($1_BASE)_COMPILE_VARDEPS_FILE) \
|
||||||
|
$$($$($1_BASE)_EXTRA_DEPS) $$($1_VARDEPS_FILE)
|
||||||
|
$1_COMPILE_OPTIONS := $$($1_FLAGS) $(CC_OUT_OPTION)$$($1_OBJ) $$($1_SRC_FILE)
|
||||||
|
# For reproducible builds with gcc and clang ensure random symbol generation is
|
||||||
|
# seeded deterministically
|
||||||
|
ifneq ($(findstring $(TOOLCHAIN_TYPE), gcc clang), )
|
||||||
|
$1_COMPILE_OPTIONS += -frandom-seed="$$($1_FILENAME)"
|
||||||
|
endif
|
||||||
|
|
||||||
|
$$($1_OBJ_JSON): $$($1_OBJ_DEPS)
|
||||||
|
$$(call WriteCompileCommandsFragment, $$@, $$(PWD), $$($1_SRC_FILE), \
|
||||||
|
$$($1_COMPILER) $$($1_COMPILE_OPTIONS))
|
||||||
|
|
||||||
|
$$($1_OBJ): $$($1_OBJ_DEPS) | $$($$($1_BASE)_BUILD_INFO)
|
||||||
|
$$(call LogInfo, Compiling $$($1_FILENAME) (for $$($$($1_BASE)_BASENAME)))
|
||||||
|
$$(call MakeDir, $$(@D))
|
||||||
|
ifneq ($(TOOLCHAIN_TYPE), microsoft)
|
||||||
|
$$(call ExecuteWithLog, $$@, $$(call MakeCommandRelative, \
|
||||||
|
$$($1_COMPILER) $$(GENDEPS_FLAGS) \
|
||||||
|
$$(addsuffix .tmp, $$($1_DEPS_FILE)) \
|
||||||
|
$$($1_COMPILE_OPTIONS)))
|
||||||
|
ifneq ($$($1_DEPS_FILE), )
|
||||||
|
$$(call fix-deps-file, $$($1_DEPS_FILE))
|
||||||
|
# Create a dependency target file from the dependency file.
|
||||||
|
# Solution suggested by:
|
||||||
|
# http://make.mad-scientist.net/papers/advanced-auto-dependency-generation/
|
||||||
|
$(SED) $(DEPENDENCY_TARGET_SED_PATTERN) $$($1_DEPS_FILE) \
|
||||||
|
> $$($1_DEPS_TARGETS_FILE)
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
# The Visual Studio compiler lacks a feature for generating make
|
||||||
|
# dependencies, but by setting -showIncludes, all included files are
|
||||||
|
# printed. These are filtered out and parsed into make dependences.
|
||||||
|
#
|
||||||
|
# Keep as much as possible on one execution line for best performance
|
||||||
|
# on Windows. No need to save exit code from compilation since
|
||||||
|
# pipefail is always active on Windows.
|
||||||
|
ifeq ($$(filter %.S, $$($1_FILENAME)), )
|
||||||
|
$$(call ExecuteWithLog, $$@, $$(call MakeCommandRelative, \
|
||||||
|
$$($1_COMPILER) -showIncludes $$($1_COMPILE_OPTIONS))) \
|
||||||
|
| $(TR) -d '\r' | $(GREP) -v -e "^Note: including file:" \
|
||||||
|
-e "^$$($1_FILENAME)$$$$" || test "$$$$?" = "1" ; \
|
||||||
|
$(ECHO) $$@: \\ > $$($1_DEPS_FILE) ; \
|
||||||
|
$(SED) $(WINDOWS_SHOWINCLUDE_SED_PATTERN) $$($1_OBJ).log \
|
||||||
|
| $(SORT) -u >> $$($1_DEPS_FILE) ; \
|
||||||
|
$(ECHO) >> $$($1_DEPS_FILE) ; \
|
||||||
|
$(SED) $(DEPENDENCY_TARGET_SED_PATTERN) $$($1_DEPS_FILE) > $$($1_DEPS_TARGETS_FILE)
|
||||||
|
else
|
||||||
|
# For assembler calls just create empty dependency lists
|
||||||
|
$$(call ExecuteWithLog, $$@, $$(call MakeCommandRelative, \
|
||||||
|
$$($1_COMPILER) $$($1_FLAGS) \
|
||||||
|
$(CC_OUT_OPTION)$$($1_OBJ) -Ta $$($1_SRC_FILE))) \
|
||||||
|
| $(TR) -d '\r' | $(GREP) -v -e "Assembling:" || test "$$$$?" = "1" ; \
|
||||||
|
$(ECHO) > $$($1_DEPS_FILE) ; \
|
||||||
|
$(ECHO) > $$($1_DEPS_TARGETS_FILE)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endef
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
define CreatePrecompiledHeader
|
||||||
|
ifneq ($$($1_PRECOMPILED_HEADER), )
|
||||||
|
ifeq ($(USE_PRECOMPILED_HEADER), true)
|
||||||
|
ifeq ($(TOOLCHAIN_TYPE), microsoft)
|
||||||
|
$1_PCH_FILE := $$($1_OBJECT_DIR)/$1.pch
|
||||||
|
$1_GENERATED_PCH_SRC := $$($1_OBJECT_DIR)/$1_pch.cpp
|
||||||
|
$1_GENERATED_PCH_OBJ := $$($1_OBJECT_DIR)/$1_pch$(OBJ_SUFFIX)
|
||||||
|
|
||||||
|
$$(eval $$(call CreateCompiledNativeFile, $1_$$(notdir $$($1_GENERATED_PCH_SRC)), \
|
||||||
|
FILE := $$($1_GENERATED_PCH_SRC), \
|
||||||
|
BASE := $1, \
|
||||||
|
EXTRA_CXXFLAGS := -Fp$$($1_PCH_FILE) -Yc$$(notdir $$($1_PRECOMPILED_HEADER)), \
|
||||||
|
))
|
||||||
|
|
||||||
|
$1_USE_PCH_FLAGS := \
|
||||||
|
-Fp$$($1_PCH_FILE) -Yu$$(notdir $$($1_PRECOMPILED_HEADER))
|
||||||
|
|
||||||
|
$$($1_ALL_OBJS): $$($1_GENERATED_PCH_OBJ)
|
||||||
|
|
||||||
|
# Explicitly add the pch obj file first to ease comparing to old
|
||||||
|
# hotspot build.
|
||||||
|
$1_ALL_OBJS := $$($1_GENERATED_PCH_OBJ) $$($1_ALL_OBJS)
|
||||||
|
|
||||||
|
$$($1_GENERATED_PCH_SRC):
|
||||||
|
$(ECHO) "#include \"$$(notdir $$($1_PRECOMPILED_HEADER))\"" > $$@
|
||||||
|
|
||||||
|
else ifneq ($(findstring $(TOOLCHAIN_TYPE), gcc clang), )
|
||||||
|
ifeq ($(TOOLCHAIN_TYPE), gcc)
|
||||||
|
$1_PCH_FILE := $$($1_OBJECT_DIR)/precompiled/$$(notdir $$($1_PRECOMPILED_HEADER)).gch
|
||||||
|
$1_USE_PCH_FLAGS := -I$$($1_OBJECT_DIR)/precompiled
|
||||||
|
else ifeq ($(TOOLCHAIN_TYPE), clang)
|
||||||
|
$1_PCH_FILE := $$($1_OBJECT_DIR)/precompiled/$$(notdir $$($1_PRECOMPILED_HEADER)).pch
|
||||||
|
$1_USE_PCH_FLAGS := -include-pch $$($1_PCH_FILE)
|
||||||
|
endif
|
||||||
|
$1_PCH_DEPS_FILE := $$($1_PCH_FILE).d
|
||||||
|
$1_PCH_DEPS_TARGETS_FILE := $$($1_PCH_FILE).d.targets
|
||||||
|
|
||||||
|
-include $$($1_PCH_DEPS_FILE)
|
||||||
|
-include $$($1_PCH_DEPS_TARGETS_FILE)
|
||||||
|
|
||||||
|
$1_PCH_COMMAND := $$($1_CC) $$($1_CFLAGS) $$($1_EXTRA_CFLAGS) $$($1_SYSROOT_CFLAGS) \
|
||||||
|
$$($1_OPT_CFLAGS) -x c++-header -c $(GENDEPS_FLAGS) \
|
||||||
|
$$(addsuffix .tmp, $$($1_PCH_DEPS_FILE))
|
||||||
|
|
||||||
|
$$($1_PCH_FILE): $$($1_PRECOMPILED_HEADER) $$($1_COMPILE_VARDEPS_FILE)
|
||||||
|
$$(call LogInfo, Generating precompiled header)
|
||||||
|
$$(call MakeDir, $$(@D))
|
||||||
|
$$(call ExecuteWithLog, $$@, $$(call MakeCommandRelative, \
|
||||||
|
$$($1_PCH_COMMAND) $$< -o $$@))
|
||||||
|
$$(call fix-deps-file, $$($1_PCH_DEPS_FILE))
|
||||||
|
$(SED) $(DEPENDENCY_TARGET_SED_PATTERN) $$($1_PCH_DEPS_FILE) \
|
||||||
|
> $$($1_PCH_DEPS_TARGETS_FILE)
|
||||||
|
|
||||||
|
$$($1_ALL_OBJS): $$($1_PCH_FILE)
|
||||||
|
|
||||||
|
# Generate the corresponding compile_commands.json fragment.
|
||||||
|
$1_PCH_FILE_JSON := $$(MAKESUPPORT_OUTPUTDIR)/compile-commands/$$(subst /,_,$$(subst \
|
||||||
|
$$(OUTPUTDIR)/,,$$($1_PCH_FILE))).json
|
||||||
|
$1_ALL_OBJS_JSON += $$($1_PCH_FILE_JSON)
|
||||||
|
|
||||||
|
$$($1_PCH_FILE_JSON): $$($1_PRECOMPILED_HEADER) $$($1_COMPILE_VARDEPS_FILE)
|
||||||
|
$$(call WriteCompileCommandsFragment, $$@, $$(PWD), $$<, \
|
||||||
|
$$($1_PCH_COMMAND) $$< -o $$($1_PCH_FILE))
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endef
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
define CreateWindowsResourceFile
|
||||||
|
ifneq ($$($1_VERSIONINFO_RESOURCE), )
|
||||||
|
$1_RES := $$($1_OBJECT_DIR)/$$($1_BASENAME).res
|
||||||
|
$1_RES_DEPS_FILE := $$($1_RES).d
|
||||||
|
$1_RES_DEPS_TARGETS_FILE := $$($1_RES).d.targets
|
||||||
|
-include $$($1_RES_DEPS_FILE)
|
||||||
|
-include $$($1_RES_DEPS_TARGETS_FILE)
|
||||||
|
|
||||||
|
$1_RES_VARDEPS := $$($1_RC) $$($1_RCFLAGS)
|
||||||
|
$1_RES_VARDEPS_FILE := $$(call DependOnVariable, $1_RES_VARDEPS, \
|
||||||
|
$$($1_RES).vardeps)
|
||||||
|
|
||||||
|
$$($1_RES): $$($1_VERSIONINFO_RESOURCE) $$($1_RES_VARDEPS_FILE)
|
||||||
|
$$(call LogInfo, Compiling resource $$(notdir $$($1_VERSIONINFO_RESOURCE)) (for $$($1_BASENAME)))
|
||||||
|
$$(call MakeDir, $$(@D) $$($1_OBJECT_DIR))
|
||||||
|
$$(call ExecuteWithLog, $$@, $$(call MakeCommandRelative, \
|
||||||
|
$$($1_RC) $$($1_RCFLAGS) $$($1_SYSROOT_CFLAGS) $(CC_OUT_OPTION)$$@ \
|
||||||
|
$$($1_VERSIONINFO_RESOURCE) 2>&1 ))
|
||||||
|
# Windows RC compiler does not support -showIncludes, so we mis-use CL
|
||||||
|
# for this. Filter out RC specific arguments that are unknown to CL.
|
||||||
|
# For some unknown reason, in this case CL actually outputs the show
|
||||||
|
# includes to stderr so need to redirect it to hide the output from the
|
||||||
|
# main log.
|
||||||
|
$$(call ExecuteWithLog, $$($1_RES_DEPS_FILE)$(OBJ_SUFFIX), \
|
||||||
|
$$($1_CC) $$(filter-out -l%, $$($1_RCFLAGS)) \
|
||||||
|
$$($1_SYSROOT_CFLAGS) -showIncludes -nologo -TC \
|
||||||
|
$(CC_OUT_OPTION)$$($1_RES_DEPS_FILE)$(OBJ_SUFFIX) -P -Fi$$($1_RES_DEPS_FILE).pp \
|
||||||
|
$$($1_VERSIONINFO_RESOURCE)) 2>&1 \
|
||||||
|
| $(TR) -d '\r' | $(GREP) -v -e "^Note: including file:" \
|
||||||
|
-e "^$$(notdir $$($1_VERSIONINFO_RESOURCE))$$$$" || test "$$$$?" = "1" ; \
|
||||||
|
$(ECHO) $$($1_RES): \\ > $$($1_RES_DEPS_FILE) ; \
|
||||||
|
$(SED) $(WINDOWS_SHOWINCLUDE_SED_PATTERN) $$($1_RES_DEPS_FILE)$(OBJ_SUFFIX).log \
|
||||||
|
>> $$($1_RES_DEPS_FILE) ; \
|
||||||
|
$(ECHO) >> $$($1_RES_DEPS_FILE) ;\
|
||||||
|
$(SED) $(DEPENDENCY_TARGET_SED_PATTERN) $$($1_RES_DEPS_FILE) \
|
||||||
|
> $$($1_RES_DEPS_TARGETS_FILE)
|
||||||
|
endif
|
||||||
|
endef
|
||||||
118
make/common/native/DebugSymbols.gmk
Normal file
118
make/common/native/DebugSymbols.gmk
Normal file
@@ -0,0 +1,118 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2011, 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# This file contains functionality related to native debug symbol handling.
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
define CreateDebugSymbols
|
||||||
|
ifneq ($$($1_COPY_DEBUG_SYMBOLS), false)
|
||||||
|
$1_COPY_DEBUG_SYMBOLS := $(COPY_DEBUG_SYMBOLS)
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq ($$($1_ZIP_EXTERNAL_DEBUG_SYMBOLS), false)
|
||||||
|
$1_ZIP_EXTERNAL_DEBUG_SYMBOLS := $(ZIP_EXTERNAL_DEBUG_SYMBOLS)
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($$($1_COPY_DEBUG_SYMBOLS), true)
|
||||||
|
ifneq ($$($1_DEBUG_SYMBOLS), false)
|
||||||
|
$$(call SetIfEmpty, $1_SYMBOLS_DIR, $$($1_OUTPUT_DIR))
|
||||||
|
# Only copy debug symbols for dynamic libraries and programs.
|
||||||
|
ifneq ($$($1_TYPE), STATIC_LIBRARY)
|
||||||
|
# Generate debuginfo files.
|
||||||
|
ifeq ($(call isTargetOs, windows), true)
|
||||||
|
$1_EXTRA_LDFLAGS += -debug "-pdb:$$($1_SYMBOLS_DIR)/$$($1_BASENAME).pdb" \
|
||||||
|
"-map:$$($1_SYMBOLS_DIR)/$$($1_BASENAME).map"
|
||||||
|
ifeq ($(SHIP_DEBUG_SYMBOLS), public)
|
||||||
|
$1_EXTRA_LDFLAGS += "-pdbstripped:$$($1_SYMBOLS_DIR)/$$($1_BASENAME).stripped.pdb"
|
||||||
|
endif
|
||||||
|
$1_DEBUGINFO_FILES := $$($1_SYMBOLS_DIR)/$$($1_BASENAME).pdb \
|
||||||
|
$$($1_SYMBOLS_DIR)/$$($1_BASENAME).map
|
||||||
|
|
||||||
|
else ifeq ($(call isTargetOs, linux), true)
|
||||||
|
$1_DEBUGINFO_FILES := $$($1_SYMBOLS_DIR)/$$($1_NOSUFFIX).debuginfo
|
||||||
|
# Setup the command line creating debuginfo files, to be run after linking.
|
||||||
|
# It cannot be run separately since it updates the original target file
|
||||||
|
# Creating the debuglink is done in another command rather than all at once
|
||||||
|
# so we can run it after strip is called, since strip can sometimes mangle the
|
||||||
|
# embedded debuglink, which we want to avoid.
|
||||||
|
$1_CREATE_DEBUGINFO_CMDS := \
|
||||||
|
$$($1_OBJCOPY) --only-keep-debug $$($1_TARGET) $$($1_DEBUGINFO_FILES) && \
|
||||||
|
$$(CHMOD) -x $$($1_DEBUGINFO_FILES)
|
||||||
|
$1_CREATE_DEBUGLINK_CMDS := $(CD) $$($1_SYMBOLS_DIR) && \
|
||||||
|
$$($1_OBJCOPY) --add-gnu-debuglink=$$($1_DEBUGINFO_FILES) $$($1_TARGET)
|
||||||
|
|
||||||
|
else ifeq ($(call isTargetOs, aix), true)
|
||||||
|
# AIX does not provide the equivalent of OBJCOPY to extract debug symbols,
|
||||||
|
# so we copy the compiled object with symbols to the .debuginfo file, which
|
||||||
|
# happens prior to the STRIP_CMD on the original target object file.
|
||||||
|
$1_DEBUGINFO_FILES := $$($1_SYMBOLS_DIR)/$$($1_NOSUFFIX).debuginfo
|
||||||
|
$1_CREATE_DEBUGINFO_CMDS := $(CP) $$($1_TARGET) $$($1_DEBUGINFO_FILES)
|
||||||
|
|
||||||
|
else ifeq ($(call isTargetOs, macosx), true)
|
||||||
|
$1_DEBUGINFO_FILES := \
|
||||||
|
$$($1_SYMBOLS_DIR)/$$($1_BASENAME).dSYM/Contents/Info.plist \
|
||||||
|
$$($1_SYMBOLS_DIR)/$$($1_BASENAME).dSYM/Contents/Resources/DWARF/$$($1_BASENAME)
|
||||||
|
$1_CREATE_DEBUGINFO_CMDS := \
|
||||||
|
$(DSYMUTIL) --out $$($1_SYMBOLS_DIR)/$$($1_BASENAME).dSYM $$($1_TARGET)
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Since the link rule creates more than one file that we want to track,
|
||||||
|
# we have to use some tricks to get make to cooperate. To properly
|
||||||
|
# trigger downstream dependants of $$($1_DEBUGINFO_FILES), we must have
|
||||||
|
# a recipe in the rule below. To avoid rerunning the recipe every time
|
||||||
|
# have it touch the target. If a debuginfo file is deleted by something
|
||||||
|
# external, explicitly delete the TARGET to trigger a rebuild of both.
|
||||||
|
ifneq ($$(wildcard $$($1_DEBUGINFO_FILES)), $$($1_DEBUGINFO_FILES))
|
||||||
|
$$(call LogDebug, Deleting $$($1_BASENAME) because debuginfo files are missing)
|
||||||
|
$$(shell $(RM) $$($1_TARGET))
|
||||||
|
endif
|
||||||
|
$$($1_DEBUGINFO_FILES): $$($1_TARGET)
|
||||||
|
$$(if $$(CORRECT_FUNCTION_IN_RECIPE_EVALUATION), \
|
||||||
|
$$(if $$(wildcard $$@), , $$(error $$@ was not created for $$<)) \
|
||||||
|
)
|
||||||
|
$(TOUCH) $$@
|
||||||
|
|
||||||
|
$1 += $$($1_DEBUGINFO_FILES)
|
||||||
|
|
||||||
|
ifeq ($$($1_ZIP_EXTERNAL_DEBUG_SYMBOLS), true)
|
||||||
|
ifeq ($(call isTargetOs, windows), true)
|
||||||
|
$1_DEBUGINFO_ZIP := $$($1_SYMBOLS_DIR)/$$($1_BASENAME).diz
|
||||||
|
else
|
||||||
|
$1_DEBUGINFO_ZIP := $$($1_SYMBOLS_DIR)/$$($1_NOSUFFIX).diz
|
||||||
|
endif
|
||||||
|
$1 += $$($1_DEBUGINFO_ZIP)
|
||||||
|
|
||||||
|
# The dependency on TARGET is needed for debuginfo files
|
||||||
|
# to be rebuilt properly.
|
||||||
|
$$($1_DEBUGINFO_ZIP): $$($1_DEBUGINFO_FILES) $$($1_TARGET)
|
||||||
|
$(CD) $$($1_SYMBOLS_DIR) && \
|
||||||
|
$(ZIPEXE) -q -r $$@ $$(subst $$($1_SYMBOLS_DIR)/,, $$($1_DEBUGINFO_FILES))
|
||||||
|
|
||||||
|
endif
|
||||||
|
endif # !STATIC_LIBRARY
|
||||||
|
endif # $1_DEBUG_SYMBOLS != false
|
||||||
|
endif # COPY_DEBUG_SYMBOLS
|
||||||
|
endef
|
||||||
225
make/common/native/Flags.gmk
Normal file
225
make/common/native/Flags.gmk
Normal file
@@ -0,0 +1,225 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2011, 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# This file contains functionality related to setting up compiler and linker
|
||||||
|
# flags, based on various more abstract sources of compilation description,
|
||||||
|
# like optimization level.
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# $1 is the prefix of the file to be compiled
|
||||||
|
# $2 is the prefix of the library, i.e. $$($1_BASE)
|
||||||
|
define SetupCompileFileFlags
|
||||||
|
ifeq ($$($1_OPTIMIZATION), )
|
||||||
|
$1_OPT_CFLAGS := $$($2_OPT_CFLAGS)
|
||||||
|
$1_OPT_CXXFLAGS := $$($2_OPT_CXXFLAGS)
|
||||||
|
else
|
||||||
|
ifeq ($$($1_OPTIMIZATION), NONE)
|
||||||
|
$1_OPT_CFLAGS := $(C_O_FLAG_NONE)
|
||||||
|
$1_OPT_CXXFLAGS := $(CXX_O_FLAG_NONE)
|
||||||
|
else ifeq ($$($1_OPTIMIZATION), LOW)
|
||||||
|
$1_OPT_CFLAGS := $(C_O_FLAG_NORM)
|
||||||
|
$1_OPT_CXXFLAGS := $(CXX_O_FLAG_NORM)
|
||||||
|
else ifeq ($$($1_OPTIMIZATION), HIGH)
|
||||||
|
$1_OPT_CFLAGS := $(C_O_FLAG_HI)
|
||||||
|
$1_OPT_CXXFLAGS := $(CXX_O_FLAG_HI)
|
||||||
|
else ifeq ($$($1_OPTIMIZATION), HIGHEST)
|
||||||
|
$1_OPT_CFLAGS := $(C_O_FLAG_HIGHEST)
|
||||||
|
$1_OPT_CXXFLAGS := $(CXX_O_FLAG_HIGHEST)
|
||||||
|
else ifeq ($$($1_OPTIMIZATION), HIGHEST_JVM)
|
||||||
|
$1_OPT_CFLAGS := $(C_O_FLAG_HIGHEST_JVM)
|
||||||
|
$1_OPT_CXXFLAGS := $(CXX_O_FLAG_HIGHEST_JVM)
|
||||||
|
else ifeq ($$($1_OPTIMIZATION), SIZE)
|
||||||
|
$1_OPT_CFLAGS := $(C_O_FLAG_SIZE)
|
||||||
|
$1_OPT_CXXFLAGS := $(CXX_O_FLAG_SIZE)
|
||||||
|
else
|
||||||
|
$$(error Unknown value for file OPTIMIZATION: $$($1_OPTIMIZATION))
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq ($$($2_PRECOMPILED_HEADER), )
|
||||||
|
ifeq ($$(filter $$($1_FILENAME), $$($2_PRECOMPILED_HEADER_EXCLUDE)), )
|
||||||
|
$1_USE_PCH_FLAGS := $$($2_USE_PCH_FLAGS)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq ($(DISABLE_WARNING_PREFIX), )
|
||||||
|
$1_WARNINGS_FLAGS := $$(addprefix $(DISABLE_WARNING_PREFIX), \
|
||||||
|
$$($2_DISABLED_WARNINGS_$(TOOLCHAIN_TYPE)_$$($1_FILENAME)) \
|
||||||
|
$$($2_DISABLED_WARNINGS_$(TOOLCHAIN_TYPE)_$(OPENJDK_TARGET_OS)_$$($1_FILENAME)))
|
||||||
|
endif
|
||||||
|
|
||||||
|
$1_BASE_CFLAGS := $$($2_CFLAGS) $$($2_EXTRA_CFLAGS) \
|
||||||
|
$$($2_SYSROOT_CFLAGS)
|
||||||
|
$1_BASE_CXXFLAGS := $$($2_CXXFLAGS) $$($2_EXTRA_CXXFLAGS) \
|
||||||
|
$$($2_SYSROOT_CFLAGS) $$($1_EXTRA_CXXFLAGS)
|
||||||
|
$1_BASE_ASFLAGS := $$($2_ASFLAGS) $$($2_EXTRA_ASFLAGS)
|
||||||
|
endef
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
define SetupCompilerFlags
|
||||||
|
# Pickup extra OPENJDK_TARGET_OS_TYPE, OPENJDK_TARGET_OS, TOOLCHAIN_TYPE and
|
||||||
|
# OPENJDK_TARGET_OS plus OPENJDK_TARGET_CPU pair dependent variables for CFLAGS.
|
||||||
|
$1_EXTRA_CFLAGS := $$($1_CFLAGS_$(OPENJDK_TARGET_OS_TYPE)) $$($1_CFLAGS_$(OPENJDK_TARGET_OS)) \
|
||||||
|
$$($1_CFLAGS_$(TOOLCHAIN_TYPE)) \
|
||||||
|
$$($1_CFLAGS_$(OPENJDK_TARGET_OS)_$(OPENJDK_TARGET_CPU))
|
||||||
|
|
||||||
|
ifneq ($(DEBUG_LEVEL), release)
|
||||||
|
# Pickup extra debug dependent variables for CFLAGS
|
||||||
|
$1_EXTRA_CFLAGS += $$($1_CFLAGS_debug)
|
||||||
|
$1_EXTRA_CFLAGS += $$($1_CFLAGS_$(OPENJDK_TARGET_OS_TYPE)_debug)
|
||||||
|
$1_EXTRA_CFLAGS += $$($1_CFLAGS_$(OPENJDK_TARGET_OS)_debug)
|
||||||
|
$1_EXTRA_CFLAGS += $$($1_CFLAGS_$(OPENJDK_TARGET_OS)_$(OPENJDK_TARGET_CPU)_debug)
|
||||||
|
else
|
||||||
|
$1_EXTRA_CFLAGS += $$($1_CFLAGS_release)
|
||||||
|
$1_EXTRA_CFLAGS += $$($1_CFLAGS_$(OPENJDK_TARGET_OS_TYPE)_release)
|
||||||
|
$1_EXTRA_CFLAGS += $$($1_CFLAGS_$(OPENJDK_TARGET_OS)_release)
|
||||||
|
$1_EXTRA_CFLAGS += $$($1_CFLAGS_$(OPENJDK_TARGET_OS)_$(OPENJDK_TARGET_CPU)_release)
|
||||||
|
endif
|
||||||
|
ifeq ($(STATIC_LIBS), true)
|
||||||
|
$1_EXTRA_CFLAGS += $$(STATIC_LIBS_CFLAGS)
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Pickup extra OPENJDK_TARGET_OS_TYPE, OPENJDK_TARGET_OS and/or TOOLCHAIN_TYPE
|
||||||
|
# dependent variables for CXXFLAGS.
|
||||||
|
$1_EXTRA_CXXFLAGS := $$($1_CXXFLAGS_$(OPENJDK_TARGET_OS_TYPE)) $$($1_CXXFLAGS_$(OPENJDK_TARGET_OS)) \
|
||||||
|
$$($1_CXXFLAGS_$(TOOLCHAIN_TYPE))
|
||||||
|
|
||||||
|
ifneq ($(DEBUG_LEVEL), release)
|
||||||
|
# Pickup extra debug dependent variables for CXXFLAGS
|
||||||
|
$1_EXTRA_CXXFLAGS += $$($1_CXXFLAGS_debug)
|
||||||
|
$1_EXTRA_CXXFLAGS += $$($1_CXXFLAGS_$(OPENJDK_TARGET_OS_TYPE)_debug)
|
||||||
|
$1_EXTRA_CXXFLAGS += $$($1_CXXFLAGS_$(OPENJDK_TARGET_OS)_debug)
|
||||||
|
else
|
||||||
|
$1_EXTRA_CXXFLAGS += $$($1_CXXFLAGS_release)
|
||||||
|
$1_EXTRA_CXXFLAGS += $$($1_CXXFLAGS_$(OPENJDK_TARGET_OS_TYPE)_release)
|
||||||
|
$1_EXTRA_CXXFLAGS += $$($1_CXXFLAGS_$(OPENJDK_TARGET_OS)_release)
|
||||||
|
endif
|
||||||
|
ifeq ($(STATIC_LIBS), true)
|
||||||
|
$1_EXTRA_CXXFLAGS += $$(STATIC_LIB_CFLAGS)
|
||||||
|
endif
|
||||||
|
|
||||||
|
# If no C++ flags are explicitly set, default to using the C flags.
|
||||||
|
# After that, we can set additional C++ flags that should not interfere
|
||||||
|
# with the mechanism for copying the C flags by default.
|
||||||
|
ifeq ($$($1_CXXFLAGS), )
|
||||||
|
$1_CXXFLAGS := $$($1_CFLAGS)
|
||||||
|
endif
|
||||||
|
ifeq ($$(strip $$($1_EXTRA_CXXFLAGS)), )
|
||||||
|
$1_EXTRA_CXXFLAGS := $$($1_EXTRA_CFLAGS)
|
||||||
|
endif
|
||||||
|
|
||||||
|
$$(call SetIfEmpty, $1_COMPILE_WITH_DEBUG_SYMBOLS, $$(COMPILE_WITH_DEBUG_SYMBOLS))
|
||||||
|
|
||||||
|
ifeq ($(STATIC_LIBS), true)
|
||||||
|
# For release builds where debug symbols are configured to be moved to
|
||||||
|
# separate debuginfo files, disable debug symbols for static libs instead.
|
||||||
|
# We don't currently support this configuration and we don't want symbol
|
||||||
|
# information in release builds unless explicitly asked to provide it.
|
||||||
|
ifeq ($(DEBUG_LEVEL), release)
|
||||||
|
ifeq ($(COPY_DEBUG_SYMBOLS), true)
|
||||||
|
$1_COMPILE_WITH_DEBUG_SYMBOLS := false
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($$($1_COMPILE_WITH_DEBUG_SYMBOLS), true)
|
||||||
|
$1_EXTRA_CFLAGS += $$(CFLAGS_DEBUG_SYMBOLS)
|
||||||
|
$1_EXTRA_CXXFLAGS += $$(CFLAGS_DEBUG_SYMBOLS)
|
||||||
|
$1_EXTRA_ASFLAGS += $$(ASFLAGS_DEBUG_SYMBOLS)
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Pass the library name for static JNI library naming
|
||||||
|
ifeq ($$($1_TYPE), STATIC_LIBRARY)
|
||||||
|
$1_EXTRA_CFLAGS += -DLIBRARY_NAME=$$($1_NAME)
|
||||||
|
$1_EXTRA_CXXFLAGS += -DLIBRARY_NAME=$$($1_NAME)
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Pick up disabled warnings, if possible on this platform.
|
||||||
|
ifneq ($(DISABLE_WARNING_PREFIX), )
|
||||||
|
$1_EXTRA_CFLAGS += $$(addprefix $(DISABLE_WARNING_PREFIX), \
|
||||||
|
$$(DISABLED_WARNINGS) \
|
||||||
|
$$(DISABLED_WARNINGS_C) \
|
||||||
|
$$($1_DISABLED_WARNINGS_$(TOOLCHAIN_TYPE)) \
|
||||||
|
$$($1_DISABLED_WARNINGS_C_$(TOOLCHAIN_TYPE)) \
|
||||||
|
$$($1_DISABLED_WARNINGS_$(TOOLCHAIN_TYPE)_$(OPENJDK_TARGET_OS)) \
|
||||||
|
$$($1_DISABLED_WARNINGS_C_$(TOOLCHAIN_TYPE)_$(OPENJDK_TARGET_OS)))
|
||||||
|
$1_EXTRA_CXXFLAGS += $$(addprefix $(DISABLE_WARNING_PREFIX), \
|
||||||
|
$$(DISABLED_WARNINGS) \
|
||||||
|
$$(DISABLED_WARNINGS_CXX) \
|
||||||
|
$$($1_DISABLED_WARNINGS_$(TOOLCHAIN_TYPE)) \
|
||||||
|
$$($1_DISABLED_WARNINGS_CXX_$(TOOLCHAIN_TYPE)) \
|
||||||
|
$$($1_DISABLED_WARNINGS_$(TOOLCHAIN_TYPE)_$(OPENJDK_TARGET_OS)) \
|
||||||
|
$$($1_DISABLED_WARNINGS_CXX_$(TOOLCHAIN_TYPE)_$(OPENJDK_TARGET_OS)))
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Check if warnings should be considered errors.
|
||||||
|
# Pick first binary and toolchain specific, then binary specific, then general setting.
|
||||||
|
ifeq ($$($1_WARNINGS_AS_ERRORS_$(TOOLCHAIN_TYPE)), )
|
||||||
|
ifeq ($$($1_WARNINGS_AS_ERRORS), )
|
||||||
|
$1_WARNINGS_AS_ERRORS_$(TOOLCHAIN_TYPE) := $$(WARNINGS_AS_ERRORS)
|
||||||
|
else
|
||||||
|
$1_WARNINGS_AS_ERRORS_$(TOOLCHAIN_TYPE) := $$($1_WARNINGS_AS_ERRORS)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($$($1_WARNINGS_AS_ERRORS_$(TOOLCHAIN_TYPE)), true)
|
||||||
|
$1_EXTRA_CFLAGS += $(CFLAGS_WARNINGS_ARE_ERRORS)
|
||||||
|
$1_EXTRA_CXXFLAGS += $(CFLAGS_WARNINGS_ARE_ERRORS)
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq (NONE, $$($1_OPTIMIZATION))
|
||||||
|
$1_OPT_CFLAGS := $(C_O_FLAG_NONE)
|
||||||
|
$1_OPT_CXXFLAGS := $(CXX_O_FLAG_NONE)
|
||||||
|
else ifeq (LOW, $$($1_OPTIMIZATION))
|
||||||
|
$1_OPT_CFLAGS := $(C_O_FLAG_NORM)
|
||||||
|
$1_OPT_CXXFLAGS := $(CXX_O_FLAG_NORM)
|
||||||
|
else ifeq (HIGH, $$($1_OPTIMIZATION))
|
||||||
|
$1_OPT_CFLAGS := $(C_O_FLAG_HI)
|
||||||
|
$1_OPT_CXXFLAGS := $(CXX_O_FLAG_HI)
|
||||||
|
else ifeq (HIGHEST, $$($1_OPTIMIZATION))
|
||||||
|
$1_OPT_CFLAGS := $(C_O_FLAG_HIGHEST)
|
||||||
|
$1_OPT_CXXFLAGS := $(CXX_O_FLAG_HIGHEST)
|
||||||
|
else ifeq (HIGHEST_JVM, $$($1_OPTIMIZATION))
|
||||||
|
$1_OPT_CFLAGS := $(C_O_FLAG_HIGHEST_JVM)
|
||||||
|
$1_OPT_CXXFLAGS := $(CXX_O_FLAG_HIGHEST_JVM)
|
||||||
|
else ifeq (SIZE, $$($1_OPTIMIZATION))
|
||||||
|
$1_OPT_CFLAGS := $(C_O_FLAG_SIZE)
|
||||||
|
$1_OPT_CXXFLAGS := $(CXX_O_FLAG_SIZE)
|
||||||
|
else ifneq (, $$($1_OPTIMIZATION))
|
||||||
|
$$(error Unknown value for OPTIMIZATION: $$($1_OPTIMIZATION))
|
||||||
|
endif
|
||||||
|
endef
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
define SetupLinkerFlags
|
||||||
|
# Pickup extra OPENJDK_TARGET_OS_TYPE, OPENJDK_TARGET_OS and TOOLCHAIN_TYPE
|
||||||
|
# dependent variables for LDFLAGS and LIBS, and additionally the pair dependent
|
||||||
|
# TOOLCHAIN_TYPE plus OPENJDK_TARGET_OS
|
||||||
|
$1_EXTRA_LDFLAGS += $$($1_LDFLAGS_$(OPENJDK_TARGET_OS_TYPE)) $$($1_LDFLAGS_$(OPENJDK_TARGET_OS)) \
|
||||||
|
$$($1_LDFLAGS_$(TOOLCHAIN_TYPE)) $$($1_LDFLAGS_$(TOOLCHAIN_TYPE)_$(OPENJDK_TARGET_OS))
|
||||||
|
$1_EXTRA_LIBS += $$($1_LIBS_$(OPENJDK_TARGET_OS_TYPE)) $$($1_LIBS_$(OPENJDK_TARGET_OS)) \
|
||||||
|
$$($1_LIBS_$(TOOLCHAIN_TYPE)) $$($1_LIBS_$(TOOLCHAIN_TYPE)_$(OPENJDK_TARGET_OS))
|
||||||
|
endef
|
||||||
177
make/common/native/Link.gmk
Normal file
177
make/common/native/Link.gmk
Normal file
@@ -0,0 +1,177 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2011, 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# This file contains functionality related to linking a native binary;
|
||||||
|
# creating either a dynamic library, a static library or an executable.
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# GetEntitlementsFile
|
||||||
|
# Find entitlements file for executable when signing on macosx. If no
|
||||||
|
# specialized file is found, returns the default file.
|
||||||
|
# This macro might be called from custom makefiles.
|
||||||
|
# $1 Executable to find entitlements file for.
|
||||||
|
ENTITLEMENTS_DIR := $(TOPDIR)/make/data/macosxsigning
|
||||||
|
ifeq ($(MACOSX_CODESIGN_MODE), debug)
|
||||||
|
CODESIGN_PLIST_SUFFIX := -debug
|
||||||
|
else
|
||||||
|
CODESIGN_PLIST_SUFFIX :=
|
||||||
|
endif
|
||||||
|
DEFAULT_ENTITLEMENTS_FILE := $(ENTITLEMENTS_DIR)/default$(CODESIGN_PLIST_SUFFIX).plist
|
||||||
|
|
||||||
|
GetEntitlementsFile = \
|
||||||
|
$(foreach f, $(ENTITLEMENTS_DIR)/$(strip $(notdir $1))$(CODESIGN_PLIST_SUFFIX).plist, \
|
||||||
|
$(if $(wildcard $f), $f, $(DEFAULT_ENTITLEMENTS_FILE)) \
|
||||||
|
)
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
define SetupLinking
|
||||||
|
# Unless specifically set, stripping should only happen if symbols are also
|
||||||
|
# being copied.
|
||||||
|
$$(call SetIfEmpty, $1_STRIP_SYMBOLS, $$($1_COPY_DEBUG_SYMBOLS))
|
||||||
|
|
||||||
|
ifneq ($$($1_STRIP_SYMBOLS), false)
|
||||||
|
# Default to using the global STRIPFLAGS. Allow for overriding with an
|
||||||
|
# empty value
|
||||||
|
$1_STRIPFLAGS ?= $(STRIPFLAGS)
|
||||||
|
$1_STRIP_CMD := $$($1_STRIP) $$($1_STRIPFLAGS) $$($1_TARGET)
|
||||||
|
endif
|
||||||
|
endef
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
define CreateLinkedResult
|
||||||
|
ifeq ($$($1_TYPE), STATIC_LIBRARY)
|
||||||
|
$$(eval $$(call CreateStaticLibrary,$1))
|
||||||
|
else
|
||||||
|
$$(eval $$(call CreateDynamicLibraryOrExecutable,$1))
|
||||||
|
endif
|
||||||
|
endef
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
define CreateStaticLibrary
|
||||||
|
# Include partial linking when building the static library with clang on linux
|
||||||
|
ifeq ($(call isTargetOs, linux), true)
|
||||||
|
ifneq ($(findstring $(TOOLCHAIN_TYPE), clang), )
|
||||||
|
$1_ENABLE_PARTIAL_LINKING := true
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
$1_VARDEPS := $$($1_AR) $$(ARFLAGS) $$($1_ARFLAGS) $$($1_LIBS) \
|
||||||
|
$$($1_EXTRA_LIBS)
|
||||||
|
ifeq ($$($1_ENABLE_PARTIAL_LINKING), true)
|
||||||
|
$1_VARDEPS += $$($1_LD) $$($1_SYSROOT_LDFLAGS)
|
||||||
|
endif
|
||||||
|
$1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, \
|
||||||
|
$$($1_OBJECT_DIR)/$$($1_NOSUFFIX).vardeps)
|
||||||
|
|
||||||
|
$1_TARGET_DEPS := $$($1_ALL_OBJS) $$($1_VARDEPS_FILE)
|
||||||
|
|
||||||
|
$1_AR_OBJ_ARG := $$($1_LD_OBJ_ARG)
|
||||||
|
# With clang on linux, partial linking is enabled and 'AR' takes the output
|
||||||
|
# object from the partial linking step.
|
||||||
|
ifeq ($$($1_ENABLE_PARTIAL_LINKING), true)
|
||||||
|
$1_TARGET_RELOCATABLE := $$($1_OBJECT_DIR)/$$($1_PREFIX)$$($1_NAME)_relocatable$(OBJ_SUFFIX)
|
||||||
|
$1_AR_OBJ_ARG := $$($1_TARGET_RELOCATABLE)
|
||||||
|
endif
|
||||||
|
|
||||||
|
$$($1_TARGET): $$($1_TARGET_DEPS)
|
||||||
|
ifneq ($$($1_OBJ_FILE_LIST), )
|
||||||
|
ifeq ($$($1_LINK_OBJS_RELATIVE), true)
|
||||||
|
$$(eval $$(call ListPathsSafely, $1_ALL_OBJS_RELATIVE, $$($1_OBJ_FILE_LIST)))
|
||||||
|
else
|
||||||
|
$$(eval $$(call ListPathsSafely, $1_ALL_OBJS, $$($1_OBJ_FILE_LIST)))
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
$$(call LogInfo, Building static library $$($1_BASENAME))
|
||||||
|
$$(call MakeDir, $$($1_OUTPUT_DIR) $$($1_SYMBOLS_DIR))
|
||||||
|
# Do partial linking.
|
||||||
|
ifeq ($$($1_ENABLE_PARTIAL_LINKING), true)
|
||||||
|
$$(call ExecuteWithLog, $$($1_OBJECT_DIR)/$$($1_SAFE_NAME)_partial_link, \
|
||||||
|
$(if $$($1_LINK_OBJS_RELATIVE), $$(CD) $$(OUTPUTDIR) ; ) \
|
||||||
|
$$($1_LD) $(LDFLAGS_CXX_PARTIAL_LINKING) $$($1_SYSROOT_LDFLAGS) \
|
||||||
|
-o $$($1_TARGET_RELOCATABLE) \
|
||||||
|
$$($1_LD_OBJ_ARG))
|
||||||
|
endif
|
||||||
|
$$(call ExecuteWithLog, $$($1_OBJECT_DIR)/$$($1_SAFE_NAME)_link, \
|
||||||
|
$(if $$($1_LINK_OBJS_RELATIVE), $$(CD) $$(OUTPUTDIR) ; ) \
|
||||||
|
$$($1_AR) $$(ARFLAGS) $$($1_ARFLAGS) -r -cs $$($1_TARGET) \
|
||||||
|
$$($1_AR_OBJ_ARG) $$($1_RES))
|
||||||
|
ifeq ($(STATIC_BUILD), true)
|
||||||
|
$(RM) $$(@D)/$$(basename $$(@F)).symbols; \
|
||||||
|
$(ECHO) "Getting symbols from nm"; \
|
||||||
|
$(NM) $(NMFLAGS) -m $$($1_TARGET) | $(GREP) "__TEXT" | \
|
||||||
|
$(EGREP) -v "non-external|private extern|__TEXT,__eh_frame" | \
|
||||||
|
$(SED) -e 's/.* //' > $$(@D)/$$(basename $$(@F)).symbols
|
||||||
|
endif
|
||||||
|
endef
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
define CreateDynamicLibraryOrExecutable
|
||||||
|
# A shared dynamic library or an executable binary has been specified
|
||||||
|
ifeq ($$($1_TYPE), LIBRARY)
|
||||||
|
# Generating a dynamic library.
|
||||||
|
$1_EXTRA_LDFLAGS += $$(call SET_SHARED_LIBRARY_NAME,$$($1_BASENAME))
|
||||||
|
endif
|
||||||
|
|
||||||
|
$1_VARDEPS := $$($1_LD) $$($1_SYSROOT_LDFLAGS) $$($1_LDFLAGS) \
|
||||||
|
$$($1_EXTRA_LDFLAGS) $$($1_LIBS) $$($1_EXTRA_LIBS) \
|
||||||
|
$$($1_CREATE_DEBUGINFO_CMDS) $$($1_STRIP_CMD) $$($1_CREATE_DEBUGLINK_CMDS)
|
||||||
|
$1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, \
|
||||||
|
$$($1_OBJECT_DIR)/$$($1_NOSUFFIX).vardeps)
|
||||||
|
|
||||||
|
$1_TARGET_DEPS := $$($1_ALL_OBJS) $$($1_VARDEPS_FILE)
|
||||||
|
|
||||||
|
$$($1_TARGET): $$($1_TARGET_DEPS)
|
||||||
|
ifneq ($$($1_OBJ_FILE_LIST), )
|
||||||
|
ifeq ($$($1_LINK_OBJS_RELATIVE), true)
|
||||||
|
$$(eval $$(call ListPathsSafely, $1_ALL_OBJS_RELATIVE, $$($1_OBJ_FILE_LIST)))
|
||||||
|
else
|
||||||
|
$$(eval $$(call ListPathsSafely, $1_ALL_OBJS, $$($1_OBJ_FILE_LIST)))
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
$$(call LogInfo, Linking $$($1_BASENAME))
|
||||||
|
$$(call MakeDir, $$($1_OUTPUT_DIR) $$($1_SYMBOLS_DIR))
|
||||||
|
$$(call ExecuteWithLog, $$($1_OBJECT_DIR)/$$($1_SAFE_NAME)_link, \
|
||||||
|
$$(if $$($1_LINK_OBJS_RELATIVE), $$(CD) $$(OUTPUTDIR) ; ) \
|
||||||
|
$$($1_LD) $$($1_LDFLAGS) $$($1_EXTRA_LDFLAGS) \
|
||||||
|
$$($1_SYSROOT_LDFLAGS) -o $$($1_TARGET) $$($1_LD_OBJ_ARG) \
|
||||||
|
$$($1_LIBS) $$($1_EXTRA_LIBS))
|
||||||
|
$$($1_CREATE_DEBUGINFO_CMDS)
|
||||||
|
$$($1_STRIP_CMD)
|
||||||
|
$$($1_CREATE_DEBUGLINK_CMDS)
|
||||||
|
# On macosx, optionally run codesign on every binary.
|
||||||
|
# Remove signature explicitly first to avoid warnings if the linker
|
||||||
|
# added a default adhoc signature.
|
||||||
|
ifeq ($(MACOSX_CODESIGN_MODE), hardened)
|
||||||
|
$(CODESIGN) --remove-signature $$@
|
||||||
|
$(CODESIGN) -f -s "$(MACOSX_CODESIGN_IDENTITY)" --timestamp \
|
||||||
|
--options runtime --entitlements \
|
||||||
|
$$(call GetEntitlementsFile, $$@) $$@
|
||||||
|
else ifeq ($(MACOSX_CODESIGN_MODE), debug)
|
||||||
|
$(CODESIGN) --remove-signature $$@
|
||||||
|
$(CODESIGN) -f -s - --entitlements \
|
||||||
|
$$(call GetEntitlementsFile, $$@) $$@
|
||||||
|
endif
|
||||||
|
endef
|
||||||
112
make/common/native/LinkMicrosoft.gmk
Normal file
112
make/common/native/LinkMicrosoft.gmk
Normal file
@@ -0,0 +1,112 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2011, 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# This file contains functionality related to linking a native binary;
|
||||||
|
# creating either a dynamic library, a static library or an executable.
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
define CreateLinkedResultMicrosoft
|
||||||
|
ifeq ($$($1_TYPE), STATIC_LIBRARY)
|
||||||
|
$$(eval $$(call CreateStaticLibraryMicrosoft,$1))
|
||||||
|
else
|
||||||
|
$$(eval $$(call CreateDynamicLibraryOrExecutableMicrosoft,$1))
|
||||||
|
endif
|
||||||
|
endef
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
define CreateStaticLibraryMicrosoft
|
||||||
|
$1_VARDEPS := $$($1_LIB) $$(LIBFLAGS) $$($1_LIBFLAGS) $$($1_LIBS) \
|
||||||
|
$$($1_EXTRA_LIBS)
|
||||||
|
$1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, \
|
||||||
|
$$($1_OBJECT_DIR)/$$($1_NOSUFFIX).vardeps)
|
||||||
|
|
||||||
|
$$($1_TARGET): $$($1_ALL_OBJS) $$($1_RES) $$($1_VARDEPS_FILE)
|
||||||
|
ifneq ($$($1_OBJ_FILE_LIST), )
|
||||||
|
$$(eval $$(call ListPathsSafely, $1_ALL_OBJS, $$($1_OBJ_FILE_LIST)))
|
||||||
|
endif
|
||||||
|
$$(call LogInfo, Building static library $$($1_BASENAME))
|
||||||
|
$$(call MakeDir, $$($1_OUTPUT_DIR) $$($1_SYMBOLS_DIR))
|
||||||
|
$$(call ExecuteWithLog, $$($1_OBJECT_DIR)/$$($1_SAFE_NAME)_link, \
|
||||||
|
$$($1_LIB) -nologo $$(LIBFLAGS) $$($1_LIBFLAGS) -out:$$($1_TARGET) \
|
||||||
|
$$($1_LD_OBJ_ARG) $$($1_RES))
|
||||||
|
endef
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
define CreateDynamicLibraryOrExecutableMicrosoft
|
||||||
|
ifeq ($$($1_EMBED_MANIFEST), true)
|
||||||
|
$1_EXTRA_LDFLAGS += -manifest:embed
|
||||||
|
endif
|
||||||
|
|
||||||
|
$1_IMPORT_LIBRARY := $$($1_OBJECT_DIR)/$$($1_NAME).lib
|
||||||
|
$1_EXTRA_LDFLAGS += "-implib:$$($1_IMPORT_LIBRARY)"
|
||||||
|
|
||||||
|
ifeq ($$($1_TYPE), LIBRARY)
|
||||||
|
# To properly trigger downstream dependants of the import library, just as
|
||||||
|
# for debug files, we must have a recipe in the rule. To avoid rerunning
|
||||||
|
# the recipe every time have it touch the target. If an import library
|
||||||
|
# file is deleted by something external, explicitly delete the target to
|
||||||
|
# trigger a rebuild of both.
|
||||||
|
ifneq ($$(wildcard $$($1_IMPORT_LIBRARY)), $$($1_IMPORT_LIBRARY))
|
||||||
|
$$(call LogDebug, Deleting $$($1_BASENAME) because import library is missing)
|
||||||
|
$$(shell $(RM) $$($1_TARGET))
|
||||||
|
endif
|
||||||
|
$$($1_IMPORT_LIBRARY): $$($1_TARGET)
|
||||||
|
$(TOUCH) $$@
|
||||||
|
|
||||||
|
$1 += $$($1_IMPORT_LIBRARY)
|
||||||
|
endif
|
||||||
|
|
||||||
|
$1_VARDEPS := $$($1_LD) $$($1_SYSROOT_LDFLAGS) $$($1_LDFLAGS) \
|
||||||
|
$$($1_EXTRA_LDFLAGS) $$($1_LIBS) $$($1_EXTRA_LIBS) $$($1_MT) \
|
||||||
|
$$($1_MANIFEST_VERSION)
|
||||||
|
|
||||||
|
$1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, \
|
||||||
|
$$($1_OBJECT_DIR)/$$($1_NOSUFFIX).vardeps)
|
||||||
|
|
||||||
|
$1_TARGET_DEPS := $$($1_ALL_OBJS) $$($1_RES) $$($1_MANIFEST) \
|
||||||
|
$$($1_VARDEPS_FILE)
|
||||||
|
|
||||||
|
$$($1_TARGET): $$($1_TARGET_DEPS)
|
||||||
|
ifneq ($$($1_OBJ_FILE_LIST), )
|
||||||
|
$$(eval $$(call ListPathsSafely, $1_ALL_OBJS, $$($1_OBJ_FILE_LIST)))
|
||||||
|
endif
|
||||||
|
$$(call LogInfo, Linking $$($1_BASENAME))
|
||||||
|
$$(call MakeDir, $$($1_OUTPUT_DIR) $$($1_SYMBOLS_DIR))
|
||||||
|
$$(call ExecuteWithLog, $$($1_OBJECT_DIR)/$$($1_SAFE_NAME)_link, \
|
||||||
|
$$($1_LD) -nologo $$($1_LDFLAGS) $$($1_EXTRA_LDFLAGS) \
|
||||||
|
$$($1_SYSROOT_LDFLAGS) -out:$$($1_TARGET) $$($1_LD_OBJ_ARG) \
|
||||||
|
$$($1_RES) $$($1_LIBS) $$($1_EXTRA_LIBS)) \
|
||||||
|
| $(GREP) -v "^ Creating library .*\.lib and object .*\.exp" || \
|
||||||
|
test "$$$$?" = "1"
|
||||||
|
ifeq ($(call isBuildOsEnv, windows.wsl2), true)
|
||||||
|
$$(CHMOD) +x $$($1_TARGET)
|
||||||
|
endif
|
||||||
|
ifneq ($$($1_MANIFEST), )
|
||||||
|
$$($1_MT) -nologo -manifest $$($1_MANIFEST) \
|
||||||
|
-identity:"$$($1_NAME).exe, version=$$($1_MANIFEST_VERSION)" \
|
||||||
|
-outputresource:$$@;#1
|
||||||
|
endif
|
||||||
|
endef
|
||||||
242
make/common/native/Paths.gmk
Normal file
242
make/common/native/Paths.gmk
Normal file
@@ -0,0 +1,242 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2011, 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# This file contains functionality related to handling paths for source files
|
||||||
|
# and object files. This is complicated by the fact that we usually, but not
|
||||||
|
# always, use absolute instead of relative paths. It is further complicated
|
||||||
|
# by the fact that not all tools allow inputting large lists of files as
|
||||||
|
# "@-files", which we normally use to avoid hitting command line length limits.
|
||||||
|
# Finally this file contains functionality for locating all source code files
|
||||||
|
# that should be included in the compilation.
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# When absolute paths are not allowed in the output, and the compiler does not
|
||||||
|
# support any options to avoid it, we need to rewrite compile commands to use
|
||||||
|
# relative paths. By doing this, the __FILE__ macro will resolve to relative
|
||||||
|
# paths. The relevant input paths on the command line are the -I flags and the
|
||||||
|
# path to the source file itself.
|
||||||
|
#
|
||||||
|
# The macro MakeCommandRelative is used to rewrite the command line like this:
|
||||||
|
# 'CD $(WORKSPACE_ROOT) && <cmd>'
|
||||||
|
# and changes all paths in cmd to be relative to the workspace root. This only
|
||||||
|
# works properly if the build dir is inside the workspace root. If it's not,
|
||||||
|
# relative paths are still calculated, but depending on the distance between the
|
||||||
|
# dirs, paths in the build dir may end up as essentially absolute anyway.
|
||||||
|
#
|
||||||
|
# The fix-deps-file macro is used to adjust the contents of the generated make
|
||||||
|
# dependency files to contain paths compatible with make.
|
||||||
|
#
|
||||||
|
REWRITE_PATHS_RELATIVE = false
|
||||||
|
ifeq ($(ALLOW_ABSOLUTE_PATHS_IN_OUTPUT)-$(FILE_MACRO_CFLAGS), false-)
|
||||||
|
REWRITE_PATHS_RELATIVE = true
|
||||||
|
endif
|
||||||
|
|
||||||
|
# CCACHE_BASEDIR needs fix-deps-file as makefiles use absolute filenames for
|
||||||
|
# object files while CCACHE_BASEDIR will make ccache relativize all paths for
|
||||||
|
# its compiler. The compiler then produces relative dependency files.
|
||||||
|
# make does not know a relative and absolute filename is the same so it will
|
||||||
|
# ignore such dependencies. This only applies when the OUTPUTDIR is inside
|
||||||
|
# the WORKSPACE_ROOT.
|
||||||
|
ifneq ($(CCACHE), )
|
||||||
|
ifneq ($(filter $(WORKSPACE_ROOT)/%, $(OUTPUTDIR)), )
|
||||||
|
REWRITE_PATHS_RELATIVE = true
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(REWRITE_PATHS_RELATIVE), true)
|
||||||
|
# Need to handle -I flags as both '-Ifoo' and '-I foo'.
|
||||||
|
MakeCommandRelative = \
|
||||||
|
$(CD) $(WORKSPACE_ROOT) && \
|
||||||
|
$(foreach o, $1, \
|
||||||
|
$(if $(filter $(WORKSPACE_ROOT)/% $(OUTPUTDIR)/%, $o), \
|
||||||
|
$(call RelativePath, $o, $(WORKSPACE_ROOT)) \
|
||||||
|
, \
|
||||||
|
$(if $(filter -I$(WORKSPACE_ROOT)/%, $o), \
|
||||||
|
-I$(call RelativePath, $(patsubst -I%, %, $o), $(WORKSPACE_ROOT)) \
|
||||||
|
, \
|
||||||
|
$o \
|
||||||
|
) \
|
||||||
|
) \
|
||||||
|
)
|
||||||
|
|
||||||
|
# When compiling with relative paths, the deps file may come out with relative
|
||||||
|
# paths, and that path may start with './'. First remove any leading ./, then
|
||||||
|
# add WORKSPACE_ROOT to any line not starting with /, while allowing for
|
||||||
|
# leading spaces. There may also be multiple entries on the same line, so start
|
||||||
|
# with splitting such lines.
|
||||||
|
# Non GNU sed (BSD on macosx) cannot substitute in literal \n using regex.
|
||||||
|
# Instead use a bash escaped literal newline. To avoid having unmatched quotes
|
||||||
|
# ruin the ability for an editor to properly syntax highlight this file, define
|
||||||
|
# that newline sequence as a separate variable and add the closing quote behind
|
||||||
|
# a comment.
|
||||||
|
sed_newline := \'$$'\n''#'
|
||||||
|
define fix-deps-file
|
||||||
|
$(SED) \
|
||||||
|
-e 's|\([^ ]\) \{1,\}\([^\\:]\)|\1 \\$(sed_newline) \2|g' \
|
||||||
|
$1.tmp \
|
||||||
|
| $(SED) \
|
||||||
|
-e 's|^\([ ]*\)\./|\1|' \
|
||||||
|
-e '/^[ ]*[^/ ]/s|^\([ ]*\)|\1$(WORKSPACE_ROOT)/|' \
|
||||||
|
> $1
|
||||||
|
endef
|
||||||
|
else
|
||||||
|
# By default the MakeCommandRelative macro does nothing.
|
||||||
|
MakeCommandRelative = $1
|
||||||
|
|
||||||
|
# No adjustment is needed.
|
||||||
|
define fix-deps-file
|
||||||
|
$(MV) $1.tmp $1
|
||||||
|
endef
|
||||||
|
endif
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
define SetupSourceFiles
|
||||||
|
$$(foreach d, $$($1_SRC), $$(if $$(wildcard $$d), , \
|
||||||
|
$$(error SRC specified to SetupNativeCompilation $1 contains missing directory $$d)))
|
||||||
|
|
||||||
|
$1_SRCS_RAW := $$(call FindFiles, $$($1_SRC))
|
||||||
|
# Order src files according to the order of the src dirs
|
||||||
|
$1_SRCS := $$(foreach d, $$($1_SRC), $$(filter $$d%, $$($1_SRCS_RAW)))
|
||||||
|
$1_SRCS := $$(filter $$(NATIVE_SOURCE_EXTENSIONS), $$($1_SRCS))
|
||||||
|
# Extract the C/C++ files.
|
||||||
|
ifneq ($$($1_EXCLUDE_PATTERNS), )
|
||||||
|
# We must not match the exclude pattern against the src root(s).
|
||||||
|
$1_SRCS_WITHOUT_ROOTS := $$($1_SRCS)
|
||||||
|
$$(foreach i, $$($1_SRC), $$(eval $1_SRCS_WITHOUT_ROOTS := $$(patsubst \
|
||||||
|
$$i/%,%, $$($1_SRCS_WITHOUT_ROOTS))))
|
||||||
|
$1_ALL_EXCLUDE_FILES := $$(call containing, $$($1_EXCLUDE_PATTERNS), \
|
||||||
|
$$($1_SRCS_WITHOUT_ROOTS))
|
||||||
|
endif
|
||||||
|
ifneq ($$($1_EXCLUDE_FILES), )
|
||||||
|
$1_ALL_EXCLUDE_FILES += $$($1_EXCLUDE_FILES)
|
||||||
|
endif
|
||||||
|
ifneq ($$($1_ALL_EXCLUDE_FILES), )
|
||||||
|
$1_EXCLUDE_FILES_PAT := $$($1_ALL_EXCLUDE_FILES) \
|
||||||
|
$$(foreach i, $$($1_SRC), $$(addprefix $$i/, $$($1_ALL_EXCLUDE_FILES)))
|
||||||
|
$1_EXCLUDE_FILES_PAT := $$(addprefix %, $$($1_EXCLUDE_FILES_PAT))
|
||||||
|
$1_SRCS := $$(filter-out $$($1_EXCLUDE_FILES_PAT), $$($1_SRCS))
|
||||||
|
endif
|
||||||
|
ifneq ($$($1_INCLUDE_FILES), )
|
||||||
|
$1_INCLUDE_FILES_PAT := $$(foreach i, $$($1_SRC), $$(addprefix $$i/, $$($1_INCLUDE_FILES)))
|
||||||
|
$1_SRCS := $$(filter $$($1_INCLUDE_FILES_PAT), $$($1_SRCS))
|
||||||
|
endif
|
||||||
|
# Now we have a list of all c/c++ files to compile: $$($1_SRCS)
|
||||||
|
|
||||||
|
# Prepend the source/bin path to the filter expressions. Then do the filtering.
|
||||||
|
ifneq ($$($1_INCLUDES), )
|
||||||
|
$1_SRC_INCLUDES := $$(foreach i, $$($1_SRC), $$(addprefix $$i/, $$(addsuffix /%, $$($1_INCLUDES))))
|
||||||
|
$1_SRCS := $$(filter $$($1_SRC_INCLUDES), $$($1_SRCS))
|
||||||
|
endif
|
||||||
|
ifneq ($$($1_EXCLUDES), )
|
||||||
|
$1_SRC_EXCLUDES := $$(addsuffix /%, $$($1_EXCLUDES))
|
||||||
|
$1_SRC_EXCLUDES += $$(foreach i, $$($1_SRC), $$(addprefix $$i/, $$(addsuffix /%, $$($1_EXCLUDES))))
|
||||||
|
$1_SRCS := $$(filter-out $$($1_SRC_EXCLUDES), $$($1_SRCS))
|
||||||
|
endif
|
||||||
|
|
||||||
|
$1_SRCS += $$($1_EXTRA_FILES)
|
||||||
|
|
||||||
|
ifeq ($$($1_SRCS), )
|
||||||
|
$$(error No sources found for $1 when looking inside the dirs $$($1_SRC))
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($$($1_TYPE), EXECUTABLE)
|
||||||
|
ifeq ($(UBSAN_ENABLED), true)
|
||||||
|
# We need to set the default options for UBSan. This needs to be included in every executable.
|
||||||
|
# Rather than copy and paste code to everything with a main function, we add an additional
|
||||||
|
# source file to every executable that exports __ubsan_default_options.
|
||||||
|
ifneq ($$(filter %.cpp %.cc, $$($1_SRCS)), )
|
||||||
|
$1_SRCS += $(TOPDIR)/make/data/ubsan/ubsan_default_options.cpp
|
||||||
|
else
|
||||||
|
$1_SRCS += $(TOPDIR)/make/data/ubsan/ubsan_default_options.c
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endef
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
define SetupOutputFiles
|
||||||
|
# Calculate the expected output from compiling the sources
|
||||||
|
$1_EXPECTED_OBJS_FILENAMES := $$(call replace_with_obj_extension, $$(notdir $$($1_SRCS)))
|
||||||
|
$1_EXPECTED_OBJS := $$(addprefix $$($1_OBJECT_DIR)/, $$($1_EXPECTED_OBJS_FILENAMES))
|
||||||
|
# Sort to remove duplicates and provide a reproducible order on the input files to the linker.
|
||||||
|
$1_ALL_OBJS := $$(sort $$($1_EXPECTED_OBJS) $$($1_EXTRA_OBJECT_FILES))
|
||||||
|
ifeq ($(STATIC_LIBS), true)
|
||||||
|
# Exclude the object files that match with $1_STATIC_LIB_EXCLUDE_OBJS.
|
||||||
|
ifneq ($$($1_STATIC_LIB_EXCLUDE_OBJS), )
|
||||||
|
$1_ALL_OBJS := $$(call not-containing, $$($1_STATIC_LIB_EXCLUDE_OBJS), $$($1_ALL_OBJS))
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endef
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
define RemoveSuperfluousOutputFiles
|
||||||
|
# Are there too many object files on disk? Perhaps because some source file was removed?
|
||||||
|
$1_BINS := $$(wildcard $$($1_OBJECT_DIR)/*$(OBJ_SUFFIX))
|
||||||
|
$1_SUPERFLOUS_OBJS := $$(sort $$(filter-out $$($1_EXPECTED_OBJS), $$($1_BINS)))
|
||||||
|
# Clean out the superfluous object files.
|
||||||
|
ifneq ($$($1_SUPERFLUOUS_OBJS), )
|
||||||
|
$$(shell $(RM) -f $$($1_SUPERFLUOUS_OBJS))
|
||||||
|
endif
|
||||||
|
endef
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
define SetupObjectFileList
|
||||||
|
$1_LD_OBJ_ARG := $$($1_ALL_OBJS)
|
||||||
|
|
||||||
|
# If there are many object files, use an @-file...
|
||||||
|
ifneq ($$(word 17, $$($1_ALL_OBJS)), )
|
||||||
|
$1_OBJ_FILE_LIST := $$($1_OBJECT_DIR)/_$1_objectfilenames.txt
|
||||||
|
$1_LD_OBJ_ARG := @$$($1_OBJ_FILE_LIST)
|
||||||
|
|
||||||
|
# If we are building static library, 'AR' on macosx/aix may not support @-file.
|
||||||
|
ifeq ($$($1_TYPE), STATIC_LIBRARY)
|
||||||
|
ifeq ($(call isTargetOs, macosx aix), true)
|
||||||
|
$1_LD_OBJ_ARG := `cat $$($1_OBJ_FILE_LIST)`
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Unfortunately the @-file trick does not work reliably when using clang.
|
||||||
|
# Clang does not propagate the @-file parameter to the ld sub process, but
|
||||||
|
# instead puts the full content on the command line. At least the llvm ld
|
||||||
|
# does not even support an @-file.
|
||||||
|
#
|
||||||
|
# When linking a large amount of object files, we risk hitting the limit
|
||||||
|
# of the command line length even on posix systems if the path length of
|
||||||
|
# the output dir is very long due to our use of absolute paths. To
|
||||||
|
# mitigate this, use paths relative to the output dir when linking over
|
||||||
|
# 500 files with clang and the output dir path is deep.
|
||||||
|
ifneq ($$(word 500, $$($1_ALL_OBJS)), )
|
||||||
|
ifeq ($$(TOOLCHAIN_TYPE), clang)
|
||||||
|
# There is no strlen function in make, but checking path depth is a
|
||||||
|
# reasonable approximation.
|
||||||
|
ifneq ($$(word 10, $$(subst /, ,$$(OUTPUTDIR))), )
|
||||||
|
$1_LINK_OBJS_RELATIVE := true
|
||||||
|
$1_ALL_OBJS_RELATIVE := $$(patsubst $$(OUTPUTDIR)/%, %, $$($1_ALL_OBJS))
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endef
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2020, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2020, 2024, 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
|
||||||
@@ -36,6 +36,10 @@ MACOS_X64_BOOT_JDK_EXT=tar.gz
|
|||||||
MACOS_X64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk21/fd2272bbf8e04c3dbaee13770090416c/35/GPL/openjdk-21_macos-x64_bin.tar.gz
|
MACOS_X64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk21/fd2272bbf8e04c3dbaee13770090416c/35/GPL/openjdk-21_macos-x64_bin.tar.gz
|
||||||
MACOS_X64_BOOT_JDK_SHA256=af32e84c11009f72f783fdcdc9917efc277893988f097e198e2576875d1e88c1
|
MACOS_X64_BOOT_JDK_SHA256=af32e84c11009f72f783fdcdc9917efc277893988f097e198e2576875d1e88c1
|
||||||
|
|
||||||
|
MACOS_AARCH64_BOOT_JDK_EXT=tar.gz
|
||||||
|
MACOS_AARCH64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk21/fd2272bbf8e04c3dbaee13770090416c/35/GPL/openjdk-21_macos-aarch64_bin.tar.gz
|
||||||
|
MACOS_AARCH64_BOOT_JDK_SHA256=f12e1e0a2dffc847951598f597c8ee60fb0913932f24b2b09c62cfd2f0f4dfb9
|
||||||
|
|
||||||
WINDOWS_X64_BOOT_JDK_EXT=zip
|
WINDOWS_X64_BOOT_JDK_EXT=zip
|
||||||
WINDOWS_X64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk21/fd2272bbf8e04c3dbaee13770090416c/35/GPL/openjdk-21_windows-x64_bin.zip
|
WINDOWS_X64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk21/fd2272bbf8e04c3dbaee13770090416c/35/GPL/openjdk-21_windows-x64_bin.zip
|
||||||
WINDOWS_X64_BOOT_JDK_SHA256=5434faaf029e66e7ce6e75770ca384de476750984a7d2881ef7686894c4b4944
|
WINDOWS_X64_BOOT_JDK_SHA256=5434faaf029e66e7ce6e75770ca384de476750984a7d2881ef7686894c4b4944
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2015, 2024, 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
|
||||||
@@ -441,7 +441,7 @@ var getJibProfilesProfiles = function (input, common, data) {
|
|||||||
"macosx-x64": {
|
"macosx-x64": {
|
||||||
target_os: "macosx",
|
target_os: "macosx",
|
||||||
target_cpu: "x64",
|
target_cpu: "x64",
|
||||||
dependencies: ["devkit", "gtest", "pandoc"],
|
dependencies: ["devkit", "gtest", "graphviz", "pandoc"],
|
||||||
configure_args: concat(common.configure_args_64bit, "--with-zlib=system",
|
configure_args: concat(common.configure_args_64bit, "--with-zlib=system",
|
||||||
"--with-macosx-version-max=11.00.00",
|
"--with-macosx-version-max=11.00.00",
|
||||||
"--enable-compatible-cds-alignment",
|
"--enable-compatible-cds-alignment",
|
||||||
@@ -453,7 +453,7 @@ var getJibProfilesProfiles = function (input, common, data) {
|
|||||||
"macosx-aarch64": {
|
"macosx-aarch64": {
|
||||||
target_os: "macosx",
|
target_os: "macosx",
|
||||||
target_cpu: "aarch64",
|
target_cpu: "aarch64",
|
||||||
dependencies: ["devkit", "gtest", "pandoc"],
|
dependencies: ["devkit", "gtest", "graphviz", "pandoc"],
|
||||||
configure_args: concat(common.configure_args_64bit,
|
configure_args: concat(common.configure_args_64bit,
|
||||||
"--with-macosx-version-max=11.00.00"),
|
"--with-macosx-version-max=11.00.00"),
|
||||||
},
|
},
|
||||||
@@ -486,7 +486,7 @@ var getJibProfilesProfiles = function (input, common, data) {
|
|||||||
"linux-aarch64": {
|
"linux-aarch64": {
|
||||||
target_os: "linux",
|
target_os: "linux",
|
||||||
target_cpu: "aarch64",
|
target_cpu: "aarch64",
|
||||||
dependencies: ["devkit", "gtest", "build_devkit", "pandoc"],
|
dependencies: ["devkit", "gtest", "build_devkit", "graphviz", "pandoc"],
|
||||||
configure_args: [
|
configure_args: [
|
||||||
"--with-zlib=system",
|
"--with-zlib=system",
|
||||||
"--disable-dtrace",
|
"--disable-dtrace",
|
||||||
@@ -1181,12 +1181,6 @@ var getJibProfilesDependencies = function (input, common) {
|
|||||||
revision: (input.build_cpu == "x64" ? "Xcode11.3.1-MacOSX10.15+1.2" : devkit_platform_revisions[devkit_platform])
|
revision: (input.build_cpu == "x64" ? "Xcode11.3.1-MacOSX10.15+1.2" : devkit_platform_revisions[devkit_platform])
|
||||||
},
|
},
|
||||||
|
|
||||||
cups: {
|
|
||||||
organization: common.organization,
|
|
||||||
ext: "tar.gz",
|
|
||||||
revision: "1.0118+1.0"
|
|
||||||
},
|
|
||||||
|
|
||||||
jtreg: {
|
jtreg: {
|
||||||
server: "jpg",
|
server: "jpg",
|
||||||
product: "jtreg",
|
product: "jtreg",
|
||||||
@@ -1237,7 +1231,7 @@ var getJibProfilesDependencies = function (input, common) {
|
|||||||
graphviz: {
|
graphviz: {
|
||||||
organization: common.organization,
|
organization: common.organization,
|
||||||
ext: "tar.gz",
|
ext: "tar.gz",
|
||||||
revision: "2.38.0-1+1.1",
|
revision: "9.0.0+1.0",
|
||||||
module: "graphviz-" + input.target_platform,
|
module: "graphviz-" + input.target_platform,
|
||||||
configure_args: "DOT=" + input.get("graphviz", "install_path") + "/dot",
|
configure_args: "DOT=" + input.get("graphviz", "install_path") + "/dot",
|
||||||
environment_path: input.get("graphviz", "install_path")
|
environment_path: input.get("graphviz", "install_path")
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2014, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2014, 2024, 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
|
||||||
@@ -91,3 +91,50 @@ PLATFORM_MODULES= \
|
|||||||
PLATFORM_MODULES_windows= \
|
PLATFORM_MODULES_windows= \
|
||||||
jdk.crypto.mscapi \
|
jdk.crypto.mscapi \
|
||||||
#
|
#
|
||||||
|
|
||||||
|
NATIVE_ACCESS_MODULES= \
|
||||||
|
java.base \
|
||||||
|
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.charsets \
|
||||||
|
jdk.crypto.cryptoki \
|
||||||
|
jdk.dynalink \
|
||||||
|
jdk.httpserver \
|
||||||
|
jdk.incubator.vector \
|
||||||
|
jdk.internal.vm.ci \
|
||||||
|
jdk.jfr \
|
||||||
|
jdk.jsobject \
|
||||||
|
jdk.localedata \
|
||||||
|
jdk.management \
|
||||||
|
jdk.management.agent \
|
||||||
|
jdk.management.jfr \
|
||||||
|
jdk.naming.dns \
|
||||||
|
jdk.naming.rmi \
|
||||||
|
jdk.net \
|
||||||
|
jdk.nio.mapmode \
|
||||||
|
jdk.sctp \
|
||||||
|
jdk.security.auth \
|
||||||
|
jdk.security.jgss \
|
||||||
|
jdk.unsupported \
|
||||||
|
jdk.xml.dom \
|
||||||
|
jdk.zipfs \
|
||||||
|
#
|
||||||
|
|||||||
@@ -1,26 +0,0 @@
|
|||||||
#
|
|
||||||
# Copyright (c) 2016, 2022, Oracle and/or its affiliates. All rights reserved.
|
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
||||||
#
|
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
|
||||||
# under the terms of the GNU General Public License version 2 only, as
|
|
||||||
# published by the Free Software Foundation.
|
|
||||||
#
|
|
||||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
# version 2 for more details (a copy is included in the LICENSE file that
|
|
||||||
# accompanied this code).
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License version
|
|
||||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
|
||||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
#
|
|
||||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
||||||
# or visit www.oracle.com if you need additional information or have any
|
|
||||||
# questions.
|
|
||||||
#
|
|
||||||
|
|
||||||
JVM_handle_aix_signal
|
|
||||||
numa_error
|
|
||||||
numa_warn
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
#
|
|
||||||
# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
|
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
||||||
#
|
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
|
||||||
# under the terms of the GNU General Public License version 2 only, as
|
|
||||||
# published by the Free Software Foundation.
|
|
||||||
#
|
|
||||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
# version 2 for more details (a copy is included in the LICENSE file that
|
|
||||||
# accompanied this code).
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License version
|
|
||||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
|
||||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
#
|
|
||||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
||||||
# or visit www.oracle.com if you need additional information or have any
|
|
||||||
# questions.
|
|
||||||
#
|
|
||||||
|
|
||||||
JVM_AccessVMBooleanFlag
|
|
||||||
JVM_AccessVMIntFlag
|
|
||||||
JVM_VMBreakPoint
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
#
|
|
||||||
# Copyright (c) 2016, 2022, Oracle and/or its affiliates. All rights reserved.
|
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
||||||
#
|
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
|
||||||
# under the terms of the GNU General Public License version 2 only, as
|
|
||||||
# published by the Free Software Foundation.
|
|
||||||
#
|
|
||||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
# version 2 for more details (a copy is included in the LICENSE file that
|
|
||||||
# accompanied this code).
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License version
|
|
||||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
|
||||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
#
|
|
||||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
||||||
# or visit www.oracle.com if you need additional information or have any
|
|
||||||
# questions.
|
|
||||||
#
|
|
||||||
|
|
||||||
JVM_handle_linux_signal
|
|
||||||
JVM_IsUseContainerSupport
|
|
||||||
numa_error
|
|
||||||
numa_warn
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
#
|
|
||||||
# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
|
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
||||||
#
|
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
|
||||||
# under the terms of the GNU General Public License version 2 only, as
|
|
||||||
# published by the Free Software Foundation.
|
|
||||||
#
|
|
||||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
# version 2 for more details (a copy is included in the LICENSE file that
|
|
||||||
# accompanied this code).
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License version
|
|
||||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
|
||||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
#
|
|
||||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
||||||
# or visit www.oracle.com if you need additional information or have any
|
|
||||||
# questions.
|
|
||||||
#
|
|
||||||
|
|
||||||
JVM_handle_bsd_signal
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
#
|
|
||||||
# Copyright (c) 2016, 2023, Oracle and/or its affiliates. All rights reserved.
|
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
||||||
#
|
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
|
||||||
# under the terms of the GNU General Public License version 2 only, as
|
|
||||||
# published by the Free Software Foundation.
|
|
||||||
#
|
|
||||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
# version 2 for more details (a copy is included in the LICENSE file that
|
|
||||||
# accompanied this code).
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License version
|
|
||||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
|
||||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
#
|
|
||||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
||||||
# or visit www.oracle.com if you need additional information or have any
|
|
||||||
# questions.
|
|
||||||
#
|
|
||||||
|
|
||||||
AsyncGetCallTrace
|
|
||||||
jio_fprintf
|
|
||||||
jio_printf
|
|
||||||
jio_snprintf
|
|
||||||
jio_vfprintf
|
|
||||||
jio_vsnprintf
|
|
||||||
JNI_CreateJavaVM
|
|
||||||
JNI_GetCreatedJavaVMs
|
|
||||||
JNI_GetDefaultJavaVMInitArgs
|
|
||||||
JVM_IsForeignLinkerSupported
|
|
||||||
JVM_FindClassFromBootLoader
|
|
||||||
JVM_InitAgentProperties
|
|
||||||
@@ -1,232 +0,0 @@
|
|||||||
#
|
|
||||||
# Copyright (c) 2016, 2023, Oracle and/or its affiliates. All rights reserved.
|
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
||||||
#
|
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
|
||||||
# under the terms of the GNU General Public License version 2 only, as
|
|
||||||
# published by the Free Software Foundation.
|
|
||||||
#
|
|
||||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
# version 2 for more details (a copy is included in the LICENSE file that
|
|
||||||
# accompanied this code).
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License version
|
|
||||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
|
||||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
#
|
|
||||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
||||||
# or visit www.oracle.com if you need additional information or have any
|
|
||||||
# questions.
|
|
||||||
#
|
|
||||||
|
|
||||||
JVM_ActiveProcessorCount
|
|
||||||
JVM_AreNestMates
|
|
||||||
JVM_ArrayCopy
|
|
||||||
JVM_AssertionStatusDirectives
|
|
||||||
JVM_BeforeHalt
|
|
||||||
JVM_CallStackWalk
|
|
||||||
JVM_Clone
|
|
||||||
JVM_ConstantPoolGetClassAt
|
|
||||||
JVM_ConstantPoolGetClassAtIfLoaded
|
|
||||||
JVM_ConstantPoolGetClassRefIndexAt
|
|
||||||
JVM_ConstantPoolGetDoubleAt
|
|
||||||
JVM_ConstantPoolGetFieldAt
|
|
||||||
JVM_ConstantPoolGetFieldAtIfLoaded
|
|
||||||
JVM_ConstantPoolGetFloatAt
|
|
||||||
JVM_ConstantPoolGetIntAt
|
|
||||||
JVM_ConstantPoolGetLongAt
|
|
||||||
JVM_ConstantPoolGetMemberRefInfoAt
|
|
||||||
JVM_ConstantPoolGetMethodAt
|
|
||||||
JVM_ConstantPoolGetMethodAtIfLoaded
|
|
||||||
JVM_ConstantPoolGetNameAndTypeRefIndexAt
|
|
||||||
JVM_ConstantPoolGetNameAndTypeRefInfoAt
|
|
||||||
JVM_ConstantPoolGetSize
|
|
||||||
JVM_ConstantPoolGetStringAt
|
|
||||||
JVM_ConstantPoolGetTagAt
|
|
||||||
JVM_ConstantPoolGetUTF8At
|
|
||||||
JVM_CurrentCarrierThread
|
|
||||||
JVM_CurrentThread
|
|
||||||
JVM_SetCurrentThread
|
|
||||||
JVM_CurrentTimeMillis
|
|
||||||
JVM_DefineClass
|
|
||||||
JVM_DefineClassWithSource
|
|
||||||
JVM_DesiredAssertionStatus
|
|
||||||
JVM_DumpAllStacks
|
|
||||||
JVM_DumpClassListToFile
|
|
||||||
JVM_DumpDynamicArchive
|
|
||||||
JVM_DumpThreads
|
|
||||||
JVM_ExpandStackFrameInfo
|
|
||||||
JVM_FillInStackTrace
|
|
||||||
JVM_FindClassFromCaller
|
|
||||||
JVM_FindClassFromClass
|
|
||||||
JVM_FindLibraryEntry
|
|
||||||
JVM_FindLoadedClass
|
|
||||||
JVM_FindPrimitiveClass
|
|
||||||
JVM_FindSignal
|
|
||||||
JVM_FreeMemory
|
|
||||||
JVM_GC
|
|
||||||
JVM_GetAllThreads
|
|
||||||
JVM_GetAndClearReferencePendingList
|
|
||||||
JVM_GetArrayElement
|
|
||||||
JVM_GetArrayLength
|
|
||||||
JVM_GetCallerClass
|
|
||||||
JVM_GetClassAccessFlags
|
|
||||||
JVM_GetClassAnnotations
|
|
||||||
JVM_GetClassConstantPool
|
|
||||||
JVM_GetClassContext
|
|
||||||
JVM_GetClassCPEntriesCount
|
|
||||||
JVM_GetClassCPTypes
|
|
||||||
JVM_GetClassDeclaredConstructors
|
|
||||||
JVM_GetClassDeclaredFields
|
|
||||||
JVM_GetClassDeclaredMethods
|
|
||||||
JVM_GetClassFieldsCount
|
|
||||||
JVM_GetClassFileVersion
|
|
||||||
JVM_GetClassInterfaces
|
|
||||||
JVM_GetClassMethodsCount
|
|
||||||
JVM_GetClassModifiers
|
|
||||||
JVM_GetClassNameUTF
|
|
||||||
JVM_GetClassSignature
|
|
||||||
JVM_GetClassSigners
|
|
||||||
JVM_GetClassTypeAnnotations
|
|
||||||
JVM_GetCPClassNameUTF
|
|
||||||
JVM_GetCPFieldClassNameUTF
|
|
||||||
JVM_GetCPFieldModifiers
|
|
||||||
JVM_GetCPFieldNameUTF
|
|
||||||
JVM_GetCPFieldSignatureUTF
|
|
||||||
JVM_GetCPMethodClassNameUTF
|
|
||||||
JVM_GetCPMethodModifiers
|
|
||||||
JVM_GetCPMethodNameUTF
|
|
||||||
JVM_GetCPMethodSignatureUTF
|
|
||||||
JVM_GetDeclaredClasses
|
|
||||||
JVM_GetDeclaringClass
|
|
||||||
JVM_GetEnclosingMethodInfo
|
|
||||||
JVM_GetExtendedNPEMessage
|
|
||||||
JVM_GetFieldIxModifiers
|
|
||||||
JVM_GetFieldTypeAnnotations
|
|
||||||
JVM_GetInheritedAccessControlContext
|
|
||||||
JVM_GetManagement
|
|
||||||
JVM_GetMethodIxArgsSize
|
|
||||||
JVM_GetMethodIxByteCode
|
|
||||||
JVM_GetMethodIxByteCodeLength
|
|
||||||
JVM_GetMethodIxExceptionIndexes
|
|
||||||
JVM_GetMethodIxExceptionsCount
|
|
||||||
JVM_GetMethodIxExceptionTableEntry
|
|
||||||
JVM_GetMethodIxExceptionTableLength
|
|
||||||
JVM_GetMethodIxLocalsCount
|
|
||||||
JVM_GetMethodIxMaxStack
|
|
||||||
JVM_GetMethodIxModifiers
|
|
||||||
JVM_GetMethodIxNameUTF
|
|
||||||
JVM_GetMethodIxSignatureUTF
|
|
||||||
JVM_GetMethodParameters
|
|
||||||
JVM_GetMethodTypeAnnotations
|
|
||||||
JVM_GetNanoTimeAdjustment
|
|
||||||
JVM_GetNestHost
|
|
||||||
JVM_GetNestMembers
|
|
||||||
JVM_GetNextThreadIdOffset
|
|
||||||
JVM_GetPermittedSubclasses
|
|
||||||
JVM_GetPrimitiveArrayElement
|
|
||||||
JVM_GetProperties
|
|
||||||
JVM_GetProtectionDomain
|
|
||||||
JVM_GetRandomSeedForDumping
|
|
||||||
JVM_GetRecordComponents
|
|
||||||
JVM_GetSimpleBinaryName
|
|
||||||
JVM_GetStackAccessControlContext
|
|
||||||
JVM_GetSystemPackage
|
|
||||||
JVM_GetSystemPackages
|
|
||||||
JVM_GetTemporaryDirectory
|
|
||||||
JVM_GetVmArguments
|
|
||||||
JVM_Halt
|
|
||||||
JVM_HasReferencePendingList
|
|
||||||
JVM_HoldsLock
|
|
||||||
JVM_GetStackTrace
|
|
||||||
JVM_IHashCode
|
|
||||||
JVM_InitClassName
|
|
||||||
JVM_InitStackTraceElement
|
|
||||||
JVM_InitStackTraceElementArray
|
|
||||||
JVM_InitializeFromArchive
|
|
||||||
JVM_InternString
|
|
||||||
JVM_Interrupt
|
|
||||||
JVM_InvokeMethod
|
|
||||||
JVM_IsArrayClass
|
|
||||||
JVM_IsCDSDumpingEnabled
|
|
||||||
JVM_IsConstructorIx
|
|
||||||
JVM_IsDumpingClassList
|
|
||||||
JVM_IsFinalizationEnabled
|
|
||||||
JVM_IsHiddenClass
|
|
||||||
JVM_IsInterface
|
|
||||||
JVM_IsPreviewEnabled
|
|
||||||
JVM_IsContinuationsSupported
|
|
||||||
JVM_IsPrimitiveClass
|
|
||||||
JVM_IsRecord
|
|
||||||
JVM_IsSameClassPackage
|
|
||||||
JVM_IsSharingEnabled
|
|
||||||
JVM_IsSupportedJNIVersion
|
|
||||||
JVM_IsVMGeneratedMethodIx
|
|
||||||
JVM_LatestUserDefinedLoader
|
|
||||||
JVM_LoadZipLibrary
|
|
||||||
JVM_LoadLibrary
|
|
||||||
JVM_LookupDefineClass
|
|
||||||
JVM_LookupLambdaProxyClassFromArchive
|
|
||||||
JVM_LogLambdaFormInvoker
|
|
||||||
JVM_MaxMemory
|
|
||||||
JVM_MaxObjectInspectionAge
|
|
||||||
JVM_MonitorNotify
|
|
||||||
JVM_MonitorNotifyAll
|
|
||||||
JVM_MonitorWait
|
|
||||||
JVM_MoreStackWalk
|
|
||||||
JVM_NanoTime
|
|
||||||
JVM_NativePath
|
|
||||||
JVM_NewArray
|
|
||||||
JVM_NewInstanceFromConstructor
|
|
||||||
JVM_NewMultiArray
|
|
||||||
JVM_PhantomReferenceRefersTo
|
|
||||||
JVM_PrintWarningAtDynamicAgentLoad
|
|
||||||
JVM_RaiseSignal
|
|
||||||
JVM_RawMonitorCreate
|
|
||||||
JVM_RawMonitorDestroy
|
|
||||||
JVM_RawMonitorEnter
|
|
||||||
JVM_RawMonitorExit
|
|
||||||
JVM_ReferenceClear
|
|
||||||
JVM_ReferenceRefersTo
|
|
||||||
JVM_RegisterContinuationMethods
|
|
||||||
JVM_RegisterLambdaProxyClassForArchiving
|
|
||||||
JVM_RegisterSignal
|
|
||||||
JVM_ReleaseUTF
|
|
||||||
JVM_ReportFinalizationComplete
|
|
||||||
JVM_SetArrayElement
|
|
||||||
JVM_SetClassSigners
|
|
||||||
JVM_SetNativeThreadName
|
|
||||||
JVM_SetPrimitiveArrayElement
|
|
||||||
JVM_SetStackWalkContinuation
|
|
||||||
JVM_SetThreadPriority
|
|
||||||
JVM_SleepNanos
|
|
||||||
JVM_StartThread
|
|
||||||
JVM_TotalMemory
|
|
||||||
JVM_UnloadLibrary
|
|
||||||
JVM_WaitForReferencePendingList
|
|
||||||
JVM_Yield
|
|
||||||
|
|
||||||
# Module related API's
|
|
||||||
JVM_AddModuleExports
|
|
||||||
JVM_AddModuleExportsToAll
|
|
||||||
JVM_AddModuleExportsToAllUnnamed
|
|
||||||
JVM_AddReadsModule
|
|
||||||
JVM_DefineArchivedModules
|
|
||||||
JVM_DefineModule
|
|
||||||
JVM_SetBootLoaderUnnamedModule
|
|
||||||
|
|
||||||
# Virtual thread notifications for JVMTI
|
|
||||||
JVM_VirtualThreadStart
|
|
||||||
JVM_VirtualThreadEnd
|
|
||||||
JVM_VirtualThreadMount
|
|
||||||
JVM_VirtualThreadUnmount
|
|
||||||
JVM_VirtualThreadHideFrames
|
|
||||||
|
|
||||||
# Scoped values
|
|
||||||
JVM_EnsureMaterializedForStackWalk_func
|
|
||||||
JVM_FindScopedValueBindings
|
|
||||||
JVM_ScopedValueCache
|
|
||||||
JVM_SetScopedValueCache
|
|
||||||
#
|
|
||||||
11
make/data/hotspot-symbols/version-script.txt
Normal file
11
make/data/hotspot-symbols/version-script.txt
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
SUNWprivate_1.1 {
|
||||||
|
global:
|
||||||
|
*;
|
||||||
|
|
||||||
|
local:
|
||||||
|
__bss_start;
|
||||||
|
_edata;
|
||||||
|
_end;
|
||||||
|
_fini;
|
||||||
|
_init;
|
||||||
|
};
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2013, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2013, 2024, 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
|
||||||
@@ -548,6 +548,7 @@ $(BUILDDIR)/$(gcc_ver)/Makefile \
|
|||||||
$(PATHPRE) $(ENVS) $(GCC_CFG) $(EXTRA_CFLAGS) \
|
$(PATHPRE) $(ENVS) $(GCC_CFG) $(EXTRA_CFLAGS) \
|
||||||
$(CONFIG) \
|
$(CONFIG) \
|
||||||
--with-sysroot=$(SYSROOT) \
|
--with-sysroot=$(SYSROOT) \
|
||||||
|
--with-debug-prefix-map=$(OUTPUT_ROOT)=devkit \
|
||||||
--enable-languages=c,c++ \
|
--enable-languages=c,c++ \
|
||||||
--enable-shared \
|
--enable-shared \
|
||||||
--disable-nls \
|
--disable-nls \
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash -e
|
#!/bin/bash
|
||||||
#
|
#
|
||||||
# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2017, 2024, 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,38 +26,106 @@
|
|||||||
# Create a bundle in the current directory, containing what's needed to run
|
# Create a bundle in the current directory, containing what's needed to run
|
||||||
# the 'dot' program from the graphviz suite by the OpenJDK build.
|
# the 'dot' program from the graphviz suite by the OpenJDK build.
|
||||||
|
|
||||||
TMPDIR=`mktemp -d -t graphvizbundle-XXXX`
|
set -eux
|
||||||
trap "rm -rf \"$TMPDIR\"" EXIT
|
|
||||||
|
|
||||||
ORIG_DIR=`pwd`
|
mydir="$(cd -- $(dirname ${BASH_SOURCE[0]}) && pwd)"
|
||||||
cd "$TMPDIR"
|
me="${mydir}/$(basename ${BASH_SOURCE[0]})"
|
||||||
GRAPHVIZ_VERSION=2.38.0-1
|
|
||||||
PACKAGE_VERSION=1.1
|
|
||||||
TARGET_PLATFORM=linux_x64
|
|
||||||
BUNDLE_NAME=graphviz-$TARGET_PLATFORM-$GRAPHVIZ_VERSION+$PACKAGE_VERSION.tar.gz
|
|
||||||
wget http://www.graphviz.org/pub/graphviz/stable/redhat/el6/x86_64/os/graphviz-$GRAPHVIZ_VERSION.el6.x86_64.rpm
|
|
||||||
wget http://www.graphviz.org/pub/graphviz/stable/redhat/el6/x86_64/os/graphviz-libs-$GRAPHVIZ_VERSION.el6.x86_64.rpm
|
|
||||||
wget http://www.graphviz.org/pub/graphviz/stable/redhat/el6/x86_64/os/graphviz-plugins-core-$GRAPHVIZ_VERSION.el6.x86_64.rpm
|
|
||||||
wget http://www.graphviz.org/pub/graphviz/stable/redhat/el6/x86_64/os/graphviz-plugins-x-$GRAPHVIZ_VERSION.el6.x86_64.rpm
|
|
||||||
wget http://public-yum.oracle.com/repo/OracleLinux/OL6/latest/x86_64/getPackage/libtool-ltdl-2.2.6-15.5.el6.x86_64.rpm
|
|
||||||
|
|
||||||
mkdir graphviz
|
EXPAT_VERSION="2.6.0"
|
||||||
cd graphviz
|
EXPAT_URL="https://github.com/libexpat/libexpat/releases/download/R_${EXPAT_VERSION//./_}/expat-${EXPAT_VERSION}.tar.gz"
|
||||||
for rpm in ../*.rpm; do
|
EXPAT_SHA256="a13447b9aa67d7c860783fdf6820f33ebdea996900d6d8bbc50a628f55f099f7"
|
||||||
rpm2cpio $rpm | cpio --extract --make-directories
|
|
||||||
done
|
|
||||||
|
|
||||||
cat > dot << EOF
|
GRAPHVIZ_VERSION="9.0.0"
|
||||||
|
GRAPHVIZ_URL="https://gitlab.com/api/v4/projects/4207231/packages/generic/graphviz-releases/${GRAPHVIZ_VERSION}/graphviz-${GRAPHVIZ_VERSION}.tar.xz"
|
||||||
|
GRAPHVIZ_SHA256="6c9afda06a732af7658c2619ee713d2545818c3ff19b7b8fd48effcd06d57bf6"
|
||||||
|
|
||||||
|
uname_s="$(uname -s)"
|
||||||
|
case ${uname_s} in
|
||||||
|
Linux)
|
||||||
|
bundle_os="linux"
|
||||||
|
shacmd="sha256sum --strict --check -"
|
||||||
|
lib_path_var="LD_LIBRARY_PATH"
|
||||||
|
;;
|
||||||
|
Darwin)
|
||||||
|
bundle_os="macosx"
|
||||||
|
shacmd="shasum -a 256 --strict --check -"
|
||||||
|
lib_path_var="DYLD_LIBRARY_PATH"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unknown OS: ${uname_s}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
uname_m="$(uname -m)"
|
||||||
|
case ${uname_m} in
|
||||||
|
aarch64|arm64)
|
||||||
|
bundle_cpu="aarch64"
|
||||||
|
;;
|
||||||
|
x86_64)
|
||||||
|
bundle_cpu="x64"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
bundle_platform="${bundle_os}_${bundle_cpu}"
|
||||||
|
|
||||||
|
build_dir="${mydir}/../../build/graphviz"
|
||||||
|
download_dir="${build_dir}/download"
|
||||||
|
install_dir="${build_dir}/result/graphviz-${bundle_platform}-${GRAPHVIZ_VERSION}"
|
||||||
|
bundle_file="${install_dir}.tar.gz"
|
||||||
|
|
||||||
|
expat_dir="${build_dir}/expat"
|
||||||
|
expat_src_dir="${expat_dir}/src"
|
||||||
|
|
||||||
|
graphviz_dir="${build_dir}/graphviz"
|
||||||
|
graphviz_src_dir="${graphviz_dir}/src"
|
||||||
|
graphviz_doc_dir="${install_dir}/doc"
|
||||||
|
|
||||||
|
mkdir -p "${build_dir}"
|
||||||
|
cd "${build_dir}"
|
||||||
|
|
||||||
|
download_and_unpack() {
|
||||||
|
local url="$1"
|
||||||
|
local sha256="$2"
|
||||||
|
local file="$3"
|
||||||
|
local dir="$4"
|
||||||
|
|
||||||
|
mkdir -p "$(dirname "${file}")"
|
||||||
|
if [ ! -f "${file}" ]; then
|
||||||
|
curl -L -o "${file}" "${url}"
|
||||||
|
fi
|
||||||
|
echo "${sha256} ${file}" | ${shacmd}
|
||||||
|
if [ ! -d "${dir}" ]; then
|
||||||
|
mkdir -p "${dir}"
|
||||||
|
tar --extract --file "${file}" --directory "${dir}" --strip-components 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
download_and_unpack "${EXPAT_URL}" "${EXPAT_SHA256}" "${download_dir}/expat.tar.gz" "${expat_src_dir}"
|
||||||
|
download_and_unpack "${GRAPHVIZ_URL}" "${GRAPHVIZ_SHA256}" "${download_dir}/graphviz.tar.gz" "${graphviz_src_dir}"
|
||||||
|
|
||||||
|
(
|
||||||
|
cd "${expat_src_dir}"
|
||||||
|
./configure --prefix="${install_dir}"
|
||||||
|
make -j install
|
||||||
|
)
|
||||||
|
|
||||||
|
(
|
||||||
|
cd "${graphviz_src_dir}"
|
||||||
|
./configure --prefix="${install_dir}" EXPAT_CFLAGS="-I${install_dir}/include" EXPAT_LIBS="-L${install_dir}/lib -lexpat"
|
||||||
|
make -j install
|
||||||
|
)
|
||||||
|
|
||||||
|
cat > "${install_dir}/dot" << EOF
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Get an absolute path to this script
|
# Get an absolute path to this script
|
||||||
this_script_dir=\`dirname \$0\`
|
this_script_dir="\$(dirname \$0)"
|
||||||
this_script_dir=\`cd \$this_script_dir > /dev/null && pwd\`
|
this_script_dir="\$(cd \${this_script_dir} > /dev/null && pwd)"
|
||||||
export LD_LIBRARY_PATH="\$this_script_dir/usr/lib64:\$LD_LIBRARY_PATH"
|
export ${lib_path_var}="\${this_script_dir}/lib:\${this_script_dir}/lib/graphviz"
|
||||||
exec \$this_script_dir/usr/bin/dot "\$@"
|
exec "\${this_script_dir}/bin/dot" "\$@"
|
||||||
EOF
|
EOF
|
||||||
chmod +x dot
|
chmod +x "${install_dir}/dot"
|
||||||
export LD_LIBRARY_PATH="$TMPDIR/graphviz/usr/lib64:$LD_LIBRARY_PATH"
|
|
||||||
# create config file
|
# create config file
|
||||||
./dot -c
|
"${install_dir}/dot" -c
|
||||||
tar -cvzf ../$BUNDLE_NAME *
|
|
||||||
cp ../$BUNDLE_NAME "$ORIG_DIR"
|
cp "${me}" "${install_dir}"
|
||||||
|
|
||||||
|
tar --create --gzip --file "${bundle_file}" -C "${install_dir}" .
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2013, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2013, 2024, 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
|
||||||
@@ -45,13 +45,12 @@ ifeq ($(call check-jvm-feature, compiler2), true)
|
|||||||
ADLC_CFLAGS := -qnortti -qeh -q64 -DAIX
|
ADLC_CFLAGS := -qnortti -qeh -q64 -DAIX
|
||||||
endif
|
endif
|
||||||
else ifeq ($(call isBuildOs, windows), true)
|
else ifeq ($(call isBuildOs, windows), true)
|
||||||
ADLC_LDFLAGS += -nologo
|
|
||||||
ADLC_CFLAGS := -nologo -EHsc
|
ADLC_CFLAGS := -nologo -EHsc
|
||||||
ADLC_CFLAGS_WARNINGS := -W3 -D_CRT_SECURE_NO_WARNINGS
|
ADLC_CFLAGS_WARNINGS := -W3 -D_CRT_SECURE_NO_WARNINGS
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Set the C++ standard
|
# Set the C++ standard
|
||||||
ADLC_CFLAGS += $(ADLC_LANGSTD_CXXFLAG)
|
ADLC_CFLAGS += $(ADLC_LANGSTD_CXXFLAGS)
|
||||||
|
|
||||||
# NOTE: The old build didn't set -DASSERT for windows but it doesn't seem to
|
# NOTE: The old build didn't set -DASSERT for windows but it doesn't seem to
|
||||||
# hurt.
|
# hurt.
|
||||||
@@ -72,7 +71,8 @@ ifeq ($(call check-jvm-feature, compiler2), true)
|
|||||||
$(eval $(call SetupNativeCompilation, BUILD_ADLC, \
|
$(eval $(call SetupNativeCompilation, BUILD_ADLC, \
|
||||||
NAME := adlc, \
|
NAME := adlc, \
|
||||||
TYPE := EXECUTABLE, \
|
TYPE := EXECUTABLE, \
|
||||||
TOOLCHAIN := TOOLCHAIN_BUILD_LINK_CXX, \
|
TARGET_TYPE := BUILD, \
|
||||||
|
LINK_TYPE := C++, \
|
||||||
SRC := $(TOPDIR)/src/hotspot/share/adlc, \
|
SRC := $(TOPDIR)/src/hotspot/share/adlc, \
|
||||||
EXTRA_FILES := $(TOPDIR)/src/hotspot/share/opto/opcodes.cpp, \
|
EXTRA_FILES := $(TOPDIR)/src/hotspot/share/opto/opcodes.cpp, \
|
||||||
CFLAGS := $(ADLC_CFLAGS) $(ADLC_CFLAGS_WARNINGS), \
|
CFLAGS := $(ADLC_CFLAGS) $(ADLC_CFLAGS_WARNINGS), \
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2016, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -26,14 +26,13 @@
|
|||||||
$(eval $(call IncludeCustomExtension, hotspot/lib/CompileGtest.gmk))
|
$(eval $(call IncludeCustomExtension, hotspot/lib/CompileGtest.gmk))
|
||||||
|
|
||||||
GTEST_TEST_SRC += $(TOPDIR)/test/hotspot/gtest
|
GTEST_TEST_SRC += $(TOPDIR)/test/hotspot/gtest
|
||||||
GTEST_LAUNCHER_SRC := $(TOPDIR)/test/hotspot/gtest/gtestLauncher.cpp
|
|
||||||
|
|
||||||
ifeq ($(ASAN_ENABLED), true)
|
ifeq ($(ASAN_ENABLED), true)
|
||||||
GTEST_LAUNCHER_SRC += $(TOPDIR)/make/data/asan/asan_default_options.cpp
|
GTEST_LAUNCHER_EXTRA_FILES += $(TOPDIR)/make/data/asan/asan_default_options.cpp
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(LSAN_ENABLED), true)
|
ifeq ($(LSAN_ENABLED), true)
|
||||||
GTEST_LAUNCHER_SRC += $(TOPDIR)/make/data/lsan/lsan_default_options.cpp
|
GTEST_LAUNCHER_EXTRA_FILES += $(TOPDIR)/make/data/lsan/lsan_default_options.cpp
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# On Windows, there are no internal debug symbols so must set copying to true
|
# On Windows, there are no internal debug symbols so must set copying to true
|
||||||
@@ -50,7 +49,7 @@ endif
|
|||||||
$(eval $(call SetupJdkLibrary, BUILD_GTEST_LIBGTEST, \
|
$(eval $(call SetupJdkLibrary, BUILD_GTEST_LIBGTEST, \
|
||||||
NAME := gtest, \
|
NAME := gtest, \
|
||||||
TYPE := STATIC_LIBRARY, \
|
TYPE := STATIC_LIBRARY, \
|
||||||
TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
|
LINK_TYPE := C++, \
|
||||||
OUTPUT_DIR := $(JVM_OUTPUTDIR)/libgtest, \
|
OUTPUT_DIR := $(JVM_OUTPUTDIR)/libgtest, \
|
||||||
OBJECT_DIR := $(JVM_OUTPUTDIR)/libgtest/objs, \
|
OBJECT_DIR := $(JVM_OUTPUTDIR)/libgtest/objs, \
|
||||||
SRC := \
|
SRC := \
|
||||||
@@ -59,6 +58,7 @@ $(eval $(call SetupJdkLibrary, BUILD_GTEST_LIBGTEST, \
|
|||||||
INCLUDE_FILES := gtest-all.cc gmock-all.cc, \
|
INCLUDE_FILES := gtest-all.cc gmock-all.cc, \
|
||||||
DISABLED_WARNINGS_gcc := undef unused-result format-nonliteral maybe-uninitialized, \
|
DISABLED_WARNINGS_gcc := undef unused-result format-nonliteral maybe-uninitialized, \
|
||||||
DISABLED_WARNINGS_clang := undef unused-result format-nonliteral, \
|
DISABLED_WARNINGS_clang := undef unused-result format-nonliteral, \
|
||||||
|
DEFAULT_CFLAGS := false, \
|
||||||
CFLAGS := $(JVM_CFLAGS) \
|
CFLAGS := $(JVM_CFLAGS) \
|
||||||
-I$(GTEST_FRAMEWORK_SRC)/googletest \
|
-I$(GTEST_FRAMEWORK_SRC)/googletest \
|
||||||
-I$(GTEST_FRAMEWORK_SRC)/googletest/include \
|
-I$(GTEST_FRAMEWORK_SRC)/googletest/include \
|
||||||
@@ -75,25 +75,11 @@ $(eval $(call SetupJdkLibrary, BUILD_GTEST_LIBGTEST, \
|
|||||||
TARGETS += $(BUILD_GTEST_LIBGTEST)
|
TARGETS += $(BUILD_GTEST_LIBGTEST)
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
ifeq ($(call isTargetOs, windows), true)
|
|
||||||
GTEST_JVM_MAPFILE := $(JVM_MAPFILE)
|
|
||||||
else
|
|
||||||
GTEST_JVM_MAPFILE := $(JVM_OUTPUTDIR)/gtest/mapfile
|
|
||||||
|
|
||||||
$(JVM_OUTPUTDIR)/gtest/symbols: $(JVM_OUTPUTDIR)/symbols
|
|
||||||
$(call MakeDir, $(@D))
|
|
||||||
( $(CAT) $< ; echo "runUnitTests" ) > $@
|
|
||||||
|
|
||||||
$(GTEST_JVM_MAPFILE): $(JVM_OUTPUTDIR)/gtest/symbols
|
|
||||||
$(call create-mapfile)
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Additional disabled warnings are due to code in the test source.
|
# Additional disabled warnings are due to code in the test source.
|
||||||
|
|
||||||
$(eval $(call SetupJdkLibrary, BUILD_GTEST_LIBJVM, \
|
$(eval $(call SetupJdkLibrary, BUILD_GTEST_LIBJVM, \
|
||||||
NAME := jvm, \
|
NAME := jvm, \
|
||||||
TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
|
LINK_TYPE := C++, \
|
||||||
OUTPUT_DIR := $(JVM_OUTPUTDIR)/gtest, \
|
OUTPUT_DIR := $(JVM_OUTPUTDIR)/gtest, \
|
||||||
OBJECT_DIR := $(JVM_OUTPUTDIR)/gtest/objs, \
|
OBJECT_DIR := $(JVM_OUTPUTDIR)/gtest/objs, \
|
||||||
SRC := $(GTEST_TEST_SRC), \
|
SRC := $(GTEST_TEST_SRC), \
|
||||||
@@ -102,6 +88,7 @@ $(eval $(call SetupJdkLibrary, BUILD_GTEST_LIBJVM, \
|
|||||||
EXCLUDE_PATTERNS := $(JVM_EXCLUDE_PATTERNS), \
|
EXCLUDE_PATTERNS := $(JVM_EXCLUDE_PATTERNS), \
|
||||||
EXTRA_OBJECT_FILES := $(filter-out %/operator_new$(OBJ_SUFFIX), \
|
EXTRA_OBJECT_FILES := $(filter-out %/operator_new$(OBJ_SUFFIX), \
|
||||||
$(BUILD_LIBJVM_ALL_OBJS)), \
|
$(BUILD_LIBJVM_ALL_OBJS)), \
|
||||||
|
DEFAULT_CFLAGS := false, \
|
||||||
CFLAGS := $(JVM_CFLAGS) \
|
CFLAGS := $(JVM_CFLAGS) \
|
||||||
-I$(GTEST_FRAMEWORK_SRC)/googletest/include \
|
-I$(GTEST_FRAMEWORK_SRC)/googletest/include \
|
||||||
-I$(GTEST_FRAMEWORK_SRC)/googlemock/include \
|
-I$(GTEST_FRAMEWORK_SRC)/googlemock/include \
|
||||||
@@ -117,14 +104,14 @@ $(eval $(call SetupJdkLibrary, BUILD_GTEST_LIBJVM, \
|
|||||||
DISABLED_WARNINGS_clang_test_g1ServiceThread.cpp := delete-abstract-non-virtual-dtor, \
|
DISABLED_WARNINGS_clang_test_g1ServiceThread.cpp := delete-abstract-non-virtual-dtor, \
|
||||||
DISABLED_WARNINGS_clang_test_logDecorations.cpp := missing-field-initializers, \
|
DISABLED_WARNINGS_clang_test_logDecorations.cpp := missing-field-initializers, \
|
||||||
DISABLED_WARNINGS_microsoft := $(DISABLED_WARNINGS_microsoft), \
|
DISABLED_WARNINGS_microsoft := $(DISABLED_WARNINGS_microsoft), \
|
||||||
|
LD_SET_ORIGIN := false, \
|
||||||
|
DEFAULT_LDFLAGS := false, \
|
||||||
LDFLAGS := $(JVM_LDFLAGS), \
|
LDFLAGS := $(JVM_LDFLAGS), \
|
||||||
LDFLAGS_unix := -L$(JVM_OUTPUTDIR)/libgtest, \
|
LDFLAGS_unix := -L$(JVM_OUTPUTDIR)/libgtest, \
|
||||||
|
JDK_LIBS_unix := -lgtest, \
|
||||||
|
JDK_LIBS_windows := $(JVM_OUTPUTDIR)/libgtest/gtest.lib, \
|
||||||
LIBS := $(JVM_LIBS), \
|
LIBS := $(JVM_LIBS), \
|
||||||
LIBS_unix := -lgtest, \
|
|
||||||
LIBS_windows := $(JVM_OUTPUTDIR)/libgtest/gtest.lib, \
|
|
||||||
OPTIMIZATION := $(JVM_OPTIMIZATION), \
|
OPTIMIZATION := $(JVM_OPTIMIZATION), \
|
||||||
MAPFILE := $(GTEST_JVM_MAPFILE), \
|
|
||||||
USE_MAPFILE_FOR_SYMBOLS := true, \
|
|
||||||
COPY_DEBUG_SYMBOLS := $(GTEST_COPY_DEBUG_SYMBOLS), \
|
COPY_DEBUG_SYMBOLS := $(GTEST_COPY_DEBUG_SYMBOLS), \
|
||||||
ZIP_EXTERNAL_DEBUG_SYMBOLS := false, \
|
ZIP_EXTERNAL_DEBUG_SYMBOLS := false, \
|
||||||
STRIP_SYMBOLS := false, \
|
STRIP_SYMBOLS := false, \
|
||||||
@@ -134,27 +121,34 @@ $(eval $(call SetupJdkLibrary, BUILD_GTEST_LIBJVM, \
|
|||||||
|
|
||||||
$(BUILD_GTEST_LIBJVM) : $(BUILD_GTEST_LIBGTEST)
|
$(BUILD_GTEST_LIBJVM) : $(BUILD_GTEST_LIBGTEST)
|
||||||
|
|
||||||
|
ifeq ($(call isTargetOs, windows), true)
|
||||||
|
$(BUILD_GTEST_LIBJVM_TARGET): $(WIN_EXPORT_FILE)
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
TARGETS += $(BUILD_GTEST_LIBJVM)
|
TARGETS += $(BUILD_GTEST_LIBJVM)
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
$(eval $(call SetupJdkExecutable, BUILD_GTEST_LAUNCHER, \
|
$(eval $(call SetupJdkExecutable, BUILD_GTEST_LAUNCHER, \
|
||||||
TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
|
|
||||||
NAME := gtestLauncher, \
|
NAME := gtestLauncher, \
|
||||||
TYPE := EXECUTABLE, \
|
TYPE := EXECUTABLE, \
|
||||||
|
LINK_TYPE := C++, \
|
||||||
OUTPUT_DIR := $(JVM_OUTPUTDIR)/gtest, \
|
OUTPUT_DIR := $(JVM_OUTPUTDIR)/gtest, \
|
||||||
EXTRA_FILES := $(GTEST_LAUNCHER_SRC), \
|
SRC := $(TOPDIR)/test/hotspot/gtest, \
|
||||||
|
INCLUDE_FILES := gtestLauncher.cpp, \
|
||||||
|
EXTRA_FILES := $(GTEST_LAUNCHER_EXTRA_FILES), \
|
||||||
OBJECT_DIR := $(JVM_OUTPUTDIR)/gtest/launcher-objs, \
|
OBJECT_DIR := $(JVM_OUTPUTDIR)/gtest/launcher-objs, \
|
||||||
|
DEFAULT_CFLAGS := false, \
|
||||||
CFLAGS := $(JVM_CFLAGS) \
|
CFLAGS := $(JVM_CFLAGS) \
|
||||||
-I$(GTEST_FRAMEWORK_SRC)/googletest \
|
-I$(GTEST_FRAMEWORK_SRC)/googletest \
|
||||||
-I$(GTEST_FRAMEWORK_SRC)/googletest/include \
|
-I$(GTEST_FRAMEWORK_SRC)/googletest/include \
|
||||||
-I$(GTEST_FRAMEWORK_SRC)/googlemock \
|
-I$(GTEST_FRAMEWORK_SRC)/googlemock \
|
||||||
-I$(GTEST_FRAMEWORK_SRC)/googlemock/include, \
|
-I$(GTEST_FRAMEWORK_SRC)/googlemock/include, \
|
||||||
LDFLAGS := $(LDFLAGS_JDKEXE), \
|
LD_SET_ORIGIN := false, \
|
||||||
LDFLAGS_unix := -L$(JVM_OUTPUTDIR)/gtest $(call SET_SHARED_LIBRARY_ORIGIN), \
|
LDFLAGS_unix := -L$(JVM_OUTPUTDIR)/gtest $(call SET_SHARED_LIBRARY_ORIGIN), \
|
||||||
LIBS_linux := $(LIBCXX), \
|
JDK_LIBS_unix := -ljvm, \
|
||||||
LIBS_unix := -ljvm, \
|
JDK_LIBS_windows := $(JVM_OUTPUTDIR)/gtest/objs/jvm.lib, \
|
||||||
LIBS_windows := $(JVM_OUTPUTDIR)/gtest/objs/jvm.lib, \
|
|
||||||
COPY_DEBUG_SYMBOLS := $(GTEST_COPY_DEBUG_SYMBOLS), \
|
COPY_DEBUG_SYMBOLS := $(GTEST_COPY_DEBUG_SYMBOLS), \
|
||||||
ZIP_EXTERNAL_DEBUG_SYMBOLS := false, \
|
ZIP_EXTERNAL_DEBUG_SYMBOLS := false, \
|
||||||
))
|
))
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2013, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2013, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -33,7 +33,6 @@ include lib/JvmFlags.gmk
|
|||||||
# Setup compilation of the main Hotspot native library (libjvm).
|
# Setup compilation of the main Hotspot native library (libjvm).
|
||||||
|
|
||||||
JVM_OUTPUTDIR := $(JVM_VARIANT_OUTPUTDIR)/libjvm
|
JVM_OUTPUTDIR := $(JVM_VARIANT_OUTPUTDIR)/libjvm
|
||||||
JVM_MAPFILE := $(JVM_OUTPUTDIR)/mapfile
|
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Platform independent setup
|
# Platform independent setup
|
||||||
@@ -74,7 +73,6 @@ CFLAGS_VM_VERSION := \
|
|||||||
$(VERSION_CFLAGS) \
|
$(VERSION_CFLAGS) \
|
||||||
-DHOTSPOT_VERSION_STRING='"$(VERSION_STRING)"' \
|
-DHOTSPOT_VERSION_STRING='"$(VERSION_STRING)"' \
|
||||||
-DDEBUG_LEVEL='"$(DEBUG_LEVEL)"' \
|
-DDEBUG_LEVEL='"$(DEBUG_LEVEL)"' \
|
||||||
-DHOTSPOT_BUILD_USER='"$(USERNAME)"' \
|
|
||||||
-DHOTSPOT_VM_DISTRO='"$(HOTSPOT_VM_DISTRO)"' \
|
-DHOTSPOT_VM_DISTRO='"$(HOTSPOT_VM_DISTRO)"' \
|
||||||
-DCPU='"$(OPENJDK_TARGET_CPU_VM_VERSION)"' \
|
-DCPU='"$(OPENJDK_TARGET_CPU_VM_VERSION)"' \
|
||||||
-DHOTSPOT_BUILD_TIME='"$(HOTSPOT_BUILD_TIME)"' \
|
-DHOTSPOT_BUILD_TIME='"$(HOTSPOT_BUILD_TIME)"' \
|
||||||
@@ -85,7 +83,7 @@ CFLAGS_VM_VERSION := \
|
|||||||
|
|
||||||
DISABLED_WARNINGS_gcc := array-bounds comment delete-non-virtual-dtor \
|
DISABLED_WARNINGS_gcc := array-bounds comment delete-non-virtual-dtor \
|
||||||
empty-body implicit-fallthrough int-in-bool-context \
|
empty-body implicit-fallthrough int-in-bool-context \
|
||||||
maybe-uninitialized missing-field-initializers parentheses \
|
maybe-uninitialized missing-field-initializers \
|
||||||
shift-negative-value unknown-pragmas
|
shift-negative-value unknown-pragmas
|
||||||
|
|
||||||
DISABLED_WARNINGS_clang := sometimes-uninitialized \
|
DISABLED_WARNINGS_clang := sometimes-uninitialized \
|
||||||
@@ -98,8 +96,6 @@ ifneq ($(DEBUG_LEVEL), release)
|
|||||||
DISABLED_WARNINGS_gcc += strict-overflow
|
DISABLED_WARNINGS_gcc += strict-overflow
|
||||||
endif
|
endif
|
||||||
|
|
||||||
DISABLED_WARNINGS_xlc := tautological-compare shift-negative-value
|
|
||||||
|
|
||||||
DISABLED_WARNINGS_microsoft := 4624 4244 4291 4146 4127 4722
|
DISABLED_WARNINGS_microsoft := 4624 4244 4291 4146 4127 4722
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
@@ -146,17 +142,34 @@ $(call FillFindCache, $(JVM_SRC_DIRS))
|
|||||||
# operator new.
|
# operator new.
|
||||||
LIBJVM_STATIC_EXCLUDE_OBJS := operator_new.o
|
LIBJVM_STATIC_EXCLUDE_OBJS := operator_new.o
|
||||||
|
|
||||||
|
ifeq ($(call isTargetOs, windows), true)
|
||||||
|
ifeq ($(STATIC_LIBS), true)
|
||||||
|
WIN_EXPORT_FILE := $(JVM_OUTPUTDIR)/static-win-exports.def
|
||||||
|
else
|
||||||
|
WIN_EXPORT_FILE := $(JVM_OUTPUTDIR)/win-exports.def
|
||||||
|
endif
|
||||||
|
|
||||||
|
JVM_LDFLAGS += -def:$(WIN_EXPORT_FILE)
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(call isTargetOs, linux), true)
|
||||||
|
HOTSPOT_VERSION_SCRIPT := $(TOPDIR)/make/data/hotspot-symbols/version-script.txt
|
||||||
|
|
||||||
|
JVM_LDFLAGS += -Wl,-version-script=$(HOTSPOT_VERSION_SCRIPT)
|
||||||
|
endif
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Now set up the actual compilation of the main hotspot native library
|
# Now set up the actual compilation of the main hotspot native library
|
||||||
|
|
||||||
$(eval $(call SetupJdkLibrary, BUILD_LIBJVM, \
|
$(eval $(call SetupJdkLibrary, BUILD_LIBJVM, \
|
||||||
NAME := jvm, \
|
NAME := jvm, \
|
||||||
TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
|
LINK_TYPE := C++, \
|
||||||
OUTPUT_DIR := $(JVM_LIB_OUTPUTDIR), \
|
OUTPUT_DIR := $(JVM_LIB_OUTPUTDIR), \
|
||||||
SRC := $(JVM_SRC_DIRS), \
|
SRC := $(JVM_SRC_DIRS), \
|
||||||
EXCLUDES := $(JVM_EXCLUDES), \
|
EXCLUDES := $(JVM_EXCLUDES), \
|
||||||
EXCLUDE_FILES := $(JVM_EXCLUDE_FILES), \
|
EXCLUDE_FILES := $(JVM_EXCLUDE_FILES), \
|
||||||
EXCLUDE_PATTERNS := $(JVM_EXCLUDE_PATTERNS), \
|
EXCLUDE_PATTERNS := $(JVM_EXCLUDE_PATTERNS), \
|
||||||
|
DEFAULT_CFLAGS := false, \
|
||||||
CFLAGS := $(JVM_CFLAGS), \
|
CFLAGS := $(JVM_CFLAGS), \
|
||||||
abstract_vm_version.cpp_CXXFLAGS := $(CFLAGS_VM_VERSION), \
|
abstract_vm_version.cpp_CXXFLAGS := $(CFLAGS_VM_VERSION), \
|
||||||
arguments.cpp_CXXFLAGS := $(CFLAGS_VM_VERSION), \
|
arguments.cpp_CXXFLAGS := $(CFLAGS_VM_VERSION), \
|
||||||
@@ -169,6 +182,7 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBJVM, \
|
|||||||
DISABLED_WARNINGS_gcc_jvmciCodeInstaller.cpp := stringop-overflow, \
|
DISABLED_WARNINGS_gcc_jvmciCodeInstaller.cpp := stringop-overflow, \
|
||||||
DISABLED_WARNINGS_gcc_jvmtiTagMap.cpp := stringop-overflow, \
|
DISABLED_WARNINGS_gcc_jvmtiTagMap.cpp := stringop-overflow, \
|
||||||
DISABLED_WARNINGS_gcc_postaloc.cpp := address, \
|
DISABLED_WARNINGS_gcc_postaloc.cpp := address, \
|
||||||
|
DISABLED_WARNINGS_gcc_shenandoahLock.cpp := stringop-overflow, \
|
||||||
DISABLED_WARNINGS_gcc_synchronizer.cpp := stringop-overflow, \
|
DISABLED_WARNINGS_gcc_synchronizer.cpp := stringop-overflow, \
|
||||||
DISABLED_WARNINGS_clang := $(DISABLED_WARNINGS_clang), \
|
DISABLED_WARNINGS_clang := $(DISABLED_WARNINGS_clang), \
|
||||||
DISABLED_WARNINGS_clang_arguments.cpp := missing-field-initializers, \
|
DISABLED_WARNINGS_clang_arguments.cpp := missing-field-initializers, \
|
||||||
@@ -187,15 +201,14 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBJVM, \
|
|||||||
DISABLED_WARNINGS_clang_aix_debug.cpp := format-nonliteral, \
|
DISABLED_WARNINGS_clang_aix_debug.cpp := format-nonliteral, \
|
||||||
DISABLED_WARNINGS_clang_aix_jvm.cpp := format-nonliteral, \
|
DISABLED_WARNINGS_clang_aix_jvm.cpp := format-nonliteral, \
|
||||||
DISABLED_WARNINGS_clang_aix_osThread_aix.cpp := tautological-undefined-compare, \
|
DISABLED_WARNINGS_clang_aix_osThread_aix.cpp := tautological-undefined-compare, \
|
||||||
DISABLED_WARNINGS_xlc := $(DISABLED_WARNINGS_xlc), \
|
|
||||||
DISABLED_WARNINGS_microsoft := $(DISABLED_WARNINGS_microsoft), \
|
DISABLED_WARNINGS_microsoft := $(DISABLED_WARNINGS_microsoft), \
|
||||||
ASFLAGS := $(JVM_ASFLAGS), \
|
ASFLAGS := $(JVM_ASFLAGS), \
|
||||||
|
LD_SET_ORIGIN := false, \
|
||||||
|
DEFAULT_LDFLAGS := false, \
|
||||||
LDFLAGS := $(JVM_LDFLAGS), \
|
LDFLAGS := $(JVM_LDFLAGS), \
|
||||||
LIBS := $(JVM_LIBS), \
|
LIBS := $(JVM_LIBS), \
|
||||||
OPTIMIZATION := $(JVM_OPTIMIZATION), \
|
OPTIMIZATION := $(JVM_OPTIMIZATION), \
|
||||||
OBJECT_DIR := $(JVM_OUTPUTDIR)/objs, \
|
OBJECT_DIR := $(JVM_OUTPUTDIR)/objs, \
|
||||||
MAPFILE := $(JVM_MAPFILE), \
|
|
||||||
USE_MAPFILE_FOR_SYMBOLS := true, \
|
|
||||||
STRIPFLAGS := $(JVM_STRIPFLAGS), \
|
STRIPFLAGS := $(JVM_STRIPFLAGS), \
|
||||||
EMBED_MANIFEST := true, \
|
EMBED_MANIFEST := true, \
|
||||||
RC_FILEDESC := $(HOTSPOT_VM_DISTRO) $(OPENJDK_TARGET_CPU_BITS)-Bit $(JVM_VARIANT) VM, \
|
RC_FILEDESC := $(HOTSPOT_VM_DISTRO) $(OPENJDK_TARGET_CPU_BITS)-Bit $(JVM_VARIANT) VM, \
|
||||||
@@ -204,11 +217,47 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBJVM, \
|
|||||||
STATIC_LIB_EXCLUDE_OBJS := $(LIBJVM_STATIC_EXCLUDE_OBJS), \
|
STATIC_LIB_EXCLUDE_OBJS := $(LIBJVM_STATIC_EXCLUDE_OBJS), \
|
||||||
))
|
))
|
||||||
|
|
||||||
|
ifeq ($(call isTargetOs, windows), true)
|
||||||
|
# The following lines create a list of vftable symbols to be filtered out of
|
||||||
|
# the symbol file. Removing this line causes the linker to complain about too
|
||||||
|
# many (> 64K) symbols, so the _guess_ is that this line is here to keep down
|
||||||
|
# the number of exported symbols below that limit.
|
||||||
|
#
|
||||||
|
# Some usages of C++ lambdas require the vftable symbol of classes that use
|
||||||
|
# the lambda type as a template parameter. The usage of those classes won't
|
||||||
|
# link if their vftable symbols are removed. That's why there's an exception
|
||||||
|
# for vftable symbols containing the string 'lambda'.
|
||||||
|
#
|
||||||
|
# A very simple example of a lambda usage that fails if the lambda vftable
|
||||||
|
# symbols are missing in the symbol file:
|
||||||
|
#
|
||||||
|
# #include <functional>
|
||||||
|
# std::function<void()> f = [](){}
|
||||||
|
FILTER_SYMBOLS_AWK_SCRIPT := \
|
||||||
|
'{ \
|
||||||
|
if ($$7 ~ /\?\?_7.*@@6B@/ && $$7 !~ /type_info/ && $$7 !~ /lambda/) print " " $$7; \
|
||||||
|
}'
|
||||||
|
|
||||||
|
# A more correct solution would be to send BUILD_LIBJVM_ALL_OBJS instead of
|
||||||
|
# cd && *.obj, but this will result in very long command lines, which could be
|
||||||
|
# problematic.
|
||||||
|
$(WIN_EXPORT_FILE): $(BUILD_LIBJVM_ALL_OBJS)
|
||||||
|
$(call LogInfo, Generating list of symbols to export from object files)
|
||||||
|
$(call MakeDir, $(@D))
|
||||||
|
$(ECHO) "EXPORTS" > $@.tmp
|
||||||
|
$(CD) $(BUILD_LIBJVM_OBJECT_DIR) && \
|
||||||
|
$(DUMPBIN) -symbols *$(OBJ_SUFFIX) | $(AWK) $(FILTER_SYMBOLS_AWK_SCRIPT) | $(SORT) -u >> $@.tmp
|
||||||
|
$(RM) $@
|
||||||
|
$(MV) $@.tmp $@
|
||||||
|
|
||||||
|
$(BUILD_LIBJVM_TARGET): $(WIN_EXPORT_FILE)
|
||||||
|
endif
|
||||||
|
|
||||||
# Always recompile abstract_vm_version.cpp if libjvm needs to be relinked. This ensures
|
# Always recompile abstract_vm_version.cpp if libjvm needs to be relinked. This ensures
|
||||||
# that the internal vm version is updated as it relies on __DATE__ and __TIME__
|
# that the internal vm version is updated as it relies on __DATE__ and __TIME__
|
||||||
# macros.
|
# macros.
|
||||||
ABSTRACT_VM_VERSION_OBJ := $(JVM_OUTPUTDIR)/objs/abstract_vm_version$(OBJ_SUFFIX)
|
ABSTRACT_VM_VERSION_OBJ := $(JVM_OUTPUTDIR)/objs/abstract_vm_version$(OBJ_SUFFIX)
|
||||||
$(ABSTRACT_VM_VERSION_OBJ): $(filter-out $(ABSTRACT_VM_VERSION_OBJ) $(JVM_MAPFILE), \
|
$(ABSTRACT_VM_VERSION_OBJ): $(filter-out $(ABSTRACT_VM_VERSION_OBJ), \
|
||||||
$(BUILD_LIBJVM_TARGET_DEPS))
|
$(BUILD_LIBJVM_TARGET_DEPS))
|
||||||
|
|
||||||
ifneq ($(GENERATE_COMPILE_COMMANDS_ONLY), true)
|
ifneq ($(GENERATE_COMPILE_COMMANDS_ONLY), true)
|
||||||
@@ -236,11 +285,6 @@ endif
|
|||||||
# 1540-1090 : (I) The destructor of "..." might not be called.
|
# 1540-1090 : (I) The destructor of "..." might not be called.
|
||||||
# 1540-1639 : (I) The behavior of long type bit fields has changed ...
|
# 1540-1639 : (I) The behavior of long type bit fields has changed ...
|
||||||
|
|
||||||
# Include mapfile generation. It relies on BUILD_LIBJVM_ALL_OBJS which is only
|
|
||||||
# defined after the above call to BUILD_LIBJVM. Mapfile will be generated
|
|
||||||
# after all object files are built, but before the jvm library is linked.
|
|
||||||
include lib/JvmMapfile.gmk
|
|
||||||
|
|
||||||
TARGETS += $(BUILD_LIBJVM)
|
TARGETS += $(BUILD_LIBJVM)
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|||||||
@@ -1,176 +0,0 @@
|
|||||||
#
|
|
||||||
# Copyright (c) 2013, 2023, 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.
|
|
||||||
#
|
|
||||||
|
|
||||||
$(eval $(call IncludeCustomExtension, hotspot/lib/JvmMapfile.gmk))
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
# Combine a list of static symbols
|
|
||||||
|
|
||||||
ifeq ($(call And, $(call isTargetOs, windows) $(call isTargetCpu, x86_64)), false)
|
|
||||||
# On Windows x86_64, we should not have any symbols at all, since that
|
|
||||||
# results in duplicate warnings from the linker (JDK-8043491).
|
|
||||||
SYMBOLS_SRC += $(TOPDIR)/make/data/hotspot-symbols/symbols-shared
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(call isTargetOsType, unix), true)
|
|
||||||
SYMBOLS_SRC += $(TOPDIR)/make/data/hotspot-symbols/symbols-unix
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifneq ($(wildcard $(TOPDIR)/make/data/hotspot-symbols/symbols-$(OPENJDK_TARGET_OS)), )
|
|
||||||
SYMBOLS_SRC += $(TOPDIR)/make/data/hotspot-symbols/symbols-$(OPENJDK_TARGET_OS)
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifneq ($(findstring debug, $(DEBUG_LEVEL)), )
|
|
||||||
ifneq ($(wildcard $(TOPDIR)/make/data/hotspot-symbols/symbols-$(OPENJDK_TARGET_OS)-debug), )
|
|
||||||
SYMBOLS_SRC += $(TOPDIR)/make/data/hotspot-symbols/symbols-$(OPENJDK_TARGET_OS)-debug
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
# Create a dynamic list of symbols from the built object files. This is highly
|
|
||||||
# platform dependent.
|
|
||||||
|
|
||||||
ifeq ($(call isTargetOs, linux), true)
|
|
||||||
DUMP_SYMBOLS_CMD := $(NM) $(NMFLAGS) --defined-only *$(OBJ_SUFFIX)
|
|
||||||
ifneq ($(FILTER_SYMBOLS_PATTERN), )
|
|
||||||
FILTER_SYMBOLS_PATTERN := $(FILTER_SYMBOLS_PATTERN)|
|
|
||||||
endif
|
|
||||||
FILTER_SYMBOLS_PATTERN := $(FILTER_SYMBOLS_PATTERN)^_ZTV|^gHotSpotVM|^UseSharedSpaces$$
|
|
||||||
FILTER_SYMBOLS_PATTERN := $(FILTER_SYMBOLS_PATTERN)|^_ZN9Arguments17SharedArchivePathE$$
|
|
||||||
FILTER_SYMBOLS_AWK_SCRIPT := \
|
|
||||||
'{ \
|
|
||||||
if ($$3 ~ /$(FILTER_SYMBOLS_PATTERN)/) print $$3; \
|
|
||||||
}'
|
|
||||||
|
|
||||||
else ifeq ($(call isTargetOs, macosx), true)
|
|
||||||
# nm on macosx prints out "warning: nm: no name list" to stderr for
|
|
||||||
# files without symbols. Hide this, even at the expense of hiding real errors.
|
|
||||||
DUMP_SYMBOLS_CMD := $(NM) $(NMFLAGS) -Uj *$(OBJ_SUFFIX) 2> /dev/null
|
|
||||||
ifneq ($(FILTER_SYMBOLS_PATTERN), )
|
|
||||||
FILTER_SYMBOLS_PATTERN := $(FILTER_SYMBOLS_PATTERN)|
|
|
||||||
endif
|
|
||||||
FILTER_SYMBOLS_PATTERN := $(FILTER_SYMBOLS_PATTERN)^_ZTV|^gHotSpotVM
|
|
||||||
FILTER_SYMBOLS_AWK_SCRIPT := \
|
|
||||||
'{ \
|
|
||||||
if ($$3 ~ /$(FILTER_SYMBOLS_PATTERN)/) print $$3; \
|
|
||||||
}'
|
|
||||||
|
|
||||||
# NOTE: The script is from the old build. It is broken and finds no symbols.
|
|
||||||
# The script below might be what was intended, but it fails to link with tons
|
|
||||||
# of 'cannot export hidden symbol vtable for X'.
|
|
||||||
# '{ if ($$1 ~ /^__ZTV/ || $$1 ~ /^_gHotSpotVM/) print substr($$1, 2) }'
|
|
||||||
else ifeq ($(call isTargetOs, aix), true)
|
|
||||||
# NOTE: The old build had the solution below. This should to be fixed in
|
|
||||||
# configure instead.
|
|
||||||
|
|
||||||
# On AIX we have to prevent that we pick up the 'nm' version from the GNU binutils
|
|
||||||
# which may be installed under /opt/freeware/bin. So better use an absolute path here!
|
|
||||||
# NM=/usr/bin/nm
|
|
||||||
|
|
||||||
DUMP_SYMBOLS_CMD := $(NM) $(NMFLAGS) -B -C *$(OBJ_SUFFIX)
|
|
||||||
FILTER_SYMBOLS_AWK_SCRIPT := \
|
|
||||||
'{ \
|
|
||||||
if (($$2="d" || $$2="D") && ($$3 ~ /^__vft/ || $$3 ~ /^gHotSpotVM/)) print $$3; \
|
|
||||||
if ($$3 ~ /^UseSharedSpaces$$/) print $$3; \
|
|
||||||
if ($$3 ~ /^SharedArchivePath__9Arguments$$/) print $$3; \
|
|
||||||
}'
|
|
||||||
|
|
||||||
else ifeq ($(call isTargetOs, windows), true)
|
|
||||||
DUMP_SYMBOLS_CMD := $(DUMPBIN) -symbols *$(OBJ_SUFFIX)
|
|
||||||
|
|
||||||
# The following lines create a list of vftable symbols to be filtered out of
|
|
||||||
# the mapfile. Removing this line causes the linker to complain about too many
|
|
||||||
# (> 64K) symbols, so the _guess_ is that this line is here to keep down the
|
|
||||||
# number of exported symbols below that limit.
|
|
||||||
#
|
|
||||||
# Some usages of C++ lambdas require the vftable symbol of classes that use
|
|
||||||
# the lambda type as a template parameter. The usage of those classes won't
|
|
||||||
# link if their vftable symbols are removed. That's why there's an exception
|
|
||||||
# for vftable symbols containing the string 'lambda'.
|
|
||||||
#
|
|
||||||
# A very simple example of a lambda usage that fails if the lambda vftable
|
|
||||||
# symbols are missing in the mapfile:
|
|
||||||
#
|
|
||||||
# #include <functional>
|
|
||||||
# std::function<void()> f = [](){}
|
|
||||||
|
|
||||||
FILTER_SYMBOLS_AWK_SCRIPT := \
|
|
||||||
'{ \
|
|
||||||
if ($$7 ~ /\?\?_7.*@@6B@/ && $$7 !~ /type_info/ && $$7 !~ /lambda/) print $$7; \
|
|
||||||
}'
|
|
||||||
|
|
||||||
else
|
|
||||||
$(error Unknown target OS $(OPENJDK_TARGET_OS) in JvmMapfile.gmk)
|
|
||||||
endif
|
|
||||||
|
|
||||||
# A more correct solution would be to send BUILD_LIBJVM_ALL_OBJS instead of
|
|
||||||
# cd && *.o, but this will result in very long command lines, which is
|
|
||||||
# problematic on some platforms.
|
|
||||||
$(JVM_OUTPUTDIR)/symbols-objects: $(BUILD_LIBJVM_ALL_OBJS)
|
|
||||||
$(call LogInfo, Generating symbol list from object files)
|
|
||||||
$(CD) $(JVM_OUTPUTDIR)/objs && \
|
|
||||||
$(DUMP_SYMBOLS_CMD) | $(AWK) $(FILTER_SYMBOLS_AWK_SCRIPT) | $(SORT) -u > $@
|
|
||||||
|
|
||||||
SYMBOLS_SRC += $(JVM_OUTPUTDIR)/symbols-objects
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
# Now concatenate all symbol lists into a single file and remove comments.
|
|
||||||
|
|
||||||
$(JVM_OUTPUTDIR)/symbols: $(SYMBOLS_SRC)
|
|
||||||
$(SED) -e '/^#/d' $^ > $@
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
# Finally convert the symbol list into a platform-specific mapfile
|
|
||||||
|
|
||||||
ifeq ($(call isTargetOs, macosx), true)
|
|
||||||
# On macosx, we need to add a leading underscore
|
|
||||||
define create-mapfile-work
|
|
||||||
$(AWK) '{ if ($$0 ~ ".") { print " _" $$0 } }' < $^ > $@.tmp
|
|
||||||
endef
|
|
||||||
else ifeq ($(call isTargetOs, windows), true)
|
|
||||||
# On windows, add an 'EXPORTS' header
|
|
||||||
define create-mapfile-work
|
|
||||||
$(ECHO) "EXPORTS" > $@.tmp
|
|
||||||
$(AWK) '{ if ($$0 ~ ".") { print " " $$0 } }' < $^ >> $@.tmp
|
|
||||||
endef
|
|
||||||
else
|
|
||||||
# Assume standard linker script
|
|
||||||
define create-mapfile-work
|
|
||||||
$(PRINTF) "SUNWprivate_1.1 { \n global: \n" > $@.tmp
|
|
||||||
$(AWK) '{ if ($$0 ~ ".") { print " " $$0 ";" } }' < $^ >> $@.tmp
|
|
||||||
$(PRINTF) " local: \n *; \n }; \n" >> $@.tmp
|
|
||||||
endef
|
|
||||||
endif
|
|
||||||
|
|
||||||
define create-mapfile
|
|
||||||
$(call LogInfo, Creating mapfile)
|
|
||||||
$(call MakeDir, $(@D))
|
|
||||||
$(call create-mapfile-work)
|
|
||||||
$(RM) $@
|
|
||||||
$(MV) $@.tmp $@
|
|
||||||
endef
|
|
||||||
|
|
||||||
$(JVM_MAPFILE): $(JVM_OUTPUTDIR)/symbols
|
|
||||||
$(call create-mapfile)
|
|
||||||
@@ -48,9 +48,6 @@ ifneq ($(FDLIBM_CFLAGS), )
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(call isTargetOs, linux), true)
|
ifeq ($(call isTargetOs, linux), true)
|
||||||
BUILD_LIBJVM_ostream.cpp_CXXFLAGS := -D_FILE_OFFSET_BITS=64
|
|
||||||
BUILD_LIBJVM_logFileOutput.cpp_CXXFLAGS := -D_FILE_OFFSET_BITS=64
|
|
||||||
|
|
||||||
BUILD_LIBJVM_sharedRuntimeTrig.cpp_CXXFLAGS := -DNO_PCH $(FDLIBM_CFLAGS) $(LIBJVM_FDLIBM_COPY_OPT_FLAG)
|
BUILD_LIBJVM_sharedRuntimeTrig.cpp_CXXFLAGS := -DNO_PCH $(FDLIBM_CFLAGS) $(LIBJVM_FDLIBM_COPY_OPT_FLAG)
|
||||||
BUILD_LIBJVM_sharedRuntimeTrans.cpp_CXXFLAGS := -DNO_PCH $(FDLIBM_CFLAGS) $(LIBJVM_FDLIBM_COPY_OPT_FLAG)
|
BUILD_LIBJVM_sharedRuntimeTrans.cpp_CXXFLAGS := -DNO_PCH $(FDLIBM_CFLAGS) $(LIBJVM_FDLIBM_COPY_OPT_FLAG)
|
||||||
|
|
||||||
|
|||||||
@@ -78,8 +78,6 @@ EmitExtractedDefines = \
|
|||||||
# Remaining parameter(s) are named arguments:
|
# Remaining parameter(s) are named arguments:
|
||||||
# NATURE - Which Eclipse Workspace nature to generate for the Workspace. Can
|
# NATURE - Which Eclipse Workspace nature to generate for the Workspace. Can
|
||||||
# be one of JAVA, HOTSPOT, NATIVE, or MIXED.
|
# be one of JAVA, HOTSPOT, NATIVE, or MIXED.
|
||||||
# SHARED - Workspace will share the same directory as the JDK if true. Can be
|
|
||||||
# either true or false. Defaults to false if not specified.
|
|
||||||
SetupEclipseWorkspace = $(NamedParamsMacroTemplate)
|
SetupEclipseWorkspace = $(NamedParamsMacroTemplate)
|
||||||
define SetupEclipseWorkspaceBody
|
define SetupEclipseWorkspaceBody
|
||||||
|
|
||||||
@@ -95,26 +93,12 @@ define SetupEclipseWorkspaceBody
|
|||||||
$$(error Unrecognised nature $$($1_NATURE) specified for Eclipse Workspace)
|
$$(error Unrecognised nature $$($1_NATURE) specified for Eclipse Workspace)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($$($1_SHARED), )
|
$1_IDE_OUTPUTDIR := $(OUTPUTDIR)/ide/eclipse
|
||||||
$$(info Workspace sharing option not given, assuming non-shared Eclipse Workspace)
|
$1_CLASSPATH_FILE := $$($1_IDE_OUTPUTDIR)/.classpath
|
||||||
$1_SHARED := false
|
$1_WORKSPACE_FILE := $$($1_IDE_OUTPUTDIR)/.project
|
||||||
else ifeq ($$(findstring $$($1_SHARED), true false), )
|
$1_NATIVE_FILE := $$($1_IDE_OUTPUTDIR)/.cproject
|
||||||
$$(error $$($1_NATURE) is not a boolean word)
|
$1_SETTINGS_FILE := $$($1_IDE_OUTPUTDIR)/.settings/language.settings.xml
|
||||||
endif
|
$$(call MakeDir, $$($1_IDE_OUTPUTDIR))
|
||||||
|
|
||||||
ifeq ($$($1_SHARED), true)
|
|
||||||
$1_CLASSPATH_FILE := $(TOPDIR)/.classpath
|
|
||||||
$1_WORKSPACE_FILE := $(TOPDIR)/.project
|
|
||||||
$1_NATIVE_FILE := $(TOPDIR)/.cproject
|
|
||||||
$1_SETTINGS_FILE := $(TOPDIR)/.settings/language.settings.xml
|
|
||||||
else
|
|
||||||
$1_IDE_OUTPUTDIR := $(OUTPUTDIR)/ide/eclipse
|
|
||||||
$1_CLASSPATH_FILE := $$($1_IDE_OUTPUTDIR)/.classpath
|
|
||||||
$1_WORKSPACE_FILE := $$($1_IDE_OUTPUTDIR)/.project
|
|
||||||
$1_NATIVE_FILE := $$($1_IDE_OUTPUTDIR)/.cproject
|
|
||||||
$1_SETTINGS_FILE := $$($1_IDE_OUTPUTDIR)/.settings/language.settings.xml
|
|
||||||
$$(call MakeDir, $$($1_IDE_OUTPUTDIR))
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifneq ($$(findstring $$($1_NATURE), HOTSPOT NATIVE MIXED), )
|
ifneq ($$(findstring $$($1_NATURE), HOTSPOT NATIVE MIXED), )
|
||||||
ifeq ($$(call isCompiler, microsoft), true)
|
ifeq ($$(call isCompiler, microsoft), true)
|
||||||
@@ -198,14 +182,11 @@ define SetupEclipseWorkspaceBody
|
|||||||
$1_MAKE := $$(call FixPath, $(MAKE))
|
$1_MAKE := $$(call FixPath, $(MAKE))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
$1_MATCHING_MAKE_TARGETS :=
|
|
||||||
$1_PLAIN_MAKE_TARGETS := update-build-docs docs gensrc gendata \
|
|
||||||
copy java launchers libs hotspot jdk product-images all-images test-image clean
|
|
||||||
|
|
||||||
# make reconfigure omitted since it is sensitive to which make was used
|
# make reconfigure omitted since it is sensitive to which make was used
|
||||||
ifeq ($$($1_SHARED), true)
|
# make dist-clean omitted since it would delete the Workspace as well
|
||||||
$1_PLAIN_MAKE_TARGETS += dist-clean
|
$1_MATCHING_MAKE_TARGETS :=
|
||||||
endif
|
$1_PLAIN_MAKE_TARGETS := update-build-docs docs gensrc gendata copy java \
|
||||||
|
launchers libs hotspot jdk product-images product-bundles all-images test-image clean
|
||||||
|
|
||||||
$1_MATCHING_MAKE_TARGETS += $$(foreach name,$$($1_PLAIN_MAKE_TARGETS), \
|
$1_MATCHING_MAKE_TARGETS += $$(foreach name,$$($1_PLAIN_MAKE_TARGETS), \
|
||||||
<target name="$$(strip $$(name))" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> \
|
<target name="$$(strip $$(name))" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> \
|
||||||
@@ -232,11 +213,7 @@ define SetupEclipseWorkspaceBody
|
|||||||
|
|
||||||
TARGETS += $$($1_CREATE_NATIVE_FILE)
|
TARGETS += $$($1_CREATE_NATIVE_FILE)
|
||||||
|
|
||||||
ifeq ($$($1_SHARED), true)
|
$$(call MakeDir, $$($1_IDE_OUTPUTDIR)/.settings)
|
||||||
$$(call MakeDir, $(TOPDIR)/.settings)
|
|
||||||
else
|
|
||||||
$$(call MakeDir, $$($1_IDE_OUTPUTDIR)/.settings)
|
|
||||||
endif
|
|
||||||
|
|
||||||
$1_CSETTINGS :=
|
$1_CSETTINGS :=
|
||||||
$1_CXXSETTINGS :=
|
$1_CXXSETTINGS :=
|
||||||
@@ -280,7 +257,6 @@ define SetupEclipseWorkspaceBody
|
|||||||
<resource project-relative-path="src/hotspot/share/runtime/abstract_vm_version.cpp"> \
|
<resource project-relative-path="src/hotspot/share/runtime/abstract_vm_version.cpp"> \
|
||||||
<entry kind="macro" name="HOTSPOT_VERSION_STRING" value=""$(VERSION_STRING)""/> \
|
<entry kind="macro" name="HOTSPOT_VERSION_STRING" value=""$(VERSION_STRING)""/> \
|
||||||
<entry kind="macro" name="DEBUG_LEVEL" value=""$(DEBUG_LEVEL)""/> \
|
<entry kind="macro" name="DEBUG_LEVEL" value=""$(DEBUG_LEVEL)""/> \
|
||||||
<entry kind="macro" name="HOTSPOT_BUILD_USER" value=""$(USERNAME)""/> \
|
|
||||||
<entry kind="macro" name="HOTSPOT_VM_DISTRO" value=""$(HOTSPOT_VM_DISTRO)""/> \
|
<entry kind="macro" name="HOTSPOT_VM_DISTRO" value=""$(HOTSPOT_VM_DISTRO)""/> \
|
||||||
<entry kind="macro" name="CPU" value=""$(OPENJDK_TARGET_CPU_VM_VERSION)""/> \
|
<entry kind="macro" name="CPU" value=""$(OPENJDK_TARGET_CPU_VM_VERSION)""/> \
|
||||||
<entry kind="macro" name="HOTSPOT_BUILD_TIME" value=""$(if $(HOTSPOT_BUILD_TIME),$(HOTSPOT_BUILD_TIME),$(call EpochToISO8601,$(shell $(DATE) +"%s")))""/> \
|
<entry kind="macro" name="HOTSPOT_BUILD_TIME" value=""$(if $(HOTSPOT_BUILD_TIME),$(HOTSPOT_BUILD_TIME),$(call EpochToISO8601,$(shell $(DATE) +"%s")))""/> \
|
||||||
@@ -288,7 +264,6 @@ define SetupEclipseWorkspaceBody
|
|||||||
<resource project-relative-path="src/hotspot/share/runtime/arguments.cpp"> \
|
<resource project-relative-path="src/hotspot/share/runtime/arguments.cpp"> \
|
||||||
<entry kind="macro" name="HOTSPOT_VERSION_STRING" value=""$(VERSION_STRING)""/> \
|
<entry kind="macro" name="HOTSPOT_VERSION_STRING" value=""$(VERSION_STRING)""/> \
|
||||||
<entry kind="macro" name="DEBUG_LEVEL" value=""$(DEBUG_LEVEL)""/> \
|
<entry kind="macro" name="DEBUG_LEVEL" value=""$(DEBUG_LEVEL)""/> \
|
||||||
<entry kind="macro" name="HOTSPOT_BUILD_USER" value=""$(USERNAME)""/> \
|
|
||||||
<entry kind="macro" name="HOTSPOT_VM_DISTRO" value=""$(HOTSPOT_VM_DISTRO)""/> \
|
<entry kind="macro" name="HOTSPOT_VM_DISTRO" value=""$(HOTSPOT_VM_DISTRO)""/> \
|
||||||
<entry kind="macro" name="CPU" value=""$(OPENJDK_TARGET_CPU_VM_VERSION)""/> \
|
<entry kind="macro" name="CPU" value=""$(OPENJDK_TARGET_CPU_VM_VERSION)""/> \
|
||||||
<entry kind="macro" name="HOTSPOT_BUILD_TIME" value=""$(if $(HOTSPOT_BUILD_TIME),$(HOTSPOT_BUILD_TIME),$(call EpochToISO8601,$(shell $(DATE) +"%s")))""/> \
|
<entry kind="macro" name="HOTSPOT_BUILD_TIME" value=""$(if $(HOTSPOT_BUILD_TIME),$(HOTSPOT_BUILD_TIME),$(call EpochToISO8601,$(shell $(DATE) +"%s")))""/> \
|
||||||
@@ -316,40 +291,38 @@ define SetupEclipseWorkspaceBody
|
|||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($$($1_SHARED), false)
|
ifneq ($$(findstring $$($1_NATURE), JAVA MIXED), )
|
||||||
ifneq ($$(findstring $$($1_NATURE), JAVA MIXED), )
|
$1_LINKED_RESOURCES += $$(foreach src,$(JAVA_DIRS), \
|
||||||
$1_LINKED_RESOURCES += $$(foreach src,$(JAVA_DIRS), \
|
<link> \
|
||||||
<link> \
|
<name>$$(strip $$(src))</name> \
|
||||||
<name>$$(strip $$(src))</name> \
|
<type>2</type> \
|
||||||
<type>2</type> \
|
<location>$$(subst \\,/,$$(call FixPath, $(TOPDIR)/$$(src)))</location> \
|
||||||
<location>$$(subst \\,/,$$(call FixPath, $(TOPDIR)/$$(src)))</location> \
|
</link>$$(NEWLINE))
|
||||||
</link>$$(NEWLINE))
|
endif
|
||||||
endif
|
|
||||||
|
|
||||||
ifneq ($$(findstring $$($1_NATURE), HOTSPOT NATIVE MIXED), )
|
ifneq ($$(findstring $$($1_NATURE), HOTSPOT NATIVE MIXED), )
|
||||||
# CDT includes a Makefile editor, so if CDT support was indicated there's no harm in
|
# CDT includes a Makefile editor, so if CDT support was indicated there's no harm in
|
||||||
# including the make sources as well, since the cost of indexing them is miniscule
|
# including the make sources as well, since the cost of indexing them is miniscule
|
||||||
$1_LINKED_RESOURCES += \
|
$1_LINKED_RESOURCES += \
|
||||||
<link> \
|
<link> \
|
||||||
<name>make</name> \
|
<name>make</name> \
|
||||||
<type>2</type> \
|
<type>2</type> \
|
||||||
<location>$$(subst \\,/,$$(call FixPath, $(TOPDIR)/make))</location> \
|
<location>$$(subst \\,/,$$(call FixPath, $(TOPDIR)/make))</location> \
|
||||||
</link> \
|
</link> \
|
||||||
<link> \
|
<link> \
|
||||||
<name>src/hotspot</name> \
|
<name>src/hotspot</name> \
|
||||||
<type>2</type> \
|
<type>2</type> \
|
||||||
<location>$$(subst \\,/,$$(call FixPath, $(TOPDIR)/src/hotspot))</location> \
|
<location>$$(subst \\,/,$$(call FixPath, $(TOPDIR)/src/hotspot))</location> \
|
||||||
</link>$$(NEWLINE)
|
</link>$$(NEWLINE)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifneq ($$(findstring $$($1_NATURE), NATIVE MIXED), )
|
ifneq ($$(findstring $$($1_NATURE), NATIVE MIXED), )
|
||||||
$1_LINKED_RESOURCES += $$(foreach src,$(NATIVE_DIRS), \
|
$1_LINKED_RESOURCES += $$(foreach src,$(NATIVE_DIRS), \
|
||||||
<link> \
|
<link> \
|
||||||
<name>$$(strip $$(src))</name> \
|
<name>$$(strip $$(src))</name> \
|
||||||
<type>2</type> \
|
<type>2</type> \
|
||||||
<location>$$(subst \\,/,$$(call FixPath, $(TOPDIR)/$$(src)))</location> \
|
<location>$$(subst \\,/,$$(call FixPath, $(TOPDIR)/$$(src)))</location> \
|
||||||
</link>$$(NEWLINE))
|
</link>$$(NEWLINE))
|
||||||
endif
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
$$(eval $$(call SetupTextFileProcessing, $1_CREATE_WORKSPACE_FILE, \
|
$$(eval $$(call SetupTextFileProcessing, $1_CREATE_WORKSPACE_FILE, \
|
||||||
@@ -368,22 +341,18 @@ endef
|
|||||||
ifeq ($(WORKSPACE), java)
|
ifeq ($(WORKSPACE), java)
|
||||||
$(eval $(call SetupEclipseWorkspace, SETUP_WORKSPACE, \
|
$(eval $(call SetupEclipseWorkspace, SETUP_WORKSPACE, \
|
||||||
NATURE := JAVA, \
|
NATURE := JAVA, \
|
||||||
SHARED := $(SHARED), \
|
|
||||||
))
|
))
|
||||||
else ifeq ($(WORKSPACE), hotspot)
|
else ifeq ($(WORKSPACE), hotspot)
|
||||||
$(eval $(call SetupEclipseWorkspace, SETUP_WORKSPACE, \
|
$(eval $(call SetupEclipseWorkspace, SETUP_WORKSPACE, \
|
||||||
NATURE := HOTSPOT, \
|
NATURE := HOTSPOT, \
|
||||||
SHARED := $(SHARED), \
|
|
||||||
))
|
))
|
||||||
else ifeq ($(WORKSPACE), native)
|
else ifeq ($(WORKSPACE), native)
|
||||||
$(eval $(call SetupEclipseWorkspace, SETUP_WORKSPACE, \
|
$(eval $(call SetupEclipseWorkspace, SETUP_WORKSPACE, \
|
||||||
NATURE := NATIVE, \
|
NATURE := NATIVE, \
|
||||||
SHARED := $(SHARED), \
|
|
||||||
))
|
))
|
||||||
else
|
else
|
||||||
$(eval $(call SetupEclipseWorkspace, SETUP_WORKSPACE, \
|
$(eval $(call SetupEclipseWorkspace, SETUP_WORKSPACE, \
|
||||||
NATURE := MIXED, \
|
NATURE := MIXED, \
|
||||||
SHARED := $(SHARED), \
|
|
||||||
))
|
))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|||||||
@@ -221,7 +221,6 @@ class BuildConfig {
|
|||||||
Vector sysDefines = new Vector();
|
Vector sysDefines = new Vector();
|
||||||
sysDefines.add("WIN32");
|
sysDefines.add("WIN32");
|
||||||
sysDefines.add("_WINDOWS");
|
sysDefines.add("_WINDOWS");
|
||||||
sysDefines.add("HOTSPOT_BUILD_USER=\\\""+System.getProperty("user.name")+"\\\"");
|
|
||||||
sysDefines.add("HOTSPOT_BUILD_TARGET=\\\""+get("Build")+"\\\"");
|
sysDefines.add("HOTSPOT_BUILD_TARGET=\\\""+get("Build")+"\\\"");
|
||||||
sysDefines.add("INCLUDE_JFR=1");
|
sysDefines.add("INCLUDE_JFR=1");
|
||||||
sysDefines.add("_JNI_IMPLEMENTATION_");
|
sysDefines.add("_JNI_IMPLEMENTATION_");
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ public class ProjectCreator {
|
|||||||
System.err.println(" are both quoted strings.");
|
System.err.println(" are both quoted strings.");
|
||||||
System.err.println(" Default includes: \".\"");
|
System.err.println(" Default includes: \".\"");
|
||||||
System.err
|
System.err
|
||||||
.println(" Default defines: WIN32, _WINDOWS, \"HOTSPOT_BUILD_USER=$(USERNAME)\"");
|
.println(" Default defines: WIN32, _WINDOWS");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2016, 2023, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2016, 2024, 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
|
||||||
@@ -35,6 +35,7 @@ import java.lang.invoke.MethodHandle;
|
|||||||
import java.lang.invoke.MethodHandles;
|
import java.lang.invoke.MethodHandles;
|
||||||
import java.lang.invoke.MethodType;
|
import java.lang.invoke.MethodType;
|
||||||
import java.net.InetAddress;
|
import java.net.InetAddress;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.nio.file.FileSystems;
|
import java.nio.file.FileSystems;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.ZoneId;
|
import java.time.ZoneId;
|
||||||
@@ -132,6 +133,8 @@ public class HelloClasslist {
|
|||||||
String oldDate = String.format("%s%n",
|
String oldDate = String.format("%s%n",
|
||||||
DateFormat.getDateInstance(DateFormat.DEFAULT, Locale.ROOT)
|
DateFormat.getDateInstance(DateFormat.DEFAULT, Locale.ROOT)
|
||||||
.format(new Date()));
|
.format(new Date()));
|
||||||
|
StandardCharsets.US_ASCII.encode("");
|
||||||
|
StandardCharsets.UTF_8.encode("");
|
||||||
|
|
||||||
// A selection of trivial and common reflection operations
|
// A selection of trivial and common reflection operations
|
||||||
var instance = HelloClasslist.class.getConstructor().newInstance();
|
var instance = HelloClasslist.class.getConstructor().newInstance();
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2012, 2023, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2012, 2024, 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
|
||||||
@@ -128,9 +128,10 @@ public class CLDRConverter {
|
|||||||
static Map<String, String> pluralRules;
|
static Map<String, String> pluralRules;
|
||||||
static Map<String, String> dayPeriodRules;
|
static Map<String, String> dayPeriodRules;
|
||||||
|
|
||||||
// TZDB Short Names Map
|
// TZDB maps
|
||||||
private static final Map<String, String> tzdbShortNamesMap = HashMap.newHashMap(512);
|
private static final Map<String, String> tzdbShortNamesMap = HashMap.newHashMap(512);
|
||||||
private static final Map<String, String> tzdbSubstLetters = HashMap.newHashMap(512);
|
private static final Map<String, String> tzdbSubstLetters = HashMap.newHashMap(512);
|
||||||
|
private static final Map<String, String> tzdbLinks = HashMap.newHashMap(512);
|
||||||
|
|
||||||
static enum DraftType {
|
static enum DraftType {
|
||||||
UNCONFIRMED,
|
UNCONFIRMED,
|
||||||
@@ -762,12 +763,32 @@ public class CLDRConverter {
|
|||||||
|
|
||||||
private static Map<String, Object> extractZoneNames(Map<String, Object> map, String id) {
|
private static Map<String, Object> extractZoneNames(Map<String, Object> map, String id) {
|
||||||
Map<String, Object> names = new TreeMap<>(KeyComparator.INSTANCE);
|
Map<String, Object> names = new TreeMap<>(KeyComparator.INSTANCE);
|
||||||
|
var availableIds = getAvailableZoneIds();
|
||||||
|
|
||||||
getAvailableZoneIds().stream().forEach(tzid -> {
|
availableIds.forEach(tzid -> {
|
||||||
// If the tzid is deprecated, get the data for the replacement id
|
// If the tzid is deprecated, get the data for the replacement id
|
||||||
String tzKey = Optional.ofNullable((String)handlerSupplMeta.get(tzid))
|
String tzKey = Optional.ofNullable((String)handlerSupplMeta.get(tzid))
|
||||||
.orElse(tzid);
|
.orElse(tzid);
|
||||||
|
// Follow link, if needed
|
||||||
|
var tzLink = tzdbLinks.get(tzKey);
|
||||||
|
if (tzLink == null && tzdbLinks.containsValue(tzKey)) {
|
||||||
|
// reverse link search
|
||||||
|
// this is needed as in tzdb, "America/Buenos_Aires" links to
|
||||||
|
// "America/Argentina/Buenos_Aires", but CLDR contains metaZone
|
||||||
|
// "Argentina" only for "America/Buenos_Aires" (as of CLDR 44)
|
||||||
|
// Both tzids should have "Argentina" meta zone names
|
||||||
|
tzLink = tzdbLinks.entrySet().stream()
|
||||||
|
.filter(e -> e.getValue().equals(tzKey))
|
||||||
|
.map(Map.Entry::getKey)
|
||||||
|
.findAny()
|
||||||
|
.orElse(null);
|
||||||
|
|
||||||
|
}
|
||||||
Object data = map.get(TIMEZONE_ID_PREFIX + tzKey);
|
Object data = map.get(TIMEZONE_ID_PREFIX + tzKey);
|
||||||
|
if (data == null && tzLink != null) {
|
||||||
|
// data for tzLink
|
||||||
|
data = map.get(TIMEZONE_ID_PREFIX + tzLink);
|
||||||
|
}
|
||||||
|
|
||||||
if (data instanceof String[] tznames) {
|
if (data instanceof String[] tznames) {
|
||||||
// Hack for UTC. UTC is an alias to Etc/UTC in CLDR
|
// Hack for UTC. UTC is an alias to Etc/UTC in CLDR
|
||||||
@@ -777,20 +798,36 @@ public class CLDRConverter {
|
|||||||
names.put("UTC", META_ETCUTC_ZONE_NAME);
|
names.put("UTC", META_ETCUTC_ZONE_NAME);
|
||||||
} else {
|
} else {
|
||||||
// TZDB short names
|
// TZDB short names
|
||||||
|
tznames = Arrays.copyOf(tznames, tznames.length);
|
||||||
fillTZDBShortNames(tzid, tznames);
|
fillTZDBShortNames(tzid, tznames);
|
||||||
names.put(tzid, tznames);
|
names.put(tzid, tznames);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
String meta = handlerMetaZones.get(tzKey);
|
String meta = handlerMetaZones.get(tzKey);
|
||||||
|
if (meta == null && tzLink != null) {
|
||||||
|
// Check for tzLink
|
||||||
|
meta = handlerMetaZones.get(tzLink);
|
||||||
|
}
|
||||||
if (meta != null) {
|
if (meta != null) {
|
||||||
String metaKey = METAZONE_ID_PREFIX + meta;
|
String metaKey = METAZONE_ID_PREFIX + meta;
|
||||||
data = map.get(metaKey);
|
data = map.get(metaKey);
|
||||||
if (data instanceof String[] tznames) {
|
if (data instanceof String[] tznames) {
|
||||||
// TZDB short names
|
// TZDB short names
|
||||||
|
tznames = Arrays.copyOf((String[])names.getOrDefault(metaKey, tznames), 6);
|
||||||
fillTZDBShortNames(tzid, tznames);
|
fillTZDBShortNames(tzid, tznames);
|
||||||
// Keep the metazone prefix here.
|
// Keep the metazone prefix here.
|
||||||
names.put(metaKey, data);
|
names.putIfAbsent(metaKey, tznames);
|
||||||
names.put(tzid, meta);
|
names.put(tzid, meta);
|
||||||
|
if (tzLink != null && availableIds.contains(tzLink)) {
|
||||||
|
names.put(tzLink, meta);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (id.equals("root")) {
|
||||||
|
// supply TZDB short names if available
|
||||||
|
if (tzdbShortNamesMap.containsKey(tzid)) {
|
||||||
|
var tznames = new String[6];
|
||||||
|
fillTZDBShortNames(tzid, tznames);
|
||||||
|
names.put(tzid, tznames);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1263,7 +1300,7 @@ public class CLDRConverter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Generates two maps from TZ database files, where they have usual abbreviation
|
* Generates three maps from TZ database files, where they have usual abbreviation
|
||||||
* of the time zone names as "FORMAT".
|
* of the time zone names as "FORMAT".
|
||||||
*
|
*
|
||||||
* `tzdbShortNamesMap` maps the time zone id, such as "America/Los_Angeles" to
|
* `tzdbShortNamesMap` maps the time zone id, such as "America/Los_Angeles" to
|
||||||
@@ -1273,19 +1310,27 @@ public class CLDRConverter {
|
|||||||
*
|
*
|
||||||
* "America/Los_Angeles" -> "P%sT<NBSP>US"
|
* "America/Los_Angeles" -> "P%sT<NBSP>US"
|
||||||
*
|
*
|
||||||
* The other map, `tzdbSubstLetters` maps the Rule to its substitution letters.
|
* The map, `tzdbSubstLetters` maps the Rule to its substitution letters.
|
||||||
* The key of the map is the Rule name, appended with "<NBSP>std" or "<NBSP>dst"
|
* The key of the map is the Rule name, appended with "<NBSP>std" or "<NBSP>dst"
|
||||||
* depending on the savings, e.g.,
|
* depending on the savings, e.g.,
|
||||||
*
|
*
|
||||||
* "US<NBSP>std" -> "S"
|
* "US<NBSP>std" -> "S"
|
||||||
* "US<NBSP>dst" -> "D"
|
* "US<NBSP>dst" -> "D"
|
||||||
*
|
*
|
||||||
* These two mappings resolve the short names for time zones in each type,
|
* These mappings resolve the short names for time zones in each type,
|
||||||
* such as:
|
* such as:
|
||||||
*
|
*
|
||||||
* Standard short name for "America/Los_Angeles" -> "PST"
|
* Standard short name for "America/Los_Angeles" -> "PST"
|
||||||
* DST short name for "America/Los_Angeles" -> "PDT"
|
* DST short name for "America/Los_Angeles" -> "PDT"
|
||||||
* Generic short name for "America/Los_Angeles" -> "PT"
|
* Generic short name for "America/Los_Angeles" -> "PT"
|
||||||
|
*
|
||||||
|
* The map, `tzdbLinks` retains `Link`s of time zones. For example,
|
||||||
|
* the mapping:
|
||||||
|
*
|
||||||
|
* "US/Hawaii" -> "Pacific/Honolulu"
|
||||||
|
*
|
||||||
|
* resolves names for "US/Hawaii" correctly with "Pacific/Honolulu"
|
||||||
|
* names.
|
||||||
*/
|
*/
|
||||||
private static void generateTZDBShortNamesMap() throws IOException {
|
private static void generateTZDBShortNamesMap() throws IOException {
|
||||||
Files.walk(Path.of(tzDataDir), 1, FileVisitOption.FOLLOW_LINKS)
|
Files.walk(Path.of(tzDataDir), 1, FileVisitOption.FOLLOW_LINKS)
|
||||||
@@ -1295,19 +1340,37 @@ public class CLDRConverter {
|
|||||||
String zone = null;
|
String zone = null;
|
||||||
String rule = null;
|
String rule = null;
|
||||||
String format = null;
|
String format = null;
|
||||||
|
boolean inVanguard = false;
|
||||||
for (var line : Files.readAllLines(p)) {
|
for (var line : Files.readAllLines(p)) {
|
||||||
if (line.contains("#STDOFF")) continue;
|
// check for Vanguard lines
|
||||||
|
if (line.startsWith("# Vanguard section")) {
|
||||||
|
inVanguard = true;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (inVanguard && line.startsWith("# Rearguard section")) {
|
||||||
|
inVanguard = false;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (line.isBlank() || line.matches("^[ \t]*#.*")) {
|
||||||
|
// ignore blank/comment lines
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
// remove comments in-line
|
||||||
line = line.replaceAll("[ \t]*#.*", "");
|
line = line.replaceAll("[ \t]*#.*", "");
|
||||||
|
|
||||||
// Zone line
|
// Zone line
|
||||||
if (line.startsWith("Zone")) {
|
if (line.startsWith("Zone")) {
|
||||||
|
if (zone != null) {
|
||||||
|
tzdbShortNamesMap.put(zone, format + NBSP + rule);
|
||||||
|
}
|
||||||
var zl = line.split("[ \t]+", -1);
|
var zl = line.split("[ \t]+", -1);
|
||||||
zone = zl[1];
|
zone = zl[1];
|
||||||
rule = zl[3];
|
rule = zl[3];
|
||||||
format = zl[4];
|
format = flipIfNeeded(inVanguard, zl[4]);
|
||||||
} else {
|
} else {
|
||||||
if (zone != null) {
|
if (zone != null) {
|
||||||
if (line.isBlank()) {
|
if (line.startsWith("Rule") ||
|
||||||
|
line.startsWith("Link")) {
|
||||||
tzdbShortNamesMap.put(zone, format + NBSP + rule);
|
tzdbShortNamesMap.put(zone, format + NBSP + rule);
|
||||||
zone = null;
|
zone = null;
|
||||||
rule = null;
|
rule = null;
|
||||||
@@ -1315,7 +1378,7 @@ public class CLDRConverter {
|
|||||||
} else {
|
} else {
|
||||||
var s = line.split("[ \t]+", -1);
|
var s = line.split("[ \t]+", -1);
|
||||||
rule = s[2];
|
rule = s[2];
|
||||||
format = s[3];
|
format = flipIfNeeded(inVanguard, s[3]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1326,6 +1389,17 @@ public class CLDRConverter {
|
|||||||
tzdbSubstLetters.put(rl[1] + NBSP + (rl[8].equals("0") ? STD : DST),
|
tzdbSubstLetters.put(rl[1] + NBSP + (rl[8].equals("0") ? STD : DST),
|
||||||
rl[9].replace(NO_SUBST, ""));
|
rl[9].replace(NO_SUBST, ""));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Link line
|
||||||
|
if (line.startsWith("Link")) {
|
||||||
|
var ll = line.split("[ \t]+", -1);
|
||||||
|
tzdbLinks.put(ll[2], ll[1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Last entry
|
||||||
|
if (zone != null) {
|
||||||
|
tzdbShortNamesMap.put(zone, format + NBSP + rule);
|
||||||
}
|
}
|
||||||
} catch (IOException ioe) {
|
} catch (IOException ioe) {
|
||||||
throw new UncheckedIOException(ioe);
|
throw new UncheckedIOException(ioe);
|
||||||
@@ -1333,11 +1407,24 @@ public class CLDRConverter {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Reverse the std/dst FORMAT in Vanguard so that it
|
||||||
|
// correctly handles negative DST cases, such as "GMT/IST"
|
||||||
|
// vs. "IST/GMT" case for Europe/Dublin
|
||||||
|
private static String flipIfNeeded(boolean inVanguard, String format) {
|
||||||
|
if (inVanguard) {
|
||||||
|
var stddst = format.split("/");
|
||||||
|
if (stddst.length == 2) {
|
||||||
|
return stddst[1] + "/" + stddst[0];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return format;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Fill the TZDB short names if there is no name provided by the CLDR
|
* Fill the TZDB short names if there is no name provided by the CLDR
|
||||||
*/
|
*/
|
||||||
private static void fillTZDBShortNames(String tzid, String[] names) {
|
private static void fillTZDBShortNames(String tzid, String[] names) {
|
||||||
var val = tzdbShortNamesMap.get(tzid);
|
var val = tzdbShortNamesMap.get(tzdbLinks.getOrDefault(tzid, tzid));
|
||||||
if (val != null) {
|
if (val != null) {
|
||||||
var format = val.split(NBSP)[0];
|
var format = val.split(NBSP)[0];
|
||||||
var rule = val.split(NBSP)[1];
|
var rule = val.split(NBSP)[1];
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2001, 2020, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2001, 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
|
||||||
@@ -32,6 +32,7 @@ import java.io.FileInputStream;
|
|||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
@@ -339,9 +340,15 @@ public class GenerateCurrencyData {
|
|||||||
validCurrencyCodes.substring(i * 7 + 3, i * 7 + 6));
|
validCurrencyCodes.substring(i * 7 + 3, i * 7 + 6));
|
||||||
checkCurrencyCode(currencyCode);
|
checkCurrencyCode(currencyCode);
|
||||||
int tableEntry = mainTable[(currencyCode.charAt(0) - 'A') * A_TO_Z + (currencyCode.charAt(1) - 'A')];
|
int tableEntry = mainTable[(currencyCode.charAt(0) - 'A') * A_TO_Z + (currencyCode.charAt(1) - 'A')];
|
||||||
if (tableEntry == INVALID_COUNTRY_ENTRY ||
|
|
||||||
(tableEntry & SPECIAL_CASE_COUNTRY_MASK) != 0 ||
|
// Do not allow a future currency to be classified as an otherCurrency,
|
||||||
(tableEntry & SIMPLE_CASE_COUNTRY_FINAL_CHAR_MASK) != (currencyCode.charAt(2) - 'A')) {
|
// otherwise it will leak out into Currency:getAvailableCurrencies
|
||||||
|
boolean futureCurrency = Arrays.asList(specialCaseNewCurrencies).contains(currencyCode);
|
||||||
|
boolean simpleCurrency = (tableEntry & SIMPLE_CASE_COUNTRY_FINAL_CHAR_MASK) == (currencyCode.charAt(2) - 'A');
|
||||||
|
|
||||||
|
// If neither a simple currency, or one defined in the future
|
||||||
|
// then the current currency is applicable to be added to the otherTable
|
||||||
|
if (!futureCurrency && !simpleCurrency) {
|
||||||
if (otherCurrenciesCount == maxOtherCurrencies) {
|
if (otherCurrenciesCount == maxOtherCurrencies) {
|
||||||
throw new RuntimeException("too many other currencies");
|
throw new RuntimeException("too many other currencies");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2015, 2024, 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
|
||||||
@@ -48,6 +48,7 @@ public class GenModuleLoaderMap {
|
|||||||
// default set of boot modules and ext modules
|
// default set of boot modules and ext modules
|
||||||
Stream<String> bootModules = Stream.empty();
|
Stream<String> bootModules = Stream.empty();
|
||||||
Stream<String> platformModules = Stream.empty();
|
Stream<String> platformModules = Stream.empty();
|
||||||
|
Stream<String> nativeAccessModules = Stream.empty();
|
||||||
Path outfile = null;
|
Path outfile = null;
|
||||||
Path source = null;
|
Path source = null;
|
||||||
for (int i=0; i < args.length; i++) {
|
for (int i=0; i < args.length; i++) {
|
||||||
@@ -60,6 +61,9 @@ public class GenModuleLoaderMap {
|
|||||||
} else if (option.equals("-platform")) {
|
} else if (option.equals("-platform")) {
|
||||||
String[] mns = arg.split(",");
|
String[] mns = arg.split(",");
|
||||||
platformModules = Stream.concat(platformModules, Arrays.stream(mns));
|
platformModules = Stream.concat(platformModules, Arrays.stream(mns));
|
||||||
|
} else if (option.equals("-native-access")) {
|
||||||
|
String[] mns = arg.split(",");
|
||||||
|
nativeAccessModules = Stream.concat(nativeAccessModules, Arrays.stream(mns));
|
||||||
} else if (option.equals("-o")) {
|
} else if (option.equals("-o")) {
|
||||||
outfile = Paths.get(arg);
|
outfile = Paths.get(arg);
|
||||||
} else {
|
} else {
|
||||||
@@ -84,6 +88,8 @@ public class GenModuleLoaderMap {
|
|||||||
line = patch(line, "@@BOOT_MODULE_NAMES@@", bootModules);
|
line = patch(line, "@@BOOT_MODULE_NAMES@@", bootModules);
|
||||||
} else if (line.contains("@@PLATFORM_MODULE_NAMES@@")) {
|
} else if (line.contains("@@PLATFORM_MODULE_NAMES@@")) {
|
||||||
line = patch(line, "@@PLATFORM_MODULE_NAMES@@", platformModules);
|
line = patch(line, "@@PLATFORM_MODULE_NAMES@@", platformModules);
|
||||||
|
} else if (line.contains("@@NATIVE_ACCESS_MODULE_NAMES@@")) {
|
||||||
|
line = patch(line, "@@NATIVE_ACCESS_MODULE_NAMES@@", nativeAccessModules);
|
||||||
}
|
}
|
||||||
writer.println(line);
|
writer.println(line);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -246,6 +246,18 @@ ifeq ($(ENABLE_LIBFFI_BUNDLING), true)
|
|||||||
TARGETS += $(COPY_LIBFFI)
|
TARGETS += $(COPY_LIBFFI)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Copy tzmappings file for Windows
|
||||||
|
|
||||||
|
ifeq ($(call isTargetOs, windows), true)
|
||||||
|
$(eval $(call SetupCopyFiles, COPY_TZMAPPINGS, \
|
||||||
|
FILES := $(SUPPORT_OUTPUTDIR)/gensrc/java.base/windows/conf/tzmappings, \
|
||||||
|
DEST := $(call FindLibDirForModule, $(MODULE)), \
|
||||||
|
))
|
||||||
|
|
||||||
|
TARGETS += $(COPY_TZMAPPINGS)
|
||||||
|
endif
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Optionally copy hsdis into the image
|
# Optionally copy hsdis into the image
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2024, 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
|
||||||
@@ -25,7 +25,6 @@
|
|||||||
|
|
||||||
include GensrcCommon.gmk
|
include GensrcCommon.gmk
|
||||||
|
|
||||||
include gensrc/GensrcLocaleData.gmk
|
|
||||||
include gensrc/GensrcCharacterData.gmk
|
include gensrc/GensrcCharacterData.gmk
|
||||||
include gensrc/GensrcMisc.gmk
|
include gensrc/GensrcMisc.gmk
|
||||||
include gensrc/GensrcCharsetMapping.gmk
|
include gensrc/GensrcCharsetMapping.gmk
|
||||||
@@ -37,10 +36,6 @@ include gensrc/GensrcModuleLoaderMap.gmk
|
|||||||
include gensrc/GensrcScopedMemoryAccess.gmk
|
include gensrc/GensrcScopedMemoryAccess.gmk
|
||||||
include gensrc/GensrcRegex.gmk
|
include gensrc/GensrcRegex.gmk
|
||||||
|
|
||||||
# GensrcLocaleData.gmk does not set TARGETS, so we must choose which targets
|
|
||||||
# to include.
|
|
||||||
TARGETS += $(GENSRC_BASELOCALEDATA)
|
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
CLDR_DATA_DIR := $(TOPDIR)/make/data/cldr/common
|
CLDR_DATA_DIR := $(TOPDIR)/make/data/cldr/common
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2020, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2020, 2024, 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
|
||||||
@@ -23,7 +23,11 @@
|
|||||||
# questions.
|
# questions.
|
||||||
#
|
#
|
||||||
|
|
||||||
DISABLED_WARNINGS_java += this-escape restricted
|
# The base module should be built with all warnings enabled. When a
|
||||||
|
# new warning is added to javac, it can be temporarily added to the
|
||||||
|
# disabled warnings list.
|
||||||
|
#
|
||||||
|
# DISABLED_WARNINGS_java +=
|
||||||
|
|
||||||
DOCLINT += -Xdoclint:all/protected \
|
DOCLINT += -Xdoclint:all/protected \
|
||||||
'-Xdoclint/package:java.*,javax.*'
|
'-Xdoclint/package:java.*,javax.*'
|
||||||
@@ -37,7 +41,8 @@ EXCLUDE_FILES += \
|
|||||||
|
|
||||||
EXCLUDES += java/lang/doc-files \
|
EXCLUDES += java/lang/doc-files \
|
||||||
java/lang/classfile/snippet-files \
|
java/lang/classfile/snippet-files \
|
||||||
java/lang/classfile/components/snippet-files
|
java/lang/classfile/components/snippet-files \
|
||||||
|
java/lang/foreign/snippet-files
|
||||||
|
|
||||||
# Exclude BreakIterator classes that are just used in compile process to generate
|
# Exclude BreakIterator classes that are just used in compile process to generate
|
||||||
# data files and shouldn't go in the product
|
# data files and shouldn't go in the product
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2020, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2024, 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,10 +28,13 @@ include LauncherCommon.gmk
|
|||||||
# Hook to include the corresponding custom file, if present.
|
# Hook to include the corresponding custom file, if present.
|
||||||
$(eval $(call IncludeCustomExtension, modules/java.base/Launcher.gmk))
|
$(eval $(call IncludeCustomExtension, modules/java.base/Launcher.gmk))
|
||||||
|
|
||||||
JAVA_VERSION_INFO_RESOURCE := $(TOPDIR)/src/java.base/windows/native/launcher/java.rc
|
JAVA_VERSION_INFO_RESOURCE := \
|
||||||
|
$(TOPDIR)/src/java.base/windows/native/launcher/java.rc
|
||||||
|
|
||||||
JAVA_RCFLAGS ?= -I$(TOPDIR)/src/java.base/windows/native/launcher/icons
|
JAVA_RCFLAGS ?= -I$(TOPDIR)/src/java.base/windows/native/launcher/icons
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
## Build java
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
$(eval $(call SetupBuildLauncher, java, \
|
$(eval $(call SetupBuildLauncher, java, \
|
||||||
@@ -41,6 +44,10 @@ $(eval $(call SetupBuildLauncher, java, \
|
|||||||
OPTIMIZATION := HIGH, \
|
OPTIMIZATION := HIGH, \
|
||||||
))
|
))
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
## Build javaw
|
||||||
|
################################################################################
|
||||||
|
|
||||||
ifeq ($(call isTargetOs, windows), true)
|
ifeq ($(call isTargetOs, windows), true)
|
||||||
$(eval $(call SetupBuildLauncher, javaw, \
|
$(eval $(call SetupBuildLauncher, javaw, \
|
||||||
CFLAGS := -DJAVAW -DEXPAND_CLASSPATH_WILDCARDS -DENABLE_ARG_FILES, \
|
CFLAGS := -DJAVAW -DEXPAND_CLASSPATH_WILDCARDS -DENABLE_ARG_FILES, \
|
||||||
@@ -49,42 +56,47 @@ ifeq ($(call isTargetOs, windows), true)
|
|||||||
))
|
))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
## Build keytool
|
||||||
|
################################################################################
|
||||||
|
|
||||||
$(eval $(call SetupBuildLauncher, keytool, \
|
$(eval $(call SetupBuildLauncher, keytool, \
|
||||||
MAIN_CLASS := sun.security.tools.keytool.Main, \
|
MAIN_CLASS := sun.security.tools.keytool.Main, \
|
||||||
))
|
))
|
||||||
|
|
||||||
################################################################################
|
|
||||||
|
|
||||||
ifeq ($(call isTargetOs, linux), true)
|
ifeq ($(call isTargetOs, linux), true)
|
||||||
|
##############################################################################
|
||||||
|
## Build jexec
|
||||||
|
##############################################################################
|
||||||
|
|
||||||
$(eval $(call SetupJdkExecutable, BUILD_JEXEC, \
|
$(eval $(call SetupJdkExecutable, BUILD_JEXEC, \
|
||||||
NAME := jexec, \
|
NAME := jexec, \
|
||||||
SRC := $(TOPDIR)/src/$(MODULE)/unix/native/launcher, \
|
SRC := $(TOPDIR)/src/$(MODULE)/unix/native/launcher, \
|
||||||
INCLUDE_FILES := jexec.c, \
|
|
||||||
OPTIMIZATION := LOW, \
|
OPTIMIZATION := LOW, \
|
||||||
CFLAGS := $(CFLAGS_JDKEXE) \
|
EXTRA_HEADER_DIRS := libjli, \
|
||||||
-I$(TOPDIR)/src/$(MODULE)/share/native/libjli, \
|
|
||||||
CFLAGS_linux := -fPIC, \
|
CFLAGS_linux := -fPIC, \
|
||||||
LDFLAGS := $(LDFLAGS_JDKEXE), \
|
LD_SET_ORIGIN := false, \
|
||||||
OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/modules_libs/$(MODULE), \
|
OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/modules_libs/$(MODULE), \
|
||||||
))
|
))
|
||||||
|
|
||||||
TARGETS += $(BUILD_JEXEC)
|
TARGETS += $(BUILD_JEXEC)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
################################################################################
|
ifeq ($(call isTargetOsType, unix), true)
|
||||||
|
##############################################################################
|
||||||
|
## Build jspawnhelper
|
||||||
|
##############################################################################
|
||||||
|
|
||||||
ifeq ($(call isTargetOs, macosx aix linux), true)
|
|
||||||
$(eval $(call SetupJdkExecutable, BUILD_JSPAWNHELPER, \
|
$(eval $(call SetupJdkExecutable, BUILD_JSPAWNHELPER, \
|
||||||
NAME := jspawnhelper, \
|
NAME := jspawnhelper, \
|
||||||
SRC := $(TOPDIR)/src/$(MODULE)/unix/native/jspawnhelper, \
|
|
||||||
OPTIMIZATION := LOW, \
|
OPTIMIZATION := LOW, \
|
||||||
CFLAGS := $(CFLAGS_JDKEXE) -I$(TOPDIR)/src/$(MODULE)/unix/native/libjava, \
|
CFLAGS := $(VERSION_CFLAGS), \
|
||||||
EXTRA_OBJECT_FILES := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjava/childproc$(OBJ_SUFFIX), \
|
EXTRA_HEADER_DIRS := libjava, \
|
||||||
LDFLAGS := $(LDFLAGS_JDKEXE), \
|
EXTRA_OBJECT_FILES := \
|
||||||
|
$(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjava/childproc$(OBJ_SUFFIX), \
|
||||||
|
LD_SET_ORIGIN := false, \
|
||||||
OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/modules_libs/$(MODULE), \
|
OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/modules_libs/$(MODULE), \
|
||||||
))
|
))
|
||||||
|
|
||||||
TARGETS += $(BUILD_JSPAWNHELPER)
|
TARGETS += $(BUILD_JSPAWNHELPER)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
################################################################################
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2024, 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,29 +37,31 @@ $(call FillFindCache, $(wildcard $(TOPDIR)/src/java.base/*/native))
|
|||||||
include lib/CoreLibraries.gmk
|
include lib/CoreLibraries.gmk
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Create the network library
|
## Build libnet
|
||||||
|
################################################################################
|
||||||
|
|
||||||
$(eval $(call SetupJdkLibrary, BUILD_LIBNET, \
|
$(eval $(call SetupJdkLibrary, BUILD_LIBNET, \
|
||||||
NAME := net, \
|
NAME := net, \
|
||||||
OPTIMIZATION := LOW, \
|
OPTIMIZATION := LOW, \
|
||||||
CFLAGS := $(CFLAGS_JDKLIB), \
|
|
||||||
DISABLED_WARNINGS_gcc_net_util_md.c := format-nonliteral, \
|
DISABLED_WARNINGS_gcc_net_util_md.c := format-nonliteral, \
|
||||||
DISABLED_WARNINGS_gcc_NetworkInterface.c := unused-function, \
|
DISABLED_WARNINGS_gcc_NetworkInterface.c := unused-function, \
|
||||||
DISABLED_WARNINGS_clang_net_util_md.c := format-nonliteral, \
|
DISABLED_WARNINGS_clang_net_util_md.c := format-nonliteral, \
|
||||||
DISABLED_WARNINGS_clang_aix_DefaultProxySelector.c := deprecated-non-prototype, \
|
DISABLED_WARNINGS_clang_aix_DefaultProxySelector.c := \
|
||||||
|
deprecated-non-prototype, \
|
||||||
DISABLED_WARNINGS_clang_aix_NetworkInterface.c := gnu-pointer-arith, \
|
DISABLED_WARNINGS_clang_aix_NetworkInterface.c := gnu-pointer-arith, \
|
||||||
DISABLED_WARNINGS_microsoft_InetAddress.c := 4244, \
|
DISABLED_WARNINGS_microsoft_InetAddress.c := 4244, \
|
||||||
DISABLED_WARNINGS_microsoft_ResolverConfigurationImpl.c := 4996, \
|
DISABLED_WARNINGS_microsoft_ResolverConfigurationImpl.c := 4996, \
|
||||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
LDFLAGS_windows := -delayload:iphlpapi.dll -delayload:secur32.dll \
|
||||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
|
||||||
LDFLAGS_windows := -delayload:secur32.dll -delayload:iphlpapi.dll \
|
|
||||||
-delayload:winhttp.dll, \
|
-delayload:winhttp.dll, \
|
||||||
LIBS_unix := -ljvm -ljava, \
|
JDK_LIBS_unix := -ljava -ljvm, \
|
||||||
|
JDK_LIBS_windows := $(WIN_JAVA_LIB) jvm.lib, \
|
||||||
LIBS_linux := $(LIBDL), \
|
LIBS_linux := $(LIBDL), \
|
||||||
LIBS_aix := $(LIBDL),\
|
LIBS_aix := $(LIBDL),\
|
||||||
LIBS_windows := ws2_32.lib jvm.lib secur32.lib iphlpapi.lib winhttp.lib \
|
LIBS_windows := advapi32.lib delayimp.lib iphlpapi.lib secur32.lib \
|
||||||
delayimp.lib $(WIN_JAVA_LIB) advapi32.lib, \
|
winhttp.lib ws2_32.lib, \
|
||||||
LIBS_macosx := -framework CoreFoundation -framework CoreServices, \
|
LIBS_macosx := \
|
||||||
|
-framework CoreFoundation \
|
||||||
|
-framework CoreServices, \
|
||||||
))
|
))
|
||||||
|
|
||||||
$(BUILD_LIBNET): $(BUILD_LIBJAVA)
|
$(BUILD_LIBNET): $(BUILD_LIBJAVA)
|
||||||
@@ -67,119 +69,106 @@ $(BUILD_LIBNET): $(BUILD_LIBJAVA)
|
|||||||
TARGETS += $(BUILD_LIBNET)
|
TARGETS += $(BUILD_LIBNET)
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Create the nio library
|
## Build libnio
|
||||||
|
################################################################################
|
||||||
|
|
||||||
$(eval $(call SetupJdkLibrary, BUILD_LIBNIO, \
|
$(eval $(call SetupJdkLibrary, BUILD_LIBNIO, \
|
||||||
NAME := nio, \
|
NAME := nio, \
|
||||||
OPTIMIZATION := HIGH, \
|
OPTIMIZATION := HIGH, \
|
||||||
WARNINGS_AS_ERRORS_xlc := false, \
|
|
||||||
CFLAGS := $(CFLAGS_JDKLIB), \
|
|
||||||
EXTRA_HEADER_DIRS := \
|
EXTRA_HEADER_DIRS := \
|
||||||
libnio/ch \
|
libnio/ch \
|
||||||
libnio/fs \
|
libnio/fs \
|
||||||
libnet, \
|
libnet, \
|
||||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
JDK_LIBS_unix := -ljava -lnet, \
|
||||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
JDK_LIBS_windows := $(WIN_JAVA_LIB) jvm.lib \
|
||||||
LIBS_unix := -ljava -lnet, \
|
$(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libnet/net.lib, \
|
||||||
LIBS_linux := -lpthread $(LIBDL), \
|
LIBS_linux := $(LIBDL) -lpthread, \
|
||||||
LIBS_aix := $(LIBDL), \
|
LIBS_aix := $(LIBDL), \
|
||||||
LIBS_macosx := \
|
LIBS_macosx := \
|
||||||
-framework CoreFoundation -framework CoreServices, \
|
-framework CoreFoundation \
|
||||||
LIBS_windows := jvm.lib Mswsock.lib ws2_32.lib $(WIN_JAVA_LIB) \
|
-framework CoreServices, \
|
||||||
$(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libnet/net.lib \
|
LIBS_windows := advapi32.lib mswsock.lib ws2_32.lib, \
|
||||||
advapi32.lib, \
|
|
||||||
))
|
))
|
||||||
|
|
||||||
TARGETS += $(BUILD_LIBNIO)
|
TARGETS += $(BUILD_LIBNIO)
|
||||||
|
|
||||||
$(BUILD_LIBNIO): $(BUILD_LIBNET)
|
$(BUILD_LIBNIO): $(BUILD_LIBNET)
|
||||||
|
|
||||||
################################################################################
|
|
||||||
# Create the macosx security library
|
|
||||||
|
|
||||||
ifeq ($(call isTargetOs, macosx), true)
|
ifeq ($(call isTargetOs, macosx), true)
|
||||||
|
##############################################################################
|
||||||
|
## Build libosxsecurity
|
||||||
|
##############################################################################
|
||||||
|
|
||||||
$(eval $(call SetupJdkLibrary, BUILD_LIBOSXSECURITY, \
|
$(eval $(call SetupJdkLibrary, BUILD_LIBOSXSECURITY, \
|
||||||
NAME := osxsecurity, \
|
NAME := osxsecurity, \
|
||||||
OPTIMIZATION := LOW, \
|
OPTIMIZATION := LOW, \
|
||||||
CFLAGS := $(CFLAGS_JDKLIB), \
|
|
||||||
DISABLED_WARNINGS_clang_KeystoreImpl.m := deprecated-declarations, \
|
DISABLED_WARNINGS_clang_KeystoreImpl.m := deprecated-declarations, \
|
||||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
LDFLAGS := -L$(SUPPORT_OUTPUTDIR)/modules_libs/java.base,\
|
||||||
-L$(SUPPORT_OUTPUTDIR)/modules_libs/java.base \
|
JDK_LIBS := $(JDKLIB_LIBS), \
|
||||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
LIBS_macosx := -lobjc \
|
||||||
LIBS := \
|
|
||||||
-lobjc \
|
|
||||||
-framework CoreServices \
|
-framework CoreServices \
|
||||||
-framework Security \
|
|
||||||
-framework Foundation \
|
-framework Foundation \
|
||||||
$(JDKLIB_LIBS), \
|
-framework Security, \
|
||||||
))
|
))
|
||||||
|
|
||||||
$(BUILD_LIBOSXSECURITY): $(BUILD_LIBJAVA)
|
$(BUILD_LIBOSXSECURITY): $(BUILD_LIBJAVA)
|
||||||
|
|
||||||
TARGETS += $(BUILD_LIBOSXSECURITY)
|
TARGETS += $(BUILD_LIBOSXSECURITY)
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
################################################################################
|
ifeq ($(call isTargetOsType, unix)+$(STATIC_BUILD), true+false)
|
||||||
# Create the jsig library
|
##############################################################################
|
||||||
|
## Build libjsig
|
||||||
|
##############################################################################
|
||||||
|
|
||||||
ifeq ($(call isTargetOsType, unix), true)
|
$(eval $(call SetupJdkLibrary, BUILD_LIBJSIG, \
|
||||||
ifeq ($(STATIC_BUILD), false)
|
NAME := jsig, \
|
||||||
LIBJSIG_CFLAGS += -DHOTSPOT_VM_DISTRO='"$(HOTSPOT_VM_DISTRO)"'
|
OPTIMIZATION := LOW, \
|
||||||
$(eval $(call SetupJdkLibrary, BUILD_LIBJSIG, \
|
jsig.c_CFLAGS := -DHOTSPOT_VM_DISTRO='"$(HOTSPOT_VM_DISTRO)"', \
|
||||||
NAME := jsig, \
|
LIBS_linux := $(LIBDL), \
|
||||||
OPTIMIZATION := LOW, \
|
LIBS_aix := $(LIBDL), \
|
||||||
CFLAGS := $(CFLAGS_JDKLIB) $(LIBJSIG_CFLAGS), \
|
))
|
||||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
|
||||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
|
||||||
LIBS_linux := $(LIBDL), \
|
|
||||||
LIBS_aix := $(LIBDL), \
|
|
||||||
))
|
|
||||||
|
|
||||||
TARGETS += $(BUILD_LIBJSIG)
|
TARGETS += $(BUILD_LIBJSIG)
|
||||||
|
|
||||||
############################################################################
|
##############################################################################
|
||||||
# Create symlinks to libjsig in each JVM variant sub dir
|
# Create symlinks to libjsig in each JVM variant sub dir
|
||||||
ifneq ($(STATIC_LIBS), true)
|
ifneq ($(STATIC_LIBS), true)
|
||||||
LIB_OUTPUTDIR := $(call FindLibDirForModule, java.base)
|
LIB_OUTPUTDIR := $(call FindLibDirForModule, java.base)
|
||||||
|
|
||||||
# $1 variant subdir
|
# $1 variant subdir
|
||||||
define CreateSymlinks
|
define CreateSymlinks
|
||||||
# Always symlink from libdir/variant/libjsig.so -> ../libjsig.so.
|
# Always symlink from libdir/variant/libjsig.so -> ../libjsig.so.
|
||||||
$(LIB_OUTPUTDIR)/$1/$(call SHARED_LIBRARY,jsig): \
|
$(LIB_OUTPUTDIR)/$1/$(call SHARED_LIBRARY,jsig): \
|
||||||
$(LIB_OUTPUTDIR)/$(call SHARED_LIBRARY,jsig)
|
$(LIB_OUTPUTDIR)/$(call SHARED_LIBRARY,jsig)
|
||||||
$$(call MakeDir, $$(@D))
|
$$(call MakeDir, $$(@D))
|
||||||
$(RM) $$@
|
$(RM) $$@
|
||||||
$(LN) -s ../$$(@F) $$@
|
$(LN) -s ../$$(@F) $$@
|
||||||
|
|
||||||
TARGETS += $(LIB_OUTPUTDIR)/$1/$(call SHARED_LIBRARY,jsig)
|
TARGETS += $(LIB_OUTPUTDIR)/$1/$(call SHARED_LIBRARY,jsig)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
# The subdir is the same as the variant
|
|
||||||
$(foreach v, $(JVM_VARIANTS), $(eval $(call CreateSymlinks,$v)))
|
|
||||||
endif
|
|
||||||
############################################################################
|
|
||||||
|
|
||||||
|
# The subdir is the same as the variant
|
||||||
|
$(foreach v, $(JVM_VARIANTS), $(eval $(call CreateSymlinks,$v)))
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Create the symbols file for static builds.
|
# Create the symbols file for static builds.
|
||||||
|
|
||||||
ifeq ($(STATIC_BUILD), true)
|
ifeq ($(STATIC_BUILD), true)
|
||||||
|
STATIC_SYMBOLS_DIR := $(SUPPORT_OUTPUTDIR)/modules_libs/java.base
|
||||||
JAVA_BASE_EXPORT_SYMBOLS_SRC := \
|
JAVA_BASE_EXPORT_SYMBOLS_SRC := \
|
||||||
$(SUPPORT_OUTPUTDIR)/modules_libs/java.base/$(LIBRARY_PREFIX)jli.symbols \
|
$(STATIC_SYMBOLS_DIR)/$(LIBRARY_PREFIX)jli.symbols \
|
||||||
$(SUPPORT_OUTPUTDIR)/modules_libs/java.base/$(LIBRARY_PREFIX)java.symbols \
|
$(STATIC_SYMBOLS_DIR)/$(LIBRARY_PREFIX)java.symbols \
|
||||||
$(SUPPORT_OUTPUTDIR)/modules_libs/java.base/$(LIBRARY_PREFIX)net.symbols \
|
$(STATIC_SYMBOLS_DIR)/$(LIBRARY_PREFIX)net.symbols \
|
||||||
$(SUPPORT_OUTPUTDIR)/modules_libs/java.base/$(LIBRARY_PREFIX)nio.symbols \
|
$(STATIC_SYMBOLS_DIR)/$(LIBRARY_PREFIX)nio.symbols \
|
||||||
$(SUPPORT_OUTPUTDIR)/modules_libs/java.base/$(LIBRARY_PREFIX)verify.symbols \
|
$(STATIC_SYMBOLS_DIR)/$(LIBRARY_PREFIX)verify.symbols \
|
||||||
$(SUPPORT_OUTPUTDIR)/modules_libs/java.base/$(LIBRARY_PREFIX)zip.symbols \
|
$(STATIC_SYMBOLS_DIR)/$(LIBRARY_PREFIX)zip.symbols \
|
||||||
$(SUPPORT_OUTPUTDIR)/modules_libs/java.base/$(LIBRARY_PREFIX)jimage.symbols \
|
$(STATIC_SYMBOLS_DIR)/$(LIBRARY_PREFIX)jimage.symbols \
|
||||||
$(SUPPORT_OUTPUTDIR)/modules_libs/java.base/server/$(LIBRARY_PREFIX)jvm.symbols \
|
$(STATIC_SYMBOLS_DIR)/server/$(LIBRARY_PREFIX)jvm.symbols \
|
||||||
#
|
#
|
||||||
|
|
||||||
JAVA_BASE_EXPORT_SYMBOL_FILE := $(SUPPORT_OUTPUTDIR)/modules_libs/java.base/java.base.symbols
|
JAVA_BASE_EXPORT_SYMBOL_FILE := $(STATIC_SYMBOLS_DIR)/java.base.symbols
|
||||||
|
|
||||||
$(JAVA_BASE_EXPORT_SYMBOL_FILE): $(JAVA_BASE_EXPORT_SYMBOLS_SRC)
|
$(JAVA_BASE_EXPORT_SYMBOL_FILE): $(JAVA_BASE_EXPORT_SYMBOLS_SRC)
|
||||||
$(call LogInfo, Generating java.base.symbols file)
|
$(call LogInfo, Generating java.base.symbols file)
|
||||||
@@ -194,65 +183,47 @@ ifeq ($(STATIC_BUILD), true)
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Copy tzmappings file for Windows
|
## Build libsyslookup
|
||||||
|
|
||||||
ifeq ($(call isTargetOs, windows), true)
|
|
||||||
$(eval $(call SetupCopyFiles, COPY_TZMAPPINGS, \
|
|
||||||
FILES := $(SUPPORT_OUTPUTDIR)/gensrc/java.base/windows/conf/tzmappings, \
|
|
||||||
DEST := $(call FindLibDirForModule, $(MODULE)), \
|
|
||||||
))
|
|
||||||
TARGETS += $(COPY_TZMAPPINGS)
|
|
||||||
endif
|
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Create system lookup
|
|
||||||
|
|
||||||
$(eval $(call SetupJdkLibrary, BUILD_SYSLOOKUPLIB, \
|
$(eval $(call SetupJdkLibrary, BUILD_LIBSYSLOOKUP, \
|
||||||
NAME := syslookup, \
|
NAME := syslookup, \
|
||||||
CFLAGS := $(CFLAGS_JDKLIB), \
|
LD_SET_ORIGIN := false, \
|
||||||
CXXFLAGS := $(CXXFLAGS_JDKLIB), \
|
|
||||||
LDFLAGS := $(LDFLAGS_JDKLIB), \
|
|
||||||
LDFLAGS_linux := -Wl$(COMMA)--no-as-needed, \
|
LDFLAGS_linux := -Wl$(COMMA)--no-as-needed, \
|
||||||
LDFLAGS_aix := -brtl -bexpfull, \
|
LDFLAGS_aix := -brtl -bexpfull, \
|
||||||
LIBS := $(LIBCXX), \
|
LIBS_linux := $(LIBDL) $(LIBM), \
|
||||||
LIBS_linux := -lc -lm -ldl, \
|
LIBS_aix := -ldecNumber $(LIBM), \
|
||||||
LIBS_aix := -lc -lm -ldecNumber, \
|
|
||||||
))
|
))
|
||||||
|
|
||||||
TARGETS += $(BUILD_SYSLOOKUPLIB)
|
TARGETS += $(BUILD_LIBSYSLOOKUP)
|
||||||
|
|
||||||
################################################################################
|
|
||||||
# Create fallback linker lib
|
|
||||||
|
|
||||||
ifeq ($(ENABLE_FALLBACK_LINKER), true)
|
ifeq ($(ENABLE_FALLBACK_LINKER), true)
|
||||||
|
##############################################################################
|
||||||
|
## Build libfallbackLinker
|
||||||
|
##############################################################################
|
||||||
|
|
||||||
$(eval $(call SetupJdkLibrary, BUILD_LIBFALLBACKLINKER, \
|
$(eval $(call SetupJdkLibrary, BUILD_LIBFALLBACKLINKER, \
|
||||||
NAME := fallbackLinker, \
|
NAME := fallbackLinker, \
|
||||||
CFLAGS := $(CFLAGS_JDKLIB) $(LIBFFI_CFLAGS), \
|
CFLAGS := $(LIBFFI_CFLAGS), \
|
||||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
|
||||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
|
||||||
LIBS := $(LIBFFI_LIBS), \
|
LIBS := $(LIBFFI_LIBS), \
|
||||||
LIBS_windows := $(LIBFFI_LIBS) ws2_32.lib, \
|
LIBS_windows := ws2_32.lib, \
|
||||||
))
|
))
|
||||||
|
|
||||||
TARGETS += $(BUILD_LIBFALLBACKLINKER)
|
TARGETS += $(BUILD_LIBFALLBACKLINKER)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
################################################################################
|
|
||||||
|
|
||||||
ifeq ($(call isTargetOs, linux)+$(call isTargetCpu, x86_64)+$(INCLUDE_COMPILER2)+$(filter $(TOOLCHAIN_TYPE), gcc), true+true+true+gcc)
|
ifeq ($(call isTargetOs, linux)+$(call isTargetCpu, x86_64)+$(INCLUDE_COMPILER2)+$(filter $(TOOLCHAIN_TYPE), gcc), true+true+true+gcc)
|
||||||
$(eval $(call SetupJdkLibrary, BUILD_LIB_SIMD_SORT, \
|
##############################################################################
|
||||||
|
## Build libsimdsort
|
||||||
|
##############################################################################
|
||||||
|
|
||||||
|
$(eval $(call SetupJdkLibrary, BUILD_LIBSIMD_SORT, \
|
||||||
NAME := simdsort, \
|
NAME := simdsort, \
|
||||||
TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
|
LINK_TYPE := C++, \
|
||||||
OPTIMIZATION := HIGH, \
|
OPTIMIZATION := HIGH, \
|
||||||
CFLAGS := $(CFLAGS_JDKLIB), \
|
CXXFLAGS := -std=c++17, \
|
||||||
CXXFLAGS := $(CXXFLAGS_JDKLIB) -std=c++17, \
|
LIBS_linux := $(LIBDL) $(LIBM), \
|
||||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
|
||||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
|
||||||
LIBS := $(LIBCXX), \
|
|
||||||
LIBS_linux := -lc -lm -ldl, \
|
|
||||||
))
|
))
|
||||||
|
|
||||||
TARGETS += $(BUILD_LIB_SIMD_SORT)
|
TARGETS += $(BUILD_LIBSIMD_SORT)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
################################################################################
|
|
||||||
|
|||||||
@@ -1,153 +0,0 @@
|
|||||||
#
|
|
||||||
# Copyright (c) 2011, 2022, 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.
|
|
||||||
#
|
|
||||||
|
|
||||||
# Scan for all locale resources and extract for which locales there exists
|
|
||||||
# resources. Then put this meta information about existing (supported?) locales
|
|
||||||
# into LocaleDataMetaInfo.java
|
|
||||||
|
|
||||||
# First go look for all locale files
|
|
||||||
LOCALE_FILES := $(call FindFiles, \
|
|
||||||
$(MODULE_SRC)/share/classes/sun/text/resources \
|
|
||||||
$(MODULE_SRC)/share/classes/sun/util/resources, \
|
|
||||||
FormatData_*.java FormatData_*.properties \
|
|
||||||
CollationData_*.java CollationData_*.properties \
|
|
||||||
TimeZoneNames_*.java TimeZoneNames_*.properties \
|
|
||||||
LocaleNames_*.java LocaleNames_*.properties \
|
|
||||||
CurrencyNames_*.java CurrencyNames_*.properties \
|
|
||||||
CalendarData_*.java CalendarData_*.properties \
|
|
||||||
BreakIteratorInfo_*.java BreakIteratorRules_*.java)
|
|
||||||
|
|
||||||
# Then translate the locale files into for example: FormatData_sv
|
|
||||||
LOCALE_RESOURCES := $(sort $(subst .properties,,$(subst .java,,$(notdir $(LOCALE_FILES)))))
|
|
||||||
|
|
||||||
# Include the list of resources found during the previous compile.
|
|
||||||
-include $(SUPPORT_OUTPUTDIR)/gensrc/$(MODULE)/_the.locale_resources
|
|
||||||
|
|
||||||
MISSING_RESOURCES := $(filter-out $(LOCALE_RESOURCES), $(PREV_LOCALE_RESOURCES))
|
|
||||||
NEW_RESOURCES := $(filter-out $(PREV_LOCALE_RESOURCES), $(LOCALE_RESOURCES))
|
|
||||||
|
|
||||||
ifneq (, $(MISSING_RESOURCES)$(NEW_RESOURCES))
|
|
||||||
# There is a difference in the number of supported resources. Trigger a regeneration.
|
|
||||||
ifeq ($(MODULE), java.base)
|
|
||||||
$(shell $(RM) $(SUPPORT_OUTPUTDIR)/gensrc/java.base/sun/util/locale/provider/BaseLocaleDataMetaInfo.java \
|
|
||||||
$(SUPPORT_OUTPUTDIR)/gensrc/java.base/sun/util/cldr/CLDRBaseLocaleDataMetaInfo.java)
|
|
||||||
endif
|
|
||||||
ifeq ($(MODULE), jdk.localedata)
|
|
||||||
$(shell $(RM) $(SUPPORT_OUTPUTDIR)/gensrc/jdk.localedata/sun/util/resources/provider/NonBaseLocaleDataMetaInfo.java \
|
|
||||||
$(SUPPORT_OUTPUTDIR)/gensrc/jdk.localedata/sun/util/resources/cldr/provider/CLDRLocaleDataMetaInfo_jdk_localedata.java)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
# The base locales
|
|
||||||
BASE_LOCALES := en en-US
|
|
||||||
|
|
||||||
# Locales that don't have any resource files should be included here.
|
|
||||||
ALL_NON_BASE_LOCALES := ja-JP-JP th-TH-TH
|
|
||||||
|
|
||||||
SED_BASEARGS := -e 's|$(HASH)warn This file is preprocessed before being compiled|// -- This file was mechanically generated: Do not edit! -- //|g'
|
|
||||||
SED_NONBASEARGS := $(SED_BASEARGS)
|
|
||||||
|
|
||||||
# Fill in the languages and package names
|
|
||||||
SED_BASEARGS += -e 's/$(HASH)Lang$(HASH)/Base/' \
|
|
||||||
-e 's/$(HASH)Package$(HASH)/sun.util.locale.provider/'
|
|
||||||
SED_NONBASEARGS += -e 's/$(HASH)Lang$(HASH)/NonBase/' \
|
|
||||||
-e 's/$(HASH)Package$(HASH)/sun.util.resources.provider/'
|
|
||||||
|
|
||||||
# This macro creates a sed expression that substitutes for example:
|
|
||||||
# #FormatData_Locales# with: en-US locales.
|
|
||||||
define CaptureLocale
|
|
||||||
$1_LOCALES := $$(subst _,-,$$(filter-out $1, $$(subst $1_,,$$(filter $1_%, $(LOCALE_RESOURCES)))))
|
|
||||||
$1_BASE_LOCALES := $$(filter $(BASE_LOCALES), $$($1_LOCALES))
|
|
||||||
$1_NON_BASE_LOCALES := $$(filter-out $(BASE_LOCALES), $$($1_LOCALES))
|
|
||||||
|
|
||||||
# Special handling for Chinese locales to include implicit scripts
|
|
||||||
$1_NON_BASE_LOCALES := $$(subst zh-CN,zh-CN$$(SPACE)zh-Hans-CN, $$($1_NON_BASE_LOCALES))
|
|
||||||
$1_NON_BASE_LOCALES := $$(subst zh-SG,zh-SG$$(SPACE)zh-Hans-SG, $$($1_NON_BASE_LOCALES))
|
|
||||||
$1_NON_BASE_LOCALES := $$(subst zh-HK,zh-HK$$(SPACE)zh-Hant-HK, $$($1_NON_BASE_LOCALES))
|
|
||||||
$1_NON_BASE_LOCALES := $$(subst zh-MO,zh-MO$$(SPACE)zh-Hant-MO, $$($1_NON_BASE_LOCALES))
|
|
||||||
$1_NON_BASE_LOCALES := $$(subst zh-TW,zh-TW$$(SPACE)zh-Hant-TW, $$($1_NON_BASE_LOCALES))
|
|
||||||
|
|
||||||
# Adding implicit locales nb nn-NO and nb-NO
|
|
||||||
$1_NON_BASE_LOCALES += nb nn-NO nb-NO
|
|
||||||
$1_NON_BASE_LOCALES := $$(sort $$($1_NON_BASE_LOCALES))
|
|
||||||
|
|
||||||
ALL_BASE_LOCALES += $$($1_BASE_LOCALES)
|
|
||||||
ALL_NON_BASE_LOCALES += $$($1_NON_BASE_LOCALES)
|
|
||||||
|
|
||||||
# Don't sed in a space if there are no locales.
|
|
||||||
SED_BASEARGS += -e 's/$$(HASH)$1_Locales$$(HASH)/$$(if $$($1_BASE_LOCALES),$$(SPACE)$$($1_BASE_LOCALES),)/g'
|
|
||||||
SED_NONBASEARGS += -e 's/$$(HASH)$1_Locales$$(HASH)/$$(if $$($1_NON_BASE_LOCALES),$$(SPACE)$$($1_NON_BASE_LOCALES),)/g'
|
|
||||||
endef
|
|
||||||
|
|
||||||
#sun.text.resources.FormatData
|
|
||||||
$(eval $(call CaptureLocale,FormatData))
|
|
||||||
|
|
||||||
#sun.text.resources.CollationData
|
|
||||||
$(eval $(call CaptureLocale,CollationData))
|
|
||||||
|
|
||||||
#sun.text.resources.BreakIteratorInfo
|
|
||||||
$(eval $(call CaptureLocale,BreakIteratorInfo))
|
|
||||||
|
|
||||||
#sun.text.resources.BreakIteratorRules
|
|
||||||
$(eval $(call CaptureLocale,BreakIteratorRules))
|
|
||||||
|
|
||||||
#sun.util.resources.TimeZoneNames
|
|
||||||
$(eval $(call CaptureLocale,TimeZoneNames))
|
|
||||||
|
|
||||||
#sun.util.resources.LocaleNames
|
|
||||||
$(eval $(call CaptureLocale,LocaleNames))
|
|
||||||
|
|
||||||
#sun.util.resources.CurrencyNames
|
|
||||||
$(eval $(call CaptureLocale,CurrencyNames))
|
|
||||||
|
|
||||||
#sun.util.resources.CalendarData
|
|
||||||
$(eval $(call CaptureLocale,CalendarData))
|
|
||||||
|
|
||||||
SED_BASEARGS += -e 's/$(HASH)AvailableLocales_Locales$(HASH)/$(sort $(ALL_BASE_LOCALES))/g'
|
|
||||||
SED_NONBASEARGS += -e 's/$(HASH)AvailableLocales_Locales$(HASH)/$(sort $(ALL_NON_BASE_LOCALES))/g'
|
|
||||||
|
|
||||||
$(SUPPORT_OUTPUTDIR)/gensrc/java.base/sun/util/locale/provider/BaseLocaleDataMetaInfo.java: \
|
|
||||||
$(TOPDIR)/src/java.base/share/classes/sun/util/locale/provider/LocaleDataMetaInfo-XLocales.java.template
|
|
||||||
$(call LogInfo, Creating sun/util/locale/provider/BaseLocaleDataMetaInfo.java from $(words $(LOCALE_RESOURCES)) found resources)
|
|
||||||
$(call MakeTargetDir)
|
|
||||||
$(PRINTF) "PREV_LOCALE_RESOURCES:=$(LOCALE_RESOURCES)" \
|
|
||||||
> $(SUPPORT_OUTPUTDIR)/gensrc/java.base/_the.locale_resources
|
|
||||||
$(SED) $(SED_BASEARGS) $< > $@
|
|
||||||
|
|
||||||
$(SUPPORT_OUTPUTDIR)/gensrc/jdk.localedata/sun/util/resources/provider/NonBaseLocaleDataMetaInfo.java: \
|
|
||||||
$(TOPDIR)/src/java.base/share/classes/sun/util/locale/provider/LocaleDataMetaInfo-XLocales.java.template
|
|
||||||
$(call LogInfo, Creating sun/util/resources/provider/NonBaseLocaleDataMetaInfo.java from $(words $(LOCALE_RESOURCES)) found resources)
|
|
||||||
$(call MakeTargetDir)
|
|
||||||
$(PRINTF) "PREV_LOCALE_RESOURCES:=$(LOCALE_RESOURCES)" \
|
|
||||||
> $(SUPPORT_OUTPUTDIR)/gensrc/jdk.localedata/_the.locale_resources
|
|
||||||
$(SED) $(SED_NONBASEARGS) $< > $@
|
|
||||||
|
|
||||||
GENSRC_BASELOCALEDATA := $(SUPPORT_OUTPUTDIR)/gensrc/java.base/sun/util/locale/provider/BaseLocaleDataMetaInfo.java
|
|
||||||
GENSRC_LOCALEDATA := $(SUPPORT_OUTPUTDIR)/gensrc/jdk.localedata/sun/util/resources/provider/NonBaseLocaleDataMetaInfo.java
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
|
|
||||||
# This file is included twice, by java.base and jdk.localedata. The includer must
|
|
||||||
# add either GENSRC_BASELOCALEDATA or GENSRC_LOCALEDATA to TARGETS.
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2015, 2024, 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,8 +37,9 @@ $(strip \
|
|||||||
endef
|
endef
|
||||||
BOOT_MODULES_LIST := $(call SubstComma, $(BOOT_MODULES))
|
BOOT_MODULES_LIST := $(call SubstComma, $(BOOT_MODULES))
|
||||||
PLATFORM_MODULES_LIST := $(call SubstComma, $(PLATFORM_MODULES))
|
PLATFORM_MODULES_LIST := $(call SubstComma, $(PLATFORM_MODULES))
|
||||||
|
NATIVE_ACCESS_MODULES_LIST := $(call SubstComma, $(NATIVE_ACCESS_MODULES))
|
||||||
|
|
||||||
VARDEPS_VALUE := $(BOOT_MODULES_LIST) $(PLATFORM_MODULES_LIST)
|
VARDEPS_VALUE := $(BOOT_MODULES_LIST) $(PLATFORM_MODULES_LIST) $(NATIVE_ACCESS_MODULES_LIST)
|
||||||
VARDEPS_FILE := $(call DependOnVariable, VARDEPS_VALUE)
|
VARDEPS_FILE := $(call DependOnVariable, VARDEPS_VALUE)
|
||||||
|
|
||||||
############################################################################
|
############################################################################
|
||||||
@@ -49,7 +50,9 @@ $(SUPPORT_OUTPUTDIR)/gensrc/java.base/jdk/internal/module/ModuleLoaderMap.java:
|
|||||||
$(call MakeTargetDir)
|
$(call MakeTargetDir)
|
||||||
$(RM) $@ $@.tmp
|
$(RM) $@ $@.tmp
|
||||||
$(TOOL_GENCLASSLOADERMAP) -boot $(BOOT_MODULES_LIST) \
|
$(TOOL_GENCLASSLOADERMAP) -boot $(BOOT_MODULES_LIST) \
|
||||||
-platform $(PLATFORM_MODULES_LIST) -o $@.tmp $<
|
-platform $(PLATFORM_MODULES_LIST) \
|
||||||
|
-native-access $(NATIVE_ACCESS_MODULES_LIST) \
|
||||||
|
-o $@.tmp $<
|
||||||
$(MV) $@.tmp $@
|
$(MV) $@.tmp $@
|
||||||
|
|
||||||
TARGETS += $(SUPPORT_OUTPUTDIR)/gensrc/java.base/jdk/internal/module/ModuleLoaderMap.java
|
TARGETS += $(SUPPORT_OUTPUTDIR)/gensrc/java.base/jdk/internal/module/ModuleLoaderMap.java
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2024, 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
|
||||||
@@ -23,30 +23,27 @@
|
|||||||
# questions.
|
# questions.
|
||||||
#
|
#
|
||||||
|
|
||||||
##########################################################################################
|
################################################################################
|
||||||
|
## Build libverify
|
||||||
|
################################################################################
|
||||||
|
|
||||||
LIBVERIFY_OPTIMIZATION := HIGH
|
LIBVERIFY_OPTIMIZATION := HIGH
|
||||||
ifeq ($(call isTargetOs, linux), true)
|
ifeq ($(call isTargetOs, linux)+$(COMPILE_WITH_DEBUG_SYMBOLS), true+true)
|
||||||
ifeq ($(COMPILE_WITH_DEBUG_SYMBOLS), true)
|
LIBVERIFY_OPTIMIZATION := LOW
|
||||||
LIBVERIFY_OPTIMIZATION := LOW
|
|
||||||
endif
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
$(eval $(call SetupJdkLibrary, BUILD_LIBVERIFY, \
|
$(eval $(call SetupJdkLibrary, BUILD_LIBVERIFY, \
|
||||||
NAME := verify, \
|
NAME := verify, \
|
||||||
OPTIMIZATION := $(LIBVERIFY_OPTIMIZATION), \
|
OPTIMIZATION := $(LIBVERIFY_OPTIMIZATION), \
|
||||||
CFLAGS := $(CFLAGS_JDKLIB), \
|
JDK_LIBS_unix := -ljvm, \
|
||||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
JDK_LIBS_windows := jvm.lib, \
|
||||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
|
||||||
LIBS_unix := -ljvm, \
|
|
||||||
LIBS_windows := jvm.lib, \
|
|
||||||
))
|
))
|
||||||
|
|
||||||
TARGETS += $(BUILD_LIBVERIFY)
|
TARGETS += $(BUILD_LIBVERIFY)
|
||||||
|
|
||||||
##########################################################################################
|
################################################################################
|
||||||
|
## Build libjava
|
||||||
LIBJAVA_CFLAGS := -DARCHPROPNAME='"$(OPENJDK_TARGET_CPU_OSARCH)"'
|
################################################################################
|
||||||
|
|
||||||
ifeq ($(call isTargetOs, macosx), true)
|
ifeq ($(call isTargetOs, macosx), true)
|
||||||
BUILD_LIBJAVA_java_props_md.c_CFLAGS := -x objective-c
|
BUILD_LIBJAVA_java_props_md.c_CFLAGS := -x objective-c
|
||||||
@@ -56,31 +53,30 @@ endif
|
|||||||
$(eval $(call SetupJdkLibrary, BUILD_LIBJAVA, \
|
$(eval $(call SetupJdkLibrary, BUILD_LIBJAVA, \
|
||||||
NAME := java, \
|
NAME := java, \
|
||||||
OPTIMIZATION := HIGH, \
|
OPTIMIZATION := HIGH, \
|
||||||
CFLAGS := $(CFLAGS_JDKLIB) \
|
|
||||||
$(LIBJAVA_CFLAGS), \
|
|
||||||
jdk_util.c_CFLAGS := $(VERSION_CFLAGS), \
|
jdk_util.c_CFLAGS := $(VERSION_CFLAGS), \
|
||||||
WARNINGS_AS_ERRORS_xlc := false, \
|
ProcessImpl_md.c_CFLAGS := $(VERSION_CFLAGS), \
|
||||||
|
java_props_md.c_CFLAGS := \
|
||||||
|
-DARCHPROPNAME='"$(OPENJDK_TARGET_CPU_OSARCH)"', \
|
||||||
DISABLED_WARNINGS_gcc_ProcessImpl_md.c := unused-result, \
|
DISABLED_WARNINGS_gcc_ProcessImpl_md.c := unused-result, \
|
||||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
|
||||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
|
||||||
LDFLAGS_macosx := -L$(SUPPORT_OUTPUTDIR)/native/$(MODULE)/, \
|
LDFLAGS_macosx := -L$(SUPPORT_OUTPUTDIR)/native/$(MODULE)/, \
|
||||||
LIBS_unix := -ljvm, \
|
JDK_LIBS_unix := -ljvm, \
|
||||||
|
JDK_LIBS_windows := jvm.lib, \
|
||||||
LIBS_linux := $(LIBDL), \
|
LIBS_linux := $(LIBDL), \
|
||||||
LIBS_aix := $(LIBDL) $(LIBM),\
|
LIBS_aix := $(LIBDL) $(LIBM),\
|
||||||
LIBS_macosx := -framework CoreFoundation \
|
LIBS_macosx := \
|
||||||
|
-framework CoreFoundation \
|
||||||
-framework Foundation \
|
-framework Foundation \
|
||||||
-framework SystemConfiguration, \
|
-framework SystemConfiguration, \
|
||||||
LIBS_windows := jvm.lib \
|
LIBS_windows := advapi32.lib ole32.lib shell32.lib version.lib, \
|
||||||
shell32.lib ole32.lib \
|
|
||||||
advapi32.lib version.lib, \
|
|
||||||
))
|
))
|
||||||
|
|
||||||
TARGETS += $(BUILD_LIBJAVA)
|
TARGETS += $(BUILD_LIBJAVA)
|
||||||
|
|
||||||
$(BUILD_LIBJAVA): $(BUILD_LIBVERIFY)
|
$(BUILD_LIBJAVA): $(BUILD_LIBVERIFY)
|
||||||
|
|
||||||
|
################################################################################
|
||||||
##########################################################################################
|
## Build libzip
|
||||||
|
################################################################################
|
||||||
|
|
||||||
BUILD_LIBZIP_EXCLUDES :=
|
BUILD_LIBZIP_EXCLUDES :=
|
||||||
ifeq ($(USE_EXTERNAL_LIBZ), true)
|
ifeq ($(USE_EXTERNAL_LIBZ), true)
|
||||||
@@ -95,42 +91,42 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBZIP, \
|
|||||||
NAME := zip, \
|
NAME := zip, \
|
||||||
OPTIMIZATION := LOW, \
|
OPTIMIZATION := LOW, \
|
||||||
EXCLUDES := $(LIBZIP_EXCLUDES), \
|
EXCLUDES := $(LIBZIP_EXCLUDES), \
|
||||||
CFLAGS := $(CFLAGS_JDKLIB) \
|
CFLAGS := $(LIBZ_CFLAGS), \
|
||||||
$(LIBZ_CFLAGS), \
|
|
||||||
CFLAGS_unix := $(BUILD_LIBZIP_MMAP) -UDEBUG, \
|
CFLAGS_unix := $(BUILD_LIBZIP_MMAP) -UDEBUG, \
|
||||||
DISABLED_WARNINGS_gcc_zip_util.c := unused-function, \
|
DISABLED_WARNINGS_gcc_zip_util.c := unused-function, \
|
||||||
DISABLED_WARNINGS_clang := deprecated-non-prototype, \
|
DISABLED_WARNINGS_clang := deprecated-non-prototype, \
|
||||||
DISABLED_WARNINGS_clang_gzwrite.c := format-nonliteral, \
|
DISABLED_WARNINGS_clang_gzwrite.c := format-nonliteral, \
|
||||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
JDK_LIBS_unix := -ljava -ljvm, \
|
||||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
JDK_LIBS_windows := $(WIN_JAVA_LIB) jvm.lib, \
|
||||||
LIBS_unix := -ljvm -ljava $(LIBZ_LIBS), \
|
LIBS_unix := $(LIBZ_LIBS), \
|
||||||
LIBS_windows := jvm.lib $(WIN_JAVA_LIB), \
|
|
||||||
))
|
))
|
||||||
|
|
||||||
$(BUILD_LIBZIP): $(BUILD_LIBJAVA)
|
$(BUILD_LIBZIP): $(BUILD_LIBJAVA)
|
||||||
|
|
||||||
TARGETS += $(BUILD_LIBZIP)
|
TARGETS += $(BUILD_LIBZIP)
|
||||||
|
|
||||||
##########################################################################################
|
################################################################################
|
||||||
|
## Build libjimage
|
||||||
|
################################################################################
|
||||||
|
|
||||||
$(eval $(call SetupJdkLibrary, BUILD_LIBJIMAGE, \
|
$(eval $(call SetupJdkLibrary, BUILD_LIBJIMAGE, \
|
||||||
NAME := jimage, \
|
NAME := jimage, \
|
||||||
TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
|
LINK_TYPE := C++, \
|
||||||
OPTIMIZATION := LOW, \
|
OPTIMIZATION := LOW, \
|
||||||
CFLAGS := $(CFLAGS_JDKLIB), \
|
|
||||||
CXXFLAGS := $(CXXFLAGS_JDKLIB), \
|
|
||||||
CFLAGS_unix := -UDEBUG, \
|
CFLAGS_unix := -UDEBUG, \
|
||||||
LDFLAGS := $(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK) \
|
LDFLAGS := $(LDFLAGS_CXX_JDK), \
|
||||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
JDK_LIBS_unix := -ljvm, \
|
||||||
LIBS_unix := -ljvm -ldl $(LIBCXX), \
|
JDK_LIBS_windows := jvm.lib, \
|
||||||
LIBS_windows := jvm.lib, \
|
LIBS_unix := $(LIBDL), \
|
||||||
))
|
))
|
||||||
|
|
||||||
$(BUILD_LIBJIMAGE): $(BUILD_LIBJAVA)
|
$(BUILD_LIBJIMAGE): $(BUILD_LIBJAVA)
|
||||||
|
|
||||||
TARGETS += $(BUILD_LIBJIMAGE)
|
TARGETS += $(BUILD_LIBJIMAGE)
|
||||||
|
|
||||||
##########################################################################################
|
################################################################################
|
||||||
|
## Build libjli
|
||||||
|
################################################################################
|
||||||
|
|
||||||
ifeq ($(call isTargetOs, macosx), true)
|
ifeq ($(call isTargetOs, macosx), true)
|
||||||
LIBJLI_EXCLUDE_FILES += java_md.c
|
LIBJLI_EXCLUDE_FILES += java_md.c
|
||||||
@@ -149,11 +145,10 @@ ifeq ($(call isTargetOs, windows), true)
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
LIBJLI_CFLAGS += $(LIBZ_CFLAGS)
|
|
||||||
|
|
||||||
ifneq ($(USE_EXTERNAL_LIBZ), true)
|
ifneq ($(USE_EXTERNAL_LIBZ), true)
|
||||||
# Extra files from the zlib.
|
# Extra files from the zlib.
|
||||||
LIBJLI_EXTRA_FILE_LIST := inflate.c inftrees.c inffast.c zadler32.c zcrc32.c zutil.c
|
LIBJLI_EXTRA_FILE_LIST := inflate.c inftrees.c inffast.c zadler32.c \
|
||||||
|
zcrc32.c zutil.c
|
||||||
|
|
||||||
LIBJLI_EXTRA_FILES += \
|
LIBJLI_EXTRA_FILES += \
|
||||||
$(addprefix $(TOPDIR)/src/java.base/share/native/libzip/zlib/, \
|
$(addprefix $(TOPDIR)/src/java.base/share/native/libzip/zlib/, \
|
||||||
@@ -164,24 +159,25 @@ ifneq ($(USE_EXTERNAL_LIBZ), true)
|
|||||||
# static libraries, we use the --whole-archive linker option.
|
# static libraries, we use the --whole-archive linker option.
|
||||||
# The duplicate objects in different static libraries cause linking
|
# The duplicate objects in different static libraries cause linking
|
||||||
# errors due to duplicate symbols.
|
# errors due to duplicate symbols.
|
||||||
LIBJLI_STATIC_EXCLUDE_OBJS := $(subst .c,$(OBJ_SUFFIX),$(LIBJLI_EXTRA_FILE_LIST))
|
LIBJLI_STATIC_EXCLUDE_OBJS := \
|
||||||
|
$(subst .c,$(OBJ_SUFFIX),$(LIBJLI_EXTRA_FILE_LIST))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
$(eval $(call SetupJdkLibrary, BUILD_LIBJLI, \
|
$(eval $(call SetupJdkLibrary, BUILD_LIBJLI, \
|
||||||
NAME := jli, \
|
NAME := jli, \
|
||||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
|
||||||
EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \
|
EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \
|
||||||
EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \
|
EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \
|
||||||
OPTIMIZATION := HIGH, \
|
OPTIMIZATION := HIGH, \
|
||||||
CFLAGS := $(CFLAGS_JDKLIB) $(LIBJLI_CFLAGS), \
|
CFLAGS := $(LIBJLI_CFLAGS) $(LIBZ_CFLAGS), \
|
||||||
DISABLED_WARNINGS_gcc := unused-function, \
|
DISABLED_WARNINGS_gcc := unused-function, \
|
||||||
DISABLED_WARNINGS_clang := format-nonliteral deprecated-non-prototype, \
|
DISABLED_WARNINGS_clang := format-nonliteral deprecated-non-prototype, \
|
||||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
|
||||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
|
||||||
LIBS_unix := $(LIBZ_LIBS), \
|
LIBS_unix := $(LIBZ_LIBS), \
|
||||||
LIBS_linux := $(LIBDL) -lpthread, \
|
LIBS_linux := $(LIBDL) -lpthread, \
|
||||||
LIBS_aix := $(LIBDL),\
|
LIBS_aix := $(LIBDL),\
|
||||||
LIBS_macosx := -framework Cocoa -framework Security -framework ApplicationServices, \
|
LIBS_macosx := \
|
||||||
|
-framework ApplicationServices \
|
||||||
|
-framework Cocoa \
|
||||||
|
-framework Security, \
|
||||||
LIBS_windows := advapi32.lib comctl32.lib user32.lib, \
|
LIBS_windows := advapi32.lib comctl32.lib user32.lib, \
|
||||||
STATIC_LIB_EXCLUDE_OBJS := $(LIBJLI_STATIC_EXCLUDE_OBJS), \
|
STATIC_LIB_EXCLUDE_OBJS := $(LIBJLI_STATIC_EXCLUDE_OBJS), \
|
||||||
))
|
))
|
||||||
@@ -191,7 +187,8 @@ TARGETS += $(BUILD_LIBJLI)
|
|||||||
LIBJLI_SRC_DIRS := $(call FindSrcDirsForComponent, java.base, libjli)
|
LIBJLI_SRC_DIRS := $(call FindSrcDirsForComponent, java.base, libjli)
|
||||||
|
|
||||||
ifeq ($(call isTargetOs, aix), true)
|
ifeq ($(call isTargetOs, aix), true)
|
||||||
# AIX also requires a static libjli because the compiler doesn't support '-rpath'
|
# AIX also requires a static libjli because the compiler doesn't support
|
||||||
|
# '-rpath'
|
||||||
$(eval $(call SetupNativeCompilation, BUILD_LIBJLI_STATIC, \
|
$(eval $(call SetupNativeCompilation, BUILD_LIBJLI_STATIC, \
|
||||||
NAME := jli_static, \
|
NAME := jli_static, \
|
||||||
TYPE := STATIC_LIBRARY, \
|
TYPE := STATIC_LIBRARY, \
|
||||||
@@ -201,11 +198,11 @@ ifeq ($(call isTargetOs, aix), true)
|
|||||||
EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \
|
EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \
|
||||||
OPTIMIZATION := HIGH, \
|
OPTIMIZATION := HIGH, \
|
||||||
CFLAGS := $(STATIC_LIBRARY_FLAGS) $(CFLAGS_JDKLIB) $(LIBJLI_CFLAGS) \
|
CFLAGS := $(STATIC_LIBRARY_FLAGS) $(CFLAGS_JDKLIB) $(LIBJLI_CFLAGS) \
|
||||||
$(addprefix -I, $(LIBJLI_SRC_DIRS)), \
|
$(LIBZ_CFLAGS) $(addprefix -I, $(LIBJLI_SRC_DIRS)), \
|
||||||
DISABLED_WARNINGS_clang_aix := format-nonliteral deprecated-non-prototype, \
|
DISABLED_WARNINGS_clang_aix := format-nonliteral \
|
||||||
|
deprecated-non-prototype, \
|
||||||
ARFLAGS := $(ARFLAGS), \
|
ARFLAGS := $(ARFLAGS), \
|
||||||
OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjli_static))
|
OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjli_static))
|
||||||
|
|
||||||
TARGETS += $(BUILD_LIBJLI_STATIC)
|
TARGETS += $(BUILD_LIBJLI_STATIC)
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2020, 2024, 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
|
||||||
@@ -23,6 +23,10 @@
|
|||||||
# questions.
|
# questions.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
# To the extent technically possible, this module should be built with
|
||||||
|
# -Werror and all lint warnings enabled. In particular,
|
||||||
|
# DISABLED_WARNINGS_java should not be augmented.
|
||||||
|
|
||||||
DOCLINT += -Xdoclint:all/protected \
|
DOCLINT += -Xdoclint:all/protected \
|
||||||
'-Xdoclint/package:java.*,javax.*'
|
'-Xdoclint/package:java.*,javax.*'
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2022, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2024, 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,10 +37,10 @@ $(call FillFindCache, $(wildcard $(TOPDIR)/src/java.desktop/*/native))
|
|||||||
|
|
||||||
include lib/Awt2dLibraries.gmk
|
include lib/Awt2dLibraries.gmk
|
||||||
|
|
||||||
################################################################################
|
|
||||||
# Create the libjsound library
|
|
||||||
|
|
||||||
ifeq ($(call isTargetOs, aix), false)
|
ifeq ($(call isTargetOs, aix), false)
|
||||||
|
##############################################################################
|
||||||
|
# Build libjsound
|
||||||
|
##############################################################################
|
||||||
|
|
||||||
LIBJSOUND_CFLAGS := \
|
LIBJSOUND_CFLAGS := \
|
||||||
$(ALSA_CFLAGS) \
|
$(ALSA_CFLAGS) \
|
||||||
@@ -51,85 +51,84 @@ ifeq ($(call isTargetOs, aix), false)
|
|||||||
-DUSE_PLATFORM_MIDI_IN=TRUE \
|
-DUSE_PLATFORM_MIDI_IN=TRUE \
|
||||||
#
|
#
|
||||||
|
|
||||||
|
LIBJSOUND_LINK_TYPE := C
|
||||||
ifeq ($(call isTargetOs, macosx), true)
|
ifeq ($(call isTargetOs, macosx), true)
|
||||||
LIBJSOUND_TOOLCHAIN := TOOLCHAIN_LINK_CXX
|
LIBJSOUND_LINK_TYPE := C++
|
||||||
endif
|
endif
|
||||||
|
|
||||||
$(eval $(call SetupJdkLibrary, BUILD_LIBJSOUND, \
|
$(eval $(call SetupJdkLibrary, BUILD_LIBJSOUND, \
|
||||||
NAME := jsound, \
|
NAME := jsound, \
|
||||||
TOOLCHAIN := $(LIBJSOUND_TOOLCHAIN), \
|
LINK_TYPE := $(LIBJSOUND_LINK_TYPE), \
|
||||||
OPTIMIZATION := LOW, \
|
OPTIMIZATION := LOW, \
|
||||||
CFLAGS := $(CFLAGS_JDKLIB) \
|
CFLAGS := $(LIBJSOUND_CFLAGS), \
|
||||||
$(LIBJSOUND_CFLAGS), \
|
CXXFLAGS := $(LIBJSOUND_CFLAGS), \
|
||||||
CXXFLAGS := $(CXXFLAGS_JDKLIB) $(LIBJSOUND_CFLAGS), \
|
|
||||||
DISABLED_WARNINGS_gcc := undef, \
|
DISABLED_WARNINGS_gcc := undef, \
|
||||||
DISABLED_WARNINGS_clang := undef, \
|
DISABLED_WARNINGS_clang := undef, \
|
||||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
JDK_LIBS_unix := -ljava -ljvm, \
|
||||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
JDK_LIBS_windows := $(WIN_JAVA_LIB), \
|
||||||
LIBS_unix := -ljava -ljvm, \
|
|
||||||
LIBS_linux := $(ALSA_LIBS), \
|
LIBS_linux := $(ALSA_LIBS), \
|
||||||
LIBS_macosx := -framework CoreAudio -framework CoreFoundation \
|
LIBS_macosx := \
|
||||||
-framework CoreServices -framework AudioUnit \
|
-framework AudioToolbox \
|
||||||
-framework CoreMIDI -framework AudioToolbox $(LIBCXX), \
|
-framework AudioUnit \
|
||||||
LIBS_windows := $(WIN_JAVA_LIB) advapi32.lib dsound.lib winmm.lib user32.lib ole32.lib, \
|
-framework CoreAudio \
|
||||||
|
-framework CoreFoundation \
|
||||||
|
-framework CoreMIDI \
|
||||||
|
-framework CoreServices, \
|
||||||
|
LIBS_windows := advapi32.lib dsound.lib ole32.lib user32.lib winmm.lib, \
|
||||||
))
|
))
|
||||||
|
|
||||||
$(BUILD_LIBJSOUND): $(call FindLib, java.base, java)
|
$(BUILD_LIBJSOUND): $(call FindLib, java.base, java)
|
||||||
|
|
||||||
TARGETS += $(BUILD_LIBJSOUND)
|
TARGETS += $(BUILD_LIBJSOUND)
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
################################################################################
|
|
||||||
# Create the macosx specific osxapp and osx libraries
|
|
||||||
|
|
||||||
ifeq ($(call isTargetOs, macosx), true)
|
ifeq ($(call isTargetOs, macosx), true)
|
||||||
|
##############################################################################
|
||||||
|
# Build libosxapp
|
||||||
|
##############################################################################
|
||||||
|
|
||||||
$(eval $(call SetupJdkLibrary, BUILD_LIBOSXAPP, \
|
$(eval $(call SetupJdkLibrary, BUILD_LIBOSXAPP, \
|
||||||
NAME := osxapp, \
|
NAME := osxapp, \
|
||||||
OPTIMIZATION := LOW, \
|
OPTIMIZATION := LOW, \
|
||||||
CFLAGS := $(CFLAGS_JDKLIB), \
|
DISABLED_WARNINGS_clang_NSApplicationAWT.m := deprecated-declarations \
|
||||||
DISABLED_WARNINGS_clang_NSApplicationAWT.m := deprecated-declarations format-nonliteral, \
|
format-nonliteral, \
|
||||||
DISABLED_WARNINGS_clang_QueuingApplicationDelegate.m := objc-method-access, \
|
DISABLED_WARNINGS_clang_QueuingApplicationDelegate.m := \
|
||||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
objc-method-access, \
|
||||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
JDK_LIBS_macosx := -ljava, \
|
||||||
LIBS := \
|
LIBS_macosx := \
|
||||||
-ljava \
|
|
||||||
-framework Accelerate \
|
-framework Accelerate \
|
||||||
-framework ApplicationServices \
|
-framework ApplicationServices \
|
||||||
-framework AudioToolbox \
|
-framework AudioToolbox \
|
||||||
-framework Carbon \
|
-framework Carbon \
|
||||||
-framework Cocoa \
|
-framework Cocoa \
|
||||||
-framework Security \
|
|
||||||
-framework ExceptionHandling \
|
-framework ExceptionHandling \
|
||||||
|
-framework IOSurface \
|
||||||
-framework JavaRuntimeSupport \
|
-framework JavaRuntimeSupport \
|
||||||
-framework OpenGL \
|
-framework OpenGL \
|
||||||
-framework IOSurface \
|
-framework QuartzCore \
|
||||||
-framework QuartzCore, \
|
-framework Security, \
|
||||||
))
|
))
|
||||||
|
|
||||||
$(BUILD_LIBOSXAPP): $(call FindLib, java.base, java)
|
$(BUILD_LIBOSXAPP): $(call FindLib, java.base, java)
|
||||||
|
|
||||||
TARGETS += $(BUILD_LIBOSXAPP)
|
TARGETS += $(BUILD_LIBOSXAPP)
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
# Build libosx
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
$(eval $(call SetupJdkLibrary, BUILD_LIBOSX, \
|
$(eval $(call SetupJdkLibrary, BUILD_LIBOSX, \
|
||||||
NAME := osx, \
|
NAME := osx, \
|
||||||
OPTIMIZATION := LOW, \
|
OPTIMIZATION := LOW, \
|
||||||
CFLAGS := $(CFLAGS_JDKLIB), \
|
|
||||||
EXTRA_HEADER_DIRS := libosxapp, \
|
EXTRA_HEADER_DIRS := libosxapp, \
|
||||||
DISABLED_WARNINGS_clang_CFileManager.m := deprecated-declarations, \
|
DISABLED_WARNINGS_clang_CFileManager.m := deprecated-declarations, \
|
||||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
LDFLAGS := -L$(SUPPORT_OUTPUTDIR)/modules_libs/java.desktop, \
|
||||||
-L$(SUPPORT_OUTPUTDIR)/modules_libs/java.desktop \
|
JDK_LIBS_macosx := $(JDKLIB_LIBS) -losxapp, \
|
||||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
LIBS_macosx := \
|
||||||
LIBS := \
|
|
||||||
-losxapp \
|
|
||||||
-framework Cocoa \
|
|
||||||
-framework ApplicationServices \
|
-framework ApplicationServices \
|
||||||
|
-framework Cocoa \
|
||||||
-framework JavaRuntimeSupport \
|
-framework JavaRuntimeSupport \
|
||||||
-framework SystemConfiguration \
|
-framework SystemConfiguration, \
|
||||||
$(JDKLIB_LIBS), \
|
|
||||||
))
|
))
|
||||||
|
|
||||||
TARGETS += $(BUILD_LIBOSX)
|
TARGETS += $(BUILD_LIBOSX)
|
||||||
@@ -137,5 +136,4 @@ ifeq ($(call isTargetOs, macosx), true)
|
|||||||
$(BUILD_LIBOSX): $(call FindLib, java.desktop, osxapp)
|
$(BUILD_LIBOSX): $(call FindLib, java.desktop, osxapp)
|
||||||
|
|
||||||
$(BUILD_LIBOSX): $(call FindLib, java.base, java)
|
$(BUILD_LIBOSX): $(call FindLib, java.base, java)
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2022, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2024, 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
|
||||||
@@ -25,35 +25,35 @@
|
|||||||
|
|
||||||
include LibCommon.gmk
|
include LibCommon.gmk
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
## Build libinstrument
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
ifeq ($(call isTargetOs, windows), true)
|
# equivalent of strcasecmp is stricmp on Windows
|
||||||
# equivalent of strcasecmp is stricmp on Windows
|
|
||||||
LIBINSTRUMENT_CFLAGS := -Dstrcasecmp=stricmp
|
|
||||||
WINDOWS_JLI_LIB := $(SUPPORT_OUTPUTDIR)/native/java.base/libjli/jli.lib
|
|
||||||
endif
|
|
||||||
|
|
||||||
$(eval $(call SetupJdkLibrary, BUILD_LIBINSTRUMENT, \
|
$(eval $(call SetupJdkLibrary, BUILD_LIBINSTRUMENT, \
|
||||||
NAME := instrument, \
|
NAME := instrument, \
|
||||||
OPTIMIZATION := LOW, \
|
OPTIMIZATION := LOW, \
|
||||||
CFLAGS := $(CFLAGS_JDKLIB) $(LIBINSTRUMENT_CFLAGS), \
|
CFLAGS_windows := -Dstrcasecmp=stricmp, \
|
||||||
CFLAGS_debug := -DJPLIS_LOGGING, \
|
CFLAGS_debug := -DJPLIS_LOGGING, \
|
||||||
CFLAGS_release := -DNO_JPLIS_LOGGING, \
|
CFLAGS_release := -DNO_JPLIS_LOGGING, \
|
||||||
EXTRA_HEADER_DIRS := java.base:libjli, \
|
EXTRA_HEADER_DIRS := java.base:libjli, \
|
||||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
|
||||||
$(call SET_SHARED_LIBRARY_ORIGIN) \
|
|
||||||
$(LIBINSTRUMENT_LDFLAGS), \
|
|
||||||
LDFLAGS_linux := -L$(call FindLibDirForModule, java.base), \
|
LDFLAGS_linux := -L$(call FindLibDirForModule, java.base), \
|
||||||
LDFLAGS_macosx := -L$(call FindLibDirForModule, java.base), \
|
LDFLAGS_macosx := -L$(call FindLibDirForModule, java.base), \
|
||||||
LDFLAGS_aix := -L$(SUPPORT_OUTPUTDIR)/native/java.base, \
|
LDFLAGS_aix := -L$(SUPPORT_OUTPUTDIR)/native/java.base, \
|
||||||
LIBS := $(JDKLIB_LIBS), \
|
JDK_LIBS := $(JDKLIB_LIBS), \
|
||||||
LIBS_unix := -ljava -ljvm $(LIBZ_LIBS), \
|
JDK_LIBS_linux := -ljli, \
|
||||||
LIBS_linux := -ljli $(LIBDL), \
|
JDK_LIBS_macosx := -ljli, \
|
||||||
LIBS_aix := -liconv -ljli_static $(LIBDL), \
|
JDK_LIBS_aix := -ljli_static, \
|
||||||
LIBS_macosx := -ljli -liconv -framework Cocoa -framework Security \
|
JDK_LIBS_windows := $(WIN_JAVA_LIB) \
|
||||||
-framework ApplicationServices, \
|
$(SUPPORT_OUTPUTDIR)/native/java.base/libjli/jli.lib jvm.lib, \
|
||||||
LIBS_windows := jvm.lib $(WIN_JAVA_LIB) advapi32.lib \
|
LIBS_unix := $(LIBZ_LIBS), \
|
||||||
$(WINDOWS_JLI_LIB), \
|
LIBS_linux := $(LIBDL), \
|
||||||
|
LIBS_aix := $(LIBDL) -liconv, \
|
||||||
|
LIBS_macosx := -liconv \
|
||||||
|
-framework ApplicationServices \
|
||||||
|
-framework Cocoa \
|
||||||
|
-framework Security, \
|
||||||
|
LIBS_windows := advapi32.lib, \
|
||||||
))
|
))
|
||||||
|
|
||||||
ifeq ($(call isTargetOs, aix), true)
|
ifeq ($(call isTargetOs, aix), true)
|
||||||
@@ -64,5 +64,3 @@ endif
|
|||||||
$(BUILD_LIBINSTRUMENT): $(call FindLib, java.base, java)
|
$(BUILD_LIBINSTRUMENT): $(call FindLib, java.base, java)
|
||||||
|
|
||||||
TARGETS += $(BUILD_LIBINSTRUMENT)
|
TARGETS += $(BUILD_LIBINSTRUMENT)
|
||||||
|
|
||||||
################################################################################
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2020, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2024, 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,21 +28,17 @@ include LibCommon.gmk
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
LIBMANAGEMENT_OPTIMIZATION := HIGH
|
LIBMANAGEMENT_OPTIMIZATION := HIGH
|
||||||
ifeq ($(call isTargetOs, linux), true)
|
ifeq ($(call isTargetOs, linux)+$(COMPILE_WITH_DEBUG_SYMBOLS), true+true)
|
||||||
ifeq ($(COMPILE_WITH_DEBUG_SYMBOLS), true)
|
LIBMANAGEMENT_OPTIMIZATION := LOW
|
||||||
LIBMANAGEMENT_OPTIMIZATION := LOW
|
|
||||||
endif
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
$(eval $(call SetupJdkLibrary, BUILD_LIBMANAGEMENT, \
|
$(eval $(call SetupJdkLibrary, BUILD_LIBMANAGEMENT, \
|
||||||
NAME := management, \
|
NAME := management, \
|
||||||
OPTIMIZATION := $(LIBMANAGEMENT_OPTIMIZATION), \
|
OPTIMIZATION := $(LIBMANAGEMENT_OPTIMIZATION), \
|
||||||
CFLAGS := $(CFLAGS_JDKLIB), \
|
JDK_LIBS := $(JDKLIB_LIBS), \
|
||||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
JDK_LIBS_windows := $(WIN_JAVA_LIB) jvm.lib, \
|
||||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
|
||||||
LIBS := $(JDKLIB_LIBS), \
|
|
||||||
LIBS_aix := -lperfstat,\
|
LIBS_aix := -lperfstat,\
|
||||||
LIBS_windows := jvm.lib psapi.lib $(WIN_JAVA_LIB) advapi32.lib, \
|
LIBS_windows := advapi32.lib psapi.lib, \
|
||||||
))
|
))
|
||||||
|
|
||||||
$(BUILD_LIBMANAGEMENT): $(call FindLib, java.base, java)
|
$(BUILD_LIBMANAGEMENT): $(call FindLib, java.base, java)
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2020, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2024, 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
|
||||||
@@ -25,29 +25,29 @@
|
|||||||
|
|
||||||
include LibCommon.gmk
|
include LibCommon.gmk
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
## Build libprefs
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
# libprefs on macosx do not use the unix code
|
# libprefs on macosx does not use the unix code
|
||||||
ifeq ($(call isTargetOs, macosx), true)
|
ifeq ($(call isTargetOs, macosx), true)
|
||||||
LIBPREFS_EXCLUDE_SRC_PATTERNS := unix
|
LIBPREFS_EXCLUDE_SRC_PATTERNS := /unix/
|
||||||
endif
|
endif
|
||||||
|
|
||||||
$(eval $(call SetupJdkLibrary, BUILD_LIBPREFS, \
|
$(eval $(call SetupJdkLibrary, BUILD_LIBPREFS, \
|
||||||
NAME := prefs, \
|
NAME := prefs, \
|
||||||
EXCLUDE_SRC_PATTERNS := $(LIBPREFS_EXCLUDE_SRC_PATTERNS), \
|
EXCLUDE_SRC_PATTERNS := $(LIBPREFS_EXCLUDE_SRC_PATTERNS), \
|
||||||
OPTIMIZATION := HIGH, \
|
OPTIMIZATION := HIGH, \
|
||||||
CFLAGS := $(CFLAGS_JDKLIB), \
|
JDK_LIBS_unix := -ljvm, \
|
||||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
JDK_LIBS_linux := -ljava, \
|
||||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
JDK_LIBS_aix := -ljava, \
|
||||||
LIBS_unix := -ljvm, \
|
JDK_LIBS_windows := $(WIN_JAVA_LIB) jvm.lib, \
|
||||||
LIBS_linux := -ljava, \
|
LIBS_macosx := \
|
||||||
LIBS_aix := -ljava, \
|
-framework CoreFoundation \
|
||||||
LIBS_macosx := -framework CoreFoundation -framework Foundation, \
|
-framework Foundation, \
|
||||||
LIBS_windows := advapi32.lib jvm.lib $(WIN_JAVA_LIB), \
|
LIBS_windows := advapi32.lib, \
|
||||||
))
|
))
|
||||||
|
|
||||||
$(BUILD_LIBPREFS): $(call FindLib, java.base, java)
|
$(BUILD_LIBPREFS): $(call FindLib, java.base, java)
|
||||||
|
|
||||||
TARGETS += $(BUILD_LIBPREFS)
|
TARGETS += $(BUILD_LIBPREFS)
|
||||||
|
|
||||||
################################################################################
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2021, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2024, 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
|
||||||
@@ -25,6 +25,10 @@
|
|||||||
|
|
||||||
include LauncherCommon.gmk
|
include LauncherCommon.gmk
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
## Build rmiregistry
|
||||||
|
################################################################################
|
||||||
|
|
||||||
$(eval $(call SetupBuildLauncher, rmiregistry, \
|
$(eval $(call SetupBuildLauncher, rmiregistry, \
|
||||||
MAIN_CLASS := sun.rmi.registry.RegistryImpl, \
|
MAIN_CLASS := sun.rmi.registry.RegistryImpl, \
|
||||||
JAVA_ARGS := -Djava.security.manager=allow, \
|
JAVA_ARGS := -Djava.security.manager=allow, \
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2016, 2024, 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
|
||||||
@@ -25,20 +25,17 @@
|
|||||||
|
|
||||||
include LibCommon.gmk
|
include LibCommon.gmk
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
## Build librmi
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
$(eval $(call SetupJdkLibrary, BUILD_LIBRMI, \
|
$(eval $(call SetupJdkLibrary, BUILD_LIBRMI, \
|
||||||
NAME := rmi, \
|
NAME := rmi, \
|
||||||
OPTIMIZATION := LOW, \
|
OPTIMIZATION := LOW, \
|
||||||
CFLAGS := $(CFLAGS_JDKLIB), \
|
JDK_LIBS_unix := -ljvm, \
|
||||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
JDK_LIBS_windows := jvm.lib, \
|
||||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
|
||||||
LIBS_unix := -ljvm, \
|
|
||||||
LIBS_windows := jvm.lib, \
|
|
||||||
))
|
))
|
||||||
|
|
||||||
$(BUILD_LIBRMI): $(call FindLib, java.base, java)
|
$(BUILD_LIBRMI): $(call FindLib, java.base, java)
|
||||||
|
|
||||||
TARGETS += $(BUILD_LIBRMI)
|
TARGETS += $(BUILD_LIBRMI)
|
||||||
|
|
||||||
################################################################################
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2024, 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
|
||||||
@@ -25,6 +25,10 @@
|
|||||||
|
|
||||||
include LauncherCommon.gmk
|
include LauncherCommon.gmk
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
## Build jrunscript
|
||||||
|
################################################################################
|
||||||
|
|
||||||
$(eval $(call SetupBuildLauncher, jrunscript, \
|
$(eval $(call SetupBuildLauncher, jrunscript, \
|
||||||
MAIN_CLASS := com.sun.tools.script.shell.Main, \
|
MAIN_CLASS := com.sun.tools.script.shell.Main, \
|
||||||
JAVA_ARGS := --add-modules ALL-DEFAULT, \
|
JAVA_ARGS := --add-modules ALL-DEFAULT, \
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -26,14 +26,26 @@
|
|||||||
include LauncherCommon.gmk
|
include LauncherCommon.gmk
|
||||||
|
|
||||||
ifeq ($(call isTargetOs, windows), true)
|
ifeq ($(call isTargetOs, windows), true)
|
||||||
|
##############################################################################
|
||||||
|
## Build kinit
|
||||||
|
##############################################################################
|
||||||
|
|
||||||
$(eval $(call SetupBuildLauncher, kinit, \
|
$(eval $(call SetupBuildLauncher, kinit, \
|
||||||
MAIN_CLASS := sun.security.krb5.internal.tools.Kinit, \
|
MAIN_CLASS := sun.security.krb5.internal.tools.Kinit, \
|
||||||
))
|
))
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
## Build klist
|
||||||
|
##############################################################################
|
||||||
|
|
||||||
$(eval $(call SetupBuildLauncher, klist, \
|
$(eval $(call SetupBuildLauncher, klist, \
|
||||||
MAIN_CLASS := sun.security.krb5.internal.tools.Klist, \
|
MAIN_CLASS := sun.security.krb5.internal.tools.Klist, \
|
||||||
))
|
))
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
## Build ktab
|
||||||
|
##############################################################################
|
||||||
|
|
||||||
$(eval $(call SetupBuildLauncher, ktab, \
|
$(eval $(call SetupBuildLauncher, ktab, \
|
||||||
MAIN_CLASS := sun.security.krb5.internal.tools.Ktab, \
|
MAIN_CLASS := sun.security.krb5.internal.tools.Ktab, \
|
||||||
))
|
))
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2024, 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
|
||||||
@@ -25,70 +25,67 @@
|
|||||||
|
|
||||||
include LibCommon.gmk
|
include LibCommon.gmk
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
## Build libj2gss
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
$(eval $(call SetupJdkLibrary, BUILD_LIBJ2GSS, \
|
$(eval $(call SetupJdkLibrary, BUILD_LIBJ2GSS, \
|
||||||
NAME := j2gss, \
|
NAME := j2gss, \
|
||||||
OPTIMIZATION := LOW, \
|
OPTIMIZATION := LOW, \
|
||||||
CFLAGS := $(CFLAGS_JDKLIB), \
|
|
||||||
DISABLED_WARNINGS_gcc := undef, \
|
DISABLED_WARNINGS_gcc := undef, \
|
||||||
DISABLED_WARNINGS_clang_aix := undef, \
|
|
||||||
DISABLED_WARNINGS_clang := undef, \
|
DISABLED_WARNINGS_clang := undef, \
|
||||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
LIBS_unix := $(LIBDL), \
|
||||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
|
||||||
LIBS := $(LIBDL), \
|
|
||||||
))
|
))
|
||||||
|
|
||||||
TARGETS += $(BUILD_LIBJ2GSS)
|
TARGETS += $(BUILD_LIBJ2GSS)
|
||||||
|
|
||||||
ifeq ($(call isTargetOs, windows), true)
|
ifeq ($(call isTargetOs, windows), true)
|
||||||
|
##############################################################################
|
||||||
|
## Build libsspi_bridge
|
||||||
|
##############################################################################
|
||||||
|
|
||||||
$(eval $(call SetupJdkLibrary, BUILD_LIBSSPI_BRIDGE, \
|
$(eval $(call SetupJdkLibrary, BUILD_LIBSSPI_BRIDGE, \
|
||||||
NAME := sspi_bridge, \
|
NAME := sspi_bridge, \
|
||||||
OPTIMIZATION := LOW, \
|
OPTIMIZATION := LOW, \
|
||||||
EXTRA_HEADER_DIRS := libj2gss, \
|
EXTRA_HEADER_DIRS := libj2gss, \
|
||||||
CFLAGS := $(CFLAGS_JDKLIB), \
|
LIBS_windows := secur32.lib, \
|
||||||
CXXFLAGS := $(CXXFLAGS_JDKLIB), \
|
|
||||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
|
||||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
|
||||||
LIBS := Secur32.lib, \
|
|
||||||
))
|
))
|
||||||
|
|
||||||
TARGETS += $(BUILD_LIBSSPI_BRIDGE)
|
TARGETS += $(BUILD_LIBSSPI_BRIDGE)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
################################################################################
|
|
||||||
|
|
||||||
ifneq ($(BUILD_CRYPTO), false)
|
ifneq ($(BUILD_CRYPTO), false)
|
||||||
|
|
||||||
ifeq ($(call isTargetOs, windows), true)
|
ifeq ($(call isTargetOs, windows), true)
|
||||||
|
############################################################################
|
||||||
|
## Build libw2k_lsa_auth
|
||||||
|
############################################################################
|
||||||
|
|
||||||
$(eval $(call SetupJdkLibrary, BUILD_LIBW2K_LSA_AUTH, \
|
$(eval $(call SetupJdkLibrary, BUILD_LIBW2K_LSA_AUTH, \
|
||||||
NAME := w2k_lsa_auth, \
|
NAME := w2k_lsa_auth, \
|
||||||
OPTIMIZATION := LOW, \
|
OPTIMIZATION := LOW, \
|
||||||
CFLAGS := $(CFLAGS_JDKLIB), \
|
LIBS_windows := advapi32.lib kernel32.lib secur32.lib ws2_32.lib, \
|
||||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
|
||||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
|
||||||
LIBS := advapi32.lib Secur32.lib kernel32.lib ws2_32.lib, \
|
|
||||||
))
|
))
|
||||||
|
|
||||||
TARGETS += $(BUILD_LIBW2K_LSA_AUTH)
|
TARGETS += $(BUILD_LIBW2K_LSA_AUTH)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(call isTargetOs, macosx), true)
|
ifeq ($(call isTargetOs, macosx), true)
|
||||||
|
############################################################################
|
||||||
|
## Build libosxkrb5
|
||||||
|
############################################################################
|
||||||
|
|
||||||
# libosxkrb5 needs to call deprecated krb5 APIs so that java
|
# libosxkrb5 needs to call deprecated krb5 APIs so that java
|
||||||
# can use the native credentials cache.
|
# can use the native credentials cache.
|
||||||
$(eval $(call SetupJdkLibrary, BUILD_LIBOSXKRB5, \
|
$(eval $(call SetupJdkLibrary, BUILD_LIBOSXKRB5, \
|
||||||
NAME := osxkrb5, \
|
NAME := osxkrb5, \
|
||||||
OPTIMIZATION := LOW, \
|
OPTIMIZATION := LOW, \
|
||||||
CFLAGS := $(CFLAGS_JDKLIB), \
|
|
||||||
DISABLED_WARNINGS_clang_nativeccache.c := deprecated-declarations, \
|
DISABLED_WARNINGS_clang_nativeccache.c := deprecated-declarations, \
|
||||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
LIBS_macosx := \
|
||||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
-framework Cocoa \
|
||||||
LIBS := -framework Cocoa -framework SystemConfiguration \
|
-framework Kerberos \
|
||||||
-framework Kerberos, \
|
-framework SystemConfiguration, \
|
||||||
))
|
))
|
||||||
|
|
||||||
TARGETS += $(BUILD_LIBOSXKRB5)
|
TARGETS += $(BUILD_LIBOSXKRB5)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
################################################################################
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2024, 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
|
||||||
@@ -25,20 +25,17 @@
|
|||||||
|
|
||||||
include LibCommon.gmk
|
include LibCommon.gmk
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
## Build libj2pcsc
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
$(eval $(call SetupJdkLibrary, BUILD_LIBJ2PCSC, \
|
$(eval $(call SetupJdkLibrary, BUILD_LIBJ2PCSC, \
|
||||||
NAME := j2pcsc, \
|
NAME := j2pcsc, \
|
||||||
CFLAGS := $(CFLAGS_JDKLIB), \
|
|
||||||
CFLAGS_unix := -D__sun_jdk, \
|
CFLAGS_unix := -D__sun_jdk, \
|
||||||
EXTRA_HEADER_DIRS := libj2pcsc/MUSCLE, \
|
EXTRA_HEADER_DIRS := libj2pcsc/MUSCLE, \
|
||||||
OPTIMIZATION := LOW, \
|
OPTIMIZATION := LOW, \
|
||||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
|
||||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
|
||||||
LIBS_unix := $(LIBDL), \
|
LIBS_unix := $(LIBDL), \
|
||||||
LIBS_windows := winscard.lib, \
|
LIBS_windows := winscard.lib, \
|
||||||
))
|
))
|
||||||
|
|
||||||
TARGETS += $(BUILD_LIBJ2PCSC)
|
TARGETS += $(BUILD_LIBJ2PCSC)
|
||||||
|
|
||||||
################################################################################
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user