mirror of
https://github.com/JetBrains/JetBrainsRuntime.git
synced 2025-12-22 01:09:41 +01:00
Compare commits
1959 Commits
jdk-11.0.2
...
jdk-13+2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
46eb26b692 | ||
|
|
88b95f0570 | ||
|
|
dd609d57e6 | ||
|
|
42e7372b3e | ||
|
|
9d3cfddfb6 | ||
|
|
6c4ec86cea | ||
|
|
e4bc6e7ab9 | ||
|
|
526f854cc1 | ||
|
|
575f633a96 | ||
|
|
b38a53de3f | ||
|
|
ead8577920 | ||
|
|
4769c9fbad | ||
|
|
fedf0767fc | ||
|
|
2162a500c1 | ||
|
|
9cbca323f7 | ||
|
|
1dae61a374 | ||
|
|
203f6ad99a | ||
|
|
ae369f40a4 | ||
|
|
eb3549baf7 | ||
|
|
f7e8dcc0bb | ||
|
|
cad5fa8f16 | ||
|
|
1a1369d270 | ||
|
|
d62b658ffc | ||
|
|
5cdb1c7078 | ||
|
|
9f1d035d8d | ||
|
|
2778c86488 | ||
|
|
83adde9866 | ||
|
|
1cc5cf4c02 | ||
|
|
205598c97f | ||
|
|
36d0987f4d | ||
|
|
c9d7dd0827 | ||
|
|
b756562a67 | ||
|
|
fd6cbffc4b | ||
|
|
cfcd43da04 | ||
|
|
57dc039131 | ||
|
|
ad47b4c4cc | ||
|
|
d1597bb1cb | ||
|
|
32ea2e5343 | ||
|
|
84105b36fd | ||
|
|
5a6385b363 | ||
|
|
2fa6333113 | ||
|
|
a3bb5ead7e | ||
|
|
6a9c6a0392 | ||
|
|
2e989366ea | ||
|
|
2ebc9f99e5 | ||
|
|
1af1a69fbc | ||
|
|
3933c8477b | ||
|
|
e44207a9f6 | ||
|
|
516a3b3ec1 | ||
|
|
884c808e83 | ||
|
|
1cd847d6d1 | ||
|
|
265abce7fb | ||
|
|
3cda678c2b | ||
|
|
994ab71870 | ||
|
|
595fcb59bc | ||
|
|
316924a7bd | ||
|
|
a4d4c07f7b | ||
|
|
f4f859b446 | ||
|
|
135d5dc279 | ||
|
|
f398c3dcd2 | ||
|
|
e93939f851 | ||
|
|
d6738d6600 | ||
|
|
206ea259ec | ||
|
|
e4b1f82bbd | ||
|
|
556d79b518 | ||
|
|
8b6b63b38b | ||
|
|
cc65367331 | ||
|
|
888057a89f | ||
|
|
bbfc4b7956 | ||
|
|
5fad1ca25c | ||
|
|
aef52a6e3a | ||
|
|
811c84ba68 | ||
|
|
945e9400ce | ||
|
|
f3657753d6 | ||
|
|
d1951aa97c | ||
|
|
a9d7e075e5 | ||
|
|
1d7662e428 | ||
|
|
b83df1e1fc | ||
|
|
2932598566 | ||
|
|
165c644cf8 | ||
|
|
f03df8356b | ||
|
|
4452b80aff | ||
|
|
b5f0eec3d8 | ||
|
|
f32dc1764c | ||
|
|
2880b1bb06 | ||
|
|
2278601b7c | ||
|
|
650f3fc113 | ||
|
|
a3df1d618e | ||
|
|
c998ead188 | ||
|
|
ebdf83f88e | ||
|
|
a85ad0aa18 | ||
|
|
e7722158fd | ||
|
|
a3ca6f482e | ||
|
|
169729fe9b | ||
|
|
d51be0e1b3 | ||
|
|
905d607b35 | ||
|
|
0bdabe5e08 | ||
|
|
9048045d20 | ||
|
|
a438a0766c | ||
|
|
dcb88767a7 | ||
|
|
eed637f497 | ||
|
|
12355f9ca8 | ||
|
|
35bd56fcdf | ||
|
|
79d7ae7633 | ||
|
|
966aaa1f9b | ||
|
|
a2541e687b | ||
|
|
017c702b8a | ||
|
|
3d9ab36ca0 | ||
|
|
cf21c5ef11 | ||
|
|
9136c7d1d0 | ||
|
|
0b05ebed2e | ||
|
|
f47bd19cbc | ||
|
|
2556622607 | ||
|
|
05e175bf1b | ||
|
|
40d7e4c2e9 | ||
|
|
3623c99b27 | ||
|
|
0e86ce5715 | ||
|
|
85857dfe80 | ||
|
|
4de0c13ff8 | ||
|
|
2e94091ff2 | ||
|
|
0e9a8ba9f8 | ||
|
|
6217349ee6 | ||
|
|
c25a638fd1 | ||
|
|
8988f970df | ||
|
|
85ffc2803c | ||
|
|
b7bd4bccbf | ||
|
|
31fbc28af5 | ||
|
|
d1ef9b19d7 | ||
|
|
ade1d52ab6 | ||
|
|
8c4f51f666 | ||
|
|
7223ed2205 | ||
|
|
597c61458e | ||
|
|
9d967e70fc | ||
|
|
fdf7d4ec11 | ||
|
|
f4016e5582 | ||
|
|
8846159987 | ||
|
|
6c78aa9571 | ||
|
|
8d8b784c9e | ||
|
|
13b56530f4 | ||
|
|
c2364ff9e0 | ||
|
|
7cea6f6ac2 | ||
|
|
019bd7cf2b | ||
|
|
9be447e22f | ||
|
|
b29a8205f1 | ||
|
|
a16d122b07 | ||
|
|
dfd58a59ff | ||
|
|
e922ef3636 | ||
|
|
3c12c4b0f3 | ||
|
|
b564c0c1a9 | ||
|
|
019a097385 | ||
|
|
74ffdff736 | ||
|
|
be6f55d297 | ||
|
|
b3eb4c3ce8 | ||
|
|
e048289d95 | ||
|
|
8895605e66 | ||
|
|
5ff302e6bb | ||
|
|
bb6f1e7700 | ||
|
|
5a23b59ca0 | ||
|
|
949269e785 | ||
|
|
c04c838b87 | ||
|
|
f2765739f7 | ||
|
|
2094d32f0f | ||
|
|
88c3b67eea | ||
|
|
1191c7086e | ||
|
|
8b62a2ee9d | ||
|
|
0639a6303b | ||
|
|
df71ef8c78 | ||
|
|
1f26d09d50 | ||
|
|
3c0acaf846 | ||
|
|
36ded09992 | ||
|
|
b3a5c111db | ||
|
|
49efeb69ff | ||
|
|
044dd119da | ||
|
|
fcc8504537 | ||
|
|
100d5f79a6 | ||
|
|
9846588b31 | ||
|
|
b80d335354 | ||
|
|
5c30297045 | ||
|
|
8bc45e7b29 | ||
|
|
14c389333c | ||
|
|
cbfc7cb312 | ||
|
|
0be6d52f4d | ||
|
|
3d0faa649c | ||
|
|
0a8c4491c2 | ||
|
|
b9769c732e | ||
|
|
4de59847eb | ||
|
|
7305281552 | ||
|
|
8c00337375 | ||
|
|
c235d97d2a | ||
|
|
9897ff01e9 | ||
|
|
cc116b1259 | ||
|
|
418ce1d421 | ||
|
|
655c5d7f35 | ||
|
|
df4b7015bf | ||
|
|
714b05023e | ||
|
|
938b844088 | ||
|
|
df5b42f33b | ||
|
|
e308392c73 | ||
|
|
a78aef8d3d | ||
|
|
a4a38e6f44 | ||
|
|
37f135132e | ||
|
|
0874f1945e | ||
|
|
3981414bce | ||
|
|
a5ed4e3e73 | ||
|
|
8930ccc643 | ||
|
|
34b2a6dde9 | ||
|
|
88e3ba683b | ||
|
|
fdde029eda | ||
|
|
492377ed6a | ||
|
|
9c22151345 | ||
|
|
2c02822742 | ||
|
|
9c836369af | ||
|
|
4246096355 | ||
|
|
a1c8528d3f | ||
|
|
f8ccc8393b | ||
|
|
75822e9f7a | ||
|
|
9947fc1532 | ||
|
|
ffccf955f5 | ||
|
|
79e3f56e80 | ||
|
|
4ecdb03864 | ||
|
|
748821972a | ||
|
|
2cbcba3afc | ||
|
|
89f719be62 | ||
|
|
ebbbb4f9d6 | ||
|
|
93fb595b61 | ||
|
|
99bcec08b1 | ||
|
|
eee1a6fab0 | ||
|
|
2e724a371a | ||
|
|
145582dfa1 | ||
|
|
528361f7ae | ||
|
|
eb5557a98e | ||
|
|
613912a595 | ||
|
|
b1c5e310ac | ||
|
|
5f2062b484 | ||
|
|
a0a108fb01 | ||
|
|
ea532aa075 | ||
|
|
54dda86a98 | ||
|
|
5067ff8509 | ||
|
|
99f78427f2 | ||
|
|
8c7140f4fe | ||
|
|
fe1b0be809 | ||
|
|
e7aa2c0951 | ||
|
|
3474e9a9fe | ||
|
|
232f5146ce | ||
|
|
12bd34fa84 | ||
|
|
3254283f79 | ||
|
|
86a41aa926 | ||
|
|
fff6e05c96 | ||
|
|
8fc0c2f645 | ||
|
|
6c7781572c | ||
|
|
504dfa5de0 | ||
|
|
a971050bff | ||
|
|
136295d845 | ||
|
|
c9c59d3155 | ||
|
|
c0099a8a0d | ||
|
|
d4acf96543 | ||
|
|
4a28e27fd2 | ||
|
|
f3646ad79b | ||
|
|
c49b882dd1 | ||
|
|
0c874a3d5d | ||
|
|
3525e4e27f | ||
|
|
7f365fffbd | ||
|
|
54cc30e6c1 | ||
|
|
f79e32a313 | ||
|
|
4a87a423d3 | ||
|
|
4a028afe5e | ||
|
|
74fa722567 | ||
|
|
055ed2b789 | ||
|
|
e303e31317 | ||
|
|
441d285620 | ||
|
|
69f0bf41d9 | ||
|
|
9b6ea802b5 | ||
|
|
dc8383c930 | ||
|
|
602d095268 | ||
|
|
bfbeb1fe9e | ||
|
|
afdb850f87 | ||
|
|
a4d8574130 | ||
|
|
3883078d21 | ||
|
|
e03d20eb41 | ||
|
|
cb1aebae6e | ||
|
|
835c863ba8 | ||
|
|
b31f251889 | ||
|
|
2146e52cfa | ||
|
|
98287928da | ||
|
|
320616a865 | ||
|
|
97bccb2053 | ||
|
|
1a1e63be07 | ||
|
|
76b33870c7 | ||
|
|
bd13529c0c | ||
|
|
389a110e56 | ||
|
|
7c6cb8cd7e | ||
|
|
3995ae1270 | ||
|
|
bd1cf50953 | ||
|
|
b2980a2d71 | ||
|
|
b8c9517a0d | ||
|
|
7fe615f9a7 | ||
|
|
f65538cbda | ||
|
|
50ffeaa507 | ||
|
|
ecd39c9ede | ||
|
|
d08e20700d | ||
|
|
6cbb52dc24 | ||
|
|
cbaebf738e | ||
|
|
b93b62c2c9 | ||
|
|
8036ce51b2 | ||
|
|
bffe795d2d | ||
|
|
f0279fd499 | ||
|
|
4e935d302a | ||
|
|
3d0ccc7ec9 | ||
|
|
53b849e17e | ||
|
|
2dd1c19b64 | ||
|
|
02688398e1 | ||
|
|
b6fce5bbd4 | ||
|
|
ec1f026392 | ||
|
|
b4630d6207 | ||
|
|
8e05550ef3 | ||
|
|
45628a358a | ||
|
|
3e2804d0d8 | ||
|
|
a9250518e0 | ||
|
|
542ddf4f4d | ||
|
|
e4a3d4e455 | ||
|
|
3a5bccf5c6 | ||
|
|
a2bbc9c091 | ||
|
|
249d8e9d98 | ||
|
|
a11452c9ed | ||
|
|
8a217022ca | ||
|
|
3b08bdb0c7 | ||
|
|
81a8e473dc | ||
|
|
e4446cf0be | ||
|
|
0c151cbbae | ||
|
|
b2bf2d252b | ||
|
|
9aff87efc9 | ||
|
|
09e146ba88 | ||
|
|
9ed40ce6c5 | ||
|
|
53d3a4f50c | ||
|
|
5a5aa52772 | ||
|
|
5d11c7bd0c | ||
|
|
7212bf0a77 | ||
|
|
978c78f7fc | ||
|
|
48d68d182a | ||
|
|
c1034b1cad | ||
|
|
94f0c828e3 | ||
|
|
42563fdad8 | ||
|
|
5f05f78bd4 | ||
|
|
16dc8e9634 | ||
|
|
631decbf2f | ||
|
|
bc98309953 | ||
|
|
7e0040c384 | ||
|
|
0f0b8626fc | ||
|
|
9a4eed85df | ||
|
|
2ddd78e825 | ||
|
|
dd6344fc76 | ||
|
|
80acd4f399 | ||
|
|
7f21b8e73b | ||
|
|
78669ad35e | ||
|
|
cdf49edb29 | ||
|
|
679f30ebc3 | ||
|
|
cd0aafe76a | ||
|
|
8849b1c7b7 | ||
|
|
bb50695ff9 | ||
|
|
17773c31b6 | ||
|
|
a19bd10e83 | ||
|
|
2bcaf34726 | ||
|
|
cb861252d7 | ||
|
|
fdd11cac16 | ||
|
|
48073dc0d0 | ||
|
|
8e4e1a91c0 | ||
|
|
bc215804a4 | ||
|
|
803b9a675b | ||
|
|
5d1cc7fc01 | ||
|
|
197b669f83 | ||
|
|
ba809c2c36 | ||
|
|
10da56f017 | ||
|
|
b114b70d35 | ||
|
|
84cd74b013 | ||
|
|
4a77a08ca3 | ||
|
|
10d83827bc | ||
|
|
1285c3cd30 | ||
|
|
020877da03 | ||
|
|
4dfa364ff1 | ||
|
|
e6eddb6739 | ||
|
|
0c42c697ed | ||
|
|
098d20434c | ||
|
|
da77659d7e | ||
|
|
bbfe9d2168 | ||
|
|
83cfba872c | ||
|
|
dd9664f39b | ||
|
|
5fc8ae7c71 | ||
|
|
06c91fcf7f | ||
|
|
a51bf4d7e6 | ||
|
|
23ecdbbc1d | ||
|
|
b1c4b461f1 | ||
|
|
52664cb14a | ||
|
|
1d01b4d22f | ||
|
|
e0d9ae7699 | ||
|
|
ae4f1b1941 | ||
|
|
5c99d95a63 | ||
|
|
9debae9783 | ||
|
|
e524f41fbf | ||
|
|
6e905c8389 | ||
|
|
efcfec81ce | ||
|
|
787f8b320e | ||
|
|
abf1e47f29 | ||
|
|
5d725a98c8 | ||
|
|
40d4ff864c | ||
|
|
6d25f18bad | ||
|
|
dc6cabe8b7 | ||
|
|
06b1502892 | ||
|
|
01267bb7ca | ||
|
|
b021bcb335 | ||
|
|
e398213df7 | ||
|
|
b2cb5cee6d | ||
|
|
e530ca5cc2 | ||
|
|
bde8307cf9 | ||
|
|
751aa57f16 | ||
|
|
72235f33c7 | ||
|
|
954c14dc83 | ||
|
|
19e69dc84f | ||
|
|
4663065fad | ||
|
|
f684f2cff3 | ||
|
|
dbf691d4a2 | ||
|
|
b2604123d3 | ||
|
|
faff794a88 | ||
|
|
c047c5cfcf | ||
|
|
710ecce7f7 | ||
|
|
fe3811d46a | ||
|
|
1379397c32 | ||
|
|
c9657d8dcf | ||
|
|
44b1ed07f5 | ||
|
|
62b2f0f5c9 | ||
|
|
fc8795984a | ||
|
|
0febdff79b | ||
|
|
34a1c2e6bb | ||
|
|
4b528df402 | ||
|
|
bddbbd85f9 | ||
|
|
388e1ebbba | ||
|
|
c03797a5d0 | ||
|
|
9f88ce2b1e | ||
|
|
e58ebf3e7f | ||
|
|
d6b70fa2ab | ||
|
|
d92085431b | ||
|
|
10526c99f9 | ||
|
|
7e500f1d72 | ||
|
|
4444bac1b1 | ||
|
|
0126fdbef0 | ||
|
|
9d7509e647 | ||
|
|
7de1b68d89 | ||
|
|
59529caf8f | ||
|
|
a90e7ef6d1 | ||
|
|
4512750fbe | ||
|
|
1a6b429e9a | ||
|
|
a5423f142c | ||
|
|
937fe3be82 | ||
|
|
10cd386ac3 | ||
|
|
5639c70032 | ||
|
|
a6f0e10fe8 | ||
|
|
7b8898d03c | ||
|
|
d8e5d52deb | ||
|
|
a4fb817366 | ||
|
|
60b32f222f | ||
|
|
9314c7f110 | ||
|
|
f8518a2c05 | ||
|
|
11e54e0749 | ||
|
|
6d269930fd | ||
|
|
6d3df94e5e | ||
|
|
44ddbe3370 | ||
|
|
a264dac26c | ||
|
|
521da29e44 | ||
|
|
4b45441ae9 | ||
|
|
4a235517f9 | ||
|
|
2db81b4e13 | ||
|
|
fad3c52660 | ||
|
|
e4f60a8489 | ||
|
|
73ad9c4a00 | ||
|
|
dc260a5369 | ||
|
|
8b1844626a | ||
|
|
041946dcb0 | ||
|
|
a0c58fb8c6 | ||
|
|
4acb8dd9c3 | ||
|
|
470aaffd13 | ||
|
|
fb6de4b0b6 | ||
|
|
4cdf0c4c1d | ||
|
|
03baf2db08 | ||
|
|
eba7b5718f | ||
|
|
785e2aca39 | ||
|
|
9380cf342b | ||
|
|
ee1a5e3c1e | ||
|
|
8d8d2d8bdd | ||
|
|
b9bf598fe7 | ||
|
|
0044b55629 | ||
|
|
1b012e213d | ||
|
|
9516008ca0 | ||
|
|
a7a96c5f01 | ||
|
|
c3b47e556e | ||
|
|
faae1772c1 | ||
|
|
4ed24b2a03 | ||
|
|
53ed0c129a | ||
|
|
3b27432323 | ||
|
|
eafb5eb05e | ||
|
|
458e0b864a | ||
|
|
89b7212611 | ||
|
|
9a79d90cc6 | ||
|
|
61082e6b25 | ||
|
|
ba913fe82d | ||
|
|
a4b9ae8bb3 | ||
|
|
5d603b77d9 | ||
|
|
8a5f5e0f34 | ||
|
|
8ed1c25f6b | ||
|
|
046262a0f5 | ||
|
|
fe6aa29326 | ||
|
|
eda5f09014 | ||
|
|
5a9a338c8e | ||
|
|
cc3756b342 | ||
|
|
2df435e191 | ||
|
|
8f1a1b9cab | ||
|
|
bd9a9d591b | ||
|
|
83155e1ea6 | ||
|
|
96ebd03c09 | ||
|
|
9076a94dd4 | ||
|
|
0f9e314cb5 | ||
|
|
9d39cba453 | ||
|
|
cc2fb36243 | ||
|
|
29e742273e | ||
|
|
1b20a6781f | ||
|
|
db0221089f | ||
|
|
5e25c70198 | ||
|
|
3e9941ea2b | ||
|
|
7e17764cd3 | ||
|
|
598f595947 | ||
|
|
bc3c7c9b32 | ||
|
|
9e754390c6 | ||
|
|
617ccd6b92 | ||
|
|
06383ba3a1 | ||
|
|
3ec1c6f949 | ||
|
|
e40a70bce0 | ||
|
|
bf7a30f5cf | ||
|
|
b553485436 | ||
|
|
147fc3ed13 | ||
|
|
14b8e187e2 | ||
|
|
acd81b508e | ||
|
|
65dc116bf6 | ||
|
|
761710ffab | ||
|
|
e07d7a01c7 | ||
|
|
ea22b27348 | ||
|
|
a8a34764b2 | ||
|
|
d32fed965b | ||
|
|
a2cc912565 | ||
|
|
c04f4b46b3 | ||
|
|
beb5b05d44 | ||
|
|
f285fe93ee | ||
|
|
0050cd5776 | ||
|
|
53e8899129 | ||
|
|
8c361a3e74 | ||
|
|
56db122656 | ||
|
|
8a64d3bc3c | ||
|
|
90cf7a7d12 | ||
|
|
1d340e454c | ||
|
|
e3d65f1c12 | ||
|
|
d3ccf8a0ca | ||
|
|
b33edbf1ec | ||
|
|
cea9c21479 | ||
|
|
9429c17b35 | ||
|
|
c963d543d2 | ||
|
|
3bef8642a4 | ||
|
|
50dc5ef396 | ||
|
|
245a72938a | ||
|
|
c03cdce50e | ||
|
|
3656228787 | ||
|
|
d418a15de7 | ||
|
|
fa9ec805d9 | ||
|
|
5fa252a52c | ||
|
|
b84cf61b08 | ||
|
|
836e02e1f1 | ||
|
|
6a9e3b9d29 | ||
|
|
a73856351a | ||
|
|
9dbaf4936f | ||
|
|
0ec4944be7 | ||
|
|
7c3f2b06f1 | ||
|
|
7724fd6d9b | ||
|
|
f69921f2fc | ||
|
|
38a1e5ffbc | ||
|
|
a567796533 | ||
|
|
e8fd8147a3 | ||
|
|
4187dff26a | ||
|
|
7d4e8d0e26 | ||
|
|
3084a5290c | ||
|
|
c9e3ee1fbb | ||
|
|
1ce3770481 | ||
|
|
1117fcb339 | ||
|
|
e35e0ab165 | ||
|
|
b2541f90e6 | ||
|
|
eac28d7fae | ||
|
|
fdfbfb2f8b | ||
|
|
3cefdacdb2 | ||
|
|
bf16c3a479 | ||
|
|
f838846500 | ||
|
|
7cc7927aab | ||
|
|
31cfeabc46 | ||
|
|
bb792b0337 | ||
|
|
bb0212400f | ||
|
|
0a01d37605 | ||
|
|
9c5c6947cb | ||
|
|
8872adab41 | ||
|
|
ca1c6b93ac | ||
|
|
e0369ea66f | ||
|
|
1165eb3afe | ||
|
|
b0a9871463 | ||
|
|
968f65c036 | ||
|
|
a9ae141836 | ||
|
|
c8c41d1444 | ||
|
|
9ba72c0c2c | ||
|
|
f7fc720c9c | ||
|
|
9ffe7e1205 | ||
|
|
29f03ebf2c | ||
|
|
d95d55f801 | ||
|
|
8ab8d45552 | ||
|
|
0fade4897e | ||
|
|
88fec44661 | ||
|
|
1e9d3b5358 | ||
|
|
a1029a4729 | ||
|
|
32d4c852a9 | ||
|
|
f7a2a60f78 | ||
|
|
f131a8620c | ||
|
|
9b4393268d | ||
|
|
c8cb3978ba | ||
|
|
8e57878e0a | ||
|
|
34d2e1ea70 | ||
|
|
b9aa498282 | ||
|
|
3798a62adb | ||
|
|
364f0784a4 | ||
|
|
b5d2e875f6 | ||
|
|
6168452b9f | ||
|
|
0bc7995de2 | ||
|
|
7613af50d9 | ||
|
|
b0882f0ee6 | ||
|
|
e81c92234c | ||
|
|
d302072f50 | ||
|
|
e496d67042 | ||
|
|
0e04de0f9c | ||
|
|
812a004bc9 | ||
|
|
033a0df6ef | ||
|
|
2215c4c893 | ||
|
|
04104ceaea | ||
|
|
b6be5030eb | ||
|
|
7f642e200b | ||
|
|
413ac60a5f | ||
|
|
d49ba47e9b | ||
|
|
a445441580 | ||
|
|
b29bab7522 | ||
|
|
5dac22b8eb | ||
|
|
8cc75f412e | ||
|
|
18d4a423f9 | ||
|
|
e41b1c19e9 | ||
|
|
533bd0a604 | ||
|
|
2c208aa563 | ||
|
|
66dc9c8301 | ||
|
|
c145bd0bd0 | ||
|
|
34397c4914 | ||
|
|
272eb6824b | ||
|
|
db6696837e | ||
|
|
c2bc749866 | ||
|
|
77ad5f6fa3 | ||
|
|
cfaf92f28b | ||
|
|
06a2bb5274 | ||
|
|
a633b90085 | ||
|
|
b4c401fa37 | ||
|
|
a0594bc138 | ||
|
|
10027304cd | ||
|
|
e6d66056ab | ||
|
|
5e6d6b8642 | ||
|
|
fd8d1cd6bf | ||
|
|
522608c0a7 | ||
|
|
81721a4b5f | ||
|
|
932d2c6ba6 | ||
|
|
a623db2148 | ||
|
|
dafc483475 | ||
|
|
749916b897 | ||
|
|
b3c1e4f663 | ||
|
|
cea4eef60a | ||
|
|
5b925d80f5 | ||
|
|
3bafe65a75 | ||
|
|
21341a37af | ||
|
|
c4c6a0773b | ||
|
|
68a24bc4f1 | ||
|
|
b2ce7f9ec6 | ||
|
|
5f8d0a3080 | ||
|
|
f1e1e1fe6f | ||
|
|
4c8b5f840c | ||
|
|
137e3161c4 | ||
|
|
6beba541cd | ||
|
|
7fcee43b13 | ||
|
|
d71882148b | ||
|
|
a675a48940 | ||
|
|
b9279ef850 | ||
|
|
4abb6861ec | ||
|
|
cb17e450b3 | ||
|
|
f7393a59d1 | ||
|
|
21f57051c4 | ||
|
|
d54fa9e93d | ||
|
|
ef3c0a2458 | ||
|
|
417d396b54 | ||
|
|
d75f70d91c | ||
|
|
3c2c6bce02 | ||
|
|
10b754ee85 | ||
|
|
c86ba29693 | ||
|
|
d63acb557c | ||
|
|
75489d717e | ||
|
|
ab0baf86f7 | ||
|
|
00f3bbe51b | ||
|
|
b3d9f93363 | ||
|
|
89d9a60caa | ||
|
|
98fe69f3a2 | ||
|
|
b3b41df70f | ||
|
|
da989adeb7 | ||
|
|
b1c0737ad5 | ||
|
|
4e1c510215 | ||
|
|
05f0d11553 | ||
|
|
84a22b6b36 | ||
|
|
307ba484e1 | ||
|
|
28362bdd93 | ||
|
|
f161afb806 | ||
|
|
a241cf4367 | ||
|
|
4da555c7a8 | ||
|
|
28c9f22ebb | ||
|
|
0e622f29a2 | ||
|
|
0d19f0bb51 | ||
|
|
3a343a5681 | ||
|
|
adb1dcdcc2 | ||
|
|
f66d1f3d9e | ||
|
|
53ecc07aaa | ||
|
|
80aa38305d | ||
|
|
e4f5ffc403 | ||
|
|
99621df489 | ||
|
|
7ce1436913 | ||
|
|
413d5e8c61 | ||
|
|
93021808e6 | ||
|
|
b9f22907d3 | ||
|
|
ba18b569ef | ||
|
|
7d2ac4cc31 | ||
|
|
3185dcf0f2 | ||
|
|
dcb6e1dda8 | ||
|
|
0aa4581229 | ||
|
|
02d6d9c259 | ||
|
|
05027c124c | ||
|
|
0399760d7f | ||
|
|
7e19a09742 | ||
|
|
e0911eacd6 | ||
|
|
0c554411b0 | ||
|
|
d153c9c259 | ||
|
|
91a2c2e340 | ||
|
|
4b27547977 | ||
|
|
d9d067369b | ||
|
|
d0696b538a | ||
|
|
93c891c51b | ||
|
|
810ba0eb12 | ||
|
|
efce2c0397 | ||
|
|
9a06fc3ea7 | ||
|
|
37ef084d73 | ||
|
|
7a9db013b7 | ||
|
|
6a045adbed | ||
|
|
71637b00c7 | ||
|
|
f69c1407ae | ||
|
|
931c9cf86d | ||
|
|
d797264488 | ||
|
|
890a8b7705 | ||
|
|
a655e6b52b | ||
|
|
0108d754d7 | ||
|
|
ae77ef7d7a | ||
|
|
e4f51809e4 | ||
|
|
67d76fe937 | ||
|
|
7c81535d46 | ||
|
|
8dbea74827 | ||
|
|
ff4cf4f40b | ||
|
|
c24f6506e7 | ||
|
|
7533f9f78a | ||
|
|
8b98cc3722 | ||
|
|
3837f1abc1 | ||
|
|
589b596bec | ||
|
|
162e75f4a8 | ||
|
|
b4cb7d6fc7 | ||
|
|
a7aa770b9a | ||
|
|
0f44b453a3 | ||
|
|
d523a17e80 | ||
|
|
85598bc90f | ||
|
|
7727e4ca2f | ||
|
|
fb3ab945a6 | ||
|
|
be312edc2a | ||
|
|
ae21c81dd7 | ||
|
|
0d815c2677 | ||
|
|
f095a9ee49 | ||
|
|
6ce0aeb00b | ||
|
|
801895a09e | ||
|
|
93395f6a9e | ||
|
|
02966a7b67 | ||
|
|
3e85467bc6 | ||
|
|
550af18f08 | ||
|
|
3ee3988bfd | ||
|
|
b64e7fc2bd | ||
|
|
667b323a89 | ||
|
|
b3b647ef9a | ||
|
|
518f32791a | ||
|
|
0ed2c6c295 | ||
|
|
eb1b046a1d | ||
|
|
f507e3c9d1 | ||
|
|
2a10506942 | ||
|
|
ffc26adbea | ||
|
|
7afa70096a | ||
|
|
d7c7ce19f1 | ||
|
|
ec5f10e6a2 | ||
|
|
a7c90c5400 | ||
|
|
2491c32fcd | ||
|
|
aa4584af89 | ||
|
|
e71caa9aae | ||
|
|
6a9241a6a6 | ||
|
|
03ef2b0df5 | ||
|
|
059682d681 | ||
|
|
a836b891b8 | ||
|
|
f2fe71b186 | ||
|
|
fdb010502b | ||
|
|
87f243d539 | ||
|
|
80ad2c7e71 | ||
|
|
e3a2417b63 | ||
|
|
51f2d9801b | ||
|
|
bf800514ff | ||
|
|
24d201cb54 | ||
|
|
4b813da8c8 | ||
|
|
35871a8ca1 | ||
|
|
de6f5b33ed | ||
|
|
5f7a59f69c | ||
|
|
49a3af9513 | ||
|
|
d6f958719d | ||
|
|
f8c4729c1b | ||
|
|
36ca4f5893 | ||
|
|
e21d8fef64 | ||
|
|
d17f8229f7 | ||
|
|
84d6099da9 | ||
|
|
6e5e462e2a | ||
|
|
25f14cd757 | ||
|
|
97d3dc7902 | ||
|
|
54d4acf73f | ||
|
|
ca91f514d8 | ||
|
|
a429adfa2d | ||
|
|
7a350b9474 | ||
|
|
72bfdd96f1 | ||
|
|
be00a3f7ee | ||
|
|
73fa99ae86 | ||
|
|
0eda8a33bb | ||
|
|
30745fe1a8 | ||
|
|
9a043c50f9 | ||
|
|
3eef9c7997 | ||
|
|
2c4392d433 | ||
|
|
cb73851579 | ||
|
|
58a340bcb1 | ||
|
|
2fe0a0f20b | ||
|
|
b77f937f7e | ||
|
|
3d2f28b540 | ||
|
|
ad6611f3ce | ||
|
|
426873751c | ||
|
|
f853aebd9b | ||
|
|
0c061174b6 | ||
|
|
cadfdfd812 | ||
|
|
fc19077b52 | ||
|
|
b627cee532 | ||
|
|
c656dde507 | ||
|
|
f7ebca2763 | ||
|
|
6352b5f64d | ||
|
|
afa8a8ff9b | ||
|
|
a0e02d649c | ||
|
|
ace36f9ac3 | ||
|
|
232912a6ca | ||
|
|
56847065af | ||
|
|
a0ce3d3f18 | ||
|
|
4fe2edae59 | ||
|
|
497de20391 | ||
|
|
e898052f3b | ||
|
|
78fe66c3bb | ||
|
|
4bc903d17a | ||
|
|
ce05c7751d | ||
|
|
e790d11666 | ||
|
|
e431f6a418 | ||
|
|
285fca70b4 | ||
|
|
6330fc1cb6 | ||
|
|
1226dcbcfe | ||
|
|
24fb839864 | ||
|
|
7d7da8976b | ||
|
|
a3a7edbd4d | ||
|
|
cbe11130f5 | ||
|
|
cfb6fb66c2 | ||
|
|
f958e6642e | ||
|
|
96b43418b5 | ||
|
|
55692eb0ca | ||
|
|
f4df5cb4c3 | ||
|
|
1d8a27195c | ||
|
|
7014d0bdf8 | ||
|
|
b3de6ff3a6 | ||
|
|
7ea2bd922b | ||
|
|
3eef363b69 | ||
|
|
b68500521e | ||
|
|
2e5653c166 | ||
|
|
945623c998 | ||
|
|
01a3fec4cb | ||
|
|
9701ffd293 | ||
|
|
cd597d1dfd | ||
|
|
0caefc787f | ||
|
|
995f6963b3 | ||
|
|
fc807d0914 | ||
|
|
c33f1a61de | ||
|
|
9b0d241a16 | ||
|
|
0f45d2d52a | ||
|
|
88a48fe2a6 | ||
|
|
711edb0a65 | ||
|
|
4cb40ea9f9 | ||
|
|
0899668970 | ||
|
|
78276f7b33 | ||
|
|
3ce24a0442 | ||
|
|
42ecae239b | ||
|
|
82ab90dbb3 | ||
|
|
daf3cd17c4 | ||
|
|
db646c699a | ||
|
|
5850a50781 | ||
|
|
989aa8a4fc | ||
|
|
1ef860cf09 | ||
|
|
493b31ba91 | ||
|
|
08b8a3149b | ||
|
|
221005a3d4 | ||
|
|
a3cd6a1a70 | ||
|
|
5cfc3bbdd4 | ||
|
|
8e53d1b5dc | ||
|
|
c55d60acf7 | ||
|
|
40b75053e4 | ||
|
|
1cca59019b | ||
|
|
568e8beda6 | ||
|
|
d1d1c16f8c | ||
|
|
07815d0139 | ||
|
|
d5062c82af | ||
|
|
2ae27da3bc | ||
|
|
c7e3654a5c | ||
|
|
2aa950f8bd | ||
|
|
added9caf6 | ||
|
|
61dc835d26 | ||
|
|
ce59b4b472 | ||
|
|
64c46dd029 | ||
|
|
2a43fc5a1b | ||
|
|
f7db806ed1 | ||
|
|
7f623d813a | ||
|
|
b18f1d282e | ||
|
|
9d846aae1f | ||
|
|
2ab522db78 | ||
|
|
b00f4560cb | ||
|
|
bb0074a569 | ||
|
|
f1436a3b4d | ||
|
|
0cb267ad1c | ||
|
|
9452b88d93 | ||
|
|
33c38f2ccb | ||
|
|
ab8c7f710c | ||
|
|
b0ea3a49d2 | ||
|
|
5985805474 | ||
|
|
b263449b15 | ||
|
|
d35eda31e3 | ||
|
|
c925556ec4 | ||
|
|
4374820705 | ||
|
|
21af2af13e | ||
|
|
5910b521c4 | ||
|
|
5212f0bc11 | ||
|
|
f7b890ae5f | ||
|
|
56e6f2cc1b | ||
|
|
c0fd523c05 | ||
|
|
c105cd5164 | ||
|
|
ad74d2a16e | ||
|
|
23d457063d | ||
|
|
17c3d1c333 | ||
|
|
71a67b43fb | ||
|
|
54f929e9d6 | ||
|
|
5108d2e1dd | ||
|
|
6d6b22c277 | ||
|
|
db6295f8a2 | ||
|
|
065fdac559 | ||
|
|
25ca76b4f9 | ||
|
|
b6fb9fccdd | ||
|
|
a5733f6349 | ||
|
|
06a1ea846a | ||
|
|
9c60728a28 | ||
|
|
d20eae2d31 | ||
|
|
9d83c060db | ||
|
|
9651df7696 | ||
|
|
c7f8499529 | ||
|
|
5e3ea1b7e7 | ||
|
|
60e6552bad | ||
|
|
7d0d9047ac | ||
|
|
3a2ece353b | ||
|
|
f605407e30 | ||
|
|
3910193204 | ||
|
|
73e93bdd5d | ||
|
|
77ef6a21f1 | ||
|
|
bc6fb26d02 | ||
|
|
e6149b08de | ||
|
|
cad60d14a6 | ||
|
|
00e4c5b778 | ||
|
|
768f091086 | ||
|
|
08e1f72237 | ||
|
|
061c4d7a81 | ||
|
|
0746fffe5c | ||
|
|
f4b9613346 | ||
|
|
7ef28cb2bc | ||
|
|
3a0b2d59ad | ||
|
|
cc4436e2b9 | ||
|
|
c45eacbd27 | ||
|
|
57d74285b0 | ||
|
|
af7e126572 | ||
|
|
feca06a183 | ||
|
|
e2baf30529 | ||
|
|
deb0e6503d | ||
|
|
0b431957a5 | ||
|
|
5d3b3156e8 | ||
|
|
52780f275c | ||
|
|
20f6faa030 | ||
|
|
1570028352 | ||
|
|
3f09f0f79c | ||
|
|
afe05800ac | ||
|
|
f8d007dbf0 | ||
|
|
36f62aa6c0 | ||
|
|
b20e2cd963 | ||
|
|
c30dffb388 | ||
|
|
08828a5a4f | ||
|
|
38660e9460 | ||
|
|
03e4400864 | ||
|
|
17f301f734 | ||
|
|
2b21c73b2d | ||
|
|
e2d7983ab8 | ||
|
|
47e7b141c0 | ||
|
|
2d7d9b8380 | ||
|
|
635a875123 | ||
|
|
5a36050cfd | ||
|
|
99ca4f3497 | ||
|
|
d9731f0c54 | ||
|
|
dde89f72df | ||
|
|
b35e7feb5a | ||
|
|
efa175f20e | ||
|
|
3cc36e427d | ||
|
|
ab0128ca51 | ||
|
|
706a5b9558 | ||
|
|
6ca3b39823 | ||
|
|
8c62c2e33a | ||
|
|
1e887a901e | ||
|
|
a2d1b6b720 | ||
|
|
a9efcea778 | ||
|
|
df92fc0954 | ||
|
|
5de31861b2 | ||
|
|
3085a89f13 | ||
|
|
a9f9385ced | ||
|
|
f2d02897e1 | ||
|
|
468b69240e | ||
|
|
8351e4db3e | ||
|
|
d3458328a2 | ||
|
|
a59b517d2a | ||
|
|
11da699d9e | ||
|
|
a2ad8f419f | ||
|
|
4f4a2385c5 | ||
|
|
856f4fe28b | ||
|
|
8891582e9f | ||
|
|
fe3bd4703e | ||
|
|
7b7315dbed | ||
|
|
182a991df2 | ||
|
|
a6cbbcf334 | ||
|
|
02a3be9920 | ||
|
|
1ac444ad87 | ||
|
|
e61252dc27 | ||
|
|
2db7ed1895 | ||
|
|
cb3fe46b95 | ||
|
|
61f453edf7 | ||
|
|
51be7db96f | ||
|
|
2f82ed4f1d | ||
|
|
859d376494 | ||
|
|
85c6642e38 | ||
|
|
57622ed115 | ||
|
|
f8d8a72a27 | ||
|
|
40d81d4bcc | ||
|
|
a95d0ac2d1 | ||
|
|
d5d74f0e26 | ||
|
|
8791ea8dc0 | ||
|
|
1ed6b88a99 | ||
|
|
b658954d7e | ||
|
|
90d6bbd01a | ||
|
|
5cf91fc60e | ||
|
|
4cd9401815 | ||
|
|
548eb6860a | ||
|
|
2223e083ba | ||
|
|
e77e2d1df8 | ||
|
|
57b516dd0e | ||
|
|
ec0cbd58f4 | ||
|
|
9a1fbb653c | ||
|
|
a87e8e52ea | ||
|
|
cd95f5a933 | ||
|
|
432605be5c | ||
|
|
d872314ef3 | ||
|
|
e8f90125d2 | ||
|
|
a5c9fa14f1 | ||
|
|
271e3be381 | ||
|
|
46f0fa8c20 | ||
|
|
609d90e98a | ||
|
|
2c88ce1b89 | ||
|
|
1b25f7242c | ||
|
|
d9095c4a72 | ||
|
|
566bfeb438 | ||
|
|
4904980886 | ||
|
|
8636d3f9a5 | ||
|
|
ad9de2a83a | ||
|
|
daf4ad38ab | ||
|
|
5d9ffc2d03 | ||
|
|
3a48e68b1a | ||
|
|
d92c6042fe | ||
|
|
fddc4b8ccb | ||
|
|
f4e1502e03 | ||
|
|
b1375858c6 | ||
|
|
ee0ac147a2 | ||
|
|
36873c3c7b | ||
|
|
98221ae93f | ||
|
|
6b8fd447cc | ||
|
|
3cbb33f0e9 | ||
|
|
46159b4d04 | ||
|
|
27e26fbdd7 | ||
|
|
a07102bc7f | ||
|
|
8ef50b1dc3 | ||
|
|
12bac3a02d | ||
|
|
2e5e01b53c | ||
|
|
8b28ad6efe | ||
|
|
a6d0d07957 | ||
|
|
05ed45cef1 | ||
|
|
0055586b61 | ||
|
|
ba0203b2d5 | ||
|
|
94679309a4 | ||
|
|
6c596e1c31 | ||
|
|
973f70c6d2 | ||
|
|
5fa8dfe0f8 | ||
|
|
fa1ced20b5 | ||
|
|
db61465761 | ||
|
|
7dd0aaa430 | ||
|
|
8edf8e2b03 | ||
|
|
82ed2a5fc0 | ||
|
|
09a967ab81 | ||
|
|
60466e5741 | ||
|
|
450675ba81 | ||
|
|
b0a7fa474f | ||
|
|
159a4de4c8 | ||
|
|
2c33f148bb | ||
|
|
3f43390b8b | ||
|
|
c1033edca8 | ||
|
|
33c9c89bf0 | ||
|
|
f367eb8965 | ||
|
|
89a4157528 | ||
|
|
565df5aa5b | ||
|
|
b1b0ceb210 | ||
|
|
0bed87dccd | ||
|
|
989d55d3ed | ||
|
|
734a258afb | ||
|
|
18199b887f | ||
|
|
fcc414655b | ||
|
|
b5fb6b3566 | ||
|
|
b395d380e8 | ||
|
|
ebc04911eb | ||
|
|
04c961659f | ||
|
|
29fec64583 | ||
|
|
1194d162cb | ||
|
|
aa16ed8006 | ||
|
|
4c400d2372 | ||
|
|
6c59cb232f | ||
|
|
a32f8e382d | ||
|
|
02fe542c3f | ||
|
|
854798f378 | ||
|
|
aeef5fba0b | ||
|
|
62ecb73e35 | ||
|
|
c0d0cbc4f1 | ||
|
|
92575fc3f0 | ||
|
|
b9c5932fdd | ||
|
|
481a045635 | ||
|
|
ea9331f871 | ||
|
|
a24c991cd3 | ||
|
|
fe67f09af3 | ||
|
|
3c7b577a89 | ||
|
|
cf8469cceb | ||
|
|
3fd4c462cb | ||
|
|
fce43c0c36 | ||
|
|
8ce9db9ed5 | ||
|
|
977a178e0c | ||
|
|
ebfb84c1fe | ||
|
|
85e31a838e | ||
|
|
a69f014ad7 | ||
|
|
a8703f9803 | ||
|
|
aafb2b0474 | ||
|
|
52ba129b0a | ||
|
|
9c70e26c14 | ||
|
|
a17816f881 | ||
|
|
1619cbd14b | ||
|
|
f0108ea40c | ||
|
|
4aa926a9eb | ||
|
|
a3931a76f6 | ||
|
|
d31e1ca5a4 | ||
|
|
d6dc55de47 | ||
|
|
29a20e13c4 | ||
|
|
e71557a2d9 | ||
|
|
794a0e072d | ||
|
|
196c20c0d1 | ||
|
|
9ed646a020 | ||
|
|
b6180e668e | ||
|
|
cba1e9458b | ||
|
|
165a8b22b4 | ||
|
|
be56cc5bf3 | ||
|
|
19ca9280a6 | ||
|
|
b31408a667 | ||
|
|
ffe7832042 | ||
|
|
f10ce48bc6 | ||
|
|
ff3f48d69f | ||
|
|
9d95755584 | ||
|
|
ce3ef2bc2c | ||
|
|
59fd35292e | ||
|
|
64099fc1cc | ||
|
|
9af302152c | ||
|
|
001dbe273b | ||
|
|
b1cb88da26 | ||
|
|
f32e401b0d | ||
|
|
c87e7672a6 | ||
|
|
7c9ab50d06 | ||
|
|
dd4961b5aa | ||
|
|
f8ba78868d | ||
|
|
4b47d2c9e7 | ||
|
|
25295df059 | ||
|
|
3edf95fc44 | ||
|
|
5e8e18c05d | ||
|
|
092fe55fb1 | ||
|
|
e5b9edac53 | ||
|
|
6d9cf91bf0 | ||
|
|
4508402c6e | ||
|
|
d4612426ce | ||
|
|
71b9664abb | ||
|
|
bad4a92e55 | ||
|
|
b16e5584ab | ||
|
|
73cda6e99e | ||
|
|
0f8cbbc54c | ||
|
|
26af771191 | ||
|
|
97f10c27d8 | ||
|
|
fd2acd9284 | ||
|
|
9a9df3cd76 | ||
|
|
8eb4ba001c | ||
|
|
ee43c985d4 | ||
|
|
99eee041ba | ||
|
|
acb7acc64f | ||
|
|
07392d976a | ||
|
|
8b3c1810d2 | ||
|
|
5de8b5c59a | ||
|
|
f2b9a3e5b9 | ||
|
|
7f806d6abd | ||
|
|
009cd15a1b | ||
|
|
85b57de9ce | ||
|
|
26ff7d58db | ||
|
|
c611ad6fb9 | ||
|
|
d778b4cd2b | ||
|
|
0504b6cbb5 | ||
|
|
9cbe59f983 | ||
|
|
89efb9a78f | ||
|
|
1adaa503bb | ||
|
|
d70db363eb | ||
|
|
c1bbf898e4 | ||
|
|
bdf78f557a | ||
|
|
510336c210 | ||
|
|
962e755c3a | ||
|
|
b72ab42e49 | ||
|
|
b27f471bdd | ||
|
|
7069bb6a72 | ||
|
|
3521fc392e | ||
|
|
ba8f6e211c | ||
|
|
7afa8e42b6 | ||
|
|
4e74846da8 | ||
|
|
cf26c4cc5c | ||
|
|
996ee09ca8 | ||
|
|
d2b04cb964 | ||
|
|
0b3f46efe1 | ||
|
|
6a2e4311f5 | ||
|
|
12dad310bb | ||
|
|
2065ebd890 | ||
|
|
4508c9908b | ||
|
|
f263f6113e | ||
|
|
63abf144aa | ||
|
|
0820376744 | ||
|
|
7c7a5976d3 | ||
|
|
ef320b7a99 | ||
|
|
8e0e188abd | ||
|
|
cd38b8562f | ||
|
|
222c1eb393 | ||
|
|
5178c24a45 | ||
|
|
2cabb5a6c9 | ||
|
|
5d1d4eb155 | ||
|
|
22de84454c | ||
|
|
9e1adc7e73 | ||
|
|
75ec02926c | ||
|
|
1c727102ab | ||
|
|
f1202dc4dc | ||
|
|
e7a2c9d679 | ||
|
|
e2eab3c1b7 | ||
|
|
dc356698b8 | ||
|
|
de35357cf5 | ||
|
|
315e71f87e | ||
|
|
3c810ce261 | ||
|
|
b116f2cf13 | ||
|
|
d0560a2860 | ||
|
|
6f8114227c | ||
|
|
595a45041b | ||
|
|
9141fa4e52 | ||
|
|
ba1d068078 | ||
|
|
e8b551eac9 | ||
|
|
aee7d4f600 | ||
|
|
c7c0863c86 | ||
|
|
81af5289e9 | ||
|
|
db7b4e20e1 | ||
|
|
a7d4df53fa | ||
|
|
a5f7028279 | ||
|
|
96e71f7836 | ||
|
|
23635d7d6f | ||
|
|
d2e84521c0 | ||
|
|
bf7cd96146 | ||
|
|
f36874335d | ||
|
|
d08c6c824d | ||
|
|
73537725b1 | ||
|
|
78eb57c7a6 | ||
|
|
c8d641d148 | ||
|
|
53ac5e7fed | ||
|
|
4d57252ee0 | ||
|
|
4871d9935e | ||
|
|
3a37a5d219 | ||
|
|
a9f2e04d54 | ||
|
|
72797db95b | ||
|
|
475d422094 | ||
|
|
9118c4c28b | ||
|
|
e80b128db4 | ||
|
|
891765ee5e | ||
|
|
fe326ad022 | ||
|
|
bbf5c1ca8d | ||
|
|
18bbeb53e6 | ||
|
|
edef78fbe1 | ||
|
|
a19321464c | ||
|
|
093c837c85 | ||
|
|
694380add3 | ||
|
|
623caa5bbf | ||
|
|
6724b59873 | ||
|
|
efe6ad59e8 | ||
|
|
1f30060cbb | ||
|
|
4baa5b10d1 | ||
|
|
2702b5c299 | ||
|
|
7445ebf02b | ||
|
|
cfb0662ff6 | ||
|
|
d36dddddab | ||
|
|
6c7a19d52f | ||
|
|
c8be228513 | ||
|
|
842bc09b01 | ||
|
|
a602e0b80c | ||
|
|
4db2b90f44 | ||
|
|
db72e03e12 | ||
|
|
6b2d1c9834 | ||
|
|
26f801426d | ||
|
|
21a0458422 | ||
|
|
bd77f790c3 | ||
|
|
8b1bdf579c | ||
|
|
d90f0a51c2 | ||
|
|
23ec584fda | ||
|
|
c0d51dc514 | ||
|
|
660f6b448b | ||
|
|
b66c67675d | ||
|
|
59d3b2ccfa | ||
|
|
052a740695 | ||
|
|
25280e30d4 | ||
|
|
334d64e9a0 | ||
|
|
0f68e5221f | ||
|
|
84cf73f2a5 | ||
|
|
1c9dfca05b | ||
|
|
d1958eeed1 | ||
|
|
9d6230fe4e | ||
|
|
d0f7d4e374 | ||
|
|
66288b8c6c | ||
|
|
0d9f615e92 | ||
|
|
c201a7f8c9 | ||
|
|
b7fdc4943f | ||
|
|
d256eb923b | ||
|
|
bac1c9b8fb | ||
|
|
14e4479ca7 | ||
|
|
16b92a561c | ||
|
|
98242123a3 | ||
|
|
eb9259138f | ||
|
|
71479d029a | ||
|
|
c131915d0a | ||
|
|
8cc7ce2c18 | ||
|
|
45fb620218 | ||
|
|
1f3d71b620 | ||
|
|
36f2d56823 | ||
|
|
7a55cb8954 | ||
|
|
6a0bb0955e | ||
|
|
26560a934d | ||
|
|
75a8e7d4e2 | ||
|
|
67b2c6fc66 | ||
|
|
091aff1178 | ||
|
|
d56ff9a452 | ||
|
|
b9b522a7ad | ||
|
|
3c135ae705 | ||
|
|
d36066fdad | ||
|
|
af1ce0a659 | ||
|
|
05b8f66dff | ||
|
|
149be4bad1 | ||
|
|
af545969be | ||
|
|
dd02aad6be | ||
|
|
a75b0f74fa | ||
|
|
f6471ab3aa | ||
|
|
77921f8a38 | ||
|
|
b984ecc438 | ||
|
|
0852cfcc52 | ||
|
|
ad8e665844 | ||
|
|
c41e1d3f3a | ||
|
|
f5e624c0b3 | ||
|
|
296002fe50 | ||
|
|
d40735db17 | ||
|
|
c3cc65bd08 | ||
|
|
00eb34a943 | ||
|
|
ff17347f8f | ||
|
|
d0a60f53ee | ||
|
|
41f4dbaae7 | ||
|
|
13ce063178 | ||
|
|
8b373393e6 | ||
|
|
882e54cb05 | ||
|
|
c5299d49f4 | ||
|
|
b4530e2447 | ||
|
|
fd9fa38d21 | ||
|
|
e6c0c9dde7 | ||
|
|
51c04f947f | ||
|
|
852e131c61 | ||
|
|
5cdafcf43e | ||
|
|
05ed80075a | ||
|
|
8f87784420 | ||
|
|
b2ebbe6460 | ||
|
|
83d8bf86a6 | ||
|
|
af8a3d61b5 | ||
|
|
7a51b4a8fa | ||
|
|
347b95d500 | ||
|
|
7135605c6f | ||
|
|
d91630f948 | ||
|
|
13c1bb691b | ||
|
|
b3b644438e | ||
|
|
3f4b55c4df | ||
|
|
232804b8ab | ||
|
|
16263ca90c | ||
|
|
3de7598a3f | ||
|
|
6c65a9f193 | ||
|
|
4c58f6768a | ||
|
|
f7bbf4f43c | ||
|
|
8324ab4661 | ||
|
|
30a16dc69c | ||
|
|
3559b6be76 | ||
|
|
cea6e54978 | ||
|
|
8c47dc4a94 | ||
|
|
86c476b5e5 | ||
|
|
fc61b1abfb | ||
|
|
e1059f1301 | ||
|
|
1ddabdf0dc | ||
|
|
1b02e70184 | ||
|
|
49b859b9d3 | ||
|
|
51f697962c | ||
|
|
eb51968f00 | ||
|
|
12c27777c8 | ||
|
|
370abe471f | ||
|
|
56ee0fccb3 | ||
|
|
1e6c19b381 | ||
|
|
d739f1d6de | ||
|
|
083110efa9 | ||
|
|
f71d1cb124 | ||
|
|
423c207dc7 | ||
|
|
e0559bdd88 | ||
|
|
e2081b42b5 | ||
|
|
44a83147db | ||
|
|
2589e9733e | ||
|
|
73a6313038 | ||
|
|
4af2374271 | ||
|
|
dcfb9a75aa | ||
|
|
f5d19b9109 | ||
|
|
ea3fb3979c | ||
|
|
ca5903367f | ||
|
|
299f32d852 | ||
|
|
bb9fed1008 | ||
|
|
7000581e0b | ||
|
|
773906998a | ||
|
|
5b6a90e007 | ||
|
|
8f31a55f91 | ||
|
|
bfb0a2ea3f | ||
|
|
c283eb190e | ||
|
|
33a96c6df9 | ||
|
|
815cdefb43 | ||
|
|
5fc4ca5c45 | ||
|
|
a51aeedca0 | ||
|
|
f50c8dddfa | ||
|
|
924bba584d | ||
|
|
b5f939c5db | ||
|
|
4bcd4f04a2 | ||
|
|
a007690fa0 | ||
|
|
4729c903c6 | ||
|
|
5c3008fbc4 | ||
|
|
be5de9ef3b | ||
|
|
e51b1f0cf6 | ||
|
|
cbac17e494 | ||
|
|
bd5f1aba05 | ||
|
|
8044814e30 | ||
|
|
582c0dafb8 | ||
|
|
7aabcdee63 | ||
|
|
044b502383 | ||
|
|
a9508324e2 | ||
|
|
93c176ef2e | ||
|
|
1712e272cd | ||
|
|
abb7f64829 | ||
|
|
d1aea148fe | ||
|
|
5a80204c23 | ||
|
|
51d0a9e122 | ||
|
|
647c7d5344 | ||
|
|
83b2fb5b0d | ||
|
|
092e9e4f81 | ||
|
|
ea95e1ef2e | ||
|
|
f803931f2c | ||
|
|
4e2b462116 | ||
|
|
a5d14313f5 | ||
|
|
5858a507f4 | ||
|
|
2c5b52f061 | ||
|
|
59ca28bf1c | ||
|
|
b037ff24a8 | ||
|
|
83a51d869e | ||
|
|
a70162e775 | ||
|
|
ff148ce175 | ||
|
|
61d19ee892 | ||
|
|
ec68569fed | ||
|
|
b924bf7233 | ||
|
|
32ec91ca9b | ||
|
|
7a791910c3 | ||
|
|
4555c28590 | ||
|
|
c4faf01f86 | ||
|
|
2ce4abbcc8 | ||
|
|
b3e18b4a1b | ||
|
|
940ac1cddc | ||
|
|
17891770c1 | ||
|
|
43e1256928 | ||
|
|
23db5cd8a0 | ||
|
|
5403b9e228 | ||
|
|
3d94ce71b5 | ||
|
|
fc9941ae72 | ||
|
|
ec76c2046c | ||
|
|
b184fceaa0 | ||
|
|
d2dd5c4473 | ||
|
|
8a5467b9c2 | ||
|
|
501fc494c0 | ||
|
|
65091f8c6d | ||
|
|
4ab515f85c | ||
|
|
b2a6aa3e80 | ||
|
|
24fe001ecb | ||
|
|
36b45330b8 | ||
|
|
b9bfd45c73 | ||
|
|
d4381002ac | ||
|
|
e7114f64f3 | ||
|
|
16f9e07ba1 | ||
|
|
38db1d1620 | ||
|
|
b71f3e7104 | ||
|
|
9d25c65fda | ||
|
|
7d04a31fc8 | ||
|
|
c9d506055c | ||
|
|
c277f9ed8e | ||
|
|
d86f3a8cb2 | ||
|
|
10592b0d36 | ||
|
|
1c4396ebae | ||
|
|
38f91617c5 | ||
|
|
73477220be | ||
|
|
2d1029c256 | ||
|
|
c1bbdfaa2c | ||
|
|
74a31c5c16 | ||
|
|
31cf8b1c65 | ||
|
|
a98f40467a | ||
|
|
2a213d1685 | ||
|
|
b62d703d9a | ||
|
|
1387c87093 | ||
|
|
dea6137c6a | ||
|
|
f45dc7748e | ||
|
|
a3e7f01f33 | ||
|
|
f0e9643542 | ||
|
|
2517ca3937 | ||
|
|
691c332a70 | ||
|
|
a29cd6d430 | ||
|
|
ca473200b7 | ||
|
|
86629a36f0 | ||
|
|
12bf1a20d0 | ||
|
|
ac5685e827 | ||
|
|
6602e30cec | ||
|
|
338fb4d94a | ||
|
|
30f22170ef | ||
|
|
ffc4cbe5da | ||
|
|
955ce37d60 | ||
|
|
1dcf1dda27 | ||
|
|
1ab91ea928 | ||
|
|
5ddac96c10 | ||
|
|
f921743302 | ||
|
|
28e828130d | ||
|
|
f8f90df4d7 | ||
|
|
269286da50 | ||
|
|
198715ae97 | ||
|
|
ad816a0809 | ||
|
|
2f4efb7871 | ||
|
|
f52c4365ca | ||
|
|
9ff255dafe | ||
|
|
7883ea1c31 | ||
|
|
8e61321b6c | ||
|
|
07cb147927 | ||
|
|
9959e34180 | ||
|
|
39dd04b953 | ||
|
|
6cbef1de5d | ||
|
|
069fa394d0 | ||
|
|
2d2dd74c80 | ||
|
|
a5e27072fe | ||
|
|
1f273bde76 | ||
|
|
ba7bab5fc9 | ||
|
|
e85841f34b | ||
|
|
7d4da87a14 | ||
|
|
fafd1b7536 | ||
|
|
19c364592c | ||
|
|
a6ff367b24 | ||
|
|
4805473049 | ||
|
|
301f3c3bb5 | ||
|
|
898e0f8607 | ||
|
|
121c59eb6d | ||
|
|
5226a6a2bb | ||
|
|
602a497270 | ||
|
|
85f79b0dab | ||
|
|
796a53f6e5 | ||
|
|
b30fe07450 | ||
|
|
01fd04b862 | ||
|
|
e1ee13c514 | ||
|
|
9a9c824ece | ||
|
|
f4723253b6 | ||
|
|
0140ddadab | ||
|
|
66025558bb | ||
|
|
df45a1b57e | ||
|
|
a376d5dab4 | ||
|
|
769e802001 | ||
|
|
bd236c55d0 | ||
|
|
a4bf30fb50 | ||
|
|
cc58241bec | ||
|
|
e8fcd927c3 | ||
|
|
a6bd52da93 | ||
|
|
3aa10b4fab | ||
|
|
fe80e55647 | ||
|
|
2131cb484e | ||
|
|
4fc510cc89 | ||
|
|
0103ed733d | ||
|
|
5074bbb767 | ||
|
|
2b397c3c13 | ||
|
|
78f3c8a7d4 | ||
|
|
1c976267be | ||
|
|
90f21d1a34 | ||
|
|
e18f343141 | ||
|
|
c7a1b6431d | ||
|
|
dafb3af62d | ||
|
|
fb3b911fbe | ||
|
|
0a1e54644b | ||
|
|
2363998598 | ||
|
|
4f20e7f453 | ||
|
|
a10d6e71d8 | ||
|
|
85daddd4cf | ||
|
|
08fb8e4d1c | ||
|
|
fce671f409 | ||
|
|
859ba8ca28 | ||
|
|
c29276cc0d | ||
|
|
7d7116339a | ||
|
|
e9ad46f26c | ||
|
|
84234d1abb | ||
|
|
051f4ed627 | ||
|
|
66e825aa41 | ||
|
|
466ccfe781 | ||
|
|
9ba5bab865 | ||
|
|
4d93f17fe1 | ||
|
|
03597d010c | ||
|
|
d2de786263 | ||
|
|
3cf62646ed | ||
|
|
9ec15cedd0 | ||
|
|
0d902d2b56 | ||
|
|
a494a819eb | ||
|
|
aad3230b1d | ||
|
|
14bb47410b | ||
|
|
23f0fb4cde | ||
|
|
8b138c684a | ||
|
|
ffa4cfe355 | ||
|
|
acaf155de7 | ||
|
|
c3adb5f87d | ||
|
|
78363850b9 | ||
|
|
14443eec10 | ||
|
|
50ec35819d | ||
|
|
58e2f2d41c | ||
|
|
8ead3758cb | ||
|
|
2406a52bd6 | ||
|
|
ed3779b175 | ||
|
|
8a10925316 | ||
|
|
6f880d7f48 | ||
|
|
0d78eb91db | ||
|
|
5c94ea21e7 | ||
|
|
0cad83662a | ||
|
|
8e264e259d | ||
|
|
1b39447545 | ||
|
|
f1553a5f0f | ||
|
|
5b2c081460 | ||
|
|
aafb128d89 | ||
|
|
40af989884 | ||
|
|
2ffded2a4b | ||
|
|
83d1dd7d9a | ||
|
|
b1ce2c0fe8 | ||
|
|
ce61e39060 | ||
|
|
d8ffa83e7a | ||
|
|
417149e74a | ||
|
|
f3e518394b | ||
|
|
67a1517a4d | ||
|
|
593590305d | ||
|
|
dcb930f123 | ||
|
|
73ac71d532 | ||
|
|
73951ab5d9 | ||
|
|
bd0f1453dc | ||
|
|
85a5893183 | ||
|
|
d9bb30837a | ||
|
|
9c4f2b7294 | ||
|
|
4ef5590fa7 | ||
|
|
eca24bfb55 | ||
|
|
dc556f4086 | ||
|
|
f6bcc38500 | ||
|
|
f1173ad06c | ||
|
|
bc62b3a40e | ||
|
|
846e25f099 | ||
|
|
8eb45613db | ||
|
|
95db6924f2 | ||
|
|
89a9456801 | ||
|
|
0afc1b41c3 | ||
|
|
0f4805ef4c | ||
|
|
55cf3de09b | ||
|
|
75ed173e15 | ||
|
|
6ccb60937c | ||
|
|
65f4c7dee4 | ||
|
|
0d9777a9cb | ||
|
|
d9456186e8 | ||
|
|
660c7e50f7 | ||
|
|
15cef25bb0 | ||
|
|
07ed14c5cf | ||
|
|
4dfa58d553 | ||
|
|
2788ddc4eb | ||
|
|
20f3793312 | ||
|
|
b1b99f1d4c | ||
|
|
3bb71a9b51 | ||
|
|
3c0f0f0175 | ||
|
|
73bcb0507e | ||
|
|
2e941724e4 | ||
|
|
6355dec98c | ||
|
|
1260099653 | ||
|
|
610dfb22d3 | ||
|
|
da4684e2e1 | ||
|
|
d2a9e11aeb | ||
|
|
19a7a3b69e | ||
|
|
63b1edb7b7 | ||
|
|
8cf153fbd5 | ||
|
|
e39c7c3c93 | ||
|
|
5b0774ea01 | ||
|
|
bd57506f87 | ||
|
|
e12ee81ff0 | ||
|
|
efa05e1c62 | ||
|
|
ef15adee70 | ||
|
|
68e65d8ece | ||
|
|
07f3f674c2 | ||
|
|
b0954bc7ab | ||
|
|
b71faed5df | ||
|
|
f87ec5faf7 | ||
|
|
4377d3abe2 | ||
|
|
b9052e9647 | ||
|
|
611c53c860 | ||
|
|
d8ce7f36e2 | ||
|
|
b75805c1a5 | ||
|
|
9cea96184f | ||
|
|
61d4faee90 | ||
|
|
5ff2b5fe98 | ||
|
|
6d497ee263 | ||
|
|
ea084baf94 | ||
|
|
10fca535db | ||
|
|
943be51fe7 | ||
|
|
3f0f527c5b | ||
|
|
210e064a8d | ||
|
|
8457eb629f | ||
|
|
ecc1af23af | ||
|
|
136331b7f0 | ||
|
|
da22bf8a17 | ||
|
|
28e2dea71d | ||
|
|
aef5f86408 | ||
|
|
0a99860ff9 | ||
|
|
3e4eba7668 | ||
|
|
209071d135 | ||
|
|
c0ebf80159 | ||
|
|
cfd42a97cc | ||
|
|
bd0c60ff71 | ||
|
|
ac99e1d447 | ||
|
|
6cd1f27fcf | ||
|
|
4222f3408c | ||
|
|
977b9cae12 | ||
|
|
9006ccdbbf | ||
|
|
c4b2780bea | ||
|
|
29dc54093b | ||
|
|
48942a6aba | ||
|
|
8774d70044 | ||
|
|
bebd49cf84 | ||
|
|
bfb397a679 | ||
|
|
eaf0364068 | ||
|
|
c8f1daa9eb | ||
|
|
69191fc4cc | ||
|
|
c89978f4fd | ||
|
|
3ae58c7fdc | ||
|
|
736e57146d | ||
|
|
3d8776d76c | ||
|
|
e56162b43d | ||
|
|
bc45576579 | ||
|
|
fb54f8a71f | ||
|
|
cbcc690048 | ||
|
|
f62fa67625 | ||
|
|
437a15817f | ||
|
|
dc45757347 | ||
|
|
f8590345b7 | ||
|
|
abb1e458eb | ||
|
|
6c7f0f0218 | ||
|
|
e05a66c789 | ||
|
|
30fad2ce7d | ||
|
|
e5f3e1b60c | ||
|
|
626a614146 | ||
|
|
90a76fe7d2 | ||
|
|
a7b66f6f5e | ||
|
|
149026aa65 | ||
|
|
52f2eca5d9 | ||
|
|
bdfda4e19b | ||
|
|
9c0720b156 | ||
|
|
e98c176026 | ||
|
|
d702d5f8d2 | ||
|
|
a00eff193f | ||
|
|
a6a078ee4f | ||
|
|
1b2e7cbaef | ||
|
|
01cc27f875 | ||
|
|
db4913ba5a | ||
|
|
3be8d256e9 | ||
|
|
6f046a9f27 | ||
|
|
4ce757492c | ||
|
|
77204ca163 | ||
|
|
a9fd33bf2f | ||
|
|
b2042fe0ca | ||
|
|
013e6fd595 | ||
|
|
70b706c224 | ||
|
|
cc248634a1 | ||
|
|
4bac00436d | ||
|
|
080d3bb21a | ||
|
|
963bb6c8be | ||
|
|
82186ce311 | ||
|
|
831fdfe311 | ||
|
|
03d6ab3b09 | ||
|
|
c1c4085139 | ||
|
|
fb0b608284 | ||
|
|
d686431d78 | ||
|
|
e8fc5de2ab | ||
|
|
309ace5285 | ||
|
|
b5f0945a72 | ||
|
|
7d8922221d | ||
|
|
0cb3d46cd7 | ||
|
|
a2a00af3c3 | ||
|
|
b0af57a018 | ||
|
|
b8d80042d7 | ||
|
|
6ffd168ad1 | ||
|
|
539a39c5f6 | ||
|
|
cd45167430 | ||
|
|
90518f0635 | ||
|
|
88a2f93966 | ||
|
|
3496969f66 | ||
|
|
051dfe9fb4 | ||
|
|
a6eacc52e0 | ||
|
|
b2ca521a02 | ||
|
|
6c0cc8929b | ||
|
|
41c52b261c | ||
|
|
d45e830907 | ||
|
|
a58b68027b | ||
|
|
cd8e70a35c | ||
|
|
627e310ba5 | ||
|
|
02876bfceb | ||
|
|
532d4a59c6 | ||
|
|
dfcc6b3878 | ||
|
|
a40d0a0ee1 | ||
|
|
a9b4ac9c37 | ||
|
|
180a8773fb | ||
|
|
b6e77e4285 | ||
|
|
8dd0b1f061 | ||
|
|
794d864feb | ||
|
|
4fe37df932 | ||
|
|
86a0c85f6b | ||
|
|
6a7fdffe3b | ||
|
|
bfb6aa4821 | ||
|
|
6b83ac96ab | ||
|
|
0192c14c9b | ||
|
|
e39c5811b5 | ||
|
|
782fa608d2 | ||
|
|
5f2b11d373 | ||
|
|
1e40cb4052 | ||
|
|
7c3ce3aee0 | ||
|
|
475df1c06a | ||
|
|
2edd37a6ac | ||
|
|
8f4456e77a | ||
|
|
f503b0dc74 | ||
|
|
9dc8115234 | ||
|
|
ffeae5bd65 | ||
|
|
b146cbfc10 | ||
|
|
63b433923c | ||
|
|
dc4be9066f | ||
|
|
26cf1a832b | ||
|
|
e310d296e2 | ||
|
|
0c94b004e6 | ||
|
|
c20332c412 | ||
|
|
3e936d3cd9 | ||
|
|
8761824649 | ||
|
|
7a30c97753 | ||
|
|
14b7467279 | ||
|
|
1804d6ce65 | ||
|
|
bfc1488468 | ||
|
|
b6f1dd8d68 | ||
|
|
11c5e7968b | ||
|
|
28f45defae | ||
|
|
4a2d78b9e4 | ||
|
|
673c68d993 | ||
|
|
dce8ff4dba | ||
|
|
93a6b7e355 | ||
|
|
2b38340ad7 | ||
|
|
6c75023f1d | ||
|
|
5e0d5efe4c | ||
|
|
5e0ae53450 | ||
|
|
6b0d1af7fa | ||
|
|
e53852dd51 | ||
|
|
971575362a | ||
|
|
c8ebf4da3b | ||
|
|
cc8ee84d59 | ||
|
|
12d64aaeba | ||
|
|
52bee8fe04 | ||
|
|
898b4d83c0 | ||
|
|
1fa2af5b82 | ||
|
|
e552242db6 | ||
|
|
1b34ea35c9 | ||
|
|
8ed728c905 | ||
|
|
acc32136c3 | ||
|
|
bf9fb45c85 | ||
|
|
92e5c54dec | ||
|
|
25c6c908f1 | ||
|
|
b31ac98b6e | ||
|
|
37dc9e2a0d | ||
|
|
f049167354 | ||
|
|
d7d4bc9fdd | ||
|
|
98db2d5580 | ||
|
|
2abb0a31aa | ||
|
|
7c14ebfcd0 | ||
|
|
24eb1aa0eb | ||
|
|
03a8cdece5 | ||
|
|
98d92b0b6b | ||
|
|
028f2e14b3 |
15
.gitignore
vendored
Normal file
15
.gitignore
vendored
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
/build/
|
||||||
|
/dist/
|
||||||
|
/.idea/
|
||||||
|
nbproject/private/
|
||||||
|
/webrev
|
||||||
|
/.src-rev
|
||||||
|
/.jib/
|
||||||
|
.DS_Store
|
||||||
|
.metadata/
|
||||||
|
.recommenders/
|
||||||
|
test/nashorn/script/external
|
||||||
|
test/nashorn/lib
|
||||||
|
NashornProfile.txt
|
||||||
|
**/JTreport/**
|
||||||
|
**/JTwork/**
|
||||||
32
.hgtags
32
.hgtags
@@ -490,15 +490,43 @@ a11c1cb542bbd1671d25b85efe7d09b983c48525 jdk-11+15
|
|||||||
02934b0d661b82b7fe1052a04998d2091352e08d jdk-11+16
|
02934b0d661b82b7fe1052a04998d2091352e08d jdk-11+16
|
||||||
64e4b1686141e57a681936a8283983341484676e jdk-11+17
|
64e4b1686141e57a681936a8283983341484676e jdk-11+17
|
||||||
e1b3def126240d5433902f3cb0e91a4c27f6db50 jdk-11+18
|
e1b3def126240d5433902f3cb0e91a4c27f6db50 jdk-11+18
|
||||||
fb8b3f4672774e15654958295558a1af1b576919 jdk-11+19
|
|
||||||
fb8b3f4672774e15654958295558a1af1b576919 jdk-11+19
|
|
||||||
36ca515343e00b021dcfc902e986d26ec994a2e5 jdk-11+19
|
36ca515343e00b021dcfc902e986d26ec994a2e5 jdk-11+19
|
||||||
|
95aad0c785e497f1bade3955c4e4a677b629fa9d jdk-12+0
|
||||||
9816d7cc655e53ba081f938b656e31971b8f097a jdk-11+20
|
9816d7cc655e53ba081f938b656e31971b8f097a jdk-11+20
|
||||||
14708e1acdc3974f4539027cbbcfa6d69f83cf51 jdk-11+21
|
14708e1acdc3974f4539027cbbcfa6d69f83cf51 jdk-11+21
|
||||||
|
00b16d0457e43d23f6ca5ade6b243edce62750a0 jdk-12+1
|
||||||
9937ef7499dcd7673714517fd5e450410c14ba4e jdk-11+22
|
9937ef7499dcd7673714517fd5e450410c14ba4e jdk-11+22
|
||||||
|
69b438908512d3dfef5852c6a843a5778333a309 jdk-12+2
|
||||||
1edcf36fe15f79d6228d1a63eb680878e2386480 jdk-11+23
|
1edcf36fe15f79d6228d1a63eb680878e2386480 jdk-11+23
|
||||||
|
990db216e7199b2ba9989d8fa20b657e0ca7d969 jdk-12+3
|
||||||
ea900a7dc7d77dee30865c60eabd87fc24b1037c jdk-11+24
|
ea900a7dc7d77dee30865c60eabd87fc24b1037c jdk-11+24
|
||||||
|
499b873761d8e8a1cc4aa649daf04cbe98cbce77 jdk-12+4
|
||||||
331888ea4a788df801b1edf8836646cd25fc758b jdk-11+25
|
331888ea4a788df801b1edf8836646cd25fc758b jdk-11+25
|
||||||
|
f8696e0ab9b795030429fc3374ec03e378fd9ed7 jdk-12+5
|
||||||
945ba9278a272a5477ffb1b3ea1b04174fed8036 jdk-11+26
|
945ba9278a272a5477ffb1b3ea1b04174fed8036 jdk-11+26
|
||||||
|
7939b3c4e4088bf4f70ec5bbd8030393b653372f jdk-12+6
|
||||||
9d7d74c6f2cbe522e39fa22dc557fdd3f79b32ad jdk-11+27
|
9d7d74c6f2cbe522e39fa22dc557fdd3f79b32ad jdk-11+27
|
||||||
|
ef57958c7c511162da8d9a75f0b977f0f7ac464e jdk-12+7
|
||||||
76072a077ee1d815152d45d1692c4b36c53c5c49 jdk-11+28
|
76072a077ee1d815152d45d1692c4b36c53c5c49 jdk-11+28
|
||||||
|
492b366f8e5784cc4927c2c98f9b8a3f16c067eb jdk-12+8
|
||||||
|
31b159f30fb281016c5f0c103552809aeda84063 jdk-12+9
|
||||||
|
8f594f75e0547d4ca16649cb3501659e3155e81b jdk-12+10
|
||||||
|
f0f5d23449d31f1b3580c8a73313918cafeaefd7 jdk-12+11
|
||||||
|
15094d12a632f452a2064318a4e416d0c7a9ce0c jdk-12+12
|
||||||
|
511a9946f83e3e3c7b9dbe1840367063fb39b4e1 jdk-12+13
|
||||||
|
8897e41b327c0a5601c6ba2bba5d07f15a3ffc91 jdk-12+14
|
||||||
|
8897e41b327c0a5601c6ba2bba5d07f15a3ffc91 jdk-12+14
|
||||||
|
6f04692c7d5137ee34a6bd94c0c8a6c9219cb127 jdk-12+14
|
||||||
|
f8626bcc169813a4b2a15880386b952719d1d6d1 jdk-12+15
|
||||||
|
199658d1ef860cdc17055b4fd3e94b057f292fe9 jdk-12+16
|
||||||
|
eefa65e142af305923d2adcd596fab9c639723a1 jdk-12+17
|
||||||
|
e38473506688e0995e701fc7f77d5a91b438ef93 jdk-12+18
|
||||||
|
dc1f9dec2018a37fedba47d8a2aedef99faaec64 jdk-12+19
|
||||||
|
40098289d5804c3b5e7074bc75501a81e70d9b0d jdk-12+20
|
||||||
|
f8fb0c86f2b3d24294d39c5685a628e1beb14ba7 jdk-12+21
|
||||||
|
732bec44c89e8b93a38296bf690f97b7230c5b6d jdk-12+22
|
||||||
|
eef755718cb24813031a842bbfc716a6cea18e9a jdk-12+23
|
||||||
|
cc4098b3bc10d1c390384289025fea7b0d4b9e93 jdk-13+0
|
||||||
|
7d4397b43fa305806160785a4c7210600d59581a jdk-12+24
|
||||||
|
11033c4ada542f9c9a873314b6ecf60af19e8256 jdk-13+1
|
||||||
|
7496df94b3b79f3da53925d2d137317715f11d97 jdk-12+25
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
project=jdk10
|
project=jdk
|
||||||
bugids=dup
|
bugids=dup
|
||||||
|
|||||||
155
bin/idea.sh
155
bin/idea.sh
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#
|
#
|
||||||
# Copyright (c) 2009, 2014, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2009, 2018, 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
|
||||||
@@ -49,7 +49,7 @@ do
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
-o | --output )
|
-o | --output )
|
||||||
IDEA_OUTPUT=$2
|
IDEA_OUTPUT=$2/.idea
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
|
|
||||||
@@ -64,28 +64,25 @@ do
|
|||||||
shift
|
shift
|
||||||
done
|
done
|
||||||
|
|
||||||
mkdir $IDEA_OUTPUT || exit 1
|
mkdir -p $IDEA_OUTPUT || exit 1
|
||||||
cd $IDEA_OUTPUT; IDEA_OUTPUT=`pwd`
|
cd $IDEA_OUTPUT; IDEA_OUTPUT=`pwd`
|
||||||
|
|
||||||
|
if [ "x$TOPLEVEL_DIR" = "x" ] ; then
|
||||||
|
cd $SCRIPT_DIR/..
|
||||||
|
TOPLEVEL_DIR=`pwd`
|
||||||
|
cd $IDEA_OUTPUT
|
||||||
|
fi
|
||||||
|
|
||||||
MAKE_DIR="$SCRIPT_DIR/../make"
|
MAKE_DIR="$SCRIPT_DIR/../make"
|
||||||
IDEA_MAKE="$MAKE_DIR/idea"
|
IDEA_MAKE="$MAKE_DIR/idea"
|
||||||
IDEA_TEMPLATE="$IDEA_MAKE/template"
|
IDEA_TEMPLATE="$IDEA_MAKE/template"
|
||||||
|
|
||||||
cp -r "$IDEA_TEMPLATE"/* "$IDEA_OUTPUT"
|
cp -r "$IDEA_TEMPLATE"/* "$IDEA_OUTPUT"
|
||||||
|
|
||||||
#init template variables
|
#override template
|
||||||
for file in `ls -p $IDEA_TEMPLATE | grep -v /`; do
|
|
||||||
VAR_SUFFIX=`echo $file | cut -d'.' -f1 | tr [:lower:] [:upper:]`
|
|
||||||
eval "$VAR_SUFFIX"_TEMPLATE="$IDEA_TEMPLATE"/$file
|
|
||||||
eval IDEA_"$VAR_SUFFIX"="$IDEA_OUTPUT"/$file
|
|
||||||
done
|
|
||||||
|
|
||||||
#override template variables
|
|
||||||
if [ -d "$TEMPLATES_OVERRIDE" ] ; then
|
if [ -d "$TEMPLATES_OVERRIDE" ] ; then
|
||||||
for file in `ls -p "$TEMPLATES_OVERRIDE" | grep -v /`; do
|
for file in `ls -p "$TEMPLATES_OVERRIDE" | grep -v /`; do
|
||||||
cp "$TEMPLATES_OVERRIDE"/$file "$IDEA_OUTPUT"/
|
cp "$TEMPLATES_OVERRIDE"/$file "$IDEA_OUTPUT"/
|
||||||
VAR_SUFFIX=`echo $file | cut -d'.' -f1 | tr [:lower:] [:upper:]`
|
|
||||||
eval "$VAR_SUFFIX"_TEMPLATE="$TEMPLATES_OVERRIDE"/$file
|
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -94,14 +91,6 @@ if [ "$VERBOSE" = "true" ] ; then
|
|||||||
echo "idea template dir: $IDEA_TEMPLATE"
|
echo "idea template dir: $IDEA_TEMPLATE"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -f "$JDK_TEMPLATE" ] ; then
|
|
||||||
echo "FATAL: cannot find $JDK_TEMPLATE" >&2; exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -f "$ANT_TEMPLATE" ] ; then
|
|
||||||
echo "FATAL: cannot find $ANT_TEMPLATE" >&2; exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
cd $TOP ; make -f "$IDEA_MAKE/idea.gmk" -I $MAKE_DIR/.. idea MAKEOVERRIDES= OUT=$IDEA_OUTPUT/env.cfg MODULES="$*" || exit 1
|
cd $TOP ; make -f "$IDEA_MAKE/idea.gmk" -I $MAKE_DIR/.. idea MAKEOVERRIDES= OUT=$IDEA_OUTPUT/env.cfg MODULES="$*" || exit 1
|
||||||
cd $SCRIPT_DIR
|
cd $SCRIPT_DIR
|
||||||
|
|
||||||
@@ -124,94 +113,62 @@ if [ "x$SPEC" = "x" ] ; then
|
|||||||
echo "FATAL: SPEC is empty" >&2; exit 1
|
echo "FATAL: SPEC is empty" >&2; exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
SOURCE_FOLDER=" <sourceFolder url=\"file://\$MODULE_DIR\$/####\" isTestSource=\"false\" />"
|
### Replace template variables
|
||||||
SOURCE_FOLDERS_DONE="false"
|
|
||||||
|
|
||||||
addSourceFolder() {
|
NUM_REPLACEMENTS=0
|
||||||
root=$@
|
|
||||||
relativePath="`echo "$root" | sed -e s@"$TOP/\(.*$\)"@"\1"@`"
|
|
||||||
folder="`echo "$SOURCE_FOLDER" | sed -e s@"\(.*/\)####\(.*\)"@"\1$relativePath\2"@`"
|
|
||||||
printf "%s\n" "$folder" >> $IDEA_JDK
|
|
||||||
}
|
|
||||||
|
|
||||||
### Generate project iml
|
replace_template_file() {
|
||||||
|
for i in $(seq 1 $NUM_REPLACEMENTS); do
|
||||||
rm -f $IDEA_JDK
|
eval "sed \"s|\${FROM${i}}|\${TO${i}}|g\" $1 > $1.tmp"
|
||||||
while IFS= read -r line
|
mv $1.tmp $1
|
||||||
do
|
|
||||||
if echo "$line" | egrep "^ .* <sourceFolder.*####" > /dev/null ; then
|
|
||||||
if [ "$SOURCE_FOLDERS_DONE" = "false" ] ; then
|
|
||||||
SOURCE_FOLDERS_DONE="true"
|
|
||||||
for root in $MODULE_ROOTS; do
|
|
||||||
addSourceFolder $root
|
|
||||||
done
|
done
|
||||||
fi
|
}
|
||||||
|
|
||||||
|
replace_template_dir() {
|
||||||
|
for f in `find $1 -type f` ; do
|
||||||
|
replace_template_file $f
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
add_replacement() {
|
||||||
|
NUM_REPLACEMENTS=`expr $NUM_REPLACEMENTS + 1`
|
||||||
|
eval FROM$NUM_REPLACEMENTS='$1'
|
||||||
|
eval TO$NUM_REPLACEMENTS='$2'
|
||||||
|
}
|
||||||
|
|
||||||
|
add_replacement "###MODULE_NAMES###" "$MODULE_NAMES"
|
||||||
|
SPEC_DIR=`dirname $SPEC`
|
||||||
|
if [ "x$CYGPATH" = "x" ]; then
|
||||||
|
add_replacement "###BUILD_DIR###" "$SPEC_DIR"
|
||||||
|
add_replacement "###JTREG_HOME###" "$JT_HOME"
|
||||||
|
add_replacement "###IMAGES_DIR###" "$SPEC_DIR/images/jdk"
|
||||||
|
add_replacement "###ROOT_DIR###" "$TOPLEVEL_DIR"
|
||||||
|
add_replacement "###IDEA_DIR###" "$IDEA_OUTPUT"
|
||||||
|
else
|
||||||
|
add_replacement "###BUILD_DIR###" "`cygpath -am $SPEC_DIR`"
|
||||||
|
add_replacement "###IMAGES_DIR###" "`cygpath -am $SPEC_DIR`/images/jdk"
|
||||||
|
add_replacement "###ROOT_DIR###" "`cygpath -am $TOPLEVEL_DIR`"
|
||||||
|
add_replacement "###IDEA_DIR###" "`cygpath -am $IDEA_OUTPUT`"
|
||||||
|
if [ "x$JT_HOME" = "x" ]; then
|
||||||
|
add_replacement "###JTREG_HOME###" ""
|
||||||
else
|
else
|
||||||
printf "%s\n" "$line" >> $IDEA_JDK
|
add_replacement "###JTREG_HOME###" "`cygpath -am $JT_HOME`"
|
||||||
fi
|
fi
|
||||||
done < "$JDK_TEMPLATE"
|
fi
|
||||||
|
|
||||||
|
SOURCE_PREFIX="<sourceFolder url=\"file://"
|
||||||
|
SOURCE_POSTFIX="\" isTestSource=\"false\" />"
|
||||||
|
|
||||||
MODULE_NAME=" <property name=\"module.name\" value=\"####\" />"
|
for root in $MODULE_ROOTS; do
|
||||||
|
if [ "x$CYGPATH" != "x" ]; then
|
||||||
addModuleName() {
|
root=`cygpath -am $root`
|
||||||
mn="`echo "$MODULE_NAME" | sed -e s@"\(.*\)####\(.*\)"@"\1$MODULE_NAMES\2"@`"
|
|
||||||
printf "%s\n" "$mn" >> $IDEA_ANT
|
|
||||||
}
|
|
||||||
|
|
||||||
BUILD_DIR=" <property name=\"build.target.dir\" value=\"####\" />"
|
|
||||||
|
|
||||||
addBuildDir() {
|
|
||||||
DIR=`dirname $SPEC`
|
|
||||||
mn="`echo "$BUILD_DIR" | sed -e s@"\(.*\)####\(.*\)"@"\1$DIR\2"@`"
|
|
||||||
printf "%s\n" "$mn" >> $IDEA_ANT
|
|
||||||
}
|
|
||||||
|
|
||||||
### Generate ant.xml
|
|
||||||
|
|
||||||
rm -f $IDEA_ANT
|
|
||||||
while IFS= read -r line
|
|
||||||
do
|
|
||||||
if echo "$line" | egrep "^ .* <property name=\"module.name\"" > /dev/null ; then
|
|
||||||
addModuleName
|
|
||||||
elif echo "$line" | egrep "^ .* <property name=\"build.target.dir\"" > /dev/null ; then
|
|
||||||
addBuildDir
|
|
||||||
else
|
|
||||||
printf "%s\n" "$line" >> $IDEA_ANT
|
|
||||||
fi
|
fi
|
||||||
done < "$ANT_TEMPLATE"
|
SOURCES=$SOURCES" $SOURCE_PREFIX""$root""$SOURCE_POSTFIX"
|
||||||
|
done
|
||||||
|
|
||||||
### Generate misc.xml
|
add_replacement "###SOURCE_ROOTS###" "$SOURCES"
|
||||||
|
|
||||||
rm -f $IDEA_MISC
|
replace_template_dir "$IDEA_OUTPUT"
|
||||||
|
|
||||||
JTREG_HOME=" <path>####</path>"
|
|
||||||
|
|
||||||
IMAGES_DIR=" <jre alt=\"true\" value=\"####\" />"
|
|
||||||
|
|
||||||
addImagesDir() {
|
|
||||||
DIR=`dirname $SPEC`/images/jdk
|
|
||||||
mn="`echo "$IMAGES_DIR" | sed -e s@"\(.*\)####\(.*\)"@"\1$DIR\2"@`"
|
|
||||||
printf "%s\n" "$mn" >> $IDEA_MISC
|
|
||||||
}
|
|
||||||
|
|
||||||
addJtregHome() {
|
|
||||||
DIR=`dirname $SPEC`
|
|
||||||
mn="`echo "$JTREG_HOME" | sed -e s@"\(.*\)####\(.*\)"@"\1$JT_HOME\2"@`"
|
|
||||||
printf "%s\n" "$mn" >> $IDEA_MISC
|
|
||||||
}
|
|
||||||
|
|
||||||
rm -f $MISC_ANT
|
|
||||||
while IFS= read -r line
|
|
||||||
do
|
|
||||||
if echo "$line" | egrep "^ .*<path>jtreg_home</path>" > /dev/null ; then
|
|
||||||
addJtregHome
|
|
||||||
elif echo "$line" | egrep "^ .*<jre alt=\"true\" value=\"images_jdk\"" > /dev/null ; then
|
|
||||||
addImagesDir
|
|
||||||
else
|
|
||||||
printf "%s\n" "$line" >> $IDEA_MISC
|
|
||||||
fi
|
|
||||||
done < "$MISC_TEMPLATE"
|
|
||||||
|
|
||||||
### Compile the custom Logger
|
### Compile the custom Logger
|
||||||
|
|
||||||
|
|||||||
@@ -1,19 +1,24 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html>
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8" />
|
||||||
<meta name="generator" content="pandoc">
|
<meta name="generator" content="pandoc" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
||||||
<title>Building the JDK</title>
|
<title>Building the JDK</title>
|
||||||
<style type="text/css">code{white-space: pre;}</style>
|
<style type="text/css">
|
||||||
<link rel="stylesheet" href="../make/data/docs-resources/resources/jdk-default.css">
|
code{white-space: pre-wrap;}
|
||||||
|
span.smallcaps{font-variant: small-caps;}
|
||||||
|
span.underline{text-decoration: underline;}
|
||||||
|
div.column{display: inline-block; vertical-align: top; width: 50%;}
|
||||||
|
</style>
|
||||||
|
<link rel="stylesheet" href="../make/data/docs-resources/resources/jdk-default.css" />
|
||||||
<!--[if lt IE 9]>
|
<!--[if lt IE 9]>
|
||||||
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
|
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
|
||||||
<![endif]-->
|
<![endif]-->
|
||||||
<style type="text/css">pre, code, tt { color: #1d6ae5; }</style>
|
<style type="text/css">pre, code, tt { color: #1d6ae5; }</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<header>
|
<header id="title-block-header">
|
||||||
<h1 class="title">Building the JDK</h1>
|
<h1 class="title">Building the JDK</h1>
|
||||||
</header>
|
</header>
|
||||||
<nav id="TOC">
|
<nav id="TOC">
|
||||||
@@ -26,7 +31,8 @@
|
|||||||
<li><a href="#build-hardware-requirements">Build Hardware Requirements</a><ul>
|
<li><a href="#build-hardware-requirements">Build Hardware Requirements</a><ul>
|
||||||
<li><a href="#building-on-x86">Building on x86</a></li>
|
<li><a href="#building-on-x86">Building on x86</a></li>
|
||||||
<li><a href="#building-on-sparc">Building on sparc</a></li>
|
<li><a href="#building-on-sparc">Building on sparc</a></li>
|
||||||
<li><a href="#building-on-armaarch64">Building on arm/aarch64</a></li>
|
<li><a href="#building-on-aarch64">Building on aarch64</a></li>
|
||||||
|
<li><a href="#building-on-32-bit-arm">Building on 32-bit arm</a></li>
|
||||||
</ul></li>
|
</ul></li>
|
||||||
<li><a href="#operating-system-requirements">Operating System Requirements</a><ul>
|
<li><a href="#operating-system-requirements">Operating System Requirements</a><ul>
|
||||||
<li><a href="#windows">Windows</a></li>
|
<li><a href="#windows">Windows</a></li>
|
||||||
@@ -68,10 +74,12 @@
|
|||||||
</ul></li>
|
</ul></li>
|
||||||
<li><a href="#running-tests">Running Tests</a></li>
|
<li><a href="#running-tests">Running Tests</a></li>
|
||||||
<li><a href="#cross-compiling">Cross-compiling</a><ul>
|
<li><a href="#cross-compiling">Cross-compiling</a><ul>
|
||||||
|
<li><a href="#cross-compiling-the-easy-way-with-openjdk-devkits">Cross compiling the easy way with OpenJDK devkits</a></li>
|
||||||
<li><a href="#boot-jdk-and-build-jdk">Boot JDK and Build JDK</a></li>
|
<li><a href="#boot-jdk-and-build-jdk">Boot JDK and Build JDK</a></li>
|
||||||
<li><a href="#specifying-the-target-platform">Specifying the Target Platform</a></li>
|
<li><a href="#specifying-the-target-platform">Specifying the Target Platform</a></li>
|
||||||
<li><a href="#toolchain-considerations">Toolchain Considerations</a></li>
|
<li><a href="#toolchain-considerations">Toolchain Considerations</a></li>
|
||||||
<li><a href="#native-libraries">Native Libraries</a></li>
|
<li><a href="#native-libraries">Native Libraries</a></li>
|
||||||
|
<li><a href="#creating-and-using-sysroots-with-qemu-deboostrap">Creating And Using Sysroots With qemu-deboostrap</a></li>
|
||||||
<li><a href="#building-for-armaarch64">Building for ARM/aarch64</a></li>
|
<li><a href="#building-for-armaarch64">Building for ARM/aarch64</a></li>
|
||||||
<li><a href="#verifying-the-build">Verifying the Build</a></li>
|
<li><a href="#verifying-the-build">Verifying the Build</a></li>
|
||||||
</ul></li>
|
</ul></li>
|
||||||
@@ -91,7 +99,7 @@
|
|||||||
<li><a href="#getting-help">Getting Help</a></li>
|
<li><a href="#getting-help">Getting Help</a></li>
|
||||||
</ul></li>
|
</ul></li>
|
||||||
<li><a href="#hints-and-suggestions-for-advanced-users">Hints and Suggestions for Advanced Users</a><ul>
|
<li><a href="#hints-and-suggestions-for-advanced-users">Hints and Suggestions for Advanced Users</a><ul>
|
||||||
<li><a href="#setting-up-a-forest-for-pushing-changes-defpath">Setting Up a Forest for Pushing Changes (defpath)</a></li>
|
<li><a href="#setting-up-a-repository-for-pushing-changes-defpath">Setting Up a Repository for Pushing Changes (defpath)</a></li>
|
||||||
<li><a href="#bash-completion">Bash Completion</a></li>
|
<li><a href="#bash-completion">Bash Completion</a></li>
|
||||||
<li><a href="#using-multiple-configurations">Using Multiple Configurations</a></li>
|
<li><a href="#using-multiple-configurations">Using Multiple Configurations</a></li>
|
||||||
<li><a href="#handling-reconfigurations">Handling Reconfigurations</a></li>
|
<li><a href="#handling-reconfigurations">Handling Reconfigurations</a></li>
|
||||||
@@ -129,7 +137,7 @@
|
|||||||
<p>The JDK is a complex software project. Building it requires a certain amount of technical expertise, a fair number of dependencies on external software, and reasonably powerful hardware.</p>
|
<p>The JDK is a complex software project. Building it requires a certain amount of technical expertise, a fair number of dependencies on external software, and reasonably powerful hardware.</p>
|
||||||
<p>If you just want to use the JDK and not build it yourself, this document is not for you. See for instance <a href="http://openjdk.java.net/install">OpenJDK installation</a> for some methods of installing a prebuilt JDK.</p>
|
<p>If you just want to use the JDK and not build it yourself, this document is not for you. See for instance <a href="http://openjdk.java.net/install">OpenJDK installation</a> for some methods of installing a prebuilt JDK.</p>
|
||||||
<h2 id="getting-the-source-code">Getting the Source Code</h2>
|
<h2 id="getting-the-source-code">Getting the Source Code</h2>
|
||||||
<p>Make sure you are getting the correct version. As of JDK 10, the source is no longer split into separate repositories so you only need to clone one single repository. At the <a href="http://hg.openjdk.java.net/">OpenJDK Mercurial server</a> you can see a list of all available forests. If you want to build an older version, e.g. JDK 8, it is recommended that you get the <code>jdk8u</code> forest, which contains incremental updates, instead of the <code>jdk8</code> forest, which was frozen at JDK 8 GA.</p>
|
<p>Make sure you are getting the correct version. As of JDK 10, the source is no longer split into separate repositories so you only need to clone one single repository. At the <a href="http://hg.openjdk.java.net/">OpenJDK Mercurial server</a> you can see a list of all available repositories. If you want to build an older version, e.g. JDK 8, it is recommended that you get the <code>jdk8u</code> forest, which contains incremental updates, instead of the <code>jdk8</code> forest, which was frozen at JDK 8 GA.</p>
|
||||||
<p>If you are new to Mercurial, a good place to start is the <a href="http://www.mercurial-scm.org/guide">Mercurial Beginner's Guide</a>. The rest of this document assumes a working knowledge of Mercurial.</p>
|
<p>If you are new to Mercurial, a good place to start is the <a href="http://www.mercurial-scm.org/guide">Mercurial Beginner's Guide</a>. The rest of this document assumes a working knowledge of Mercurial.</p>
|
||||||
<h3 id="special-considerations">Special Considerations</h3>
|
<h3 id="special-considerations">Special Considerations</h3>
|
||||||
<p>For a smooth building experience, it is recommended that you follow these rules on where and how to check out the source code.</p>
|
<p>For a smooth building experience, it is recommended that you follow these rules on where and how to check out the source code.</p>
|
||||||
@@ -137,7 +145,7 @@
|
|||||||
<li><p>Do not check out the source code in a path which contains spaces. Chances are the build will not work. This is most likely to be an issue on Windows systems.</p></li>
|
<li><p>Do not check out the source code in a path which contains spaces. Chances are the build will not work. This is most likely to be an issue on Windows systems.</p></li>
|
||||||
<li><p>Do not check out the source code in a path which has a very long name or is nested many levels deep. Chances are you will hit an OS limitation during the build.</p></li>
|
<li><p>Do not check out the source code in a path which has a very long name or is nested many levels deep. Chances are you will hit an OS limitation during the build.</p></li>
|
||||||
<li><p>Put the source code on a local disk, not a network share. If possible, use an SSD. The build process is very disk intensive, and having slow disk access will significantly increase build times. If you need to use a network share for the source code, see below for suggestions on how to keep the build artifacts on a local disk.</p></li>
|
<li><p>Put the source code on a local disk, not a network share. If possible, use an SSD. The build process is very disk intensive, and having slow disk access will significantly increase build times. If you need to use a network share for the source code, see below for suggestions on how to keep the build artifacts on a local disk.</p></li>
|
||||||
<li><p>On Windows, extra care must be taken to make sure the <a href="#cygwin">Cygwin</a> environment is consistent. It is recommended that you follow this procedure:</p>
|
<li><p>On Windows, if using <a href="#cygwin">Cygwin</a>, extra care must be taken to make sure the environment is consistent. It is recommended that you follow this procedure:</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li><p>Create the directory that is going to contain the top directory of the JDK clone by using the <code>mkdir</code> command in the Cygwin bash shell. That is, do <em>not</em> create it using Windows Explorer. This will ensure that it will have proper Cygwin attributes, and that it's children will inherit those attributes.</p></li>
|
<li><p>Create the directory that is going to contain the top directory of the JDK clone by using the <code>mkdir</code> command in the Cygwin bash shell. That is, do <em>not</em> create it using Windows Explorer. This will ensure that it will have proper Cygwin attributes, and that it's children will inherit those attributes.</p></li>
|
||||||
<li><p>Do not put the JDK clone in a path under your Cygwin home directory. This is especially important if your user name contains spaces and/or mixed upper and lower case letters.</p></li>
|
<li><p>Do not put the JDK clone in a path under your Cygwin home directory. This is especially important if your user name contains spaces and/or mixed upper and lower case letters.</p></li>
|
||||||
@@ -153,7 +161,10 @@
|
|||||||
<p>Even for 32-bit builds, it is recommended to use a 64-bit build machine, and instead create a 32-bit target using <code>--with-target-bits=32</code>.</p>
|
<p>Even for 32-bit builds, it is recommended to use a 64-bit build machine, and instead create a 32-bit target using <code>--with-target-bits=32</code>.</p>
|
||||||
<h3 id="building-on-sparc">Building on sparc</h3>
|
<h3 id="building-on-sparc">Building on sparc</h3>
|
||||||
<p>At a minimum, a machine with 4 cores is advisable, as well as 4 GB of RAM. (The more cores to use, the more memory you need.) At least 8 GB of free disk space is required.</p>
|
<p>At a minimum, a machine with 4 cores is advisable, as well as 4 GB of RAM. (The more cores to use, the more memory you need.) At least 8 GB of free disk space is required.</p>
|
||||||
<h3 id="building-on-armaarch64">Building on arm/aarch64</h3>
|
<h3 id="building-on-aarch64">Building on aarch64</h3>
|
||||||
|
<p>At a minimum, a machine with 8 cores is advisable, as well as 8 GB of RAM. (The more cores to use, the more memory you need.) At least 6 GB of free disk space is required.</p>
|
||||||
|
<p>If you do not have access to sufficiently powerful hardware, it is also possible to use <a href="#cross-compiling">cross-compiling</a>.</p>
|
||||||
|
<h3 id="building-on-32-bit-arm">Building on 32-bit arm</h3>
|
||||||
<p>This is not recommended. Instead, see the section on <a href="#cross-compiling">Cross-compiling</a>.</p>
|
<p>This is not recommended. Instead, see the section on <a href="#cross-compiling">Cross-compiling</a>.</p>
|
||||||
<h2 id="operating-system-requirements">Operating System Requirements</h2>
|
<h2 id="operating-system-requirements">Operating System Requirements</h2>
|
||||||
<p>The mainline JDK project supports Linux, Solaris, macOS, AIX and Windows. Support for other operating system, e.g. BSD, exists in separate "port" projects.</p>
|
<p>The mainline JDK project supports Linux, Solaris, macOS, AIX and Windows. Support for other operating system, e.g. BSD, exists in separate "port" projects.</p>
|
||||||
@@ -190,12 +201,12 @@
|
|||||||
<h3 id="windows">Windows</h3>
|
<h3 id="windows">Windows</h3>
|
||||||
<p>Windows XP is not a supported platform, but all newer Windows should be able to build the JDK.</p>
|
<p>Windows XP is not a supported platform, but all newer Windows should be able to build the JDK.</p>
|
||||||
<p>On Windows, it is important that you pay attention to the instructions in the <a href="#special-considerations">Special Considerations</a>.</p>
|
<p>On Windows, it is important that you pay attention to the instructions in the <a href="#special-considerations">Special Considerations</a>.</p>
|
||||||
<p>Windows is the only non-POSIX OS supported by the JDK, and as such, requires some extra care. A POSIX support layer is required to build on Windows. Currently, the only supported such layer is Cygwin. (Msys is no longer supported due to a too old bash; msys2 and the new Windows Subsystem for Linux (WSL) would likely be possible to support in a future version but that would require effort to implement.)</p>
|
<p>Windows is the only non-POSIX OS supported by the JDK, and as such, requires some extra care. A POSIX support layer is required to build on Windows. Currently, the only supported such layers are Cygwin and Windows Subsystem for Linux (WSL). (Msys is no longer supported due to a too old bash; msys2 would likely be possible to support in a future version but that would require effort to implement.)</p>
|
||||||
<p>Internally in the build system, all paths are represented as Unix-style paths, e.g. <code>/cygdrive/c/hg/jdk9/Makefile</code> rather than <code>C:\hg\jdk9\Makefile</code>. This rule also applies to input to the build system, e.g. in arguments to <code>configure</code>. So, use <code>--with-msvcr-dll=/cygdrive/c/msvcr100.dll</code> rather than <code>--with-msvcr-dll=c:\msvcr100.dll</code>. For details on this conversion, see the section on <a href="#fixpath">Fixpath</a>.</p>
|
<p>Internally in the build system, all paths are represented as Unix-style paths, e.g. <code>/cygdrive/c/hg/jdk9/Makefile</code> rather than <code>C:\hg\jdk9\Makefile</code>. This rule also applies to input to the build system, e.g. in arguments to <code>configure</code>. So, use <code>--with-msvcr-dll=/cygdrive/c/msvcr100.dll</code> rather than <code>--with-msvcr-dll=c:\msvcr100.dll</code>. For details on this conversion, see the section on <a href="#fixpath">Fixpath</a>.</p>
|
||||||
<h4 id="cygwin">Cygwin</h4>
|
<h4 id="cygwin">Cygwin</h4>
|
||||||
<p>A functioning <a href="http://www.cygwin.com/">Cygwin</a> environment is thus required for building the JDK on Windows. If you have a 64-bit OS, we strongly recommend using the 64-bit version of Cygwin.</p>
|
<p>A functioning <a href="http://www.cygwin.com/">Cygwin</a> environment is required for building the JDK on Windows. If you have a 64-bit OS, we strongly recommend using the 64-bit version of Cygwin.</p>
|
||||||
<p><strong>Note:</strong> Cygwin has a model of continuously updating all packages without any easy way to install or revert to a specific version of a package. This means that whenever you add or update a package in Cygwin, you might (inadvertently) update tools that are used by the JDK build process, and that can cause unexpected build problems.</p>
|
<p><strong>Note:</strong> Cygwin has a model of continuously updating all packages without any easy way to install or revert to a specific version of a package. This means that whenever you add or update a package in Cygwin, you might (inadvertently) update tools that are used by the JDK build process, and that can cause unexpected build problems.</p>
|
||||||
<p>The JDK requires GNU Make 4.0 or greater on Windows. This is usually not a problem, since Cygwin currently only distributes GNU Make at a version above 4.0.</p>
|
<p>The JDK requires GNU Make 4.0 or greater in Cygwin. This is usually not a problem, since Cygwin currently only distributes GNU Make at a version above 4.0.</p>
|
||||||
<p>Apart from the basic Cygwin installation, the following packages must also be installed:</p>
|
<p>Apart from the basic Cygwin installation, the following packages must also be installed:</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li><code>autoconf</code></li>
|
<li><code>autoconf</code></li>
|
||||||
@@ -206,6 +217,11 @@
|
|||||||
<p>Often, you can install these packages using the following command line:</p>
|
<p>Often, you can install these packages using the following command line:</p>
|
||||||
<pre><code><path to Cygwin setup>/setup-x86_64 -q -P autoconf -P make -P unzip -P zip</code></pre>
|
<pre><code><path to Cygwin setup>/setup-x86_64 -q -P autoconf -P make -P unzip -P zip</code></pre>
|
||||||
<p>Unfortunately, Cygwin can be unreliable in certain circumstances. If you experience build tool crashes or strange issues when building on Windows, please check the Cygwin FAQ on the <a href="https://cygwin.com/faq/faq.html#faq.using.bloda">"BLODA" list</a> and the section on <a href="https://cygwin.com/faq/faq.html#faq.using.fixing-fork-failures">fork() failures</a>.</p>
|
<p>Unfortunately, Cygwin can be unreliable in certain circumstances. If you experience build tool crashes or strange issues when building on Windows, please check the Cygwin FAQ on the <a href="https://cygwin.com/faq/faq.html#faq.using.bloda">"BLODA" list</a> and the section on <a href="https://cygwin.com/faq/faq.html#faq.using.fixing-fork-failures">fork() failures</a>.</p>
|
||||||
|
<h4 id="windows-subsystem-for-linux-wsl">Windows Subsystem for Linux (WSL)</h4>
|
||||||
|
<p>Windows 10 1809 or newer is supported due to a dependency on the wslpath utility and support for environment variable sharing through WSLENV. Version 1803 can work but intermittent build failures have been observed.</p>
|
||||||
|
<p>It's possible to build both Windows and Linux binaries from WSL. To build Windows binaries, you must use a Windows boot JDK (located in a Windows-accessible directory). To build Linux binaries, you must use a Linux boot JDK. The default behavior is to build for Windows. To build for Linux, pass <code>--build=x86_64-unknown-linux-gnu --host=x86_64-unknown-linux-gnu</code> to <code>configure</code>.</p>
|
||||||
|
<p>If building Windows binaries, the source code must be located in a Windows- accessible directory. This is because Windows executables (such as Visual Studio and the boot JDK) must be able to access the source code. Also, the drive where the source is stored must be mounted as case-insensitive by changing either /etc/fstab or /etc/wsl.conf in WSL. Individual directories may be corrected using the fsutil tool in case the source was cloned before changing the mount options.</p>
|
||||||
|
<p>Note that while it's possible to build on WSL, testing is still not fully supported.</p>
|
||||||
<h3 id="solaris">Solaris</h3>
|
<h3 id="solaris">Solaris</h3>
|
||||||
<p>See <code>make/devkit/solaris11.1-package-list.txt</code> for a list of recommended packages to install when building on Solaris. The versions specified in this list is the versions used by the daily builds at Oracle, and is likely to work properly.</p>
|
<p>See <code>make/devkit/solaris11.1-package-list.txt</code> for a list of recommended packages to install when building on Solaris. The versions specified in this list is the versions used by the daily builds at Oracle, and is likely to work properly.</p>
|
||||||
<p>Older versions of Solaris shipped a broken version of <code>objcopy</code>. At least version 2.21.1 is needed, which is provided by Solaris 11 Update 1. Objcopy is needed if you want to have external debug symbols. Please make sure you are using at least version 2.21.1 of objcopy, or that you disable external debug symbols.</p>
|
<p>Older versions of Solaris shipped a broken version of <code>objcopy</code>. At least version 2.21.1 is needed, which is provided by Solaris 11 Update 1. Objcopy is needed if you want to have external debug symbols. Please make sure you are using at least version 2.21.1 of objcopy, or that you disable external debug symbols.</p>
|
||||||
@@ -390,9 +406,9 @@ CC: Sun C++ 5.13 SunOS_i386 151846-10 2015/10/30</code></pre>
|
|||||||
<h3 id="x11">X11</h3>
|
<h3 id="x11">X11</h3>
|
||||||
<p>Certain <a href="http://www.x.org/">X11</a> libraries and include files are required on Linux and Solaris.</p>
|
<p>Certain <a href="http://www.x.org/">X11</a> libraries and include files are required on Linux and Solaris.</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>To install on an apt-based Linux, try running <code>sudo apt-get install libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev</code>.</li>
|
<li>To install on an apt-based Linux, try running <code>sudo apt-get install libx11-dev libxext-dev libxrender-dev libxrandr-dev libxtst-dev libxt-dev</code>.</li>
|
||||||
<li>To install on an rpm-based Linux, try running <code>sudo yum install libXtst-devel libXt-devel libXrender-devel libXi-devel</code>.</li>
|
<li>To install on an rpm-based Linux, try running <code>sudo yum install libXtst-devel libXt-devel libXrender-devel libXrandr-devel libXi-devel</code>.</li>
|
||||||
<li>To install on Solaris, try running <code>pkg install x11/header/x11-protocols x11/library/libice x11/library/libpthread-stubs x11/library/libsm x11/library/libx11 x11/library/libxau x11/library/libxcb x11/library/libxdmcp x11/library/libxevie x11/library/libxext x11/library/libxrender x11/library/libxscrnsaver x11/library/libxtst x11/library/toolkit/libxt</code>.</li>
|
<li>To install on Solaris, try running <code>pkg install x11/header/x11-protocols x11/library/libice x11/library/libpthread-stubs x11/library/libsm x11/library/libx11 x11/library/libxau x11/library/libxcb x11/library/libxdmcp x11/library/libxevie x11/library/libxext x11/library/libxrender x11/library/libxrandr x11/library/libxscrnsaver x11/library/libxtst x11/library/toolkit/libxt</code>.</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>Use <code>--with-x=<path></code> if <code>configure</code> does not properly locate your X11 files.</p>
|
<p>Use <code>--with-x=<path></code> if <code>configure</code> does not properly locate your X11 files.</p>
|
||||||
<h3 id="alsa">ALSA</h3>
|
<h3 id="alsa">ALSA</h3>
|
||||||
@@ -458,6 +474,10 @@ CC: Sun C++ 5.13 SunOS_i386 151846-10 2015/10/30</code></pre>
|
|||||||
<li><code>--with-jvm-features=<feature>[,<feature>...]</code> - Use the specified JVM features when building Hotspot. The list of features will be enabled on top of the default list. For the <code>custom</code> JVM variant, this default list is empty. A complete list of available JVM features can be found using <code>bash configure --help</code>.</li>
|
<li><code>--with-jvm-features=<feature>[,<feature>...]</code> - Use the specified JVM features when building Hotspot. The list of features will be enabled on top of the default list. For the <code>custom</code> JVM variant, this default list is empty. A complete list of available JVM features can be found using <code>bash configure --help</code>.</li>
|
||||||
<li><code>--with-target-bits=<bits></code> - Create a target binary suitable for running on a <code><bits></code> platform. Use this to create 32-bit output on a 64-bit build platform, instead of doing a full cross-compile. (This is known as a <em>reduced</em> build.)</li>
|
<li><code>--with-target-bits=<bits></code> - Create a target binary suitable for running on a <code><bits></code> platform. Use this to create 32-bit output on a 64-bit build platform, instead of doing a full cross-compile. (This is known as a <em>reduced</em> build.)</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
<p>On Linux, BSD and AIX, it is possible to override where Java by default searches for runtime/JNI libraries. This can be useful in situations where there is a special shared directory for system JNI libraries. This setting can in turn be overriden at runtime by setting the <code>java.library.path</code> property.</p>
|
||||||
|
<ul>
|
||||||
|
<li><code>--with-jni-libpath=<path></code> - Use the specified path as a default when searching for runtime libraries.</li>
|
||||||
|
</ul>
|
||||||
<h4 id="configure-arguments-for-native-compilation">Configure Arguments for Native Compilation</h4>
|
<h4 id="configure-arguments-for-native-compilation">Configure Arguments for Native Compilation</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li><code>--with-devkit=<path></code> - Use this devkit for compilers, tools and resources</li>
|
<li><code>--with-devkit=<path></code> - Use this devkit for compilers, tools and resources</li>
|
||||||
@@ -565,6 +585,47 @@ CC: Sun C++ 5.13 SunOS_i386 151846-10 2015/10/30</code></pre>
|
|||||||
<p>This requires a more complex setup and build procedure. This section assumes you are familiar with cross-compiling in general, and will only deal with the particularities of cross-compiling the JDK. If you are new to cross-compiling, please see the <a href="https://en.wikipedia.org/wiki/Cross_compiler#External_links">external links at Wikipedia</a> for a good start on reading materials.</p>
|
<p>This requires a more complex setup and build procedure. This section assumes you are familiar with cross-compiling in general, and will only deal with the particularities of cross-compiling the JDK. If you are new to cross-compiling, please see the <a href="https://en.wikipedia.org/wiki/Cross_compiler#External_links">external links at Wikipedia</a> for a good start on reading materials.</p>
|
||||||
<p>Cross-compiling the JDK requires you to be able to build both for the build platform and for the target platform. The reason for the former is that we need to build and execute tools during the build process, both native tools and Java tools.</p>
|
<p>Cross-compiling the JDK requires you to be able to build both for the build platform and for the target platform. The reason for the former is that we need to build and execute tools during the build process, both native tools and Java tools.</p>
|
||||||
<p>If all you want to do is to compile a 32-bit version, for the same OS, on a 64-bit machine, consider using <code>--with-target-bits=32</code> instead of doing a full-blown cross-compilation. (While this surely is possible, it's a lot more work and will take much longer to build.)</p>
|
<p>If all you want to do is to compile a 32-bit version, for the same OS, on a 64-bit machine, consider using <code>--with-target-bits=32</code> instead of doing a full-blown cross-compilation. (While this surely is possible, it's a lot more work and will take much longer to build.)</p>
|
||||||
|
<h3 id="cross-compiling-the-easy-way-with-openjdk-devkits">Cross compiling the easy way with OpenJDK devkits</h3>
|
||||||
|
<p>The OpenJDK build system provides out-of-the box support for creating and using so called devkits. A <code>devkit</code> is basically a collection of a cross-compiling toolchain and a sysroot environment which can easily be used together with the <code>--with-devkit</code> configure option to cross compile the OpenJDK. On Linux/x86_64, the following command:</p>
|
||||||
|
<pre><code>bash configure --with-devkit=<devkit-path> --openjdk-target=ppc64-linux-gnu && make</code></pre>
|
||||||
|
<p>will configure and build OpenJDK for Linux/ppc64 assuming that <code><devkit-path></code> points to a Linux/x86_64 to Linux/ppc64 devkit.</p>
|
||||||
|
<p>Devkits can be created from the <code>make/devkit</code> directory by executing:</p>
|
||||||
|
<pre><code>make [ TARGETS="<TARGET_TRIPLET>+" ] [ BASE_OS=<OS> ] [ BASE_OS_VERSION=<VER> ]</code></pre>
|
||||||
|
<p>where <code>TARGETS</code> contains one or more <code>TARGET_TRIPLET</code>s of the form described in <a href="https://sourceware.org/autobook/autobook/autobook_17.html">section 3.4 of the GNU Autobook</a>. If no targets are given, a native toolchain for the current platform will be created. Currently, at least the following targets are known to work:</p>
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr class="header">
|
||||||
|
<th style="text-align: left;">Supported devkit targets</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr class="odd">
|
||||||
|
<td style="text-align: left;">x86_64-linux-gnu</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="even">
|
||||||
|
<td style="text-align: left;">aarch64-linux-gnu</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="odd">
|
||||||
|
<td style="text-align: left;">arm-linux-gnueabihf</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="even">
|
||||||
|
<td style="text-align: left;">ppc64-linux-gnu</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="odd">
|
||||||
|
<td style="text-align: left;">ppc64le-linux-gnu</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="even">
|
||||||
|
<td style="text-align: left;">s390x-linux-gnu</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<p><code>BASE_OS</code> must be one of "OEL6" for Oracle Enterprise Linux 6 or "Fedora" (if not specified "OEL6" will be the default). If the base OS is "Fedora" the corresponding Fedora release can be specified with the help of the <code>BASE_OS_VERSION</code> option (with "27" as default version). If the build is successful, the new devkits can be found in the <code>build/devkit/result</code> subdirectory:</p>
|
||||||
|
<pre><code>cd make/devkit
|
||||||
|
make TARGETS="ppc64le-linux-gnu aarch64-linux-gnu" BASE_OS=Fedora BASE_OS_VERSION=21
|
||||||
|
ls -1 ../../build/devkit/result/
|
||||||
|
x86_64-linux-gnu-to-aarch64-linux-gnu
|
||||||
|
x86_64-linux-gnu-to-ppc64le-linux-gnu</code></pre>
|
||||||
|
<p>Notice that devkits are not only useful for targeting different build platforms. Because they contain the full build dependencies for a system (i.e. compiler and root file system), they can easily be used to build well-known, reliable and reproducible build environments. You can for example create and use a devkit with GCC 7.3 and a Fedora 12 sysroot environment (with glibc 2.11) on Ubuntu 14.04 (which doesn't have GCC 7.3 by default) to produce OpenJDK binaries which will run on all Linux systems with runtime libraries newer than the ones from Fedora 12 (e.g. Ubuntu 16.04, SLES 11 or RHEL 6).</p>
|
||||||
<h3 id="boot-jdk-and-build-jdk">Boot JDK and Build JDK</h3>
|
<h3 id="boot-jdk-and-build-jdk">Boot JDK and Build JDK</h3>
|
||||||
<p>When cross-compiling, make sure you use a boot JDK that runs on the <em>build</em> system, and not on the <em>target</em> system.</p>
|
<p>When cross-compiling, make sure you use a boot JDK that runs on the <em>build</em> system, and not on the <em>target</em> system.</p>
|
||||||
<p>To be able to build, we need a "Build JDK", which is a JDK built from the current sources (that is, the same as the end result of the entire build process), but able to run on the <em>build</em> system, and not the <em>target</em> system. (In contrast, the Boot JDK should be from an older release, e.g. JDK 8 when building JDK 9.)</p>
|
<p>To be able to build, we need a "Build JDK", which is a JDK built from the current sources (that is, the same as the end result of the entire build process), but able to run on the <em>build</em> system, and not the <em>target</em> system. (In contrast, the Boot JDK should be from an older release, e.g. JDK 8 when building JDK 9.)</p>
|
||||||
@@ -589,11 +650,13 @@ CC: Sun C++ 5.13 SunOS_i386 151846-10 2015/10/30</code></pre>
|
|||||||
<p>Note that alsa is needed even if you only want to build a headless JDK.</p>
|
<p>Note that alsa is needed even if you only want to build a headless JDK.</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li><p>Go to <a href="https://www.debian.org/distrib/packages">Debian Package Search</a> and search for the <code>libasound2</code> and <code>libasound2-dev</code> packages for your <em>target</em> system. Download them to /tmp.</p></li>
|
<li><p>Go to <a href="https://www.debian.org/distrib/packages">Debian Package Search</a> and search for the <code>libasound2</code> and <code>libasound2-dev</code> packages for your <em>target</em> system. Download them to /tmp.</p></li>
|
||||||
<li><p>Install the libraries into the cross-compilation toolchain. For instance:</p>
|
<li>Install the libraries into the cross-compilation toolchain. For instance:</li>
|
||||||
|
</ul>
|
||||||
<pre><code>cd /tools/gcc-linaro-arm-linux-gnueabihf-raspbian-2012.09-20120921_linux/arm-linux-gnueabihf/libc
|
<pre><code>cd /tools/gcc-linaro-arm-linux-gnueabihf-raspbian-2012.09-20120921_linux/arm-linux-gnueabihf/libc
|
||||||
dpkg-deb -x /tmp/libasound2_1.0.25-4_armhf.deb .
|
dpkg-deb -x /tmp/libasound2_1.0.25-4_armhf.deb .
|
||||||
dpkg-deb -x /tmp/libasound2-dev_1.0.25-4_armhf.deb .</code></pre></li>
|
dpkg-deb -x /tmp/libasound2-dev_1.0.25-4_armhf.deb .</code></pre>
|
||||||
<li><p>If alsa is not properly detected by <code>configure</code>, you can point it out by <code>--with-alsa</code>.</p></li>
|
<ul>
|
||||||
|
<li>If alsa is not properly detected by <code>configure</code>, you can point it out by <code>--with-alsa</code>.</li>
|
||||||
</ul>
|
</ul>
|
||||||
<h4 id="x11-1">X11</h4>
|
<h4 id="x11-1">X11</h4>
|
||||||
<p>You will need X11 libraries suitable for your <em>target</em> system. For most cases, using Debian's pre-built libraries work fine.</p>
|
<p>You will need X11 libraries suitable for your <em>target</em> system. For most cases, using Debian's pre-built libraries work fine.</p>
|
||||||
@@ -611,6 +674,7 @@ dpkg-deb -x /tmp/libasound2-dev_1.0.25-4_armhf.deb .</code></pre></li>
|
|||||||
<li>libice-dev</li>
|
<li>libice-dev</li>
|
||||||
<li>libxrender</li>
|
<li>libxrender</li>
|
||||||
<li>libxrender-dev</li>
|
<li>libxrender-dev</li>
|
||||||
|
<li>libxrandr-dev</li>
|
||||||
<li>libsm-dev</li>
|
<li>libsm-dev</li>
|
||||||
<li>libxt-dev</li>
|
<li>libxt-dev</li>
|
||||||
<li>libx11</li>
|
<li>libx11</li>
|
||||||
@@ -634,9 +698,78 @@ cp: cannot stat `arm-linux-gnueabihf/libSM.so': No such file or directory
|
|||||||
cp: cannot stat `arm-linux-gnueabihf/libXt.so': No such file or directory</code></pre></li>
|
cp: cannot stat `arm-linux-gnueabihf/libXt.so': No such file or directory</code></pre></li>
|
||||||
<li><p>If the X11 libraries are not properly detected by <code>configure</code>, you can point them out by <code>--with-x</code>.</p></li>
|
<li><p>If the X11 libraries are not properly detected by <code>configure</code>, you can point them out by <code>--with-x</code>.</p></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
<h3 id="creating-and-using-sysroots-with-qemu-deboostrap">Creating And Using Sysroots With qemu-deboostrap</h3>
|
||||||
|
<p>Fortunately, you can create sysroots for foreign architectures with tools provided by your OS. On Debian/Ubuntu systems, one could use <code>qemu-deboostrap</code> to create the <em>target</em> system chroot, which would have the native libraries and headers specific to that <em>target</em> system. After that, we can use the cross-compiler on the <em>build</em> system, pointing into chroot to get the build dependencies right. This allows building for foreign architectures with native compilation speed.</p>
|
||||||
|
<p>For example, cross-compiling to AArch64 from x86_64 could be done like this:</p>
|
||||||
|
<ul>
|
||||||
|
<li>Install cross-compiler on the <em>build</em> system:</li>
|
||||||
|
</ul>
|
||||||
|
<pre><code>apt install g++-aarch64-linux-gnu gcc-aarch64-linux-gnu</code></pre>
|
||||||
|
<ul>
|
||||||
|
<li>Create chroot on the <em>build</em> system, configuring it for <em>target</em> system:</li>
|
||||||
|
</ul>
|
||||||
|
<pre><code>sudo qemu-debootstrap --arch=arm64 --verbose \
|
||||||
|
--include=fakeroot,build-essential,libx11-dev,libxext-dev,libxrender-dev,libxrandr-dev,libxtst-dev,libxt-dev,libcups2-dev,libfontconfig1-dev,libasound2-dev,libfreetype6-dev,libpng12-dev \
|
||||||
|
--resolve-deps jessie /chroots/arm64 http://httpredir.debian.org/debian/</code></pre>
|
||||||
|
<ul>
|
||||||
|
<li>Configure and build with newly created chroot as sysroot/toolchain-path:</li>
|
||||||
|
</ul>
|
||||||
|
<pre><code>CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ sh ./configure --openjdk-target=aarch64-linux-gnu --with-sysroot=/chroots/arm64/ --with-toolchain-path=/chroots/arm64/
|
||||||
|
make images
|
||||||
|
ls build/linux-aarch64-normal-server-release/</code></pre>
|
||||||
|
<p>The build does not create new files in that chroot, so it can be reused for multiple builds without additional cleanup.</p>
|
||||||
|
<p>Architectures that are known to successfully cross-compile like this are:</p>
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr class="header">
|
||||||
|
<th style="text-align: left;">Target</th>
|
||||||
|
<th style="text-align: left;"><code>CC</code></th>
|
||||||
|
<th style="text-align: left;"><code>CXX</code></th>
|
||||||
|
<th style="text-align: left;"><code>--arch=...</code></th>
|
||||||
|
<th style="text-align: left;"><code>--openjdk-target=...</code></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr class="odd">
|
||||||
|
<td style="text-align: left;">x86</td>
|
||||||
|
<td style="text-align: left;">default</td>
|
||||||
|
<td style="text-align: left;">default</td>
|
||||||
|
<td style="text-align: left;">i386</td>
|
||||||
|
<td style="text-align: left;">i386-linux-gnu</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="even">
|
||||||
|
<td style="text-align: left;">armhf</td>
|
||||||
|
<td style="text-align: left;">gcc-arm-linux-gnueabihf</td>
|
||||||
|
<td style="text-align: left;">g++-arm-linux-gnueabihf</td>
|
||||||
|
<td style="text-align: left;">armhf</td>
|
||||||
|
<td style="text-align: left;">arm-linux-gnueabihf</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="odd">
|
||||||
|
<td style="text-align: left;">aarch64</td>
|
||||||
|
<td style="text-align: left;">gcc-aarch64-linux-gnu</td>
|
||||||
|
<td style="text-align: left;">g++-aarch64-linux-gnu</td>
|
||||||
|
<td style="text-align: left;">arm64</td>
|
||||||
|
<td style="text-align: left;">aarch64-linux-gnu</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="even">
|
||||||
|
<td style="text-align: left;">ppc64el</td>
|
||||||
|
<td style="text-align: left;">gcc-powerpc64le-linux-gnu</td>
|
||||||
|
<td style="text-align: left;">g++-powerpc64le-linux-gnu</td>
|
||||||
|
<td style="text-align: left;">ppc64el</td>
|
||||||
|
<td style="text-align: left;">powerpc64le-linux-gnu</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="odd">
|
||||||
|
<td style="text-align: left;">s390x</td>
|
||||||
|
<td style="text-align: left;">gcc-s390x-linux-gnu</td>
|
||||||
|
<td style="text-align: left;">g++-s390x-linux-gnu</td>
|
||||||
|
<td style="text-align: left;">s390x</td>
|
||||||
|
<td style="text-align: left;">s390x-linux-gnu</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<p>Additional architectures might be supported by Debian/Ubuntu Ports.</p>
|
||||||
<h3 id="building-for-armaarch64">Building for ARM/aarch64</h3>
|
<h3 id="building-for-armaarch64">Building for ARM/aarch64</h3>
|
||||||
<p>A common cross-compilation target is the ARM CPU. When building for ARM, it is useful to set the ABI profile. A number of pre-defined ABI profiles are available using <code>--with-abi-profile</code>: arm-vfp-sflt, arm-vfp-hflt, arm-sflt, armv5-vfp-sflt, armv6-vfp-hflt. Note that soft-float ABIs are no longer properly supported by the JDK.</p>
|
<p>A common cross-compilation target is the ARM CPU. When building for ARM, it is useful to set the ABI profile. A number of pre-defined ABI profiles are available using <code>--with-abi-profile</code>: arm-vfp-sflt, arm-vfp-hflt, arm-sflt, armv5-vfp-sflt, armv6-vfp-hflt. Note that soft-float ABIs are no longer properly supported by the JDK.</p>
|
||||||
<p>The JDK contains two different ports for the aarch64 platform, one is the original aarch64 port from the <a href="http://openjdk.java.net/projects/aarch64-port">AArch64 Port Project</a> and one is a 64-bit version of the Oracle contributed ARM port. When targeting aarch64, by the default the original aarch64 port is used. To select the Oracle ARM 64 port, use <code>--with-cpu-port=arm64</code>. Also set the corresponding value (<code>aarch64</code> or <code>arm64</code>) to --with-abi-profile, to ensure a consistent build.</p>
|
|
||||||
<h3 id="verifying-the-build">Verifying the Build</h3>
|
<h3 id="verifying-the-build">Verifying the Build</h3>
|
||||||
<p>The build will end up in a directory named like <code>build/linux-arm-normal-server-release</code>.</p>
|
<p>The build will end up in a directory named like <code>build/linux-arm-normal-server-release</code>.</p>
|
||||||
<p>Inside this build output directory, the <code>images/jdk</code> will contain the newly built JDK, for your <em>target</em> system.</p>
|
<p>Inside this build output directory, the <code>images/jdk</code> will contain the newly built JDK, for your <em>target</em> system.</p>
|
||||||
@@ -710,11 +843,11 @@ Hint: If caused by a warning, try configure --disable-warnings-as-errors.</code>
|
|||||||
<p>Verify that the summary at the end looks correct. Are you indeed using the Boot JDK and native toolchain that you expect?</p>
|
<p>Verify that the summary at the end looks correct. Are you indeed using the Boot JDK and native toolchain that you expect?</p>
|
||||||
<p>By default, the JDK has a strict approach where warnings from the compiler is considered errors which fail the build. For very new or very old compiler versions, this can trigger new classes of warnings, which thus fails the build. Run <code>configure</code> with <code>--disable-warnings-as-errors</code> to turn of this behavior. (The warnings will still show, but not make the build fail.)</p>
|
<p>By default, the JDK has a strict approach where warnings from the compiler is considered errors which fail the build. For very new or very old compiler versions, this can trigger new classes of warnings, which thus fails the build. Run <code>configure</code> with <code>--disable-warnings-as-errors</code> to turn of this behavior. (The warnings will still show, but not make the build fail.)</p>
|
||||||
<h4 id="problems-with-incremental-rebuilds">Problems with Incremental Rebuilds</h4>
|
<h4 id="problems-with-incremental-rebuilds">Problems with Incremental Rebuilds</h4>
|
||||||
<p>Incremental rebuilds mean that when you modify part of the product, only the affected parts get rebuilt. While this works great in most cases, and significantly speed up the development process, from time to time complex interdependencies will result in an incorrect build result. This is the most common cause for unexpected build problems, together with inconsistencies between the different Mercurial repositories in the forest.</p>
|
<p>Incremental rebuilds mean that when you modify part of the product, only the affected parts get rebuilt. While this works great in most cases, and significantly speed up the development process, from time to time complex interdependencies will result in an incorrect build result. This is the most common cause for unexpected build problems.</p>
|
||||||
<p>Here are a suggested list of things to try if you are having unexpected build problems. Each step requires more time than the one before, so try them in order. Most issues will be solved at step 1 or 2.</p>
|
<p>Here are a suggested list of things to try if you are having unexpected build problems. Each step requires more time than the one before, so try them in order. Most issues will be solved at step 1 or 2.</p>
|
||||||
<ol type="1">
|
<ol type="1">
|
||||||
<li><p>Make sure your forest is up-to-date</p>
|
<li><p>Make sure your repository is up-to-date</p>
|
||||||
<p>Run <code>bash get_source.sh</code> to make sure you have the latest version of all repositories.</p></li>
|
<p>Run <code>hg pull -u</code> to make sure you have the latest changes.</p></li>
|
||||||
<li><p>Clean build results</p>
|
<li><p>Clean build results</p>
|
||||||
<p>The simplest way to fix incremental rebuild issues is to run <code>make clean</code>. This will remove all build results, but not the configuration or any build system support artifacts. In most cases, this will solve build errors resulting from incremental build mismatches.</p></li>
|
<p>The simplest way to fix incremental rebuild issues is to run <code>make clean</code>. This will remove all build results, but not the configuration or any build system support artifacts. In most cases, this will solve build errors resulting from incremental build mismatches.</p></li>
|
||||||
<li><p>Completely clean the build directory.</p>
|
<li><p>Completely clean the build directory.</p>
|
||||||
@@ -723,8 +856,8 @@ Hint: If caused by a warning, try configure --disable-warnings-as-errors.</code>
|
|||||||
make dist-clean
|
make dist-clean
|
||||||
bash configure $(cat current-configuration)
|
bash configure $(cat current-configuration)
|
||||||
make</code></pre></li>
|
make</code></pre></li>
|
||||||
<li><p>Re-clone the Mercurial forest</p>
|
<li><p>Re-clone the Mercurial repository</p>
|
||||||
<p>Sometimes the Mercurial repositories themselves gets in a state that causes the product to be un-buildable. In such a case, the simplest solution is often the "sledgehammer approach": delete the entire forest, and re-clone it. If you have local changes, save them first to a different location using <code>hg export</code>.</p></li>
|
<p>Sometimes the Mercurial repository gets in a state that causes the product to be un-buildable. In such a case, the simplest solution is often the "sledgehammer approach": delete the entire repository, and re-clone it. If you have local changes, save them first to a different location using <code>hg export</code>.</p></li>
|
||||||
</ol>
|
</ol>
|
||||||
<h3 id="specific-build-issues">Specific Build Issues</h3>
|
<h3 id="specific-build-issues">Specific Build Issues</h3>
|
||||||
<h4 id="clock-skew">Clock Skew</h4>
|
<h4 id="clock-skew">Clock Skew</h4>
|
||||||
@@ -746,7 +879,7 @@ spawn failed</code></pre>
|
|||||||
<p>If none of the suggestions in this document helps you, or if you find what you believe is a bug in the build system, please contact the Build Group by sending a mail to <a href="mailto:build-dev@openjdk.java.net">build-dev@openjdk.java.net</a>. Please include the relevant parts of the configure and/or build log.</p>
|
<p>If none of the suggestions in this document helps you, or if you find what you believe is a bug in the build system, please contact the Build Group by sending a mail to <a href="mailto:build-dev@openjdk.java.net">build-dev@openjdk.java.net</a>. Please include the relevant parts of the configure and/or build log.</p>
|
||||||
<p>If you need general help or advice about developing for the JDK, you can also contact the Adoption Group. See the section on <a href="#contributing-to-openjdk">Contributing to OpenJDK</a> for more information.</p>
|
<p>If you need general help or advice about developing for the JDK, you can also contact the Adoption Group. See the section on <a href="#contributing-to-openjdk">Contributing to OpenJDK</a> for more information.</p>
|
||||||
<h2 id="hints-and-suggestions-for-advanced-users">Hints and Suggestions for Advanced Users</h2>
|
<h2 id="hints-and-suggestions-for-advanced-users">Hints and Suggestions for Advanced Users</h2>
|
||||||
<h3 id="setting-up-a-forest-for-pushing-changes-defpath">Setting Up a Forest for Pushing Changes (defpath)</h3>
|
<h3 id="setting-up-a-repository-for-pushing-changes-defpath">Setting Up a Repository for Pushing Changes (defpath)</h3>
|
||||||
<p>To help you prepare a proper push path for a Mercurial repository, there exists a useful tool known as <a href="http://openjdk.java.net/projects/code-tools/defpath">defpath</a>. It will help you setup a proper push path for pushing changes to the JDK.</p>
|
<p>To help you prepare a proper push path for a Mercurial repository, there exists a useful tool known as <a href="http://openjdk.java.net/projects/code-tools/defpath">defpath</a>. It will help you setup a proper push path for pushing changes to the JDK.</p>
|
||||||
<p>Install the extension by cloning <code>http://hg.openjdk.java.net/code-tools/defpath</code> and updating your <code>.hgrc</code> file. Here's one way to do this:</p>
|
<p>Install the extension by cloning <code>http://hg.openjdk.java.net/code-tools/defpath</code> and updating your <code>.hgrc</code> file. Here's one way to do this:</p>
|
||||||
<pre><code>cd ~
|
<pre><code>cd ~
|
||||||
@@ -759,7 +892,6 @@ defpath=~/hg-ext/defpath/defpath.py
|
|||||||
EOT</code></pre>
|
EOT</code></pre>
|
||||||
<p>You can now setup a proper push path using:</p>
|
<p>You can now setup a proper push path using:</p>
|
||||||
<pre><code>hg defpath -d -u <your OpenJDK username></code></pre>
|
<pre><code>hg defpath -d -u <your OpenJDK username></code></pre>
|
||||||
<p>If you also have the <code>trees</code> extension installed in Mercurial, you will automatically get a <code>tdefpath</code> command, which is even more useful. By running <code>hg tdefpath -du <username></code> in the top repository of your forest, all repos will get setup automatically. This is the recommended usage.</p>
|
|
||||||
<h3 id="bash-completion">Bash Completion</h3>
|
<h3 id="bash-completion">Bash Completion</h3>
|
||||||
<p>The <code>configure</code> and <code>make</code> commands tries to play nice with bash command-line completion (using <code><tab></code> or <code><tab><tab></code>). To use this functionality, make sure you enable completion in your <code>~/.bashrc</code> (see instructions for bash in your operating system).</p>
|
<p>The <code>configure</code> and <code>make</code> commands tries to play nice with bash command-line completion (using <code><tab></code> or <code><tab><tab></code>). To use this functionality, make sure you enable completion in your <code>~/.bashrc</code> (see instructions for bash in your operating system).</p>
|
||||||
<p>Make completion will work out of the box, and will complete valid make targets. For instance, typing <code>make jdk-i<tab></code> will complete to <code>make jdk-image</code>.</p>
|
<p>Make completion will work out of the box, and will complete valid make targets. For instance, typing <code>make jdk-i<tab></code> will complete to <code>make jdk-image</code>.</p>
|
||||||
@@ -777,10 +909,10 @@ chmod +x /tmp/configure
|
|||||||
sudo mv /tmp/configure /usr/local/bin</code></pre>
|
sudo mv /tmp/configure /usr/local/bin</code></pre>
|
||||||
<p>Now <code>configure --en<tab>-dt<tab></code> will result in <code>configure --enable-dtrace</code>.</p>
|
<p>Now <code>configure --en<tab>-dt<tab></code> will result in <code>configure --enable-dtrace</code>.</p>
|
||||||
<h3 id="using-multiple-configurations">Using Multiple Configurations</h3>
|
<h3 id="using-multiple-configurations">Using Multiple Configurations</h3>
|
||||||
<p>You can have multiple configurations for a single source forest. When you create a new configuration, run <code>configure --with-conf-name=<name></code> to create a configuration with the name <code><name></code>. Alternatively, you can create a directory under <code>build</code> and run <code>configure</code> from there, e.g. <code>mkdir build/<name> && cd build/<name> && bash ../../configure</code>.</p>
|
<p>You can have multiple configurations for a single source repository. When you create a new configuration, run <code>configure --with-conf-name=<name></code> to create a configuration with the name <code><name></code>. Alternatively, you can create a directory under <code>build</code> and run <code>configure</code> from there, e.g. <code>mkdir build/<name> && cd build/<name> && bash ../../configure</code>.</p>
|
||||||
<p>Then you can build that configuration using <code>make CONF_NAME=<name></code> or <code>make CONF=<pattern></code>, where <code><pattern></code> is a substring matching one or several configurations, e.g. <code>CONF=debug</code>. The special empty pattern (<code>CONF=</code>) will match <em>all</em> available configuration, so <code>make CONF= hotspot</code> will build the <code>hotspot</code> target for all configurations. Alternatively, you can execute <code>make</code> in the configuration directory, e.g. <code>cd build/<name> && make</code>.</p>
|
<p>Then you can build that configuration using <code>make CONF_NAME=<name></code> or <code>make CONF=<pattern></code>, where <code><pattern></code> is a substring matching one or several configurations, e.g. <code>CONF=debug</code>. The special empty pattern (<code>CONF=</code>) will match <em>all</em> available configuration, so <code>make CONF= hotspot</code> will build the <code>hotspot</code> target for all configurations. Alternatively, you can execute <code>make</code> in the configuration directory, e.g. <code>cd build/<name> && make</code>.</p>
|
||||||
<h3 id="handling-reconfigurations">Handling Reconfigurations</h3>
|
<h3 id="handling-reconfigurations">Handling Reconfigurations</h3>
|
||||||
<p>If you update the forest and part of the configure script has changed, the build system will force you to re-run <code>configure</code>.</p>
|
<p>If you update the repository and part of the configure script has changed, the build system will force you to re-run <code>configure</code>.</p>
|
||||||
<p>Most of the time, you will be fine by running <code>configure</code> again with the same arguments as the last time, which can easily be performed by <code>make reconfigure</code>. To simplify this, you can use the <code>CONF_CHECK</code> make control variable, either as <code>make CONF_CHECK=auto</code>, or by setting an environment variable. For instance, if you add <code>export CONF_CHECK=auto</code> to your <code>.bashrc</code> file, <code>make</code> will always run <code>reconfigure</code> automatically whenever the configure script has changed.</p>
|
<p>Most of the time, you will be fine by running <code>configure</code> again with the same arguments as the last time, which can easily be performed by <code>make reconfigure</code>. To simplify this, you can use the <code>CONF_CHECK</code> make control variable, either as <code>make CONF_CHECK=auto</code>, or by setting an environment variable. For instance, if you add <code>export CONF_CHECK=auto</code> to your <code>.bashrc</code> file, <code>make</code> will always run <code>reconfigure</code> automatically whenever the configure script has changed.</p>
|
||||||
<p>You can also use <code>CONF_CHECK=ignore</code> to skip the check for a needed configure update. This might speed up the build, but comes at the risk of an incorrect build result. This is only recommended if you know what you're doing.</p>
|
<p>You can also use <code>CONF_CHECK=ignore</code> to skip the check for a needed configure update. This might speed up the build, but comes at the risk of an incorrect build result. This is only recommended if you know what you're doing.</p>
|
||||||
<p>From time to time, you will also need to modify the command line to <code>configure</code> due to changes. Use <code>make print-configure</code> to show the command line used for your current configuration.</p>
|
<p>From time to time, you will also need to modify the command line to <code>configure</code> due to changes. Use <code>make print-configure</code> to show the command line used for your current configuration.</p>
|
||||||
|
|||||||
212
doc/building.md
212
doc/building.md
@@ -48,7 +48,7 @@ JDK.
|
|||||||
Make sure you are getting the correct version. As of JDK 10, the source is no
|
Make sure you are getting the correct version. As of JDK 10, the source is no
|
||||||
longer split into separate repositories so you only need to clone one single
|
longer split into separate repositories so you only need to clone one single
|
||||||
repository. At the [OpenJDK Mercurial server](http://hg.openjdk.java.net/) you
|
repository. At the [OpenJDK Mercurial server](http://hg.openjdk.java.net/) you
|
||||||
can see a list of all available forests. If you want to build an older version,
|
can see a list of all available repositories. If you want to build an older version,
|
||||||
e.g. JDK 8, it is recommended that you get the `jdk8u` forest, which contains
|
e.g. JDK 8, it is recommended that you get the `jdk8u` forest, which contains
|
||||||
incremental updates, instead of the `jdk8` forest, which was frozen at JDK 8 GA.
|
incremental updates, instead of the `jdk8` forest, which was frozen at JDK 8 GA.
|
||||||
|
|
||||||
@@ -75,8 +75,8 @@ on where and how to check out the source code.
|
|||||||
network share for the source code, see below for suggestions on how to keep
|
network share for the source code, see below for suggestions on how to keep
|
||||||
the build artifacts on a local disk.
|
the build artifacts on a local disk.
|
||||||
|
|
||||||
* On Windows, extra care must be taken to make sure the [Cygwin](#cygwin)
|
* On Windows, if using [Cygwin](#cygwin), extra care must be taken to make sure
|
||||||
environment is consistent. It is recommended that you follow this
|
the environment is consistent. It is recommended that you follow this
|
||||||
procedure:
|
procedure:
|
||||||
|
|
||||||
* Create the directory that is going to contain the top directory of the
|
* Create the directory that is going to contain the top directory of the
|
||||||
@@ -120,7 +120,16 @@ At a minimum, a machine with 4 cores is advisable, as well as 4 GB of RAM. (The
|
|||||||
more cores to use, the more memory you need.) At least 8 GB of free disk space
|
more cores to use, the more memory you need.) At least 8 GB of free disk space
|
||||||
is required.
|
is required.
|
||||||
|
|
||||||
### Building on arm/aarch64
|
### Building on aarch64
|
||||||
|
|
||||||
|
At a minimum, a machine with 8 cores is advisable, as well as 8 GB of RAM.
|
||||||
|
(The more cores to use, the more memory you need.) At least 6 GB of free disk
|
||||||
|
space is required.
|
||||||
|
|
||||||
|
If you do not have access to sufficiently powerful hardware, it is also
|
||||||
|
possible to use [cross-compiling](#cross-compiling).
|
||||||
|
|
||||||
|
### Building on 32-bit arm
|
||||||
|
|
||||||
This is not recommended. Instead, see the section on [Cross-compiling](
|
This is not recommended. Instead, see the section on [Cross-compiling](
|
||||||
#cross-compiling).
|
#cross-compiling).
|
||||||
@@ -165,10 +174,10 @@ On Windows, it is important that you pay attention to the instructions in the
|
|||||||
|
|
||||||
Windows is the only non-POSIX OS supported by the JDK, and as such, requires
|
Windows is the only non-POSIX OS supported by the JDK, and as such, requires
|
||||||
some extra care. A POSIX support layer is required to build on Windows.
|
some extra care. A POSIX support layer is required to build on Windows.
|
||||||
Currently, the only supported such layer is Cygwin. (Msys is no longer
|
Currently, the only supported such layers are Cygwin and Windows Subsystem for
|
||||||
supported due to a too old bash; msys2 and the new Windows Subsystem for Linux
|
Linux (WSL). (Msys is no longer supported due to a too old bash; msys2 would
|
||||||
(WSL) would likely be possible to support in a future version but that would
|
likely be possible to support in a future version but that would require effort
|
||||||
require effort to implement.)
|
to implement.)
|
||||||
|
|
||||||
Internally in the build system, all paths are represented as Unix-style paths,
|
Internally in the build system, all paths are represented as Unix-style paths,
|
||||||
e.g. `/cygdrive/c/hg/jdk9/Makefile` rather than `C:\hg\jdk9\Makefile`. This
|
e.g. `/cygdrive/c/hg/jdk9/Makefile` rather than `C:\hg\jdk9\Makefile`. This
|
||||||
@@ -179,7 +188,7 @@ on [Fixpath](#fixpath).
|
|||||||
|
|
||||||
#### Cygwin
|
#### Cygwin
|
||||||
|
|
||||||
A functioning [Cygwin](http://www.cygwin.com/) environment is thus required for
|
A functioning [Cygwin](http://www.cygwin.com/) environment is required for
|
||||||
building the JDK on Windows. If you have a 64-bit OS, we strongly recommend
|
building the JDK on Windows. If you have a 64-bit OS, we strongly recommend
|
||||||
using the 64-bit version of Cygwin.
|
using the 64-bit version of Cygwin.
|
||||||
|
|
||||||
@@ -189,7 +198,7 @@ that whenever you add or update a package in Cygwin, you might (inadvertently)
|
|||||||
update tools that are used by the JDK build process, and that can cause
|
update tools that are used by the JDK build process, and that can cause
|
||||||
unexpected build problems.
|
unexpected build problems.
|
||||||
|
|
||||||
The JDK requires GNU Make 4.0 or greater on Windows. This is usually not a
|
The JDK requires GNU Make 4.0 or greater in Cygwin. This is usually not a
|
||||||
problem, since Cygwin currently only distributes GNU Make at a version above
|
problem, since Cygwin currently only distributes GNU Make at a version above
|
||||||
4.0.
|
4.0.
|
||||||
|
|
||||||
@@ -212,6 +221,30 @@ please check the Cygwin FAQ on the ["BLODA" list](
|
|||||||
https://cygwin.com/faq/faq.html#faq.using.bloda) and the section on [fork()
|
https://cygwin.com/faq/faq.html#faq.using.bloda) and the section on [fork()
|
||||||
failures](https://cygwin.com/faq/faq.html#faq.using.fixing-fork-failures).
|
failures](https://cygwin.com/faq/faq.html#faq.using.fixing-fork-failures).
|
||||||
|
|
||||||
|
#### Windows Subsystem for Linux (WSL)
|
||||||
|
|
||||||
|
Windows 10 1809 or newer is supported due to a dependency on the wslpath utility
|
||||||
|
and support for environment variable sharing through WSLENV. Version 1803 can
|
||||||
|
work but intermittent build failures have been observed.
|
||||||
|
|
||||||
|
It's possible to build both Windows and Linux binaries from WSL. To build
|
||||||
|
Windows binaries, you must use a Windows boot JDK (located in a
|
||||||
|
Windows-accessible directory). To build Linux binaries, you must use a Linux
|
||||||
|
boot JDK. The default behavior is to build for Windows. To build for Linux, pass
|
||||||
|
`--build=x86_64-unknown-linux-gnu --host=x86_64-unknown-linux-gnu` to
|
||||||
|
`configure`.
|
||||||
|
|
||||||
|
If building Windows binaries, the source code must be located in a Windows-
|
||||||
|
accessible directory. This is because Windows executables (such as Visual Studio
|
||||||
|
and the boot JDK) must be able to access the source code. Also, the drive where
|
||||||
|
the source is stored must be mounted as case-insensitive by changing either
|
||||||
|
/etc/fstab or /etc/wsl.conf in WSL. Individual directories may be corrected
|
||||||
|
using the fsutil tool in case the source was cloned before changing the mount
|
||||||
|
options.
|
||||||
|
|
||||||
|
Note that while it's possible to build on WSL, testing is still not fully
|
||||||
|
supported.
|
||||||
|
|
||||||
### Solaris
|
### Solaris
|
||||||
|
|
||||||
See `make/devkit/solaris11.1-package-list.txt` for a list of recommended
|
See `make/devkit/solaris11.1-package-list.txt` for a list of recommended
|
||||||
@@ -479,15 +512,15 @@ Certain [X11](http://www.x.org/) libraries and include files are required on
|
|||||||
Linux and Solaris.
|
Linux and Solaris.
|
||||||
|
|
||||||
* To install on an apt-based Linux, try running `sudo apt-get install
|
* To install on an apt-based Linux, try running `sudo apt-get install
|
||||||
libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev`.
|
libx11-dev libxext-dev libxrender-dev libxrandr-dev libxtst-dev libxt-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
|
||||||
libXtst-devel libXt-devel libXrender-devel libXi-devel`.
|
libXtst-devel libXt-devel libXrender-devel libXrandr-devel libXi-devel`.
|
||||||
* To install on Solaris, try running `pkg install x11/header/x11-protocols
|
* To install on Solaris, try running `pkg install x11/header/x11-protocols
|
||||||
x11/library/libice x11/library/libpthread-stubs x11/library/libsm
|
x11/library/libice x11/library/libpthread-stubs x11/library/libsm
|
||||||
x11/library/libx11 x11/library/libxau x11/library/libxcb
|
x11/library/libx11 x11/library/libxau x11/library/libxcb
|
||||||
x11/library/libxdmcp x11/library/libxevie x11/library/libxext
|
x11/library/libxdmcp x11/library/libxevie x11/library/libxext
|
||||||
x11/library/libxrender x11/library/libxscrnsaver x11/library/libxtst
|
x11/library/libxrender x11/library/libxrandr x11/library/libxscrnsaver
|
||||||
x11/library/toolkit/libxt`.
|
x11/library/libxtst x11/library/toolkit/libxt`.
|
||||||
|
|
||||||
Use `--with-x=<path>` if `configure` does not properly locate your X11 files.
|
Use `--with-x=<path>` if `configure` does not properly locate your X11 files.
|
||||||
|
|
||||||
@@ -653,6 +686,14 @@ features, use `bash configure --help=short` instead.)
|
|||||||
platform, instead of doing a full cross-compile. (This is known as a
|
platform, instead of doing a full cross-compile. (This is known as a
|
||||||
*reduced* build.)
|
*reduced* build.)
|
||||||
|
|
||||||
|
On Linux, BSD and AIX, it is possible to override where Java by default
|
||||||
|
searches for runtime/JNI libraries. This can be useful in situations where
|
||||||
|
there is a special shared directory for system JNI libraries. This setting
|
||||||
|
can in turn be overriden at runtime by setting the `java.library.path` property.
|
||||||
|
|
||||||
|
* `--with-jni-libpath=<path>` - Use the specified path as a default
|
||||||
|
when searching for runtime libraries.
|
||||||
|
|
||||||
#### Configure Arguments for Native Compilation
|
#### Configure Arguments for Native Compilation
|
||||||
|
|
||||||
* `--with-devkit=<path>` - Use this devkit for compilers, tools and resources
|
* `--with-devkit=<path>` - Use this devkit for compilers, tools and resources
|
||||||
@@ -875,6 +916,64 @@ If all you want to do is to compile a 32-bit version, for the same OS, on a
|
|||||||
full-blown cross-compilation. (While this surely is possible, it's a lot more
|
full-blown cross-compilation. (While this surely is possible, it's a lot more
|
||||||
work and will take much longer to build.)
|
work and will take much longer to build.)
|
||||||
|
|
||||||
|
### Cross compiling the easy way with OpenJDK devkits
|
||||||
|
|
||||||
|
The OpenJDK build system provides out-of-the box support for creating and using
|
||||||
|
so called devkits. A `devkit` is basically a collection of a cross-compiling
|
||||||
|
toolchain and a sysroot environment which can easily be used together with the
|
||||||
|
`--with-devkit` configure option to cross compile the OpenJDK. On Linux/x86_64,
|
||||||
|
the following command:
|
||||||
|
```
|
||||||
|
bash configure --with-devkit=<devkit-path> --openjdk-target=ppc64-linux-gnu && make
|
||||||
|
```
|
||||||
|
|
||||||
|
will configure and build OpenJDK for Linux/ppc64 assuming that `<devkit-path>`
|
||||||
|
points to a Linux/x86_64 to Linux/ppc64 devkit.
|
||||||
|
|
||||||
|
Devkits can be created from the `make/devkit` directory by executing:
|
||||||
|
```
|
||||||
|
make [ TARGETS="<TARGET_TRIPLET>+" ] [ BASE_OS=<OS> ] [ BASE_OS_VERSION=<VER> ]
|
||||||
|
```
|
||||||
|
|
||||||
|
where `TARGETS` contains one or more `TARGET_TRIPLET`s of the form
|
||||||
|
described in [section 3.4 of the GNU Autobook](
|
||||||
|
https://sourceware.org/autobook/autobook/autobook_17.html). If no
|
||||||
|
targets are given, a native toolchain for the current platform will be
|
||||||
|
created. Currently, at least the following targets are known to work:
|
||||||
|
|
||||||
|
Supported devkit targets
|
||||||
|
-------------------------
|
||||||
|
x86_64-linux-gnu
|
||||||
|
aarch64-linux-gnu
|
||||||
|
arm-linux-gnueabihf
|
||||||
|
ppc64-linux-gnu
|
||||||
|
ppc64le-linux-gnu
|
||||||
|
s390x-linux-gnu
|
||||||
|
|
||||||
|
`BASE_OS` must be one of "OEL6" for Oracle Enterprise Linux 6 or
|
||||||
|
"Fedora" (if not specified "OEL6" will be the default). If the base OS
|
||||||
|
is "Fedora" the corresponding Fedora release can be specified with the
|
||||||
|
help of the `BASE_OS_VERSION` option (with "27" as default version).
|
||||||
|
If the build is successful, the new devkits can be found in the
|
||||||
|
`build/devkit/result` subdirectory:
|
||||||
|
```
|
||||||
|
cd make/devkit
|
||||||
|
make TARGETS="ppc64le-linux-gnu aarch64-linux-gnu" BASE_OS=Fedora BASE_OS_VERSION=21
|
||||||
|
ls -1 ../../build/devkit/result/
|
||||||
|
x86_64-linux-gnu-to-aarch64-linux-gnu
|
||||||
|
x86_64-linux-gnu-to-ppc64le-linux-gnu
|
||||||
|
```
|
||||||
|
|
||||||
|
Notice that devkits are not only useful for targeting different build
|
||||||
|
platforms. Because they contain the full build dependencies for a
|
||||||
|
system (i.e. compiler and root file system), they can easily be used
|
||||||
|
to build well-known, reliable and reproducible build environments. You
|
||||||
|
can for example create and use a devkit with GCC 7.3 and a Fedora 12
|
||||||
|
sysroot environment (with glibc 2.11) on Ubuntu 14.04 (which doesn't
|
||||||
|
have GCC 7.3 by default) to produce OpenJDK binaries which will run on
|
||||||
|
all Linux systems with runtime libraries newer than the ones from
|
||||||
|
Fedora 12 (e.g. Ubuntu 16.04, SLES 11 or RHEL 6).
|
||||||
|
|
||||||
### Boot JDK and Build JDK
|
### Boot JDK and Build JDK
|
||||||
|
|
||||||
When cross-compiling, make sure you use a boot JDK that runs on the *build*
|
When cross-compiling, make sure you use a boot JDK that runs on the *build*
|
||||||
@@ -987,6 +1086,7 @@ Note that X11 is needed even if you only want to build a headless JDK.
|
|||||||
* libice-dev
|
* libice-dev
|
||||||
* libxrender
|
* libxrender
|
||||||
* libxrender-dev
|
* libxrender-dev
|
||||||
|
* libxrandr-dev
|
||||||
* libsm-dev
|
* libsm-dev
|
||||||
* libxt-dev
|
* libxt-dev
|
||||||
* libx11
|
* libx11
|
||||||
@@ -1018,6 +1118,51 @@ Note that X11 is needed even if you only want to build a headless JDK.
|
|||||||
* If the X11 libraries are not properly detected by `configure`, you can
|
* If the X11 libraries are not properly detected by `configure`, you can
|
||||||
point them out by `--with-x`.
|
point them out by `--with-x`.
|
||||||
|
|
||||||
|
### Creating And Using Sysroots With qemu-deboostrap
|
||||||
|
|
||||||
|
Fortunately, you can create sysroots for foreign architectures with tools
|
||||||
|
provided by your OS. On Debian/Ubuntu systems, one could use `qemu-deboostrap` to
|
||||||
|
create the *target* system chroot, which would have the native libraries and headers
|
||||||
|
specific to that *target* system. After that, we can use the cross-compiler on the *build*
|
||||||
|
system, pointing into chroot to get the build dependencies right. This allows building
|
||||||
|
for foreign architectures with native compilation speed.
|
||||||
|
|
||||||
|
For example, cross-compiling to AArch64 from x86_64 could be done like this:
|
||||||
|
|
||||||
|
* Install cross-compiler on the *build* system:
|
||||||
|
```
|
||||||
|
apt install g++-aarch64-linux-gnu gcc-aarch64-linux-gnu
|
||||||
|
```
|
||||||
|
|
||||||
|
* Create chroot on the *build* system, configuring it for *target* system:
|
||||||
|
```
|
||||||
|
sudo qemu-debootstrap --arch=arm64 --verbose \
|
||||||
|
--include=fakeroot,build-essential,libx11-dev,libxext-dev,libxrender-dev,libxrandr-dev,libxtst-dev,libxt-dev,libcups2-dev,libfontconfig1-dev,libasound2-dev,libfreetype6-dev,libpng12-dev \
|
||||||
|
--resolve-deps jessie /chroots/arm64 http://httpredir.debian.org/debian/
|
||||||
|
```
|
||||||
|
|
||||||
|
* Configure and build with newly created chroot as sysroot/toolchain-path:
|
||||||
|
```
|
||||||
|
CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ sh ./configure --openjdk-target=aarch64-linux-gnu --with-sysroot=/chroots/arm64/ --with-toolchain-path=/chroots/arm64/
|
||||||
|
make images
|
||||||
|
ls build/linux-aarch64-normal-server-release/
|
||||||
|
```
|
||||||
|
|
||||||
|
The build does not create new files in that chroot, so it can be reused for multiple builds
|
||||||
|
without additional cleanup.
|
||||||
|
|
||||||
|
Architectures that are known to successfully cross-compile like this are:
|
||||||
|
|
||||||
|
Target `CC` `CXX` `--arch=...` `--openjdk-target=...`
|
||||||
|
------------ ------------------------- --------------------------- ------------- -----------------------
|
||||||
|
x86 default default i386 i386-linux-gnu
|
||||||
|
armhf gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf armhf arm-linux-gnueabihf
|
||||||
|
aarch64 gcc-aarch64-linux-gnu g++-aarch64-linux-gnu arm64 aarch64-linux-gnu
|
||||||
|
ppc64el gcc-powerpc64le-linux-gnu g++-powerpc64le-linux-gnu ppc64el powerpc64le-linux-gnu
|
||||||
|
s390x gcc-s390x-linux-gnu g++-s390x-linux-gnu s390x s390x-linux-gnu
|
||||||
|
|
||||||
|
Additional architectures might be supported by Debian/Ubuntu Ports.
|
||||||
|
|
||||||
### Building for ARM/aarch64
|
### Building for ARM/aarch64
|
||||||
|
|
||||||
A common cross-compilation target is the ARM CPU. When building for ARM, it is
|
A common cross-compilation target is the ARM CPU. When building for ARM, it is
|
||||||
@@ -1026,14 +1171,6 @@ available using `--with-abi-profile`: arm-vfp-sflt, arm-vfp-hflt, arm-sflt,
|
|||||||
armv5-vfp-sflt, armv6-vfp-hflt. Note that soft-float ABIs are no longer
|
armv5-vfp-sflt, armv6-vfp-hflt. Note that soft-float ABIs are no longer
|
||||||
properly supported by the JDK.
|
properly supported by the JDK.
|
||||||
|
|
||||||
The JDK contains two different ports for the aarch64 platform, one is the
|
|
||||||
original aarch64 port from the [AArch64 Port Project](
|
|
||||||
http://openjdk.java.net/projects/aarch64-port) and one is a 64-bit version of
|
|
||||||
the Oracle contributed ARM port. When targeting aarch64, by the default the
|
|
||||||
original aarch64 port is used. To select the Oracle ARM 64 port, use
|
|
||||||
`--with-cpu-port=arm64`. Also set the corresponding value (`aarch64` or
|
|
||||||
`arm64`) to --with-abi-profile, to ensure a consistent build.
|
|
||||||
|
|
||||||
### Verifying the Build
|
### Verifying the Build
|
||||||
|
|
||||||
The build will end up in a directory named like
|
The build will end up in a directory named like
|
||||||
@@ -1255,17 +1392,15 @@ Incremental rebuilds mean that when you modify part of the product, only the
|
|||||||
affected parts get rebuilt. While this works great in most cases, and
|
affected parts get rebuilt. While this works great in most cases, and
|
||||||
significantly speed up the development process, from time to time complex
|
significantly speed up the development process, from time to time complex
|
||||||
interdependencies will result in an incorrect build result. This is the most
|
interdependencies will result in an incorrect build result. This is the most
|
||||||
common cause for unexpected build problems, together with inconsistencies
|
common cause for unexpected build problems.
|
||||||
between the different Mercurial repositories in the forest.
|
|
||||||
|
|
||||||
Here are a suggested list of things to try if you are having unexpected build
|
Here are a suggested list of things to try if you are having unexpected build
|
||||||
problems. Each step requires more time than the one before, so try them in
|
problems. Each step requires more time than the one before, so try them in
|
||||||
order. Most issues will be solved at step 1 or 2.
|
order. Most issues will be solved at step 1 or 2.
|
||||||
|
|
||||||
1. Make sure your forest is up-to-date
|
1. Make sure your repository is up-to-date
|
||||||
|
|
||||||
Run `bash get_source.sh` to make sure you have the latest version of all
|
Run `hg pull -u` to make sure you have the latest changes.
|
||||||
repositories.
|
|
||||||
|
|
||||||
2. Clean build results
|
2. Clean build results
|
||||||
|
|
||||||
@@ -1290,13 +1425,13 @@ order. Most issues will be solved at step 1 or 2.
|
|||||||
make
|
make
|
||||||
```
|
```
|
||||||
|
|
||||||
4. Re-clone the Mercurial forest
|
4. Re-clone the Mercurial repository
|
||||||
|
|
||||||
Sometimes the Mercurial repositories themselves gets in a state that causes
|
Sometimes the Mercurial repository gets in a state that causes the product
|
||||||
the product to be un-buildable. In such a case, the simplest solution is
|
to be un-buildable. In such a case, the simplest solution is often the
|
||||||
often the "sledgehammer approach": delete the entire forest, and re-clone
|
"sledgehammer approach": delete the entire repository, and re-clone it.
|
||||||
it. If you have local changes, save them first to a different location
|
If you have local changes, save them first to a different location using
|
||||||
using `hg export`.
|
`hg export`.
|
||||||
|
|
||||||
### Specific Build Issues
|
### Specific Build Issues
|
||||||
|
|
||||||
@@ -1347,7 +1482,7 @@ contact the Adoption Group. See the section on [Contributing to OpenJDK](
|
|||||||
|
|
||||||
## Hints and Suggestions for Advanced Users
|
## Hints and Suggestions for Advanced Users
|
||||||
|
|
||||||
### Setting Up a Forest for Pushing Changes (defpath)
|
### Setting Up a Repository for Pushing Changes (defpath)
|
||||||
|
|
||||||
To help you prepare a proper push path for a Mercurial repository, there exists
|
To help you prepare a proper push path for a Mercurial repository, there exists
|
||||||
a useful tool known as [defpath](
|
a useful tool known as [defpath](
|
||||||
@@ -1374,11 +1509,6 @@ You can now setup a proper push path using:
|
|||||||
hg defpath -d -u <your OpenJDK username>
|
hg defpath -d -u <your OpenJDK username>
|
||||||
```
|
```
|
||||||
|
|
||||||
If you also have the `trees` extension installed in Mercurial, you will
|
|
||||||
automatically get a `tdefpath` command, which is even more useful. By running
|
|
||||||
`hg tdefpath -du <username>` in the top repository of your forest, all repos
|
|
||||||
will get setup automatically. This is the recommended usage.
|
|
||||||
|
|
||||||
### Bash Completion
|
### Bash Completion
|
||||||
|
|
||||||
The `configure` and `make` commands tries to play nice with bash command-line
|
The `configure` and `make` commands tries to play nice with bash command-line
|
||||||
@@ -1413,7 +1543,7 @@ Now `configure --en<tab>-dt<tab>` will result in `configure --enable-dtrace`.
|
|||||||
|
|
||||||
### Using Multiple Configurations
|
### Using Multiple Configurations
|
||||||
|
|
||||||
You can have multiple configurations for a single source forest. When you
|
You can have multiple configurations for a single source repository. When you
|
||||||
create a new configuration, run `configure --with-conf-name=<name>` to create a
|
create a new configuration, run `configure --with-conf-name=<name>` to create a
|
||||||
configuration with the name `<name>`. Alternatively, you can create a directory
|
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
|
||||||
@@ -1428,7 +1558,7 @@ in the configuration directory, e.g. `cd build/<name> && make`.
|
|||||||
|
|
||||||
### Handling Reconfigurations
|
### Handling Reconfigurations
|
||||||
|
|
||||||
If you update the forest and part of the configure script has changed, the
|
If you update the repository and part of the configure script has changed, the
|
||||||
build system will force you to re-run `configure`.
|
build system will force you to re-run `configure`.
|
||||||
|
|
||||||
Most of the time, you will be fine by running `configure` again with the same
|
Most of the time, you will be fine by running `configure` again with the same
|
||||||
|
|||||||
@@ -11,48 +11,54 @@
|
|||||||
span.underline{text-decoration: underline;}
|
span.underline{text-decoration: underline;}
|
||||||
div.column{display: inline-block; vertical-align: top; width: 50%;}
|
div.column{display: inline-block; vertical-align: top; width: 50%;}
|
||||||
</style>
|
</style>
|
||||||
<link rel="stylesheet" href="../make/data/docs-resources/resources/jdk-default.css">
|
<link rel="stylesheet" href="../make/data/docs-resources/resources/jdk-default.css" />
|
||||||
<!--[if lt IE 9]>
|
<!--[if lt IE 9]>
|
||||||
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
|
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
|
||||||
<![endif]-->
|
<![endif]-->
|
||||||
<style type="text/css">pre, code, tt { color: #1d6ae5; }</style>
|
<style type="text/css">pre, code, tt { color: #1d6ae5; }</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<header>
|
<header id="title-block-header">
|
||||||
<h1 class="title">Testing the JDK</h1>
|
<h1 class="title">Testing the JDK</h1>
|
||||||
</header>
|
</header>
|
||||||
<nav id="TOC">
|
<nav id="TOC">
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#using-the-run-test-framework">Using the run-test framework</a><ul>
|
<li><a href="#using-make-test-the-run-test-framework">Using "make test" (the run-test framework)</a><ul>
|
||||||
<li><a href="#configuration">Configuration</a></li>
|
<li><a href="#configuration">Configuration</a></li>
|
||||||
</ul></li>
|
</ul></li>
|
||||||
<li><a href="#test-selection">Test selection</a><ul>
|
<li><a href="#test-selection">Test selection</a><ul>
|
||||||
<li><a href="#jtreg">JTReg</a></li>
|
<li><a href="#jtreg">JTReg</a></li>
|
||||||
<li><a href="#gtest">Gtest</a></li>
|
<li><a href="#gtest">Gtest</a></li>
|
||||||
|
<li><a href="#microbenchmarks">Microbenchmarks</a></li>
|
||||||
|
<li><a href="#special-tests">Special tests</a></li>
|
||||||
</ul></li>
|
</ul></li>
|
||||||
<li><a href="#test-results-and-summary">Test results and summary</a></li>
|
<li><a href="#test-results-and-summary">Test results and summary</a></li>
|
||||||
<li><a href="#test-suite-control">Test suite control</a><ul>
|
<li><a href="#test-suite-control">Test suite control</a><ul>
|
||||||
<li><a href="#jtreg-keywords">JTReg keywords</a></li>
|
<li><a href="#jtreg-keywords">JTReg keywords</a></li>
|
||||||
<li><a href="#gtest-keywords">Gtest keywords</a></li>
|
<li><a href="#gtest-keywords">Gtest keywords</a></li>
|
||||||
|
<li><a href="#microbenchmark-keywords">Microbenchmark keywords</a></li>
|
||||||
</ul></li>
|
</ul></li>
|
||||||
</ul>
|
</ul>
|
||||||
</nav>
|
</nav>
|
||||||
<h2 id="using-the-run-test-framework">Using the run-test framework</h2>
|
<h2 id="using-make-test-the-run-test-framework">Using "make test" (the run-test framework)</h2>
|
||||||
<p>This new way of running tests is developer-centric. It assumes that you have built a JDK locally and want to test it. Running common test targets is simple, and more complex ad-hoc combination of tests is possible. The user interface is forgiving, and clearly report errors it cannot resolve.</p>
|
<p>This new way of running tests is developer-centric. It assumes that you have built a JDK locally and want to test it. Running common test targets is simple, and more complex ad-hoc combination of tests is possible. The user interface is forgiving, and clearly report errors it cannot resolve.</p>
|
||||||
<p>The main target “run-test” uses the jdk-image as the tested product. There is also an alternate target “exploded-run-test” that uses the exploded image instead. Not all tests will run successfully on the exploded image, but using this target can greatly improve rebuild times for certain workflows.</p>
|
<p>The main target <code>test</code> uses the jdk-image as the tested product. There is also an alternate target <code>exploded-test</code> that uses the exploded image instead. Not all tests will run successfully on the exploded image, but using this target can greatly improve rebuild times for certain workflows.</p>
|
||||||
|
<p>Previously, <code>make test</code> was used invoke an old system for running test, and <code>make run-test</code> was used for the new test framework. For backward compatibility with scripts and muscle memory, <code>run-test</code> (and variants like <code>exploded-run-test</code> or <code>run-test-tier1</code>) are kept as aliases. The old system can still be accessed for some time using <code>cd test && make</code>.</p>
|
||||||
<p>Some example command-lines:</p>
|
<p>Some example command-lines:</p>
|
||||||
<pre><code>$ make run-test-tier1
|
<pre><code>$ make test-tier1
|
||||||
$ make run-test-jdk_lang JTREG="JOBS=8"
|
$ make test-jdk_lang JTREG="JOBS=8"
|
||||||
$ make run-test TEST=jdk_lang
|
$ make test TEST=jdk_lang
|
||||||
$ make run-test-only TEST="gtest:LogTagSet gtest:LogTagSetDescriptions" GTEST="REPEAT=-1"
|
$ make test-only TEST="gtest:LogTagSet gtest:LogTagSetDescriptions" GTEST="REPEAT=-1"
|
||||||
$ make run-test TEST="hotspot:hotspot_gc" JTREG="JOBS=1;TIMEOUT=8;VM_OPTIONS=-XshowSettings -Xlog:gc+ref=debug"
|
$ make test TEST="hotspot:hotspot_gc" JTREG="JOBS=1;TIMEOUT=8;VM_OPTIONS=-XshowSettings -Xlog:gc+ref=debug"
|
||||||
$ make run-test TEST="jtreg:test/hotspot:hotspot_gc test/hotspot/jtreg/native_sanity/JniVersion.java"
|
$ make test TEST="jtreg:test/hotspot:hotspot_gc test/hotspot/jtreg/native_sanity/JniVersion.java"
|
||||||
$ make exploded-run-test TEST=tier2</code></pre>
|
$ make test TEST="micro:java.lang.reflect" MICRO="FORK=1;WARMUP_ITER=2"
|
||||||
|
$ make exploded-test TEST=tier2</code></pre>
|
||||||
<h3 id="configuration">Configuration</h3>
|
<h3 id="configuration">Configuration</h3>
|
||||||
<p>To be able to run JTReg tests, <code>configure</code> needs to know where to find the JTReg test framework. If it is not picked up automatically by configure, use the <code>--with-jtreg=<path to jtreg home></code> option to point to the JTReg framework. Note that this option should point to the JTReg home, i.e. the top directory, containing <code>lib/jtreg.jar</code> etc. (An alternative is to set the <code>JT_HOME</code> environment variable to point to the JTReg home before running <code>configure</code>.)</p>
|
<p>To be able to run JTReg tests, <code>configure</code> needs to know where to find the JTReg test framework. If it is not picked up automatically by configure, use the <code>--with-jtreg=<path to jtreg home></code> option to point to the JTReg framework. Note that this option should point to the JTReg home, i.e. the top directory, containing <code>lib/jtreg.jar</code> etc. (An alternative is to set the <code>JT_HOME</code> environment variable to point to the JTReg home before running <code>configure</code>.)</p>
|
||||||
|
<p>To be able to run microbenchmarks, <code>configure</code> needs to know where to find the JMH dependency. Use <code>--with-jmh=<path to JMH jars></code> to point to a directory containing the core JMH and transitive dependencies. The recommended dependencies can be retrieved by running <code>sh make/devkit/createJMHBundle.sh</code>, after which <code>--with-jmh=build/jmh/jars</code> should work.</p>
|
||||||
<h2 id="test-selection">Test selection</h2>
|
<h2 id="test-selection">Test selection</h2>
|
||||||
<p>All functionality is available using the run-test make target. In this use case, the test or tests to be executed is controlled using the <code>TEST</code> variable. To speed up subsequent test runs with no source code changes, run-test-only can be used instead, which do not depend on the source and test image build.</p>
|
<p>All functionality is available using the <code>test</code> make target. In this use case, the test or tests to be executed is controlled using the <code>TEST</code> variable. To speed up subsequent test runs with no source code changes, <code>test-only</code> can be used instead, which do not depend on the source and test image build.</p>
|
||||||
<p>For some common top-level tests, direct make targets have been generated. This includes all JTReg test groups, the hotspot gtest, and custom tests (if present). This means that <code>make run-test-tier1</code> is equivalent to <code>make run-test TEST="tier1"</code>, but the latter is more tab-completion friendly. For more complex test runs, the <code>run-test TEST="x"</code> solution needs to be used.</p>
|
<p>For some common top-level tests, direct make targets have been generated. This includes all JTReg test groups, the hotspot gtest, and custom tests (if present). This means that <code>make test-tier1</code> is equivalent to <code>make test TEST="tier1"</code>, but the latter is more tab-completion friendly. For more complex test runs, the <code>test TEST="x"</code> solution needs to be used.</p>
|
||||||
<p>The test specifications given in <code>TEST</code> is parsed into fully qualified test descriptors, which clearly and unambigously show which tests will be run. As an example, <code>:tier1</code> will expand to <code>jtreg:$(TOPDIR)/test/hotspot/jtreg:tier1 jtreg:$(TOPDIR)/test/jdk:tier1 jtreg:$(TOPDIR)/test/langtools:tier1 jtreg:$(TOPDIR)/test/nashorn:tier1 jtreg:$(TOPDIR)/test/jaxp:tier1</code>. You can always submit a list of fully qualified test descriptors in the <code>TEST</code> variable if you want to shortcut the parser.</p>
|
<p>The test specifications given in <code>TEST</code> is parsed into fully qualified test descriptors, which clearly and unambigously show which tests will be run. As an example, <code>:tier1</code> will expand to <code>jtreg:$(TOPDIR)/test/hotspot/jtreg:tier1 jtreg:$(TOPDIR)/test/jdk:tier1 jtreg:$(TOPDIR)/test/langtools:tier1 jtreg:$(TOPDIR)/test/nashorn:tier1 jtreg:$(TOPDIR)/test/jaxp:tier1</code>. You can always submit a list of fully qualified test descriptors in the <code>TEST</code> variable if you want to shortcut the parser.</p>
|
||||||
<h3 id="jtreg">JTReg</h3>
|
<h3 id="jtreg">JTReg</h3>
|
||||||
<p>JTReg tests can be selected either by picking a JTReg test group, or a selection of files or directories containing JTReg tests.</p>
|
<p>JTReg tests can be selected either by picking a JTReg test group, or a selection of files or directories containing JTReg tests.</p>
|
||||||
@@ -63,7 +69,17 @@ $ make exploded-run-test TEST=tier2</code></pre>
|
|||||||
<h3 id="gtest">Gtest</h3>
|
<h3 id="gtest">Gtest</h3>
|
||||||
<p>Since the Hotspot Gtest suite is so quick, the default is to run all tests. This is specified by just <code>gtest</code>, or as a fully qualified test descriptor <code>gtest:all</code>.</p>
|
<p>Since the Hotspot Gtest suite is so quick, the default is to run all tests. This is specified by just <code>gtest</code>, or as a fully qualified test descriptor <code>gtest:all</code>.</p>
|
||||||
<p>If you want, you can single out an individual test or a group of tests, for instance <code>gtest:LogDecorations</code> or <code>gtest:LogDecorations.level_test_vm</code>. This can be particularly useful if you want to run a shaky test repeatedly.</p>
|
<p>If you want, you can single out an individual test or a group of tests, for instance <code>gtest:LogDecorations</code> or <code>gtest:LogDecorations.level_test_vm</code>. This can be particularly useful if you want to run a shaky test repeatedly.</p>
|
||||||
<p>For Gtest, there is a separate test suite for each JVM variant. The JVM variant is defined by adding <code>/<variant></code> to the test descriptor, e.g. <code>gtest:Log/client</code>. If you specify no variant, gtest will run once for each JVM variant present (e.g. server, client). So if you only have the server JVM present, then <code>gtest:all</code> will be equivalent to <code>gtest:all/server</code>.</p>
|
<p>For Gtest, there is a separate test suite for each JVM variant. The JVM variant is defined by adding <code>/<variant></code> to the test descriptor, e.g. <code>gtest:Log/client</code>. If you specify no variant, gtest will run once for each JVM variant present (e.g. server, client). So if you only have the server JVM present, then <code>gtest:all</code> will be equivalent to <code>gtest:all/server</code>.</p>
|
||||||
|
<h3 id="microbenchmarks">Microbenchmarks</h3>
|
||||||
|
<p>Which microbenchmarks to run is selected using a regular expression following the <code>micro:</code> test descriptor, e.g., <code>micro:java.lang.reflect</code>. This delegates the test selection to JMH, meaning package name, class name and even benchmark method names can be used to select tests.</p>
|
||||||
|
<p>Using special characters like <code>|</code> in the regular expression is possible, but needs to be escaped multiple times: <code>micro:ArrayCopy\\\\\|reflect</code>.</p>
|
||||||
|
<h3 id="special-tests">Special tests</h3>
|
||||||
|
<p>A handful of odd tests that are not covered by any other testing framework are accessible using the <code>special:</code> test descriptor. Currently, this includes <code>failure-handler</code> and <code>make</code>.</p>
|
||||||
|
<ul>
|
||||||
|
<li><p>Failure handler testing is run using <code>special:failure-handler</code> or just <code>failure-handler</code> as test descriptor.</p></li>
|
||||||
|
<li><p>Tests for the build system, including both makefiles and related functionality, is run using <code>special:make</code> or just <code>make</code> as test descriptor. This is equivalent to <code>special:make:all</code>.</p>
|
||||||
|
<p>A specific make test can be run by supplying it as argument, e.g. <code>special:make:idea</code>. As a special syntax, this can also be expressed as <code>make-idea</code>, which allows for command lines as <code>make test-make-idea</code>.</p></li>
|
||||||
|
</ul>
|
||||||
<h2 id="test-results-and-summary">Test results and summary</h2>
|
<h2 id="test-results-and-summary">Test results and summary</h2>
|
||||||
<p>At the end of the test run, a summary of all tests run will be presented. This will have a consistent look, regardless of what test suites were used. This is a sample summary:</p>
|
<p>At the end of the test run, a summary of all tests run will be presented. This will have a consistent look, regardless of what test suites were used. This is a sample summary:</p>
|
||||||
<pre><code>==============================
|
<pre><code>==============================
|
||||||
@@ -77,14 +93,14 @@ Test summary
|
|||||||
TEST FAILURE</code></pre>
|
TEST FAILURE</code></pre>
|
||||||
<p>Tests where the number of TOTAL tests does not equal the number of PASSed tests will be considered a test failure. These are marked with the <code>>> ... <<</code> marker for easy identification.</p>
|
<p>Tests where the number of TOTAL tests does not equal the number of PASSed tests will be considered a test failure. These are marked with the <code>>> ... <<</code> marker for easy identification.</p>
|
||||||
<p>The classification of non-passed tests differs a bit between test suites. In the summary, ERROR is used as a catch-all for tests that neither passed nor are classified as failed by the framework. This might indicate test framework error, timeout or other problems.</p>
|
<p>The classification of non-passed tests differs a bit between test suites. In the summary, ERROR is used as a catch-all for tests that neither passed nor are classified as failed by the framework. This might indicate test framework error, timeout or other problems.</p>
|
||||||
<p>In case of test failures, <code>make run-test</code> will exit with a non-zero exit value.</p>
|
<p>In case of test failures, <code>make test</code> will exit with a non-zero exit value.</p>
|
||||||
<p>All tests have their result stored in <code>build/$BUILD/test-results/$TEST_ID</code>, where TEST_ID is a path-safe conversion from the fully qualified test descriptor, e.g. for <code>jtreg:jdk/test:tier1</code> the TEST_ID is <code>jtreg_jdk_test_tier1</code>. This path is also printed in the log at the end of the test run.</p>
|
<p>All tests have their result stored in <code>build/$BUILD/test-results/$TEST_ID</code>, where TEST_ID is a path-safe conversion from the fully qualified test descriptor, e.g. for <code>jtreg:jdk/test:tier1</code> the TEST_ID is <code>jtreg_jdk_test_tier1</code>. This path is also printed in the log at the end of the test run.</p>
|
||||||
<p>Additional work data is stored in <code>build/$BUILD/test-support/$TEST_ID</code>. For some frameworks, this directory might contain information that is useful in determining the cause of a failed test.</p>
|
<p>Additional work data is stored in <code>build/$BUILD/test-support/$TEST_ID</code>. For some frameworks, this directory might contain information that is useful in determining the cause of a failed test.</p>
|
||||||
<h2 id="test-suite-control">Test suite control</h2>
|
<h2 id="test-suite-control">Test suite control</h2>
|
||||||
<p>It is possible to control various aspects of the test suites using make control variables.</p>
|
<p>It is possible to control various aspects of the test suites using make control variables.</p>
|
||||||
<p>These variables use a keyword=value approach to allow multiple values to be set. So, for instance, <code>JTREG="JOBS=1;TIMEOUT=8"</code> will set the JTReg concurrency level to 1 and the timeout factor to 8. This is equivalent to setting <code>JTREG_JOBS=1 JTREG_TIMEOUT=8</code>, but using the keyword format means that the <code>JTREG</code> variable is parsed and verified for correctness, so <code>JTREG="TMIEOUT=8"</code> would give an error, while <code>JTREG_TMIEOUT=8</code> would just pass unnoticed.</p>
|
<p>These variables use a keyword=value approach to allow multiple values to be set. So, for instance, <code>JTREG="JOBS=1;TIMEOUT=8"</code> will set the JTReg concurrency level to 1 and the timeout factor to 8. This is equivalent to setting <code>JTREG_JOBS=1 JTREG_TIMEOUT=8</code>, but using the keyword format means that the <code>JTREG</code> variable is parsed and verified for correctness, so <code>JTREG="TMIEOUT=8"</code> would give an error, while <code>JTREG_TMIEOUT=8</code> would just pass unnoticed.</p>
|
||||||
<p>To separate multiple keyword=value pairs, use <code>;</code> (semicolon). Since the shell normally eats <code>;</code>, the recommended usage is to write the assignment inside qoutes, e.g. <code>JTREG="...;..."</code>. This will also make sure spaces are preserved, as in <code>JTREG="VM_OPTIONS=-XshowSettings -Xlog:gc+ref=debug"</code>.</p>
|
<p>To separate multiple keyword=value pairs, use <code>;</code> (semicolon). Since the shell normally eats <code>;</code>, the recommended usage is to write the assignment inside qoutes, e.g. <code>JTREG="...;..."</code>. This will also make sure spaces are preserved, as in <code>JTREG="VM_OPTIONS=-XshowSettings -Xlog:gc+ref=debug"</code>.</p>
|
||||||
<p>(Other ways are possible, e.g. using backslash: <code>JTREG=JOBS=1\;TIMEOUT=8</code>. Also, as a special technique, the string <code>%20</code> will be replaced with space for certain options, e.g. <code>JTREG=VM_OPTIONS=-XshowSettings%20-Xlog:gc+ref=debug</code>. This can be useful if you have layers of scripts and have trouble getting proper quoting of command line arguments through.)</p>
|
<p>(Other ways are possible, e.g. using backslash: <code>JTREG=JOBS=1\;TIMEOUT=8</code>. Also, as a special technique, the string <code>%20</code> will be replaced with space for certain options, e.g. <code>JTREG=VM_OPTIONS=-XshowSettings%20-Xlog:gc+ref=debug</code>. This can be useful if you have layers of scripts and have trouble getting proper quoting of command line arguments through.)</p>
|
||||||
<p>As far as possible, the names of the keywords have been standardized between test suites.</p>
|
<p>As far as possible, the names of the keywords have been standardized between test suites.</p>
|
||||||
<h3 id="jtreg-keywords">JTReg keywords</h3>
|
<h3 id="jtreg-keywords">JTReg keywords</h3>
|
||||||
<h4 id="jobs">JOBS</h4>
|
<h4 id="jobs">JOBS</h4>
|
||||||
@@ -123,5 +139,22 @@ TEST FAILURE</code></pre>
|
|||||||
<h4 id="options-1">OPTIONS</h4>
|
<h4 id="options-1">OPTIONS</h4>
|
||||||
<p>Additional options to the Gtest test framework.</p>
|
<p>Additional options to the Gtest test framework.</p>
|
||||||
<p>Use <code>GTEST="OPTIONS=--help"</code> to see all available Gtest options.</p>
|
<p>Use <code>GTEST="OPTIONS=--help"</code> to see all available Gtest options.</p>
|
||||||
|
<h3 id="microbenchmark-keywords">Microbenchmark keywords</h3>
|
||||||
|
<h4 id="fork">FORK</h4>
|
||||||
|
<p>Override the number of benchmark forks to spawn. Same as specifying <code>-f <num></code>.</p>
|
||||||
|
<h4 id="iter">ITER</h4>
|
||||||
|
<p>Number of measurement iterations per fork. Same as specifying <code>-i <num></code>.</p>
|
||||||
|
<h4 id="time">TIME</h4>
|
||||||
|
<p>Amount of time to spend in each measurement iteration, in seconds. Same as specifying <code>-r <num></code></p>
|
||||||
|
<h4 id="warmup_iter">WARMUP_ITER</h4>
|
||||||
|
<p>Number of warmup iterations to run before the measurement phase in each fork. Same as specifying <code>-wi <num></code>.</p>
|
||||||
|
<h4 id="warmup_time">WARMUP_TIME</h4>
|
||||||
|
<p>Amount of time to spend in each warmup iteration. Same as specifying <code>-w <num></code>.</p>
|
||||||
|
<h4 id="results_format">RESULTS_FORMAT</h4>
|
||||||
|
<p>Specify to have the test run save a log of the values. Accepts the same values as <code>-rff</code>, i.e., <code>text</code>, <code>csv</code>, <code>scsv</code>, <code>json</code>, or <code>latex</code>.</p>
|
||||||
|
<h4 id="vm_options-1">VM_OPTIONS</h4>
|
||||||
|
<p>Additional VM arguments to provide to forked off VMs. Same as <code>-jvmArgs <args></code></p>
|
||||||
|
<h4 id="options-2">OPTIONS</h4>
|
||||||
|
<p>Additional arguments to send to JMH.</p>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
103
doc/testing.md
103
doc/testing.md
@@ -1,26 +1,33 @@
|
|||||||
% Testing the JDK
|
% Testing the JDK
|
||||||
|
|
||||||
## Using the run-test framework
|
## Using "make test" (the run-test framework)
|
||||||
|
|
||||||
This new way of running tests is developer-centric. It assumes that you have
|
This new way of running tests is developer-centric. It assumes that you have
|
||||||
built a JDK locally and want to test it. Running common test targets is simple,
|
built a JDK locally and want to test it. Running common test targets is simple,
|
||||||
and more complex ad-hoc combination of tests is possible. The user interface is
|
and more complex ad-hoc combination of tests is possible. The user interface is
|
||||||
forgiving, and clearly report errors it cannot resolve.
|
forgiving, and clearly report errors it cannot resolve.
|
||||||
|
|
||||||
The main target "run-test" uses the jdk-image as the tested product. There is
|
The main target `test` uses the jdk-image as the tested product. There is
|
||||||
also an alternate target "exploded-run-test" that uses the exploded image
|
also an alternate target `exploded-test` that uses the exploded image
|
||||||
instead. Not all tests will run successfully on the exploded image, but using
|
instead. Not all tests will run successfully on the exploded image, but using
|
||||||
this target can greatly improve rebuild times for certain workflows.
|
this target can greatly improve rebuild times for certain workflows.
|
||||||
|
|
||||||
|
Previously, `make test` was used invoke an old system for running test, and
|
||||||
|
`make run-test` was used for the new test framework. For backward compatibility
|
||||||
|
with scripts and muscle memory, `run-test` (and variants like
|
||||||
|
`exploded-run-test` or `run-test-tier1`) are kept as aliases. The old system
|
||||||
|
can still be accessed for some time using `cd test && make`.
|
||||||
|
|
||||||
Some example command-lines:
|
Some example command-lines:
|
||||||
|
|
||||||
$ make run-test-tier1
|
$ make test-tier1
|
||||||
$ make run-test-jdk_lang JTREG="JOBS=8"
|
$ make test-jdk_lang JTREG="JOBS=8"
|
||||||
$ make run-test TEST=jdk_lang
|
$ make test TEST=jdk_lang
|
||||||
$ make run-test-only TEST="gtest:LogTagSet gtest:LogTagSetDescriptions" GTEST="REPEAT=-1"
|
$ make test-only TEST="gtest:LogTagSet gtest:LogTagSetDescriptions" GTEST="REPEAT=-1"
|
||||||
$ make run-test TEST="hotspot:hotspot_gc" JTREG="JOBS=1;TIMEOUT=8;VM_OPTIONS=-XshowSettings -Xlog:gc+ref=debug"
|
$ make test TEST="hotspot:hotspot_gc" JTREG="JOBS=1;TIMEOUT=8;VM_OPTIONS=-XshowSettings -Xlog:gc+ref=debug"
|
||||||
$ make run-test TEST="jtreg:test/hotspot:hotspot_gc test/hotspot/jtreg/native_sanity/JniVersion.java"
|
$ make test TEST="jtreg:test/hotspot:hotspot_gc test/hotspot/jtreg/native_sanity/JniVersion.java"
|
||||||
$ make exploded-run-test TEST=tier2
|
$ make test TEST="micro:java.lang.reflect" MICRO="FORK=1;WARMUP_ITER=2"
|
||||||
|
$ make exploded-test TEST=tier2
|
||||||
|
|
||||||
### Configuration
|
### Configuration
|
||||||
|
|
||||||
@@ -31,18 +38,24 @@ Note that this option should point to the JTReg home, i.e. the top directory,
|
|||||||
containing `lib/jtreg.jar` etc. (An alternative is to set the `JT_HOME`
|
containing `lib/jtreg.jar` etc. (An alternative is to set the `JT_HOME`
|
||||||
environment variable to point to the JTReg home before running `configure`.)
|
environment variable to point to the JTReg home before running `configure`.)
|
||||||
|
|
||||||
|
To be able to run microbenchmarks, `configure` needs to know where to find
|
||||||
|
the JMH dependency. Use `--with-jmh=<path to JMH jars>` to point to a directory
|
||||||
|
containing the core JMH and transitive dependencies. The recommended dependencies
|
||||||
|
can be retrieved by running `sh make/devkit/createJMHBundle.sh`, after which
|
||||||
|
`--with-jmh=build/jmh/jars` should work.
|
||||||
|
|
||||||
## Test selection
|
## Test selection
|
||||||
|
|
||||||
All functionality is available using the run-test make target. In this use
|
All functionality is available using the `test` make target. In this use case,
|
||||||
case, the test or tests to be executed is controlled using the `TEST` variable.
|
the test or tests to be executed is controlled using the `TEST` variable. To
|
||||||
To speed up subsequent test runs with no source code changes, run-test-only can
|
speed up subsequent test runs with no source code changes, `test-only` can be
|
||||||
be used instead, which do not depend on the source and test image build.
|
used instead, which do not depend on the source and test image build.
|
||||||
|
|
||||||
For some common top-level tests, direct make targets have been generated. This
|
For some common top-level tests, direct make targets have been generated. This
|
||||||
includes all JTReg test groups, the hotspot gtest, and custom tests (if
|
includes all JTReg test groups, the hotspot gtest, and custom tests (if
|
||||||
present). This means that `make run-test-tier1` is equivalent to `make run-test
|
present). This means that `make test-tier1` is equivalent to `make test
|
||||||
TEST="tier1"`, but the latter is more tab-completion friendly. For more complex
|
TEST="tier1"`, but the latter is more tab-completion friendly. For more complex
|
||||||
test runs, the `run-test TEST="x"` solution needs to be used.
|
test runs, the `test TEST="x"` solution needs to be used.
|
||||||
|
|
||||||
The test specifications given in `TEST` is parsed into fully qualified test
|
The test specifications given in `TEST` is parsed into fully qualified test
|
||||||
descriptors, which clearly and unambigously show which tests will be run. As an
|
descriptors, which clearly and unambigously show which tests will be run. As an
|
||||||
@@ -98,6 +111,33 @@ is defined by adding `/<variant>` to the test descriptor, e.g.
|
|||||||
variant present (e.g. server, client). So if you only have the server JVM
|
variant present (e.g. server, client). So if you only have the server JVM
|
||||||
present, then `gtest:all` will be equivalent to `gtest:all/server`.
|
present, then `gtest:all` will be equivalent to `gtest:all/server`.
|
||||||
|
|
||||||
|
### Microbenchmarks
|
||||||
|
|
||||||
|
Which microbenchmarks to run is selected using a regular expression
|
||||||
|
following the `micro:` test descriptor, e.g., `micro:java.lang.reflect`. This
|
||||||
|
delegates the test selection to JMH, meaning package name, class name and even
|
||||||
|
benchmark method names can be used to select tests.
|
||||||
|
|
||||||
|
Using special characters like `|` in the regular expression is possible, but
|
||||||
|
needs to be escaped multiple times: `micro:ArrayCopy\\\\\|reflect`.
|
||||||
|
|
||||||
|
### Special tests
|
||||||
|
|
||||||
|
A handful of odd tests that are not covered by any other testing framework are
|
||||||
|
accessible using the `special:` test descriptor. Currently, this includes
|
||||||
|
`failure-handler` and `make`.
|
||||||
|
|
||||||
|
* Failure handler testing is run using `special:failure-handler` or just
|
||||||
|
`failure-handler` as test descriptor.
|
||||||
|
|
||||||
|
* Tests for the build system, including both makefiles and related
|
||||||
|
functionality, is run using `special:make` or just `make` as test
|
||||||
|
descriptor. This is equivalent to `special:make:all`.
|
||||||
|
|
||||||
|
A specific make test can be run by supplying it as argument, e.g.
|
||||||
|
`special:make:idea`. As a special syntax, this can also be expressed as
|
||||||
|
`make-idea`, which allows for command lines as `make test-make-idea`.
|
||||||
|
|
||||||
## Test results and summary
|
## Test results and summary
|
||||||
|
|
||||||
At the end of the test run, a summary of all tests run will be presented. This
|
At the end of the test run, a summary of all tests run will be presented. This
|
||||||
@@ -123,7 +163,7 @@ the summary, ERROR is used as a catch-all for tests that neither passed nor are
|
|||||||
classified as failed by the framework. This might indicate test framework
|
classified as failed by the framework. This might indicate test framework
|
||||||
error, timeout or other problems.
|
error, timeout or other problems.
|
||||||
|
|
||||||
In case of test failures, `make run-test` will exit with a non-zero exit value.
|
In case of test failures, `make test` will exit with a non-zero exit value.
|
||||||
|
|
||||||
All tests have their result stored in `build/$BUILD/test-results/$TEST_ID`,
|
All tests have their result stored in `build/$BUILD/test-results/$TEST_ID`,
|
||||||
where TEST_ID is a path-safe conversion from the fully qualified test
|
where TEST_ID is a path-safe conversion from the fully qualified test
|
||||||
@@ -230,6 +270,35 @@ Additional options to the Gtest test framework.
|
|||||||
|
|
||||||
Use `GTEST="OPTIONS=--help"` to see all available Gtest options.
|
Use `GTEST="OPTIONS=--help"` to see all available Gtest options.
|
||||||
|
|
||||||
|
### Microbenchmark keywords
|
||||||
|
|
||||||
|
#### FORK
|
||||||
|
Override the number of benchmark forks to spawn. Same as specifying `-f <num>`.
|
||||||
|
|
||||||
|
#### ITER
|
||||||
|
Number of measurement iterations per fork. Same as specifying `-i <num>`.
|
||||||
|
|
||||||
|
#### TIME
|
||||||
|
Amount of time to spend in each measurement iteration, in seconds. Same as
|
||||||
|
specifying `-r <num>`
|
||||||
|
|
||||||
|
#### WARMUP_ITER
|
||||||
|
Number of warmup iterations to run before the measurement phase in each fork.
|
||||||
|
Same as specifying `-wi <num>`.
|
||||||
|
|
||||||
|
#### WARMUP_TIME
|
||||||
|
Amount of time to spend in each warmup iteration. Same as specifying `-w <num>`.
|
||||||
|
|
||||||
|
#### RESULTS_FORMAT
|
||||||
|
Specify to have the test run save a log of the values. Accepts the same values
|
||||||
|
as `-rff`, i.e., `text`, `csv`, `scsv`, `json`, or `latex`.
|
||||||
|
|
||||||
|
#### VM_OPTIONS
|
||||||
|
Additional VM arguments to provide to forked off VMs. Same as `-jvmArgs <args>`
|
||||||
|
|
||||||
|
#### OPTIONS
|
||||||
|
Additional arguments to send to JMH.
|
||||||
|
|
||||||
---
|
---
|
||||||
# Override some definitions in the global css file that are not optimal for
|
# Override some definitions in the global css file that are not optimal for
|
||||||
# this document.
|
# this document.
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2015, 2018, 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
|
||||||
@@ -42,7 +42,7 @@ MODULES_SYMBOLS_FILES := $(foreach module, $(EXPORTED_SYMBOLS_MODULES), \
|
|||||||
|
|
||||||
$(GLOBAL_SYMBOLS_FILE): $(MODULES_SYMBOLS_FILES)
|
$(GLOBAL_SYMBOLS_FILE): $(MODULES_SYMBOLS_FILES)
|
||||||
$(call LogInfo, Generating global exported.symbols file)
|
$(call LogInfo, Generating global exported.symbols file)
|
||||||
$(MKDIR) -p $(@D)
|
$(call MakeTargetDir)
|
||||||
$(CAT) $^ > $@
|
$(CAT) $^ > $@
|
||||||
|
|
||||||
TARGETS += $(GLOBAL_SYMBOLS_FILE)
|
TARGETS += $(GLOBAL_SYMBOLS_FILE)
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -70,6 +70,7 @@ define SetupBundleFileBody
|
|||||||
$$(call SetIfEmpty, $1_UNZIP_DEBUGINFO, false)
|
$$(call SetIfEmpty, $1_UNZIP_DEBUGINFO, false)
|
||||||
|
|
||||||
$(BUNDLES_OUTPUTDIR)/$$($1_BUNDLE_NAME): $$($1_FILES)
|
$(BUNDLES_OUTPUTDIR)/$$($1_BUNDLE_NAME): $$($1_FILES)
|
||||||
|
$$(call MakeTargetDir)
|
||||||
# If any of the files contain a space in the file name, CacheFind
|
# If any of the files contain a space in the file name, CacheFind
|
||||||
# will have replaced it with ?. Tar does not accept that so need to
|
# will have replaced it with ?. Tar does not accept that so need to
|
||||||
# switch it back.
|
# switch it back.
|
||||||
@@ -79,7 +80,6 @@ define SetupBundleFileBody
|
|||||||
$$(CAT) $$($1_$$d_LIST_FILE) | $$(TR) '?' ' ' > $$($1_$$d_LIST_FILE).tmp \
|
$$(CAT) $$($1_$$d_LIST_FILE) | $$(TR) '?' ' ' > $$($1_$$d_LIST_FILE).tmp \
|
||||||
&& $(MV) $$($1_$$d_LIST_FILE).tmp $$($1_$$d_LIST_FILE) $$(NEWLINE) \
|
&& $(MV) $$($1_$$d_LIST_FILE).tmp $$($1_$$d_LIST_FILE) $$(NEWLINE) \
|
||||||
)
|
)
|
||||||
$$(call MakeDir, $$(@D))
|
|
||||||
ifneq ($$($1_SPECIAL_INCLUDES), )
|
ifneq ($$($1_SPECIAL_INCLUDES), )
|
||||||
$$(foreach i, $$($1_SPECIAL_INCLUDES), \
|
$$(foreach i, $$($1_SPECIAL_INCLUDES), \
|
||||||
$$(foreach d, $$($1_BASE_DIRS), \
|
$$(foreach d, $$($1_BASE_DIRS), \
|
||||||
@@ -262,6 +262,21 @@ endif
|
|||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
ifneq ($(filter jcov-bundles, $(MAKECMDGOALS)), )
|
||||||
|
JCOV_BUNDLE_FILES := $(call CacheFind, $(JCOV_IMAGE_DIR))
|
||||||
|
|
||||||
|
$(eval $(call SetupBundleFile, BUILD_JCOV_BUNDLE, \
|
||||||
|
BUNDLE_NAME := $(JCOV_BUNDLE_NAME), \
|
||||||
|
FILES := $(JCOV_BUNDLE_FILES), \
|
||||||
|
BASE_DIRS := $(JCOV_IMAGE_DIR), \
|
||||||
|
SUBDIR := $(JDK_BUNDLE_SUBDIR), \
|
||||||
|
))
|
||||||
|
|
||||||
|
JCOV_TARGETS += $(BUILD_JCOV_BUNDLE)
|
||||||
|
endif
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
|
||||||
# Hook to include the corresponding custom file, if present.
|
# Hook to include the corresponding custom file, if present.
|
||||||
$(eval $(call IncludeCustomExtension, Bundles.gmk))
|
$(eval $(call IncludeCustomExtension, Bundles.gmk))
|
||||||
|
|
||||||
@@ -270,5 +285,6 @@ $(eval $(call IncludeCustomExtension, Bundles.gmk))
|
|||||||
product-bundles: $(PRODUCT_TARGETS)
|
product-bundles: $(PRODUCT_TARGETS)
|
||||||
test-bundles: $(TEST_TARGETS)
|
test-bundles: $(TEST_TARGETS)
|
||||||
docs-bundles: $(DOCS_TARGETS)
|
docs-bundles: $(DOCS_TARGETS)
|
||||||
|
jcov-bundles: $(JCOV_TARGETS)
|
||||||
|
|
||||||
.PHONY: all default product-bundles test-bundles docs-bundles
|
.PHONY: all default product-bundles test-bundles docs-bundles jcov-bundles
|
||||||
|
|||||||
60
make/CompileCommands.gmk
Normal file
60
make/CompileCommands.gmk
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
|
#
|
||||||
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
|
# under the terms of the GNU General Public License version 2 only, as
|
||||||
|
# published by the Free Software Foundation. Oracle designates this
|
||||||
|
# particular file as subject to the "Classpath" exception as provided
|
||||||
|
# by Oracle in the LICENSE file that accompanied this code.
|
||||||
|
#
|
||||||
|
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
# version 2 for more details (a copy is included in the LICENSE file that
|
||||||
|
# accompanied this code).
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License version
|
||||||
|
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||||
|
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
#
|
||||||
|
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||||
|
# or visit www.oracle.com if you need additional information or have any
|
||||||
|
# questions.
|
||||||
|
#
|
||||||
|
|
||||||
|
default: all
|
||||||
|
|
||||||
|
include $(SPEC)
|
||||||
|
include MakeBase.gmk
|
||||||
|
|
||||||
|
# When FIXPATH is set, let it process the file to make sure all paths are usable
|
||||||
|
# by system native tools. The FIXPATH tool assumes arguments preceeded by an @
|
||||||
|
# character points to a text file containing further arguments (similar to a
|
||||||
|
# linker). It replaces any such arguments with a different temporary filename,
|
||||||
|
# whose contents has been processed to make any paths native. To obtain a
|
||||||
|
# properly processed compile_commands.json, FIXPATH is then made to invoke an
|
||||||
|
# AWK script with the unprocessed json file as the only argument, prepended with
|
||||||
|
# an @ character. The AWK script simply copies the contents of this processed
|
||||||
|
# file.
|
||||||
|
#
|
||||||
|
# The sed command encloses the fragments inside brackets and removes the final
|
||||||
|
# trailing comma.
|
||||||
|
$(OUTPUTDIR)/compile_commands.json: $(wildcard $(MAKESUPPORT_OUTPUTDIR)/compile-commands/*.json)
|
||||||
|
$(call LogWarn, Updating compile_commands.json)
|
||||||
|
$(RM) $@
|
||||||
|
$(FIND) $(MAKESUPPORT_OUTPUTDIR)/compile-commands/ -name \*.json | \
|
||||||
|
$(SORT) | $(XARGS) $(CAT) >> $@.tmp
|
||||||
|
$(if $(FIXPATH),$(FIXPATH) $(AWK) 'BEGIN { \
|
||||||
|
tmpfile = substr(ARGV[2],2); \
|
||||||
|
cmd = "$(CP) " "\047" tmpfile "\047" " $@.tmp"; \
|
||||||
|
system(cmd); \
|
||||||
|
}' -- @$@.tmp)
|
||||||
|
$(SED) -e '1s/^/[\$(NEWLINE)/' -e '$(DOLLAR)s/,\s\{0,\}$(DOLLAR)/\$(NEWLINE)]/' $@.tmp > $@
|
||||||
|
$(RM) $@.tmp
|
||||||
|
|
||||||
|
TARGETS += $(OUTPUTDIR)/compile_commands.json
|
||||||
|
|
||||||
|
all: $(TARGETS)
|
||||||
|
|
||||||
|
.PHONY: all
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# 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
|
||||||
|
|||||||
@@ -321,7 +321,7 @@ jdk.jshell_COPY += .jsh .properties
|
|||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
jdk.internal.le_COPY += .properties
|
jdk.internal.le_COPY += .properties .caps .txt
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
@@ -450,21 +450,17 @@ jdk.internal.vm.compiler_ADD_JAVAC_FLAGS += -parameters -XDstringConcat=inline \
|
|||||||
|
|
||||||
jdk.internal.vm.compiler_EXCLUDES += \
|
jdk.internal.vm.compiler_EXCLUDES += \
|
||||||
jdk.internal.vm.compiler.collections.test \
|
jdk.internal.vm.compiler.collections.test \
|
||||||
org.graalvm.compiler.processor \
|
jdk.tools.jaotc.test \
|
||||||
org.graalvm.compiler.core.match.processor \
|
|
||||||
org.graalvm.compiler.nodeinfo.processor \
|
|
||||||
org.graalvm.compiler.options.processor \
|
|
||||||
org.graalvm.compiler.serviceprovider.processor \
|
|
||||||
org.graalvm.compiler.replacements.processor \
|
|
||||||
org.graalvm.compiler.replacements.jdk9.test \
|
|
||||||
org.graalvm.compiler.api.directives.test \
|
org.graalvm.compiler.api.directives.test \
|
||||||
org.graalvm.compiler.api.test \
|
org.graalvm.compiler.api.test \
|
||||||
org.graalvm.compiler.asm.aarch64.test \
|
org.graalvm.compiler.asm.aarch64.test \
|
||||||
org.graalvm.compiler.asm.amd64.test \
|
org.graalvm.compiler.asm.amd64.test \
|
||||||
org.graalvm.compiler.asm.sparc.test \
|
org.graalvm.compiler.asm.sparc.test \
|
||||||
org.graalvm.compiler.asm.test \
|
org.graalvm.compiler.asm.test \
|
||||||
|
org.graalvm.compiler.core.aarch64.test \
|
||||||
org.graalvm.compiler.core.amd64.test \
|
org.graalvm.compiler.core.amd64.test \
|
||||||
org.graalvm.compiler.core.sparc.test \
|
org.graalvm.compiler.core.jdk9.test \
|
||||||
|
org.graalvm.compiler.core.match.processor \
|
||||||
org.graalvm.compiler.core.test \
|
org.graalvm.compiler.core.test \
|
||||||
org.graalvm.compiler.debug.test \
|
org.graalvm.compiler.debug.test \
|
||||||
org.graalvm.compiler.graph.test \
|
org.graalvm.compiler.graph.test \
|
||||||
@@ -477,10 +473,17 @@ jdk.internal.vm.compiler_EXCLUDES += \
|
|||||||
org.graalvm.compiler.lir.test \
|
org.graalvm.compiler.lir.test \
|
||||||
org.graalvm.compiler.loop.test \
|
org.graalvm.compiler.loop.test \
|
||||||
org.graalvm.compiler.microbenchmarks \
|
org.graalvm.compiler.microbenchmarks \
|
||||||
|
org.graalvm.compiler.nodeinfo.processor \
|
||||||
org.graalvm.compiler.nodes.test \
|
org.graalvm.compiler.nodes.test \
|
||||||
|
org.graalvm.compiler.options.processor \
|
||||||
org.graalvm.compiler.options.test \
|
org.graalvm.compiler.options.test \
|
||||||
org.graalvm.compiler.phases.common.test \
|
org.graalvm.compiler.phases.common.test \
|
||||||
|
org.graalvm.compiler.processor \
|
||||||
|
org.graalvm.compiler.replacements.jdk12.test \
|
||||||
|
org.graalvm.compiler.replacements.jdk9.test \
|
||||||
|
org.graalvm.compiler.replacements.processor \
|
||||||
org.graalvm.compiler.replacements.test \
|
org.graalvm.compiler.replacements.test \
|
||||||
|
org.graalvm.compiler.serviceprovider.processor \
|
||||||
org.graalvm.compiler.test \
|
org.graalvm.compiler.test \
|
||||||
org.graalvm.compiler.virtual.bench \
|
org.graalvm.compiler.virtual.bench \
|
||||||
org.graalvm.micro.benchmarks \
|
org.graalvm.micro.benchmarks \
|
||||||
@@ -511,6 +514,10 @@ jdk.aot_ADD_JAVAC_FLAGS += -parameters -XDstringConcat=inline \
|
|||||||
--add-exports jdk.internal.vm.ci/jdk.vm.ci.sparc=jdk.internal.vm.compiler,jdk.aot \
|
--add-exports jdk.internal.vm.ci/jdk.vm.ci.sparc=jdk.internal.vm.compiler,jdk.aot \
|
||||||
#
|
#
|
||||||
|
|
||||||
|
jdk.aot_EXCLUDES += \
|
||||||
|
jdk.tools.jaotc.test
|
||||||
|
#
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
sun.charsets_COPY += .dat
|
sun.charsets_COPY += .dat
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ include $(SPEC)
|
|||||||
include MakeBase.gmk
|
include MakeBase.gmk
|
||||||
include JavaCompilation.gmk
|
include JavaCompilation.gmk
|
||||||
include SetupJavaCompilers.gmk
|
include SetupJavaCompilers.gmk
|
||||||
|
include TextFileProcessing.gmk
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
@@ -46,6 +47,7 @@ $(eval $(call SetupJavaCompilation,BUILD_TOOLS_JDK, \
|
|||||||
SETUP := GENERATE_OLDBYTECODE, \
|
SETUP := GENERATE_OLDBYTECODE, \
|
||||||
SRC := $(BUILD_TOOLS_SRC_DIRS), \
|
SRC := $(BUILD_TOOLS_SRC_DIRS), \
|
||||||
EXCLUDES := \
|
EXCLUDES := \
|
||||||
|
build/tools/classlist \
|
||||||
build/tools/deps \
|
build/tools/deps \
|
||||||
build/tools/docs \
|
build/tools/docs \
|
||||||
build/tools/jigsaw \
|
build/tools/jigsaw \
|
||||||
@@ -86,4 +88,56 @@ TARGETS += $(COMPILE_DEPEND) $(DEPEND_SERVICE_PROVIDER)
|
|||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
# To be able to call the javascript filter when generating man pages using
|
||||||
|
# pandoc, we need to create this executable wrapper script.
|
||||||
|
ifneq ($(PANDOC), )
|
||||||
|
# PANDOC_TROFF_MANPAGE_FILTER is duplicated for export in ToolsJdk.gmk.
|
||||||
|
PANDOC_TROFF_MANPAGE_FILTER := \
|
||||||
|
$(BUILDTOOLS_OUTPUTDIR)/manpages/pandoc-troff-manpage-filter
|
||||||
|
PANDOC_TROFF_MANPAGE_FILTER_SETUP := \
|
||||||
|
$(BUILDTOOLS_OUTPUTDIR)/manpages/_pandoc_troff_manpage_filter_setup.marker
|
||||||
|
|
||||||
|
# Create a usable instance of the wrapper script that calls the pandoc filter
|
||||||
|
# (which is written in javascript).
|
||||||
|
$(eval $(call SetupTextFileProcessing, CREATE_PANDOC_TROFF_MANPAGE_FILTER, \
|
||||||
|
SOURCE_FILES := $(TOPDIR)/make/scripts/pandoc-troff-manpage-filter.sh.template, \
|
||||||
|
OUTPUT_FILE := $(PANDOC_TROFF_MANPAGE_FILTER), \
|
||||||
|
REPLACEMENTS := \
|
||||||
|
@@BOOT_JDK@@ => $(BOOT_JDK) ; \
|
||||||
|
@@TOPDIR@@ => $(TOPDIR) ; \
|
||||||
|
@@JJS_FLAGS@@ => $(addprefix -J, $(JAVA_FLAGS_SMALL)), \
|
||||||
|
))
|
||||||
|
|
||||||
|
# Created script must be made executable
|
||||||
|
$(PANDOC_TROFF_MANPAGE_FILTER_SETUP): $(CREATE_PANDOC_TROFF_MANPAGE_FILTER)
|
||||||
|
$(CHMOD) a+rx $(PANDOC_TROFF_MANPAGE_FILTER)
|
||||||
|
$(TOUCH) $@
|
||||||
|
|
||||||
|
TARGETS += $(PANDOC_TROFF_MANPAGE_FILTER_SETUP)
|
||||||
|
|
||||||
|
# PANDOC_HTML_MANPAGE_FILTER is duplicated for export in ToolsJdk.gmk.
|
||||||
|
PANDOC_HTML_MANPAGE_FILTER := \
|
||||||
|
$(BUILDTOOLS_OUTPUTDIR)/manpages/pandoc-html-manpage-filter
|
||||||
|
PANDOC_HTML_MANPAGE_FILTER_SETUP := \
|
||||||
|
$(BUILDTOOLS_OUTPUTDIR)/manpages/_pandoc_html_manpage_filter_setup.marker
|
||||||
|
|
||||||
|
# Create a usable instance of the wrapper script that calls the pandoc filter
|
||||||
|
# (which is written in javascript).
|
||||||
|
$(eval $(call SetupTextFileProcessing, CREATE_PANDOC_HTML_MANPAGE_FILTER, \
|
||||||
|
SOURCE_FILES := $(TOPDIR)/make/scripts/pandoc-html-manpage-filter.sh.template, \
|
||||||
|
OUTPUT_FILE := $(PANDOC_HTML_MANPAGE_FILTER), \
|
||||||
|
REPLACEMENTS := \
|
||||||
|
@@BOOT_JDK@@ => $(BOOT_JDK) ; \
|
||||||
|
@@TOPDIR@@ => $(TOPDIR) ; \
|
||||||
|
@@JJS_FLAGS@@ => $(addprefix -J, $(JAVA_FLAGS_SMALL)), \
|
||||||
|
))
|
||||||
|
|
||||||
|
# Created script must be made executable
|
||||||
|
$(PANDOC_HTML_MANPAGE_FILTER_SETUP): $(CREATE_PANDOC_HTML_MANPAGE_FILTER)
|
||||||
|
$(CHMOD) a+rx $(PANDOC_HTML_MANPAGE_FILTER)
|
||||||
|
$(TOUCH) $@
|
||||||
|
|
||||||
|
TARGETS += $(PANDOC_HTML_MANPAGE_FILTER_SETUP)
|
||||||
|
endif
|
||||||
|
|
||||||
all: $(TARGETS)
|
all: $(TARGETS)
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -33,7 +33,7 @@ include MakeBase.gmk
|
|||||||
### CLDRConverter needs the JRE time zone names from the java.base source.
|
### CLDRConverter needs the JRE time zone names from the java.base source.
|
||||||
|
|
||||||
define cldrconverter_copytznames
|
define cldrconverter_copytznames
|
||||||
$(MKDIR) -p '$(@D)'
|
$(call MakeTargetDir)
|
||||||
$(RM) '$@'
|
$(RM) '$@'
|
||||||
$(SED) -e "s/package sun.util.resources/package build.tools.cldrconverter/" \
|
$(SED) -e "s/package sun.util.resources/package build.tools.cldrconverter/" \
|
||||||
-e "s/extends TimeZoneNamesBundle//" \
|
-e "s/extends TimeZoneNamesBundle//" \
|
||||||
|
|||||||
56
make/Coverage.gmk
Normal file
56
make/Coverage.gmk
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
|
#
|
||||||
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
|
# under the terms of the GNU General Public License version 2 only, as
|
||||||
|
# published by the Free Software Foundation. Oracle designates this
|
||||||
|
# particular file as subject to the "Classpath" exception as provided
|
||||||
|
# by Oracle in the LICENSE file that accompanied this code.
|
||||||
|
#
|
||||||
|
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
# version 2 for more details (a copy is included in the LICENSE file that
|
||||||
|
# accompanied this code).
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License version
|
||||||
|
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||||
|
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
#
|
||||||
|
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||||
|
# or visit www.oracle.com if you need additional information or have any
|
||||||
|
# questions.
|
||||||
|
|
||||||
|
include $(SPEC)
|
||||||
|
include MakeBase.gmk
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
JCOV_INPUT_IMAGE_DIR :=
|
||||||
|
|
||||||
|
ifneq ($(JCOV_INPUT_JDK), )
|
||||||
|
JCOV_INPUT_IMAGE_DIR := $(JCOV_INPUT_JDK)
|
||||||
|
else
|
||||||
|
JCOV_INPUT_IMAGE_DIR := $(JDK_IMAGE_DIR)
|
||||||
|
endif
|
||||||
|
|
||||||
|
#moving instrumented jdk image in and out of jcov_temp because of CODETOOLS-7902299
|
||||||
|
JCOV_TEMP := $(SUPPORT_OUTPUTDIR)/jcov_temp
|
||||||
|
|
||||||
|
$(JCOV_IMAGE_DIR)/release: $(JCOV_INPUT_IMAGE_DIR)/release
|
||||||
|
$(call LogWarn, Creating instrumented jdk image with JCov)
|
||||||
|
$(call MakeDir, $(JCOV_TEMP) $(IMAGES_OUTPUTDIR))
|
||||||
|
$(RM) -r $(JCOV_IMAGE_DIR) $(JCOV_TEMP)/*
|
||||||
|
$(CP) -r $(JCOV_INPUT_IMAGE_DIR) $(JCOV_TEMP)/$(JCOV_IMAGE_SUBDIR)
|
||||||
|
$(JAVA) -Xmx3g -jar $(JCOV_HOME)/lib/jcov.jar JREInstr \
|
||||||
|
-t $(JCOV_TEMP)/$(JCOV_IMAGE_SUBDIR)/template.xml \
|
||||||
|
-rt $(JCOV_HOME)/lib/jcov_network_saver.jar \
|
||||||
|
-exclude 'java.lang.Object' \
|
||||||
|
-exclude 'jdk.internal.org.objectweb.**' \
|
||||||
|
-exclude jdk.test.Main -exclude '**\$Proxy*' \
|
||||||
|
$(JCOV_TEMP)/$(JCOV_IMAGE_SUBDIR)
|
||||||
|
$(MV) $(JCOV_TEMP)/$(JCOV_IMAGE_SUBDIR) $(JCOV_IMAGE_DIR)
|
||||||
|
$(RMDIR) $(JCOV_TEMP)
|
||||||
|
|
||||||
|
jcov-image: $(JCOV_IMAGE_DIR)/release
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2015, 2018, 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 @@ COPY_CLASSES_TARGET := $(BUILDJDK_OUTPUTDIR)/jdk/modules/java.base/_the.buildjdk
|
|||||||
|
|
||||||
$(COPY_CLASSES_TARGET): $(call CacheFind, $(wildcard \
|
$(COPY_CLASSES_TARGET): $(call CacheFind, $(wildcard \
|
||||||
$(addprefix $(JDK_OUTPUTDIR)/modules/, $(MODULES_TO_COPY))))
|
$(addprefix $(JDK_OUTPUTDIR)/modules/, $(MODULES_TO_COPY))))
|
||||||
$(ECHO) $(LOG_INFO) "Copying java modules to buildjdk: $(MODULES_TO_COPY)"
|
$(call LogInfo, Copying java modules to buildjdk: $(MODULES_TO_COPY))
|
||||||
$(RM) -r $(BUILDJDK_OUTPUTDIR)/jdk/modules
|
$(RM) -r $(BUILDJDK_OUTPUTDIR)/jdk/modules
|
||||||
$(MKDIR) -p $(BUILDJDK_OUTPUTDIR)/jdk/modules
|
$(MKDIR) -p $(BUILDJDK_OUTPUTDIR)/jdk/modules
|
||||||
$(foreach m, $(MODULES_TO_COPY), \
|
$(foreach m, $(MODULES_TO_COPY), \
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# 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
|
||||||
|
|||||||
@@ -27,10 +27,10 @@ default: all
|
|||||||
include $(SPEC)
|
include $(SPEC)
|
||||||
include MakeBase.gmk
|
include MakeBase.gmk
|
||||||
include Modules.gmk
|
include Modules.gmk
|
||||||
|
include ModuleTools.gmk
|
||||||
include ProcessMarkdown.gmk
|
include ProcessMarkdown.gmk
|
||||||
|
include ToolsJdk.gmk
|
||||||
include ZipArchive.gmk
|
include ZipArchive.gmk
|
||||||
include $(TOPDIR)/make/ToolsJdk.gmk
|
|
||||||
include $(TOPDIR)/make/ModuleTools.gmk
|
|
||||||
|
|
||||||
# This is needed to properly setup DOCS_MODULES.
|
# This is needed to properly setup DOCS_MODULES.
|
||||||
$(eval $(call ReadImportMetaData))
|
$(eval $(call ReadImportMetaData))
|
||||||
@@ -61,11 +61,11 @@ MODULES_SOURCE_PATH := $(call PathList, $(call GetModuleSrcPath) \
|
|||||||
$(SUPPORT_OUTPUTDIR)/rmic/* $(TOPDIR)/src/*/share/doc/stub)
|
$(SUPPORT_OUTPUTDIR)/rmic/* $(TOPDIR)/src/*/share/doc/stub)
|
||||||
|
|
||||||
# URLs
|
# URLs
|
||||||
JAVADOC_BASE_URL := http://www.oracle.com/pls/topic/lookup?ctx=javase$(VERSION_NUMBER)&id=homepage
|
JAVADOC_BASE_URL := https://docs.oracle.com/pls/topic/lookup?ctx=javase$(VERSION_NUMBER)&id=homepage
|
||||||
BUG_SUBMIT_URL := http://bugreport.java.com/bugreport/
|
BUG_SUBMIT_URL := https://bugreport.java.com/bugreport/
|
||||||
COPYRIGHT_URL := {@docroot}/../legal/copyright.html
|
COPYRIGHT_URL := {@docroot}/../legal/copyright.html
|
||||||
LICENSE_URL := http://www.oracle.com/technetwork/java/javase/terms/license/java$(VERSION_NUMBER)speclicense.html
|
LICENSE_URL := https://www.oracle.com/technetwork/java/javase/terms/license/java$(VERSION_NUMBER)speclicense.html
|
||||||
REDISTRIBUTION_URL := http://www.oracle.com/technetwork/java/redist-137594.html
|
REDISTRIBUTION_URL := https://www.oracle.com/technetwork/java/redist-137594.html
|
||||||
|
|
||||||
# In order to get a specific ordering it's necessary to specify the total
|
# In order to get a specific ordering it's necessary to specify the total
|
||||||
# ordering of tags as the tags are otherwise ordered in order of definition.
|
# ordering of tags as the tags are otherwise ordered in order of definition.
|
||||||
@@ -168,14 +168,6 @@ JAVADOC_TOP := \
|
|||||||
font-family: DejaVu Sans, Arial, Helvetica, sans-serif; \
|
font-family: DejaVu Sans, Arial, Helvetica, sans-serif; \
|
||||||
font-weight: normal;">$(DRAFT_TEXT)</div>
|
font-weight: normal;">$(DRAFT_TEXT)</div>
|
||||||
|
|
||||||
JDK_INDEX_CONTENT := \
|
|
||||||
<!DOCTYPE html> \
|
|
||||||
<html lang="en"> \
|
|
||||||
<head> \
|
|
||||||
<meta http-equiv="refresh" content="0;url=api/index.html"> \
|
|
||||||
</head> \
|
|
||||||
</html>
|
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# JDK javadoc titles/text snippets
|
# JDK javadoc titles/text snippets
|
||||||
|
|
||||||
@@ -228,7 +220,7 @@ define create_overview_file
|
|||||||
<blockquote><dl> \
|
<blockquote><dl> \
|
||||||
#
|
#
|
||||||
$1_OVERVIEW_TEXT += $$(foreach g, $$($1_GROUPS), \
|
$1_OVERVIEW_TEXT += $$(foreach g, $$($1_GROUPS), \
|
||||||
<dt style="margin-top: 8px;"><a href="\#$$g">$$($$g_GROUP_NAME)</a></dt> \
|
<dt style="margin-top: 8px;">$$($$g_GROUP_NAME)</dt> \
|
||||||
<dd style="margin-top: 8px;">$$($$g_GROUP_DESCRIPTION)</dd> \
|
<dd style="margin-top: 8px;">$$($$g_GROUP_DESCRIPTION)</dd> \
|
||||||
)
|
)
|
||||||
$1_OVERVIEW_TEXT += \
|
$1_OVERVIEW_TEXT += \
|
||||||
@@ -485,14 +477,7 @@ $(eval $(call SetupApiDocsGeneration, REFERENCE_API, \
|
|||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
JDK_INDEX_HTML := $(DOCS_OUTPUTDIR)/index.html
|
# Copy the global resources, including the top-level redirect index.html
|
||||||
|
|
||||||
$(JDK_INDEX_HTML):
|
|
||||||
$(ECHO) '$(JDK_INDEX_CONTENT)' > $@
|
|
||||||
|
|
||||||
JDK_INDEX_TARGETS += $(JDK_INDEX_HTML)
|
|
||||||
|
|
||||||
# Copy the global resources
|
|
||||||
GLOBAL_SPECS_RESOURCES_DIR := $(TOPDIR)/make/data/docs-resources/
|
GLOBAL_SPECS_RESOURCES_DIR := $(TOPDIR)/make/data/docs-resources/
|
||||||
$(eval $(call SetupCopyFiles, COPY_GLOBAL_RESOURCES, \
|
$(eval $(call SetupCopyFiles, COPY_GLOBAL_RESOURCES, \
|
||||||
SRC := $(GLOBAL_SPECS_RESOURCES_DIR), \
|
SRC := $(GLOBAL_SPECS_RESOURCES_DIR), \
|
||||||
@@ -532,9 +517,9 @@ $(foreach m, $(ALL_MODULES), \
|
|||||||
) \
|
) \
|
||||||
)
|
)
|
||||||
|
|
||||||
ifeq ($(ENABLE_FULL_DOCS), true)
|
ifeq ($(ENABLE_PANDOC), true)
|
||||||
# For all markdown files in $module/share/specs directories, convert them to
|
# For all markdown files in $module/share/specs directories, convert them to
|
||||||
# html.
|
# html, if we have pandoc (otherwise we'll just skip this).
|
||||||
|
|
||||||
GLOBAL_SPECS_DEFAULT_CSS_FILE := $(DOCS_OUTPUTDIR)/resources/jdk-default.css
|
GLOBAL_SPECS_DEFAULT_CSS_FILE := $(DOCS_OUTPUTDIR)/resources/jdk-default.css
|
||||||
|
|
||||||
@@ -542,7 +527,7 @@ ifeq ($(ENABLE_FULL_DOCS), true)
|
|||||||
$(eval SPECS_$m := $(call FindModuleSpecsDirs, $m)) \
|
$(eval SPECS_$m := $(call FindModuleSpecsDirs, $m)) \
|
||||||
$(foreach d, $(SPECS_$m), \
|
$(foreach d, $(SPECS_$m), \
|
||||||
$(if $(filter %.md, $(call CacheFind, $d)), \
|
$(if $(filter %.md, $(call CacheFind, $d)), \
|
||||||
$(eval $m_$d_NAME := CONVERT_MARKDOWN_$m_$(strip $(call RelativePath, $d, $(TOPDIR)))) \
|
$(eval $m_$d_NAME := SPECS_TO_HTML_$m_$(strip $(call RelativePath, $d, $(TOPDIR)))) \
|
||||||
$(eval $(call SetupProcessMarkdown, $($m_$d_NAME), \
|
$(eval $(call SetupProcessMarkdown, $($m_$d_NAME), \
|
||||||
SRC := $d, \
|
SRC := $d, \
|
||||||
FILES := $(filter %.md, $(call CacheFind, $d)), \
|
FILES := $(filter %.md, $(call CacheFind, $d)), \
|
||||||
@@ -553,6 +538,40 @@ ifeq ($(ENABLE_FULL_DOCS), true)
|
|||||||
) \
|
) \
|
||||||
) \
|
) \
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# For all markdown files in $module/share/man directories, convert them to
|
||||||
|
# html.
|
||||||
|
|
||||||
|
# Create dynamic man pages from markdown using pandoc. We need
|
||||||
|
# PANDOC_HTML_MANPAGE_FILTER, a wrapper around
|
||||||
|
# PANDOC_HTML_MANPAGE_FILTER_JAVASCRIPT. This is created by buildtools-jdk.
|
||||||
|
|
||||||
|
# We should also depend on the source javascript filter
|
||||||
|
PANDOC_HTML_MANPAGE_FILTER_JAVASCRIPT := \
|
||||||
|
$(TOPDIR)/make/scripts/pandoc-html-manpage-filter.js
|
||||||
|
|
||||||
|
$(foreach m, $(ALL_MODULES), \
|
||||||
|
$(eval MAN_$m := $(call FindModuleManDirs, $m)) \
|
||||||
|
$(foreach d, $(MAN_$m), \
|
||||||
|
$(if $(filter %.md, $(call CacheFind, $d)), \
|
||||||
|
$(eval $m_$d_NAME := MAN_TO_HTML_$m_$(strip $(call RelativePath, $d, $(TOPDIR)))) \
|
||||||
|
$(eval $(call SetupProcessMarkdown, $($m_$d_NAME), \
|
||||||
|
SRC := $d, \
|
||||||
|
FILES := $(filter %.md, $(call CacheFind, $d)), \
|
||||||
|
DEST := $(DOCS_OUTPUTDIR)/specs/man, \
|
||||||
|
FILTER := $(PANDOC_HTML_MANPAGE_FILTER), \
|
||||||
|
CSS := $(GLOBAL_SPECS_DEFAULT_CSS_FILE), \
|
||||||
|
REPLACEMENTS := @@VERSION_SHORT@@ => $(VERSION_SHORT), \
|
||||||
|
EXTRA_DEPS := $(PANDOC_HTML_MANPAGE_FILTER) \
|
||||||
|
$(PANDOC_HTML_MANPAGE_FILTER_JAVASCRIPT), \
|
||||||
|
)) \
|
||||||
|
$(eval JDK_SPECS_TARGETS += $($($m_$d_NAME))) \
|
||||||
|
) \
|
||||||
|
) \
|
||||||
|
)
|
||||||
|
|
||||||
|
# The html generated from markdown also needs the css file
|
||||||
|
JDK_SPECS_TARGETS += $(COPY_GLOBAL_RESOURCES)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Special treatment for generated documentation
|
# Special treatment for generated documentation
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2016, 2018, 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,7 +38,7 @@ ALL_MODULEINFO_CLASSES := $(wildcard $(JDK_OUTPUTDIR)/modules/*/module_info.clas
|
|||||||
|
|
||||||
$(PACKAGES_ATTRIBUTE_TARGET): $(ALL_MODULEINFO_CLASSES) $(BUILD_JIGSAW_CLASSES)
|
$(PACKAGES_ATTRIBUTE_TARGET): $(ALL_MODULEINFO_CLASSES) $(BUILD_JIGSAW_CLASSES)
|
||||||
$(call LogInfo, Optimizing the exploded image)
|
$(call LogInfo, Optimizing the exploded image)
|
||||||
$(TOOL_ADD_PACKAGES_ATTRIBUTE) $(JDK_OUTPUTDIR)
|
$(call ExecuteWithLog, $@, $(TOOL_ADD_PACKAGES_ATTRIBUTE) $(JDK_OUTPUTDIR))
|
||||||
$(TOUCH) $@
|
$(TOUCH) $@
|
||||||
|
|
||||||
TARGETS := $(PACKAGES_ATTRIBUTE_TARGET)
|
TARGETS := $(PACKAGES_ATTRIBUTE_TARGET)
|
||||||
|
|||||||
@@ -31,15 +31,17 @@ default: all
|
|||||||
|
|
||||||
include $(SPEC)
|
include $(SPEC)
|
||||||
include MakeBase.gmk
|
include MakeBase.gmk
|
||||||
include JarArchive.gmk
|
include SetupJavaCompilers.gmk
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Create a jar with our generator class. Using a jar is intentional since it
|
# Create a jar with our generator class. Using a jar is intentional since it
|
||||||
# will load more classes
|
# will load more classes
|
||||||
|
|
||||||
$(eval $(call SetupJarArchive, CLASSLIST_JAR, \
|
$(eval $(call SetupJavaCompilation, CLASSLIST_JAR, \
|
||||||
SRCS := $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes, \
|
SETUP := GENERATE_JDKBYTECODE, \
|
||||||
|
SRC := $(TOPDIR)/make/jdk/src/classes, \
|
||||||
INCLUDES := build/tools/classlist, \
|
INCLUDES := build/tools/classlist, \
|
||||||
|
BIN := $(BUILDTOOLS_OUTPUTDIR)/classlist_classes, \
|
||||||
JAR := $(SUPPORT_OUTPUTDIR)/classlist.jar, \
|
JAR := $(SUPPORT_OUTPUTDIR)/classlist.jar, \
|
||||||
))
|
))
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# 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,18 +35,18 @@ SPEC_DOTFILES_DIR := $(GENGRAPHS_DIR)/spec-dotfiles
|
|||||||
TOOLS_MODULE_SRCDIR := $(TOPDIR)/make/jdk/src/classes/build/tools/jigsaw
|
TOOLS_MODULE_SRCDIR := $(TOPDIR)/make/jdk/src/classes/build/tools/jigsaw
|
||||||
|
|
||||||
$(GENGRAPHS_DIR)/jdk.dot: $(BUILD_JIGSAW_TOOLS)
|
$(GENGRAPHS_DIR)/jdk.dot: $(BUILD_JIGSAW_TOOLS)
|
||||||
$(MKDIR) -p $(@D)
|
$(call MakeTargetDir)
|
||||||
$(TOOL_GENGRAPHS) --output $(GENGRAPHS_DIR)
|
$(TOOL_GENGRAPHS) --output $(GENGRAPHS_DIR)
|
||||||
|
|
||||||
$(SPEC_DOTFILES_DIR)/java.se.dot: $(BUILD_JIGSAW_TOOLS)
|
$(SPEC_DOTFILES_DIR)/java.se.dot: $(BUILD_JIGSAW_TOOLS)
|
||||||
$(MKDIR) -p $(@D)
|
$(call MakeTargetDir)
|
||||||
$(TOOL_GENGRAPHS) --spec --output $(SPEC_DOTFILES_DIR)
|
$(TOOL_GENGRAPHS) --spec --output $(SPEC_DOTFILES_DIR)
|
||||||
|
|
||||||
$(GENGRAPHS_DIR)/technology-summary.html: $(TOOLS_MODULE_SRCDIR)/technology-summary.html
|
$(GENGRAPHS_DIR)/technology-summary.html: $(TOOLS_MODULE_SRCDIR)/technology-summary.html
|
||||||
$(install-file)
|
$(install-file)
|
||||||
|
|
||||||
$(GENGRAPHS_DIR)/module-summary.html: $(BUILD_JIGSAW_TOOLS) $(GENGRAPHS_DIR)/technology-summary.html
|
$(GENGRAPHS_DIR)/module-summary.html: $(BUILD_JIGSAW_TOOLS) $(GENGRAPHS_DIR)/technology-summary.html
|
||||||
$(MKDIR) -p $(@D)
|
$(call MakeTargetDir)
|
||||||
$(TOOL_MODULESUMMARY) -o $@ --module-path $(IMAGES_OUTPUTDIR)/jmods
|
$(TOOL_MODULESUMMARY) -o $@ --module-path $(IMAGES_OUTPUTDIR)/jmods
|
||||||
|
|
||||||
all: $(GENGRAPHS_DIR)/jdk.dot $(GENGRAPHS_DIR)/module-summary.html $(SPEC_DOTFILES_DIR)/java.se.dot
|
all: $(GENGRAPHS_DIR)/jdk.dot $(GENGRAPHS_DIR)/module-summary.html $(SPEC_DOTFILES_DIR)/java.se.dot
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2015, 2018, 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
|
||||||
@@ -79,7 +79,7 @@ ifneq ($(MOD_FILES), )
|
|||||||
$(BUILD_TOOLS_JDK) \
|
$(BUILD_TOOLS_JDK) \
|
||||||
$(MOD_FILES) \
|
$(MOD_FILES) \
|
||||||
$(call DependOnVariable, ALL_MODULES)
|
$(call DependOnVariable, ALL_MODULES)
|
||||||
$(MKDIR) -p $(@D)
|
$(call MakeTargetDir)
|
||||||
$(RM) $@ $@.tmp
|
$(RM) $@ $@.tmp
|
||||||
$(TOOL_GENMODULEINFOSOURCE) -o $@.tmp \
|
$(TOOL_GENMODULEINFOSOURCE) -o $@.tmp \
|
||||||
--source-file $< \
|
--source-file $< \
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2012, 2017, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# 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
|
||||||
@@ -55,10 +55,10 @@ help:
|
|||||||
$(info $(_) make install # Install the generated images locally)
|
$(info $(_) make install # Install the generated images locally)
|
||||||
$(info $(_) make reconfigure # Rerun configure with the same arguments as last time)
|
$(info $(_) make reconfigure # Rerun configure with the same arguments as last time)
|
||||||
$(info $(_) make help # Give some help on using make)
|
$(info $(_) make help # Give some help on using make)
|
||||||
$(info $(_) make test # Run tests, default is all tests (see TEST below))
|
$(info $(_) make check # Run basic testing (currently tier1))
|
||||||
$(info $(_) make run-test-<test> # Run test, e.g. run-test-tier1)
|
$(info $(_) make test-<test> # Run test, e.g. test-tier1)
|
||||||
$(info $(_) make run-test TEST=<t> # Run test(s) given by TEST specification)
|
$(info $(_) make test TEST=<t> # Run test(s) given by TEST specification)
|
||||||
$(info $(_) make exploded-run-test TEST=<t> # Run test(s) on the exploded image instead of)
|
$(info $(_) make exploded-test TEST=<t> # Run test(s) on the exploded image instead of)
|
||||||
$(info $(_) # the full jdk image)
|
$(info $(_) # the full jdk image)
|
||||||
$(info )
|
$(info )
|
||||||
$(info Targets for cleaning)
|
$(info Targets for cleaning)
|
||||||
@@ -99,10 +99,13 @@ help:
|
|||||||
$(info $(_) TEST_JOBS=<n> # Run <n> parallel test jobs)
|
$(info $(_) TEST_JOBS=<n> # Run <n> parallel test jobs)
|
||||||
$(info $(_) CONF_CHECK=<method> # What to do if spec file is out of date)
|
$(info $(_) CONF_CHECK=<method> # What to do if spec file is out of date)
|
||||||
$(info $(_) # method is 'auto', 'ignore' or 'fail' (default))
|
$(info $(_) # method is 'auto', 'ignore' or 'fail' (default))
|
||||||
$(info $(_) make test TEST=<test> # Only run the given test or tests, e.g.)
|
$(info $(_) TEST="test1 ..." # Use the given test descriptor(s) for testing, e.g.)
|
||||||
$(info $(_) # make test TEST="jdk_lang jdk_net")
|
$(info $(_) # make test TEST="jdk_lang gtest:all")
|
||||||
$(info $(_) JTREG="OPT1=x;OPT2=y" # Control the JTREG test harness for run-test)
|
$(info $(_) JTREG="OPT1=x;OPT2=y" # Control the JTREG test harness)
|
||||||
$(info $(_) GTEST="OPT1=x;OPT2=y" # Control the GTEST test harness for run-test)
|
$(info $(_) GTEST="OPT1=x;OPT2=y" # Control the GTEST test harness)
|
||||||
|
$(info $(_) MICRO="OPT1=x;OPT2=y" # Control the MICRO test harness)
|
||||||
|
$(info $(_) TEST_OPTS="OPT1=x;..." # Generic control of all test harnesses)
|
||||||
|
$(info $(_) TEST_VM_OPTS="ARG ..." # Same as setting TEST_OPTS to VM_OPTIONS="ARG ...")
|
||||||
$(info )
|
$(info )
|
||||||
$(if $(all_confs), $(info Available configurations in $(build_dir):) $(foreach var,$(all_confs),$(info * $(var))),\
|
$(if $(all_confs), $(info Available configurations in $(build_dir):) $(foreach var,$(all_confs),$(info * $(var))),\
|
||||||
$(info No configurations were found in $(build_dir).) $(info Run 'bash configure' to create a configuration.))
|
$(info No configurations were found in $(build_dir).) $(info Run 'bash configure' to create a configuration.))
|
||||||
@@ -119,7 +122,7 @@ print-configurations:
|
|||||||
run-test-prebuilt:
|
run-test-prebuilt:
|
||||||
@( cd $(topdir) && \
|
@( cd $(topdir) && \
|
||||||
$(MAKE) --no-print-directory -r -R -I make/common/ -f make/RunTestsPrebuilt.gmk \
|
$(MAKE) --no-print-directory -r -R -I make/common/ -f make/RunTestsPrebuilt.gmk \
|
||||||
run-test-prebuilt TEST="$(TEST)" )
|
run-test-prebuilt CUSTOM_MAKE_DIR=$(CUSTOM_MAKE_DIR) TEST="$(TEST)" )
|
||||||
|
|
||||||
ALL_GLOBAL_TARGETS := help print-configurations run-test-prebuilt
|
ALL_GLOBAL_TARGETS := help print-configurations run-test-prebuilt
|
||||||
|
|
||||||
|
|||||||
139
make/Images.gmk
139
make/Images.gmk
@@ -36,7 +36,7 @@ JRE_TARGETS :=
|
|||||||
# Hook to include the corresponding custom file, if present.
|
# Hook to include the corresponding custom file, if present.
|
||||||
$(eval $(call IncludeCustomExtension, Images-pre.gmk))
|
$(eval $(call IncludeCustomExtension, Images-pre.gmk))
|
||||||
|
|
||||||
############################################################################
|
################################################################################
|
||||||
|
|
||||||
# All modules for the current target platform.
|
# All modules for the current target platform.
|
||||||
ALL_MODULES := $(call FindAllModules)
|
ALL_MODULES := $(call FindAllModules)
|
||||||
@@ -57,7 +57,7 @@ BASE_RELEASE_FILE := $(JDK_OUTPUTDIR)/release
|
|||||||
JMODS := $(wildcard $(IMAGES_OUTPUTDIR)/jmods/*.jmod)
|
JMODS := $(wildcard $(IMAGES_OUTPUTDIR)/jmods/*.jmod)
|
||||||
|
|
||||||
# Use this file inside the image as target for make rule
|
# Use this file inside the image as target for make rule
|
||||||
JIMAGE_TARGET_FILE := bin/java$(EXE_SUFFIX)
|
JIMAGE_TARGET_FILE := release
|
||||||
|
|
||||||
JLINK_ORDER_RESOURCES := **module-info.class
|
JLINK_ORDER_RESOURCES := **module-info.class
|
||||||
JLINK_JLI_CLASSES :=
|
JLINK_JLI_CLASSES :=
|
||||||
@@ -90,150 +90,39 @@ endif
|
|||||||
|
|
||||||
$(JDK_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(JMODS) \
|
$(JDK_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(JMODS) \
|
||||||
$(call DependOnVariable, JDK_MODULES_LIST) $(BASE_RELEASE_FILE)
|
$(call DependOnVariable, JDK_MODULES_LIST) $(BASE_RELEASE_FILE)
|
||||||
$(ECHO) Creating jdk image
|
$(call LogWarn, Creating jdk image)
|
||||||
$(RM) -r $(JDK_IMAGE_DIR)
|
$(RM) -r $(JDK_IMAGE_DIR)
|
||||||
$(call ExecuteWithLog, $(SUPPORT_OUTPUTDIR)/images/jdk, \
|
$(call ExecuteWithLog, $(SUPPORT_OUTPUTDIR)/images/jdk, \
|
||||||
$(JLINK_TOOL) --add-modules $(JDK_MODULES_LIST) \
|
$(JLINK_TOOL) --add-modules $(JDK_MODULES_LIST) \
|
||||||
$(JLINK_JDK_EXTRA_OPTS) \
|
$(JLINK_JDK_EXTRA_OPTS) \
|
||||||
--output $(JDK_IMAGE_DIR) \
|
--output $(JDK_IMAGE_DIR) \
|
||||||
)
|
)
|
||||||
|
ifeq ($(BUILD_CDS_ARCHIVE), true)
|
||||||
|
$(call LogWarn, Creating CDS archive for jdk image)
|
||||||
|
$(FIXPATH) $(JDK_IMAGE_DIR)/bin/java \
|
||||||
|
-Xshare:dump -Xmx128M -Xms128M $(LOG_INFO)
|
||||||
|
endif
|
||||||
$(TOUCH) $@
|
$(TOUCH) $@
|
||||||
|
|
||||||
$(JRE_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(JMODS) \
|
$(JRE_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(JMODS) \
|
||||||
$(call DependOnVariable, JRE_MODULES_LIST) $(BASE_RELEASE_FILE)
|
$(call DependOnVariable, JRE_MODULES_LIST) $(BASE_RELEASE_FILE)
|
||||||
$(ECHO) Creating legacy jre image
|
$(call LogWarn, Creating legacy jre image)
|
||||||
$(RM) -r $(JRE_IMAGE_DIR)
|
$(RM) -r $(JRE_IMAGE_DIR)
|
||||||
$(call ExecuteWithLog, $(SUPPORT_OUTPUTDIR)/images/jre, \
|
$(call ExecuteWithLog, $(SUPPORT_OUTPUTDIR)/images/jre, \
|
||||||
$(JLINK_TOOL) --add-modules $(JRE_MODULES_LIST) \
|
$(JLINK_TOOL) --add-modules $(JRE_MODULES_LIST) \
|
||||||
$(JLINK_JRE_EXTRA_OPTS) \
|
$(JLINK_JRE_EXTRA_OPTS) \
|
||||||
--output $(JRE_IMAGE_DIR) \
|
--output $(JRE_IMAGE_DIR) \
|
||||||
)
|
)
|
||||||
|
ifeq ($(BUILD_CDS_ARCHIVE), true)
|
||||||
|
$(call LogWarn, Creating CDS archive for jre image)
|
||||||
|
$(FIXPATH) $(JRE_IMAGE_DIR)/bin/java \
|
||||||
|
-Xshare:dump -Xmx128M -Xms128M $(LOG_INFO)
|
||||||
|
endif
|
||||||
$(TOUCH) $@
|
$(TOUCH) $@
|
||||||
|
|
||||||
TOOL_JRE_TARGETS := $(JRE_IMAGE_DIR)/$(JIMAGE_TARGET_FILE)
|
TOOL_JRE_TARGETS := $(JRE_IMAGE_DIR)/$(JIMAGE_TARGET_FILE)
|
||||||
TOOL_JDK_TARGETS := $(JDK_IMAGE_DIR)/$(JIMAGE_TARGET_FILE)
|
TOOL_JDK_TARGETS := $(JDK_IMAGE_DIR)/$(JIMAGE_TARGET_FILE)
|
||||||
|
|
||||||
################################################################################
|
|
||||||
# /man dir
|
|
||||||
#
|
|
||||||
# All variables in this section are assigned with simple =, without :, to enable
|
|
||||||
# more selective overriding from the custom version of this file.
|
|
||||||
#
|
|
||||||
# Avoid evaluating this whole section on windows for speed and stability
|
|
||||||
ifneq ($(OPENJDK_TARGET_OS), windows)
|
|
||||||
ifeq ($(BUILD_MANPAGES), true)
|
|
||||||
JRE_MAN_PAGES += \
|
|
||||||
java.1 \
|
|
||||||
jjs.1 \
|
|
||||||
keytool.1 \
|
|
||||||
orbd.1 \
|
|
||||||
pack200.1 \
|
|
||||||
rmid.1 \
|
|
||||||
rmiregistry.1 \
|
|
||||||
servertool.1 \
|
|
||||||
unpack200.1
|
|
||||||
|
|
||||||
JDK_MAN_PAGES += \
|
|
||||||
$(JRE_MAN_PAGES) \
|
|
||||||
idlj.1 \
|
|
||||||
jar.1 \
|
|
||||||
jarsigner.1 \
|
|
||||||
javac.1 \
|
|
||||||
javadoc.1 \
|
|
||||||
javap.1 \
|
|
||||||
jconsole.1 \
|
|
||||||
jcmd.1 \
|
|
||||||
jdb.1 \
|
|
||||||
jdeps.1 \
|
|
||||||
jinfo.1 \
|
|
||||||
jmap.1 \
|
|
||||||
jps.1 \
|
|
||||||
jrunscript.1 \
|
|
||||||
jstack.1 \
|
|
||||||
jstat.1 \
|
|
||||||
jstatd.1 \
|
|
||||||
rmic.1 \
|
|
||||||
serialver.1
|
|
||||||
|
|
||||||
# This variable is potentially overridden in the closed makefile.
|
|
||||||
MAN_SRC_BASEDIR ?= $(TOPDIR)/src
|
|
||||||
|
|
||||||
ifeq ($(OPENJDK_TARGET_OS), linux)
|
|
||||||
MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/linux/doc
|
|
||||||
MAN1_SUBDIR = man
|
|
||||||
endif
|
|
||||||
ifeq ($(OPENJDK_TARGET_OS), solaris)
|
|
||||||
MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/solaris/doc
|
|
||||||
MAN1_SUBDIR = sun/man/man1
|
|
||||||
endif
|
|
||||||
ifeq ($(OPENJDK_TARGET_OS), macosx)
|
|
||||||
MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/bsd/doc
|
|
||||||
MAN1_SUBDIR = man
|
|
||||||
endif
|
|
||||||
|
|
||||||
$(JRE_IMAGE_DIR)/man/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/%
|
|
||||||
$(call LogInfo, Copying $(patsubst $(OUTPUTDIR)/%,%,$@))
|
|
||||||
$(install-file)
|
|
||||||
|
|
||||||
$(JDK_IMAGE_DIR)/man/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/%
|
|
||||||
$(call LogInfo, Copying $(patsubst $(OUTPUTDIR)/%,%,$@))
|
|
||||||
$(install-file)
|
|
||||||
|
|
||||||
$(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/%
|
|
||||||
$(call LogInfo, Copying $(patsubst $(OUTPUTDIR)/%,%,$@))
|
|
||||||
$(install-file)
|
|
||||||
|
|
||||||
$(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/%
|
|
||||||
$(call LogInfo, Copying $(patsubst $(OUTPUTDIR)/%,%,$@))
|
|
||||||
$(install-file)
|
|
||||||
|
|
||||||
ifeq ($(OPENJDK_TARGET_OS), solaris)
|
|
||||||
$(JRE_IMAGE_DIR)/man/ja/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/%
|
|
||||||
$(call LogInfo, Converting $(patsubst $(OUTPUTDIR)/%,%,$@))
|
|
||||||
$(install-file)
|
|
||||||
|
|
||||||
$(JDK_IMAGE_DIR)/man/ja/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/%
|
|
||||||
$(call LogInfo, Converting $(patsubst $(OUTPUTDIR)/%,%,$@))
|
|
||||||
$(install-file)
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifneq ($(findstring $(OPENJDK_TARGET_OS), linux macosx), )
|
|
||||||
$(JRE_IMAGE_DIR)/man/ja:
|
|
||||||
$(call LogInfo, Creating $(patsubst $(OUTPUTDIR)/%,%,$@))
|
|
||||||
$(CD) $(@D) && $(RM) ja && $(LN) -s ja_JP.UTF-8 ja
|
|
||||||
|
|
||||||
$(JDK_IMAGE_DIR)/man/ja:
|
|
||||||
$(call LogInfo, Creating $(patsubst $(OUTPUTDIR)/%,%,$@))
|
|
||||||
$(CD) $(@D) && $(RM) ja && $(LN) -s ja_JP.UTF-8 ja
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(OPENJDK_TARGET_OS), solaris)
|
|
||||||
JRE_MAN_PAGE_LIST = $(addprefix $(JRE_IMAGE_DIR)/man/man1/, $(JRE_MAN_PAGES)) \
|
|
||||||
$(addprefix $(JRE_IMAGE_DIR)/man/ja/man1/, $(JRE_MAN_PAGES)) \
|
|
||||||
$(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JRE_MAN_PAGES)) \
|
|
||||||
$(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.PCK/man1/, $(JRE_MAN_PAGES))
|
|
||||||
|
|
||||||
JDK_MAN_PAGE_LIST = $(addprefix $(JDK_IMAGE_DIR)/man/man1/, $(JDK_MAN_PAGES)) \
|
|
||||||
$(addprefix $(JDK_IMAGE_DIR)/man/ja/man1/, $(JDK_MAN_PAGES)) \
|
|
||||||
$(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JDK_MAN_PAGES)) \
|
|
||||||
$(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.PCK/man1/, $(JDK_MAN_PAGES))
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifneq ($(findstring $(OPENJDK_TARGET_OS), linux macosx), )
|
|
||||||
JRE_MAN_PAGE_LIST = $(addprefix $(JRE_IMAGE_DIR)/man/man1/, $(JRE_MAN_PAGES)) \
|
|
||||||
$(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JRE_MAN_PAGES)) \
|
|
||||||
$(JRE_IMAGE_DIR)/man/ja
|
|
||||||
|
|
||||||
JDK_MAN_PAGE_LIST = $(addprefix $(JDK_IMAGE_DIR)/man/man1/, $(JDK_MAN_PAGES)) \
|
|
||||||
$(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JDK_MAN_PAGES)) \
|
|
||||||
$(JDK_IMAGE_DIR)/man/ja
|
|
||||||
endif
|
|
||||||
|
|
||||||
JRE_TARGETS += $(JRE_MAN_PAGE_LIST)
|
|
||||||
JDK_TARGETS += $(JDK_MAN_PAGE_LIST)
|
|
||||||
endif # BUILD_MANPAGES
|
|
||||||
endif # Windows
|
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# src.zip
|
# src.zip
|
||||||
|
|
||||||
|
|||||||
@@ -240,6 +240,11 @@ else # HAS_SPEC=true
|
|||||||
override BUILD_LOG_PIPE :=
|
override BUILD_LOG_PIPE :=
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(filter dist-clean, $(SEQUENTIAL_TARGETS)), dist-clean)
|
||||||
|
# We can't have a log file if we're about to remove it.
|
||||||
|
override BUILD_LOG_PIPE :=
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(OUTPUT_SYNC_SUPPORTED), true)
|
ifeq ($(OUTPUT_SYNC_SUPPORTED), true)
|
||||||
OUTPUT_SYNC_FLAG := -O$(OUTPUT_SYNC)
|
OUTPUT_SYNC_FLAG := -O$(OUTPUT_SYNC)
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ ifeq ($(HAS_SPEC),)
|
|||||||
|
|
||||||
# Make control variables, handled by Init.gmk
|
# Make control variables, handled by Init.gmk
|
||||||
INIT_CONTROL_VARIABLES += LOG CONF CONF_NAME SPEC JOBS TEST_JOBS CONF_CHECK \
|
INIT_CONTROL_VARIABLES += LOG CONF CONF_NAME SPEC JOBS TEST_JOBS CONF_CHECK \
|
||||||
COMPARE_BUILD JTREG GTEST TEST_OPTS TEST_VM_OPTS
|
COMPARE_BUILD JTREG GTEST MICRO TEST_OPTS TEST_VM_OPTS
|
||||||
|
|
||||||
# All known make control variables
|
# All known make control variables
|
||||||
MAKE_CONTROL_VARIABLES := $(INIT_CONTROL_VARIABLES) TEST JDK_FILTER
|
MAKE_CONTROL_VARIABLES := $(INIT_CONTROL_VARIABLES) TEST JDK_FILTER
|
||||||
@@ -264,9 +264,13 @@ ifeq ($(HAS_SPEC),)
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# The --no-print-directory is needed to make the call from
|
||||||
|
# FindTest.gmk to Test.gmk work with LOG=debug/trace. See
|
||||||
|
# JDK-8213736
|
||||||
$$(main_targets_file):
|
$$(main_targets_file):
|
||||||
@( cd $$(topdir) && \
|
@( cd $$(topdir) && \
|
||||||
$$(MAKE) $$(MAKE_LOG_FLAGS) -r -R -f $$(topdir)/make/Main.gmk \
|
$$(MAKE) $$(MAKE_LOG_FLAGS) -r -R --no-print-directory \
|
||||||
|
-f $$(topdir)/make/Main.gmk \
|
||||||
-I $$(topdir)/make/common SPEC=$(strip $2) NO_RECIPES=true \
|
-I $$(topdir)/make/common SPEC=$(strip $2) NO_RECIPES=true \
|
||||||
$$(MAKE_LOG_VARS) \
|
$$(MAKE_LOG_VARS) \
|
||||||
create-main-targets-include )
|
create-main-targets-include )
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2016, 2018, 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
|
||||||
|
|||||||
107
make/Jprt.gmk
107
make/Jprt.gmk
@@ -1,107 +0,0 @@
|
|||||||
#
|
|
||||||
# Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
|
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
||||||
#
|
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
|
||||||
# under the terms of the GNU General Public License version 2 only, as
|
|
||||||
# published by the Free Software Foundation. Oracle designates this
|
|
||||||
# particular file as subject to the "Classpath" exception as provided
|
|
||||||
# by Oracle in the LICENSE file that accompanied this code.
|
|
||||||
#
|
|
||||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
# version 2 for more details (a copy is included in the LICENSE file that
|
|
||||||
# accompanied this code).
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License version
|
|
||||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
|
||||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
#
|
|
||||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
||||||
# or visit www.oracle.com if you need additional information or have any
|
|
||||||
# questions.
|
|
||||||
#
|
|
||||||
|
|
||||||
# This file contains targets and utilities needed by JPRT.
|
|
||||||
|
|
||||||
# Cygpath is only defined when running on Cygwin
|
|
||||||
ifneq ($(CYGPATH), )
|
|
||||||
# If we get JPRT_ARCHIVE_*BUNDLE externally, make sure they have /cygdrive
|
|
||||||
# style paths
|
|
||||||
ifdef JPRT_ARCHIVE_BUNDLE
|
|
||||||
override JPRT_ARCHIVE_BUNDLE := $(shell $(CYGPATH) -u $(JPRT_ARCHIVE_BUNDLE))
|
|
||||||
endif
|
|
||||||
ifdef JPRT_ARCHIVE_TEST_BUNDLE
|
|
||||||
override JPRT_ARCHIVE_TEST_BUNDLE := \
|
|
||||||
$(shell $(CYGPATH) -u $(JPRT_ARCHIVE_TEST_BUNDLE))
|
|
||||||
endif
|
|
||||||
ifdef JPRT_ARCHIVE_SYMBOLS_BUNDLE
|
|
||||||
override JPRT_ARCHIVE_SYMBOLS_BUNDLE := \
|
|
||||||
$(shell $(CYGPATH) -u $(JPRT_ARCHIVE_SYMBOLS_BUNDLE))
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
# When running in JPRT these will be provided. Need defaults so that this makefile
|
|
||||||
# is valid anyway.
|
|
||||||
ifndef JPRT_ARCHIVE_BUNDLE
|
|
||||||
JPRT_ARCHIVE_BUNDLE=/tmp/jprt_bundles/jdk-image.zip
|
|
||||||
endif
|
|
||||||
ifndef JPRT_ARCHIVE_TEST_BUNDLE
|
|
||||||
JPRT_ARCHIVE_TEST_BUNDLE=/tmp/jprt_bundles/test-image.zip
|
|
||||||
endif
|
|
||||||
ifndef JPRT_ARCHIVE_SYMBOLS_BUNDLE
|
|
||||||
JPRT_ARCHIVE_SYMBOLS_BUNDLE=/tmp/jprt_bundles/symbols-image.zip
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(SKIP_BOOT_CYCLE), false)
|
|
||||||
jprt_bundle: bootcycle-images
|
|
||||||
endif
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
# JPRT specific bundling targets
|
|
||||||
JPRT_TARGET ?= $(DEFAULT_MAKE_TARGET)
|
|
||||||
ifeq ($(JPRT_TARGET), $(DEFAULT_MAKE_TARGET))
|
|
||||||
jprt_bundle: $(DEFAULT_MAKE_TARGET) $(JPRT_ARCHIVE_BUNDLE) \
|
|
||||||
$(JPRT_ARCHIVE_TEST_BUNDLE)
|
|
||||||
|
|
||||||
SRC_JDK_IMAGE_DIR := $(JDK_IMAGE_DIR)
|
|
||||||
SRC_TEST_IMAGE_DIR := $(TEST_IMAGE_DIR)
|
|
||||||
|
|
||||||
# This target must be called in the context of a SPEC file
|
|
||||||
$(JPRT_ARCHIVE_BUNDLE): product-images
|
|
||||||
$(call MakeDir, $(@D))
|
|
||||||
$(CD) $(SRC_JDK_IMAGE_DIR) && $(ZIPEXE) -y -q -r $@ .
|
|
||||||
|
|
||||||
$(JPRT_ARCHIVE_TEST_BUNDLE): test-image
|
|
||||||
$(call MakeDir, $(@D))
|
|
||||||
$(CD) $(SRC_TEST_IMAGE_DIR) && $(ZIPEXE) -y -q -r $@ .
|
|
||||||
|
|
||||||
##############################################################################
|
|
||||||
# Optional symbols bundle
|
|
||||||
ifeq ($(GCOV_ENABLED), true)
|
|
||||||
jprt_bundle: $(JPRT_ARCHIVE_SYMBOLS_BUNDLE)
|
|
||||||
|
|
||||||
$(JPRT_ARCHIVE_SYMBOLS_BUNDLE): product-images
|
|
||||||
$(call MakeDir, $(@D))
|
|
||||||
$(CD) $(SYMBOLS_IMAGE_DIR) && $(ZIPEXE) -y -q -r $@ .
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
|
||||||
##############################################################################
|
|
||||||
|
|
||||||
else
|
|
||||||
# Just fake the main bundle to satisfy JPRT
|
|
||||||
jprt_bundle: $(JPRT_TARGET)
|
|
||||||
@$(call TargetEnter)
|
|
||||||
$(MKDIR) -p $(OUTPUTDIR)/bundles
|
|
||||||
$(CD) $(TOPDIR) && $(TAR) cf - README | $(GZIP) > \
|
|
||||||
$(JPRT_ARCHIVE_BUNDLE)
|
|
||||||
@$(call TargetExit)
|
|
||||||
endif
|
|
||||||
|
|
||||||
ALL_TARGETS += jprt_bundle
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
|
|
||||||
$(eval $(call IncludeCustomExtension, Jprt.gmk))
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# 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
|
||||||
@@ -63,15 +63,15 @@ ifeq ($(OPENJDK_TARGET_OS), macosx)
|
|||||||
|
|
||||||
$(JDK_MACOSX_CONTENTS_DIR)/MacOS/libjli.dylib:
|
$(JDK_MACOSX_CONTENTS_DIR)/MacOS/libjli.dylib:
|
||||||
$(call LogInfo, Creating link $(patsubst $(OUTPUTDIR)/%,%,$@))
|
$(call LogInfo, Creating link $(patsubst $(OUTPUTDIR)/%,%,$@))
|
||||||
$(MKDIR) -p $(@D)
|
$(call MakeTargetDir)
|
||||||
$(RM) $@
|
$(RM) $@
|
||||||
$(LN) -s ../Home/lib/jli/libjli.dylib $@
|
$(LN) -s ../Home/lib/libjli.dylib $@
|
||||||
|
|
||||||
$(JRE_MACOSX_CONTENTS_DIR)/MacOS/libjli.dylib:
|
$(JRE_MACOSX_CONTENTS_DIR)/MacOS/libjli.dylib:
|
||||||
$(call LogInfo, Creating link $(patsubst $(OUTPUTDIR)/%,%,$@))
|
$(call LogInfo, Creating link $(patsubst $(OUTPUTDIR)/%,%,$@))
|
||||||
$(MKDIR) -p $(@D)
|
$(call MakeTargetDir)
|
||||||
$(RM) $@
|
$(RM) $@
|
||||||
$(LN) -s ../Home/lib/jli/libjli.dylib $@
|
$(LN) -s ../Home/lib/libjli.dylib $@
|
||||||
|
|
||||||
$(eval $(call SetupTextFileProcessing, BUILD_JDK_PLIST, \
|
$(eval $(call SetupTextFileProcessing, BUILD_JDK_PLIST, \
|
||||||
SOURCE_FILES := $(MACOSX_PLIST_SRC)/JDK-Info.plist, \
|
SOURCE_FILES := $(MACOSX_PLIST_SRC)/JDK-Info.plist, \
|
||||||
|
|||||||
187
make/Main.gmk
187
make/Main.gmk
@@ -262,6 +262,31 @@ hotspot-ide-project:
|
|||||||
ALL_TARGETS += $(HOTSPOT_VARIANT_TARGETS) $(HOTSPOT_VARIANT_GENSRC_TARGETS) \
|
ALL_TARGETS += $(HOTSPOT_VARIANT_TARGETS) $(HOTSPOT_VARIANT_GENSRC_TARGETS) \
|
||||||
$(HOTSPOT_VARIANT_LIBS_TARGETS) hotspot-ide-project
|
$(HOTSPOT_VARIANT_LIBS_TARGETS) hotspot-ide-project
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Generate libs and launcher targets for creating compile_commands.json fragments
|
||||||
|
define DeclareCompileCommandsRecipe
|
||||||
|
$1-compile-commands:
|
||||||
|
$$(call LogInfo, Generating compile_commands.json fragments for $1)
|
||||||
|
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Main.gmk $1-only \
|
||||||
|
GENERATE_COMPILE_COMMANDS_ONLY=true)
|
||||||
|
|
||||||
|
COMPILE_COMMANDS_TARGETS_$2 += $1-compile-commands
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(foreach t, $(HOTSPOT_VARIANT_LIBS_TARGETS), \
|
||||||
|
$(eval $(call DeclareCompileCommandsRecipe,$t,HOTSPOT)) \
|
||||||
|
)
|
||||||
|
|
||||||
|
$(foreach t, $(LIBS_TARGETS) $(LAUNCHER_TARGETS), \
|
||||||
|
$(eval $(call DeclareCompileCommandsRecipe,$t,JDK)) \
|
||||||
|
)
|
||||||
|
|
||||||
|
compile-commands compile-commands-hotspot:
|
||||||
|
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileCommands.gmk)
|
||||||
|
|
||||||
|
ALL_TARGETS += $(COMPILE_COMMANDS_TARGETS_HOTSPOT) $(COMPILE_COMMANDS_TARGETS_JDK)
|
||||||
|
ALL_TARGETS += compile-commands compile-commands-hotspot
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Build demos targets
|
# Build demos targets
|
||||||
|
|
||||||
@@ -346,10 +371,15 @@ release-file:
|
|||||||
exploded-image-optimize:
|
exploded-image-optimize:
|
||||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f ExplodedImageOptimize.gmk)
|
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f ExplodedImageOptimize.gmk)
|
||||||
|
|
||||||
|
ifeq ($(JCOV_ENABLED), true)
|
||||||
|
jcov-image:
|
||||||
|
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Coverage.gmk jcov-image)
|
||||||
|
endif
|
||||||
|
|
||||||
ALL_TARGETS += store-source-revision create-source-revision-tracker bootcycle-images zip-security \
|
ALL_TARGETS += store-source-revision create-source-revision-tracker bootcycle-images zip-security \
|
||||||
zip-source jrtfs-jar jdk-image legacy-jre-image \
|
zip-source jrtfs-jar jdk-image legacy-jre-image \
|
||||||
symbols-image mac-jdk-bundle mac-legacy-jre-bundle \
|
symbols-image mac-jdk-bundle mac-legacy-jre-bundle \
|
||||||
release-file exploded-image-optimize
|
release-file exploded-image-optimize jcov-image
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Docs targets
|
# Docs targets
|
||||||
@@ -448,10 +478,10 @@ ALL_TARGETS += $(INTERIM_JMOD_TARGETS) interim-image generate-link-opt-data
|
|||||||
#
|
#
|
||||||
|
|
||||||
define DeclareRunTestRecipe
|
define DeclareRunTestRecipe
|
||||||
run-test-$1:
|
test-$1:
|
||||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f RunTests.gmk run-test TEST="$1")
|
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f RunTests.gmk run-test TEST="$1")
|
||||||
|
|
||||||
exploded-run-test-$1:
|
exploded-test-$1:
|
||||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f RunTests.gmk run-test \
|
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f RunTests.gmk run-test \
|
||||||
TEST="$1" JDK_IMAGE_DIR=$(JDK_OUTPUTDIR))
|
TEST="$1" JDK_IMAGE_DIR=$(JDK_OUTPUTDIR))
|
||||||
|
|
||||||
@@ -459,13 +489,16 @@ endef
|
|||||||
|
|
||||||
# ALL_NAMED_TESTS is defined in FindTests.gmk
|
# ALL_NAMED_TESTS is defined in FindTests.gmk
|
||||||
$(foreach t, $(ALL_NAMED_TESTS), $(eval $(call DeclareRunTestRecipe,$t)))
|
$(foreach t, $(ALL_NAMED_TESTS), $(eval $(call DeclareRunTestRecipe,$t)))
|
||||||
ALL_TEST_TARGETS := $(addprefix run-test-, $(ALL_NAMED_TESTS))
|
ALL_TEST_TARGETS := $(addprefix test-, $(ALL_NAMED_TESTS))
|
||||||
ALL_EXPLODED_TEST_TARGETS := $(addprefix exploded-run-test-, $(ALL_NAMED_TESTS))
|
|
||||||
|
# We only support the "exploded-test-gtest" shortcut
|
||||||
|
ALL_EXPLODED_TESTS := gtest
|
||||||
|
ALL_EXPLODED_TEST_TARGETS := $(addprefix exploded-test-, $(ALL_EXPLODED_TESTS))
|
||||||
|
|
||||||
ALL_TARGETS += $(ALL_TEST_TARGETS) $(ALL_EXPLODED_TEST_TARGETS)
|
ALL_TARGETS += $(ALL_TEST_TARGETS) $(ALL_EXPLODED_TEST_TARGETS)
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Build tests
|
# Build tests and microbenchmarks
|
||||||
#
|
#
|
||||||
|
|
||||||
prepare-test-image:
|
prepare-test-image:
|
||||||
@@ -495,13 +528,6 @@ test-image-hotspot-jtreg-graal:
|
|||||||
+($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) -f JtregGraalUnit.gmk \
|
+($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) -f JtregGraalUnit.gmk \
|
||||||
test-image-hotspot-jtreg-graal)
|
test-image-hotspot-jtreg-graal)
|
||||||
|
|
||||||
run-test:
|
|
||||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f RunTests.gmk run-test TEST="$(TEST)")
|
|
||||||
|
|
||||||
exploded-run-test:
|
|
||||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f RunTests.gmk run-test \
|
|
||||||
TEST="$(TEST)" JDK_IMAGE_DIR=$(JDK_OUTPUTDIR))
|
|
||||||
|
|
||||||
ifeq ($(BUILD_GTEST), true)
|
ifeq ($(BUILD_GTEST), true)
|
||||||
test-image-hotspot-gtest:
|
test-image-hotspot-gtest:
|
||||||
+($(CD) $(TOPDIR)/make/hotspot/test && $(MAKE) $(MAKE_ARGS) -f GtestImage.gmk)
|
+($(CD) $(TOPDIR)/make/hotspot/test && $(MAKE) $(MAKE_ARGS) -f GtestImage.gmk)
|
||||||
@@ -516,51 +542,33 @@ ifeq ($(BUILD_FAILURE_HANDLER), true)
|
|||||||
+($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) \
|
+($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) \
|
||||||
-f BuildFailureHandler.gmk build)
|
-f BuildFailureHandler.gmk build)
|
||||||
|
|
||||||
# Runs the tests for the failure handler jtreg extension
|
|
||||||
test-failure-handler:
|
|
||||||
+($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) \
|
|
||||||
-f BuildFailureHandler.gmk test)
|
|
||||||
|
|
||||||
# Copies the failure handler jtreg extension into the test image
|
# Copies the failure handler jtreg extension into the test image
|
||||||
test-image-failure-handler:
|
test-image-failure-handler:
|
||||||
+($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) \
|
+($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) \
|
||||||
-f BuildFailureHandler.gmk images)
|
-f BuildFailureHandler.gmk images)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
build-microbenchmark:
|
||||||
|
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f test/BuildMicrobenchmark.gmk)
|
||||||
|
|
||||||
ALL_TARGETS += prepare-test-image build-test-hotspot-jtreg-native \
|
ALL_TARGETS += prepare-test-image build-test-hotspot-jtreg-native \
|
||||||
test-image-hotspot-jtreg-native build-test-jdk-jtreg-native \
|
test-image-hotspot-jtreg-native build-test-jdk-jtreg-native \
|
||||||
test-image-jdk-jtreg-native build-test-lib build-test-failure-handler \
|
test-image-jdk-jtreg-native build-test-lib build-test-failure-handler \
|
||||||
test-failure-handler test-image-failure-handler test-image-hotspot-gtest \
|
test-failure-handler test-image-failure-handler test-image-hotspot-gtest \
|
||||||
test-image-hotspot-jtreg-graal build-test-hotspot-jtreg-graal \
|
test-image-hotspot-jtreg-graal build-test-hotspot-jtreg-graal \
|
||||||
run-test exploded-run-test
|
build-microbenchmark
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Run tests
|
# Run tests
|
||||||
|
|
||||||
# Run tests specified by $(TEST), or the default test set.
|
|
||||||
test:
|
test:
|
||||||
$(call RunTests, $(TEST), $(JDK_IMAGE_DIR))
|
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f RunTests.gmk run-test TEST="$(TEST)")
|
||||||
|
|
||||||
test-hotspot-jtreg:
|
exploded-test:
|
||||||
$(call RunTests, "hotspot_all", $(JDK_IMAGE_DIR))
|
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f RunTests.gmk run-test \
|
||||||
|
TEST="$(TEST)" JDK_IMAGE_DIR=$(JDK_OUTPUTDIR))
|
||||||
|
|
||||||
test-hotspot-jtreg-native:
|
ALL_TARGETS += test exploded-test
|
||||||
$(call RunTests, "hotspot_native_sanity", $(JDK_IMAGE_DIR))
|
|
||||||
|
|
||||||
test-hotspot-internal:
|
|
||||||
$(call RunTests, "hotspot_internal", $(JDK_OUTPUTDIR))
|
|
||||||
|
|
||||||
test-hotspot-gtest:
|
|
||||||
$(call RunTests, "hotspot_gtest", $(JDK_OUTPUTDIR))
|
|
||||||
|
|
||||||
test-jdk-jtreg-native:
|
|
||||||
$(call RunTests, "jdk_native_sanity", $(JDK_IMAGE_DIR))
|
|
||||||
|
|
||||||
test-make:
|
|
||||||
($(CD) $(TOPDIR)/test/make && $(MAKE) $(MAKE_ARGS) -f TestMake.gmk $(TEST_TARGET))
|
|
||||||
|
|
||||||
ALL_TARGETS += test test-hotspot-jtreg test-hotspot-jtreg-native \
|
|
||||||
test-hotspot-internal test-hotspot-gtest test-jdk-jtreg-native test-make
|
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Bundles
|
# Bundles
|
||||||
@@ -574,7 +582,12 @@ test-bundles:
|
|||||||
docs-bundles:
|
docs-bundles:
|
||||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Bundles.gmk docs-bundles)
|
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Bundles.gmk docs-bundles)
|
||||||
|
|
||||||
ALL_TARGETS += product-bundles test-bundles docs-bundles
|
ifeq ($(JCOV_ENABLED), true)
|
||||||
|
jcov-bundles:
|
||||||
|
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Bundles.gmk jcov-bundles)
|
||||||
|
endif
|
||||||
|
|
||||||
|
ALL_TARGETS += product-bundles test-bundles docs-bundles jcov-bundles
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Install targets
|
# Install targets
|
||||||
@@ -630,6 +643,7 @@ else
|
|||||||
# Declare dependencies between hotspot-<variant>* targets
|
# Declare dependencies between hotspot-<variant>* targets
|
||||||
$(foreach v, $(JVM_VARIANTS), \
|
$(foreach v, $(JVM_VARIANTS), \
|
||||||
$(eval hotspot-$v: hotspot-$v-gensrc hotspot-$v-libs) \
|
$(eval hotspot-$v: hotspot-$v-gensrc hotspot-$v-libs) \
|
||||||
|
$(eval hotspot-$v-gensrc: java.base-copy) \
|
||||||
$(eval hotspot-$v-libs: hotspot-$v-gensrc java.base-copy) \
|
$(eval hotspot-$v-libs: hotspot-$v-gensrc java.base-copy) \
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -691,16 +705,17 @@ else
|
|||||||
# copied and processed.
|
# copied and processed.
|
||||||
java.desktop-gensrc-src: java.base-gensrc java.base-copy
|
java.desktop-gensrc-src: java.base-gensrc java.base-copy
|
||||||
|
|
||||||
# The annotation processing for jdk.internal.vm.ci and jdk.internal.vm.compiler
|
# The annotation processing for jdk.internal.vm.compiler
|
||||||
# needs classes from the current JDK.
|
# and jdk.internal.vm.compiler.management needs classes from the current JDK.
|
||||||
jdk.internal.vm.ci-gensrc-src: $(addsuffix -java, \
|
|
||||||
$(call FindTransitiveDepsForModule, jdk.internal.vm.ci))
|
|
||||||
jdk.internal.vm.compiler-gensrc-src: $(addsuffix -java, \
|
jdk.internal.vm.compiler-gensrc-src: $(addsuffix -java, \
|
||||||
$(call FindTransitiveDepsForModule, jdk.internal.vm.compiler))
|
$(call FindTransitiveDepsForModule, jdk.internal.vm.compiler))
|
||||||
|
jdk.internal.vm.compiler.management-gensrc-src: $(addsuffix -java, \
|
||||||
|
$(call FindTransitiveDepsForModule, jdk.internal.vm.compiler.management))
|
||||||
|
|
||||||
# For jdk.internal.vm.compiler, the gensrc step is generating a module-info.java.extra
|
# For these modules, the gensrc step is generating a module-info.java.extra
|
||||||
# file to be processed by the gensrc-moduleinfo target.
|
# file to be processed by the gensrc-moduleinfo target.
|
||||||
jdk.internal.vm.compiler-gensrc-moduleinfo: jdk.internal.vm.compiler-gensrc-src
|
jdk.internal.vm.compiler-gensrc-moduleinfo: jdk.internal.vm.compiler-gensrc-src
|
||||||
|
jdk.internal.vm.compiler.management-gensrc-moduleinfo: jdk.internal.vm.compiler.management-gensrc-src
|
||||||
|
|
||||||
jdk.jdeps-gendata: java rmic
|
jdk.jdeps-gendata: java rmic
|
||||||
|
|
||||||
@@ -735,6 +750,20 @@ else
|
|||||||
$(foreach m, $(ALL_MODULES), $(eval $m-jmod: $($(m)_JMOD_DEPS)))
|
$(foreach m, $(ALL_MODULES), $(eval $m-jmod: $($(m)_JMOD_DEPS)))
|
||||||
$(foreach m, $(INTERIM_IMAGE_MODULES), $(eval $m-interim-jmod: $($(m)_JMOD_DEPS)))
|
$(foreach m, $(INTERIM_IMAGE_MODULES), $(eval $m-interim-jmod: $($(m)_JMOD_DEPS)))
|
||||||
|
|
||||||
|
# Setup the minimal set of generated native source dependencies for hotspot
|
||||||
|
$(foreach v, $(JVM_VARIANTS), \
|
||||||
|
$(eval hotspot-$v-libs-compile-commands: hotspot-$v-gensrc) \
|
||||||
|
$(foreach m, $(filter java.desktop jdk.hotspot.agent, $(GENSRC_MODULES)), \
|
||||||
|
$(eval hotspot-$v-libs-compile-commands: $m-gensrc)) \
|
||||||
|
)
|
||||||
|
|
||||||
|
# For the full JDK compile commands, create all possible generated sources
|
||||||
|
$(foreach m, $(GENSRC_MODULES), $(eval $m-libs-compile-commands: $m-gensrc))
|
||||||
|
$(foreach m, $(filter $(JAVA_MODULES), $(LIBS_MODULES)), $(eval $m-libs-compile-commands: $m-java))
|
||||||
|
|
||||||
|
compile-commands-hotspot: $(COMPILE_COMMANDS_TARGETS_HOTSPOT)
|
||||||
|
compile-commands: $(COMPILE_COMMANDS_TARGETS_HOTSPOT) $(COMPILE_COMMANDS_TARGETS_JDK)
|
||||||
|
|
||||||
# Jmods cannot be created until we have the jmod tool ready to run. During
|
# Jmods cannot be created until we have the jmod tool ready to run. During
|
||||||
# a normal build we run it from the exploded image, but when cross compiling
|
# a normal build we run it from the exploded image, but when cross compiling
|
||||||
# it's run from the buildjdk, which is either created at build time or user
|
# it's run from the buildjdk, which is either created at build time or user
|
||||||
@@ -775,6 +804,8 @@ else
|
|||||||
|
|
||||||
jrtfs-jar: interim-langtools
|
jrtfs-jar: interim-langtools
|
||||||
|
|
||||||
|
build-microbenchmark: interim-langtools exploded-image
|
||||||
|
|
||||||
ifeq ($(ENABLE_GENERATE_CLASSLIST), true)
|
ifeq ($(ENABLE_GENERATE_CLASSLIST), true)
|
||||||
ifeq ($(CREATE_BUILDJDK), true)
|
ifeq ($(CREATE_BUILDJDK), true)
|
||||||
# If creating a buildjdk, the interim image needs to be based on that.
|
# If creating a buildjdk, the interim image needs to be based on that.
|
||||||
@@ -800,6 +831,10 @@ else
|
|||||||
mac-jdk-bundle: jdk-image
|
mac-jdk-bundle: jdk-image
|
||||||
mac-legacy-jre-bundle: legacy-jre-image
|
mac-legacy-jre-bundle: legacy-jre-image
|
||||||
|
|
||||||
|
ifeq ($(JCOV_INPUT_JDK), )
|
||||||
|
jcov-image: jdk-image
|
||||||
|
endif
|
||||||
|
|
||||||
# The optimize target can run as soon as the modules dir has been completely
|
# The optimize target can run as soon as the modules dir has been completely
|
||||||
# populated (java, copy and gendata targets) and the basic libs and launchers
|
# populated (java, copy and gendata targets) and the basic libs and launchers
|
||||||
# have been built.
|
# have been built.
|
||||||
@@ -827,17 +862,19 @@ else
|
|||||||
docs-jdk-specs: $(JVM_DOCS_TARGETS) jdk.jdi-gensrc \
|
docs-jdk-specs: $(JVM_DOCS_TARGETS) jdk.jdi-gensrc \
|
||||||
docs-jdk-index
|
docs-jdk-index
|
||||||
|
|
||||||
docs-jdk-index: exploded-image buildtools-modules
|
|
||||||
|
|
||||||
docs-zip: docs-jdk
|
docs-zip: docs-jdk
|
||||||
|
|
||||||
|
# Tests
|
||||||
test: jdk-image test-image
|
test: jdk-image test-image
|
||||||
|
|
||||||
run-test: jdk-image test-image
|
exploded-test: exploded-image test-image
|
||||||
exploded-run-test: exploded-image test-image
|
|
||||||
|
test-make: clean-test-make compile-commands
|
||||||
|
|
||||||
|
test-make-compile-commands: compile-commands
|
||||||
|
|
||||||
# Declare dependency for all generated test targets
|
# Declare dependency for all generated test targets
|
||||||
$(foreach t, $(ALL_TEST_TARGETS), $(eval $t: jdk-image test-image))
|
$(foreach t, $(filter-out test-make%, $(ALL_TEST_TARGETS)), $(eval $t: jdk-image test-image))
|
||||||
$(foreach t, $(ALL_EXPLODED_TEST_TARGETS), $(eval $t: exploded-image test-image))
|
$(foreach t, $(ALL_EXPLODED_TEST_TARGETS), $(eval $t: exploded-image test-image))
|
||||||
|
|
||||||
create-buildjdk-copy: jdk.jlink-java java.base-gendata \
|
create-buildjdk-copy: jdk.jlink-java java.base-gendata \
|
||||||
@@ -847,14 +884,10 @@ else
|
|||||||
|
|
||||||
interim-image: $(INTERIM_JMOD_TARGETS)
|
interim-image: $(INTERIM_JMOD_TARGETS)
|
||||||
|
|
||||||
test-make: clean-test-make
|
|
||||||
|
|
||||||
build-test-lib: exploded-image-optimize
|
build-test-lib: exploded-image-optimize
|
||||||
|
|
||||||
build-test-failure-handler: interim-langtools
|
build-test-failure-handler: interim-langtools
|
||||||
|
|
||||||
test-failure-handler: build-test-failure-handler
|
|
||||||
|
|
||||||
test-image-failure-handler: build-test-failure-handler
|
test-image-failure-handler: build-test-failure-handler
|
||||||
|
|
||||||
build-test-hotspot-jtreg-native: buildtools-jdk \
|
build-test-hotspot-jtreg-native: buildtools-jdk \
|
||||||
@@ -872,12 +905,6 @@ else
|
|||||||
|
|
||||||
test-image-hotspot-gtest: hotspot
|
test-image-hotspot-gtest: hotspot
|
||||||
|
|
||||||
test-hotspot-internal: exploded-image
|
|
||||||
|
|
||||||
test-hotspot-jtreg: jdk-image test-image
|
|
||||||
|
|
||||||
test-hotspot-gtest: exploded-image test-image-hotspot-gtest
|
|
||||||
|
|
||||||
install: product-images
|
install: product-images
|
||||||
|
|
||||||
product-bundles: product-images
|
product-bundles: product-images
|
||||||
@@ -886,6 +913,8 @@ else
|
|||||||
|
|
||||||
docs-bundles: docs-image
|
docs-bundles: docs-image
|
||||||
|
|
||||||
|
jcov-bundles: jcov-image
|
||||||
|
|
||||||
generate-summary: jmods buildtools-modules
|
generate-summary: jmods buildtools-modules
|
||||||
|
|
||||||
update-x11wrappers: java.base-copy buildtools-jdk
|
update-x11wrappers: java.base-copy buildtools-jdk
|
||||||
@@ -1015,6 +1044,10 @@ test-image: prepare-test-image \
|
|||||||
test-image-jdk-jtreg-native test-image-failure-handler \
|
test-image-jdk-jtreg-native test-image-failure-handler \
|
||||||
test-image-demos-jdk $(JVM_TEST_IMAGE_TARGETS)
|
test-image-demos-jdk $(JVM_TEST_IMAGE_TARGETS)
|
||||||
|
|
||||||
|
ifneq ($(JMH_CORE_JAR), )
|
||||||
|
test-image: build-microbenchmark
|
||||||
|
endif
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
# all-images builds all our deliverables as images.
|
# all-images builds all our deliverables as images.
|
||||||
@@ -1046,6 +1079,28 @@ all: all-images
|
|||||||
|
|
||||||
ALL_TARGETS += default jdk images docs bundles all
|
ALL_TARGETS += default jdk images docs bundles all
|
||||||
|
|
||||||
|
# Aliases used for running tests.
|
||||||
|
|
||||||
|
# Let "run-test" be an alias for "test"
|
||||||
|
$(foreach t, $(ALL_NAMED_TESTS), $(eval run-test-$t: test-$t))
|
||||||
|
RUN_TEST_TARGETS := $(addprefix run-test-, $(ALL_NAMED_TESTS))
|
||||||
|
|
||||||
|
run-test: test
|
||||||
|
exploded-run-test: exploded-test
|
||||||
|
|
||||||
|
# "make check" is a common idiom for running basic testing
|
||||||
|
check: test-tier1
|
||||||
|
|
||||||
|
# Keep some old names as aliases
|
||||||
|
test-hotspot-jtreg: test-hotspot_all
|
||||||
|
test-hotspot-jtreg-native: test-hotspot_native_sanity
|
||||||
|
test-hotspot-gtest: exploded-test-gtest
|
||||||
|
test-jdk-jtreg-native: test-jdk_native_sanity
|
||||||
|
|
||||||
|
ALL_TARGETS += $(RUN_TEST_TARGETS) run-test exploded-run-test check \
|
||||||
|
test-hotspot-jtreg test-hotspot-jtreg-native test-hotspot-gtest \
|
||||||
|
test-jdk-jtreg-native
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
################################################################################
|
################################################################################
|
||||||
#
|
#
|
||||||
@@ -1071,7 +1126,7 @@ CLEAN_MODULE_PHASE_TARGETS := $(addprefix clean-, $(foreach m, $(ALL_MODULES), \
|
|||||||
|
|
||||||
# Remove everything, except the output from configure.
|
# Remove everything, except the output from configure.
|
||||||
clean: $(CLEAN_DIR_TARGETS)
|
clean: $(CLEAN_DIR_TARGETS)
|
||||||
($(CD) $(OUTPUTDIR) && $(RM) -r build*.log*)
|
($(CD) $(OUTPUTDIR) && $(RM) -r build*.log* compile_commands.json)
|
||||||
$(ECHO) Cleaned all build artifacts.
|
$(ECHO) Cleaned all build artifacts.
|
||||||
|
|
||||||
clean-docs:
|
clean-docs:
|
||||||
@@ -1107,7 +1162,8 @@ clean-test: clean-test-results clean-test-support
|
|||||||
# directory was created by configure and now becomes empty, remove it as well.
|
# directory was created by configure and now becomes empty, remove it as well.
|
||||||
dist-clean: clean
|
dist-clean: clean
|
||||||
($(CD) $(OUTPUTDIR) && \
|
($(CD) $(OUTPUTDIR) && \
|
||||||
$(RM) -r *spec.gmk $(CONFIGURESUPPORT_OUTPUTDIR) Makefile compare.sh ide)
|
$(RM) -r *spec.gmk $(CONFIGURESUPPORT_OUTPUTDIR) Makefile compare.sh ide \
|
||||||
|
configure.log* build.log*)
|
||||||
$(if $(filter $(CONF_NAME),$(notdir $(OUTPUTDIR))), \
|
$(if $(filter $(CONF_NAME),$(notdir $(OUTPUTDIR))), \
|
||||||
if test "x`$(LS) $(OUTPUTDIR)`" != x; then \
|
if test "x`$(LS) $(OUTPUTDIR)`" != x; then \
|
||||||
$(ECHO) "Warning: Not removing non-empty configuration directory for '$(CONF_NAME)'" ; \
|
$(ECHO) "Warning: Not removing non-empty configuration directory for '$(CONF_NAME)'" ; \
|
||||||
@@ -1130,11 +1186,6 @@ ALL_TARGETS += $(addsuffix -only, $(filter-out dist-clean clean%, $(ALL_TARGETS)
|
|||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
# Include JPRT targets
|
|
||||||
include $(TOPDIR)/make/Jprt.gmk
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
|
|
||||||
# The following targets are intentionally not added to ALL_TARGETS since they
|
# The following targets are intentionally not added to ALL_TARGETS since they
|
||||||
# are internal only, to support Init.gmk.
|
# are internal only, to support Init.gmk.
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -30,17 +30,6 @@
|
|||||||
ifndef _MAINSUPPORT_GMK
|
ifndef _MAINSUPPORT_GMK
|
||||||
_MAINSUPPORT_GMK := 1
|
_MAINSUPPORT_GMK := 1
|
||||||
|
|
||||||
# Run the tests specified by $1, with PRODUCT_HOME specified by $2
|
|
||||||
# JT_JAVA is picked up by the jtreg launcher and used to run Jtreg itself.
|
|
||||||
define RunTests
|
|
||||||
($(CD) $(TOPDIR)/test && $(MAKE) $(MAKE_ARGS) -j1 -k MAKEFLAGS= \
|
|
||||||
JT_HOME=$(JT_HOME) PRODUCT_HOME=$(strip $2) \
|
|
||||||
TEST_IMAGE_DIR=$(TEST_IMAGE_DIR) \
|
|
||||||
ALT_OUTPUTDIR=$(OUTPUTDIR) TEST_JOBS=$(TEST_JOBS) \
|
|
||||||
JT_JAVA=$(BOOT_JDK) JIB_JAR=$(JIB_JAR) \
|
|
||||||
JOBS=$(JOBS) $1) || true
|
|
||||||
endef
|
|
||||||
|
|
||||||
define CleanDocs
|
define CleanDocs
|
||||||
@$(PRINTF) "Cleaning docs ..."
|
@$(PRINTF) "Cleaning docs ..."
|
||||||
@$(PRINTF) "\n" $(LOG_DEBUG)
|
@$(PRINTF) "\n" $(LOG_DEBUG)
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -93,6 +93,12 @@ $(eval $(call SetupCopyFiles, COPY_CMDS, \
|
|||||||
FILES := $(filter $(SUPPORT_OUTPUTDIR)/modules_cmds/$(MODULE)/%, $(TARGETS)), \
|
FILES := $(filter $(SUPPORT_OUTPUTDIR)/modules_cmds/$(MODULE)/%, $(TARGETS)), \
|
||||||
))
|
))
|
||||||
|
|
||||||
|
$(eval $(call SetupCopyFiles, COPY_MAN, \
|
||||||
|
SRC := $(SUPPORT_OUTPUTDIR)/modules_man/$(MODULE), \
|
||||||
|
DEST := $(JDK_OUTPUTDIR)/man, \
|
||||||
|
FILES := $(filter $(SUPPORT_OUTPUTDIR)/modules_man/$(MODULE)/%, $(TARGETS)), \
|
||||||
|
))
|
||||||
|
|
||||||
$(eval $(call SetupCopyFiles, COPY_CONF, \
|
$(eval $(call SetupCopyFiles, COPY_CONF, \
|
||||||
SRC := $(SUPPORT_OUTPUTDIR)/modules_conf/$(MODULE), \
|
SRC := $(SUPPORT_OUTPUTDIR)/modules_conf/$(MODULE), \
|
||||||
DEST := $(JDK_OUTPUTDIR)/conf, \
|
DEST := $(JDK_OUTPUTDIR)/conf, \
|
||||||
@@ -100,5 +106,9 @@ $(eval $(call SetupCopyFiles, COPY_CONF, \
|
|||||||
$(TARGETS)), \
|
$(TARGETS)), \
|
||||||
))
|
))
|
||||||
|
|
||||||
all: $(TARGETS) $(COPY_LIBS_TO_BIN) $(COPY_LIBS_TO_LIB) \
|
ifeq ($(GENERATE_COMPILE_COMMANDS_ONLY), true)
|
||||||
$(COPY_INCLUDE) $(COPY_CMDS) $(COPY_CONF) $(LINK_LIBS_TO_LIB)
|
all: $(filter $(MAKESUPPORT_OUTPUTDIR)/compile-commands/%, $(TARGETS))
|
||||||
|
else
|
||||||
|
all: $(TARGETS) $(COPY_LIBS_TO_BIN) $(COPY_LIBS_TO_LIB) \
|
||||||
|
$(COPY_INCLUDE) $(COPY_CMDS) $(COPY_MAN) $(COPY_CONF) $(LINK_LIBS_TO_LIB)
|
||||||
|
endif
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2016, 2018, 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,8 +45,8 @@ ifneq ($(TEST_VM_OPTS), )
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
$(eval $(call ParseKeywordVariable, TEST_OPTS, \
|
$(eval $(call ParseKeywordVariable, TEST_OPTS, \
|
||||||
KEYWORDS := JOBS TIMEOUT, \
|
SINGLE_KEYWORDS := JOBS TIMEOUT_FACTOR AOT_MODULES, \
|
||||||
STRING_KEYWORDS := VM_OPTIONS, \
|
STRING_KEYWORDS := VM_OPTIONS JAVA_OPTIONS, \
|
||||||
))
|
))
|
||||||
|
|
||||||
# Helper function to propagate TEST_OPTS values.
|
# Helper function to propagate TEST_OPTS values.
|
||||||
@@ -65,10 +65,14 @@ ifeq ($(OPENJDK_TARGET_OS), windows)
|
|||||||
ifndef _NT_SYMBOL_PATH
|
ifndef _NT_SYMBOL_PATH
|
||||||
# Can't use PathList here as it adds quotes around the value.
|
# Can't use PathList here as it adds quotes around the value.
|
||||||
_NT_SYMBOL_PATH := \
|
_NT_SYMBOL_PATH := \
|
||||||
$(subst $(SPACE),;, $(foreach p, $(sort $(dir $(wildcard \
|
$(subst $(SPACE),;,$(strip \
|
||||||
$(addprefix $(SYMBOLS_IMAGE_DIR)/bin/, *.pdb */*.pdb)))), $(call FixPath, $p)))
|
$(foreach p, $(sort $(dir $(wildcard \
|
||||||
|
$(addprefix $(SYMBOLS_IMAGE_DIR)/bin/, *.pdb */*.pdb)))), \
|
||||||
|
$(call FixPath, $p) \
|
||||||
|
) \
|
||||||
|
))
|
||||||
export _NT_SYMBOL_PATH
|
export _NT_SYMBOL_PATH
|
||||||
$(info _NT_SYMBOL_PATH $(_NT_SYMBOL_PATH))
|
$(info _NT_SYMBOL_PATH=$(_NT_SYMBOL_PATH))
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -103,6 +107,129 @@ endif
|
|||||||
GTEST_LAUNCHER_DIRS := $(patsubst %/gtestLauncher, %, $(wildcard $(TEST_IMAGE_DIR)/hotspot/gtest/*/gtestLauncher))
|
GTEST_LAUNCHER_DIRS := $(patsubst %/gtestLauncher, %, $(wildcard $(TEST_IMAGE_DIR)/hotspot/gtest/*/gtestLauncher))
|
||||||
GTEST_VARIANTS := $(strip $(patsubst $(TEST_IMAGE_DIR)/hotspot/gtest/%, %, $(GTEST_LAUNCHER_DIRS)))
|
GTEST_VARIANTS := $(strip $(patsubst $(TEST_IMAGE_DIR)/hotspot/gtest/%, %, $(GTEST_LAUNCHER_DIRS)))
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Optionally create AOT libraries for specified modules before running tests.
|
||||||
|
# Note, this could not be done during JDK build time.
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
# Note, this could not be done during JDK build time.
|
||||||
|
|
||||||
|
# Parameter 1 is the name of the rule.
|
||||||
|
#
|
||||||
|
# Remaining parameters are named arguments.
|
||||||
|
# MODULE The module to generate a library for
|
||||||
|
# BIN Output directory in which to put the library
|
||||||
|
# VM_OPTIONS List of JVM arguments to use when creating library
|
||||||
|
# OPTIONS_VAR Name of variable to put AOT java options in
|
||||||
|
# PREREQS_VAR Name of variable to put all AOT prerequisite rule targets in
|
||||||
|
# for test rules to depend on
|
||||||
|
#
|
||||||
|
SetupAotModule = $(NamedParamsMacroTemplate)
|
||||||
|
define SetupAotModuleBody
|
||||||
|
$1_AOT_LIB := $$($1_BIN)/$$(call SHARED_LIBRARY,$$($1_MODULE))
|
||||||
|
$1_AOT_CCLIST := $$(wildcard $$(TOPDIR)/test/hotspot/jtreg/compiler/aot/scripts/$$($1_MODULE)-list.txt)
|
||||||
|
|
||||||
|
ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||||
|
$1_LD := $$(addsuffix $$(EXE_SUFFIX), $$(filter-out $$(FIXPATH), $$(LD)))
|
||||||
|
else
|
||||||
|
$1_LD := $$(LD)
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Create jaotc flags.
|
||||||
|
# VM flags which don't affect AOT code generation are filtered out: -Xcomp, -XX:+-TieredCompilation
|
||||||
|
$1_JAOTC_OPTS := \
|
||||||
|
-J-Xmx4g --info \
|
||||||
|
$$(addprefix -J, $$(filter-out -Xcomp %TieredCompilation, $$($1_VM_OPTIONS))) \
|
||||||
|
$$(addprefix --compile-commands$(SPACE), $$($1_AOT_CCLIST)) \
|
||||||
|
--linker-path $$($1_LD) \
|
||||||
|
#
|
||||||
|
|
||||||
|
ifneq ($$(filter -ea, $$($1_VM_OPTIONS)), )
|
||||||
|
$1_JAOTC_OPTS += --compile-with-assertions
|
||||||
|
endif
|
||||||
|
|
||||||
|
$$($1_AOT_LIB): $$(JDK_IMAGE_DIR)/release \
|
||||||
|
$$(call DependOnVariable, $1_JAOTC_OPTS) \
|
||||||
|
$$(call DependOnVariable, JDK_IMAGE_DIR)
|
||||||
|
$$(call LogWarn, Generating $$(patsubst $$(OUTPUTDIR)/%, %, $$@))
|
||||||
|
$$(call MakeTargetDir)
|
||||||
|
$$(call ExecuteWithLog, $$@, \
|
||||||
|
$$(FIXPATH) $$(JDK_IMAGE_DIR)/bin/jaotc \
|
||||||
|
$$($1_JAOTC_OPTS) --output $$@ --module $$($1_MODULE) \
|
||||||
|
)
|
||||||
|
$$(call ExecuteWithLog, $$@.check, \
|
||||||
|
$$(FIXPATH) $$(JDK_IMAGE_DIR)/bin/java \
|
||||||
|
$$($1_VM_OPTIONS) -XX:+PrintAOT -XX:+UseAOTStrictLoading -XX:AOTLibrary=$$@ -version \
|
||||||
|
> $$@.verify-aot \
|
||||||
|
)
|
||||||
|
|
||||||
|
$1_AOT_OPTIONS += -XX:AOTLibrary=$$($1_AOT_LIB)
|
||||||
|
$1_AOT_TARGETS += $$($1_AOT_LIB)
|
||||||
|
endef
|
||||||
|
|
||||||
|
# Parameter 1 is the name of the rule.
|
||||||
|
#
|
||||||
|
# Remaining parameters are named arguments.
|
||||||
|
# MODULES The modules to generate a library for
|
||||||
|
# VM_OPTIONS List of JVM arguments to use when creating libraries
|
||||||
|
#
|
||||||
|
# After calling this, the following variables are defined
|
||||||
|
# $1_AOT_OPTIONS List of all java options needed to use the AOT libraries
|
||||||
|
# $1_AOT_TARGETS List of all targets that the test rule will need to depend on
|
||||||
|
#
|
||||||
|
SetupAot = $(NamedParamsMacroTemplate)
|
||||||
|
define SetupAotBody
|
||||||
|
$$(info Running with AOTd libraries for $$($1_MODULES))
|
||||||
|
# Put aot libraries in a separate directory so they are not deleted between
|
||||||
|
# test runs and may be reused between make invocations.
|
||||||
|
$$(foreach m, $$($1_MODULES), \
|
||||||
|
$$(eval $$(call SetupAotModule, $1_$$m, \
|
||||||
|
MODULE := $$m, \
|
||||||
|
BIN := $$(TEST_SUPPORT_DIR)/aot/$1, \
|
||||||
|
VM_OPTIONS := $$($1_VM_OPTIONS), \
|
||||||
|
)) \
|
||||||
|
$$(eval $1_AOT_OPTIONS += $$($1_$$m_AOT_OPTIONS)) \
|
||||||
|
$$(eval $1_AOT_TARGETS += $$($1_$$m_AOT_TARGETS)) \
|
||||||
|
)
|
||||||
|
endef
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Setup global test running parameters
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
# Each factor variable comes in 3 variants. The first one is reserved for users
|
||||||
|
# to use on command line. The other two are for predifined configurations in JDL
|
||||||
|
# and for machine specific configurations respectively.
|
||||||
|
TEST_JOBS_FACTOR ?= 1
|
||||||
|
TEST_JOBS_FACTOR_JDL ?= 1
|
||||||
|
TEST_JOBS_FACTOR_MACHINE ?= 1
|
||||||
|
|
||||||
|
ifeq ($(TEST_JOBS), 0)
|
||||||
|
CORES_DIVIDER := 2
|
||||||
|
ifeq ($(OPENJDK_TARGET_CPU_ARCH), sparc)
|
||||||
|
# For smaller SPARC machines we see reasonable scaling of throughput up to
|
||||||
|
# cpus/4 without affecting test reliability. On the bigger machines, cpus/4
|
||||||
|
# causes intermittent timeouts.
|
||||||
|
ifeq ($(shell $(EXPR) $(NUM_CORES) \> 16), 1)
|
||||||
|
CORES_DIVIDER := 5
|
||||||
|
else
|
||||||
|
CORES_DIVIDER := 4
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
MEMORY_DIVIDER := 2048
|
||||||
|
TEST_JOBS := $(shell $(AWK) \
|
||||||
|
'BEGIN { \
|
||||||
|
c = $(NUM_CORES) / $(CORES_DIVIDER); \
|
||||||
|
m = $(MEMORY_SIZE) / $(MEMORY_DIVIDER); \
|
||||||
|
if (c > m) c = m; \
|
||||||
|
c = c * $(TEST_JOBS_FACTOR); \
|
||||||
|
c = c * $(TEST_JOBS_FACTOR_JDL); \
|
||||||
|
c = c * $(TEST_JOBS_FACTOR_MACHINE); \
|
||||||
|
if (c < 1) c = 1; \
|
||||||
|
printf "%.0f", c; \
|
||||||
|
}')
|
||||||
|
endif
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Parse control variables
|
# Parse control variables
|
||||||
################################################################################
|
################################################################################
|
||||||
@@ -110,16 +237,20 @@ GTEST_VARIANTS := $(strip $(patsubst $(TEST_IMAGE_DIR)/hotspot/gtest/%, %, $(GTE
|
|||||||
ifneq ($(TEST_OPTS), )
|
ifneq ($(TEST_OPTS), )
|
||||||
# Inform the user
|
# Inform the user
|
||||||
$(info Running tests using TEST_OPTS control variable '$(TEST_OPTS)')
|
$(info Running tests using TEST_OPTS control variable '$(TEST_OPTS)')
|
||||||
|
|
||||||
$(eval $(call SetTestOpt,VM_OPTIONS,JTREG))
|
|
||||||
$(eval $(call SetTestOpt,VM_OPTIONS,GTEST))
|
|
||||||
|
|
||||||
$(eval $(call SetTestOpt,JOBS,JTREG))
|
|
||||||
$(eval $(call SetTestOpt,TIMEOUT,JTREG))
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
### Jtreg
|
||||||
|
|
||||||
|
$(eval $(call SetTestOpt,VM_OPTIONS,JTREG))
|
||||||
|
$(eval $(call SetTestOpt,JAVA_OPTIONS,JTREG))
|
||||||
|
$(eval $(call SetTestOpt,AOT_MODULES,JTREG))
|
||||||
|
|
||||||
|
$(eval $(call SetTestOpt,JOBS,JTREG))
|
||||||
|
$(eval $(call SetTestOpt,TIMEOUT_FACTOR,JTREG))
|
||||||
|
|
||||||
$(eval $(call ParseKeywordVariable, JTREG, \
|
$(eval $(call ParseKeywordVariable, JTREG, \
|
||||||
KEYWORDS := JOBS TIMEOUT TEST_MODE ASSERT VERBOSE RETAIN MAX_MEM, \
|
SINGLE_KEYWORDS := JOBS TIMEOUT_FACTOR TEST_MODE ASSERT VERBOSE RETAIN MAX_MEM \
|
||||||
|
EXTRA_PROBLEM_LISTS KEYWORDS AOT_MODULES, \
|
||||||
STRING_KEYWORDS := OPTIONS JAVA_OPTIONS VM_OPTIONS, \
|
STRING_KEYWORDS := OPTIONS JAVA_OPTIONS VM_OPTIONS, \
|
||||||
))
|
))
|
||||||
|
|
||||||
@@ -128,9 +259,15 @@ ifneq ($(JTREG), )
|
|||||||
$(info Running tests using JTREG control variable '$(JTREG)')
|
$(info Running tests using JTREG control variable '$(JTREG)')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
### Gtest
|
||||||
|
|
||||||
|
$(eval $(call SetTestOpt,VM_OPTIONS,GTEST))
|
||||||
|
$(eval $(call SetTestOpt,JAVA_OPTIONS,GTEST))
|
||||||
|
$(eval $(call SetTestOpt,AOT_MODULES,GTEST))
|
||||||
|
|
||||||
$(eval $(call ParseKeywordVariable, GTEST, \
|
$(eval $(call ParseKeywordVariable, GTEST, \
|
||||||
KEYWORDS := REPEAT, \
|
SINGLE_KEYWORDS := REPEAT AOT_MODULES, \
|
||||||
STRING_KEYWORDS := OPTIONS VM_OPTIONS, \
|
STRING_KEYWORDS := OPTIONS VM_OPTIONS JAVA_OPTIONS, \
|
||||||
))
|
))
|
||||||
|
|
||||||
ifneq ($(GTEST), )
|
ifneq ($(GTEST), )
|
||||||
@@ -138,22 +275,26 @@ ifneq ($(GTEST), )
|
|||||||
$(info Running tests using GTEST control variable '$(GTEST)')
|
$(info Running tests using GTEST control variable '$(GTEST)')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
### Microbenchmarks
|
||||||
|
|
||||||
|
$(eval $(call SetTestOpt,VM_OPTIONS,MICRO))
|
||||||
|
$(eval $(call SetTestOpt,JAVA_OPTIONS,MICRO))
|
||||||
|
|
||||||
|
$(eval $(call ParseKeywordVariable, MICRO, \
|
||||||
|
SINGLE_KEYWORDS := ITER FORK TIME WARMUP_ITER WARMUP_TIME, \
|
||||||
|
STRING_KEYWORDS := OPTIONS JAVA_OPTIONS VM_OPTIONS RESULTS_FORMAT TEST_JDK BENCHMARKS_JAR, \
|
||||||
|
))
|
||||||
|
|
||||||
|
ifneq ($(MICRO), )
|
||||||
|
# Inform the user
|
||||||
|
$(info Running tests using MICRO control variable '$(MICRO)')
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Component-specific Jtreg settings
|
# Component-specific Jtreg settings
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
ifeq ($(TEST_JOBS), 0)
|
|
||||||
# If TEST_JOBS is not specified, hotspot fallback default is
|
|
||||||
# min(num_cores / 2, 12).
|
|
||||||
hotspot_JTREG_JOBS := $(shell $(EXPR) $(NUM_CORES) / 2)
|
|
||||||
ifeq ($(hotspot_JTREG_JOBS), 0)
|
|
||||||
hotspot_JTREG_JOBS := 1
|
|
||||||
else ifeq ($(shell $(EXPR) $(hotspot_JTREG_JOBS) \> 12), 1)
|
|
||||||
hotspot_JTREG_JOBS := 12
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
hotspot_JTREG_MAX_MEM := 0
|
hotspot_JTREG_MAX_MEM := 0
|
||||||
hotspot_JTREG_ASSERT := false
|
hotspot_JTREG_ASSERT := false
|
||||||
hotspot_JTREG_NATIVEPATH := $(TEST_IMAGE_DIR)/hotspot/jtreg/native
|
hotspot_JTREG_NATIVEPATH := $(TEST_IMAGE_DIR)/hotspot/jtreg/native
|
||||||
@@ -165,6 +306,8 @@ langtools_JTREG_PROBLEM_LIST += $(TOPDIR)/test/langtools/ProblemList.txt
|
|||||||
nashorn_JTREG_PROBLEM_LIST += $(TOPDIR)/test/nashorn/ProblemList.txt
|
nashorn_JTREG_PROBLEM_LIST += $(TOPDIR)/test/nashorn/ProblemList.txt
|
||||||
hotspot_JTREG_PROBLEM_LIST += $(TOPDIR)/test/hotspot/jtreg/ProblemList.txt
|
hotspot_JTREG_PROBLEM_LIST += $(TOPDIR)/test/hotspot/jtreg/ProblemList.txt
|
||||||
|
|
||||||
|
langtools_JTREG_MAX_MEM := 768m
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Parse test selection
|
# Parse test selection
|
||||||
#
|
#
|
||||||
@@ -203,6 +346,24 @@ define ParseGtestTestSelection
|
|||||||
)
|
)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
# Helper function to determine if a test specification is a microbenchmark test
|
||||||
|
#
|
||||||
|
# It is a microbenchmark test if it is either "micro", or "micro:" followed by an optional
|
||||||
|
# test filter string.
|
||||||
|
define ParseMicroTestSelection
|
||||||
|
$(if $(filter micro%, $1), \
|
||||||
|
$(if $(filter micro, $1), \
|
||||||
|
micro:all \
|
||||||
|
, \
|
||||||
|
$(if $(filter micro:, $1), \
|
||||||
|
micro:all \
|
||||||
|
, \
|
||||||
|
$1 \
|
||||||
|
) \
|
||||||
|
) \
|
||||||
|
)
|
||||||
|
endef
|
||||||
|
|
||||||
# Helper function that removes the TOPDIR part
|
# Helper function that removes the TOPDIR part
|
||||||
CleanupJtregPath = \
|
CleanupJtregPath = \
|
||||||
$(strip $(patsubst %/, %, $(subst $(JTREG_TOPDIR)/,, $1)))
|
$(strip $(patsubst %/, %, $(subst $(JTREG_TOPDIR)/,, $1)))
|
||||||
@@ -277,16 +438,32 @@ endef
|
|||||||
|
|
||||||
# Helper function to determine if a test specification is a special test
|
# Helper function to determine if a test specification is a special test
|
||||||
#
|
#
|
||||||
# It is a special test if it is "special:" followed by a test name.
|
# It is a special test if it is "special:" followed by a test name,
|
||||||
|
# if it is "make:" or "make-" followed by a make test, or any of the special test names
|
||||||
|
# as a single word.
|
||||||
define ParseSpecialTestSelection
|
define ParseSpecialTestSelection
|
||||||
$(if $(filter special:%, $1), \
|
$(if $(filter special:%, $1), \
|
||||||
$1 \
|
$1 \
|
||||||
|
) \
|
||||||
|
$(if $(filter make%, $1), \
|
||||||
|
$(if $(filter make:%, $1), \
|
||||||
|
special:$(strip $1) \
|
||||||
|
) \
|
||||||
|
$(if $(filter make-%, $1), \
|
||||||
|
special:$(patsubst make-%,make:%, $1) \
|
||||||
|
) \
|
||||||
|
$(if $(filter make, $1), \
|
||||||
|
special:make:all \
|
||||||
|
)
|
||||||
|
) \
|
||||||
|
$(if $(filter failure-handler, $1), \
|
||||||
|
special:$(strip $1) \
|
||||||
)
|
)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
ifeq ($(TEST), )
|
ifeq ($(TEST), )
|
||||||
$(info No test selection given in TEST!)
|
$(info No test selection given in TEST!)
|
||||||
$(info Please use e.g. 'run-test TEST=tier1' or 'run-test-tier1')
|
$(info Please use e.g. 'make test TEST=tier1' or 'make test-tier1')
|
||||||
$(info See doc/testing.[md|html] for help)
|
$(info See doc/testing.[md|html] for help)
|
||||||
$(error Cannot continue)
|
$(error Cannot continue)
|
||||||
endif
|
endif
|
||||||
@@ -299,6 +476,9 @@ $(foreach test, $(TEST), \
|
|||||||
$(if $(strip $(PARSED_TESTS)), , \
|
$(if $(strip $(PARSED_TESTS)), , \
|
||||||
$(eval PARSED_TESTS += $(call ParseGtestTestSelection, $(test))) \
|
$(eval PARSED_TESTS += $(call ParseGtestTestSelection, $(test))) \
|
||||||
) \
|
) \
|
||||||
|
$(if $(strip $(PARSED_TESTS)), , \
|
||||||
|
$(eval PARSED_TESTS += $(call ParseMicroTestSelection, $(test))) \
|
||||||
|
) \
|
||||||
$(if $(strip $(PARSED_TESTS)), , \
|
$(if $(strip $(PARSED_TESTS)), , \
|
||||||
$(eval PARSED_TESTS += $(call ParseJtregTestSelection, $(test))) \
|
$(eval PARSED_TESTS += $(call ParseJtregTestSelection, $(test))) \
|
||||||
) \
|
) \
|
||||||
@@ -368,7 +548,14 @@ define SetupRunGtestTestBody
|
|||||||
$1_GTEST_REPEAT :=--gtest_repeat=$$(GTEST_REPEAT)
|
$1_GTEST_REPEAT :=--gtest_repeat=$$(GTEST_REPEAT)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
run-test-$1:
|
ifneq ($$(GTEST_AOT_MODULES), )
|
||||||
|
$$(eval $$(call SetupAot, $1, \
|
||||||
|
MODULES := $$(GTEST_AOT_MODULES), \
|
||||||
|
VM_OPTIONS := $$(GTEST_VM_OPTIONS) $$(GTEST_JAVA_OPTIONS), \
|
||||||
|
))
|
||||||
|
endif
|
||||||
|
|
||||||
|
run-test-$1: $$($1_AOT_TARGETS)
|
||||||
$$(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))
|
||||||
@@ -377,6 +564,7 @@ define SetupRunGtestTestBody
|
|||||||
-jdk $(JDK_IMAGE_DIR) $$($1_GTEST_FILTER) \
|
-jdk $(JDK_IMAGE_DIR) $$($1_GTEST_FILTER) \
|
||||||
--gtest_output=xml:$$($1_TEST_RESULTS_DIR)/gtest.xml \
|
--gtest_output=xml:$$($1_TEST_RESULTS_DIR)/gtest.xml \
|
||||||
$$($1_GTEST_REPEAT) $$(GTEST_OPTIONS) $$(GTEST_VM_OPTIONS) \
|
$$($1_GTEST_REPEAT) $$(GTEST_OPTIONS) $$(GTEST_VM_OPTIONS) \
|
||||||
|
$$(GTEST_JAVA_OPTIONS) $$($1_AOT_OPTIONS) \
|
||||||
> >($(TEE) $$($1_TEST_RESULTS_DIR)/gtest.txt) \
|
> >($(TEE) $$($1_TEST_RESULTS_DIR)/gtest.txt) \
|
||||||
&& $$(ECHO) $$$$? > $$($1_EXITCODE) \
|
&& $$(ECHO) $$$$? > $$($1_EXITCODE) \
|
||||||
|| $$(ECHO) $$$$? > $$($1_EXITCODE) \
|
|| $$(ECHO) $$$$? > $$($1_EXITCODE) \
|
||||||
@@ -414,6 +602,113 @@ endef
|
|||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
### Rules for Microbenchmarks
|
||||||
|
|
||||||
|
# Helper function for SetupRunMicroTest. Set a MICRO_* variable from, in order:
|
||||||
|
# 1) Specified by user on command line
|
||||||
|
# 2) Generic default
|
||||||
|
#
|
||||||
|
# Note: No spaces are allowed around the arguments.
|
||||||
|
# Arg $1 The test ID (i.e. $1 in SetupRunMicroTest)
|
||||||
|
# Arg $2 Base variable, e.g. MICRO_TEST_JDK
|
||||||
|
# Arg $3 The default value (optional)
|
||||||
|
define SetMicroValue
|
||||||
|
ifneq ($$($2), )
|
||||||
|
$1_$2 := $$($2)
|
||||||
|
else
|
||||||
|
ifneq ($3, )
|
||||||
|
$1_$2 := $3
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endef
|
||||||
|
|
||||||
|
SetupRunMicroTest = $(NamedParamsMacroTemplate)
|
||||||
|
define SetupRunMicroTestBody
|
||||||
|
$1_TEST_RESULTS_DIR := $$(TEST_RESULTS_DIR)/$1
|
||||||
|
$1_TEST_SUPPORT_DIR := $$(TEST_SUPPORT_DIR)/$1
|
||||||
|
$1_EXITCODE := $$($1_TEST_RESULTS_DIR)/exitcode.txt
|
||||||
|
|
||||||
|
$1_TEST_NAME := $$(strip $$(patsubst micro:%, %, $$($1_TEST)))
|
||||||
|
|
||||||
|
$$(eval $$(call SetMicroValue,$1,MICRO_BENCHMARKS_JAR,$$(TEST_IMAGE_DIR)/micro/benchmarks.jar))
|
||||||
|
$$(eval $$(call SetMicroValue,$1,MICRO_TEST_JDK,$$(JDK_IMAGE_DIR)))
|
||||||
|
$$(eval $$(call SetMicroValue,$1,MICRO_JAVA_OPTIONS))
|
||||||
|
|
||||||
|
# Current tests needs to open java.io
|
||||||
|
$1_MICRO_JAVA_OPTIONS += --add-opens=java.base/java.io=ALL-UNNAMED
|
||||||
|
|
||||||
|
# Save output as JSON or CSV file
|
||||||
|
ifneq ($$(MICRO_RESULTS_FORMAT), )
|
||||||
|
$1_MICRO_BASIC_OPTIONS += -rf $$(MICRO_RESULTS_FORMAT) -rff $$($1_TEST_RESULTS_DIR)/jmh-result.$(MICRO_RESULTS_FORMAT)
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq ($$(MICRO_VM_OPTIONS)$$(MICRO_JAVA_OPTIONS), )
|
||||||
|
$1_MICRO_VM_OPTIONS := -jvmArgs $$(MICRO_VM_OPTIONS) $$(MICRO_JAVA_OPTIONS)
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq ($$(MICRO_ITER), )
|
||||||
|
$1_MICRO_ITER := -i $$(MICRO_ITER)
|
||||||
|
endif
|
||||||
|
ifneq ($$(MICRO_FORK), )
|
||||||
|
$1_MICRO_FORK := -f $$(MICRO_FORK)
|
||||||
|
endif
|
||||||
|
ifneq ($$(MICRO_TIME), )
|
||||||
|
$1_MICRO_TIME := -r $$(MICRO_TIME)
|
||||||
|
endif
|
||||||
|
ifneq ($$(MICRO_WARMUP_ITER), )
|
||||||
|
$1_MICRO_WARMUP_ITER := -wi $$(MICRO_WARMUP_ITER)
|
||||||
|
endif
|
||||||
|
ifneq ($$(MICRO_WARMUP_TIME), )
|
||||||
|
$1_MICRO_WARMUP_TIME := -w $$(MICRO_WARMUP_TIME)
|
||||||
|
endif
|
||||||
|
|
||||||
|
run-test-$1:
|
||||||
|
$$(call LogWarn)
|
||||||
|
$$(call LogWarn, Running test '$$($1_TEST)')
|
||||||
|
$$(call MakeDir, $$($1_TEST_RESULTS_DIR) $$($1_TEST_SUPPORT_DIR))
|
||||||
|
$$(call ExecuteWithLog, $$($1_TEST_SUPPORT_DIR)/micro, \
|
||||||
|
$$($1_MICRO_TEST_JDK)/bin/java $$($1_MICRO_JAVA_OPTIONS) -jar $$($1_MICRO_BENCHMARKS_JAR) \
|
||||||
|
$$($1_MICRO_ITER) $$($1_MICRO_FORK) $$($1_MICRO_TIME) \
|
||||||
|
$$($1_MICRO_WARMUP_ITER) $$($1_MICRO_WARMUP_TIME) \
|
||||||
|
$$($1_MICRO_VM_OPTIONS) $$($1_MICRO_BASIC_OPTIONS) $$(MICRO_OPTIONS) \
|
||||||
|
$$($1_TEST_NAME) \
|
||||||
|
> >($(TEE) $$($1_TEST_RESULTS_DIR)/micro.txt) \
|
||||||
|
&& $$(ECHO) $$$$? > $$($1_EXITCODE) \
|
||||||
|
|| $$(ECHO) $$$$? > $$($1_EXITCODE) \
|
||||||
|
)
|
||||||
|
|
||||||
|
$1_RESULT_FILE := $$($1_TEST_RESULTS_DIR)/micro.txt
|
||||||
|
|
||||||
|
parse-test-$1: run-test-$1
|
||||||
|
$$(call LogWarn, Finished running test '$$($1_TEST)')
|
||||||
|
$$(call LogWarn, Test report is stored in $$(strip \
|
||||||
|
$$(subst $$(TOPDIR)/, , $$($1_TEST_RESULTS_DIR))))
|
||||||
|
$$(if $$(wildcard $$($1_EXITCODE)), \
|
||||||
|
$$(eval $1_EXIT_CODE := $$(shell $$(CAT) $$($1_EXITCODE))) \
|
||||||
|
$$(if $$(filter 0, $$($1_EXIT_CODE)), \
|
||||||
|
$$(eval $1_PASSED := 1) \
|
||||||
|
$$(eval $1_ERROR := 0) \
|
||||||
|
, \
|
||||||
|
$$(eval $1_PASSED := 0) \
|
||||||
|
$$(eval $1_ERROR := 1) \
|
||||||
|
) \
|
||||||
|
$$(eval $1_FAILED := 0) \
|
||||||
|
$$(eval $1_TOTAL := $$(shell \
|
||||||
|
$$(EXPR) $$($1_PASSED) + $$($1_ERROR))) \
|
||||||
|
, \
|
||||||
|
$$(eval $1_PASSED := 0) \
|
||||||
|
$$(eval $1_FAILED := 0) \
|
||||||
|
$$(eval $1_ERROR := 1) \
|
||||||
|
$$(eval $1_TOTAL := 1) \
|
||||||
|
)
|
||||||
|
|
||||||
|
$1: run-test-$1 parse-test-$1
|
||||||
|
|
||||||
|
TARGETS += $1
|
||||||
|
endef
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
|
||||||
### Rules for Jtreg
|
### Rules for Jtreg
|
||||||
|
|
||||||
# Helper function for SetupRunJtregTest. Set a JTREG_* variable from, in order:
|
# Helper function for SetupRunJtregTest. Set a JTREG_* variable from, in order:
|
||||||
@@ -447,12 +742,11 @@ define SetupRunJtregTestBody
|
|||||||
|
|
||||||
$1_TEST_NAME := $$(strip $$(patsubst jtreg:%, %, $$($1_TEST)))
|
$1_TEST_NAME := $$(strip $$(patsubst jtreg:%, %, $$($1_TEST)))
|
||||||
|
|
||||||
$1_COMPONENT := \
|
$1_TEST_ROOT := \
|
||||||
$$(strip $$(foreach root, $$(JTREG_TESTROOTS), \
|
$$(strip $$(foreach root, $$(JTREG_TESTROOTS), \
|
||||||
$$(if $$(filter $$(root)%, $$(JTREG_TOPDIR)/$$($1_TEST_NAME)), \
|
$$(if $$(filter $$(root)%, $$(JTREG_TOPDIR)/$$($1_TEST_NAME)), $$(root)) \
|
||||||
$$(lastword $$(subst /, $$(SPACE), $$(root))) \
|
|
||||||
) \
|
|
||||||
))
|
))
|
||||||
|
$1_COMPONENT := $$(lastword $$(subst /, $$(SPACE), $$($1_TEST_ROOT)))
|
||||||
# This will work only as long as just hotspot has the additional "jtreg" directory
|
# This will work only as long as just hotspot has the additional "jtreg" directory
|
||||||
ifeq ($$($1_COMPONENT), jtreg)
|
ifeq ($$($1_COMPONENT), jtreg)
|
||||||
$1_COMPONENT := hotspot
|
$1_COMPONENT := hotspot
|
||||||
@@ -475,11 +769,12 @@ define SetupRunJtregTestBody
|
|||||||
$$(eval $$(call SetJtregValue,$1,JTREG_BASIC_OPTIONS))
|
$$(eval $$(call SetJtregValue,$1,JTREG_BASIC_OPTIONS))
|
||||||
$$(eval $$(call SetJtregValue,$1,JTREG_PROBLEM_LIST))
|
$$(eval $$(call SetJtregValue,$1,JTREG_PROBLEM_LIST))
|
||||||
|
|
||||||
|
# Only the problem list for the current test root should be used.
|
||||||
|
$1_JTREG_PROBLEM_LIST := $$(filter $$($1_TEST_ROOT)%, $$($1_JTREG_PROBLEM_LIST))
|
||||||
|
|
||||||
ifneq ($(TEST_JOBS), 0)
|
ifneq ($(TEST_JOBS), 0)
|
||||||
# User has specified TEST_JOBS, use that as fallback default
|
|
||||||
$$(eval $$(call SetJtregValue,$1,JTREG_JOBS,$$(TEST_JOBS)))
|
$$(eval $$(call SetJtregValue,$1,JTREG_JOBS,$$(TEST_JOBS)))
|
||||||
else
|
else
|
||||||
# Use JOBS as default (except for hotspot)
|
|
||||||
$$(eval $$(call SetJtregValue,$1,JTREG_JOBS,$$(JOBS)))
|
$$(eval $$(call SetJtregValue,$1,JTREG_JOBS,$$(JOBS)))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -487,7 +782,12 @@ define SetupRunJtregTestBody
|
|||||||
# we may end up with a lot of JVM's
|
# we may end up with a lot of JVM's
|
||||||
$1_JTREG_MAX_RAM_PERCENTAGE := $$(shell $$(EXPR) 25 / $$($1_JTREG_JOBS))
|
$1_JTREG_MAX_RAM_PERCENTAGE := $$(shell $$(EXPR) 25 / $$($1_JTREG_JOBS))
|
||||||
|
|
||||||
JTREG_TIMEOUT ?= 4
|
# SPARC is in general slower per core so need to scale up timeouts a bit.
|
||||||
|
ifeq ($(OPENJDK_TARGET_CPU_ARCH), sparc)
|
||||||
|
JTREG_TIMEOUT_FACTOR ?= 8
|
||||||
|
else
|
||||||
|
JTREG_TIMEOUT_FACTOR ?= 4
|
||||||
|
endif
|
||||||
JTREG_VERBOSE ?= fail,error,summary
|
JTREG_VERBOSE ?= fail,error,summary
|
||||||
JTREG_RETAIN ?= fail,error
|
JTREG_RETAIN ?= fail,error
|
||||||
|
|
||||||
@@ -498,10 +798,10 @@ define SetupRunJtregTestBody
|
|||||||
|
|
||||||
$1_JTREG_BASIC_OPTIONS += -$$($1_JTREG_TEST_MODE) \
|
$1_JTREG_BASIC_OPTIONS += -$$($1_JTREG_TEST_MODE) \
|
||||||
-verbose:$$(JTREG_VERBOSE) -retain:$$(JTREG_RETAIN) \
|
-verbose:$$(JTREG_VERBOSE) -retain:$$(JTREG_RETAIN) \
|
||||||
-concurrency:$$($1_JTREG_JOBS) -timeoutFactor:$$(JTREG_TIMEOUT) \
|
-concurrency:$$($1_JTREG_JOBS) -timeoutFactor:$$(JTREG_TIMEOUT_FACTOR) \
|
||||||
-vmoption:-XX:MaxRAMPercentage=$$($1_JTREG_MAX_RAM_PERCENTAGE)
|
-vmoption:-XX:MaxRAMPercentage=$$($1_JTREG_MAX_RAM_PERCENTAGE)
|
||||||
|
|
||||||
$1_JTREG_BASIC_OPTIONS += -automatic -keywords:\!ignore -ignore:quiet
|
$1_JTREG_BASIC_OPTIONS += -automatic -ignore:quiet
|
||||||
|
|
||||||
# Make it possible to specify the JIB_DATA_DIR for tests using the
|
# Make it possible to specify the JIB_DATA_DIR for tests using the
|
||||||
# JIB Artifact resolver
|
# JIB Artifact resolver
|
||||||
@@ -531,8 +831,16 @@ define SetupRunJtregTestBody
|
|||||||
$1_JTREG_BASIC_OPTIONS += $$(addprefix -exclude:, $$($1_JTREG_PROBLEM_LIST))
|
$1_JTREG_BASIC_OPTIONS += $$(addprefix -exclude:, $$($1_JTREG_PROBLEM_LIST))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifneq ($$(JIB_JAR), )
|
ifneq ($$(JTREG_EXTRA_PROBLEM_LISTS), )
|
||||||
$1_JTREG_BASIC_OPTIONS += -cpa:$$(JIB_JAR)
|
# Accept both absolute paths as well as relative to the current test root.
|
||||||
|
$1_JTREG_BASIC_OPTIONS += $$(addprefix -exclude:, $$(wildcard \
|
||||||
|
$$(JTREG_EXTRA_PROBLEM_LISTS) \
|
||||||
|
$$(addprefix $$($1_TEST_ROOT)/, $$(JTREG_EXTRA_PROBLEM_LISTS)) \
|
||||||
|
))
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq ($$(JIB_HOME), )
|
||||||
|
$1_JTREG_BASIC_OPTIONS += -e:JIB_HOME=$$(JIB_HOME)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
$1_JTREG_BASIC_OPTIONS += -e:TEST_IMAGE_GRAAL_DIR=${TEST_IMAGE_DIR}/hotspot/jtreg/graal
|
$1_JTREG_BASIC_OPTIONS += -e:TEST_IMAGE_GRAAL_DIR=${TEST_IMAGE_DIR}/hotspot/jtreg/graal
|
||||||
@@ -541,10 +849,32 @@ define SetupRunJtregTestBody
|
|||||||
$1_JTREG_LAUNCHER_OPTIONS += -Djava.library.path="$(JTREG_FAILURE_HANDLER_DIR)"
|
$1_JTREG_LAUNCHER_OPTIONS += -Djava.library.path="$(JTREG_FAILURE_HANDLER_DIR)"
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifneq ($$(JTREG_KEYWORDS), )
|
||||||
|
# The keywords string may contain problematic characters and may be quoted
|
||||||
|
# already when it arrives here. Remove any existing quotes and replace them
|
||||||
|
# with one set of single quotes.
|
||||||
|
$1_JTREG_KEYWORDS := \
|
||||||
|
$$(strip $$(subst $$(SQUOTE),,$$(subst $$(DQUOTE),,$$(JTREG_KEYWORDS))))
|
||||||
|
ifneq ($$($1_JTREG_KEYWORDS), )
|
||||||
|
$1_JTREG_BASIC_OPTIONS += -k:'$$($1_JTREG_KEYWORDS)'
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq ($$(JTREG_AOT_MODULES), )
|
||||||
|
$$(eval $$(call SetupAot, $1, \
|
||||||
|
MODULES := $$(JTREG_AOT_MODULES), \
|
||||||
|
VM_OPTIONS := $$(JTREG_VM_OPTIONS) $$(JTREG_JAVA_OPTIONS), \
|
||||||
|
))
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq ($$($1_AOT_OPTIONS), )
|
||||||
|
$1_JTREG_BASIC_OPTIONS += -vmoptions:"$$($1_AOT_OPTIONS)"
|
||||||
|
endif
|
||||||
|
|
||||||
clean-workdir-$1:
|
clean-workdir-$1:
|
||||||
$$(RM) -r $$($1_TEST_SUPPORT_DIR)
|
$$(RM) -r $$($1_TEST_SUPPORT_DIR)
|
||||||
|
|
||||||
run-test-$1: clean-workdir-$1
|
run-test-$1: clean-workdir-$1 $$($1_AOT_TARGETS)
|
||||||
$$(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))
|
||||||
@@ -615,14 +945,14 @@ define SetupRunSpecialTestBody
|
|||||||
$1_TEST_ARGS :=
|
$1_TEST_ARGS :=
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($$($1_TEST_NAME), hotspot-internal)
|
ifeq ($$($1_TEST_NAME), failure-handler)
|
||||||
$1_TEST_COMMAND_LINE := \
|
ifeq ($(BUILD_FAILURE_HANDLER), true)
|
||||||
$$(JDK_IMAGE_DIR)/bin/java -XX:+ExecuteInternalVMTests \
|
|
||||||
-XX:+ShowMessageBoxOnError -version
|
|
||||||
else ifeq ($$($1_TEST_NAME), failure-handler)
|
|
||||||
$1_TEST_COMMAND_LINE := \
|
$1_TEST_COMMAND_LINE := \
|
||||||
($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) -f \
|
($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) -f \
|
||||||
BuildFailureHandler.gmk test)
|
BuildFailureHandler.gmk test)
|
||||||
|
else
|
||||||
|
$$(error Cannot test failure handler if it is not built)
|
||||||
|
endif
|
||||||
else ifeq ($$($1_TEST_NAME), make)
|
else ifeq ($$($1_TEST_NAME), make)
|
||||||
$1_TEST_COMMAND_LINE := \
|
$1_TEST_COMMAND_LINE := \
|
||||||
($(CD) $(TOPDIR)/test/make && $(MAKE) $(MAKE_ARGS) -f \
|
($(CD) $(TOPDIR)/test/make && $(MAKE) $(MAKE_ARGS) -f \
|
||||||
@@ -631,7 +961,7 @@ define SetupRunSpecialTestBody
|
|||||||
$$(error Invalid special test specification: $$($1_TEST_NAME))
|
$$(error Invalid special test specification: $$($1_TEST_NAME))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
run-test-$1:
|
run-test-$1: $(TEST_PREREQS)
|
||||||
$$(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))
|
||||||
@@ -668,6 +998,9 @@ endef
|
|||||||
UseGtestTestHandler = \
|
UseGtestTestHandler = \
|
||||||
$(if $(filter gtest:%, $1), true)
|
$(if $(filter gtest:%, $1), true)
|
||||||
|
|
||||||
|
UseMicroTestHandler = \
|
||||||
|
$(if $(filter micro:%, $1), true)
|
||||||
|
|
||||||
UseJtregTestHandler = \
|
UseJtregTestHandler = \
|
||||||
$(if $(filter jtreg:%, $1), true)
|
$(if $(filter jtreg:%, $1), true)
|
||||||
|
|
||||||
@@ -689,6 +1022,11 @@ $(foreach test, $(TESTS_TO_RUN), \
|
|||||||
TEST := $(test), \
|
TEST := $(test), \
|
||||||
)) \
|
)) \
|
||||||
) \
|
) \
|
||||||
|
$(if $(call UseMicroTestHandler, $(test)), \
|
||||||
|
$(eval $(call SetupRunMicroTest, $(TEST_ID), \
|
||||||
|
TEST := $(test), \
|
||||||
|
)) \
|
||||||
|
) \
|
||||||
$(if $(call UseJtregTestHandler, $(test)), \
|
$(if $(call UseJtregTestHandler, $(test)), \
|
||||||
$(eval $(call SetupRunJtregTest, $(TEST_ID), \
|
$(eval $(call SetupRunJtregTest, $(TEST_ID), \
|
||||||
TEST := $(test), \
|
TEST := $(test), \
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2017, 2018, 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
|
||||||
@@ -49,10 +49,11 @@ TOPDIR := $(strip $(patsubst %/make/, %, $(dir $(makefile_path))))
|
|||||||
# given.
|
# given.
|
||||||
# Note: No spaces are allowed around the arguments.
|
# Note: No spaces are allowed around the arguments.
|
||||||
#
|
#
|
||||||
# $1: The name of the argument
|
# $1: The name of the variable
|
||||||
# $2: The default value, if any, or OPTIONAL (do not provide a default but
|
# $2: The default value, if any, or OPTIONAL (do not provide a default but
|
||||||
# do not exit if it is missing)
|
# do not exit if it is missing)
|
||||||
# $3: If NO_CHECK, disable checking for target file/directory existence
|
# $3: If NO_CHECK, disable checking for target file/directory existence
|
||||||
|
# If MKDIR, create the default directory
|
||||||
define SetupVariable
|
define SetupVariable
|
||||||
ifeq ($$($1), )
|
ifeq ($$($1), )
|
||||||
ifeq ($2, )
|
ifeq ($2, )
|
||||||
@@ -75,11 +76,18 @@ define SetupVariable
|
|||||||
endif
|
endif
|
||||||
# If $1 has a value (is not optional), and $3 is not set (to NO_CHECK),
|
# If $1 has a value (is not optional), and $3 is not set (to NO_CHECK),
|
||||||
# and if wildcard is empty, then complain that the file is missing.
|
# and if wildcard is empty, then complain that the file is missing.
|
||||||
ifeq ($$(strip $$(if $$($1), , OPTIONAL) $$(wildcard $$($1)) $3), )
|
ifeq ($3, MKDIR)
|
||||||
|
ifneq ($$(findstring $$(LOG), info debug trace), )
|
||||||
|
$$(info Creating directory for $1)
|
||||||
|
endif
|
||||||
|
$$(shell mkdir -p $$($1))
|
||||||
|
else ifneq ($3, NO_CHECK)
|
||||||
|
ifeq ($$(strip $$(if $$($1), , OPTIONAL) $$(wildcard $$($1))), )
|
||||||
$$(info Error: Prebuilt variable $1 points to missing file/directory:)
|
$$(info Error: Prebuilt variable $1 points to missing file/directory:)
|
||||||
$$(info '$$($1)')
|
$$(info '$$($1)')
|
||||||
$$(error Cannot continue.)
|
$$(error Cannot continue.)
|
||||||
endif
|
endif
|
||||||
|
endif
|
||||||
endef
|
endef
|
||||||
|
|
||||||
# Create an ephemeral spec file
|
# Create an ephemeral spec file
|
||||||
@@ -87,12 +95,12 @@ endef
|
|||||||
# $1: The output file name
|
# $1: The output file name
|
||||||
# $2..$N: The lines to output to the file
|
# $2..$N: The lines to output to the file
|
||||||
define CreateNewSpec
|
define CreateNewSpec
|
||||||
$(if $(strip $(26)), \
|
$(if $(strip $(31)), \
|
||||||
$(error Internal makefile error: \
|
$(error Internal makefile error: \
|
||||||
Too many arguments to macro, please update CreateNewSpec in RunTestsPrebuilt.gmk) \
|
Too many arguments to macro, please update CreateNewSpec in RunTestsPrebuilt.gmk) \
|
||||||
) \
|
) \
|
||||||
$(shell $(RM) $1) \
|
$(shell $(RM) $1) \
|
||||||
$(foreach i, $(call sequence, 2, 25), \
|
$(foreach i, $(call sequence, 2, 30), \
|
||||||
$(if $(strip $($i)), \
|
$(if $(strip $($i)), \
|
||||||
$(call AppendFile, $(strip $($i)), $1) \
|
$(call AppendFile, $(strip $($i)), $1) \
|
||||||
) \
|
) \
|
||||||
@@ -106,14 +114,14 @@ endef
|
|||||||
# Verify that user has given correct additional input.
|
# Verify that user has given correct additional input.
|
||||||
|
|
||||||
# These variables are absolutely necessary
|
# These variables are absolutely necessary
|
||||||
$(eval $(call SetupVariable,OUTPUTDIR))
|
$(eval $(call SetupVariable,OUTPUTDIR,$(TOPDIR)/build/run-test-prebuilt,MKDIR))
|
||||||
$(eval $(call SetupVariable,BOOT_JDK))
|
$(eval $(call SetupVariable,BOOT_JDK))
|
||||||
$(eval $(call SetupVariable,JT_HOME))
|
$(eval $(call SetupVariable,JT_HOME))
|
||||||
|
|
||||||
# These can have default values based on the ones above
|
# These can have default values based on the ones above
|
||||||
$(eval $(call SetupVariable,JDK_IMAGE_DIR,$(OUTPUTDIR)/images/jdk))
|
$(eval $(call SetupVariable,JDK_IMAGE_DIR,$(OUTPUTDIR)/images/jdk))
|
||||||
$(eval $(call SetupVariable,TEST_IMAGE_DIR,$(OUTPUTDIR)/images/test))
|
$(eval $(call SetupVariable,TEST_IMAGE_DIR,$(OUTPUTDIR)/images/test))
|
||||||
$(eval $(call SetupVariable,SYMBOLS_IMAGE_DIR,$(OUTPUTDIR)/images/symbols))
|
$(eval $(call SetupVariable,SYMBOLS_IMAGE_DIR,$(OUTPUTDIR)/images/symbols,NO_CHECK))
|
||||||
|
|
||||||
# Provide default values for tools that we need
|
# Provide default values for tools that we need
|
||||||
$(eval $(call SetupVariable,MAKE,make,NO_CHECK))
|
$(eval $(call SetupVariable,MAKE,make,NO_CHECK))
|
||||||
@@ -202,8 +210,8 @@ endif
|
|||||||
|
|
||||||
ifeq ($(OPENJDK_TARGET_OS), windows)
|
ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||||
ifeq ($(wildcard $(TEST_IMAGE_DIR)/bin/fixpath.exe), )
|
ifeq ($(wildcard $(TEST_IMAGE_DIR)/bin/fixpath.exe), )
|
||||||
$$(info Error: fixpath is missing from test image '$(TEST_IMAGE_DIR)')
|
$(info Error: fixpath is missing from test image '$(TEST_IMAGE_DIR)')
|
||||||
$$(error Cannot continue.)
|
$(error Cannot continue.)
|
||||||
endif
|
endif
|
||||||
FIXPATH := $(TEST_IMAGE_DIR)/bin/fixpath.exe -c
|
FIXPATH := $(TEST_IMAGE_DIR)/bin/fixpath.exe -c
|
||||||
PATH_SEP:=;
|
PATH_SEP:=;
|
||||||
@@ -212,18 +220,63 @@ else
|
|||||||
PATH_SEP:=:
|
PATH_SEP:=:
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Check number of cores
|
# Check number of cores and memory in MB
|
||||||
ifeq ($(OPENJDK_TARGET_OS), linux)
|
ifeq ($(OPENJDK_TARGET_OS), linux)
|
||||||
NUM_CORES := $(shell $(CAT) /proc/cpuinfo | $(GREP) -c processor)
|
NUM_CORES := $(shell $(CAT) /proc/cpuinfo | $(GREP) -c processor)
|
||||||
|
MEMORY_SIZE := $(shell \
|
||||||
|
$(EXPR) `$(CAT) /proc/meminfo | $(GREP) MemTotal | $(AWK) '{print $$2}'` / 1024 \
|
||||||
|
)
|
||||||
else ifeq ($(OPENJDK_TARGET_OS), macosx)
|
else ifeq ($(OPENJDK_TARGET_OS), macosx)
|
||||||
NUM_CORES := $(shell /usr/sbin/sysctl -n hw.ncpu)
|
NUM_CORES := $(shell /usr/sbin/sysctl -n hw.ncpu)
|
||||||
|
MEMORY_SIZE := $(shell $(EXPR) `/usr/sbin/sysctl -n hw.memsize` / 1024 / 1024)
|
||||||
else ifeq ($(OPENJDK_TARGET_OS), solaris)
|
else ifeq ($(OPENJDK_TARGET_OS), solaris)
|
||||||
NUM_CORES := $(shell LC_MESSAGES=C /usr/sbin/psrinfo -v | $(GREP) -c on-line)
|
NUM_CORES := $(shell LC_MESSAGES=C /usr/sbin/psrinfo -v | $(GREP) -c on-line)
|
||||||
|
MEMORY_SIZE := $(shell \
|
||||||
|
/usr/sbin/prtconf 2> /dev/null | $(GREP) "^Memory [Ss]ize" | $(AWK) '{print $$3}' \
|
||||||
|
)
|
||||||
else ifeq ($(OPENJDK_TARGET_OS), windows)
|
else ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||||
NUM_CORES := $(NUMBER_OF_PROCESSORS)
|
NUM_CORES := $(NUMBER_OF_PROCESSORS)
|
||||||
else
|
MEMORY_SIZE := $(shell \
|
||||||
|
$(EXPR) `wmic computersystem get totalphysicalmemory -value | $(GREP) = \
|
||||||
|
| $(CUT) -d "=" -f 2-` / 1024 / 1024 \
|
||||||
|
)
|
||||||
|
endif
|
||||||
|
ifeq ($(NUM_CORES), )
|
||||||
|
$(warn Could not find number of CPUs, assuming 1)
|
||||||
NUM_CORES := 1
|
NUM_CORES := 1
|
||||||
endif
|
endif
|
||||||
|
ifeq ($(MEMORY_SIZE), )
|
||||||
|
$(warn Could not find memory size, assuming 1024 MB)
|
||||||
|
MEMORY_SIZE := 1024
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Setup LD for AOT support
|
||||||
|
ifneq ($(DEVKIT_HOME), )
|
||||||
|
ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||||
|
LD := $(DEVKIT_HOME)/VC/bin/x64/link
|
||||||
|
LIBRARY_PREFIX :=
|
||||||
|
SHARED_LIBRARY_SUFFIX := .dll
|
||||||
|
EXE_SUFFIX := .exe
|
||||||
|
else ifeq ($(OPENJDK_TARGET_OS), linux)
|
||||||
|
LD := $(DEVKIT_HOME)/bin/ld
|
||||||
|
LIBRARY_PREFIX := lib
|
||||||
|
SHARED_LIBRARY_SUFFIX := .so
|
||||||
|
EXE_SUFFIX :=
|
||||||
|
else ifeq ($(OPENJDK_TARGET_OS), macosx)
|
||||||
|
LD := $(DEVKIT_HOME)/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld
|
||||||
|
LIBRARY_PREFIX := lib
|
||||||
|
SHARED_LIBRARY_SUFFIX := .dylib
|
||||||
|
EXE_SUFFIX :=
|
||||||
|
else ifeq ($(OPENJDK_TARGET_OS), solaris)
|
||||||
|
# Prefer system linker for AOT on Solaris.
|
||||||
|
LD := ld
|
||||||
|
LIBRARY_PREFIX := lib
|
||||||
|
SHARED_LIBRARY_SUFFIX := .so
|
||||||
|
EXE_SUFFIX :=
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
LD := ld
|
||||||
|
endif
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Generate the ephemeral spec file
|
# Generate the ephemeral spec file
|
||||||
@@ -260,6 +313,11 @@ $(call CreateNewSpec, $(NEW_SPEC), \
|
|||||||
OPENJDK_TARGET_CPU_BITS := $(OPENJDK_TARGET_CPU_BITS), \
|
OPENJDK_TARGET_CPU_BITS := $(OPENJDK_TARGET_CPU_BITS), \
|
||||||
OPENJDK_TARGET_CPU_ENDIAN := $(OPENJDK_TARGET_CPU_ENDIAN), \
|
OPENJDK_TARGET_CPU_ENDIAN := $(OPENJDK_TARGET_CPU_ENDIAN), \
|
||||||
NUM_CORES := $(NUM_CORES), \
|
NUM_CORES := $(NUM_CORES), \
|
||||||
|
MEMORY_SIZE := $(MEMORY_SIZE), \
|
||||||
|
LD := $(LD), \
|
||||||
|
LIBRARY_PREFIX := $(LIBRARY_PREFIX), \
|
||||||
|
SHARED_LIBRARY_SUFFIX := $(SHARED_LIBRARY_SUFFIX), \
|
||||||
|
EXE_SUFFIX := $(EXE_SUFFIX), \
|
||||||
include $(TOPDIR)/make/RunTestsPrebuiltSpec.gmk, \
|
include $(TOPDIR)/make/RunTestsPrebuiltSpec.gmk, \
|
||||||
$(CUSTOM_NEW_SPEC_LINE), \
|
$(CUSTOM_NEW_SPEC_LINE), \
|
||||||
)
|
)
|
||||||
@@ -276,9 +334,6 @@ run-test-prebuilt:
|
|||||||
@$(RM) -f $(MAKESUPPORT_OUTPUTDIR)/exit-with-error
|
@$(RM) -f $(MAKESUPPORT_OUTPUTDIR)/exit-with-error
|
||||||
@cd $(TOPDIR) && $(MAKE) $(MAKE_ARGS) -f make/RunTests.gmk run-test \
|
@cd $(TOPDIR) && $(MAKE) $(MAKE_ARGS) -f make/RunTests.gmk run-test \
|
||||||
TEST="$(TEST)"
|
TEST="$(TEST)"
|
||||||
@if test -f $(MAKESUPPORT_OUTPUTDIR)/exit-with-error ; then \
|
|
||||||
exit 1 ; \
|
|
||||||
fi
|
|
||||||
|
|
||||||
all: run-test-prebuilt
|
all: run-test-prebuilt
|
||||||
|
|
||||||
|
|||||||
@@ -124,7 +124,7 @@ JLINK := $(FIXPATH) $(JLINK_CMD)
|
|||||||
JMOD := $(FIXPATH) $(JMOD_CMD)
|
JMOD := $(FIXPATH) $(JMOD_CMD)
|
||||||
JARSIGNER := $(FIXPATH) $(JARSIGNER_CMD)
|
JARSIGNER := $(FIXPATH) $(JARSIGNER_CMD)
|
||||||
|
|
||||||
BUILD_JAVA := $(JAVA)
|
BUILD_JAVA := $(JDK_IMAGE_DIR)/bin/JAVA
|
||||||
################################################################################
|
################################################################################
|
||||||
# Some common tools. Assume most common name and no path.
|
# Some common tools. Assume most common name and no path.
|
||||||
AWK := awk
|
AWK := awk
|
||||||
@@ -172,3 +172,21 @@ UNZIP := unzip
|
|||||||
EXPR := expr
|
EXPR := expr
|
||||||
FILE := file
|
FILE := file
|
||||||
HG := hg
|
HG := hg
|
||||||
|
|
||||||
|
# On Solaris gnu versions of some tools are required.
|
||||||
|
ifeq ($(OPENJDK_BUILD_OS), solaris)
|
||||||
|
AWK := gawk
|
||||||
|
GREP := ggrep
|
||||||
|
EGREP := ggrep -E
|
||||||
|
FGREP := grep -F
|
||||||
|
SED := gsed
|
||||||
|
TAR := gtar
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(OPENJDK_BUILD_OS), windows)
|
||||||
|
CYGPATH := cygpath
|
||||||
|
endif
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Simple macros from spec.gmk.in
|
||||||
|
SHARED_LIBRARY=$(LIBRARY_PREFIX)$1$(SHARED_LIBRARY_SUFFIX)
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2016, 2018, 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,33 +23,43 @@
|
|||||||
# questions.
|
# questions.
|
||||||
#
|
#
|
||||||
|
|
||||||
default: all
|
|
||||||
|
|
||||||
include $(SPEC)
|
include $(SPEC)
|
||||||
include MakeBase.gmk
|
include MakeBase.gmk
|
||||||
|
|
||||||
$(eval $(call IncludeCustomExtension, SourceRevision.gmk))
|
$(eval $(call IncludeCustomExtension, SourceRevision-pre.gmk))
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Keep track of what source revision is used to create the build, by creating
|
# Keep track of what source revision is used to create the build, by creating
|
||||||
# a tracker file in the output directory. This tracker file is included in the
|
# a tracker file in the output directory. This tracker file is included in the
|
||||||
# image, and can be used to recreate the source revision used.
|
# source image, and can be used to recreate the source revision used.
|
||||||
#
|
#
|
||||||
# We're either building directly from a mercurial forest, and if so, use the
|
# We're either building directly from an SCM repository, and if so, use the
|
||||||
# current revision from mercurial. Otherwise, we are building from a source
|
# current revision from that SCM. Otherwise, we are building from a source
|
||||||
# bundle. As a part of creating this source bundle, the current mercurial
|
# bundle. As a part of creating this source bundle, the current SCM revisions of
|
||||||
# revisions of all repos will be stored in a file in the top dir, which is then
|
# all repos will be stored in a file in the top dir, which is then used when
|
||||||
# used when creating the tracker file.
|
# creating the tracker file.
|
||||||
|
|
||||||
STORED_SOURCE_REVISION := $(TOPDIR)/.src-rev
|
STORED_SOURCE_REVISION := $(TOPDIR)/.src-rev
|
||||||
|
|
||||||
# Are we using mercurial?
|
USE_SCM := false
|
||||||
ifneq ($(and $(HG), $(wildcard $(TOPDIR)/.hg)), )
|
ifneq ($(and $(HG), $(wildcard $(TOPDIR)/.hg)), )
|
||||||
|
USE_SCM := true
|
||||||
|
SCM_DIR := .hg
|
||||||
|
ID_COMMAND := $(PRINTF) "hg:%s" "$$($(HG) id -i)"
|
||||||
|
else ifneq ($(and $(GIT), $(wildcard $(TOPDIR)/.git)), )
|
||||||
|
USE_SCM := true
|
||||||
|
SCM_DIR := .git
|
||||||
|
ID_COMMAND := $(PRINTF) "git:%s%s\n" \
|
||||||
|
"$$(git log -n1 --format=%H | cut -c1-12)" \
|
||||||
|
"$$(if test -n "$$(git status --porcelain)"; then printf '+'; fi)"
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(USE_SCM), true)
|
||||||
|
|
||||||
# Verify that the entire forest is consistent
|
# Verify that the entire forest is consistent
|
||||||
$(foreach repo, $(call FindAllReposRel), \
|
$(foreach repo, $(call FindAllReposRel), \
|
||||||
$(if $(wildcard $(TOPDIR)/$(repo)/.hg),, \
|
$(if $(wildcard $(TOPDIR)/$(repo)/$(SCM_DIR)),, \
|
||||||
$(error Inconsistent revision control: $(repo) is missing .hg directory)) \
|
$(error Inconsistent revision control: $(repo) is missing $(SCM_DIR) directory)) \
|
||||||
)
|
)
|
||||||
|
|
||||||
# Replace "." with "_top" and "/" with "-"
|
# Replace "." with "_top" and "/" with "-"
|
||||||
@@ -58,7 +68,9 @@ ifneq ($(and $(HG), $(wildcard $(TOPDIR)/.hg)), )
|
|||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# SetupGetRevisionForRepo defines a make rule for creating a file containing
|
# SetupGetRevisionForRepo defines a make rule for creating a file containing
|
||||||
# the name of the repository and the output of "hg id" for that repository.
|
# the name of the repository and the output of the scm command for that
|
||||||
|
# repository.
|
||||||
|
#
|
||||||
# Argument 1 is the relative path to the repository from the top dir.
|
# Argument 1 is the relative path to the repository from the top dir.
|
||||||
#
|
#
|
||||||
SetupGetRevisionForRepo = $(NamedParamsMacroTemplate)
|
SetupGetRevisionForRepo = $(NamedParamsMacroTemplate)
|
||||||
@@ -68,7 +80,7 @@ ifneq ($(and $(HG), $(wildcard $(TOPDIR)/.hg)), )
|
|||||||
|
|
||||||
$$(SUPPORT_OUTPUTDIR)/src-rev/$$($1_FILENAME): FRC
|
$$(SUPPORT_OUTPUTDIR)/src-rev/$$($1_FILENAME): FRC
|
||||||
$$(call MakeDir, $$(@D))
|
$$(call MakeDir, $$(@D))
|
||||||
$$(ECHO) $$(strip $1):`$$(HG) id -i --repository $$($1_REPO_PATH)` > $$@
|
$$(ECHO) $$(strip $1):`$$(CD) $$($1_REPO_PATH) && $$(ID_COMMAND)` > $$@
|
||||||
|
|
||||||
REPO_REVISIONS += $$(SUPPORT_OUTPUTDIR)/src-rev/$$($1_FILENAME)
|
REPO_REVISIONS += $$(SUPPORT_OUTPUTDIR)/src-rev/$$($1_FILENAME)
|
||||||
endef
|
endef
|
||||||
@@ -94,40 +106,58 @@ ifneq ($(and $(HG), $(wildcard $(TOPDIR)/.hg)), )
|
|||||||
|
|
||||||
$(eval $(call CreateSourceRevisionFile, $(STORED_SOURCE_REVISION)))
|
$(eval $(call CreateSourceRevisionFile, $(STORED_SOURCE_REVISION)))
|
||||||
|
|
||||||
store-source-revision: $(STORED_SOURCE_REVISION)
|
scm-store-source-revision: $(STORED_SOURCE_REVISION)
|
||||||
|
|
||||||
$(eval $(call CreateSourceRevisionFile, $(SOURCE_REVISION_TRACKER)))
|
$(eval $(call CreateSourceRevisionFile, $(SOURCE_REVISION_TRACKER)))
|
||||||
|
|
||||||
create-source-revision-tracker: $(SOURCE_REVISION_TRACKER)
|
scm-create-source-revision-tracker: $(SOURCE_REVISION_TRACKER)
|
||||||
|
|
||||||
|
STORE_SOURCE_REVISION_TARGET := scm-store-source-revision
|
||||||
|
CREATE_SOURCE_REVISION_TRACKER_TARGET := scm-create-source-revision-tracker
|
||||||
|
|
||||||
|
.PHONY: scm-store-source-revision scm-create-source-revision-tracker
|
||||||
|
|
||||||
else
|
else
|
||||||
# Not using HG
|
# Not using any SCM
|
||||||
|
|
||||||
ifneq ($(wildcard $(STORED_SOURCE_REVISION)), )
|
ifneq ($(wildcard $(STORED_SOURCE_REVISION)), )
|
||||||
# We have a stored source revision (.src-rev)
|
# We have a stored source revision (.src-rev)
|
||||||
|
|
||||||
store-source-revision:
|
src-store-source-revision:
|
||||||
$(call LogInfo, No mercurial configuration present$(COMMA) not updating .src-rev)
|
$(call LogInfo, No SCM configuration present$(COMMA) not updating .src-rev)
|
||||||
|
|
||||||
$(SOURCE_REVISION_TRACKER): $(STORED_SOURCE_REVISION)
|
$(SOURCE_REVISION_TRACKER): $(STORED_SOURCE_REVISION)
|
||||||
$(install-file)
|
$(install-file)
|
||||||
|
|
||||||
create-source-revision-tracker: $(SOURCE_REVISION_TRACKER)
|
src-create-source-revision-tracker: $(SOURCE_REVISION_TRACKER)
|
||||||
else
|
else
|
||||||
# We don't have a stored source revision. Can't do anything, really.
|
# We don't have a stored source revision. Can't do anything, really.
|
||||||
|
|
||||||
store-source-revision:
|
src-store-source-revision:
|
||||||
$(call LogWarn, Error: No mercurial configuration present$(COMMA) cannot create .src-rev)
|
$(call LogWarn, Error: No SCM configuration present$(COMMA) cannot create .src-rev)
|
||||||
exit 2
|
exit 2
|
||||||
|
|
||||||
create-source-revision-tracker:
|
src-create-source-revision-tracker:
|
||||||
$(call LogWarn, Warning: No mercurial configuration present and no .src-rev)
|
$(call LogWarn, Warning: No SCM configuration present and no .src-rev)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
STORE_SOURCE_REVISION_TARGET := src-store-source-revision
|
||||||
|
CREATE_SOURCE_REVISION_TRACKER_TARGET := src-create-source-revision-tracker
|
||||||
|
|
||||||
|
.PHONY: src-store-source-revision src-create-source-revision-tracker
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
all: store-source-revision create-source-revision-tracker
|
################################################################################
|
||||||
|
|
||||||
|
$(eval $(call IncludeCustomExtension, SourceRevision-post.gmk))
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
store-source-revision: $(STORE_SOURCE_REVISION_TARGET)
|
||||||
|
|
||||||
|
create-source-revision-tracker: $(CREATE_SOURCE_REVISION_TRACKER_TARGET)
|
||||||
|
|
||||||
FRC: # Force target
|
FRC: # Force target
|
||||||
|
|
||||||
.PHONY: all store-source-revision create-source-revision-tracker
|
.PHONY: store-source-revision create-source-revision-tracker
|
||||||
|
|||||||
@@ -47,9 +47,6 @@ TOOL_COMPILEFONTCONFIG = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_cla
|
|||||||
TOOL_COMPILEPROPERTIES = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \
|
TOOL_COMPILEPROPERTIES = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \
|
||||||
build.tools.compileproperties.CompileProperties
|
build.tools.compileproperties.CompileProperties
|
||||||
|
|
||||||
TOOL_JARREORDER = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \
|
|
||||||
build.tools.jarreorder.JarReorder
|
|
||||||
|
|
||||||
TOOL_GENERATECHARACTER = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \
|
TOOL_GENERATECHARACTER = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \
|
||||||
build.tools.generatecharacter.GenerateCharacter
|
build.tools.generatecharacter.GenerateCharacter
|
||||||
|
|
||||||
@@ -67,9 +64,6 @@ TOOL_GENERATEBREAKITERATORDATA = $(JAVA_SMALL) \
|
|||||||
TOOL_GENERATECURRENCYDATA = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \
|
TOOL_GENERATECURRENCYDATA = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \
|
||||||
build.tools.generatecurrencydata.GenerateCurrencyData
|
build.tools.generatecurrencydata.GenerateCurrencyData
|
||||||
|
|
||||||
TOOL_HASHER = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \
|
|
||||||
build.tools.hasher.Hasher
|
|
||||||
|
|
||||||
TOOL_TZDB = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \
|
TOOL_TZDB = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \
|
||||||
build.tools.tzdb.TzdbZoneRulesCompiler
|
build.tools.tzdb.TzdbZoneRulesCompiler
|
||||||
|
|
||||||
@@ -109,10 +103,6 @@ TOOL_CLDRCONVERTER = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes
|
|||||||
TOOL_GENERATELSREQUIVMAPS = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \
|
TOOL_GENERATELSREQUIVMAPS = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \
|
||||||
build.tools.generatelsrequivmaps.EquivMapsGenerator
|
build.tools.generatelsrequivmaps.EquivMapsGenerator
|
||||||
|
|
||||||
TOOL_GENMODULESXML = $(JAVA_SMALL) $(INTERIM_LANGTOOLS_BOOTCLASSPATH) \
|
|
||||||
-cp $(call PathList, $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes) \
|
|
||||||
build.tools.module.GenJdepsModulesXml
|
|
||||||
|
|
||||||
TOOL_GENMODULEINFOSOURCE = $(JAVA_SMALL) $(INTERIM_LANGTOOLS_BOOTCLASSPATH) \
|
TOOL_GENMODULEINFOSOURCE = $(JAVA_SMALL) $(INTERIM_LANGTOOLS_BOOTCLASSPATH) \
|
||||||
-cp $(call PathList, $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes) \
|
-cp $(call PathList, $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes) \
|
||||||
build.tools.module.GenModuleInfoSource
|
build.tools.module.GenModuleInfoSource
|
||||||
@@ -126,4 +116,11 @@ TOOL_PUBLICSUFFIXLIST = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_clas
|
|||||||
|
|
||||||
##########################################################################################
|
##########################################################################################
|
||||||
|
|
||||||
|
# Executable javascript filter for man page generation using pandoc.
|
||||||
|
|
||||||
|
PANDOC_TROFF_MANPAGE_FILTER := $(BUILDTOOLS_OUTPUTDIR)/manpages/pandoc-troff-manpage-filter
|
||||||
|
PANDOC_HTML_MANPAGE_FILTER := $(BUILDTOOLS_OUTPUTDIR)/manpages/pandoc-html-manpage-filter
|
||||||
|
|
||||||
|
##########################################################################################
|
||||||
|
|
||||||
endif # _TOOLS_GMK
|
endif # _TOOLS_GMK
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# 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
|
||||||
|
|||||||
@@ -168,7 +168,7 @@ AC_DEFUN([ADD_JVM_ARG_IF_OK],
|
|||||||
[
|
[
|
||||||
$ECHO "Check if jvm arg is ok: $1" >&AS_MESSAGE_LOG_FD
|
$ECHO "Check if jvm arg is ok: $1" >&AS_MESSAGE_LOG_FD
|
||||||
$ECHO "Command: $3 $1 -version" >&AS_MESSAGE_LOG_FD
|
$ECHO "Command: $3 $1 -version" >&AS_MESSAGE_LOG_FD
|
||||||
OUTPUT=`$3 $1 -version 2>&1`
|
OUTPUT=`$3 $1 $USER_BOOT_JDK_OPTIONS -version 2>&1`
|
||||||
FOUND_WARN=`$ECHO "$OUTPUT" | $GREP -i warn`
|
FOUND_WARN=`$ECHO "$OUTPUT" | $GREP -i warn`
|
||||||
FOUND_VERSION=`$ECHO $OUTPUT | $GREP " version \""`
|
FOUND_VERSION=`$ECHO $OUTPUT | $GREP " version \""`
|
||||||
if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
|
if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
|
||||||
@@ -223,6 +223,8 @@ AC_DEFUN([BASIC_FIXUP_PATH],
|
|||||||
BASIC_FIXUP_PATH_CYGWIN($1)
|
BASIC_FIXUP_PATH_CYGWIN($1)
|
||||||
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
|
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
|
||||||
BASIC_FIXUP_PATH_MSYS($1)
|
BASIC_FIXUP_PATH_MSYS($1)
|
||||||
|
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
|
||||||
|
BASIC_FIXUP_PATH_WSL($1)
|
||||||
else
|
else
|
||||||
# We're on a unix platform. Hooray! :)
|
# We're on a unix platform. Hooray! :)
|
||||||
path="[$]$1"
|
path="[$]$1"
|
||||||
@@ -270,6 +272,8 @@ AC_DEFUN([BASIC_FIXUP_EXECUTABLE],
|
|||||||
BASIC_FIXUP_EXECUTABLE_CYGWIN($1)
|
BASIC_FIXUP_EXECUTABLE_CYGWIN($1)
|
||||||
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
|
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
|
||||||
BASIC_FIXUP_EXECUTABLE_MSYS($1)
|
BASIC_FIXUP_EXECUTABLE_MSYS($1)
|
||||||
|
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
|
||||||
|
BASIC_FIXUP_EXECUTABLE_WSL($1)
|
||||||
else
|
else
|
||||||
# We're on a unix platform. Hooray! :)
|
# We're on a unix platform. Hooray! :)
|
||||||
# First separate the path from the arguments. This will split at the first
|
# First separate the path from the arguments. This will split at the first
|
||||||
@@ -569,7 +573,8 @@ AC_DEFUN_ONCE([BASIC_SETUP_FUNDAMENTAL_TOOLS],
|
|||||||
BASIC_REQUIRE_PROGS(GZIP, pigz gzip)
|
BASIC_REQUIRE_PROGS(GZIP, pigz gzip)
|
||||||
BASIC_REQUIRE_PROGS(LN, ln)
|
BASIC_REQUIRE_PROGS(LN, ln)
|
||||||
BASIC_REQUIRE_PROGS(LS, ls)
|
BASIC_REQUIRE_PROGS(LS, ls)
|
||||||
BASIC_REQUIRE_PROGS(MKDIR, mkdir)
|
# gmkdir is known to be safe for concurrent invocations with -p flag.
|
||||||
|
BASIC_REQUIRE_PROGS(MKDIR, [gmkdir mkdir])
|
||||||
BASIC_REQUIRE_PROGS(MKTEMP, mktemp)
|
BASIC_REQUIRE_PROGS(MKTEMP, mktemp)
|
||||||
BASIC_REQUIRE_PROGS(MV, mv)
|
BASIC_REQUIRE_PROGS(MV, mv)
|
||||||
BASIC_REQUIRE_PROGS(NAWK, [nawk gawk awk])
|
BASIC_REQUIRE_PROGS(NAWK, [nawk gawk awk])
|
||||||
@@ -606,10 +611,21 @@ AC_DEFUN_ONCE([BASIC_SETUP_FUNDAMENTAL_TOOLS],
|
|||||||
|
|
||||||
# These are not required on all platforms
|
# These are not required on all platforms
|
||||||
BASIC_PATH_PROGS(CYGPATH, cygpath)
|
BASIC_PATH_PROGS(CYGPATH, cygpath)
|
||||||
|
BASIC_PATH_PROGS(WSLPATH, wslpath)
|
||||||
BASIC_PATH_PROGS(DF, df)
|
BASIC_PATH_PROGS(DF, df)
|
||||||
BASIC_PATH_PROGS(CPIO, [cpio bsdcpio])
|
BASIC_PATH_PROGS(CPIO, [cpio bsdcpio])
|
||||||
BASIC_PATH_PROGS(NICE, nice)
|
BASIC_PATH_PROGS(NICE, nice)
|
||||||
|
|
||||||
BASIC_PATH_PROGS(PANDOC, pandoc)
|
BASIC_PATH_PROGS(PANDOC, pandoc)
|
||||||
|
if test -n "$PANDOC"; then
|
||||||
|
ENABLE_PANDOC="true"
|
||||||
|
else
|
||||||
|
ENABLE_PANDOC="false"
|
||||||
|
fi
|
||||||
|
AC_SUBST(ENABLE_PANDOC)
|
||||||
|
|
||||||
|
BASIC_PATH_PROGS(LSB_RELEASE, lsb_release)
|
||||||
|
BASIC_PATH_PROGS(CMD, [cmd.exe /mnt/c/Windows/System32/cmd.exe])
|
||||||
])
|
])
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
@@ -630,11 +646,14 @@ AC_DEFUN_ONCE([BASIC_SETUP_PATHS],
|
|||||||
|
|
||||||
if test "x$OPENJDK_TARGET_OS" = "xwindows"; then
|
if test "x$OPENJDK_TARGET_OS" = "xwindows"; then
|
||||||
PATH_SEP=";"
|
PATH_SEP=";"
|
||||||
|
EXE_SUFFIX=".exe"
|
||||||
BASIC_CHECK_PATHS_WINDOWS
|
BASIC_CHECK_PATHS_WINDOWS
|
||||||
else
|
else
|
||||||
PATH_SEP=":"
|
PATH_SEP=":"
|
||||||
|
EXE_SUFFIX=""
|
||||||
fi
|
fi
|
||||||
AC_SUBST(PATH_SEP)
|
AC_SUBST(PATH_SEP)
|
||||||
|
AC_SUBST(EXE_SUFFIX)
|
||||||
|
|
||||||
# We get the top-level directory from the supporting wrappers.
|
# We get the top-level directory from the supporting wrappers.
|
||||||
AC_MSG_CHECKING([for top-level directory])
|
AC_MSG_CHECKING([for top-level directory])
|
||||||
@@ -862,7 +881,7 @@ AC_DEFUN_ONCE([BASIC_SETUP_OUTPUT_DIR],
|
|||||||
# Create a default ./build/target-variant-debuglevel output root.
|
# Create a default ./build/target-variant-debuglevel output root.
|
||||||
if test "x${CONF_NAME}" = x; then
|
if test "x${CONF_NAME}" = x; then
|
||||||
AC_MSG_RESULT([in default location])
|
AC_MSG_RESULT([in default location])
|
||||||
CONF_NAME="${OPENJDK_TARGET_OS}-${OPENJDK_TARGET_CPU}-${JDK_VARIANT}-${JVM_VARIANTS_WITH_AND}-${DEBUG_LEVEL}"
|
CONF_NAME="${OPENJDK_TARGET_OS}-${OPENJDK_TARGET_CPU}-${JVM_VARIANTS_WITH_AND}-${DEBUG_LEVEL}"
|
||||||
else
|
else
|
||||||
AC_MSG_RESULT([in build directory with custom name])
|
AC_MSG_RESULT([in build directory with custom name])
|
||||||
fi
|
fi
|
||||||
@@ -979,6 +998,8 @@ AC_DEFUN([BASIC_CHECK_MAKE_VERSION],
|
|||||||
MAKE_EXPECTED_ENV='cygwin'
|
MAKE_EXPECTED_ENV='cygwin'
|
||||||
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
|
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
|
||||||
MAKE_EXPECTED_ENV='msys'
|
MAKE_EXPECTED_ENV='msys'
|
||||||
|
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
|
||||||
|
MAKE_EXPECTED_ENV='x86_64-pc-linux-gnu'
|
||||||
else
|
else
|
||||||
AC_MSG_ERROR([Unknown Windows environment])
|
AC_MSG_ERROR([Unknown Windows environment])
|
||||||
fi
|
fi
|
||||||
@@ -1190,6 +1211,7 @@ AC_DEFUN_ONCE([BASIC_SETUP_COMPLEX_TOOLS],
|
|||||||
BASIC_PATH_PROGS(READELF, [greadelf readelf])
|
BASIC_PATH_PROGS(READELF, [greadelf readelf])
|
||||||
BASIC_PATH_PROGS(DOT, dot)
|
BASIC_PATH_PROGS(DOT, dot)
|
||||||
BASIC_PATH_PROGS(HG, hg)
|
BASIC_PATH_PROGS(HG, hg)
|
||||||
|
BASIC_PATH_PROGS(GIT, git)
|
||||||
BASIC_PATH_PROGS(STAT, stat)
|
BASIC_PATH_PROGS(STAT, stat)
|
||||||
BASIC_PATH_PROGS(TIME, time)
|
BASIC_PATH_PROGS(TIME, time)
|
||||||
BASIC_PATH_PROGS(FLOCK, flock)
|
BASIC_PATH_PROGS(FLOCK, flock)
|
||||||
@@ -1264,9 +1286,20 @@ AC_DEFUN([BASIC_CHECK_DIR_ON_LOCAL_DISK],
|
|||||||
fi
|
fi
|
||||||
if $DF $DF_LOCAL_ONLY_OPTION $1 > /dev/null 2>&1; then
|
if $DF $DF_LOCAL_ONLY_OPTION $1 > /dev/null 2>&1; then
|
||||||
$2
|
$2
|
||||||
|
else
|
||||||
|
# In WSL, local Windows drives are considered remote by df, but we are
|
||||||
|
# required to build into a directory accessible from windows, so consider
|
||||||
|
# them local here.
|
||||||
|
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
|
||||||
|
if $DF $1 | $GREP -q "^[[A-Z]]:"; then
|
||||||
|
$2
|
||||||
else
|
else
|
||||||
$3
|
$3
|
||||||
fi
|
fi
|
||||||
|
else
|
||||||
|
$3
|
||||||
|
fi
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|||||||
@@ -32,6 +32,13 @@ AC_DEFUN([BASIC_WINDOWS_REWRITE_AS_UNIX_PATH],
|
|||||||
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
|
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
|
||||||
unix_path=`$ECHO "$windows_path" | $SED -e 's,^\\(.\\):,/\\1,g' -e 's,\\\\,/,g'`
|
unix_path=`$ECHO "$windows_path" | $SED -e 's,^\\(.\\):,/\\1,g' -e 's,\\\\,/,g'`
|
||||||
$1="$unix_path"
|
$1="$unix_path"
|
||||||
|
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
|
||||||
|
# wslpath does not check the input, only call if an actual windows path was
|
||||||
|
# given.
|
||||||
|
if $ECHO "$windows_path" | $GREP -q ["^[a-zA-Z]:[\\\\/]"]; then
|
||||||
|
unix_path=`$WSLPATH -u "$windows_path"`
|
||||||
|
$1="$unix_path"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
|
|
||||||
@@ -44,6 +51,9 @@ AC_DEFUN([BASIC_WINDOWS_REWRITE_AS_WINDOWS_MIXED_PATH],
|
|||||||
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
|
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
|
||||||
windows_path=`cmd //c echo $unix_path`
|
windows_path=`cmd //c echo $unix_path`
|
||||||
$1="$windows_path"
|
$1="$windows_path"
|
||||||
|
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
|
||||||
|
windows_path=`$WSLPATH -m "$unix_path"`
|
||||||
|
$1="$windows_path"
|
||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
|
|
||||||
@@ -100,6 +110,31 @@ AC_DEFUN([BASIC_MAKE_WINDOWS_SPACE_SAFE_MSYS],
|
|||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
|
|
||||||
|
# Helper function which possibly converts a path using DOS-style short mode.
|
||||||
|
# If so, the updated path is stored in $new_path.
|
||||||
|
# $1: The path to check
|
||||||
|
AC_DEFUN([BASIC_MAKE_WINDOWS_SPACE_SAFE_WSL],
|
||||||
|
[
|
||||||
|
input_path="$1"
|
||||||
|
# Check if we need to convert this using DOS-style short mode. If the path
|
||||||
|
# contains just simple characters, use it. Otherwise (spaces, weird characters),
|
||||||
|
# take no chances and rewrite it.
|
||||||
|
# Note: m4 eats our [], so we need to use @<:@ and @:>@ instead.
|
||||||
|
has_forbidden_chars=`$ECHO "$input_path" | $GREP [[^-_/:a-zA-Z0-9\\.]]`
|
||||||
|
if test "x$has_forbidden_chars" != x; then
|
||||||
|
# Now convert it to mixed DOS-style, short mode (no spaces, and / instead of \)
|
||||||
|
TOPDIR_windows="$TOPDIR"
|
||||||
|
BASIC_WINDOWS_REWRITE_AS_WINDOWS_MIXED_PATH([TOPDIR_windows])
|
||||||
|
# First convert to Windows path to make input valid for cmd
|
||||||
|
BASIC_WINDOWS_REWRITE_AS_WINDOWS_MIXED_PATH([input_path])
|
||||||
|
new_path=`$CMD /c $TOPDIR_windows/make/scripts/windowsShortName.bat "$input_path" \
|
||||||
|
| $SED -e 's|\r||g' \
|
||||||
|
| $TR \\\\\\\\ / | $TR 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
|
||||||
|
# Rewrite back to unix style
|
||||||
|
BASIC_WINDOWS_REWRITE_AS_UNIX_PATH([new_path])
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
||||||
# FIXME: The BASIC_FIXUP_*_CYGWIN/MSYS is most likely too convoluted
|
# FIXME: The BASIC_FIXUP_*_CYGWIN/MSYS is most likely too convoluted
|
||||||
# and could probably be heavily simplified. However, all changes in this
|
# and could probably be heavily simplified. However, all changes in this
|
||||||
# area tend to need lot of testing in different scenarios, and in lack of
|
# area tend to need lot of testing in different scenarios, and in lack of
|
||||||
@@ -157,6 +192,23 @@ AC_DEFUN([BASIC_FIXUP_PATH_MSYS],
|
|||||||
all_fixpath_prefixes=("${all_fixpath_prefixes@<:@@@:>@}" "${new_path:0:10}")
|
all_fixpath_prefixes=("${all_fixpath_prefixes@<:@@@:>@}" "${new_path:0:10}")
|
||||||
])
|
])
|
||||||
|
|
||||||
|
AC_DEFUN([BASIC_FIXUP_PATH_WSL],
|
||||||
|
[
|
||||||
|
# Input might be given as Windows format, start by converting to
|
||||||
|
# unix format.
|
||||||
|
new_path="[$]$1"
|
||||||
|
BASIC_WINDOWS_REWRITE_AS_UNIX_PATH([new_path])
|
||||||
|
|
||||||
|
# Call helper function which possibly converts this using DOS-style short mode.
|
||||||
|
# If so, the updated path is stored in $new_path.
|
||||||
|
BASIC_MAKE_WINDOWS_SPACE_SAFE_WSL([$new_path])
|
||||||
|
|
||||||
|
if test "x$path" != "x$new_path"; then
|
||||||
|
$1="$new_path"
|
||||||
|
AC_MSG_NOTICE([Rewriting $1 to "$new_path"])
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
||||||
AC_DEFUN([BASIC_FIXUP_EXECUTABLE_CYGWIN],
|
AC_DEFUN([BASIC_FIXUP_EXECUTABLE_CYGWIN],
|
||||||
[
|
[
|
||||||
# First separate the path from the arguments. This will split at the first
|
# First separate the path from the arguments. This will split at the first
|
||||||
@@ -305,6 +357,79 @@ AC_DEFUN([BASIC_FIXUP_EXECUTABLE_MSYS],
|
|||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
|
|
||||||
|
AC_DEFUN([BASIC_FIXUP_EXECUTABLE_WSL],
|
||||||
|
[
|
||||||
|
# First separate the path from the arguments. This will split at the first
|
||||||
|
# space.
|
||||||
|
complete="[$]$1"
|
||||||
|
path="${complete%% *}"
|
||||||
|
tmp="$complete EOL"
|
||||||
|
arguments="${tmp#* }"
|
||||||
|
|
||||||
|
# Input might be given as Windows format, start by converting to
|
||||||
|
# unix format.
|
||||||
|
new_path="$path"
|
||||||
|
BASIC_WINDOWS_REWRITE_AS_UNIX_PATH([new_path])
|
||||||
|
|
||||||
|
# Now try to locate executable using which
|
||||||
|
new_path_bak="$new_path"
|
||||||
|
new_path=`$WHICH "$new_path" 2> /dev/null`
|
||||||
|
# bat and cmd files are not considered executable in WSL
|
||||||
|
if test "x$new_path" = x \
|
||||||
|
&& test "x`$ECHO \"$path\" | $GREP -i -e \"\\.bat$\" -e \"\\.cmd$\"`" != x \
|
||||||
|
&& test "x`$LS \"$path\" 2>/dev/null`" != x; then
|
||||||
|
new_path="$new_path_back"
|
||||||
|
fi
|
||||||
|
if test "x$new_path" = x; then
|
||||||
|
# Oops. Which didn't find the executable.
|
||||||
|
# The splitting of arguments from the executable at a space might have been incorrect,
|
||||||
|
# since paths with space are more likely in Windows. Give it another try with the whole
|
||||||
|
# argument.
|
||||||
|
path="$complete"
|
||||||
|
arguments="EOL"
|
||||||
|
new_path="$path"
|
||||||
|
BASIC_WINDOWS_REWRITE_AS_UNIX_PATH([new_path])
|
||||||
|
new_path_bak="$new_path"
|
||||||
|
new_path=`$WHICH "$new_path" 2> /dev/null`
|
||||||
|
# bat and cmd files are not considered executable in WSL
|
||||||
|
if test "x$new_path" = x \
|
||||||
|
&& test "x`$ECHO \"$path\" | $GREP -i -e \"\\.bat$\" -e \"\\.cmd$\"`" != x \
|
||||||
|
&& test "x`$LS \"$path\" 2>/dev/null`" != x; then
|
||||||
|
new_path="$new_path_bak"
|
||||||
|
fi
|
||||||
|
if test "x$new_path" = x; then
|
||||||
|
# It's still not found. Now this is an unrecoverable error.
|
||||||
|
AC_MSG_NOTICE([The path of $1, which resolves as "$complete", is not found.])
|
||||||
|
has_space=`$ECHO "$complete" | $GREP " "`
|
||||||
|
if test "x$has_space" != x; then
|
||||||
|
AC_MSG_NOTICE([You might be mixing spaces in the path and extra arguments, which is not allowed.])
|
||||||
|
fi
|
||||||
|
AC_MSG_ERROR([Cannot locate the the path of $1])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# In WSL, suffixes must be present for Windows executables
|
||||||
|
if test ! -f "$new_path"; then
|
||||||
|
# Try adding .exe or .cmd
|
||||||
|
if test -f "${new_path}.exe"; then
|
||||||
|
input_to_shortpath="${new_path}.exe"
|
||||||
|
elif test -f "${new_path}.cmd"; then
|
||||||
|
input_to_shortpath="${new_path}.cmd"
|
||||||
|
else
|
||||||
|
AC_MSG_NOTICE([The path of $1, which resolves as "$new_path", is invalid.])
|
||||||
|
AC_MSG_NOTICE([Neither "$new_path" nor "$new_path.exe/cmd" can be found])
|
||||||
|
AC_MSG_ERROR([Cannot locate the the path of $1])
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
input_to_shortpath="$new_path"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Call helper function which possibly converts this using DOS-style short mode.
|
||||||
|
# If so, the updated path is stored in $new_path.
|
||||||
|
new_path="$input_to_shortpath"
|
||||||
|
BASIC_MAKE_WINDOWS_SPACE_SAFE_WSL([$input_to_shortpath])
|
||||||
|
])
|
||||||
|
|
||||||
# Setup basic configuration paths, and platform-specific stuff related to PATHs.
|
# Setup basic configuration paths, and platform-specific stuff related to PATHs.
|
||||||
AC_DEFUN([BASIC_CHECK_PATHS_WINDOWS],
|
AC_DEFUN([BASIC_CHECK_PATHS_WINDOWS],
|
||||||
[
|
[
|
||||||
@@ -353,8 +478,28 @@ AC_DEFUN([BASIC_CHECK_PATHS_WINDOWS],
|
|||||||
BASIC_WINDOWS_REWRITE_AS_UNIX_PATH(MSYS_ROOT_PATH)
|
BASIC_WINDOWS_REWRITE_AS_UNIX_PATH(MSYS_ROOT_PATH)
|
||||||
AC_MSG_RESULT([$MSYS_ROOT_PATH])
|
AC_MSG_RESULT([$MSYS_ROOT_PATH])
|
||||||
WINDOWS_ENV_ROOT_PATH="$MSYS_ROOT_PATH"
|
WINDOWS_ENV_ROOT_PATH="$MSYS_ROOT_PATH"
|
||||||
|
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
|
||||||
|
AC_MSG_CHECKING([Windows version])
|
||||||
|
# m4 replaces [ and ] so we use @<:@ and @:>@ instead
|
||||||
|
WINDOWS_VERSION=`$CMD /c ver.exe | $EGREP -o '(@<:@0-9@:>@+\.)+@<:@0-9@:>@+'`
|
||||||
|
AC_MSG_RESULT([$WINDOWS_VERSION])
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([WSL kernel version])
|
||||||
|
WSL_KERNEL_VERSION=`$UNAME -v`
|
||||||
|
AC_MSG_RESULT([$WSL_KERNEL_VERSION])
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([WSL kernel release])
|
||||||
|
WSL_KERNEL_RELEASE=`$UNAME -r`
|
||||||
|
AC_MSG_RESULT([$WSL_KERNEL_RELEASE])
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([WSL distribution])
|
||||||
|
WSL_DISTRIBUTION=`$LSB_RELEASE -d | sed 's/Description:\t//'`
|
||||||
|
AC_MSG_RESULT([$WSL_DISTRIBUTION])
|
||||||
|
|
||||||
|
WINDOWS_ENV_VENDOR='WSL'
|
||||||
|
WINDOWS_ENV_VERSION="$WSL_DISTRIBUTION $WSL_KERNEL_VERSION $WSL_KERNEL_RELEASE (on Windows build $WINDOWS_VERSION)"
|
||||||
else
|
else
|
||||||
AC_MSG_ERROR([Unknown Windows environment. Neither cygwin nor msys was detected.])
|
AC_MSG_ERROR([Unknown Windows environment. Neither cygwin, msys, nor wsl was detected.])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Test if windows or unix (cygwin/msys) find is first in path.
|
# Test if windows or unix (cygwin/msys) find is first in path.
|
||||||
@@ -395,6 +540,8 @@ AC_DEFUN_ONCE([BASIC_COMPILE_FIXPATH],
|
|||||||
| tr ' ' '\n' | $GREP '^/./' | $SORT | $UNIQ`
|
| tr ' ' '\n' | $GREP '^/./' | $SORT | $UNIQ`
|
||||||
fixpath_argument_list=`echo $all_unique_prefixes | tr ' ' '@'`
|
fixpath_argument_list=`echo $all_unique_prefixes | tr ' ' '@'`
|
||||||
FIXPATH="$FIXPATH_BIN -m$fixpath_argument_list"
|
FIXPATH="$FIXPATH_BIN -m$fixpath_argument_list"
|
||||||
|
elif test "x$OPENJDK_BUILD_OS_ENV" = xwindows.wsl; then
|
||||||
|
FIXPATH="$FIXPATH_BIN -w"
|
||||||
fi
|
fi
|
||||||
FIXPATH_SRC_W="$FIXPATH_SRC"
|
FIXPATH_SRC_W="$FIXPATH_SRC"
|
||||||
FIXPATH_BIN_W="$FIXPATH_BIN"
|
FIXPATH_BIN_W="$FIXPATH_BIN"
|
||||||
@@ -412,6 +559,17 @@ AC_DEFUN_ONCE([BASIC_COMPILE_FIXPATH],
|
|||||||
AC_MSG_ERROR([Could not create $FIXPATH_BIN])
|
AC_MSG_ERROR([Could not create $FIXPATH_BIN])
|
||||||
fi
|
fi
|
||||||
AC_MSG_RESULT([yes])
|
AC_MSG_RESULT([yes])
|
||||||
|
|
||||||
|
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
|
||||||
|
OLD_WSLENV="$WSLENV"
|
||||||
|
WSLENV=`$ECHO $WSLENV | $SED 's/PATH\/l://'`
|
||||||
|
BASIC_APPEND_TO_PATH(WSLENV, "FIXPATH_PATH")
|
||||||
|
export WSLENV
|
||||||
|
export FIXPATH_PATH=$VS_PATH_WINDOWS
|
||||||
|
AC_MSG_NOTICE([FIXPATH_PATH is $FIXPATH_PATH])
|
||||||
|
AC_MSG_NOTICE([Rewriting WSLENV from $OLD_WSLENV to $WSLENV])
|
||||||
|
fi
|
||||||
|
|
||||||
AC_MSG_CHECKING([if fixpath.exe works])
|
AC_MSG_CHECKING([if fixpath.exe works])
|
||||||
cd $FIXPATH_DIR
|
cd $FIXPATH_DIR
|
||||||
$FIXPATH $CC $FIXPATH_SRC -Fe$FIXPATH_DIR/fixpath2.exe \
|
$FIXPATH $CC $FIXPATH_SRC -Fe$FIXPATH_DIR/fixpath2.exe \
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# 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
|
||||||
@@ -63,18 +63,29 @@ AC_DEFUN([BOOTJDK_DO_CHECK],
|
|||||||
# If previous step claimed to have found a JDK, check it to see if it seems to be valid.
|
# If previous step claimed to have found a JDK, check it to see if it seems to be valid.
|
||||||
if test "x$BOOT_JDK_FOUND" = xmaybe; then
|
if test "x$BOOT_JDK_FOUND" = xmaybe; then
|
||||||
# Do we have a bin/java?
|
# Do we have a bin/java?
|
||||||
if test ! -x "$BOOT_JDK/bin/java"; then
|
if test ! -x "$BOOT_JDK/bin/java$EXE_SUFFIX"; then
|
||||||
AC_MSG_NOTICE([Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring])
|
AC_MSG_NOTICE([Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring])
|
||||||
BOOT_JDK_FOUND=no
|
BOOT_JDK_FOUND=no
|
||||||
else
|
else
|
||||||
# Do we have a bin/javac?
|
# Do we have a bin/javac?
|
||||||
if test ! -x "$BOOT_JDK/bin/javac"; then
|
if test ! -x "$BOOT_JDK/bin/javac$EXE_SUFFIX"; then
|
||||||
AC_MSG_NOTICE([Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring])
|
AC_MSG_NOTICE([Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring])
|
||||||
AC_MSG_NOTICE([(This might be an JRE instead of an JDK)])
|
AC_MSG_NOTICE([(This might be an JRE instead of an JDK)])
|
||||||
BOOT_JDK_FOUND=no
|
BOOT_JDK_FOUND=no
|
||||||
else
|
else
|
||||||
# Oh, this is looking good! We probably have found a proper JDK. Is it the correct version?
|
# Oh, this is looking good! We probably have found a proper JDK. Is it the correct version?
|
||||||
BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | $HEAD -n 1`
|
BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java$EXE_SUFFIX" $USER_BOOT_JDK_OPTIONS -version 2>&1 | $HEAD -n 1`
|
||||||
|
if [ [[ "$BOOT_JDK_VERSION" =~ "Picked up" ]] ]; then
|
||||||
|
AC_MSG_NOTICE([You have _JAVA_OPTIONS or JAVA_TOOL_OPTIONS set. This can mess up the build. Please use --with-boot-jdk-jvmargs instead.])
|
||||||
|
AC_MSG_NOTICE([Java reports: "$BOOT_JDK_VERSION".])
|
||||||
|
AC_MSG_ERROR([Cannot continue])
|
||||||
|
fi
|
||||||
|
if [ [[ "$BOOT_JDK_VERSION" =~ "Unrecognized option" ]] ]; then
|
||||||
|
AC_MSG_NOTICE([The specified --with-boot-jdk-jvmargs is invalid for the tested java])
|
||||||
|
AC_MSG_NOTICE([Error message: "$BOOT_JDK_VERSION".])
|
||||||
|
AC_MSG_NOTICE([Please fix arguments, or point to an explicit boot JDK which accept these arguments])
|
||||||
|
AC_MSG_ERROR([Cannot continue])
|
||||||
|
fi
|
||||||
|
|
||||||
# Extra M4 quote needed to protect [] in grep expression.
|
# Extra M4 quote needed to protect [] in grep expression.
|
||||||
[FOUND_CORRECT_VERSION=`$ECHO $BOOT_JDK_VERSION \
|
[FOUND_CORRECT_VERSION=`$ECHO $BOOT_JDK_VERSION \
|
||||||
@@ -90,7 +101,7 @@ AC_DEFUN([BOOTJDK_DO_CHECK],
|
|||||||
AC_MSG_CHECKING([for Boot JDK])
|
AC_MSG_CHECKING([for Boot JDK])
|
||||||
AC_MSG_RESULT([$BOOT_JDK])
|
AC_MSG_RESULT([$BOOT_JDK])
|
||||||
AC_MSG_CHECKING([Boot JDK version])
|
AC_MSG_CHECKING([Boot JDK version])
|
||||||
BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | $TR '\n\r' ' '`
|
BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java$EXE_SUFFIX" $USER_BOOT_JDK_OPTIONS -version 2>&1 | $TR '\n\r' ' '`
|
||||||
AC_MSG_RESULT([$BOOT_JDK_VERSION])
|
AC_MSG_RESULT([$BOOT_JDK_VERSION])
|
||||||
fi # end check jdk version
|
fi # end check jdk version
|
||||||
fi # end check javac
|
fi # end check javac
|
||||||
@@ -283,6 +294,11 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK],
|
|||||||
AC_ARG_WITH(boot-jdk, [AS_HELP_STRING([--with-boot-jdk],
|
AC_ARG_WITH(boot-jdk, [AS_HELP_STRING([--with-boot-jdk],
|
||||||
[path to Boot JDK (used to bootstrap build) @<:@probed@:>@])])
|
[path to Boot JDK (used to bootstrap build) @<:@probed@:>@])])
|
||||||
|
|
||||||
|
AC_ARG_WITH(boot-jdk-jvmargs, [AS_HELP_STRING([--with-boot-jdk-jvmargs],
|
||||||
|
[specify additional arguments to be passed to Boot JDK tools @<:@none@:>@])])
|
||||||
|
|
||||||
|
USER_BOOT_JDK_OPTIONS="$with_boot_jdk_jvmargs"
|
||||||
|
|
||||||
# We look for the Boot JDK through various means, going from more certain to
|
# We look for the Boot JDK through various means, going from more certain to
|
||||||
# more of a guess-work. After each test, BOOT_JDK_FOUND is set to "yes" if
|
# more of a guess-work. After each test, BOOT_JDK_FOUND is set to "yes" if
|
||||||
# we detected something (if so, the path to the jdk is in BOOT_JDK). But we
|
# we detected something (if so, the path to the jdk is in BOOT_JDK). But we
|
||||||
@@ -319,11 +335,11 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK],
|
|||||||
AC_SUBST(BOOT_JDK)
|
AC_SUBST(BOOT_JDK)
|
||||||
|
|
||||||
# Setup tools from the Boot JDK.
|
# Setup tools from the Boot JDK.
|
||||||
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVA, java)
|
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVA, java$EXE_SUFFIX)
|
||||||
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVAC, javac)
|
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVAC, javac$EXE_SUFFIX)
|
||||||
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVADOC, javadoc)
|
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVADOC, javadoc$EXE_SUFFIX)
|
||||||
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAR, jar)
|
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAR, jar$EXE_SUFFIX)
|
||||||
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JARSIGNER, jarsigner)
|
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JARSIGNER, jarsigner$EXE_SUFFIX)
|
||||||
|
|
||||||
# Finally, set some other options...
|
# Finally, set some other options...
|
||||||
|
|
||||||
@@ -372,10 +388,6 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK_ARGUMENTS],
|
|||||||
# Specify jvm options for anything that is run with the Boot JDK.
|
# Specify jvm options for anything that is run with the Boot JDK.
|
||||||
# Not all JVM:s accept the same arguments on the command line.
|
# Not all JVM:s accept the same arguments on the command line.
|
||||||
#
|
#
|
||||||
AC_ARG_WITH(boot-jdk-jvmargs, [AS_HELP_STRING([--with-boot-jdk-jvmargs],
|
|
||||||
[specify JVM arguments to be passed to all java invocations of boot JDK, overriding the default values,
|
|
||||||
e.g --with-boot-jdk-jvmargs="-Xmx8G -enableassertions"])])
|
|
||||||
|
|
||||||
AC_MSG_CHECKING([flags for boot jdk java command] )
|
AC_MSG_CHECKING([flags for boot jdk java command] )
|
||||||
|
|
||||||
# Force en-US environment
|
# Force en-US environment
|
||||||
@@ -389,8 +401,8 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK_ARGUMENTS],
|
|||||||
ADD_JVM_ARG_IF_OK([-Xshare:auto],boot_jdk_jvmargs,[$JAVA])
|
ADD_JVM_ARG_IF_OK([-Xshare:auto],boot_jdk_jvmargs,[$JAVA])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Apply user provided options.
|
# Finally append user provided options to allow them to override.
|
||||||
ADD_JVM_ARG_IF_OK([$with_boot_jdk_jvmargs],boot_jdk_jvmargs,[$JAVA])
|
ADD_JVM_ARG_IF_OK([$USER_BOOT_JDK_OPTIONS],boot_jdk_jvmargs,[$JAVA])
|
||||||
|
|
||||||
AC_MSG_RESULT([$boot_jdk_jvmargs])
|
AC_MSG_RESULT([$boot_jdk_jvmargs])
|
||||||
|
|
||||||
|
|||||||
11
make/autoconf/build-aux/config.guess
vendored
11
make/autoconf/build-aux/config.guess
vendored
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#
|
#
|
||||||
# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -60,6 +60,15 @@ if test $? = 0; then
|
|||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Test and fix wsl
|
||||||
|
echo $OUT | grep x86_64-unknown-linux-gnu > /dev/null 2> /dev/null
|
||||||
|
if test $? = 0; then
|
||||||
|
uname -r | grep Microsoft > /dev/null 2> /dev/null
|
||||||
|
if test $? = 0; then
|
||||||
|
OUT="x86_64-pc-wsl"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
# Test and fix architecture string on AIX
|
# Test and fix architecture string on AIX
|
||||||
# On AIX 'config.guess' returns 'powerpc' as architecture but 'powerpc' is
|
# On AIX 'config.guess' returns 'powerpc' as architecture but 'powerpc' is
|
||||||
# implicitely handled as 32-bit architecture in 'platform.m4' so we check
|
# implicitely handled as 32-bit architecture in 'platform.m4' so we check
|
||||||
|
|||||||
8
make/autoconf/build-aux/config.sub
vendored
8
make/autoconf/build-aux/config.sub
vendored
@@ -29,7 +29,13 @@
|
|||||||
|
|
||||||
DIR=`dirname $0`
|
DIR=`dirname $0`
|
||||||
|
|
||||||
# First, filter out everything that doesn't begin with "aarch64-"
|
# Allow wsl
|
||||||
|
if echo $* | grep x86_64-pc-wsl >/dev/null ; then
|
||||||
|
echo $*
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Filter out everything that doesn't begin with "aarch64-"
|
||||||
if ! echo $* | grep '^aarch64-' >/dev/null ; then
|
if ! echo $* | grep '^aarch64-' >/dev/null ; then
|
||||||
. $DIR/autoconf-config.sub "$@"
|
. $DIR/autoconf-config.sub "$@"
|
||||||
# autoconf-config.sub exits, so we never reach here, but just in
|
# autoconf-config.sub exits, so we never reach here, but just in
|
||||||
|
|||||||
@@ -31,6 +31,7 @@
|
|||||||
|
|
||||||
export LEGACY_BUILD_DIR=@OPENJDK_TARGET_OS@-@OPENJDK_TARGET_CPU_LEGACY@
|
export LEGACY_BUILD_DIR=@OPENJDK_TARGET_OS@-@OPENJDK_TARGET_CPU_LEGACY@
|
||||||
|
|
||||||
|
export OPENJDK_BUILD_OS_ENV="@OPENJDK_BUILD_OS_ENV@"
|
||||||
export OPENJDK_TARGET_OS="@OPENJDK_TARGET_OS@"
|
export OPENJDK_TARGET_OS="@OPENJDK_TARGET_OS@"
|
||||||
export OPENJDK_TARGET_CPU="@OPENJDK_TARGET_CPU@"
|
export OPENJDK_TARGET_CPU="@OPENJDK_TARGET_CPU@"
|
||||||
export DEBUG_LEVEL="@DEBUG_LEVEL@"
|
export DEBUG_LEVEL="@DEBUG_LEVEL@"
|
||||||
@@ -84,7 +85,12 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$OPENJDK_TARGET_OS" = "windows" ]; then
|
if [ "$OPENJDK_TARGET_OS" = "windows" ]; then
|
||||||
|
if [ "$OPENJDK_BUILD_OS_ENV" = "windows.wsl" ]; then
|
||||||
|
export FIXPATH_PATH="@VS_PATH_WINDOWS@"
|
||||||
|
export WSLENV="$WSLENV:FIXPATH_PATH:DEBUG_FIXPATH"
|
||||||
|
else
|
||||||
export PATH="@VS_PATH@"
|
export PATH="@VS_PATH@"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Now locate the main script and run it.
|
# Now locate the main script and run it.
|
||||||
|
|||||||
6
make/autoconf/configure
vendored
6
make/autoconf/configure
vendored
@@ -122,14 +122,18 @@ generate_configure_script() {
|
|||||||
if test "x$CUSTOM_CONFIG_DIR" != x; then
|
if test "x$CUSTOM_CONFIG_DIR" != x; then
|
||||||
# Generate configure script with custom hooks compiled in.
|
# Generate configure script with custom hooks compiled in.
|
||||||
custom_patcher='sed -e "s|#CUSTOM_AUTOCONF_INCLUDE|m4_include([$custom_hook])|"'
|
custom_patcher='sed -e "s|#CUSTOM_AUTOCONF_INCLUDE|m4_include([$custom_hook])|"'
|
||||||
|
custom_script_dir_include="-I$CUSTOM_CONFIG_DIR"
|
||||||
else
|
else
|
||||||
custom_patcher='cat'
|
custom_patcher='cat'
|
||||||
|
custom_script_dir_include=""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mkdir -p $build_support_dir
|
mkdir -p $build_support_dir
|
||||||
# Call autoconf but replace the "magic" variable in configure.ac if requested.
|
# Call autoconf but replace the "magic" variable in configure.ac if requested.
|
||||||
|
|
||||||
cat $conf_script_dir/configure.ac | eval $custom_patcher | \
|
cat $conf_script_dir/configure.ac | eval $custom_patcher | \
|
||||||
${AUTOCONF} -W all -I$conf_script_dir - > $generated_script
|
${AUTOCONF} -W all $custom_script_dir_include -I$conf_script_dir - \
|
||||||
|
> $generated_script
|
||||||
rm -rf autom4te.cache
|
rm -rf autom4te.cache
|
||||||
|
|
||||||
# Sanity check
|
# Sanity check
|
||||||
|
|||||||
@@ -91,7 +91,6 @@ BASIC_SETUP_PATHS
|
|||||||
JDKOPT_SETUP_OPEN_OR_CUSTOM
|
JDKOPT_SETUP_OPEN_OR_CUSTOM
|
||||||
|
|
||||||
# These are needed to be able to create a configuration name (and thus the output directory)
|
# These are needed to be able to create a configuration name (and thus the output directory)
|
||||||
JDKOPT_SETUP_JDK_VARIANT
|
|
||||||
JDKOPT_SETUP_DEBUG_LEVEL
|
JDKOPT_SETUP_DEBUG_LEVEL
|
||||||
HOTSPOT_SETUP_JVM_VARIANTS
|
HOTSPOT_SETUP_JVM_VARIANTS
|
||||||
|
|
||||||
@@ -181,6 +180,9 @@ TOOLCHAIN_MISC_CHECKS
|
|||||||
# Setup the JTReg Regression Test Harness.
|
# Setup the JTReg Regression Test Harness.
|
||||||
TOOLCHAIN_SETUP_JTREG
|
TOOLCHAIN_SETUP_JTREG
|
||||||
|
|
||||||
|
# Setup the Java Microbenchmark Harness (JMH)
|
||||||
|
LIB_TESTS_SETUP_JMH
|
||||||
|
|
||||||
# Setup Jib dependency tool
|
# Setup Jib dependency tool
|
||||||
TOOLCHAIN_SETUP_JIB
|
TOOLCHAIN_SETUP_JIB
|
||||||
|
|
||||||
@@ -234,6 +236,7 @@ JDKOPT_ENABLE_DISABLE_FAILURE_HANDLER
|
|||||||
JDKOPT_ENABLE_DISABLE_GENERATE_CLASSLIST
|
JDKOPT_ENABLE_DISABLE_GENERATE_CLASSLIST
|
||||||
JDKOPT_EXCLUDE_TRANSLATIONS
|
JDKOPT_EXCLUDE_TRANSLATIONS
|
||||||
JDKOPT_ENABLE_DISABLE_MANPAGES
|
JDKOPT_ENABLE_DISABLE_MANPAGES
|
||||||
|
JDKOPT_ENABLE_DISABLE_CDS_ARCHIVE
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -106,11 +106,17 @@ AC_DEFUN([FLAGS_SETUP_SHARED_LIBS],
|
|||||||
|
|
||||||
AC_DEFUN([FLAGS_SETUP_DEBUG_SYMBOLS],
|
AC_DEFUN([FLAGS_SETUP_DEBUG_SYMBOLS],
|
||||||
[
|
[
|
||||||
|
# By default don't set any specific assembler debug
|
||||||
|
# info flags for toolchains unless we know they work.
|
||||||
|
# See JDK-8207057.
|
||||||
|
ASFLAGS_DEBUG_SYMBOLS=""
|
||||||
# Debug symbols
|
# Debug symbols
|
||||||
if test "x$TOOLCHAIN_TYPE" = xgcc; then
|
if test "x$TOOLCHAIN_TYPE" = xgcc; then
|
||||||
CFLAGS_DEBUG_SYMBOLS="-g"
|
CFLAGS_DEBUG_SYMBOLS="-g"
|
||||||
|
ASFLAGS_DEBUG_SYMBOLS="-g"
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xclang; then
|
elif test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||||
CFLAGS_DEBUG_SYMBOLS="-g"
|
CFLAGS_DEBUG_SYMBOLS="-g"
|
||||||
|
ASFLAGS_DEBUG_SYMBOLS="-g"
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
||||||
# -g0 enables debug symbols without disabling inlining.
|
# -g0 enables debug symbols without disabling inlining.
|
||||||
CFLAGS_DEBUG_SYMBOLS="-g0 -xs"
|
CFLAGS_DEBUG_SYMBOLS="-g0 -xs"
|
||||||
@@ -121,6 +127,7 @@ AC_DEFUN([FLAGS_SETUP_DEBUG_SYMBOLS],
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
AC_SUBST(CFLAGS_DEBUG_SYMBOLS)
|
AC_SUBST(CFLAGS_DEBUG_SYMBOLS)
|
||||||
|
AC_SUBST(ASFLAGS_DEBUG_SYMBOLS)
|
||||||
])
|
])
|
||||||
|
|
||||||
AC_DEFUN([FLAGS_SETUP_WARNINGS],
|
AC_DEFUN([FLAGS_SETUP_WARNINGS],
|
||||||
@@ -154,14 +161,35 @@ AC_DEFUN([FLAGS_SETUP_WARNINGS],
|
|||||||
microsoft)
|
microsoft)
|
||||||
DISABLE_WARNING_PREFIX="-wd"
|
DISABLE_WARNING_PREFIX="-wd"
|
||||||
CFLAGS_WARNINGS_ARE_ERRORS="-WX"
|
CFLAGS_WARNINGS_ARE_ERRORS="-WX"
|
||||||
|
|
||||||
|
WARNINGS_ENABLE_ALL="-W3"
|
||||||
|
DISABLED_WARNINGS="4800"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
solstudio)
|
solstudio)
|
||||||
DISABLE_WARNING_PREFIX="-erroff="
|
DISABLE_WARNING_PREFIX="-erroff="
|
||||||
CFLAGS_WARNINGS_ARE_ERRORS="-errtags -errwarn=%all"
|
CFLAGS_WARNINGS_ARE_ERRORS="-errwarn=%all"
|
||||||
|
|
||||||
|
WARNINGS_ENABLE_ALL_CFLAGS="-v"
|
||||||
|
WARNINGS_ENABLE_ALL_CXXFLAGS="+w"
|
||||||
|
|
||||||
|
DISABLED_WARNINGS_C=""
|
||||||
|
DISABLED_WARNINGS_CXX=""
|
||||||
;;
|
;;
|
||||||
|
|
||||||
gcc)
|
gcc)
|
||||||
DISABLE_WARNING_PREFIX="-Wno-"
|
DISABLE_WARNING_PREFIX="-Wno-"
|
||||||
CFLAGS_WARNINGS_ARE_ERRORS="-Werror"
|
CFLAGS_WARNINGS_ARE_ERRORS="-Werror"
|
||||||
|
|
||||||
|
# Additional warnings that are not activated by -Wall and -Wextra
|
||||||
|
WARNINGS_ENABLE_ADDITIONAL="-Wpointer-arith -Wsign-compare \
|
||||||
|
-Wunused-function -Wundef -Wunused-value -Wreturn-type"
|
||||||
|
WARNINGS_ENABLE_ADDITIONAL_CXX="-Woverloaded-virtual -Wreorder"
|
||||||
|
WARNINGS_ENABLE_ALL_CFLAGS="-Wall -Wextra -Wformat=2 $WARNINGS_ENABLE_ADDITIONAL"
|
||||||
|
WARNINGS_ENABLE_ALL_CXXFLAGS="$WARNINGS_ENABLE_ALL_CFLAGS $WARNINGS_ENABLE_ADDITIONAL_CXX"
|
||||||
|
|
||||||
|
DISABLED_WARNINGS="unused-parameter unused"
|
||||||
|
|
||||||
# Repeate the check for the BUILD_CC and BUILD_CXX. Need to also reset
|
# Repeate the check for the BUILD_CC and BUILD_CXX. Need to also reset
|
||||||
# CFLAGS since any target specific flags will likely not work with the
|
# CFLAGS since any target specific flags will likely not work with the
|
||||||
# build compiler
|
# build compiler
|
||||||
@@ -176,18 +204,40 @@ AC_DEFUN([FLAGS_SETUP_WARNINGS],
|
|||||||
CXX="$CXX_OLD"
|
CXX="$CXX_OLD"
|
||||||
CFLAGS="$CFLAGS_OLD"
|
CFLAGS="$CFLAGS_OLD"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
clang)
|
clang)
|
||||||
DISABLE_WARNING_PREFIX="-Wno-"
|
DISABLE_WARNING_PREFIX="-Wno-"
|
||||||
CFLAGS_WARNINGS_ARE_ERRORS="-Werror"
|
CFLAGS_WARNINGS_ARE_ERRORS="-Werror"
|
||||||
|
|
||||||
|
# Additional warnings that are not activated by -Wall and -Wextra
|
||||||
|
WARNINGS_ENABLE_ADDITIONAL="-Wpointer-arith -Wsign-compare -Wreorder \
|
||||||
|
-Wunused-function -Wundef -Wunused-value -Woverloaded-virtual"
|
||||||
|
WARNINGS_ENABLE_ALL="-Wall -Wextra -Wformat=2 $WARNINGS_ENABLE_ADDITIONAL"
|
||||||
|
|
||||||
|
DISABLED_WARNINGS="unused-parameter unused"
|
||||||
|
|
||||||
|
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
||||||
|
# missing-method-return-type triggers in JavaNativeFoundation framework
|
||||||
|
DISABLED_WARNINGS="$DISABLED_WARNINGS missing-method-return-type"
|
||||||
|
fi
|
||||||
|
|
||||||
;;
|
;;
|
||||||
|
|
||||||
xlc)
|
xlc)
|
||||||
DISABLE_WARNING_PREFIX="-qsuppress="
|
DISABLE_WARNING_PREFIX="-qsuppress="
|
||||||
CFLAGS_WARNINGS_ARE_ERRORS="-qhalt=w"
|
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)
|
||||||
AC_SUBST(CFLAGS_WARNINGS_ARE_ERRORS)
|
AC_SUBST(CFLAGS_WARNINGS_ARE_ERRORS)
|
||||||
|
AC_SUBST(DISABLED_WARNINGS)
|
||||||
|
AC_SUBST(DISABLED_WARNINGS_C)
|
||||||
|
AC_SUBST(DISABLED_WARNINGS_CXX)
|
||||||
])
|
])
|
||||||
|
|
||||||
AC_DEFUN([FLAGS_SETUP_QUALITY_CHECKS],
|
AC_DEFUN([FLAGS_SETUP_QUALITY_CHECKS],
|
||||||
@@ -366,16 +416,19 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS],
|
|||||||
|
|
||||||
FLAGS_SETUP_CFLAGS_CPU_DEP([BUILD], [OPENJDK_BUILD_])
|
FLAGS_SETUP_CFLAGS_CPU_DEP([BUILD], [OPENJDK_BUILD_])
|
||||||
|
|
||||||
# Tests are only ever compiled for TARGET
|
COMPILER_FP_CONTRACT_OFF_FLAG="-ffp-contract=off"
|
||||||
CFLAGS_TESTLIB="$CFLAGS_JDKLIB"
|
# Check that the compiler supports -ffp-contract=off flag
|
||||||
CXXFLAGS_TESTLIB="$CXXFLAGS_JDKLIB"
|
# Set FDLIBM_CFLAGS to -ffp-contract=off if it does. Empty
|
||||||
CFLAGS_TESTEXE="$CFLAGS_JDKEXE"
|
# otherwise.
|
||||||
CXXFLAGS_TESTEXE="$CXXFLAGS_JDKEXE"
|
# These flags are required for GCC-based builds of
|
||||||
|
# fdlibm with optimization without losing precision.
|
||||||
AC_SUBST(CFLAGS_TESTLIB)
|
# Notably, -ffp-contract=off needs to be added for GCC >= 4.6.
|
||||||
AC_SUBST(CFLAGS_TESTEXE)
|
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||||
AC_SUBST(CXXFLAGS_TESTLIB)
|
FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [${COMPILER_FP_CONTRACT_OFF_FLAG}],
|
||||||
AC_SUBST(CXXFLAGS_TESTEXE)
|
IF_TRUE: [FDLIBM_CFLAGS=${COMPILER_FP_CONTRACT_OFF_FLAG}],
|
||||||
|
IF_FALSE: [FDLIBM_CFLAGS=""])
|
||||||
|
fi
|
||||||
|
AC_SUBST(FDLIBM_CFLAGS)
|
||||||
])
|
])
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
@@ -502,11 +555,14 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
|
|||||||
TOOLCHAIN_CFLAGS_JDK_CONLY="-fno-strict-aliasing" # technically NOT for CXX
|
TOOLCHAIN_CFLAGS_JDK_CONLY="-fno-strict-aliasing" # technically NOT for CXX
|
||||||
fi
|
fi
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
||||||
TOOLCHAIN_CFLAGS_JDK="-mt"
|
TOOLCHAIN_FLAGS="-errtags -errfmt"
|
||||||
TOOLCHAIN_CFLAGS_JDK_CONLY="-xc99=%none -xCC -Xa -v -W0,-noglobal" # C only
|
TOOLCHAIN_CFLAGS="-errshort=tags"
|
||||||
|
|
||||||
|
TOOLCHAIN_CFLAGS_JDK="-mt $TOOLCHAIN_FLAGS"
|
||||||
|
TOOLCHAIN_CFLAGS_JDK_CONLY="-xCC -Xa -W0,-noglobal $TOOLCHAIN_CFLAGS" # C only
|
||||||
TOOLCHAIN_CFLAGS_JDK_CXXONLY="-features=no%except -norunpath -xnolib" # CXX only
|
TOOLCHAIN_CFLAGS_JDK_CXXONLY="-features=no%except -norunpath -xnolib" # CXX only
|
||||||
TOOLCHAIN_CFLAGS_JVM="-template=no%extdef -features=no%split_init \
|
TOOLCHAIN_CFLAGS_JVM="-template=no%extdef -features=no%split_init \
|
||||||
-library=stlport4 -mt -features=no%except"
|
-library=stlport4 -mt -features=no%except $TOOLCHAIN_FLAGS"
|
||||||
if test "x$DEBUG_LEVEL" = xslowdebug; then
|
if test "x$DEBUG_LEVEL" = xslowdebug; then
|
||||||
# Previously -g was used instead of -g0 for slowdebug; this is equivalent
|
# Previously -g was used instead of -g0 for slowdebug; this is equivalent
|
||||||
# to setting +d.
|
# to setting +d.
|
||||||
@@ -514,6 +570,7 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
|
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
|
||||||
|
# Suggested additions: -qsrcmsg to get improved error reporting
|
||||||
TOOLCHAIN_CFLAGS_JDK="-qchars=signed -qfullpath -qsaveopt" # add on both CFLAGS
|
TOOLCHAIN_CFLAGS_JDK="-qchars=signed -qfullpath -qsaveopt" # add on both CFLAGS
|
||||||
TOOLCHAIN_CFLAGS_JVM="-qtune=balanced \
|
TOOLCHAIN_CFLAGS_JVM="-qtune=balanced \
|
||||||
-qalias=noansi -qstrict -qtls=default -qlanglvl=c99vla \
|
-qalias=noansi -qstrict -qtls=default -qlanglvl=c99vla \
|
||||||
@@ -525,37 +582,24 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
|
|||||||
|
|
||||||
# CFLAGS WARNINGS STUFF
|
# CFLAGS WARNINGS STUFF
|
||||||
# Set JVM_CFLAGS warning handling
|
# Set JVM_CFLAGS warning handling
|
||||||
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
|
|
||||||
# COMMON to gcc and clang
|
|
||||||
WARNING_CFLAGS_JVM="-Wpointer-arith -Wsign-compare -Wunused-function"
|
|
||||||
if ! HOTSPOT_CHECK_JVM_VARIANT(zero); then
|
|
||||||
# Non-zero builds have stricter warnings
|
|
||||||
WARNING_CFLAGS_JVM="$WARNING_CFLAGS_JVM -Wundef -Wformat=2"
|
|
||||||
fi
|
|
||||||
|
|
||||||
fi
|
|
||||||
if test "x$TOOLCHAIN_TYPE" = xgcc; then
|
if test "x$TOOLCHAIN_TYPE" = xgcc; then
|
||||||
WARNING_CFLAGS_JDK="-Wall -Wextra -Wno-unused -Wno-unused-parameter -Wformat=2"
|
WARNING_CFLAGS_JDK_CONLY="$WARNINGS_ENABLE_ALL_CFLAGS"
|
||||||
WARNING_CFLAGS_JVM="$WARNING_CFLAGS_JVM -Wunused-value -Woverloaded-virtual"
|
WARNING_CFLAGS_JDK_CXXONLY="$WARNINGS_ENABLE_ALL_CXXFLAGS"
|
||||||
|
WARNING_CFLAGS_JVM="$WARNINGS_ENABLE_ALL_CXXFLAGS"
|
||||||
|
|
||||||
if ! HOTSPOT_CHECK_JVM_VARIANT(zero); then
|
|
||||||
# Non-zero builds have stricter warnings
|
|
||||||
WARNING_CFLAGS_JVM="$WARNING_CFLAGS_JVM -Wreturn-type"
|
|
||||||
fi
|
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xclang; then
|
elif test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||||
WARNING_CFLAGS_JVM="$WARNING_CFLAGS_JVM -Wno-deprecated"
|
WARNING_CFLAGS="$WARNINGS_ENABLE_ALL"
|
||||||
if test "x$OPENJDK_TARGET_OS" = xlinux; then
|
|
||||||
WARNING_CFLAGS_JVM="$WARNING_CFLAGS_JVM -Wno-sometimes-uninitialized"
|
|
||||||
WARNING_CFLAGS_JDK="-Wall -Wextra -Wno-unused -Wno-unused-parameter -Wformat=2"
|
|
||||||
fi
|
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
||||||
WARNING_CFLAGS_JDK_CONLY="-errshort=tags"
|
WARNING_CFLAGS_JDK_CONLY="$WARNINGS_ENABLE_ALL_CFLAGS"
|
||||||
WARNING_CFLAGS_JDK_CXXONLY="+w"
|
WARNING_CFLAGS_JDK_CXXONLY="$WARNINGS_ENABLE_ALL_CXXFLAGS"
|
||||||
WARNING_CFLAGS_JDK="-errtags=yes -errfmt"
|
WARNING_CFLAGS_JVM="$WARNINGS_ENABLE_ALL_CXXFLAGS"
|
||||||
|
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||||
WARNING_CFLAGS="-W3"
|
WARNING_CFLAGS="$WARNINGS_ENABLE_ALL"
|
||||||
WARNING_CFLAGS_JDK="-wd4800"
|
|
||||||
WARNING_CFLAGS_JVM="-wd4800"
|
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.
|
||||||
@@ -703,10 +747,6 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP],
|
|||||||
# -Wno-psabi to get rid of annoying "note: the mangling of 'va_list' has changed in GCC 4.4"
|
# -Wno-psabi to get rid of annoying "note: the mangling of 'va_list' has changed in GCC 4.4"
|
||||||
$1_CFLAGS_CPU="-fsigned-char -Wno-psabi $ARM_ARCH_TYPE_FLAGS $ARM_FLOAT_TYPE_FLAGS -DJDK_ARCH_ABI_PROP_NAME='\"\$(JDK_ARCH_ABI_PROP_NAME)\"'"
|
$1_CFLAGS_CPU="-fsigned-char -Wno-psabi $ARM_ARCH_TYPE_FLAGS $ARM_FLOAT_TYPE_FLAGS -DJDK_ARCH_ABI_PROP_NAME='\"\$(JDK_ARCH_ABI_PROP_NAME)\"'"
|
||||||
$1_CFLAGS_CPU_JVM="-DARM"
|
$1_CFLAGS_CPU_JVM="-DARM"
|
||||||
elif test "x$FLAGS_CPU" = xaarch64; then
|
|
||||||
if test "x$HOTSPOT_TARGET_CPU_PORT" = xarm64; then
|
|
||||||
$1_CFLAGS_CPU_JVM="-fsigned-char -DARM"
|
|
||||||
fi
|
|
||||||
elif test "x$FLAGS_CPU_ARCH" = xppc; then
|
elif test "x$FLAGS_CPU_ARCH" = xppc; then
|
||||||
$1_CFLAGS_CPU_JVM="-minsert-sched-nops=regroup_exact -mno-multiple -mno-string"
|
$1_CFLAGS_CPU_JVM="-minsert-sched-nops=regroup_exact -mno-multiple -mno-string"
|
||||||
if test "x$FLAGS_CPU" = xppc64; then
|
if test "x$FLAGS_CPU" = xppc64; then
|
||||||
|
|||||||
@@ -51,9 +51,7 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS],
|
|||||||
|
|
||||||
FLAGS_SETUP_LDFLAGS_CPU_DEP([BUILD], [OPENJDK_BUILD_])
|
FLAGS_SETUP_LDFLAGS_CPU_DEP([BUILD], [OPENJDK_BUILD_])
|
||||||
|
|
||||||
LDFLAGS_TESTLIB="$LDFLAGS_JDKLIB"
|
LDFLAGS_TESTEXE="${TARGET_LDFLAGS_JDK_LIBPATH}"
|
||||||
LDFLAGS_TESTEXE="$LDFLAGS_JDKEXE ${TARGET_LDFLAGS_JDK_LIBPATH}"
|
|
||||||
AC_SUBST(LDFLAGS_TESTLIB)
|
|
||||||
AC_SUBST(LDFLAGS_TESTEXE)
|
AC_SUBST(LDFLAGS_TESTEXE)
|
||||||
])
|
])
|
||||||
|
|
||||||
@@ -74,10 +72,8 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
|
|||||||
# Add -z defs, to forbid undefined symbols in object files.
|
# Add -z defs, to forbid undefined symbols in object files.
|
||||||
BASIC_LDFLAGS="$BASIC_LDFLAGS -Wl,-z,defs"
|
BASIC_LDFLAGS="$BASIC_LDFLAGS -Wl,-z,defs"
|
||||||
|
|
||||||
BASIC_LDFLAGS_JVM_ONLY="-Wl,-z,noexecstack -Wl,-O1 -Wl,-z,relro"
|
BASIC_LDFLAGS_JVM_ONLY="-Wl,-O1 -Wl,-z,relro"
|
||||||
|
|
||||||
BASIC_LDFLAGS_JDK_LIB_ONLY="-Wl,-z,noexecstack"
|
|
||||||
LIBJSIG_NOEXECSTACK_LDFLAGS="-Wl,-z,noexecstack"
|
|
||||||
|
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xclang; then
|
elif test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||||
BASIC_LDFLAGS_JVM_ONLY="-mno-omit-leaf-frame-pointer -mstack-alignment=16 \
|
BASIC_LDFLAGS_JVM_ONLY="-mno-omit-leaf-frame-pointer -mstack-alignment=16 \
|
||||||
@@ -103,6 +99,12 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
|
|||||||
BASIC_LDFLAGS_JVM_ONLY="-opt:icf,8 -subsystem:windows"
|
BASIC_LDFLAGS_JVM_ONLY="-opt:icf,8 -subsystem:windows"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||||
|
if test -n "$HAS_NOEXECSTACK"; then
|
||||||
|
BASIC_LDFLAGS="$BASIC_LDFLAGS -Wl,-z,noexecstack"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
# Setup OS-dependent LDFLAGS
|
# Setup OS-dependent LDFLAGS
|
||||||
if test "x$TOOLCHAIN_TYPE" = xclang || test "x$TOOLCHAIN_TYPE" = xgcc; then
|
if test "x$TOOLCHAIN_TYPE" = xclang || test "x$TOOLCHAIN_TYPE" = xgcc; then
|
||||||
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
||||||
@@ -137,6 +139,14 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Setup warning flags
|
||||||
|
if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
||||||
|
LDFLAGS_WARNINGS_ARE_ERRORS="-Wl,-z,fatal-warnings"
|
||||||
|
else
|
||||||
|
LDFLAGS_WARNINGS_ARE_ERRORS=""
|
||||||
|
fi
|
||||||
|
AC_SUBST(LDFLAGS_WARNINGS_ARE_ERRORS)
|
||||||
|
|
||||||
# Setup LDFLAGS for linking executables
|
# Setup LDFLAGS for linking executables
|
||||||
if test "x$TOOLCHAIN_TYPE" = xgcc; then
|
if test "x$TOOLCHAIN_TYPE" = xgcc; then
|
||||||
EXECUTABLE_LDFLAGS="$EXECUTABLE_LDFLAGS -Wl,--allow-shlib-undefined"
|
EXECUTABLE_LDFLAGS="$EXECUTABLE_LDFLAGS -Wl,--allow-shlib-undefined"
|
||||||
@@ -163,10 +173,6 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_CPU_DEP],
|
|||||||
elif test "x$OPENJDK_$1_CPU" = xarm; then
|
elif test "x$OPENJDK_$1_CPU" = xarm; then
|
||||||
$1_CPU_LDFLAGS_JVM_ONLY="${$1_CPU_LDFLAGS_JVM_ONLY} -fsigned-char"
|
$1_CPU_LDFLAGS_JVM_ONLY="${$1_CPU_LDFLAGS_JVM_ONLY} -fsigned-char"
|
||||||
$1_CPU_LDFLAGS="$ARM_ARCH_TYPE_FLAGS $ARM_FLOAT_TYPE_FLAGS"
|
$1_CPU_LDFLAGS="$ARM_ARCH_TYPE_FLAGS $ARM_FLOAT_TYPE_FLAGS"
|
||||||
elif test "x$FLAGS_CPU" = xaarch64; then
|
|
||||||
if test "x$HOTSPOT_TARGET_CPU_PORT" = xarm64; then
|
|
||||||
$1_CPU_LDFLAGS_JVM_ONLY="${$1_CPU_LDFLAGS_JVM_ONLY} -fsigned-char"
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
||||||
|
|||||||
@@ -31,9 +31,7 @@
|
|||||||
AC_DEFUN([FLAGS_SETUP_ARFLAGS],
|
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" = xmacosx; then
|
if test "x$OPENJDK_TARGET_OS" = xaix; then
|
||||||
ARFLAGS="-r -mmacosx-version-min=$MACOSX_VERSION_MIN"
|
|
||||||
elif test "x$OPENJDK_TARGET_OS" = xaix; then
|
|
||||||
ARFLAGS="-X64"
|
ARFLAGS="-X64"
|
||||||
elif test "x$OPENJDK_TARGET_OS" = xwindows; then
|
elif test "x$OPENJDK_TARGET_OS" = xwindows; then
|
||||||
# lib.exe is used as AR to create static libraries.
|
# lib.exe is used as AR to create static libraries.
|
||||||
@@ -121,6 +119,12 @@ AC_DEFUN([FLAGS_SETUP_ASFLAGS_CPU_DEP],
|
|||||||
# Misuse EXTRA_CFLAGS to mimic old behavior
|
# Misuse EXTRA_CFLAGS to mimic old behavior
|
||||||
$2JVM_ASFLAGS="$JVM_BASIC_ASFLAGS ${$2EXTRA_CFLAGS}"
|
$2JVM_ASFLAGS="$JVM_BASIC_ASFLAGS ${$2EXTRA_CFLAGS}"
|
||||||
|
|
||||||
|
if test "x$1" = "xTARGET" && \
|
||||||
|
test "x$TOOLCHAIN_TYPE" = xgcc && \
|
||||||
|
test "x$OPENJDK_TARGET_CPU" = xarm; then
|
||||||
|
$2JVM_ASFLAGS="${$2JVM_ASFLAGS} $ARM_ARCH_TYPE_ASFLAGS $ARM_FLOAT_TYPE_ASFLAGS"
|
||||||
|
fi
|
||||||
|
|
||||||
AC_SUBST($2JVM_ASFLAGS)
|
AC_SUBST($2JVM_ASFLAGS)
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ m4_include([flags-other.m4])
|
|||||||
AC_DEFUN([FLAGS_SETUP_ABI_PROFILE],
|
AC_DEFUN([FLAGS_SETUP_ABI_PROFILE],
|
||||||
[
|
[
|
||||||
AC_ARG_WITH(abi-profile, [AS_HELP_STRING([--with-abi-profile],
|
AC_ARG_WITH(abi-profile, [AS_HELP_STRING([--with-abi-profile],
|
||||||
[specify ABI profile for ARM builds (arm-vfp-sflt,arm-vfp-hflt,arm-sflt, armv5-vfp-sflt,armv6-vfp-hflt,arm64,aarch64) @<:@toolchain dependent@:>@ ])])
|
[specify ABI profile for ARM builds (arm-vfp-sflt,arm-vfp-hflt,arm-sflt, armv5-vfp-sflt,armv6-vfp-hflt,aarch64) @<:@toolchain dependent@:>@ ])])
|
||||||
|
|
||||||
if test "x$with_abi_profile" != x; then
|
if test "x$with_abi_profile" != x; then
|
||||||
if test "x$OPENJDK_TARGET_CPU" != xarm && \
|
if test "x$OPENJDK_TARGET_CPU" != xarm && \
|
||||||
@@ -46,45 +46,59 @@ AC_DEFUN([FLAGS_SETUP_ABI_PROFILE],
|
|||||||
AC_MSG_CHECKING([for ABI profle])
|
AC_MSG_CHECKING([for ABI profle])
|
||||||
AC_MSG_RESULT([$OPENJDK_TARGET_ABI_PROFILE])
|
AC_MSG_RESULT([$OPENJDK_TARGET_ABI_PROFILE])
|
||||||
|
|
||||||
|
# --- Arm-sflt CFLAGS and ASFLAGS ---
|
||||||
|
# Armv5te is required for assembler, because pld insn used in arm32 hotspot is only in v5E and above.
|
||||||
|
# However, there is also a GCC bug which generates unaligned strd/ldrd instructions on armv5te:
|
||||||
|
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82445, and it was fixed only quite recently.
|
||||||
|
# The resulting compromise is to enable v5TE for assembler and let GCC generate code for v5T.
|
||||||
if test "x$OPENJDK_TARGET_ABI_PROFILE" = xarm-vfp-sflt; then
|
if test "x$OPENJDK_TARGET_ABI_PROFILE" = xarm-vfp-sflt; then
|
||||||
ARM_FLOAT_TYPE=vfp-sflt
|
ARM_FLOAT_TYPE=vfp-sflt
|
||||||
ARM_ARCH_TYPE_FLAGS='-march=armv7-a -mthumb'
|
ARM_ARCH_TYPE_FLAGS='-march=armv7-a -mthumb'
|
||||||
|
ARM_ARCH_TYPE_ASFLAGS='-march=armv7-a -mthumb'
|
||||||
elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xarm-vfp-hflt; then
|
elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xarm-vfp-hflt; then
|
||||||
ARM_FLOAT_TYPE=vfp-hflt
|
ARM_FLOAT_TYPE=vfp-hflt
|
||||||
ARM_ARCH_TYPE_FLAGS='-march=armv7-a -mthumb'
|
ARM_ARCH_TYPE_FLAGS='-march=armv7-a -mthumb'
|
||||||
|
ARM_ARCH_TYPE_ASFLAGS='-march=armv7-a -mthumb'
|
||||||
elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xarm-sflt; then
|
elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xarm-sflt; then
|
||||||
ARM_FLOAT_TYPE=sflt
|
ARM_FLOAT_TYPE=sflt
|
||||||
ARM_ARCH_TYPE_FLAGS='-march=armv5t -marm'
|
ARM_ARCH_TYPE_FLAGS='-march=armv5t -marm'
|
||||||
|
ARM_ARCH_TYPE_ASFLAGS='-march=armv5te'
|
||||||
elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xarmv5-vfp-sflt; then
|
elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xarmv5-vfp-sflt; then
|
||||||
ARM_FLOAT_TYPE=vfp-sflt
|
ARM_FLOAT_TYPE=vfp-sflt
|
||||||
ARM_ARCH_TYPE_FLAGS='-march=armv5t -marm'
|
ARM_ARCH_TYPE_FLAGS='-march=armv5t -marm'
|
||||||
|
ARM_ARCH_TYPE_ASFLAGS='-march=armv5te'
|
||||||
elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xarmv6-vfp-hflt; then
|
elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xarmv6-vfp-hflt; then
|
||||||
ARM_FLOAT_TYPE=vfp-hflt
|
ARM_FLOAT_TYPE=vfp-hflt
|
||||||
ARM_ARCH_TYPE_FLAGS='-march=armv6 -marm'
|
ARM_ARCH_TYPE_FLAGS='-march=armv6 -marm'
|
||||||
elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xarm64; then
|
ARM_ARCH_TYPE_ASFLAGS='-march=armv6'
|
||||||
# No special flags, just need to trigger setting JDK_ARCH_ABI_PROP_NAME
|
|
||||||
ARM_FLOAT_TYPE=
|
|
||||||
ARM_ARCH_TYPE_FLAGS=
|
|
||||||
elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xaarch64; then
|
elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xaarch64; then
|
||||||
# No special flags, just need to trigger setting JDK_ARCH_ABI_PROP_NAME
|
# No special flags, just need to trigger setting JDK_ARCH_ABI_PROP_NAME
|
||||||
ARM_FLOAT_TYPE=
|
ARM_FLOAT_TYPE=
|
||||||
ARM_ARCH_TYPE_FLAGS=
|
ARM_ARCH_TYPE_FLAGS=
|
||||||
|
ARM_ARCH_TYPE_ASFLAGS=
|
||||||
else
|
else
|
||||||
AC_MSG_ERROR([Invalid ABI profile: "$OPENJDK_TARGET_ABI_PROFILE"])
|
AC_MSG_ERROR([Invalid ABI profile: "$OPENJDK_TARGET_ABI_PROFILE"])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "x$ARM_FLOAT_TYPE" = xvfp-sflt; then
|
if test "x$ARM_FLOAT_TYPE" = xvfp-sflt; then
|
||||||
ARM_FLOAT_TYPE_FLAGS='-mfloat-abi=softfp -mfpu=vfp -DFLOAT_ARCH=-vfp-sflt'
|
ARM_FLOAT_TYPE_FLAGS='-mfloat-abi=softfp -mfpu=vfp -DFLOAT_ARCH=-vfp-sflt'
|
||||||
|
ARM_FLOAT_TYPE_ASFLAGS="-mfloat-abi=softfp -mfpu=vfp"
|
||||||
elif test "x$ARM_FLOAT_TYPE" = xvfp-hflt; then
|
elif test "x$ARM_FLOAT_TYPE" = xvfp-hflt; then
|
||||||
ARM_FLOAT_TYPE_FLAGS='-mfloat-abi=hard -mfpu=vfp -DFLOAT_ARCH=-vfp-hflt'
|
ARM_FLOAT_TYPE_FLAGS='-mfloat-abi=hard -mfpu=vfp -DFLOAT_ARCH=-vfp-hflt'
|
||||||
|
ARM_FLOAT_TYPE_ASFLAGS="-mfloat-abi=hard -mfpu=vfp"
|
||||||
elif test "x$ARM_FLOAT_TYPE" = xsflt; then
|
elif test "x$ARM_FLOAT_TYPE" = xsflt; then
|
||||||
ARM_FLOAT_TYPE_FLAGS='-msoft-float -mfpu=vfp'
|
ARM_FLOAT_TYPE_FLAGS='-msoft-float -mfpu=vfp'
|
||||||
|
ARM_FLOAT_TYPE_ASFLAGS="-mfloat-abi=soft -mfpu=vfp"
|
||||||
fi
|
fi
|
||||||
AC_MSG_CHECKING([for $ARM_FLOAT_TYPE floating point flags])
|
AC_MSG_CHECKING([for $ARM_FLOAT_TYPE floating point flags])
|
||||||
AC_MSG_RESULT([$ARM_FLOAT_TYPE_FLAGS])
|
AC_MSG_RESULT([$ARM_FLOAT_TYPE_FLAGS])
|
||||||
|
AC_MSG_CHECKING([for $ARM_FLOAT_TYPE floating point flags for assembler])
|
||||||
|
AC_MSG_RESULT([$ARM_FLOAT_TYPE_ASFLAGS])
|
||||||
|
|
||||||
AC_MSG_CHECKING([for arch type flags])
|
AC_MSG_CHECKING([for arch type flags])
|
||||||
AC_MSG_RESULT([$ARM_ARCH_TYPE_FLAGS])
|
AC_MSG_RESULT([$ARM_ARCH_TYPE_FLAGS])
|
||||||
|
AC_MSG_CHECKING([for arch type flags for assembler])
|
||||||
|
AC_MSG_RESULT([$ARM_ARCH_TYPE_ASFLAGS])
|
||||||
|
|
||||||
# Now set JDK_ARCH_ABI_PROP_NAME. This is equivalent to the last part of the
|
# Now set JDK_ARCH_ABI_PROP_NAME. This is equivalent to the last part of the
|
||||||
# autoconf target triplet.
|
# autoconf target triplet.
|
||||||
@@ -241,7 +255,8 @@ AC_DEFUN_ONCE([FLAGS_PRE_TOOLCHAIN],
|
|||||||
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
||||||
MACHINE_FLAG="-m${OPENJDK_TARGET_CPU_BITS}"
|
MACHINE_FLAG="-m${OPENJDK_TARGET_CPU_BITS}"
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
|
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_ARCH" = xsparc ||
|
test "x$OPENJDK_TARGET_CPU_ARCH" = xsparc ||
|
||||||
test "x$OPENJDK_TARGET_CPU_ARCH" = xppc; then
|
test "x$OPENJDK_TARGET_CPU_ARCH" = xppc; then
|
||||||
MACHINE_FLAG="-m${OPENJDK_TARGET_CPU_BITS}"
|
MACHINE_FLAG="-m${OPENJDK_TARGET_CPU_BITS}"
|
||||||
@@ -335,8 +350,12 @@ AC_DEFUN([FLAGS_SETUP_TOOLCHAIN_CONTROL],
|
|||||||
CC_OUT_OPTION='-o$(SPACE)'
|
CC_OUT_OPTION='-o$(SPACE)'
|
||||||
# When linking, how to specify the output
|
# When linking, how to specify the output
|
||||||
LD_OUT_OPTION='-o$(SPACE)'
|
LD_OUT_OPTION='-o$(SPACE)'
|
||||||
# When archiving, how to specify the to be create static archive for object files.
|
# When archiving, how to specify the destination static archive.
|
||||||
AR_OUT_OPTION='rcs$(SPACE)'
|
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(LD_OUT_OPTION)
|
||||||
|
|||||||
@@ -102,7 +102,7 @@ apt_help() {
|
|||||||
ffi)
|
ffi)
|
||||||
PKGHANDLER_COMMAND="sudo apt-get install libffi-dev" ;;
|
PKGHANDLER_COMMAND="sudo apt-get install libffi-dev" ;;
|
||||||
x11)
|
x11)
|
||||||
PKGHANDLER_COMMAND="sudo apt-get install libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev" ;;
|
PKGHANDLER_COMMAND="sudo apt-get install libx11-dev libxext-dev libxrender-dev libxrandr-dev libxtst-dev libxt-dev" ;;
|
||||||
ccache)
|
ccache)
|
||||||
PKGHANDLER_COMMAND="sudo apt-get install ccache" ;;
|
PKGHANDLER_COMMAND="sudo apt-get install ccache" ;;
|
||||||
dtrace)
|
dtrace)
|
||||||
@@ -125,7 +125,7 @@ yum_help() {
|
|||||||
freetype)
|
freetype)
|
||||||
PKGHANDLER_COMMAND="sudo yum install freetype-devel" ;;
|
PKGHANDLER_COMMAND="sudo yum install freetype-devel" ;;
|
||||||
x11)
|
x11)
|
||||||
PKGHANDLER_COMMAND="sudo yum install libXtst-devel libXt-devel libXrender-devel libXi-devel" ;;
|
PKGHANDLER_COMMAND="sudo yum install libXtst-devel libXt-devel libXrender-devel libXrandr-devel libXi-devel" ;;
|
||||||
ccache)
|
ccache)
|
||||||
PKGHANDLER_COMMAND="sudo yum install ccache" ;;
|
PKGHANDLER_COMMAND="sudo yum install ccache" ;;
|
||||||
esac
|
esac
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
|
|
||||||
# All valid JVM features, regardless of platform
|
# All valid JVM features, regardless of platform
|
||||||
VALID_JVM_FEATURES="compiler1 compiler2 zero minimal dtrace jvmti jvmci \
|
VALID_JVM_FEATURES="compiler1 compiler2 zero minimal dtrace jvmti jvmci \
|
||||||
graal vm-structs jni-check services management cmsgc epsilongc g1gc parallelgc serialgc zgc nmt cds \
|
graal vm-structs jni-check services management cmsgc epsilongc g1gc parallelgc serialgc shenandoahgc zgc nmt cds \
|
||||||
static-build link-time-opt aot jfr"
|
static-build link-time-opt aot jfr"
|
||||||
|
|
||||||
# Deprecated JVM features (these are ignored, but with a warning)
|
# Deprecated JVM features (these are ignored, but with a warning)
|
||||||
@@ -72,8 +72,6 @@ AC_DEFUN_ONCE([HOTSPOT_SETUP_JVM_VARIANTS],
|
|||||||
AC_ARG_WITH([jvm-variants], [AS_HELP_STRING([--with-jvm-variants],
|
AC_ARG_WITH([jvm-variants], [AS_HELP_STRING([--with-jvm-variants],
|
||||||
[JVM variants (separated by commas) to build (server,client,minimal,core,zero,custom) @<:@server@:>@])])
|
[JVM variants (separated by commas) to build (server,client,minimal,core,zero,custom) @<:@server@:>@])])
|
||||||
|
|
||||||
SETUP_HOTSPOT_TARGET_CPU_PORT
|
|
||||||
|
|
||||||
if test "x$with_jvm_variants" = x; then
|
if test "x$with_jvm_variants" = x; then
|
||||||
with_jvm_variants="server"
|
with_jvm_variants="server"
|
||||||
fi
|
fi
|
||||||
@@ -252,14 +250,6 @@ AC_DEFUN_ONCE([HOTSPOT_ENABLE_DISABLE_CDS],
|
|||||||
AC_MSG_ERROR([Invalid value for --enable-cds: $enable_cds])
|
AC_MSG_ERROR([Invalid value for --enable-cds: $enable_cds])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Disable CDS on AIX.
|
|
||||||
if test "x$OPENJDK_TARGET_OS" = "xaix"; then
|
|
||||||
ENABLE_CDS="false"
|
|
||||||
if test "x$enable_cds" = "xyes"; then
|
|
||||||
AC_MSG_ERROR([CDS is currently not supported on AIX. Remove --enable-cds.])
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_SUBST(ENABLE_CDS)
|
AC_SUBST(ENABLE_CDS)
|
||||||
])
|
])
|
||||||
|
|
||||||
@@ -307,9 +297,6 @@ AC_DEFUN_ONCE([HOTSPOT_SETUP_JVM_FEATURES],
|
|||||||
if test "x$OPENJDK_TARGET_CPU" = xarm; then
|
if test "x$OPENJDK_TARGET_CPU" = xarm; then
|
||||||
HOTSPOT_TARGET_CPU=arm_32
|
HOTSPOT_TARGET_CPU=arm_32
|
||||||
HOTSPOT_TARGET_CPU_DEFINE="ARM32"
|
HOTSPOT_TARGET_CPU_DEFINE="ARM32"
|
||||||
elif test "x$OPENJDK_TARGET_CPU" = xaarch64 && test "x$HOTSPOT_TARGET_CPU_PORT" = xarm64; then
|
|
||||||
HOTSPOT_TARGET_CPU=arm_64
|
|
||||||
HOTSPOT_TARGET_CPU_ARCH=arm
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Verify that dependencies are met for explicitly set features.
|
# Verify that dependencies are met for explicitly set features.
|
||||||
@@ -338,17 +325,27 @@ AC_DEFUN_ONCE([HOTSPOT_SETUP_JVM_FEATURES],
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Only enable ZGC on Linux x86_64
|
# Only enable Shenandoah on supported arches
|
||||||
AC_MSG_CHECKING([if zgc should be built])
|
AC_MSG_CHECKING([if shenandoah can be built])
|
||||||
if HOTSPOT_CHECK_JVM_FEATURE(zgc); then
|
if test "x$OPENJDK_TARGET_CPU" = "xx86_64" || test "x$OPENJDK_TARGET_CPU" = "xaarch64" ; then
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
else
|
||||||
|
DISABLED_JVM_FEATURES="$DISABLED_JVM_FEATURES shenandoahgc"
|
||||||
|
AC_MSG_RESULT([no, platform not supported])
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Only enable ZGC on supported platforms
|
||||||
|
AC_MSG_CHECKING([if zgc can be built])
|
||||||
if test "x$OPENJDK_TARGET_OS" = "xlinux" && test "x$OPENJDK_TARGET_CPU" = "xx86_64"; then
|
if test "x$OPENJDK_TARGET_OS" = "xlinux" && test "x$OPENJDK_TARGET_CPU" = "xx86_64"; then
|
||||||
AC_MSG_RESULT([yes])
|
AC_MSG_RESULT([yes])
|
||||||
else
|
else
|
||||||
DISABLED_JVM_FEATURES="$DISABLED_JVM_FEATURES zgc"
|
DISABLED_JVM_FEATURES="$DISABLED_JVM_FEATURES zgc"
|
||||||
AC_MSG_RESULT([no, platform not supported])
|
AC_MSG_RESULT([no, platform not supported])
|
||||||
fi
|
fi
|
||||||
else
|
|
||||||
AC_MSG_RESULT([no])
|
# Disable unsupported GCs for Zero
|
||||||
|
if HOTSPOT_CHECK_JVM_VARIANT(zero); then
|
||||||
|
DISABLED_JVM_FEATURES="$DISABLED_JVM_FEATURES epsilongc g1gc zgc shenandoahgc"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Turn on additional features based on other parts of configure
|
# Turn on additional features based on other parts of configure
|
||||||
@@ -482,7 +479,35 @@ AC_DEFUN_ONCE([HOTSPOT_SETUP_JVM_FEATURES],
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# All variants but minimal (and custom) get these features
|
# All variants but minimal (and custom) get these features
|
||||||
NON_MINIMAL_FEATURES="$NON_MINIMAL_FEATURES cmsgc g1gc parallelgc serialgc epsilongc jni-check jvmti management nmt services vm-structs"
|
NON_MINIMAL_FEATURES="$NON_MINIMAL_FEATURES cmsgc g1gc parallelgc serialgc epsilongc shenandoahgc jni-check jvmti management nmt services vm-structs zgc"
|
||||||
|
|
||||||
|
# Disable CDS on AIX.
|
||||||
|
if test "x$OPENJDK_TARGET_OS" = "xaix"; then
|
||||||
|
ENABLE_CDS="false"
|
||||||
|
if test "x$enable_cds" = "xyes"; then
|
||||||
|
AC_MSG_ERROR([CDS is currently not supported on AIX. Remove --enable-cds.])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Disable CDS if user requested it with --with-jvm-features=-cds.
|
||||||
|
DISABLE_CDS=`$ECHO $DISABLED_JVM_FEATURES | $GREP cds`
|
||||||
|
if test "x$DISABLE_CDS" = "xcds"; then
|
||||||
|
ENABLE_CDS="false"
|
||||||
|
if test "x$enable_cds" = "xyes"; then
|
||||||
|
AC_MSG_ERROR([CDS was disabled by --with-jvm-features=-cds. Remove --enable-cds.])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Disable CDS for zero, minimal, core..
|
||||||
|
if HOTSPOT_CHECK_JVM_VARIANT(zero) || HOTSPOT_CHECK_JVM_VARIANT(minimal) || HOTSPOT_CHECK_JVM_VARIANT(core); then
|
||||||
|
# ..except when the user explicitely requested it with --enable-jvm-features
|
||||||
|
if ! HOTSPOT_CHECK_JVM_FEATURE(cds); then
|
||||||
|
ENABLE_CDS="false"
|
||||||
|
if test "x$enable_cds" = "xyes"; then
|
||||||
|
AC_MSG_ERROR([CDS not implemented for variants zero, minimal, core. Remove --enable-cds.])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
AC_MSG_CHECKING([if cds should be enabled])
|
AC_MSG_CHECKING([if cds should be enabled])
|
||||||
if test "x$ENABLE_CDS" = "xtrue"; then
|
if test "x$ENABLE_CDS" = "xtrue"; then
|
||||||
@@ -518,8 +543,8 @@ AC_DEFUN_ONCE([HOTSPOT_SETUP_JVM_FEATURES],
|
|||||||
# Used for verification of Makefiles by check-jvm-feature
|
# Used for verification of Makefiles by check-jvm-feature
|
||||||
AC_SUBST(VALID_JVM_FEATURES)
|
AC_SUBST(VALID_JVM_FEATURES)
|
||||||
|
|
||||||
# We don't support --with-jvm-interpreter anymore, use zero instead.
|
# --with-cpu-port is no longer supported
|
||||||
BASIC_DEPRECATED_ARG_WITH(jvm-interpreter)
|
BASIC_DEPRECATED_ARG_WITH(with-cpu-port)
|
||||||
])
|
])
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
@@ -556,31 +581,6 @@ AC_DEFUN_ONCE([HOTSPOT_FINALIZE_JVM_FEATURES],
|
|||||||
done
|
done
|
||||||
])
|
])
|
||||||
|
|
||||||
################################################################################
|
|
||||||
#
|
|
||||||
# Specify which sources will be used to build the 64-bit ARM port
|
|
||||||
#
|
|
||||||
# --with-cpu-port=arm64 will use hotspot/src/cpu/arm
|
|
||||||
# --with-cpu-port=aarch64 will use hotspot/src/cpu/aarch64
|
|
||||||
#
|
|
||||||
AC_DEFUN([SETUP_HOTSPOT_TARGET_CPU_PORT],
|
|
||||||
[
|
|
||||||
AC_ARG_WITH(cpu-port, [AS_HELP_STRING([--with-cpu-port],
|
|
||||||
[specify sources to use for Hotspot 64-bit ARM port (arm64,aarch64) @<:@aarch64@:>@ ])])
|
|
||||||
|
|
||||||
if test "x$with_cpu_port" != x; then
|
|
||||||
if test "x$OPENJDK_TARGET_CPU" != xaarch64; then
|
|
||||||
AC_MSG_ERROR([--with-cpu-port only available on aarch64])
|
|
||||||
fi
|
|
||||||
if test "x$with_cpu_port" != xarm64 && \
|
|
||||||
test "x$with_cpu_port" != xaarch64; then
|
|
||||||
AC_MSG_ERROR([--with-cpu-port must specify arm64 or aarch64])
|
|
||||||
fi
|
|
||||||
HOTSPOT_TARGET_CPU_PORT="$with_cpu_port"
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
|
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Check if gtest should be built
|
# Check if gtest should be built
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -33,19 +33,8 @@
|
|||||||
# modules to compile into the JDK.
|
# modules to compile into the JDK.
|
||||||
AC_DEFUN_ONCE([JDKOPT_SETUP_JDK_VARIANT],
|
AC_DEFUN_ONCE([JDKOPT_SETUP_JDK_VARIANT],
|
||||||
[
|
[
|
||||||
AC_MSG_CHECKING([which variant of the JDK to build])
|
# Deprecated in JDK 12
|
||||||
AC_ARG_WITH([jdk-variant], [AS_HELP_STRING([--with-jdk-variant],
|
BASIC_DEPRECATED_ARG_WITH([jdk-variant])
|
||||||
[JDK variant to build (normal) @<:@normal@:>@])])
|
|
||||||
|
|
||||||
if test "x$with_jdk_variant" = xnormal || test "x$with_jdk_variant" = x; then
|
|
||||||
JDK_VARIANT="normal"
|
|
||||||
else
|
|
||||||
AC_MSG_ERROR([The available JDK variants are: normal])
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_SUBST(JDK_VARIANT)
|
|
||||||
|
|
||||||
AC_MSG_RESULT([$JDK_VARIANT])
|
|
||||||
])
|
])
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
@@ -126,10 +115,6 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_OPEN_OR_CUSTOM],
|
|||||||
else
|
else
|
||||||
AC_MSG_ERROR([Invalid value for --enable-openjdk-only: $enable_openjdk_only])
|
AC_MSG_ERROR([Invalid value for --enable-openjdk-only: $enable_openjdk_only])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# custom-make-dir is deprecated. Please use your custom-hook.m4 to override
|
|
||||||
# the IncludeCustomExtension macro.
|
|
||||||
BASIC_DEPRECATED_ARG_WITH(custom-make-dir)
|
|
||||||
])
|
])
|
||||||
|
|
||||||
AC_DEFUN_ONCE([JDKOPT_SETUP_JDK_OPTIONS],
|
AC_DEFUN_ONCE([JDKOPT_SETUP_JDK_OPTIONS],
|
||||||
@@ -259,6 +244,28 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_JDK_OPTIONS],
|
|||||||
COPYRIGHT_YEAR=`$DATE +'%Y'`
|
COPYRIGHT_YEAR=`$DATE +'%Y'`
|
||||||
fi
|
fi
|
||||||
AC_SUBST(COPYRIGHT_YEAR)
|
AC_SUBST(COPYRIGHT_YEAR)
|
||||||
|
|
||||||
|
# Override default library path
|
||||||
|
AC_ARG_WITH([jni-libpath], [AS_HELP_STRING([--with-jni-libpath],
|
||||||
|
[override default JNI library search path])])
|
||||||
|
AC_MSG_CHECKING([for jni library path])
|
||||||
|
if test "x${with_jni_libpath}" = "x" || test "x${with_jni_libpath}" = "xno"; then
|
||||||
|
AC_MSG_RESULT([default])
|
||||||
|
elif test "x${with_jni_libpath}" = "xyes"; then
|
||||||
|
AC_MSG_RESULT([invalid])
|
||||||
|
AC_MSG_ERROR([The --with-jni-libpath option requires an argument.])
|
||||||
|
else
|
||||||
|
HOTSPOT_OVERRIDE_LIBPATH=${with_jni_libpath}
|
||||||
|
if test "x$OPENJDK_TARGET_OS" != "xlinux" &&
|
||||||
|
test "x$OPENJDK_TARGET_OS" != "xbsd" &&
|
||||||
|
test "x$OPENJDK_TARGET_OS" != "xaix"; then
|
||||||
|
AC_MSG_RESULT([fail])
|
||||||
|
AC_MSG_ERROR([Overriding JNI library path is supported only on Linux, BSD and AIX.])
|
||||||
|
fi
|
||||||
|
AC_MSG_RESULT(${HOTSPOT_OVERRIDE_LIBPATH})
|
||||||
|
fi
|
||||||
|
AC_SUBST(HOTSPOT_OVERRIDE_LIBPATH)
|
||||||
|
|
||||||
])
|
])
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
@@ -350,16 +357,6 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_DEBUG_SYMBOLS],
|
|||||||
AC_MSG_ERROR([Allowed native debug symbols are: none, internal, external, zipped])
|
AC_MSG_ERROR([Allowed native debug symbols are: none, internal, external, zipped])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# --enable-debug-symbols is deprecated.
|
|
||||||
# Please use --with-native-debug-symbols=[internal,external,zipped] .
|
|
||||||
BASIC_DEPRECATED_ARG_ENABLE(debug-symbols, debug_symbols,
|
|
||||||
[Please use --with-native-debug-symbols=[[internal,external,zipped]] .])
|
|
||||||
|
|
||||||
# --enable-zip-debug-info is deprecated.
|
|
||||||
# Please use --with-native-debug-symbols=zipped .
|
|
||||||
BASIC_DEPRECATED_ARG_ENABLE(zip-debug-info, zip_debug_info,
|
|
||||||
[Please use --with-native-debug-symbols=zipped .])
|
|
||||||
|
|
||||||
AC_SUBST(COMPILE_WITH_DEBUG_SYMBOLS)
|
AC_SUBST(COMPILE_WITH_DEBUG_SYMBOLS)
|
||||||
AC_SUBST(COPY_DEBUG_SYMBOLS)
|
AC_SUBST(COPY_DEBUG_SYMBOLS)
|
||||||
AC_SUBST(ZIP_EXTERNAL_DEBUG_SYMBOLS)
|
AC_SUBST(ZIP_EXTERNAL_DEBUG_SYMBOLS)
|
||||||
@@ -398,8 +395,37 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_CODE_COVERAGE],
|
|||||||
elif test "x$enable_native_coverage" != "x"; then
|
elif test "x$enable_native_coverage" != "x"; then
|
||||||
AC_MSG_ERROR([--enable-native-coverage can only be assigned "yes" or "no"])
|
AC_MSG_ERROR([--enable-native-coverage can only be assigned "yes" or "no"])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
AC_SUBST(GCOV_ENABLED)
|
AC_SUBST(GCOV_ENABLED)
|
||||||
|
|
||||||
|
AC_ARG_WITH(jcov, [AS_HELP_STRING([--with-jcov],
|
||||||
|
[jcov library location])])
|
||||||
|
AC_ARG_WITH(jcov-input-jdk, [AS_HELP_STRING([--with-jcov-input-jdk],
|
||||||
|
[jdk image to instrument])])
|
||||||
|
JCOV_HOME=
|
||||||
|
JCOV_INPUT_JDK=
|
||||||
|
JCOV_ENABLED=
|
||||||
|
if test "x$with_jcov" = "x" ; then
|
||||||
|
JCOV_ENABLED="false"
|
||||||
|
else
|
||||||
|
JCOV_HOME="$with_jcov"
|
||||||
|
if test ! -f "$JCOV_HOME/lib/jcov.jar"; then
|
||||||
|
AC_MSG_RESULT([fail])
|
||||||
|
AC_MSG_ERROR([Invalid JCov bundle: "$JCOV_HOME/lib/jcov.jar" does not exist])
|
||||||
|
fi
|
||||||
|
JCOV_ENABLED="true"
|
||||||
|
BASIC_FIXUP_PATH(JCOV_HOME)
|
||||||
|
if test "x$with_jcov_input_jdk" != "x" ; then
|
||||||
|
JCOV_INPUT_JDK="$with_jcov_input_jdk"
|
||||||
|
if test ! -f "$JCOV_INPUT_JDK/bin/java$EXE_SUFFIX"; then
|
||||||
|
AC_MSG_RESULT([fail])
|
||||||
|
AC_MSG_ERROR([Invalid JDK bundle: "$JCOV_INPUT_JDK/bin/java$EXE_SUFFIX" does not exist])
|
||||||
|
fi
|
||||||
|
BASIC_FIXUP_PATH(JCOV_INPUT_JDK)
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
AC_SUBST(JCOV_ENABLED)
|
||||||
|
AC_SUBST(JCOV_HOME)
|
||||||
|
AC_SUBST(JCOV_INPUT_JDK)
|
||||||
])
|
])
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
@@ -552,7 +578,7 @@ AC_DEFUN_ONCE([JDKOPT_ENABLE_DISABLE_GENERATE_CLASSLIST],
|
|||||||
|
|
||||||
# Check if it's likely that it's possible to generate the classlist. Depending
|
# Check if it's likely that it's possible to generate the classlist. Depending
|
||||||
# on exact jvm configuration it could be possible anyway.
|
# on exact jvm configuration it could be possible anyway.
|
||||||
if test "x$ENABLE_CDS" = "xtrue" && (HOTSPOT_CHECK_JVM_VARIANT(server) || HOTSPOT_CHECK_JVM_VARIANT(client)); then
|
if test "x$ENABLE_CDS" = "xtrue" && (HOTSPOT_CHECK_JVM_VARIANT(server) || HOTSPOT_CHECK_JVM_VARIANT(client) || HOTSPOT_CHECK_JVM_FEATURE(cds)); then
|
||||||
ENABLE_GENERATE_CLASSLIST_POSSIBLE="true"
|
ENABLE_GENERATE_CLASSLIST_POSSIBLE="true"
|
||||||
else
|
else
|
||||||
ENABLE_GENERATE_CLASSLIST_POSSIBLE="false"
|
ENABLE_GENERATE_CLASSLIST_POSSIBLE="false"
|
||||||
@@ -612,10 +638,10 @@ AC_DEFUN([JDKOPT_EXCLUDE_TRANSLATIONS],
|
|||||||
AC_DEFUN([JDKOPT_ENABLE_DISABLE_MANPAGES],
|
AC_DEFUN([JDKOPT_ENABLE_DISABLE_MANPAGES],
|
||||||
[
|
[
|
||||||
AC_ARG_ENABLE([manpages], [AS_HELP_STRING([--disable-manpages],
|
AC_ARG_ENABLE([manpages], [AS_HELP_STRING([--disable-manpages],
|
||||||
[Set to disable building of man pages @<:@enabled@:>@])])
|
[Set to disable copy of static man pages @<:@enabled@:>@])])
|
||||||
|
|
||||||
BUILD_MANPAGES="true"
|
BUILD_MANPAGES="true"
|
||||||
AC_MSG_CHECKING([if man pages should be built])
|
AC_MSG_CHECKING([if static man pages should be copied])
|
||||||
if test "x$enable_manpages" = "x"; then
|
if test "x$enable_manpages" = "x"; then
|
||||||
AC_MSG_RESULT([yes])
|
AC_MSG_RESULT([yes])
|
||||||
elif test "x$enable_manpages" = "xyes"; then
|
elif test "x$enable_manpages" = "xyes"; then
|
||||||
@@ -630,3 +656,37 @@ AC_DEFUN([JDKOPT_ENABLE_DISABLE_MANPAGES],
|
|||||||
|
|
||||||
AC_SUBST(BUILD_MANPAGES)
|
AC_SUBST(BUILD_MANPAGES)
|
||||||
])
|
])
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Disable the default CDS archive generation
|
||||||
|
# cross compilation - disabled
|
||||||
|
#
|
||||||
|
AC_DEFUN([JDKOPT_ENABLE_DISABLE_CDS_ARCHIVE],
|
||||||
|
[
|
||||||
|
AC_ARG_ENABLE([cds-archive], [AS_HELP_STRING([--disable-cds-archive],
|
||||||
|
[Set to disable generation of a default CDS archive in the product image @<:@enabled@:>@])])
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([if a default CDS archive should be generated])
|
||||||
|
if test "x$ENABLE_CDS" = "xfalse"; then
|
||||||
|
AC_MSG_RESULT([no, because CDS is disabled])
|
||||||
|
BUILD_CDS_ARCHIVE="false"
|
||||||
|
elif test "x$COMPILE_TYPE" = "xcross"; then
|
||||||
|
AC_MSG_RESULT([no, not possible with cross compilation])
|
||||||
|
BUILD_CDS_ARCHIVE="false"
|
||||||
|
elif test "x$enable_cds_archive" = "xyes"; then
|
||||||
|
AC_MSG_RESULT([yes, forced])
|
||||||
|
BUILD_CDS_ARCHIVE="true"
|
||||||
|
elif test "x$enable_cds_archive" = "x"; then
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
BUILD_CDS_ARCHIVE="true"
|
||||||
|
elif test "x$enable_cds_archive" = "xno"; then
|
||||||
|
AC_MSG_RESULT([no, forced])
|
||||||
|
BUILD_CDS_ARCHIVE="false"
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT([no])
|
||||||
|
AC_MSG_ERROR([--enable-cds_archive can only be yes/no or empty])
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_SUBST(BUILD_CDS_ARCHIVE)
|
||||||
|
])
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -57,15 +57,6 @@ AC_DEFUN([JDKVER_CHECK_AND_SET_NUMBER],
|
|||||||
|
|
||||||
AC_DEFUN_ONCE([JDKVER_SETUP_JDK_VERSION_NUMBERS],
|
AC_DEFUN_ONCE([JDKVER_SETUP_JDK_VERSION_NUMBERS],
|
||||||
[
|
[
|
||||||
# Warn user that old version arguments are deprecated.
|
|
||||||
BASIC_DEPRECATED_ARG_WITH([milestone])
|
|
||||||
BASIC_DEPRECATED_ARG_WITH([update-version])
|
|
||||||
BASIC_DEPRECATED_ARG_WITH([user-release-suffix])
|
|
||||||
BASIC_DEPRECATED_ARG_WITH([build-number])
|
|
||||||
BASIC_DEPRECATED_ARG_WITH([version-major])
|
|
||||||
BASIC_DEPRECATED_ARG_WITH([version-minor])
|
|
||||||
BASIC_DEPRECATED_ARG_WITH([version-security])
|
|
||||||
|
|
||||||
# Source the version numbers file
|
# Source the version numbers file
|
||||||
. $AUTOCONF_DIR/version-numbers
|
. $AUTOCONF_DIR/version-numbers
|
||||||
|
|
||||||
@@ -100,7 +91,9 @@ AC_DEFUN_ONCE([JDKVER_SETUP_JDK_VERSION_NUMBERS],
|
|||||||
AC_MSG_ERROR([--with-vendor-url must have a value])
|
AC_MSG_ERROR([--with-vendor-url must have a value])
|
||||||
elif [ ! [[ $with_vendor_url =~ ^[[:print:]]*$ ]] ]; then
|
elif [ ! [[ $with_vendor_url =~ ^[[:print:]]*$ ]] ]; then
|
||||||
AC_MSG_ERROR([--with-vendor-url contains non-printing characters: $with_vendor_url])
|
AC_MSG_ERROR([--with-vendor-url contains non-printing characters: $with_vendor_url])
|
||||||
else
|
elif test "x$with_vendor_url" != x; then
|
||||||
|
# Only set VENDOR_URL if '--with-vendor-url' was used and is not empty.
|
||||||
|
# Otherwise we will use the value from "version-numbers" included above.
|
||||||
VENDOR_URL="$with_vendor_url"
|
VENDOR_URL="$with_vendor_url"
|
||||||
fi
|
fi
|
||||||
AC_SUBST(VENDOR_URL)
|
AC_SUBST(VENDOR_URL)
|
||||||
@@ -112,7 +105,9 @@ AC_DEFUN_ONCE([JDKVER_SETUP_JDK_VERSION_NUMBERS],
|
|||||||
AC_MSG_ERROR([--with-vendor-bug-url must have a value])
|
AC_MSG_ERROR([--with-vendor-bug-url must have a value])
|
||||||
elif [ ! [[ $with_vendor_bug_url =~ ^[[:print:]]*$ ]] ]; then
|
elif [ ! [[ $with_vendor_bug_url =~ ^[[:print:]]*$ ]] ]; then
|
||||||
AC_MSG_ERROR([--with-vendor-bug-url contains non-printing characters: $with_vendor_bug_url])
|
AC_MSG_ERROR([--with-vendor-bug-url contains non-printing characters: $with_vendor_bug_url])
|
||||||
else
|
elif test "x$with_vendor_bug_url" != x; then
|
||||||
|
# Only set VENDOR_URL_BUG if '--with-vendor-bug-url' was used and is not empty.
|
||||||
|
# Otherwise we will use the value from "version-numbers" included above.
|
||||||
VENDOR_URL_BUG="$with_vendor_bug_url"
|
VENDOR_URL_BUG="$with_vendor_bug_url"
|
||||||
fi
|
fi
|
||||||
AC_SUBST(VENDOR_URL_BUG)
|
AC_SUBST(VENDOR_URL_BUG)
|
||||||
@@ -139,15 +134,18 @@ AC_DEFUN_ONCE([JDKVER_SETUP_JDK_VERSION_NUMBERS],
|
|||||||
AC_MSG_ERROR([--with-version-string must have a value])
|
AC_MSG_ERROR([--with-version-string must have a value])
|
||||||
elif test "x$with_version_string" != x; then
|
elif test "x$with_version_string" != x; then
|
||||||
# Additional [] needed to keep m4 from mangling shell constructs.
|
# Additional [] needed to keep m4 from mangling shell constructs.
|
||||||
if [ [[ $with_version_string =~ ^([0-9]+)(\.([0-9]+))?(\.([0-9]+))?(\.([0-9]+))?(-([a-zA-Z]+))?((\+)([0-9]+)?(-([-a-zA-Z0-9.]+))?)?$ ]] ]; then
|
if [ [[ $with_version_string =~ ^([0-9]+)(\.([0-9]+))?(\.([0-9]+))?(\.([0-9]+))?(\.([0-9]+))?(\.([0-9]+))?(\.([0-9]+))?(-([a-zA-Z]+))?((\+)([0-9]+)?(-([-a-zA-Z0-9.]+))?)?$ ]] ]; then
|
||||||
VERSION_FEATURE=${BASH_REMATCH[[1]]}
|
VERSION_FEATURE=${BASH_REMATCH[[1]]}
|
||||||
VERSION_INTERIM=${BASH_REMATCH[[3]]}
|
VERSION_INTERIM=${BASH_REMATCH[[3]]}
|
||||||
VERSION_UPDATE=${BASH_REMATCH[[5]]}
|
VERSION_UPDATE=${BASH_REMATCH[[5]]}
|
||||||
VERSION_PATCH=${BASH_REMATCH[[7]]}
|
VERSION_PATCH=${BASH_REMATCH[[7]]}
|
||||||
VERSION_PRE=${BASH_REMATCH[[9]]}
|
VERSION_EXTRA1=${BASH_REMATCH[[9]]}
|
||||||
version_plus_separator=${BASH_REMATCH[[11]]}
|
VERSION_EXTRA2=${BASH_REMATCH[[11]]}
|
||||||
VERSION_BUILD=${BASH_REMATCH[[12]]}
|
VERSION_EXTRA3=${BASH_REMATCH[[13]]}
|
||||||
VERSION_OPT=${BASH_REMATCH[[14]]}
|
VERSION_PRE=${BASH_REMATCH[[15]]}
|
||||||
|
version_plus_separator=${BASH_REMATCH[[17]]}
|
||||||
|
VERSION_BUILD=${BASH_REMATCH[[18]]}
|
||||||
|
VERSION_OPT=${BASH_REMATCH[[20]]}
|
||||||
# Unspecified numerical fields are interpreted as 0.
|
# Unspecified numerical fields are interpreted as 0.
|
||||||
if test "x$VERSION_INTERIM" = x; then
|
if test "x$VERSION_INTERIM" = x; then
|
||||||
VERSION_INTERIM=0
|
VERSION_INTERIM=0
|
||||||
@@ -158,6 +156,15 @@ AC_DEFUN_ONCE([JDKVER_SETUP_JDK_VERSION_NUMBERS],
|
|||||||
if test "x$VERSION_PATCH" = x; then
|
if test "x$VERSION_PATCH" = x; then
|
||||||
VERSION_PATCH=0
|
VERSION_PATCH=0
|
||||||
fi
|
fi
|
||||||
|
if test "x$VERSION_EXTRA1" = x; then
|
||||||
|
VERSION_EXTRA1=0
|
||||||
|
fi
|
||||||
|
if test "x$VERSION_EXTRA2" = x; then
|
||||||
|
VERSION_EXTRA2=0
|
||||||
|
fi
|
||||||
|
if test "x$VERSION_EXTRA3" = x; then
|
||||||
|
VERSION_EXTRA3=0
|
||||||
|
fi
|
||||||
if test "x$version_plus_separator" != x \
|
if test "x$version_plus_separator" != x \
|
||||||
&& test "x$VERSION_BUILD$VERSION_OPT" = x; then
|
&& test "x$VERSION_BUILD$VERSION_OPT" = x; then
|
||||||
AC_MSG_ERROR([Version string contains + but both 'BUILD' and 'OPT' are missing])
|
AC_MSG_ERROR([Version string contains + but both 'BUILD' and 'OPT' are missing])
|
||||||
@@ -327,6 +334,72 @@ AC_DEFUN_ONCE([JDKVER_SETUP_JDK_VERSION_NUMBERS],
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# The 1st version extra number, if any
|
||||||
|
AC_ARG_WITH(version-extra1, [AS_HELP_STRING([--with-version-extra1],
|
||||||
|
[Set 1st version extra number @<:@not specified@:>@])],
|
||||||
|
[with_version_extra1_present=true], [with_version_extra1_present=false])
|
||||||
|
|
||||||
|
if test "x$with_version_extra1_present" = xtrue; then
|
||||||
|
if test "x$with_version_extra1" = xyes; then
|
||||||
|
AC_MSG_ERROR([--with-version-extra1 must have a value])
|
||||||
|
elif test "x$with_version_extra1" = xno; then
|
||||||
|
# Interpret --without-* as empty string (i.e. 0) instead of the literal "no"
|
||||||
|
VERSION_EXTRA1=0
|
||||||
|
elif test "x$with_version_extra1" = x; then
|
||||||
|
VERSION_EXTRA1=0
|
||||||
|
else
|
||||||
|
JDKVER_CHECK_AND_SET_NUMBER(VERSION_EXTRA1, $with_version_extra1)
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if test "x$NO_DEFAULT_VERSION_PARTS" != xtrue; then
|
||||||
|
VERSION_EXTRA1=$DEFAULT_VERSION_EXTRA1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# The 2nd version extra number, if any
|
||||||
|
AC_ARG_WITH(version-extra2, [AS_HELP_STRING([--with-version-extra2],
|
||||||
|
[Set 2nd version extra number @<:@not specified@:>@])],
|
||||||
|
[with_version_extra2_present=true], [with_version_extra2_present=false])
|
||||||
|
|
||||||
|
if test "x$with_version_extra2_present" = xtrue; then
|
||||||
|
if test "x$with_version_extra2" = xyes; then
|
||||||
|
AC_MSG_ERROR([--with-version-extra2 must have a value])
|
||||||
|
elif test "x$with_version_extra2" = xno; then
|
||||||
|
# Interpret --without-* as empty string (i.e. 0) instead of the literal "no"
|
||||||
|
VERSION_EXTRA2=0
|
||||||
|
elif test "x$with_version_extra2" = x; then
|
||||||
|
VERSION_EXTRA2=0
|
||||||
|
else
|
||||||
|
JDKVER_CHECK_AND_SET_NUMBER(VERSION_EXTRA2, $with_version_extra2)
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if test "x$NO_DEFAULT_VERSION_PARTS" != xtrue; then
|
||||||
|
VERSION_EXTRA2=$DEFAULT_VERSION_EXTRA2
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# The 3rd version extra number, if any
|
||||||
|
AC_ARG_WITH(version-extra3, [AS_HELP_STRING([--with-version-extra3],
|
||||||
|
[Set 3rd version extra number @<:@not specified@:>@])],
|
||||||
|
[with_version_extra3_present=true], [with_version_extra3_present=false])
|
||||||
|
|
||||||
|
if test "x$with_version_extra3_present" = xtrue; then
|
||||||
|
if test "x$with_version_extra3" = xyes; then
|
||||||
|
AC_MSG_ERROR([--with-version-extra3 must have a value])
|
||||||
|
elif test "x$with_version_extra3" = xno; then
|
||||||
|
# Interpret --without-* as empty string (i.e. 0) instead of the literal "no"
|
||||||
|
VERSION_EXTRA3=0
|
||||||
|
elif test "x$with_version_extra3" = x; then
|
||||||
|
VERSION_EXTRA3=0
|
||||||
|
else
|
||||||
|
JDKVER_CHECK_AND_SET_NUMBER(VERSION_EXTRA3, $with_version_extra3)
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if test "x$NO_DEFAULT_VERSION_PARTS" != xtrue; then
|
||||||
|
VERSION_EXTRA3=$DEFAULT_VERSION_EXTRA3
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
# Calculate derived version properties
|
# Calculate derived version properties
|
||||||
|
|
||||||
# Set VERSION_IS_GA based on if VERSION_PRE has a value
|
# Set VERSION_IS_GA based on if VERSION_PRE has a value
|
||||||
@@ -339,9 +412,12 @@ AC_DEFUN_ONCE([JDKVER_SETUP_JDK_VERSION_NUMBERS],
|
|||||||
# VERSION_NUMBER but always with exactly 4 positions, with 0 for empty positions.
|
# VERSION_NUMBER but always with exactly 4 positions, with 0 for empty positions.
|
||||||
VERSION_NUMBER_FOUR_POSITIONS=$VERSION_FEATURE.$VERSION_INTERIM.$VERSION_UPDATE.$VERSION_PATCH
|
VERSION_NUMBER_FOUR_POSITIONS=$VERSION_FEATURE.$VERSION_INTERIM.$VERSION_UPDATE.$VERSION_PATCH
|
||||||
|
|
||||||
stripped_version_number=$VERSION_NUMBER_FOUR_POSITIONS
|
# VERSION_NUMBER but always with all positions, with 0 for empty positions.
|
||||||
|
VERSION_NUMBER_ALL_POSITIONS=$VERSION_NUMBER_FOUR_POSITIONS.$VERSION_EXTRA1.$VERSION_EXTRA2.$VERSION_EXTRA3
|
||||||
|
|
||||||
|
stripped_version_number=$VERSION_NUMBER_ALL_POSITIONS
|
||||||
# Strip trailing zeroes from stripped_version_number
|
# Strip trailing zeroes from stripped_version_number
|
||||||
for i in 1 2 3 ; do stripped_version_number=${stripped_version_number%.0} ; done
|
for i in 1 2 3 4 5 6 ; do stripped_version_number=${stripped_version_number%.0} ; done
|
||||||
VERSION_NUMBER=$stripped_version_number
|
VERSION_NUMBER=$stripped_version_number
|
||||||
|
|
||||||
# The complete version string, with additional build information
|
# The complete version string, with additional build information
|
||||||
@@ -392,6 +468,9 @@ AC_DEFUN_ONCE([JDKVER_SETUP_JDK_VERSION_NUMBERS],
|
|||||||
AC_SUBST(VERSION_INTERIM)
|
AC_SUBST(VERSION_INTERIM)
|
||||||
AC_SUBST(VERSION_UPDATE)
|
AC_SUBST(VERSION_UPDATE)
|
||||||
AC_SUBST(VERSION_PATCH)
|
AC_SUBST(VERSION_PATCH)
|
||||||
|
AC_SUBST(VERSION_EXTRA1)
|
||||||
|
AC_SUBST(VERSION_EXTRA2)
|
||||||
|
AC_SUBST(VERSION_EXTRA3)
|
||||||
AC_SUBST(VERSION_PRE)
|
AC_SUBST(VERSION_PRE)
|
||||||
AC_SUBST(VERSION_BUILD)
|
AC_SUBST(VERSION_BUILD)
|
||||||
AC_SUBST(VERSION_OPT)
|
AC_SUBST(VERSION_OPT)
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# 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
|
||||||
|
|||||||
@@ -186,6 +186,9 @@ AC_DEFUN_ONCE([LIB_SETUP_FREETYPE],
|
|||||||
FREETYPE_BASE_DIR="$SYSROOT/usr"
|
FREETYPE_BASE_DIR="$SYSROOT/usr"
|
||||||
if (test "x$OPENJDK_TARGET_CPU_BITS" = "x64"); then
|
if (test "x$OPENJDK_TARGET_CPU_BITS" = "x64"); then
|
||||||
LIB_CHECK_POTENTIAL_FREETYPE([$FREETYPE_BASE_DIR/include], [$FREETYPE_BASE_DIR/lib/$OPENJDK_TARGET_CPU-linux-gnu], [well-known location])
|
LIB_CHECK_POTENTIAL_FREETYPE([$FREETYPE_BASE_DIR/include], [$FREETYPE_BASE_DIR/lib/$OPENJDK_TARGET_CPU-linux-gnu], [well-known location])
|
||||||
|
if (test "x$FOUND_FREETYPE" != "xyes"); then
|
||||||
|
LIB_CHECK_POTENTIAL_FREETYPE([$FREETYPE_BASE_DIR/include], [$FREETYPE_BASE_DIR/lib64], [well-known location])
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
LIB_CHECK_POTENTIAL_FREETYPE([$FREETYPE_BASE_DIR/include], [$FREETYPE_BASE_DIR/lib/i386-linux-gnu], [well-known location])
|
LIB_CHECK_POTENTIAL_FREETYPE([$FREETYPE_BASE_DIR/include], [$FREETYPE_BASE_DIR/lib/i386-linux-gnu], [well-known location])
|
||||||
if (test "x$FOUND_FREETYPE" != "xyes"); then
|
if (test "x$FOUND_FREETYPE" != "xyes"); then
|
||||||
|
|||||||
@@ -55,3 +55,65 @@ AC_DEFUN_ONCE([LIB_TESTS_SETUP_GRAALUNIT],
|
|||||||
AC_SUBST(GRAALUNIT_LIB)
|
AC_SUBST(GRAALUNIT_LIB)
|
||||||
])
|
])
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
#
|
||||||
|
# Setup and check the Java Microbenchmark Harness
|
||||||
|
#
|
||||||
|
AC_DEFUN_ONCE([LIB_TESTS_SETUP_JMH],
|
||||||
|
[
|
||||||
|
AC_ARG_WITH(jmh, [AS_HELP_STRING([--with-jmh],
|
||||||
|
[Java Microbenchmark Harness for building the OpenJDK Microbenchmark Suite])])
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([for jmh (Java Microbenchmark Harness)])
|
||||||
|
if test "x$with_jmh" = xno || test "x$with_jmh" = x; then
|
||||||
|
AC_MSG_RESULT([no, disabled])
|
||||||
|
elif test "x$with_jmh" = xyes; then
|
||||||
|
AC_MSG_RESULT([no, error])
|
||||||
|
AC_MSG_ERROR([--with-jmh requires a directory containing all jars needed by JMH])
|
||||||
|
else
|
||||||
|
# Path specified
|
||||||
|
JMH_HOME="$with_jmh"
|
||||||
|
if test ! -d [$JMH_HOME]; then
|
||||||
|
AC_MSG_RESULT([no, error])
|
||||||
|
AC_MSG_ERROR([$JMH_HOME does not exist or is not a directory])
|
||||||
|
fi
|
||||||
|
BASIC_FIXUP_PATH([JMH_HOME])
|
||||||
|
|
||||||
|
jar_names="jmh-core jmh-generator-annprocess jopt-simple commons-math3"
|
||||||
|
for jar in $jar_names; do
|
||||||
|
found_jar_files=$($ECHO $(ls $JMH_HOME/$jar-*.jar 2> /dev/null))
|
||||||
|
|
||||||
|
if test "x$found_jar_files" = x; then
|
||||||
|
AC_MSG_RESULT([no])
|
||||||
|
AC_MSG_ERROR([--with-jmh does not contain $jar-*.jar])
|
||||||
|
elif ! test -e "$found_jar_files"; then
|
||||||
|
AC_MSG_RESULT([no])
|
||||||
|
AC_MSG_ERROR([--with-jmh contain multiple $jar-*.jar: $found_jar_files])
|
||||||
|
fi
|
||||||
|
|
||||||
|
found_jar_var_name=found_${jar//-/_}
|
||||||
|
eval $found_jar_var_name='"'$found_jar_files'"'
|
||||||
|
done
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
|
||||||
|
JMH_CORE_JAR=$found_jmh_core
|
||||||
|
JMH_GENERATOR_JAR=$found_jmh_generator_annprocess
|
||||||
|
JMH_JOPT_SIMPLE_JAR=$found_jopt_simple
|
||||||
|
JMH_COMMONS_MATH_JAR=$found_commons_math3
|
||||||
|
|
||||||
|
|
||||||
|
if [ [[ "$JMH_CORE_JAR" =~ jmh-core-(.*)\.jar$ ]] ] ; then
|
||||||
|
JMH_VERSION=${BASH_REMATCH[[1]]}
|
||||||
|
else
|
||||||
|
JMH_VERSION=unknown
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_MSG_NOTICE([JMH core version: $JMH_VERSION])
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_SUBST(JMH_CORE_JAR)
|
||||||
|
AC_SUBST(JMH_GENERATOR_JAR)
|
||||||
|
AC_SUBST(JMH_JOPT_SIMPLE_JAR)
|
||||||
|
AC_SUBST(JMH_COMMONS_MATH_JAR)
|
||||||
|
AC_SUBST(JMH_VERSION)
|
||||||
|
])
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# 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
|
||||||
@@ -99,8 +99,16 @@ AC_DEFUN_ONCE([LIB_SETUP_X11],
|
|||||||
OLD_CFLAGS="$CFLAGS"
|
OLD_CFLAGS="$CFLAGS"
|
||||||
CFLAGS="$CFLAGS $SYSROOT_CFLAGS $X_CFLAGS"
|
CFLAGS="$CFLAGS $SYSROOT_CFLAGS $X_CFLAGS"
|
||||||
|
|
||||||
|
HEADERS_TO_CHECK="X11/extensions/shape.h X11/extensions/Xrender.h X11/extensions/XTest.h X11/Intrinsic.h"
|
||||||
|
# There is no Xrandr extension on AIX
|
||||||
|
if test "x$OPENJDK_TARGET_OS" = xaix; then
|
||||||
|
X_CFLAGS="$X_CFLAGS -DNO_XRANDR"
|
||||||
|
else
|
||||||
|
HEADERS_TO_CHECK="$HEADERS_TO_CHECK X11/extensions/Xrandr.h"
|
||||||
|
fi
|
||||||
|
|
||||||
# Need to include Xlib.h and Xutil.h to avoid "present but cannot be compiled" warnings on Solaris 10
|
# Need to include Xlib.h and Xutil.h to avoid "present but cannot be compiled" warnings on Solaris 10
|
||||||
AC_CHECK_HEADERS([X11/extensions/shape.h X11/extensions/Xrender.h X11/extensions/XTest.h X11/Intrinsic.h],
|
AC_CHECK_HEADERS([$HEADERS_TO_CHECK],
|
||||||
[X11_HEADERS_OK=yes],
|
[X11_HEADERS_OK=yes],
|
||||||
[X11_HEADERS_OK=no; break],
|
[X11_HEADERS_OK=no; break],
|
||||||
[
|
[
|
||||||
@@ -111,7 +119,7 @@ AC_DEFUN_ONCE([LIB_SETUP_X11],
|
|||||||
|
|
||||||
if test "x$X11_HEADERS_OK" = xno; then
|
if test "x$X11_HEADERS_OK" = xno; then
|
||||||
HELP_MSG_MISSING_DEPENDENCY([x11])
|
HELP_MSG_MISSING_DEPENDENCY([x11])
|
||||||
AC_MSG_ERROR([Could not find all X11 headers (shape.h Xrender.h XTest.h Intrinsic.h). $HELP_MSG])
|
AC_MSG_ERROR([Could not find all X11 headers (shape.h Xrender.h Xrander.h XTest.h Intrinsic.h). $HELP_MSG])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# If XLinearGradient isn't available in Xrender.h, signal that it needs to be
|
# If XLinearGradient isn't available in Xrender.h, signal that it needs to be
|
||||||
|
|||||||
@@ -180,13 +180,6 @@ AC_DEFUN_ONCE([LIB_SETUP_MISC_LIBS],
|
|||||||
AC_SUBST(LIBDL)
|
AC_SUBST(LIBDL)
|
||||||
LIBS="$save_LIBS"
|
LIBS="$save_LIBS"
|
||||||
|
|
||||||
# Deprecated libraries, keep the flags for backwards compatibility
|
|
||||||
if test "x$OPENJDK_TARGET_OS" = "xwindows"; then
|
|
||||||
BASIC_DEPRECATED_ARG_WITH([dxsdk])
|
|
||||||
BASIC_DEPRECATED_ARG_WITH([dxsdk-lib])
|
|
||||||
BASIC_DEPRECATED_ARG_WITH([dxsdk-include])
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Control if libzip can use mmap. Available for purposes of overriding.
|
# Control if libzip can use mmap. Available for purposes of overriding.
|
||||||
LIBZIP_CAN_USE_MMAP=true
|
LIBZIP_CAN_USE_MMAP=true
|
||||||
AC_SUBST(LIBZIP_CAN_USE_MMAP)
|
AC_SUBST(LIBZIP_CAN_USE_MMAP)
|
||||||
@@ -217,4 +210,3 @@ AC_DEFUN_ONCE([LIB_SETUP_SOLARIS_STLPORT],
|
|||||||
AC_SUBST(STLPORT_LIB)
|
AC_SUBST(STLPORT_LIB)
|
||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|||||||
@@ -30,6 +30,12 @@ AC_DEFUN([PLATFORM_EXTRACT_VARS_FROM_CPU],
|
|||||||
[
|
[
|
||||||
# First argument is the cpu name from the trip/quad
|
# First argument is the cpu name from the trip/quad
|
||||||
case "$1" in
|
case "$1" in
|
||||||
|
x86_64*x32)
|
||||||
|
VAR_CPU=x32
|
||||||
|
VAR_CPU_ARCH=x86
|
||||||
|
VAR_CPU_BITS=32
|
||||||
|
VAR_CPU_ENDIAN=little
|
||||||
|
;;
|
||||||
x86_64)
|
x86_64)
|
||||||
VAR_CPU=x86_64
|
VAR_CPU=x86_64
|
||||||
VAR_CPU_ARCH=x86
|
VAR_CPU_ARCH=x86
|
||||||
@@ -182,6 +188,10 @@ AC_DEFUN([PLATFORM_EXTRACT_VARS_FROM_OS],
|
|||||||
VAR_OS=windows
|
VAR_OS=windows
|
||||||
VAR_OS_ENV=windows.cygwin
|
VAR_OS_ENV=windows.cygwin
|
||||||
;;
|
;;
|
||||||
|
*wsl*)
|
||||||
|
VAR_OS=windows
|
||||||
|
VAR_OS_ENV=windows.wsl
|
||||||
|
;;
|
||||||
*mingw*)
|
*mingw*)
|
||||||
VAR_OS=windows
|
VAR_OS=windows
|
||||||
VAR_OS_ENV=windows.msys
|
VAR_OS_ENV=windows.msys
|
||||||
@@ -455,6 +465,8 @@ AC_DEFUN([PLATFORM_SETUP_LEGACY_VARS_HELPER],
|
|||||||
HOTSPOT_$1_CPU_DEFINE=IA32
|
HOTSPOT_$1_CPU_DEFINE=IA32
|
||||||
elif test "x$OPENJDK_$1_CPU" = xx86_64; then
|
elif test "x$OPENJDK_$1_CPU" = xx86_64; then
|
||||||
HOTSPOT_$1_CPU_DEFINE=AMD64
|
HOTSPOT_$1_CPU_DEFINE=AMD64
|
||||||
|
elif test "x$OPENJDK_$1_CPU" = xx32; then
|
||||||
|
HOTSPOT_$1_CPU_DEFINE=X32
|
||||||
elif test "x$OPENJDK_$1_CPU" = xsparcv9; then
|
elif test "x$OPENJDK_$1_CPU" = xsparcv9; then
|
||||||
HOTSPOT_$1_CPU_DEFINE=SPARC
|
HOTSPOT_$1_CPU_DEFINE=SPARC
|
||||||
elif test "x$OPENJDK_$1_CPU" = xaarch64; then
|
elif test "x$OPENJDK_$1_CPU" = xaarch64; then
|
||||||
|
|||||||
@@ -122,7 +122,12 @@ ORIGINAL_PATH:=@ORIGINAL_PATH@
|
|||||||
ifeq ($(OPENJDK_TARGET_OS), windows)
|
ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||||
# On Windows, the Visual Studio toolchain needs the PATH to be adjusted
|
# On Windows, the Visual Studio toolchain needs the PATH to be adjusted
|
||||||
# to include Visual Studio tools (this needs to be in cygwin/msys style).
|
# to include Visual Studio tools (this needs to be in cygwin/msys style).
|
||||||
|
ifeq ($(OPENJDK_TARGET_OS_ENV), windows.wsl)
|
||||||
|
export FIXPATH_PATH:=@VS_PATH_WINDOWS@
|
||||||
|
export WSLENV:=$(WSLENV):FIXPATH_PATH:DEBUG_FIXPATH
|
||||||
|
else
|
||||||
export PATH:=@VS_PATH@
|
export PATH:=@VS_PATH@
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
SYSROOT_CFLAGS := @SYSROOT_CFLAGS@
|
SYSROOT_CFLAGS := @SYSROOT_CFLAGS@
|
||||||
@@ -165,6 +170,9 @@ VERSION_FEATURE := @VERSION_FEATURE@
|
|||||||
VERSION_INTERIM := @VERSION_INTERIM@
|
VERSION_INTERIM := @VERSION_INTERIM@
|
||||||
VERSION_UPDATE := @VERSION_UPDATE@
|
VERSION_UPDATE := @VERSION_UPDATE@
|
||||||
VERSION_PATCH := @VERSION_PATCH@
|
VERSION_PATCH := @VERSION_PATCH@
|
||||||
|
VERSION_EXTRA1 := @VERSION_EXTRA1@
|
||||||
|
VERSION_EXTRA2 := @VERSION_EXTRA2@
|
||||||
|
VERSION_EXTRA3 := @VERSION_EXTRA3@
|
||||||
# The pre-release identifier (string)
|
# The pre-release identifier (string)
|
||||||
VERSION_PRE := @VERSION_PRE@
|
VERSION_PRE := @VERSION_PRE@
|
||||||
# The build number (numerical)
|
# The build number (numerical)
|
||||||
@@ -203,6 +211,9 @@ VERSION_CFLAGS := \
|
|||||||
-DVERSION_INTERIM=$(VERSION_INTERIM) \
|
-DVERSION_INTERIM=$(VERSION_INTERIM) \
|
||||||
-DVERSION_UPDATE=$(VERSION_UPDATE) \
|
-DVERSION_UPDATE=$(VERSION_UPDATE) \
|
||||||
-DVERSION_PATCH=$(VERSION_PATCH) \
|
-DVERSION_PATCH=$(VERSION_PATCH) \
|
||||||
|
-DVERSION_EXTRA1=$(VERSION_EXTRA1) \
|
||||||
|
-DVERSION_EXTRA2=$(VERSION_EXTRA2) \
|
||||||
|
-DVERSION_EXTRA3=$(VERSION_EXTRA3) \
|
||||||
-DVERSION_PRE='"$(VERSION_PRE)"' \
|
-DVERSION_PRE='"$(VERSION_PRE)"' \
|
||||||
-DVERSION_BUILD=$(VERSION_BUILD) \
|
-DVERSION_BUILD=$(VERSION_BUILD) \
|
||||||
-DVERSION_OPT='"$(VERSION_OPT)"' \
|
-DVERSION_OPT='"$(VERSION_OPT)"' \
|
||||||
@@ -222,7 +233,8 @@ ifneq ($(COMPANY_NAME),)
|
|||||||
# Only export "VENDOR" to the build if COMPANY_NAME contains a real value.
|
# Only export "VENDOR" to the build if COMPANY_NAME contains a real value.
|
||||||
# Otherwise the default value for VENDOR, which is used to set the "java.vendor"
|
# Otherwise the default value for VENDOR, which is used to set the "java.vendor"
|
||||||
# and "java.vm.vendor" properties is hard-coded into the source code (i.e. in
|
# and "java.vm.vendor" properties is hard-coded into the source code (i.e. in
|
||||||
# System.c in the jdk for "vm.vendor" and vm_version.cpp in the VM for "java.vm.vendor")
|
# VersionProps.java.template in the jdk for "vm.vendor" and
|
||||||
|
# vm_version.cpp in the VM for "java.vm.vendor")
|
||||||
ifneq ($(COMPANY_NAME), N/A)
|
ifneq ($(COMPANY_NAME), N/A)
|
||||||
VERSION_CFLAGS += -DVENDOR='"$(COMPANY_NAME)"'
|
VERSION_CFLAGS += -DVENDOR='"$(COMPANY_NAME)"'
|
||||||
endif
|
endif
|
||||||
@@ -248,10 +260,6 @@ RUNTIME_NAME=$(PRODUCT_NAME) $(PRODUCT_SUFFIX)
|
|||||||
DEBUG_LEVEL:=@DEBUG_LEVEL@
|
DEBUG_LEVEL:=@DEBUG_LEVEL@
|
||||||
HOTSPOT_DEBUG_LEVEL:=@HOTSPOT_DEBUG_LEVEL@
|
HOTSPOT_DEBUG_LEVEL:=@HOTSPOT_DEBUG_LEVEL@
|
||||||
|
|
||||||
# This is the JDK variant to build.
|
|
||||||
# The JDK variant is a name for a specific set of modules to be compiled for the JDK.
|
|
||||||
JDK_VARIANT:=@JDK_VARIANT@
|
|
||||||
|
|
||||||
# Which JVM variants to build (space-separated list)
|
# Which JVM variants to build (space-separated list)
|
||||||
JVM_VARIANTS := @JVM_VARIANTS@
|
JVM_VARIANTS := @JVM_VARIANTS@
|
||||||
JVM_VARIANT_MAIN := @JVM_VARIANT_MAIN@
|
JVM_VARIANT_MAIN := @JVM_VARIANT_MAIN@
|
||||||
@@ -272,6 +280,9 @@ VALID_JVM_VARIANTS := @VALID_JVM_VARIANTS@
|
|||||||
# Control wether Hotspot builds gtest tests
|
# Control wether Hotspot builds gtest tests
|
||||||
BUILD_GTEST := @BUILD_GTEST@
|
BUILD_GTEST := @BUILD_GTEST@
|
||||||
|
|
||||||
|
# Allow overriding the default hotspot library path
|
||||||
|
HOTSPOT_OVERRIDE_LIBPATH := @HOTSPOT_OVERRIDE_LIBPATH@
|
||||||
|
|
||||||
# Control use of precompiled header in hotspot libjvm build
|
# Control use of precompiled header in hotspot libjvm build
|
||||||
USE_PRECOMPILED_HEADER := @USE_PRECOMPILED_HEADER@
|
USE_PRECOMPILED_HEADER := @USE_PRECOMPILED_HEADER@
|
||||||
|
|
||||||
@@ -307,6 +318,8 @@ EXCLUDE_TRANSLATIONS := @EXCLUDE_TRANSLATIONS@
|
|||||||
|
|
||||||
BUILD_MANPAGES := @BUILD_MANPAGES@
|
BUILD_MANPAGES := @BUILD_MANPAGES@
|
||||||
|
|
||||||
|
BUILD_CDS_ARCHIVE := @BUILD_CDS_ARCHIVE@
|
||||||
|
|
||||||
# The boot jdk to use. This is overridden in bootcycle-spec.gmk. Make sure to keep
|
# The boot jdk to use. This is overridden in bootcycle-spec.gmk. Make sure to keep
|
||||||
# it in sync.
|
# it in sync.
|
||||||
BOOT_JDK:=@BOOT_JDK@
|
BOOT_JDK:=@BOOT_JDK@
|
||||||
@@ -351,7 +364,11 @@ ENABLE_LIBFFI_BUNDLING:=@ENABLE_LIBFFI_BUNDLING@
|
|||||||
LIBFFI_LIB_FILE:=@LIBFFI_LIB_FILE@
|
LIBFFI_LIB_FILE:=@LIBFFI_LIB_FILE@
|
||||||
GRAALUNIT_LIB := @GRAALUNIT_LIB@
|
GRAALUNIT_LIB := @GRAALUNIT_LIB@
|
||||||
|
|
||||||
PACKAGE_PATH=@PACKAGE_PATH@
|
JMH_CORE_JAR := @JMH_CORE_JAR@
|
||||||
|
JMH_GENERATOR_JAR := @JMH_GENERATOR_JAR@
|
||||||
|
JMH_JOPT_SIMPLE_JAR := @JMH_JOPT_SIMPLE_JAR@
|
||||||
|
JMH_COMMONS_MATH_JAR := @JMH_COMMONS_MATH_JAR@
|
||||||
|
JMH_VERSION := @JMH_VERSION@
|
||||||
|
|
||||||
# Source file for cacerts
|
# Source file for cacerts
|
||||||
CACERTS_FILE=@CACERTS_FILE@
|
CACERTS_FILE=@CACERTS_FILE@
|
||||||
@@ -360,6 +377,9 @@ CACERTS_FILE=@CACERTS_FILE@
|
|||||||
UNLIMITED_CRYPTO=@UNLIMITED_CRYPTO@
|
UNLIMITED_CRYPTO=@UNLIMITED_CRYPTO@
|
||||||
|
|
||||||
GCOV_ENABLED=@GCOV_ENABLED@
|
GCOV_ENABLED=@GCOV_ENABLED@
|
||||||
|
JCOV_ENABLED=@JCOV_ENABLED@
|
||||||
|
JCOV_HOME=@JCOV_HOME@
|
||||||
|
JCOV_INPUT_JDK=@JCOV_INPUT_JDK@
|
||||||
|
|
||||||
# AddressSanitizer
|
# AddressSanitizer
|
||||||
export ASAN_ENABLED:=@ASAN_ENABLED@
|
export ASAN_ENABLED:=@ASAN_ENABLED@
|
||||||
@@ -423,6 +443,10 @@ CXX_FLAG_DEPS:=@CXX_FLAG_DEPS@
|
|||||||
|
|
||||||
DISABLE_WARNING_PREFIX := @DISABLE_WARNING_PREFIX@
|
DISABLE_WARNING_PREFIX := @DISABLE_WARNING_PREFIX@
|
||||||
CFLAGS_WARNINGS_ARE_ERRORS:=@CFLAGS_WARNINGS_ARE_ERRORS@
|
CFLAGS_WARNINGS_ARE_ERRORS:=@CFLAGS_WARNINGS_ARE_ERRORS@
|
||||||
|
LDFLAGS_WARNINGS_ARE_ERRORS:=@LDFLAGS_WARNINGS_ARE_ERRORS@
|
||||||
|
DISABLED_WARNINGS := @DISABLED_WARNINGS@
|
||||||
|
DISABLED_WARNINGS_C := @DISABLED_WARNINGS_C@
|
||||||
|
DISABLED_WARNINGS_CXX := @DISABLED_WARNINGS_CXX@
|
||||||
|
|
||||||
# A global flag (true or false) determining if native warnings are considered errors.
|
# A global flag (true or false) determining if native warnings are considered errors.
|
||||||
WARNINGS_AS_ERRORS := @WARNINGS_AS_ERRORS@
|
WARNINGS_AS_ERRORS := @WARNINGS_AS_ERRORS@
|
||||||
@@ -444,6 +468,7 @@ CXXFLAGS_JDKEXE:=@CXXFLAGS_JDKEXE@
|
|||||||
LIBJSIG_HASHSTYLE_LDFLAGS := @LIBJSIG_HASHSTYLE_LDFLAGS@
|
LIBJSIG_HASHSTYLE_LDFLAGS := @LIBJSIG_HASHSTYLE_LDFLAGS@
|
||||||
LIBJSIG_NOEXECSTACK_LDFLAGS := @LIBJSIG_NOEXECSTACK_LDFLAGS@
|
LIBJSIG_NOEXECSTACK_LDFLAGS := @LIBJSIG_NOEXECSTACK_LDFLAGS@
|
||||||
|
|
||||||
|
FDLIBM_CFLAGS := @FDLIBM_CFLAGS@
|
||||||
JVM_CFLAGS := @JVM_CFLAGS@
|
JVM_CFLAGS := @JVM_CFLAGS@
|
||||||
JVM_LDFLAGS := @JVM_LDFLAGS@
|
JVM_LDFLAGS := @JVM_LDFLAGS@
|
||||||
JVM_ASFLAGS := @JVM_ASFLAGS@
|
JVM_ASFLAGS := @JVM_ASFLAGS@
|
||||||
@@ -483,11 +508,6 @@ LDCXX:=@FIXPATH@ @LDCXX@
|
|||||||
LIBCXX:=@LIBCXX@
|
LIBCXX:=@LIBCXX@
|
||||||
|
|
||||||
# Compiler and linker flags used when building native tests
|
# Compiler and linker flags used when building native tests
|
||||||
CFLAGS_TESTLIB:=@CFLAGS_TESTLIB@
|
|
||||||
CXXFLAGS_TESTLIB:=@CXXFLAGS_TESTLIB@
|
|
||||||
CFLAGS_TESTEXE:=@CFLAGS_TESTEXE@
|
|
||||||
CXXFLAGS_TESTEXE:=@CXXFLAGS_TESTEXE@
|
|
||||||
LDFLAGS_TESTLIB:=@LDFLAGS_TESTLIB@
|
|
||||||
LDFLAGS_TESTEXE:=@LDFLAGS_TESTEXE@
|
LDFLAGS_TESTEXE:=@LDFLAGS_TESTEXE@
|
||||||
|
|
||||||
# BUILD_CC/BUILD_LD is a compiler/linker that generates code that is runnable on the
|
# BUILD_CC/BUILD_LD is a compiler/linker that generates code that is runnable on the
|
||||||
@@ -534,6 +554,7 @@ COPY_DEBUG_SYMBOLS := @COPY_DEBUG_SYMBOLS@
|
|||||||
ZIP_EXTERNAL_DEBUG_SYMBOLS := @ZIP_EXTERNAL_DEBUG_SYMBOLS@
|
ZIP_EXTERNAL_DEBUG_SYMBOLS := @ZIP_EXTERNAL_DEBUG_SYMBOLS@
|
||||||
|
|
||||||
CFLAGS_DEBUG_SYMBOLS:=@CFLAGS_DEBUG_SYMBOLS@
|
CFLAGS_DEBUG_SYMBOLS:=@CFLAGS_DEBUG_SYMBOLS@
|
||||||
|
ASFLAGS_DEBUG_SYMBOLS:=@ASFLAGS_DEBUG_SYMBOLS@
|
||||||
|
|
||||||
#
|
#
|
||||||
# Compress (or not) jars
|
# Compress (or not) jars
|
||||||
@@ -716,12 +737,13 @@ EXPR:=@EXPR@
|
|||||||
FILE:=@FILE@
|
FILE:=@FILE@
|
||||||
DOT:=@DOT@
|
DOT:=@DOT@
|
||||||
HG:=@HG@
|
HG:=@HG@
|
||||||
|
GIT:=@GIT@
|
||||||
OBJCOPY:=@OBJCOPY@
|
OBJCOPY:=@OBJCOPY@
|
||||||
SETFILE:=@SETFILE@
|
SETFILE:=@SETFILE@
|
||||||
XATTR:=@XATTR@
|
XATTR:=@XATTR@
|
||||||
JT_HOME:=@JT_HOME@
|
JT_HOME:=@JT_HOME@
|
||||||
JTREGEXE:=@JTREGEXE@
|
JTREGEXE:=@JTREGEXE@
|
||||||
JIB_JAR:=@JIB_JAR@
|
JIB_HOME:=@JIB_HOME@
|
||||||
XCODEBUILD=@XCODEBUILD@
|
XCODEBUILD=@XCODEBUILD@
|
||||||
DTRACE := @DTRACE@
|
DTRACE := @DTRACE@
|
||||||
FIXPATH:=@FIXPATH@
|
FIXPATH:=@FIXPATH@
|
||||||
@@ -744,6 +766,7 @@ MSVCR_DLL:=@MSVCR_DLL@
|
|||||||
MSVCP_DLL:=@MSVCP_DLL@
|
MSVCP_DLL:=@MSVCP_DLL@
|
||||||
UCRT_DLL_DIR:=@UCRT_DLL_DIR@
|
UCRT_DLL_DIR:=@UCRT_DLL_DIR@
|
||||||
STLPORT_LIB:=@STLPORT_LIB@
|
STLPORT_LIB:=@STLPORT_LIB@
|
||||||
|
ENABLE_PANDOC:=@ENABLE_PANDOC@
|
||||||
|
|
||||||
####################################################
|
####################################################
|
||||||
#
|
#
|
||||||
@@ -825,10 +848,12 @@ OS_VERSION_MICRO:=@OS_VERSION_MICRO@
|
|||||||
# Images directory definitions
|
# Images directory definitions
|
||||||
JDK_IMAGE_SUBDIR:=jdk
|
JDK_IMAGE_SUBDIR:=jdk
|
||||||
JRE_IMAGE_SUBDIR:=jre
|
JRE_IMAGE_SUBDIR:=jre
|
||||||
|
JCOV_IMAGE_SUBDIR := jdk-jcov
|
||||||
|
|
||||||
# Colon left out to be able to override output dir for bootcycle-images
|
# Colon left out to be able to override output dir for bootcycle-images
|
||||||
JDK_IMAGE_DIR=$(IMAGES_OUTPUTDIR)/$(JDK_IMAGE_SUBDIR)
|
JDK_IMAGE_DIR=$(IMAGES_OUTPUTDIR)/$(JDK_IMAGE_SUBDIR)
|
||||||
JRE_IMAGE_DIR=$(IMAGES_OUTPUTDIR)/$(JRE_IMAGE_SUBDIR)
|
JRE_IMAGE_DIR=$(IMAGES_OUTPUTDIR)/$(JRE_IMAGE_SUBDIR)
|
||||||
|
JCOV_IMAGE_DIR = $(IMAGES_OUTPUTDIR)/$(JCOV_IMAGE_SUBDIR)
|
||||||
|
|
||||||
# Test image, as above
|
# Test image, as above
|
||||||
TEST_IMAGE_SUBDIR:=test
|
TEST_IMAGE_SUBDIR:=test
|
||||||
@@ -875,12 +900,14 @@ JDK_SYMBOLS_BUNDLE_NAME := jdk-$(BASE_NAME)_bin$(DEBUG_PART)-symbols.tar.gz
|
|||||||
TEST_DEMOS_BUNDLE_NAME := jdk-$(BASE_NAME)_bin-tests-demos$(DEBUG_PART).tar.gz
|
TEST_DEMOS_BUNDLE_NAME := jdk-$(BASE_NAME)_bin-tests-demos$(DEBUG_PART).tar.gz
|
||||||
TEST_BUNDLE_NAME := jdk-$(BASE_NAME)_bin-tests$(DEBUG_PART).tar.gz
|
TEST_BUNDLE_NAME := jdk-$(BASE_NAME)_bin-tests$(DEBUG_PART).tar.gz
|
||||||
DOCS_BUNDLE_NAME := jdk-$(BASE_NAME)_doc-api-spec$(DEBUG_PART).tar.gz
|
DOCS_BUNDLE_NAME := jdk-$(BASE_NAME)_doc-api-spec$(DEBUG_PART).tar.gz
|
||||||
|
JCOV_BUNDLE_NAME := jdk-jcov-$(BASE_NAME)_bin$(DEBUG_PART).$(JDK_BUNDLE_EXTENSION)
|
||||||
|
|
||||||
JDK_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(JDK_BUNDLE_NAME)
|
JDK_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(JDK_BUNDLE_NAME)
|
||||||
JDK_SYMBOLS_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(JDK_SYMBOLS_BUNDLE_NAME)
|
JDK_SYMBOLS_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(JDK_SYMBOLS_BUNDLE_NAME)
|
||||||
TEST_DEMOS_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(TEST_DEMOS_BUNDLE_NAME)
|
TEST_DEMOS_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(TEST_DEMOS_BUNDLE_NAME)
|
||||||
TEST_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(TEST_BUNDLE_NAME)
|
TEST_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(TEST_BUNDLE_NAME)
|
||||||
DOCS_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(DOCS_BUNDLE_NAME)
|
DOCS_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(DOCS_BUNDLE_NAME)
|
||||||
|
JCOV_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(JCOV_BUNDLE_NAME)
|
||||||
|
|
||||||
# This macro is called to allow inclusion of closed source counterparts.
|
# This macro is called to allow inclusion of closed source counterparts.
|
||||||
# Unless overridden in closed sources, it expands to nothing.
|
# Unless overridden in closed sources, it expands to nothing.
|
||||||
|
|||||||
@@ -180,7 +180,6 @@ AC_DEFUN([TOOLCHAIN_SETUP_FILENAME_PATTERNS],
|
|||||||
SHARED_LIBRARY='[$]1.dll'
|
SHARED_LIBRARY='[$]1.dll'
|
||||||
STATIC_LIBRARY='[$]1.lib'
|
STATIC_LIBRARY='[$]1.lib'
|
||||||
OBJ_SUFFIX='.obj'
|
OBJ_SUFFIX='.obj'
|
||||||
EXE_SUFFIX='.exe'
|
|
||||||
else
|
else
|
||||||
LIBRARY_PREFIX=lib
|
LIBRARY_PREFIX=lib
|
||||||
SHARED_LIBRARY_SUFFIX='.so'
|
SHARED_LIBRARY_SUFFIX='.so'
|
||||||
@@ -188,7 +187,6 @@ AC_DEFUN([TOOLCHAIN_SETUP_FILENAME_PATTERNS],
|
|||||||
SHARED_LIBRARY='lib[$]1.so'
|
SHARED_LIBRARY='lib[$]1.so'
|
||||||
STATIC_LIBRARY='lib[$]1.a'
|
STATIC_LIBRARY='lib[$]1.a'
|
||||||
OBJ_SUFFIX='.o'
|
OBJ_SUFFIX='.o'
|
||||||
EXE_SUFFIX=''
|
|
||||||
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
||||||
# For full static builds, we're overloading the SHARED_LIBRARY
|
# For full static builds, we're overloading the SHARED_LIBRARY
|
||||||
# variables in order to limit the amount of changes required.
|
# variables in order to limit the amount of changes required.
|
||||||
@@ -212,7 +210,6 @@ AC_DEFUN([TOOLCHAIN_SETUP_FILENAME_PATTERNS],
|
|||||||
AC_SUBST(SHARED_LIBRARY)
|
AC_SUBST(SHARED_LIBRARY)
|
||||||
AC_SUBST(STATIC_LIBRARY)
|
AC_SUBST(STATIC_LIBRARY)
|
||||||
AC_SUBST(OBJ_SUFFIX)
|
AC_SUBST(OBJ_SUFFIX)
|
||||||
AC_SUBST(EXE_SUFFIX)
|
|
||||||
])
|
])
|
||||||
|
|
||||||
# Determine which toolchain type to use, and make sure it is valid for this
|
# Determine which toolchain type to use, and make sure it is valid for this
|
||||||
@@ -232,6 +229,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETERMINE_TOOLCHAIN_TYPE],
|
|||||||
XCODE_VERSION_OUTPUT=`"$XCODEBUILD" -version 2>&1 | $HEAD -n 1`
|
XCODE_VERSION_OUTPUT=`"$XCODEBUILD" -version 2>&1 | $HEAD -n 1`
|
||||||
$ECHO "$XCODE_VERSION_OUTPUT" | $GREP "Xcode " > /dev/null
|
$ECHO "$XCODE_VERSION_OUTPUT" | $GREP "Xcode " > /dev/null
|
||||||
if test $? -ne 0; then
|
if test $? -ne 0; then
|
||||||
|
AC_MSG_NOTICE([xcodebuild output: $XCODE_VERSION_OUTPUT])
|
||||||
AC_MSG_ERROR([Failed to determine Xcode version.])
|
AC_MSG_ERROR([Failed to determine Xcode version.])
|
||||||
fi
|
fi
|
||||||
XCODE_MAJOR_VERSION=`$ECHO $XCODE_VERSION_OUTPUT | \
|
XCODE_MAJOR_VERSION=`$ECHO $XCODE_VERSION_OUTPUT | \
|
||||||
@@ -280,13 +278,13 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETERMINE_TOOLCHAIN_TYPE],
|
|||||||
|
|
||||||
TOOLCHAIN_CC_BINARY_clang="clang"
|
TOOLCHAIN_CC_BINARY_clang="clang"
|
||||||
TOOLCHAIN_CC_BINARY_gcc="gcc"
|
TOOLCHAIN_CC_BINARY_gcc="gcc"
|
||||||
TOOLCHAIN_CC_BINARY_microsoft="cl"
|
TOOLCHAIN_CC_BINARY_microsoft="cl$EXE_SUFFIX"
|
||||||
TOOLCHAIN_CC_BINARY_solstudio="cc"
|
TOOLCHAIN_CC_BINARY_solstudio="cc"
|
||||||
TOOLCHAIN_CC_BINARY_xlc="xlc_r"
|
TOOLCHAIN_CC_BINARY_xlc="xlc_r"
|
||||||
|
|
||||||
TOOLCHAIN_CXX_BINARY_clang="clang++"
|
TOOLCHAIN_CXX_BINARY_clang="clang++"
|
||||||
TOOLCHAIN_CXX_BINARY_gcc="g++"
|
TOOLCHAIN_CXX_BINARY_gcc="g++"
|
||||||
TOOLCHAIN_CXX_BINARY_microsoft="cl"
|
TOOLCHAIN_CXX_BINARY_microsoft="cl$EXE_SUFFIX"
|
||||||
TOOLCHAIN_CXX_BINARY_solstudio="CC"
|
TOOLCHAIN_CXX_BINARY_solstudio="CC"
|
||||||
TOOLCHAIN_CXX_BINARY_xlc="xlC_r"
|
TOOLCHAIN_CXX_BINARY_xlc="xlC_r"
|
||||||
|
|
||||||
@@ -332,9 +330,17 @@ AC_DEFUN_ONCE([TOOLCHAIN_PRE_DETECTION],
|
|||||||
if test "x$OPENJDK_BUILD_OS" = "xwindows" \
|
if test "x$OPENJDK_BUILD_OS" = "xwindows" \
|
||||||
&& test "x$TOOLCHAIN_TYPE" = "xmicrosoft"; then
|
&& test "x$TOOLCHAIN_TYPE" = "xmicrosoft"; then
|
||||||
TOOLCHAIN_SETUP_VISUAL_STUDIO_ENV
|
TOOLCHAIN_SETUP_VISUAL_STUDIO_ENV
|
||||||
|
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
|
||||||
|
# Append VS_PATH. In WSL, VS_PATH will not contain the WSL env path needed
|
||||||
|
# for using basic Unix tools, so need to keep the original PATH.
|
||||||
|
BASIC_APPEND_TO_PATH(PATH, $VS_PATH)
|
||||||
|
BASIC_APPEND_TO_PATH(WSLENV, "PATH/l:LIB:INCLUDE")
|
||||||
|
export WSLENV
|
||||||
|
else
|
||||||
# Reset path to VS_PATH. It will include everything that was on PATH at the time we
|
# Reset path to VS_PATH. It will include everything that was on PATH at the time we
|
||||||
# ran TOOLCHAIN_SETUP_VISUAL_STUDIO_ENV.
|
# ran TOOLCHAIN_SETUP_VISUAL_STUDIO_ENV.
|
||||||
PATH="$VS_PATH"
|
PATH="$VS_PATH"
|
||||||
|
fi
|
||||||
# The microsoft toolchain also requires INCLUDE and LIB to be set.
|
# The microsoft toolchain also requires INCLUDE and LIB to be set.
|
||||||
export INCLUDE="$VS_INCLUDE"
|
export INCLUDE="$VS_INCLUDE"
|
||||||
export LIB="$VS_LIB"
|
export LIB="$VS_LIB"
|
||||||
@@ -429,7 +435,7 @@ AC_DEFUN([TOOLCHAIN_EXTRACT_COMPILER_VERSION],
|
|||||||
# 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
|
||||||
COMPILER_VERSION_OUTPUT=`$COMPILER 2>&1 | $HEAD -n 1 | $TR -d '\r'`
|
COMPILER_VERSION_OUTPUT=`"$COMPILER" 2>&1 | $GREP -v 'ERROR.*UtilTranslatePathList' | $HEAD -n 1 | $TR -d '\r'`
|
||||||
# Check that this is likely to be Microsoft CL.EXE.
|
# Check that this is likely to be Microsoft CL.EXE.
|
||||||
$ECHO "$COMPILER_VERSION_OUTPUT" | $GREP "Microsoft.*Compiler" > /dev/null
|
$ECHO "$COMPILER_VERSION_OUTPUT" | $GREP "Microsoft.*Compiler" > /dev/null
|
||||||
if test $? -ne 0; then
|
if test $? -ne 0; then
|
||||||
@@ -697,7 +703,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETECT_TOOLCHAIN_CORE],
|
|||||||
# In the Microsoft toolchain we have a separate LD command "link".
|
# In the Microsoft toolchain we have a separate LD command "link".
|
||||||
# Make sure we reject /usr/bin/link (as determined in CYGWIN_LINK), which is
|
# Make sure we reject /usr/bin/link (as determined in CYGWIN_LINK), which is
|
||||||
# a cygwin program for something completely different.
|
# a cygwin program for something completely different.
|
||||||
AC_CHECK_PROG([LD], [link],[link],,, [$CYGWIN_LINK])
|
AC_CHECK_PROG([LD], [link$EXE_SUFFIX],[link$EXE_SUFFIX],,, [$CYGWIN_LINK])
|
||||||
BASIC_FIXUP_EXECUTABLE(LD)
|
BASIC_FIXUP_EXECUTABLE(LD)
|
||||||
# Verify that we indeed succeeded with this trick.
|
# Verify that we indeed succeeded with this trick.
|
||||||
AC_MSG_CHECKING([if the found link.exe is actually the Visual Studio linker])
|
AC_MSG_CHECKING([if the found link.exe is actually the Visual Studio linker])
|
||||||
@@ -749,7 +755,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETECT_TOOLCHAIN_CORE],
|
|||||||
#
|
#
|
||||||
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)
|
# The corresponding ar tool is lib.exe (used to create static libraries)
|
||||||
AC_CHECK_PROG([AR], [lib],[lib],,,)
|
AC_CHECK_PROG([AR], [lib$EXE_SUFFIX],[lib$EXE_SUFFIX],,,)
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xgcc; then
|
elif test "x$TOOLCHAIN_TYPE" = xgcc; then
|
||||||
BASIC_CHECK_TOOLS(AR, ar gcc-ar)
|
BASIC_CHECK_TOOLS(AR, ar gcc-ar)
|
||||||
else
|
else
|
||||||
@@ -773,12 +779,12 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETECT_TOOLCHAIN_EXTRA],
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||||
AC_CHECK_PROG([MT], [mt], [mt],,, [/usr/bin/mt])
|
AC_CHECK_PROG([MT], [mt$EXE_SUFFIX], [mt$EXE_SUFFIX],,, [/usr/bin/mt])
|
||||||
BASIC_FIXUP_EXECUTABLE(MT)
|
BASIC_FIXUP_EXECUTABLE(MT)
|
||||||
# Setup the resource compiler (RC)
|
# Setup the resource compiler (RC)
|
||||||
AC_CHECK_PROG([RC], [rc], [rc],,, [/usr/bin/rc])
|
AC_CHECK_PROG([RC], [rc$EXE_SUFFIX], [rc$EXE_SUFFIX],,, [/usr/bin/rc])
|
||||||
BASIC_FIXUP_EXECUTABLE(RC)
|
BASIC_FIXUP_EXECUTABLE(RC)
|
||||||
AC_CHECK_PROG([DUMPBIN], [dumpbin], [dumpbin],,,)
|
AC_CHECK_PROG([DUMPBIN], [dumpbin$EXE_SUFFIX], [dumpbin$EXE_SUFFIX],,,)
|
||||||
BASIC_FIXUP_EXECUTABLE(DUMPBIN)
|
BASIC_FIXUP_EXECUTABLE(DUMPBIN)
|
||||||
# We need to check for 'msbuild.exe' because at the place where we expect to
|
# We need to check for 'msbuild.exe' because at the place where we expect to
|
||||||
# find 'msbuild.exe' there's also a directory called 'msbuild' and configure
|
# find 'msbuild.exe' there's also a directory called 'msbuild' and configure
|
||||||
@@ -787,7 +793,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETECT_TOOLCHAIN_EXTRA],
|
|||||||
# Notice that we intentionally don't fix up the path to MSBUILD because we
|
# Notice that we intentionally don't fix up the path to MSBUILD because we
|
||||||
# will call it in a DOS shell during freetype detection on Windows (see
|
# will call it in a DOS shell during freetype detection on Windows (see
|
||||||
# 'LIB_SETUP_FREETYPE' in "libraries.m4"
|
# 'LIB_SETUP_FREETYPE' in "libraries.m4"
|
||||||
AC_CHECK_PROG([MSBUILD], [msbuild.exe], [msbuild.exe],,,)
|
AC_CHECK_PROG([MSBUILD], [msbuild$EXE_SUFFIX], [msbuild$EXE_SUFFIX],,,)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "x$OPENJDK_TARGET_OS" = xsolaris; then
|
if test "x$OPENJDK_TARGET_OS" = xsolaris; then
|
||||||
@@ -995,15 +1001,10 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_BUILD_COMPILERS],
|
|||||||
# Do some additional checks on the detected tools.
|
# Do some additional checks on the detected tools.
|
||||||
AC_DEFUN_ONCE([TOOLCHAIN_MISC_CHECKS],
|
AC_DEFUN_ONCE([TOOLCHAIN_MISC_CHECKS],
|
||||||
[
|
[
|
||||||
# The package path is used only on macosx?
|
|
||||||
# FIXME: clean this up, and/or move it elsewhere.
|
|
||||||
PACKAGE_PATH=/opt/local
|
|
||||||
AC_SUBST(PACKAGE_PATH)
|
|
||||||
|
|
||||||
# Check for extra potential brokenness.
|
# Check for extra potential brokenness.
|
||||||
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||||
# On Windows, double-check that we got the right compiler.
|
# On Windows, double-check that we got the right compiler.
|
||||||
CC_VERSION_OUTPUT=`$CC 2>&1 | $HEAD -n 1 | $TR -d '\r'`
|
CC_VERSION_OUTPUT=`$CC 2>&1 | $GREP -v 'ERROR.*UtilTranslatePathList' | $HEAD -n 1 | $TR -d '\r'`
|
||||||
COMPILER_CPU_TEST=`$ECHO $CC_VERSION_OUTPUT | $SED -n "s/^.* \(.*\)$/\1/p"`
|
COMPILER_CPU_TEST=`$ECHO $CC_VERSION_OUTPUT | $SED -n "s/^.* \(.*\)$/\1/p"`
|
||||||
if test "x$OPENJDK_TARGET_CPU" = "xx86"; then
|
if test "x$OPENJDK_TARGET_CPU" = "xx86"; then
|
||||||
if test "x$COMPILER_CPU_TEST" != "x80x86" -a "x$COMPILER_CPU_TEST" != "xx86"; then
|
if test "x$COMPILER_CPU_TEST" != "x80x86" -a "x$COMPILER_CPU_TEST" != "xx86"; then
|
||||||
@@ -1022,12 +1023,16 @@ AC_DEFUN_ONCE([TOOLCHAIN_MISC_CHECKS],
|
|||||||
# This is later checked when setting flags.
|
# This is later checked when setting flags.
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||||
|
# Check if linker has -z noexecstack.
|
||||||
|
HAS_NOEXECSTACK=`$CC -Wl,--help 2>/dev/null | $GREP 'z noexecstack'`
|
||||||
|
# This is later checked when setting flags.
|
||||||
|
fi
|
||||||
|
|
||||||
# Setup hotspot lecagy names for toolchains
|
# Setup hotspot lecagy names for toolchains
|
||||||
HOTSPOT_TOOLCHAIN_TYPE=$TOOLCHAIN_TYPE
|
HOTSPOT_TOOLCHAIN_TYPE=$TOOLCHAIN_TYPE
|
||||||
if test "x$TOOLCHAIN_TYPE" = xclang; then
|
if test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||||
HOTSPOT_TOOLCHAIN_TYPE=gcc
|
HOTSPOT_TOOLCHAIN_TYPE=gcc
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
|
||||||
HOTSPOT_TOOLCHAIN_TYPE=sparcWorks
|
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||||
HOTSPOT_TOOLCHAIN_TYPE=visCPP
|
HOTSPOT_TOOLCHAIN_TYPE=visCPP
|
||||||
fi
|
fi
|
||||||
@@ -1144,5 +1149,5 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_JIB],
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
AC_SUBST(JIB_JAR)
|
AC_SUBST(JIB_HOME)
|
||||||
])
|
])
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# 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
|
||||||
@@ -115,7 +115,7 @@ AC_DEFUN([TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT],
|
|||||||
VCVARSFILES="vc/bin/vcvars32.bat vc/auxiliary/build/vcvars32.bat"
|
VCVARSFILES="vc/bin/vcvars32.bat vc/auxiliary/build/vcvars32.bat"
|
||||||
else
|
else
|
||||||
VCVARSFILES="vc/bin/amd64/vcvars64.bat vc/bin/x86_amd64/vcvarsx86_amd64.bat \
|
VCVARSFILES="vc/bin/amd64/vcvars64.bat vc/bin/x86_amd64/vcvarsx86_amd64.bat \
|
||||||
vc/auxiliary/build/vcvarsx86_amd64.bat vc/auxiliary/build/vcvars64.bat"
|
VC/Auxiliary/Build/vcvarsx86_amd64.bat VC/Auxiliary/Build/vcvars64.bat"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
for VCVARSFILE in $VCVARSFILES; do
|
for VCVARSFILE in $VCVARSFILES; do
|
||||||
@@ -222,7 +222,6 @@ AC_DEFUN([TOOLCHAIN_FIND_VISUAL_STUDIO_BAT_FILE],
|
|||||||
[C:/Program Files/$VS_INSTALL_DIR], [well-known name])
|
[C:/Program Files/$VS_INSTALL_DIR], [well-known name])
|
||||||
TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT([${VS_VERSION}],
|
TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT([${VS_VERSION}],
|
||||||
[C:/Program Files (x86)/$VS_INSTALL_DIR], [well-known name])
|
[C:/Program Files (x86)/$VS_INSTALL_DIR], [well-known name])
|
||||||
|
|
||||||
if test "x$SDK_INSTALL_DIR" != x; then
|
if test "x$SDK_INSTALL_DIR" != x; then
|
||||||
if test "x$ProgramW6432" != x; then
|
if test "x$ProgramW6432" != x; then
|
||||||
TOOLCHAIN_CHECK_POSSIBLE_WIN_SDK_ROOT([${VS_VERSION}],
|
TOOLCHAIN_CHECK_POSSIBLE_WIN_SDK_ROOT([${VS_VERSION}],
|
||||||
@@ -339,7 +338,7 @@ AC_DEFUN([TOOLCHAIN_SETUP_VISUAL_STUDIO_ENV],
|
|||||||
[
|
[
|
||||||
# Store path to cygwin link.exe to help excluding it when searching for
|
# Store path to cygwin link.exe to help excluding it when searching for
|
||||||
# VS linker. This must be done before changing the PATH when looking for VS.
|
# VS linker. This must be done before changing the PATH when looking for VS.
|
||||||
AC_PATH_PROG(CYGWIN_LINK, link)
|
AC_PATH_PROG(CYGWIN_LINK, link.exe)
|
||||||
if test "x$CYGWIN_LINK" != x; then
|
if test "x$CYGWIN_LINK" != x; then
|
||||||
AC_MSG_CHECKING([if the first found link.exe is actually the Cygwin link tool])
|
AC_MSG_CHECKING([if the first found link.exe is actually the Cygwin link tool])
|
||||||
"$CYGWIN_LINK" --version > /dev/null
|
"$CYGWIN_LINK" --version > /dev/null
|
||||||
@@ -372,8 +371,13 @@ AC_DEFUN([TOOLCHAIN_SETUP_VISUAL_STUDIO_ENV],
|
|||||||
# Instead create a shell script which will set the relevant variables when run.
|
# Instead create a shell script which will set the relevant variables when run.
|
||||||
WINPATH_VS_ENV_CMD="$VS_ENV_CMD"
|
WINPATH_VS_ENV_CMD="$VS_ENV_CMD"
|
||||||
BASIC_WINDOWS_REWRITE_AS_WINDOWS_MIXED_PATH([WINPATH_VS_ENV_CMD])
|
BASIC_WINDOWS_REWRITE_AS_WINDOWS_MIXED_PATH([WINPATH_VS_ENV_CMD])
|
||||||
|
|
||||||
|
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
|
||||||
|
WINPATH_BASH="bash"
|
||||||
|
else
|
||||||
WINPATH_BASH="$BASH"
|
WINPATH_BASH="$BASH"
|
||||||
BASIC_WINDOWS_REWRITE_AS_WINDOWS_MIXED_PATH([WINPATH_BASH])
|
BASIC_WINDOWS_REWRITE_AS_WINDOWS_MIXED_PATH([WINPATH_BASH])
|
||||||
|
fi
|
||||||
|
|
||||||
# Generate a DOS batch file which runs $VS_ENV_CMD, and then creates a shell
|
# Generate a DOS batch file which runs $VS_ENV_CMD, and then creates a shell
|
||||||
# script (executable by bash) that will setup the important variables.
|
# script (executable by bash) that will setup the important variables.
|
||||||
@@ -381,10 +385,30 @@ AC_DEFUN([TOOLCHAIN_SETUP_VISUAL_STUDIO_ENV],
|
|||||||
$ECHO "@echo off" > $EXTRACT_VC_ENV_BAT_FILE
|
$ECHO "@echo off" > $EXTRACT_VC_ENV_BAT_FILE
|
||||||
# This will end up something like:
|
# This will end up something like:
|
||||||
# call C:/progra~2/micros~2.0/vc/bin/amd64/vcvars64.bat
|
# call C:/progra~2/micros~2.0/vc/bin/amd64/vcvars64.bat
|
||||||
$ECHO "call $WINPATH_VS_ENV_CMD $VS_ENV_ARGS" >> $EXTRACT_VC_ENV_BAT_FILE
|
$ECHO "call \"$WINPATH_VS_ENV_CMD\" $VS_ENV_ARGS" >> $EXTRACT_VC_ENV_BAT_FILE
|
||||||
# In some cases, the VS_ENV_CMD will change directory, change back so
|
# In some cases, the VS_ENV_CMD will change directory, change back so
|
||||||
# the set-vs-env.sh ends up in the right place.
|
# the set-vs-env.sh ends up in the right place.
|
||||||
$ECHO 'cd %~dp0' >> $EXTRACT_VC_ENV_BAT_FILE
|
$ECHO 'cd %~dp0' >> $EXTRACT_VC_ENV_BAT_FILE
|
||||||
|
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
|
||||||
|
# These will end up something like:
|
||||||
|
# echo VS_PATH=\"$PATH\" > set-vs-env.sh
|
||||||
|
# The trailing space for everyone except PATH is no typo, but is needed due
|
||||||
|
# to trailing \ in the Windows paths. These will be stripped later.
|
||||||
|
# Trying pure CMD extract. This results in windows paths that need to
|
||||||
|
# be converted post extraction, but a simpler script.
|
||||||
|
$ECHO 'echo VS_PATH="%PATH%" > set-vs-env.sh' \
|
||||||
|
>> $EXTRACT_VC_ENV_BAT_FILE
|
||||||
|
$ECHO 'echo VS_INCLUDE="%INCLUDE% " >> set-vs-env.sh' \
|
||||||
|
>> $EXTRACT_VC_ENV_BAT_FILE
|
||||||
|
$ECHO 'echo VS_LIB="%LIB% " >> set-vs-env.sh' \
|
||||||
|
>> $EXTRACT_VC_ENV_BAT_FILE
|
||||||
|
$ECHO 'echo VCINSTALLDIR="%VCINSTALLDIR% " >> set-vs-env.sh' \
|
||||||
|
>> $EXTRACT_VC_ENV_BAT_FILE
|
||||||
|
$ECHO 'echo WindowsSdkDir="%WindowsSdkDir% " >> set-vs-env.sh' \
|
||||||
|
>> $EXTRACT_VC_ENV_BAT_FILE
|
||||||
|
$ECHO 'echo WINDOWSSDKDIR="%WINDOWSSDKDIR% " >> set-vs-env.sh' \
|
||||||
|
>> $EXTRACT_VC_ENV_BAT_FILE
|
||||||
|
else
|
||||||
# These will end up something like:
|
# These will end up something like:
|
||||||
# C:/CygWin/bin/bash -c 'echo VS_PATH=\"$PATH\" > localdevenv.sh
|
# C:/CygWin/bin/bash -c 'echo VS_PATH=\"$PATH\" > localdevenv.sh
|
||||||
# The trailing space for everyone except PATH is no typo, but is needed due
|
# The trailing space for everyone except PATH is no typo, but is needed due
|
||||||
@@ -401,21 +425,25 @@ AC_DEFUN([TOOLCHAIN_SETUP_VISUAL_STUDIO_ENV],
|
|||||||
>> $EXTRACT_VC_ENV_BAT_FILE
|
>> $EXTRACT_VC_ENV_BAT_FILE
|
||||||
$ECHO "$WINPATH_BASH -c 'echo WINDOWSSDKDIR="'\"$WINDOWSSDKDIR \" >> set-vs-env.sh' \
|
$ECHO "$WINPATH_BASH -c 'echo WINDOWSSDKDIR="'\"$WINDOWSSDKDIR \" >> set-vs-env.sh' \
|
||||||
>> $EXTRACT_VC_ENV_BAT_FILE
|
>> $EXTRACT_VC_ENV_BAT_FILE
|
||||||
|
fi
|
||||||
|
|
||||||
# Now execute the newly created bat file.
|
# Now execute the newly created bat file.
|
||||||
# The | cat is to stop SetEnv.Cmd to mess with system colors on msys.
|
# The | cat is to stop SetEnv.Cmd to mess with system colors on msys.
|
||||||
# Change directory so we don't need to mess with Windows paths in redirects.
|
# Change directory so we don't need to mess with Windows paths in redirects.
|
||||||
cd $VS_ENV_TMP_DIR
|
cd $VS_ENV_TMP_DIR
|
||||||
cmd /c extract-vs-env.bat | $CAT
|
$CMD /c extract-vs-env.bat | $CAT
|
||||||
cd $CURDIR
|
cd $CURDIR
|
||||||
|
|
||||||
if test ! -s $VS_ENV_TMP_DIR/set-vs-env.sh; then
|
if test ! -s $VS_ENV_TMP_DIR/set-vs-env.sh; then
|
||||||
AC_MSG_NOTICE([Could not succesfully extract the envionment variables needed for the VS setup.])
|
AC_MSG_NOTICE([Could not succesfully extract the environment variables needed for the VS setup.])
|
||||||
AC_MSG_NOTICE([Try setting --with-tools-dir to the VC/bin directory within the VS installation])
|
AC_MSG_NOTICE([Try setting --with-tools-dir to the VC/bin directory within the VS installation])
|
||||||
AC_MSG_NOTICE([or run "bash.exe -l" from a VS command prompt and then run configure from there.])
|
AC_MSG_NOTICE([or run "bash.exe -l" from a VS command prompt and then run configure from there.])
|
||||||
AC_MSG_ERROR([Cannot continue])
|
AC_MSG_ERROR([Cannot continue])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Remove windows line endings
|
||||||
|
$SED -i -e 's|\r||g' $VS_ENV_TMP_DIR/set-vs-env.sh
|
||||||
|
|
||||||
# Now set all paths and other env variables. This will allow the rest of
|
# Now set all paths and other env variables. This will allow the rest of
|
||||||
# the configure script to find and run the compiler in the proper way.
|
# the configure script to find and run the compiler in the proper way.
|
||||||
AC_MSG_NOTICE([Setting extracted environment variables])
|
AC_MSG_NOTICE([Setting extracted environment variables])
|
||||||
@@ -455,9 +483,29 @@ AC_DEFUN([TOOLCHAIN_SETUP_VISUAL_STUDIO_ENV],
|
|||||||
AC_SUBST(VS_INCLUDE)
|
AC_SUBST(VS_INCLUDE)
|
||||||
AC_SUBST(VS_LIB)
|
AC_SUBST(VS_LIB)
|
||||||
|
|
||||||
# Convert VS_INCLUDE into SYSROOT_CFLAGS
|
|
||||||
OLDIFS="$IFS"
|
OLDIFS="$IFS"
|
||||||
IFS=";"
|
IFS=";"
|
||||||
|
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
|
||||||
|
# Convert VS_PATH to unix style
|
||||||
|
VS_PATH_WINDOWS="$VS_PATH"
|
||||||
|
VS_PATH=""
|
||||||
|
for i in $VS_PATH_WINDOWS; do
|
||||||
|
path=$i
|
||||||
|
# Only process non-empty elements
|
||||||
|
if test "x$path" != x; then
|
||||||
|
IFS="$OLDIFS"
|
||||||
|
# Check that directory exists before calling fixup_path
|
||||||
|
testpath=$path
|
||||||
|
BASIC_WINDOWS_REWRITE_AS_UNIX_PATH([testpath])
|
||||||
|
if test -d "$testpath"; then
|
||||||
|
BASIC_FIXUP_PATH([path])
|
||||||
|
BASIC_APPEND_TO_PATH(VS_PATH, $path)
|
||||||
|
fi
|
||||||
|
IFS=";"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
# Convert VS_INCLUDE into SYSROOT_CFLAGS
|
||||||
for i in $VS_INCLUDE; do
|
for i in $VS_INCLUDE; do
|
||||||
ipath=$i
|
ipath=$i
|
||||||
# Only process non-empty elements
|
# Only process non-empty elements
|
||||||
@@ -490,6 +538,8 @@ AC_DEFUN([TOOLCHAIN_SETUP_VISUAL_STUDIO_ENV],
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
IFS="$OLDIFS"
|
IFS="$OLDIFS"
|
||||||
|
|
||||||
|
AC_SUBST(VS_PATH_WINDOWS)
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
AC_MSG_RESULT([not found])
|
AC_MSG_RESULT([not found])
|
||||||
@@ -693,7 +743,7 @@ AC_DEFUN([TOOLCHAIN_SETUP_VS_RUNTIME_DLLS],
|
|||||||
if test "x$USE_UCRT" = "xtrue"; then
|
if test "x$USE_UCRT" = "xtrue"; then
|
||||||
AC_MSG_CHECKING([for UCRT DLL dir])
|
AC_MSG_CHECKING([for UCRT DLL dir])
|
||||||
if test "x$with_ucrt_dll_dir" != x; then
|
if test "x$with_ucrt_dll_dir" != x; then
|
||||||
if test -z "$(ls -d "$with_ucrt_dll_dir/*.dll" 2> /dev/null)"; then
|
if test -z "$(ls -d $with_ucrt_dll_dir/*.dll 2> /dev/null)"; then
|
||||||
AC_MSG_RESULT([no])
|
AC_MSG_RESULT([no])
|
||||||
AC_MSG_ERROR([Could not find any dlls in $with_ucrt_dll_dir])
|
AC_MSG_ERROR([Could not find any dlls in $with_ucrt_dll_dir])
|
||||||
else
|
else
|
||||||
@@ -713,11 +763,19 @@ AC_DEFUN([TOOLCHAIN_SETUP_VS_RUNTIME_DLLS],
|
|||||||
fi
|
fi
|
||||||
UCRT_DLL_DIR="$CYGWIN_WINDOWSSDKDIR/Redist/ucrt/DLLs/$dll_subdir"
|
UCRT_DLL_DIR="$CYGWIN_WINDOWSSDKDIR/Redist/ucrt/DLLs/$dll_subdir"
|
||||||
if test -z "$(ls -d "$UCRT_DLL_DIR/"*.dll 2> /dev/null)"; then
|
if test -z "$(ls -d "$UCRT_DLL_DIR/"*.dll 2> /dev/null)"; then
|
||||||
|
# Try with version subdir
|
||||||
|
UCRT_DLL_DIR="`ls -d $CYGWIN_WINDOWSSDKDIR/Redist/*/ucrt/DLLs/$dll_subdir \
|
||||||
|
2> /dev/null | $SORT -d | $HEAD -n1`"
|
||||||
|
if test -z "$UCRT_DLL_DIR" \
|
||||||
|
|| test -z "$(ls -d "$UCRT_DLL_DIR/"*.dll 2> /dev/null)"; then
|
||||||
AC_MSG_RESULT([no])
|
AC_MSG_RESULT([no])
|
||||||
AC_MSG_ERROR([Could not find any dlls in $UCRT_DLL_DIR])
|
AC_MSG_ERROR([Could not find any dlls in $UCRT_DLL_DIR])
|
||||||
else
|
else
|
||||||
AC_MSG_RESULT($UCRT_DLL_DIR)
|
AC_MSG_RESULT($UCRT_DLL_DIR)
|
||||||
fi
|
fi
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT($UCRT_DLL_DIR)
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
UCRT_DLL_DIR=
|
UCRT_DLL_DIR=
|
||||||
|
|||||||
@@ -25,14 +25,17 @@
|
|||||||
|
|
||||||
# Default version numbers to use unless overridden by configure
|
# Default version numbers to use unless overridden by configure
|
||||||
|
|
||||||
DEFAULT_VERSION_FEATURE=11
|
DEFAULT_VERSION_FEATURE=13
|
||||||
DEFAULT_VERSION_INTERIM=0
|
DEFAULT_VERSION_INTERIM=0
|
||||||
DEFAULT_VERSION_UPDATE=0
|
DEFAULT_VERSION_UPDATE=0
|
||||||
DEFAULT_VERSION_PATCH=0
|
DEFAULT_VERSION_PATCH=0
|
||||||
DEFAULT_VERSION_DATE=2018-09-25
|
DEFAULT_VERSION_EXTRA1=0
|
||||||
DEFAULT_VERSION_CLASSFILE_MAJOR=55 # "`$EXPR $DEFAULT_VERSION_FEATURE + 44`"
|
DEFAULT_VERSION_EXTRA2=0
|
||||||
|
DEFAULT_VERSION_EXTRA3=0
|
||||||
|
DEFAULT_VERSION_DATE=2019-09-17
|
||||||
|
DEFAULT_VERSION_CLASSFILE_MAJOR=57 # "`$EXPR $DEFAULT_VERSION_FEATURE + 44`"
|
||||||
DEFAULT_VERSION_CLASSFILE_MINOR=0
|
DEFAULT_VERSION_CLASSFILE_MINOR=0
|
||||||
DEFAULT_ACCEPTABLE_BOOT_VERSIONS="10 11"
|
DEFAULT_ACCEPTABLE_BOOT_VERSIONS="11 12 13"
|
||||||
|
|
||||||
LAUNCHER_NAME=openjdk
|
LAUNCHER_NAME=openjdk
|
||||||
PRODUCT_NAME=OpenJDK
|
PRODUCT_NAME=OpenJDK
|
||||||
@@ -40,6 +43,8 @@ PRODUCT_SUFFIX="Runtime Environment"
|
|||||||
JDK_RC_PLATFORM_NAME=Platform
|
JDK_RC_PLATFORM_NAME=Platform
|
||||||
COMPANY_NAME=N/A
|
COMPANY_NAME=N/A
|
||||||
HOTSPOT_VM_DISTRO="OpenJDK"
|
HOTSPOT_VM_DISTRO="OpenJDK"
|
||||||
|
VENDOR_URL=https://openjdk.java.net/
|
||||||
|
VENDOR_URL_BUG=https://bugreport.java.com/bugreport/
|
||||||
|
|
||||||
# Might need better names for these
|
# Might need better names for these
|
||||||
MACOSX_BUNDLE_NAME_BASE="OpenJDK"
|
MACOSX_BUNDLE_NAME_BASE="OpenJDK"
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2017, 2018, 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
|
||||||
@@ -72,6 +72,18 @@ ALL_NAMED_TESTS += $(JTREG_TEST_GROUPS)
|
|||||||
# Add Gtest
|
# Add Gtest
|
||||||
ALL_NAMED_TESTS += gtest
|
ALL_NAMED_TESTS += gtest
|
||||||
|
|
||||||
|
# Add microbenchmarks
|
||||||
|
ALL_NAMED_TESTS += micro
|
||||||
|
|
||||||
|
# Find make test targets
|
||||||
|
MAKE_TEST_TARGETS := $(shell $(MAKE) -s --no-print-directory $(MAKE_ARGS) \
|
||||||
|
SPEC=$(SPEC) -f $(TOPDIR)/test/make/TestMake.gmk print-targets)
|
||||||
|
|
||||||
|
ALL_NAMED_TESTS += $(addprefix make-, $(MAKE_TEST_TARGETS))
|
||||||
|
|
||||||
|
# Add special tests
|
||||||
|
ALL_NAMED_TESTS += failure-handler make
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
endif # _FIND_TESTS_GMK
|
endif # _FIND_TESTS_GMK
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# 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
|
||||||
@@ -43,6 +43,7 @@ FALSE_FIND_PATTERN:=-name FILE_NAME_THAT_DOESNT_EXIST
|
|||||||
# For this to work, the source files must exist when the makefile is
|
# For this to work, the source files must exist when the makefile is
|
||||||
# parsed.
|
# parsed.
|
||||||
# SRCS:=List of directories in where to find files to add to archive
|
# SRCS:=List of directories in where to find files to add to archive
|
||||||
|
# BIN:=Directory where to store build control files
|
||||||
# SUFFIXES:=File suffixes to include in jar
|
# SUFFIXES:=File suffixes to include in jar
|
||||||
# INCLUDES:=List of directories/packages in SRCS that should be included
|
# INCLUDES:=List of directories/packages in SRCS that should be included
|
||||||
# EXCLUDES:=List of directories/packages in SRCS that should be excluded
|
# EXCLUDES:=List of directories/packages in SRCS that should be excluded
|
||||||
@@ -62,10 +63,11 @@ define SetupJarArchiveBody
|
|||||||
|
|
||||||
$1_JARMAIN:=$(strip $$($1_JARMAIN))
|
$1_JARMAIN:=$(strip $$($1_JARMAIN))
|
||||||
$1_JARNAME:=$$(notdir $$($1_JAR))
|
$1_JARNAME:=$$(notdir $$($1_JAR))
|
||||||
$1_MANIFEST_FILE:=$$(dir $$($1_JAR))_the.$$($1_JARNAME)_manifest
|
$1_JAR_OUTPUT_DIR := $$(patsubst %/, %, $$(dir $$($1_JAR)))
|
||||||
$1_DELETESS_FILE:=$$(dir $$($1_JAR))_the.$$($1_JARNAME)_deletess
|
$$(call SetIfEmpty, $1_BIN, $$($1_JAR_OUTPUT_DIR))
|
||||||
$1_DELETES_FILE:=$$(dir $$($1_JAR))_the.$$($1_JARNAME)_deletes
|
$1_MANIFEST_FILE:=$$($1_BIN)/_the.$$($1_JARNAME)_manifest
|
||||||
$1_BIN:=$$(dir $$($1_JAR))
|
$1_DELETESS_FILE:=$$($1_BIN)/_the.$$($1_JARNAME)_deletess
|
||||||
|
$1_DELETES_FILE:=$$($1_BIN)/_the.$$($1_JARNAME)_deletes
|
||||||
$$(call SetIfEmpty, $1_JAR_CMD, $$(JAR))
|
$$(call SetIfEmpty, $1_JAR_CMD, $$(JAR))
|
||||||
|
|
||||||
ifeq (,$$($1_SUFFIXES))
|
ifeq (,$$($1_SUFFIXES))
|
||||||
@@ -231,11 +233,12 @@ define SetupJarArchiveBody
|
|||||||
$1_VARDEPS := $$($1_JAR_CMD) $$($1_JAR_CREATE_OPTIONS) $$($1_MANIFEST) \
|
$1_VARDEPS := $$($1_JAR_CMD) $$($1_JAR_CREATE_OPTIONS) $$($1_MANIFEST) \
|
||||||
$$($1_JARMAIN) $$($1_EXTRA_MANIFEST_ATTR) $$($1_ORIG_DEPS) $$($1_SRCS) \
|
$$($1_JARMAIN) $$($1_EXTRA_MANIFEST_ATTR) $$($1_ORIG_DEPS) $$($1_SRCS) \
|
||||||
$$($1_INCLUDES) $$($1_EXCLUDES) $$($1_EXCLUDE_FILES) $$($1_EXTRA_FILES)
|
$$($1_INCLUDES) $$($1_EXCLUDES) $$($1_EXCLUDE_FILES) $$($1_EXTRA_FILES)
|
||||||
$1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, $$(dir $$($1_JAR))_the.$$($1_JARNAME).vardeps)
|
$1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, $$($1_BIN)/_the.$$($1_JARNAME).vardeps)
|
||||||
|
|
||||||
# Here is the rule that creates/updates the jar file.
|
# Here is the rule that creates/updates the jar file.
|
||||||
$$($1_JAR) : $$($1_DEPENDENCIES) $$($1_MANIFEST) $$($1_VARDEPS_FILE)
|
$$($1_JAR) : $$($1_DEPENDENCIES) $$($1_MANIFEST) $$($1_VARDEPS_FILE)
|
||||||
$(MKDIR) -p $$($1_BIN)
|
$$(call MakeTargetDir)
|
||||||
|
$$(call MakeDir, $$($1_BIN))
|
||||||
$$($1_GREP_INCLUDE_OUTPUT)
|
$$($1_GREP_INCLUDE_OUTPUT)
|
||||||
$$($1_GREP_EXCLUDE_OUTPUT)
|
$$($1_GREP_EXCLUDE_OUTPUT)
|
||||||
# If the vardeps file is part of the newer prereq list, it means that
|
# If the vardeps file is part of the newer prereq list, it means that
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -76,8 +76,8 @@ define add_file_to_copy
|
|||||||
$1_COPY_$$($2_TARGET) := 1
|
$1_COPY_$$($2_TARGET) := 1
|
||||||
# Now we can setup the dependency that will trigger the copying.
|
# Now we can setup the dependency that will trigger the copying.
|
||||||
$$($1_BIN)$$($1_MODULE_SUBDIR)$$($2_TARGET) : $2
|
$$($1_BIN)$$($1_MODULE_SUBDIR)$$($2_TARGET) : $2
|
||||||
$(MKDIR) -p $$(@D)
|
$$(call LogInfo, Copying $$(patsubst $(OUTPUTDIR)/%,%, $$@))
|
||||||
$(CP) $$< $$@
|
$$(install-file)
|
||||||
$(CHMOD) -f ug+w $$@
|
$(CHMOD) -f ug+w $$@
|
||||||
|
|
||||||
# And do not forget this target
|
# And do not forget this target
|
||||||
@@ -120,7 +120,8 @@ define add_file_to_clean
|
|||||||
ifneq ($$($1_CLEAN_$$($2_TARGET)), 1)
|
ifneq ($$($1_CLEAN_$$($2_TARGET)), 1)
|
||||||
$1_CLEAN_$$($2_TARGET) := 1
|
$1_CLEAN_$$($2_TARGET) := 1
|
||||||
$$($1_BIN)$$($1_MODULE_SUBDIR)$$($2_TARGET) : $2
|
$$($1_BIN)$$($1_MODULE_SUBDIR)$$($2_TARGET) : $2
|
||||||
$(MKDIR) -p $$(@D)
|
$$(call LogInfo, Cleaning $$(patsubst $(OUTPUTDIR)/%,%, $$@))
|
||||||
|
$$(call MakeTargetDir)
|
||||||
export LC_ALL=C ; ( $(CAT) $$< && $(ECHO) "" ) \
|
export LC_ALL=C ; ( $(CAT) $$< && $(ECHO) "" ) \
|
||||||
| $(SED) -e 's/\([^\\]\):/\1\\:/g' -e 's/\([^\\]\)=/\1\\=/g' \
|
| $(SED) -e 's/\([^\\]\):/\1\\:/g' -e 's/\([^\\]\)=/\1\\=/g' \
|
||||||
-e 's/\([^\\]\)!/\1\\!/g' -e 's/^[ ]*#.*/#/g' \
|
-e 's/\([^\\]\)!/\1\\!/g' -e 's/^[ ]*#.*/#/g' \
|
||||||
@@ -422,7 +423,7 @@ define SetupJavaCompilationBody
|
|||||||
$1_HEADERS_ARG := -h $$($1_HEADERS).$1.tmp
|
$1_HEADERS_ARG := -h $$($1_HEADERS).$1.tmp
|
||||||
|
|
||||||
$$($1_HEADERS)/_the.$1_headers: $$($1_COMPILE_TARGET)
|
$$($1_HEADERS)/_the.$1_headers: $$($1_COMPILE_TARGET)
|
||||||
$(MKDIR) -p $$(@D)
|
$$(call MakeTargetDir)
|
||||||
if [ -d "$$($1_HEADERS).$1.tmp" ]; then \
|
if [ -d "$$($1_HEADERS).$1.tmp" ]; then \
|
||||||
for f in `$(CD) $$($1_HEADERS).$1.tmp && $(FIND) . -type f`; do \
|
for f in `$(CD) $$($1_HEADERS).$1.tmp && $(FIND) . -type f`; do \
|
||||||
if [ ! -f "$$($1_HEADERS)/$$$$f" ] \
|
if [ ! -f "$$($1_HEADERS)/$$$$f" ] \
|
||||||
|
|||||||
@@ -47,6 +47,29 @@ FindSrcDirsForComponent += \
|
|||||||
$(TOPDIR)/src/$(strip $1)/$(OPENJDK_TARGET_OS_TYPE)/native/$(strip $2) \
|
$(TOPDIR)/src/$(strip $1)/$(OPENJDK_TARGET_OS_TYPE)/native/$(strip $2) \
|
||||||
$(TOPDIR)/src/$(strip $1)/share/native/$(strip $2)))
|
$(TOPDIR)/src/$(strip $1)/share/native/$(strip $2)))
|
||||||
|
|
||||||
|
# Find a library
|
||||||
|
# Param 1 - module name
|
||||||
|
# Param 2 - library name
|
||||||
|
# Param 3 - optional subdir for library
|
||||||
|
FindLib = \
|
||||||
|
$(call FindLibDirForModule, \
|
||||||
|
$(strip $1))$(strip $3)/$(LIBRARY_PREFIX)$(strip $2)$(SHARED_LIBRARY_SUFFIX)
|
||||||
|
|
||||||
|
# Find a static library
|
||||||
|
# Param 1 - module name
|
||||||
|
# Param 2 - library name
|
||||||
|
# Param 3 - optional subdir for library
|
||||||
|
FindStaticLib = \
|
||||||
|
$(addprefix $(SUPPORT_OUTPUTDIR)/native/, \
|
||||||
|
$(strip $1)$(strip $3)/$(LIBRARY_PREFIX)$(strip $2)$(STATIC_LIBRARY_SUFFIX))
|
||||||
|
|
||||||
|
# If only generating compile_commands.json, make these return empty to avoid
|
||||||
|
# declaring dependencies.
|
||||||
|
ifeq ($(GENERATE_COMPILE_COMMANDS_ONLY), true)
|
||||||
|
FindLib =
|
||||||
|
FindStaticLib =
|
||||||
|
endif
|
||||||
|
|
||||||
GetJavaHeaderDir = \
|
GetJavaHeaderDir = \
|
||||||
$(wildcard $(SUPPORT_OUTPUTDIR)/headers/$(strip $1))
|
$(wildcard $(SUPPORT_OUTPUTDIR)/headers/$(strip $1))
|
||||||
|
|
||||||
|
|||||||
@@ -347,6 +347,7 @@ SOURCE_REVISION_TRACKER := $(SUPPORT_OUTPUTDIR)/src-rev/source-revision-tracker
|
|||||||
FindAllReposAbs = \
|
FindAllReposAbs = \
|
||||||
$(strip $(sort $(dir $(filter-out $(TOPDIR)/build/%, $(wildcard \
|
$(strip $(sort $(dir $(filter-out $(TOPDIR)/build/%, $(wildcard \
|
||||||
$(addprefix $(TOPDIR)/, .hg */.hg */*/.hg */*/*/.hg */*/*/*/.hg) \
|
$(addprefix $(TOPDIR)/, .hg */.hg */*/.hg */*/*/.hg */*/*/*/.hg) \
|
||||||
|
$(addprefix $(TOPDIR)/, .git */.git */*/.git */*/*/.git */*/*/*/.git) \
|
||||||
)))))
|
)))))
|
||||||
|
|
||||||
# Locate all hg repositories included in the forest, as relative paths
|
# Locate all hg repositories included in the forest, as relative paths
|
||||||
@@ -655,8 +656,11 @@ dups = \
|
|||||||
|
|
||||||
# String equals
|
# String equals
|
||||||
equals = \
|
equals = \
|
||||||
|
$(if $(strip $1)$(strip $2),$(strip \
|
||||||
$(and $(findstring $(strip $1),$(strip $2)),\
|
$(and $(findstring $(strip $1),$(strip $2)),\
|
||||||
$(findstring $(strip $2),$(strip $1)))
|
$(findstring $(strip $2),$(strip $1)))), \
|
||||||
|
true \
|
||||||
|
)
|
||||||
|
|
||||||
# Remove a whole list of prefixes
|
# Remove a whole list of prefixes
|
||||||
# $1 - List of prefixes
|
# $1 - List of prefixes
|
||||||
@@ -841,7 +845,7 @@ endef
|
|||||||
# Parameter 1 is the name of the rule, and is also the name of the variable.
|
# Parameter 1 is the name of the rule, and is also the name of the variable.
|
||||||
#
|
#
|
||||||
# Remaining parameters are named arguments. These include:
|
# Remaining parameters are named arguments. These include:
|
||||||
# KEYWORDS A list of valid keywords
|
# SINGLE_KEYWORDS A list of valid keywords with single string values
|
||||||
# STRING_KEYWORDS A list of valid keywords, processed as string. This means
|
# STRING_KEYWORDS A list of valid keywords, processed as string. This means
|
||||||
# that '%20' will be replaced by ' ' to allow for multi-word strings.
|
# that '%20' will be replaced by ' ' to allow for multi-word strings.
|
||||||
#
|
#
|
||||||
@@ -855,7 +859,7 @@ define ParseKeywordVariableBody
|
|||||||
$$(eval mangled_part_eval := $$(call DoubleDollar, $$(mangled_part))) \
|
$$(eval mangled_part_eval := $$(call DoubleDollar, $$(mangled_part))) \
|
||||||
$$(eval part := $$$$(subst ||||,$$$$(SPACE),$$$$(mangled_part_eval))) \
|
$$(eval part := $$$$(subst ||||,$$$$(SPACE),$$$$(mangled_part_eval))) \
|
||||||
$$(eval $1_NO_MATCH := true) \
|
$$(eval $1_NO_MATCH := true) \
|
||||||
$$(foreach keyword, $$($1_KEYWORDS), \
|
$$(foreach keyword, $$($1_SINGLE_KEYWORDS), \
|
||||||
$$(eval keyword_eval := $$(call DoubleDollar, $$(keyword))) \
|
$$(eval keyword_eval := $$(call DoubleDollar, $$(keyword))) \
|
||||||
$$(if $$(filter $$(keyword)=%, $$(part)), \
|
$$(if $$(filter $$(keyword)=%, $$(part)), \
|
||||||
$$(eval $(strip $1)_$$$$(keyword_eval) := $$$$(strip $$$$(patsubst $$$$(keyword_eval)=%, %, $$$$(part)))) \
|
$$(eval $(strip $1)_$$$$(keyword_eval) := $$$$(strip $$$$(patsubst $$$$(keyword_eval)=%, %, $$$$(part)))) \
|
||||||
@@ -870,11 +874,11 @@ define ParseKeywordVariableBody
|
|||||||
) \
|
) \
|
||||||
) \
|
) \
|
||||||
$$(if $$($1_NO_MATCH), \
|
$$(if $$($1_NO_MATCH), \
|
||||||
$$(if $$(filter $$(part), $$($1_KEYWORDS) $$($1_STRING_KEYWORDS)), \
|
$$(if $$(filter $$(part), $$($1_SINGLE_KEYWORDS) $$($1_STRING_KEYWORDS)), \
|
||||||
$$(info Keyword $$(part) for $1 needs to be assigned a value.) \
|
$$(info Keyword $$(part) for $1 needs to be assigned a value.) \
|
||||||
, \
|
, \
|
||||||
$$(info $$(part) is not a valid keyword for $1.) \
|
$$(info $$(part) is not a valid keyword for $1.) \
|
||||||
$$(info Valid keywords: $$($1_KEYWORDS) $$($1_STRING_KEYWORDS).) \
|
$$(info Valid keywords: $$($1_SINGLE_KEYWORDS) $$($1_STRING_KEYWORDS).) \
|
||||||
) \
|
) \
|
||||||
$$(error Cannot continue) \
|
$$(error Cannot continue) \
|
||||||
) \
|
) \
|
||||||
|
|||||||
@@ -247,6 +247,8 @@ SRC_SUBDIRS += share/classes
|
|||||||
|
|
||||||
SPEC_SUBDIRS += share/specs
|
SPEC_SUBDIRS += share/specs
|
||||||
|
|
||||||
|
MAN_SUBDIRS += share/man
|
||||||
|
|
||||||
# Find all module-info.java files for the current build target platform and
|
# Find all module-info.java files for the current build target platform and
|
||||||
# configuration.
|
# configuration.
|
||||||
# Param 1 - Module to find for, set to * for finding all
|
# Param 1 - Module to find for, set to * for finding all
|
||||||
@@ -305,6 +307,12 @@ FindModuleSpecsDirs = \
|
|||||||
$(strip $(wildcard \
|
$(strip $(wildcard \
|
||||||
$(foreach sub, $(SPEC_SUBDIRS), $(addsuffix /$(strip $1)/$(sub), $(TOP_SRC_DIRS)))))
|
$(foreach sub, $(SPEC_SUBDIRS), $(addsuffix /$(strip $1)/$(sub), $(TOP_SRC_DIRS)))))
|
||||||
|
|
||||||
|
# Find all man dirs for a particular module
|
||||||
|
# $1 - Module to find man dirs for
|
||||||
|
FindModuleManDirs = \
|
||||||
|
$(strip $(wildcard \
|
||||||
|
$(foreach sub, $(MAN_SUBDIRS), $(addsuffix /$(strip $1)/$(sub), $(TOP_SRC_DIRS)))))
|
||||||
|
|
||||||
# Construct the complete module source path
|
# Construct the complete module source path
|
||||||
GetModuleSrcPath = \
|
GetModuleSrcPath = \
|
||||||
$(call PathList, \
|
$(call PathList, \
|
||||||
@@ -321,7 +329,7 @@ MODULE_INFOS := $(call FindAllModuleInfos, *)
|
|||||||
|
|
||||||
$(MODULE_DEPS_MAKEFILE): $(MODULE_INFOS) \
|
$(MODULE_DEPS_MAKEFILE): $(MODULE_INFOS) \
|
||||||
$(call DependOnVariable, MODULE_INFOS, $(MAKESUPPORT_OUTPUTDIR)/MODULE_INFOS.vardeps)
|
$(call DependOnVariable, MODULE_INFOS, $(MAKESUPPORT_OUTPUTDIR)/MODULE_INFOS.vardeps)
|
||||||
$(MKDIR) -p $(@D)
|
$(call MakeTargetDir)
|
||||||
$(RM) $@
|
$(RM) $@
|
||||||
$(foreach m, $(MODULE_INFOS), \
|
$(foreach m, $(MODULE_INFOS), \
|
||||||
( $(PRINTF) "DEPS_$(call GetModuleNameFromModuleInfo, $m) :=" && \
|
( $(PRINTF) "DEPS_$(call GetModuleNameFromModuleInfo, $m) :=" && \
|
||||||
|
|||||||
@@ -59,6 +59,27 @@ define GetSymbols
|
|||||||
fi
|
fi
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Creates a recipe that creates a compile_commands.json fragment. Remove any
|
||||||
|
# occurences 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 $2)"$(COMMA) \
|
||||||
|
"file": "$(strip $3)"$(COMMA) \
|
||||||
|
"command": "$(strip $(subst $(DQUOTE),\$(DQUOTE),$(subst \,\\,\
|
||||||
|
$(subst $(FIXPATH),,$4))))" \
|
||||||
|
}$(COMMA), \
|
||||||
|
$1)
|
||||||
|
endef
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Define a native toolchain configuration that can be used by
|
# Define a native toolchain configuration that can be used by
|
||||||
# SetupNativeCompilation calls
|
# SetupNativeCompilation calls
|
||||||
@@ -203,6 +224,11 @@ define SetupCompileNativeFileBody
|
|||||||
$1_OBJ := $$($$($1_BASE)_OBJECT_DIR)/$$(call replace_with_obj_extension, \
|
$1_OBJ := $$($$($1_BASE)_OBJECT_DIR)/$$(call replace_with_obj_extension, \
|
||||||
$$($1_FILENAME))
|
$$($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
|
# 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.
|
# the first found source file override any other with the same name.
|
||||||
ifeq ($$(findstring $$($1_OBJ), $$($$($1_BASE)_OBJS_SO_FAR)), )
|
ifeq ($$(findstring $$($1_OBJ), $$($$($1_BASE)_OBJS_SO_FAR)), )
|
||||||
@@ -211,7 +237,7 @@ define SetupCompileNativeFileBody
|
|||||||
$1_SRC_FILE := $$($1_FILE)
|
$1_SRC_FILE := $$($1_FILE)
|
||||||
|
|
||||||
ifneq ($$($1_DISABLE_THIS_FILE_DEFINE), true)
|
ifneq ($$($1_DISABLE_THIS_FILE_DEFINE), true)
|
||||||
$1_THIS_FILE = -DTHIS_FILE='"$$(<F)"'
|
$1_THIS_FILE = -DTHIS_FILE='"$$($1_FILENAME)"'
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($$($1_OPTIMIZATION), )
|
ifeq ($$($1_OPTIMIZATION), )
|
||||||
@@ -251,6 +277,7 @@ define SetupCompileNativeFileBody
|
|||||||
$$($$($1_BASE)_SYSROOT_CFLAGS)
|
$$($$($1_BASE)_SYSROOT_CFLAGS)
|
||||||
$1_BASE_CXXFLAGS := $$($$($1_BASE)_CXXFLAGS) $$($$($1_BASE)_EXTRA_CXXFLAGS) \
|
$1_BASE_CXXFLAGS := $$($$($1_BASE)_CXXFLAGS) $$($$($1_BASE)_EXTRA_CXXFLAGS) \
|
||||||
$$($$($1_BASE)_SYSROOT_CFLAGS) $$($1_EXTRA_CXXFLAGS)
|
$$($$($1_BASE)_SYSROOT_CFLAGS) $$($1_EXTRA_CXXFLAGS)
|
||||||
|
$1_BASE_ASFLAGS := $$($$($1_BASE)_ASFLAGS) $$($$($1_BASE)_EXTRA_ASFLAGS)
|
||||||
|
|
||||||
ifneq ($$(filter %.c, $$($1_FILENAME)), )
|
ifneq ($$(filter %.c, $$($1_FILENAME)), )
|
||||||
# Compile as a C file
|
# Compile as a C file
|
||||||
@@ -266,7 +293,7 @@ define SetupCompileNativeFileBody
|
|||||||
$1_DEP_FLAG := $(C_FLAG_DEPS)
|
$1_DEP_FLAG := $(C_FLAG_DEPS)
|
||||||
else ifneq ($$(filter %.s %.S, $$($1_FILENAME)), )
|
else ifneq ($$(filter %.s %.S, $$($1_FILENAME)), )
|
||||||
# Compile as assembler file
|
# Compile as assembler file
|
||||||
$1_FLAGS := $$($$($1_BASE)_ASFLAGS)
|
$1_FLAGS := $$($1_BASE_ASFLAGS)
|
||||||
$1_COMPILER := $(AS)
|
$1_COMPILER := $(AS)
|
||||||
$1_DEP_FLAG :=
|
$1_DEP_FLAG :=
|
||||||
else ifneq ($$(filter %.cpp %.cc %.mm, $$($1_FILENAME)), )
|
else ifneq ($$(filter %.cpp %.cc %.mm, $$($1_FILENAME)), )
|
||||||
@@ -296,8 +323,15 @@ define SetupCompileNativeFileBody
|
|||||||
$1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, $$($1_OBJ).vardeps)
|
$1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, $$($1_OBJ).vardeps)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
$$($1_OBJ): $$($1_SRC_FILE) $$($$($1_BASE)_COMPILE_VARDEPS_FILE) \
|
$1_OBJ_DEPS := $$($1_SRC_FILE) $$($$($1_BASE)_COMPILE_VARDEPS_FILE) \
|
||||||
$$($$($1_BASE)_EXTRA_DEPS) $$($1_VARDEPS_FILE) | $$($$($1_BASE)_BUILD_INFO)
|
$$($$($1_BASE)_EXTRA_DEPS) $$($1_VARDEPS_FILE)
|
||||||
|
$1_COMPILE_OPTIONS := $$($1_FLAGS) $(CC_OUT_OPTION)$$($1_OBJ) $$($1_SRC_FILE)
|
||||||
|
|
||||||
|
$$($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 LogInfo, Compiling $$($1_FILENAME) (for $$($$($1_BASE)_BASENAME)))
|
||||||
$$(call MakeDir, $$(@D))
|
$$(call MakeDir, $$(@D))
|
||||||
ifneq ($(TOOLCHAIN_TYPE), microsoft)
|
ifneq ($(TOOLCHAIN_TYPE), microsoft)
|
||||||
@@ -306,13 +340,11 @@ define SetupCompileNativeFileBody
|
|||||||
# object file in the generated deps files. Fixing it with sed. If
|
# object file in the generated deps files. Fixing it with sed. If
|
||||||
# compiling assembly, don't try this.
|
# compiling assembly, don't try this.
|
||||||
$$(call ExecuteWithLog, $$@, \
|
$$(call ExecuteWithLog, $$@, \
|
||||||
$$($1_COMPILER) $$($1_FLAGS) $$($1_DEP_FLAG) $$($1_DEP).tmp \
|
$$($1_COMPILER) $$($1_DEP_FLAG) $$($1_DEP).tmp $$($1_COMPILE_OPTIONS))
|
||||||
$(CC_OUT_OPTION)$$($1_OBJ) $$($1_SRC_FILE))
|
|
||||||
$(SED) 's|^$$(@F):|$$@:|' $$($1_DEP).tmp > $$($1_DEP)
|
$(SED) 's|^$$(@F):|$$@:|' $$($1_DEP).tmp > $$($1_DEP)
|
||||||
else
|
else
|
||||||
$$(call ExecuteWithLog, $$@, \
|
$$(call ExecuteWithLog, $$@, \
|
||||||
$$($1_COMPILER) $$($1_FLAGS) $$($1_DEP_FLAG) $$($1_DEP) \
|
$$($1_COMPILER) $$($1_DEP_FLAG) $$($1_DEP) $$($1_COMPILE_OPTIONS))
|
||||||
$(CC_OUT_OPTION)$$($1_OBJ) $$($1_SRC_FILE))
|
|
||||||
endif
|
endif
|
||||||
# Create a dependency target file from the dependency file.
|
# Create a dependency target file from the dependency file.
|
||||||
# Solution suggested by http://make.mad-scientist.net/papers/advanced-auto-dependency-generation/
|
# Solution suggested by http://make.mad-scientist.net/papers/advanced-auto-dependency-generation/
|
||||||
@@ -328,8 +360,7 @@ define SetupCompileNativeFileBody
|
|||||||
# on Windows. No need to save exit code from compilation since
|
# on Windows. No need to save exit code from compilation since
|
||||||
# pipefail is always active on Windows.
|
# pipefail is always active on Windows.
|
||||||
$$(call ExecuteWithLog, $$@, \
|
$$(call ExecuteWithLog, $$@, \
|
||||||
$$($1_COMPILER) $$($1_FLAGS) -showIncludes \
|
$$($1_COMPILER) -showIncludes $$($1_COMPILE_OPTIONS)) \
|
||||||
$(CC_OUT_OPTION)$$($1_OBJ) $$($1_SRC_FILE)) \
|
|
||||||
| $(TR) -d '\r' | $(GREP) -v -e "^Note: including file:" \
|
| $(TR) -d '\r' | $(GREP) -v -e "^Note: including file:" \
|
||||||
-e "^$$($1_FILENAME)$$$$" || test "$$$$?" = "1" ; \
|
-e "^$$($1_FILENAME)$$$$" || test "$$$$?" = "1" ; \
|
||||||
$(ECHO) $$@: \\ > $$($1_DEP) ; \
|
$(ECHO) $$@: \\ > $$($1_DEP) ; \
|
||||||
@@ -576,6 +607,7 @@ define SetupNativeCompilationBody
|
|||||||
ifeq ($(COMPILE_WITH_DEBUG_SYMBOLS), true)
|
ifeq ($(COMPILE_WITH_DEBUG_SYMBOLS), true)
|
||||||
$1_EXTRA_CFLAGS += $$(CFLAGS_DEBUG_SYMBOLS)
|
$1_EXTRA_CFLAGS += $$(CFLAGS_DEBUG_SYMBOLS)
|
||||||
$1_EXTRA_CXXFLAGS += $$(CFLAGS_DEBUG_SYMBOLS)
|
$1_EXTRA_CXXFLAGS += $$(CFLAGS_DEBUG_SYMBOLS)
|
||||||
|
$1_EXTRA_ASFLAGS += $$(ASFLAGS_DEBUG_SYMBOLS)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifneq ($$($1_REORDER), )
|
ifneq ($$($1_REORDER), )
|
||||||
@@ -592,9 +624,13 @@ define SetupNativeCompilationBody
|
|||||||
# Pick up disabled warnings, if possible on this platform.
|
# Pick up disabled warnings, if possible on this platform.
|
||||||
ifneq ($(DISABLE_WARNING_PREFIX), )
|
ifneq ($(DISABLE_WARNING_PREFIX), )
|
||||||
$1_EXTRA_CFLAGS += $$(addprefix $(DISABLE_WARNING_PREFIX), \
|
$1_EXTRA_CFLAGS += $$(addprefix $(DISABLE_WARNING_PREFIX), \
|
||||||
|
$$(DISABLED_WARNINGS) \
|
||||||
|
$$(DISABLED_WARNINGS_C) \
|
||||||
$$($1_DISABLED_WARNINGS_$(TOOLCHAIN_TYPE)) \
|
$$($1_DISABLED_WARNINGS_$(TOOLCHAIN_TYPE)) \
|
||||||
$$($1_DISABLED_WARNINGS_C_$(TOOLCHAIN_TYPE)))
|
$$($1_DISABLED_WARNINGS_C_$(TOOLCHAIN_TYPE)))
|
||||||
$1_EXTRA_CXXFLAGS += $$(addprefix $(DISABLE_WARNING_PREFIX), \
|
$1_EXTRA_CXXFLAGS += $$(addprefix $(DISABLE_WARNING_PREFIX), \
|
||||||
|
$$(DISABLED_WARNINGS) \
|
||||||
|
$$(DISABLED_WARNINGS_CXX) \
|
||||||
$$($1_DISABLED_WARNINGS_$(TOOLCHAIN_TYPE)) \
|
$$($1_DISABLED_WARNINGS_$(TOOLCHAIN_TYPE)) \
|
||||||
$$($1_DISABLED_WARNINGS_CXX_$(TOOLCHAIN_TYPE)))
|
$$($1_DISABLED_WARNINGS_CXX_$(TOOLCHAIN_TYPE)))
|
||||||
endif
|
endif
|
||||||
@@ -612,6 +648,7 @@ define SetupNativeCompilationBody
|
|||||||
ifeq ($$($1_WARNINGS_AS_ERRORS_$(TOOLCHAIN_TYPE)), true)
|
ifeq ($$($1_WARNINGS_AS_ERRORS_$(TOOLCHAIN_TYPE)), true)
|
||||||
$1_EXTRA_CFLAGS += $(CFLAGS_WARNINGS_ARE_ERRORS)
|
$1_EXTRA_CFLAGS += $(CFLAGS_WARNINGS_ARE_ERRORS)
|
||||||
$1_EXTRA_CXXFLAGS += $(CFLAGS_WARNINGS_ARE_ERRORS)
|
$1_EXTRA_CXXFLAGS += $(CFLAGS_WARNINGS_ARE_ERRORS)
|
||||||
|
$1_EXTRA_LDFLAGS += $(LDFLAGS_WARNINGS_ARE_ERRORS)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq (NONE, $$($1_OPTIMIZATION))
|
ifeq (NONE, $$($1_OPTIMIZATION))
|
||||||
@@ -687,17 +724,25 @@ define SetupNativeCompilationBody
|
|||||||
-include $$($1_PCH_DEP)
|
-include $$($1_PCH_DEP)
|
||||||
-include $$($1_PCH_DEP_TARGETS)
|
-include $$($1_PCH_DEP_TARGETS)
|
||||||
|
|
||||||
|
$1_PCH_COMMAND := $$($1_CC) $$($1_CFLAGS) $$($1_EXTRA_CFLAGS) $$($1_SYSROOT_CFLAGS) \
|
||||||
|
$$($1_OPT_CFLAGS) -x c++-header -c $(C_FLAG_DEPS) $$($1_PCH_DEP)
|
||||||
|
|
||||||
$$($1_PCH_FILE): $$($1_PRECOMPILED_HEADER) $$($1_COMPILE_VARDEPS_FILE)
|
$$($1_PCH_FILE): $$($1_PRECOMPILED_HEADER) $$($1_COMPILE_VARDEPS_FILE)
|
||||||
$$(call LogInfo, Generating precompiled header)
|
$$(call LogInfo, Generating precompiled header)
|
||||||
$$(call MakeDir, $$(@D))
|
$$(call MakeDir, $$(@D))
|
||||||
$$(call ExecuteWithLog, $$@, \
|
$$(call ExecuteWithLog, $$@, $$($1_PCH_COMMAND) $$< -o $$@)
|
||||||
$$($1_CC) $$($1_CFLAGS) $$($1_EXTRA_CFLAGS) $$($1_SYSROOT_CFLAGS) \
|
|
||||||
$$($1_OPT_CFLAGS) \
|
|
||||||
-x c++-header -c $(C_FLAG_DEPS) $$($1_PCH_DEP) $$< -o $$@)
|
|
||||||
$(SED) $(DEPENDENCY_TARGET_SED_PATTERN) $$($1_PCH_DEP) > $$($1_PCH_DEP_TARGETS)
|
$(SED) $(DEPENDENCY_TARGET_SED_PATTERN) $$($1_PCH_DEP) > $$($1_PCH_DEP_TARGETS)
|
||||||
|
|
||||||
$$($1_ALL_OBJS): $$($1_PCH_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
|
endif
|
||||||
endif
|
endif
|
||||||
@@ -778,8 +823,8 @@ define SetupNativeCompilationBody
|
|||||||
|
|
||||||
# Pickup extra OPENJDK_TARGET_OS_TYPE and/or OPENJDK_TARGET_OS dependent variables
|
# Pickup extra OPENJDK_TARGET_OS_TYPE and/or OPENJDK_TARGET_OS dependent variables
|
||||||
# for LDFLAGS and LIBS
|
# for LDFLAGS and LIBS
|
||||||
$1_EXTRA_LDFLAGS := $$($1_LDFLAGS_$(OPENJDK_TARGET_OS_TYPE)) $$($1_LDFLAGS_$(OPENJDK_TARGET_OS))
|
$1_EXTRA_LDFLAGS += $$($1_LDFLAGS_$(OPENJDK_TARGET_OS_TYPE)) $$($1_LDFLAGS_$(OPENJDK_TARGET_OS))
|
||||||
$1_EXTRA_LIBS := $$($1_LIBS_$(OPENJDK_TARGET_OS_TYPE)) $$($1_LIBS_$(OPENJDK_TARGET_OS))
|
$1_EXTRA_LIBS += $$($1_LIBS_$(OPENJDK_TARGET_OS_TYPE)) $$($1_LIBS_$(OPENJDK_TARGET_OS))
|
||||||
ifneq ($$($1_REAL_MAPFILE), )
|
ifneq ($$($1_REAL_MAPFILE), )
|
||||||
$1_EXTRA_LDFLAGS += $(call SET_SHARED_LIBRARY_MAPFILE,$$($1_REAL_MAPFILE))
|
$1_EXTRA_LDFLAGS += $(call SET_SHARED_LIBRARY_MAPFILE,$$($1_REAL_MAPFILE))
|
||||||
endif
|
endif
|
||||||
@@ -1018,6 +1063,10 @@ define SetupNativeCompilationBody
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(GENERATE_COMPILE_COMMANDS_ONLY), true)
|
||||||
|
$1 := $$($1_ALL_OBJS_JSON)
|
||||||
|
endif
|
||||||
endef
|
endef
|
||||||
|
|
||||||
endif # _NATIVE_COMPILATION_GMK
|
endif # _NATIVE_COMPILATION_GMK
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -26,12 +26,36 @@ ifeq (,$(_MAKEBASE_GMK))
|
|||||||
$(error You must include MakeBase.gmk prior to including ProcessMarkdown.gmk)
|
$(error You must include MakeBase.gmk prior to including ProcessMarkdown.gmk)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
include TextFileProcessing.gmk
|
||||||
|
|
||||||
# Helper function for SetupProcessMarkdown
|
# Helper function for SetupProcessMarkdown
|
||||||
# $1: The $1 from SetupProcessMarkdown
|
# $1: The $1 from SetupProcessMarkdown
|
||||||
# $2: The name of the current source file, relative to $1_SRC
|
# $2: The name of the current source file, relative to the dir given in $3
|
||||||
|
# $3: The directory of the current source file
|
||||||
define ProcessMarkdown
|
define ProcessMarkdown
|
||||||
$1_$2_OUTPUT_FILE := $$($1_DEST)/$$(basename $2).html
|
$1_$2_OUTPUT_FILE := $$($1_DEST)/$$(basename $2)$$($1_FILE_EXT)
|
||||||
$1_$2_TARGET_DIR := $$(dir $$($1_$2_OUTPUT_FILE))
|
$1_$2_TARGET_DIR := $$(dir $$($1_$2_OUTPUT_FILE))
|
||||||
|
$1_$2_INPUT_FILE := $3/$2
|
||||||
|
$1_$2_MARKER := $$(subst /,_,$1_$2)
|
||||||
|
|
||||||
|
ifneq ($$($1_REPLACEMENTS), )
|
||||||
|
$1_$2_PANDOC_INPUT := $$(SUPPORT_OUTPUTDIR)/markdown/$$($1_$2_MARKER)_pre.tmp
|
||||||
|
|
||||||
|
$$(eval $$(call SetupTextFileProcessing, $1_$2_PREPROCESSED, \
|
||||||
|
SOURCE_FILES := $$($1_$2_INPUT_FILE), \
|
||||||
|
OUTPUT_FILE := $$($1_$2_PANDOC_INPUT), \
|
||||||
|
REPLACEMENTS := $$($1_REPLACEMENTS), \
|
||||||
|
))
|
||||||
|
else
|
||||||
|
$1_$2_PANDOC_INPUT := $$($1_$2_INPUT_FILE)
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq ($$($1_POST_PROCESS), )
|
||||||
|
$1_$2_PANDOC_OUTPUT := $$(SUPPORT_OUTPUTDIR)/markdown/$$($1_$2_MARKER)_post.tmp
|
||||||
|
else
|
||||||
|
$1_$2_PANDOC_OUTPUT := $$($1_$2_OUTPUT_FILE)
|
||||||
|
endif
|
||||||
|
|
||||||
ifneq ($$($1_CSS), )
|
ifneq ($$($1_CSS), )
|
||||||
ifneq ($$(findstring http:/, $$($1_CSS)), )
|
ifneq ($$(findstring http:/, $$($1_CSS)), )
|
||||||
$1_$2_CSS_OPTION := --css '$$($1_CSS)'
|
$1_$2_CSS_OPTION := --css '$$($1_CSS)'
|
||||||
@@ -40,19 +64,25 @@ define ProcessMarkdown
|
|||||||
$1_$2_CSS_OPTION := --css '$$($1_$2_CSS)'
|
$1_$2_CSS_OPTION := --css '$$($1_$2_CSS)'
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
$1_$2_OPTIONS = $$(shell $$(GREP) _pandoc-options_: $$($1_SRC)/$2 | $$(CUT) -d : -f 2-)
|
|
||||||
$1_$2_MARKER := $$(subst /,_,$1_$2)
|
|
||||||
|
|
||||||
$1_$2_VARDEPS := $$($1_OPTIONS) $$($1_CSS)
|
$1_$2_OPTIONS := $$(shell $$(GREP) _pandoc-options_: $3/$2 | $$(CUT) -d : -f 2-)
|
||||||
|
|
||||||
|
ifneq ($$($1_FILTER), )
|
||||||
|
$1_$2_OPTIONS += --filter $$($1_FILTER)
|
||||||
|
endif
|
||||||
|
|
||||||
|
$1_$2_VARDEPS := $$($1_OPTIONS) $$($1_$2_OPTIONS) $$($1_CSS) \
|
||||||
|
$$($1_REPLACEMENTS) $$($1_POST_PROCESS)
|
||||||
$1_$2_VARDEPS_FILE := $$(call DependOnVariable, $1_$2_VARDEPS, \
|
$1_$2_VARDEPS_FILE := $$(call DependOnVariable, $1_$2_VARDEPS, \
|
||||||
$$(SUPPORT_OUTPUTDIR)/markdown/$$($1_$2_MARKER).vardeps)
|
$$(SUPPORT_OUTPUTDIR)/markdown/$$($1_$2_MARKER).vardeps)
|
||||||
|
|
||||||
$$($1_$2_OUTPUT_FILE): $$($1_SRC)/$2 $$($1_$2_VARDEPS_FILE)
|
$$($1_$2_PANDOC_OUTPUT): $$($1_$2_PANDOC_INPUT) $$($1_$2_VARDEPS_FILE) $$($1_EXTRA_DEPS)
|
||||||
$$(call LogInfo, Converting $2 to html)
|
$$(call LogInfo, Converting $2 to $$($1_FORMAT))
|
||||||
$$(call MakeDir, $$($1_$2_TARGET_DIR) $$(SUPPORT_OUTPUTDIR)/markdown)
|
$$(call MakeDir, $$(SUPPORT_OUTPUTDIR)/markdown $$(dir $$($1_$2_PANDOC_OUTPUT)))
|
||||||
$$(call ExecuteWithLog, $$(SUPPORT_OUTPUTDIR)/markdown/$$($1_$2_MARKER), \
|
$$(call ExecuteWithLog, $$(SUPPORT_OUTPUTDIR)/markdown/$$($1_$2_MARKER), \
|
||||||
$$(PANDOC) $$($1_OPTIONS) -f markdown -t html5 --standalone \
|
$$(PANDOC) $$($1_OPTIONS) -f markdown-smart -t $$($1_FORMAT) --standalone \
|
||||||
$$($1_$2_CSS_OPTION) $$($1_$2_OPTIONS) '$$<' -o '$$@')
|
$$($1_$2_CSS_OPTION) $$($1_$2_OPTIONS) '$$($1_$2_PANDOC_INPUT)' \
|
||||||
|
-o '$$($1_$2_PANDOC_OUTPUT)')
|
||||||
ifneq ($$(findstring $$(LOG_LEVEL), debug trace),)
|
ifneq ($$(findstring $$(LOG_LEVEL), debug trace),)
|
||||||
TOO_LONG_LINES=`$$(GREP) -E -e '^.{80}.+$$$$' $$<` || true ; \
|
TOO_LONG_LINES=`$$(GREP) -E -e '^.{80}.+$$$$' $$<` || true ; \
|
||||||
if [ "x$$$$TOO_LONG_LINES" != x ]; then \
|
if [ "x$$$$TOO_LONG_LINES" != x ]; then \
|
||||||
@@ -62,6 +92,16 @@ $$($1_$2_OUTPUT_FILE): $$($1_SRC)/$2 $$($1_$2_VARDEPS_FILE)
|
|||||||
fi
|
fi
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# If we have no post processing, PANDOC_OUTPUT is set to OUTPUT_FILE. Otherwise
|
||||||
|
# PANDOC_OUTPUT is a temporary file, and we must now create the real OUTPUT_FILE.
|
||||||
|
ifneq ($$($1_POST_PROCESS), )
|
||||||
|
$$($1_$2_OUTPUT_FILE): $$($1_$2_PANDOC_OUTPUT)
|
||||||
|
$$(call LogInfo, Post-processing markdown file $2)
|
||||||
|
$$(call MakeDir, $$(SUPPORT_OUTPUTDIR)/markdown $$($1_$2_TARGET_DIR))
|
||||||
|
$$(call ExecuteWithLog, $$(SUPPORT_OUTPUTDIR)/markdown/$$($1_$2_MARKER)_post, \
|
||||||
|
$$($1_POST_PROCESS) < $$($1_$2_PANDOC_OUTPUT) > $$($1_$2_OUTPUT_FILE))
|
||||||
|
endif
|
||||||
|
|
||||||
$1 += $$($1_$2_OUTPUT_FILE)
|
$1 += $$($1_$2_OUTPUT_FILE)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
@@ -72,11 +112,17 @@ endef
|
|||||||
# and the targets generated are listed in a variable by that name.
|
# and the targets generated are listed in a variable by that name.
|
||||||
#
|
#
|
||||||
# Remaining parameters are named arguments. These include:
|
# Remaining parameters are named arguments. These include:
|
||||||
# SRC : Source root dir (defaults to dir of first file)
|
# DEST : Destination root dir
|
||||||
# DEST : Dest root dir
|
|
||||||
# FILES : List of files to copy with absolute paths, or path relative to SRC.
|
# FILES : List of files to copy with absolute paths, or path relative to SRC.
|
||||||
# Must be in SRC.
|
# SRC : Source root dir; if given keep input files hierarchy relative to
|
||||||
|
# SRC in DEST, otherwise flatten structure into DEST.
|
||||||
|
# FORMAT : The target format (defaults to html5)
|
||||||
|
# FILE_EXT : The file extension to replace .md with (defaults to .html)
|
||||||
# OPTIONS : Additional options to pandoc
|
# OPTIONS : Additional options to pandoc
|
||||||
|
# EXTRA_DEPS : Additional dependencies to add to each pandoc call
|
||||||
|
# FILTER : Optional pandoc filter command
|
||||||
|
# POST_PROCESS : Optional command-line to post-process generated markdown
|
||||||
|
# REPLACEMENTS : Text replacements to perform on input file before processing
|
||||||
#
|
#
|
||||||
SetupProcessMarkdown = $(NamedParamsMacroTemplate)
|
SetupProcessMarkdown = $(NamedParamsMacroTemplate)
|
||||||
define SetupProcessMarkdownBody
|
define SetupProcessMarkdownBody
|
||||||
@@ -88,16 +134,40 @@ define SetupProcessMarkdownBody
|
|||||||
$$(error DEST is missing in SetupProcessMarkdown $1)
|
$$(error DEST is missing in SetupProcessMarkdown $1)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Default SRC to the dir of the first file.
|
# If no target format is specified, default to html5.
|
||||||
ifeq ($$($1_SRC), )
|
ifeq ($$($1_FORMAT), )
|
||||||
$1_SRC := $$(dir $$(firstword $$($1_FILES)))
|
$1_FORMAT := html5
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Remove any trailing slash from SRC and DEST
|
ifeq ($$($1_FORMAT), man)
|
||||||
$1_SRC := $$(patsubst %/,%,$$($1_SRC))
|
# If no file extension is specified, default to '.1'.
|
||||||
|
ifeq ($$($1_FILE_EXT), )
|
||||||
|
$1_FILE_EXT := .1
|
||||||
|
endif
|
||||||
|
else ifeq ($$($1_FORMAT), html5)
|
||||||
|
ifeq ($$($1_FILE_EXT), )
|
||||||
|
$1_FILE_EXT := .html
|
||||||
|
endif
|
||||||
|
else ifeq ($$($1_FORMAT), html)
|
||||||
|
ifeq ($$($1_FILE_EXT), )
|
||||||
|
$1_FILE_EXT := .html
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Remove any trailing slash
|
||||||
$1_DEST := $$(patsubst %/,%,$$($1_DEST))
|
$1_DEST := $$(patsubst %/,%,$$($1_DEST))
|
||||||
|
|
||||||
$$(foreach f, $$(patsubst $$($1_SRC)/%,%,$$($1_FILES)), \
|
ifeq ($$($1_SRC), )
|
||||||
$$(eval $$(call ProcessMarkdown,$1,$$f)) \
|
# No SRC given, assume we're flattening all files into output dir.
|
||||||
|
$$(foreach f, $$($1_FILES), \
|
||||||
|
$$(eval $$(call ProcessMarkdown,$1,$$(notdir $$f),$$(patsubst %/,%,$$(dir $$f)))) \
|
||||||
)
|
)
|
||||||
|
else
|
||||||
|
# Remove any trailing slash
|
||||||
|
$1_SRC := $$(patsubst %/,%,$$($1_SRC))
|
||||||
|
|
||||||
|
$$(foreach f, $$(patsubst $$($1_SRC)/%,%,$$($1_FILES)), \
|
||||||
|
$$(eval $$(call ProcessMarkdown,$1,$$f,$$($1_SRC))) \
|
||||||
|
)
|
||||||
|
endif
|
||||||
endef
|
endef
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# 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
|
||||||
@@ -72,7 +72,7 @@ $(eval $(call SetupJavaCompiler,GENERATE_OLDBYTECODE, \
|
|||||||
$(eval $(call SetupJavaCompiler,GENERATE_JDKBYTECODE, \
|
$(eval $(call SetupJavaCompiler,GENERATE_JDKBYTECODE, \
|
||||||
JVM := $(JAVA_JAVAC), \
|
JVM := $(JAVA_JAVAC), \
|
||||||
JAVAC := $(NEW_JAVAC), \
|
JAVAC := $(NEW_JAVAC), \
|
||||||
FLAGS := -source 11 -target 11 --doclint-format html5 \
|
FLAGS := -source 13 -target 13 --doclint-format html5 \
|
||||||
-encoding ascii -XDignore.symbol.file=true $(JAVAC_WARNINGS), \
|
-encoding ascii -XDignore.symbol.file=true $(JAVAC_WARNINGS), \
|
||||||
SERVER_DIR := $(SJAVAC_SERVER_DIR), \
|
SERVER_DIR := $(SJAVAC_SERVER_DIR), \
|
||||||
SERVER_JVM := $(SJAVAC_SERVER_JAVA)))
|
SERVER_JVM := $(SJAVAC_SERVER_JAVA)))
|
||||||
@@ -82,7 +82,7 @@ $(eval $(call SetupJavaCompiler,GENERATE_JDKBYTECODE, \
|
|||||||
$(eval $(call SetupJavaCompiler,GENERATE_JDKBYTECODE_NOWARNINGS, \
|
$(eval $(call SetupJavaCompiler,GENERATE_JDKBYTECODE_NOWARNINGS, \
|
||||||
JVM := $(JAVA_JAVAC), \
|
JVM := $(JAVA_JAVAC), \
|
||||||
JAVAC := $(NEW_JAVAC), \
|
JAVAC := $(NEW_JAVAC), \
|
||||||
FLAGS := -source 11 -target 11 \
|
FLAGS := -source 13 -target 13 \
|
||||||
-encoding ascii -XDignore.symbol.file=true $(DISABLE_WARNINGS), \
|
-encoding ascii -XDignore.symbol.file=true $(DISABLE_WARNINGS), \
|
||||||
SERVER_DIR := $(SJAVAC_SERVER_DIR), \
|
SERVER_DIR := $(SJAVAC_SERVER_DIR), \
|
||||||
SERVER_JVM := $(SJAVAC_SERVER_JAVA)))
|
SERVER_JVM := $(SJAVAC_SERVER_JAVA)))
|
||||||
|
|||||||
@@ -60,14 +60,16 @@ define SetupTestFilesCompilationBody
|
|||||||
ifeq ($$($1_TYPE), LIBRARY)
|
ifeq ($$($1_TYPE), LIBRARY)
|
||||||
$1_PREFIX = lib
|
$1_PREFIX = lib
|
||||||
$1_OUTPUT_SUBDIR := lib
|
$1_OUTPUT_SUBDIR := lib
|
||||||
$1_CFLAGS := $(CFLAGS_TESTLIB)
|
$1_BASE_CFLAGS := $(CFLAGS_JDKLIB)
|
||||||
$1_LDFLAGS := $(LDFLAGS_TESTLIB) $(call SET_SHARED_LIBRARY_ORIGIN)
|
$1_BASE_CXXFLAGS := $(CXXFLAGS_JDKLIB)
|
||||||
|
$1_LDFLAGS := $(LDFLAGS_JDKLIB) $(call SET_SHARED_LIBRARY_ORIGIN)
|
||||||
$1_COMPILATION_TYPE := LIBRARY
|
$1_COMPILATION_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_CFLAGS := $(CFLAGS_TESTEXE)
|
$1_BASE_CFLAGS := $(CFLAGS_JDKEXE)
|
||||||
$1_LDFLAGS := $(LDFLAGS_TESTEXE)
|
$1_BASE_CXXFLAGS := $(CXXFLAGS_JDKEXE)
|
||||||
|
$1_LDFLAGS := $(LDFLAGS_JDKEXE) $(LDFLAGS_TESTEXE)
|
||||||
$1_COMPILATION_TYPE := EXECUTABLE
|
$1_COMPILATION_TYPE := EXECUTABLE
|
||||||
else
|
else
|
||||||
$$(error Unknown type: $$($1_TYPE))
|
$$(error Unknown type: $$($1_TYPE))
|
||||||
@@ -75,7 +77,8 @@ define SetupTestFilesCompilationBody
|
|||||||
|
|
||||||
# Locate all files with the matching prefix
|
# Locate all files with the matching prefix
|
||||||
$1_FILE_LIST := \
|
$1_FILE_LIST := \
|
||||||
$$(shell $$(FIND) $$($1_SOURCE_DIRS) -type f -name "$$($1_PREFIX)*.c")
|
$$(shell $$(FIND) $$($1_SOURCE_DIRS) -type f \( -name "$$($1_PREFIX)*.c" \
|
||||||
|
-o -name "$$($1_PREFIX)*.cpp" \))
|
||||||
|
|
||||||
$1_EXCLUDE_PATTERN := $$(addprefix %/, $$($1_EXCLUDE))
|
$1_EXCLUDE_PATTERN := $$(addprefix %/, $$($1_EXCLUDE))
|
||||||
$1_FILTERED_FILE_LIST := $$(filter-out $$($1_EXCLUDE_PATTERN), $$($1_FILE_LIST))
|
$1_FILTERED_FILE_LIST := $$(filter-out $$($1_EXCLUDE_PATTERN), $$($1_FILE_LIST))
|
||||||
@@ -91,10 +94,16 @@ define SetupTestFilesCompilationBody
|
|||||||
INCLUDE_FILES := $$(notdir $$(file)), \
|
INCLUDE_FILES := $$(notdir $$(file)), \
|
||||||
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), \
|
||||||
CFLAGS := $$($1_CFLAGS) $$($1_CFLAGS_$$(name)), \
|
CFLAGS := $$($1_BASE_CFLAGS) $$($1_CFLAGS) $$($1_CFLAGS_$$(name)), \
|
||||||
|
CXXFLAGS := $$($1_BASE_CXXFLAGS) $$($1_CFLAGS) $$($1_CFLAGS_$$(name)), \
|
||||||
LDFLAGS := $$($1_LDFLAGS) $$($1_LDFLAGS_$$(name)), \
|
LDFLAGS := $$($1_LDFLAGS) $$($1_LDFLAGS_$$(name)), \
|
||||||
|
DISABLED_WARNINGS_gcc := format undef unused-function unused-value, \
|
||||||
|
DISABLED_WARNINGS_clang := undef format-nonliteral \
|
||||||
|
missing-field-initializers sometimes-uninitialized, \
|
||||||
|
DISABLED_WARNINGS_CXX_solstudio := wvarhidenmem, \
|
||||||
LIBS := $$($1_LIBS_$$(name)), \
|
LIBS := $$($1_LIBS_$$(name)), \
|
||||||
OPTIMIZATION := LOW, \
|
TOOLCHAIN := $(if $$(filter %.cpp, $$(file)), TOOLCHAIN_LINK_CXX, TOOLCHAIN_DEFAULT), \
|
||||||
|
OPTIMIZATION := $$(if $$($1_OPTIMIZATION_$$(name)),$$($1_OPTIMIZATION_$$(name)),LOW), \
|
||||||
COPY_DEBUG_SYMBOLS := false, \
|
COPY_DEBUG_SYMBOLS := false, \
|
||||||
STRIP_SYMBOLS := false, \
|
STRIP_SYMBOLS := false, \
|
||||||
)) \
|
)) \
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2013, 2018, 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
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@@ -124,8 +124,8 @@ define SetupZipArchiveBody
|
|||||||
# If zip has nothing to do, it returns 12 and would fail the build. Check for 12
|
# If zip has nothing to do, it returns 12 and would fail the build. Check for 12
|
||||||
# and only fail if it's not.
|
# and only fail if it's not.
|
||||||
$$($1_ZIP) : $$($1_ALL_SRCS) $$($1_EXTRA_DEPS)
|
$$($1_ZIP) : $$($1_ALL_SRCS) $$($1_EXTRA_DEPS)
|
||||||
$(MKDIR) -p $$(@D)
|
$$(call LogWarn, Updating $$($1_NAME))
|
||||||
$(ECHO) Updating $$($1_NAME)
|
$$(call MakeTargetDir)
|
||||||
$$(foreach s,$$($1_SRC),(cd $$s && $(ZIPEXE) -qru $$($1_ZIP_OPTIONS) $$@ . \
|
$$(foreach s,$$($1_SRC),(cd $$s && $(ZIPEXE) -qru $$($1_ZIP_OPTIONS) $$@ . \
|
||||||
$$($1_ZIP_INCLUDES) $$($1_ZIP_EXCLUDES) -x \*_the.\* \
|
$$($1_ZIP_INCLUDES) $$($1_ZIP_EXCLUDES) -x \*_the.\* \
|
||||||
$$($1_ZIP_EXCLUDES_$$s) \
|
$$($1_ZIP_EXCLUDES_$$s) \
|
||||||
|
|||||||
@@ -201,10 +201,15 @@ var getJibProfiles = function (input) {
|
|||||||
data.configuration_make_arg = "CONF_NAME=";
|
data.configuration_make_arg = "CONF_NAME=";
|
||||||
|
|
||||||
// Exclude list to use when Jib creates a source bundle
|
// Exclude list to use when Jib creates a source bundle
|
||||||
data.src_bundle_excludes = "./build .build webrev* */webrev* */*/webrev* */*/*/webrev* .hg */.hg */*/.hg */*/*/.hg";
|
data.src_bundle_excludes = [
|
||||||
|
"build", "{,**/}webrev*", "{,**/}.hg", "{,**/}JTwork", "{,**/}JTreport",
|
||||||
|
"{,**/}.git"
|
||||||
|
];
|
||||||
// Include list to use when creating a minimal jib source bundle which
|
// Include list to use when creating a minimal jib source bundle which
|
||||||
// contains just the jib configuration files.
|
// contains just the jib configuration files.
|
||||||
data.conf_bundle_includes = "*/conf/jib-profiles.* make/autoconf/version-numbers"
|
data.conf_bundle_includes = [
|
||||||
|
"make/autoconf/version-numbers",
|
||||||
|
];
|
||||||
|
|
||||||
// Define some common values
|
// Define some common values
|
||||||
var common = getJibProfilesCommon(input, data);
|
var common = getJibProfilesCommon(input, data);
|
||||||
@@ -233,17 +238,17 @@ var getJibProfilesCommon = function (input, data) {
|
|||||||
common.main_profile_names = [
|
common.main_profile_names = [
|
||||||
"linux-x64", "linux-x86", "macosx-x64", "solaris-x64",
|
"linux-x64", "linux-x86", "macosx-x64", "solaris-x64",
|
||||||
"solaris-sparcv9", "windows-x64", "windows-x86",
|
"solaris-sparcv9", "windows-x64", "windows-x86",
|
||||||
"linux-aarch64", "linux-arm32", "linux-arm64", "linux-arm-vfp-hflt",
|
"linux-aarch64", "linux-arm32"
|
||||||
"linux-arm-vfp-hflt-dyn"
|
|
||||||
];
|
];
|
||||||
|
|
||||||
// These are the base setttings for all the main build profiles.
|
// These are the base setttings for all the main build profiles.
|
||||||
common.main_profile_base = {
|
common.main_profile_base = {
|
||||||
dependencies: ["boot_jdk", "gnumake", "jtreg", "jib", "autoconf"],
|
dependencies: ["boot_jdk", "gnumake", "jtreg", "jib", "autoconf", "jmh", "jcov"],
|
||||||
default_make_targets: ["product-bundles", "test-bundles"],
|
default_make_targets: ["product-bundles", "test-bundles"],
|
||||||
configure_args: concat(["--enable-jtreg-failure-handler"],
|
configure_args: concat(["--enable-jtreg-failure-handler"],
|
||||||
"--with-exclude-translations=de,es,fr,it,ko,pt_BR,sv,ca,tr,cs,sk,ja_JP_A,ja_JP_HA,ja_JP_HI,ja_JP_I,zh_TW,zh_HK",
|
"--with-exclude-translations=de,es,fr,it,ko,pt_BR,sv,ca,tr,cs,sk,ja_JP_A,ja_JP_HA,ja_JP_HI,ja_JP_I,zh_TW,zh_HK",
|
||||||
"--disable-manpages",
|
"--disable-manpages",
|
||||||
|
"--with-jvm-features=-shenandoahgc",
|
||||||
versionArgs(input, common))
|
versionArgs(input, common))
|
||||||
};
|
};
|
||||||
// Extra settings for debug profiles
|
// Extra settings for debug profiles
|
||||||
@@ -357,7 +362,7 @@ var getJibProfilesCommon = function (input, data) {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
common.boot_jdk_version = "10";
|
common.boot_jdk_version = "11";
|
||||||
common.boot_jdk_home = input.get("boot_jdk", "home_path") + "/jdk-"
|
common.boot_jdk_home = input.get("boot_jdk", "home_path") + "/jdk-"
|
||||||
+ common.boot_jdk_version
|
+ common.boot_jdk_version
|
||||||
+ (input.build_os == "macosx" ? ".jdk/Contents/Home" : "");
|
+ (input.build_os == "macosx" ? ".jdk/Contents/Home" : "");
|
||||||
@@ -397,7 +402,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", "graalunit_lib"],
|
dependencies: ["devkit", "pandoc", "graalunit_lib"],
|
||||||
configure_args: concat(common.configure_args_64bit, "--with-zlib=system",
|
configure_args: concat(common.configure_args_64bit, "--with-zlib=system",
|
||||||
"--with-macosx-version-max=10.9.0"),
|
"--with-macosx-version-max=10.9.0"),
|
||||||
},
|
},
|
||||||
@@ -421,7 +426,7 @@ var getJibProfilesProfiles = function (input, common, data) {
|
|||||||
"windows-x64": {
|
"windows-x64": {
|
||||||
target_os: "windows",
|
target_os: "windows",
|
||||||
target_cpu: "x64",
|
target_cpu: "x64",
|
||||||
dependencies: ["devkit", "graalunit_lib"],
|
dependencies: ["devkit", "pandoc", "graalunit_lib"],
|
||||||
configure_args: concat(common.configure_args_64bit),
|
configure_args: concat(common.configure_args_64bit),
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -440,20 +445,7 @@ var getJibProfilesProfiles = function (input, common, data) {
|
|||||||
dependencies: ["devkit", "build_devkit", "cups"],
|
dependencies: ["devkit", "build_devkit", "cups"],
|
||||||
configure_args: [
|
configure_args: [
|
||||||
"--openjdk-target=aarch64-linux-gnu", "--with-freetype=bundled",
|
"--openjdk-target=aarch64-linux-gnu", "--with-freetype=bundled",
|
||||||
"--disable-warnings-as-errors", "--with-cpu-port=aarch64",
|
"--disable-warnings-as-errors"
|
||||||
],
|
|
||||||
},
|
|
||||||
|
|
||||||
"linux-arm64": {
|
|
||||||
target_os: "linux",
|
|
||||||
target_cpu: "aarch64",
|
|
||||||
build_cpu: "x64",
|
|
||||||
dependencies: ["devkit", "build_devkit", "cups", "headless_stubs"],
|
|
||||||
configure_args: [
|
|
||||||
"--with-cpu-port=arm64",
|
|
||||||
"--with-jvm-variants=server",
|
|
||||||
"--openjdk-target=aarch64-linux-gnu",
|
|
||||||
"--enable-headless-only"
|
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -467,30 +459,7 @@ var getJibProfilesProfiles = function (input, common, data) {
|
|||||||
"--with-abi-profile=arm-vfp-hflt", "--disable-warnings-as-errors"
|
"--with-abi-profile=arm-vfp-hflt", "--disable-warnings-as-errors"
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
|
||||||
"linux-arm-vfp-hflt": {
|
|
||||||
target_os: "linux",
|
|
||||||
target_cpu: "arm",
|
|
||||||
build_cpu: "x64",
|
|
||||||
dependencies: ["devkit", "build_devkit", "cups"],
|
|
||||||
configure_args: [
|
|
||||||
"--with-jvm-variants=minimal1,client",
|
|
||||||
"--with-x=" + input.get("devkit", "install_path") + "/arm-linux-gnueabihf/libc/usr/X11R6-PI",
|
|
||||||
"--with-fontconfig=" + input.get("devkit", "install_path") + "/arm-linux-gnueabihf/libc/usr/X11R6-PI",
|
|
||||||
"--openjdk-target=arm-linux-gnueabihf",
|
|
||||||
"--with-abi-profile=arm-vfp-hflt",
|
|
||||||
"--with-freetype=bundled"
|
|
||||||
],
|
|
||||||
},
|
|
||||||
|
|
||||||
// Special version of the SE profile adjusted to be testable on arm64 hardware.
|
|
||||||
"linux-arm-vfp-hflt-dyn": {
|
|
||||||
configure_args: "--with-stdc++lib=dynamic"
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
// Let linux-arm-vfp-hflt-dyn inherit everything from linux-arm-vfp-hflt
|
|
||||||
profiles["linux-arm-vfp-hflt-dyn"] = concatObjects(
|
|
||||||
profiles["linux-arm-vfp-hflt-dyn"], profiles["linux-arm-vfp-hflt"]);
|
|
||||||
|
|
||||||
// Add the base settings to all the main profiles
|
// Add the base settings to all the main profiles
|
||||||
common.main_profile_names.forEach(function (name) {
|
common.main_profile_names.forEach(function (name) {
|
||||||
@@ -525,8 +494,7 @@ var getJibProfilesProfiles = function (input, common, data) {
|
|||||||
profiles[maketestName].default_make_targets = [ "test-make" ];
|
profiles[maketestName].default_make_targets = [ "test-make" ];
|
||||||
});
|
});
|
||||||
|
|
||||||
// Profiles for building the zero jvm variant. These are used for verification
|
// Profiles for building the zero jvm variant. These are used for verification.
|
||||||
// in JPRT.
|
|
||||||
var zeroProfiles = {
|
var zeroProfiles = {
|
||||||
"linux-x64-zero": {
|
"linux-x64-zero": {
|
||||||
target_os: "linux",
|
target_os: "linux",
|
||||||
@@ -560,6 +528,27 @@ var getJibProfilesProfiles = function (input, common, data) {
|
|||||||
profiles[debugName] = concatObjects(profiles[name], common.debug_profile_base);
|
profiles[debugName] = concatObjects(profiles[name], common.debug_profile_base);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Define a profile with precompiled headers disabled. This is just used for
|
||||||
|
// verfication of this build configuration.
|
||||||
|
var noPchProfiles = {
|
||||||
|
"linux-x64-debug-nopch": {
|
||||||
|
target_os: "linux",
|
||||||
|
target_cpu: "x64",
|
||||||
|
dependencies: ["devkit"],
|
||||||
|
configure_args: concat(common.configure_args_64bit,
|
||||||
|
"--with-zlib=system", "--disable-precompiled-headers"),
|
||||||
|
},
|
||||||
|
};
|
||||||
|
profiles = concatObjects(profiles, noPchProfiles);
|
||||||
|
// Add base settings to noPch profiles
|
||||||
|
Object.keys(noPchProfiles).forEach(function (name) {
|
||||||
|
profiles[name] = concatObjects(common.main_profile_base, profiles[name]);
|
||||||
|
profiles[name] = concatObjects(common.debug_profile_base, profiles[name]);
|
||||||
|
// Override default make target with hotspot as that's the only part of
|
||||||
|
// the build using precompiled headers.
|
||||||
|
profiles[name].default_make_targets = ["hotspot"];
|
||||||
|
});
|
||||||
|
|
||||||
// Bootcycle profiles runs the build with itself as the boot jdk. This can
|
// Bootcycle profiles runs the build with itself as the boot jdk. This can
|
||||||
// be done in two ways. Either using the builtin bootcycle target in the
|
// be done in two ways. Either using the builtin bootcycle target in the
|
||||||
// build system. Or by supplying the main jdk build as bootjdk to configure.
|
// build system. Or by supplying the main jdk build as bootjdk to configure.
|
||||||
@@ -618,15 +607,6 @@ var getJibProfilesProfiles = function (input, common, data) {
|
|||||||
},
|
},
|
||||||
"linux-arm32": {
|
"linux-arm32": {
|
||||||
platform: "linux-arm32",
|
platform: "linux-arm32",
|
||||||
},
|
|
||||||
"linux-arm64": {
|
|
||||||
platform: "linux-arm64-vfp-hflt",
|
|
||||||
},
|
|
||||||
"linux-arm-vfp-hflt": {
|
|
||||||
platform: "linux-arm32-vfp-hflt",
|
|
||||||
},
|
|
||||||
"linux-arm-vfp-hflt-dyn": {
|
|
||||||
platform: "linux-arm32-vfp-hflt-dyn",
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Generate common artifacts for all main profiles
|
// Generate common artifacts for all main profiles
|
||||||
@@ -709,14 +689,6 @@ var getJibProfilesProfiles = function (input, common, data) {
|
|||||||
profiles[openName].artifacts["jdk"].remote));
|
profiles[openName].artifacts["jdk"].remote));
|
||||||
});
|
});
|
||||||
|
|
||||||
// Enable ZGC in linux-x64-open builds
|
|
||||||
[ "linux-x64-open" ].forEach(function (name) {
|
|
||||||
var configureArgs = { configure_args: [ "--with-jvm-features=zgc" ] };
|
|
||||||
var debugName = name + common.debug_suffix;
|
|
||||||
profiles[name] = concatObjects(profiles[name], configureArgs);
|
|
||||||
profiles[debugName] = concatObjects(profiles[debugName], configureArgs);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Generate cmp-baseline profiles for each main profile and their
|
// Generate cmp-baseline profiles for each main profile and their
|
||||||
// corresponding debug profile. This profile does a compare build run with no
|
// corresponding debug profile. This profile does a compare build run with no
|
||||||
// changes to verify that the compare script has a clean baseline
|
// changes to verify that the compare script has a clean baseline
|
||||||
@@ -733,18 +705,8 @@ var getJibProfilesProfiles = function (input, common, data) {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
// Profiles used to run tests. Used in JPRT and Mach 5.
|
// Profiles used to run tests.
|
||||||
var testOnlyProfiles = {
|
var testOnlyProfiles = {
|
||||||
"run-test-jprt": {
|
|
||||||
target_os: input.build_os,
|
|
||||||
target_cpu: input.build_cpu,
|
|
||||||
dependencies: [ "jtreg", "gnumake", "boot_jdk", "devkit", "jib" ],
|
|
||||||
labels: "test",
|
|
||||||
environment: {
|
|
||||||
"JT_JAVA": common.boot_jdk_home
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"run-test": {
|
"run-test": {
|
||||||
target_os: input.build_os,
|
target_os: input.build_os,
|
||||||
target_cpu: input.build_cpu,
|
target_cpu: input.build_cpu,
|
||||||
@@ -766,16 +728,16 @@ var getJibProfilesProfiles = function (input, common, data) {
|
|||||||
"run-test-prebuilt": {
|
"run-test-prebuilt": {
|
||||||
target_os: input.build_os,
|
target_os: input.build_os,
|
||||||
target_cpu: input.build_cpu,
|
target_cpu: input.build_cpu,
|
||||||
src: "src.conf",
|
dependencies: [
|
||||||
dependencies: [ "jtreg", "gnumake", "boot_jdk", "jib", testedProfile + ".jdk",
|
"jtreg", "gnumake", "boot_jdk", "devkit", "jib", testedProfile + ".jdk",
|
||||||
testedProfile + ".test", "src.full"
|
testedProfile + ".test"
|
||||||
],
|
],
|
||||||
work_dir: input.get("src.full", "install_path") + "/test",
|
src: "src.conf",
|
||||||
|
make_args: [ "run-test-prebuilt", "LOG_CMDLINES=true", "JTREG_VERBOSE=fail,error,time" ],
|
||||||
environment: {
|
environment: {
|
||||||
"JT_JAVA": common.boot_jdk_home,
|
"BOOT_JDK": common.boot_jdk_home,
|
||||||
"PRODUCT_HOME": input.get(testedProfile + ".jdk", "home_path"),
|
"JDK_IMAGE_DIR": input.get(testedProfile + ".jdk", "home_path"),
|
||||||
"TEST_IMAGE_DIR": input.get(testedProfile + ".test", "home_path"),
|
"TEST_IMAGE_DIR": input.get(testedProfile + ".test", "home_path")
|
||||||
"TEST_OUTPUT_DIR": input.src_top_dir
|
|
||||||
},
|
},
|
||||||
labels: "test"
|
labels: "test"
|
||||||
}
|
}
|
||||||
@@ -801,12 +763,10 @@ var getJibProfilesProfiles = function (input, common, data) {
|
|||||||
// This gives us a guaranteed working version of lldb for the jtreg failure handler.
|
// This gives us a guaranteed working version of lldb for the jtreg failure handler.
|
||||||
if (input.build_os == "macosx") {
|
if (input.build_os == "macosx") {
|
||||||
macosxRunTestExtra = {
|
macosxRunTestExtra = {
|
||||||
dependencies: [ "devkit" ],
|
|
||||||
environment_path: input.get("devkit", "install_path")
|
environment_path: input.get("devkit", "install_path")
|
||||||
+ "/Xcode.app/Contents/Developer/usr/bin"
|
+ "/Xcode.app/Contents/Developer/usr/bin"
|
||||||
};
|
};
|
||||||
profiles["run-test"] = concatObjects(profiles["run-test"], macosxRunTestExtra);
|
profiles["run-test"] = concatObjects(profiles["run-test"], macosxRunTestExtra);
|
||||||
profiles["run-test-jprt"] = concatObjects(profiles["run-test-jprt"], macosxRunTestExtra);
|
|
||||||
profiles["run-test-prebuilt"] = concatObjects(profiles["run-test-prebuilt"], macosxRunTestExtra);
|
profiles["run-test-prebuilt"] = concatObjects(profiles["run-test-prebuilt"], macosxRunTestExtra);
|
||||||
}
|
}
|
||||||
// On windows we want the debug symbols available at test time
|
// On windows we want the debug symbols available at test time
|
||||||
@@ -814,13 +774,34 @@ var getJibProfilesProfiles = function (input, common, data) {
|
|||||||
windowsRunTestPrebuiltExtra = {
|
windowsRunTestPrebuiltExtra = {
|
||||||
dependencies: [ testedProfile + ".jdk_symbols" ],
|
dependencies: [ testedProfile + ".jdk_symbols" ],
|
||||||
environment: {
|
environment: {
|
||||||
"PRODUCT_SYMBOLS_HOME": input.get(testedProfile + ".jdk_symbols", "home_path"),
|
"SYMBOLS_IMAGE_DIR": input.get(testedProfile + ".jdk_symbols", "home_path"),
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
profiles["run-test-prebuilt"] = concatObjects(profiles["run-test-prebuilt"],
|
profiles["run-test-prebuilt"] = concatObjects(profiles["run-test-prebuilt"],
|
||||||
windowsRunTestPrebuiltExtra);
|
windowsRunTestPrebuiltExtra);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// The profile run-test-prebuilt defines src.conf as the src bundle. When
|
||||||
|
// running in Mach 5, this reduces the time it takes to populate the
|
||||||
|
// considerably. But with just src.conf, we cannot actually run any tests,
|
||||||
|
// so if running from a workspace with just src.conf in it, we need to also
|
||||||
|
// get src.full as a dependency, and define the work_dir (where make gets
|
||||||
|
// run) to be in the src.full install path. By running in the install path,
|
||||||
|
// the same cached installation of the full src can be reused for multiple
|
||||||
|
// test tasks. Care must however be taken not to polute that work dir by
|
||||||
|
// setting the appropriate make variables to control output directories.
|
||||||
|
//
|
||||||
|
// Use the existance of the top level README as indication of if this is
|
||||||
|
// the full source or just src.conf.
|
||||||
|
if (!new java.io.File(__DIR__, "../../README").exists()) {
|
||||||
|
var runTestPrebuiltSrcFullExtra = {
|
||||||
|
dependencies: "src.full",
|
||||||
|
work_dir: input.get("src.full", "install_path"),
|
||||||
|
}
|
||||||
|
profiles["run-test-prebuilt"] = concatObjects(profiles["run-test-prebuilt"],
|
||||||
|
runTestPrebuiltSrcFullExtra);
|
||||||
|
}
|
||||||
|
|
||||||
// Generate the missing platform attributes
|
// Generate the missing platform attributes
|
||||||
profiles = generatePlatformAttributes(profiles);
|
profiles = generatePlatformAttributes(profiles);
|
||||||
profiles = generateDefaultMakeTargetsConfigureArg(common, profiles);
|
profiles = generateDefaultMakeTargetsConfigureArg(common, profiles);
|
||||||
@@ -837,21 +818,13 @@ var getJibProfilesProfiles = function (input, common, data) {
|
|||||||
var getJibProfilesDependencies = function (input, common) {
|
var getJibProfilesDependencies = function (input, common) {
|
||||||
|
|
||||||
var devkit_platform_revisions = {
|
var devkit_platform_revisions = {
|
||||||
linux_x64: "gcc7.3.0-OEL6.4+1.0",
|
linux_x64: "gcc7.3.0-OEL6.4+1.1",
|
||||||
macosx_x64: "Xcode9.4-MacOSX10.13+1.0",
|
macosx_x64: "Xcode9.4-MacOSX10.13+1.0",
|
||||||
solaris_x64: "SS12u4-Solaris11u1+1.0",
|
solaris_x64: "SS12u4-Solaris11u1+1.0",
|
||||||
solaris_sparcv9: "SS12u4-Solaris11u1+1.1",
|
solaris_sparcv9: "SS12u6-Solaris11u3+1.0",
|
||||||
windows_x64: "VS2017-15.5.5+1.0",
|
windows_x64: "VS2017-15.5.5+1.0",
|
||||||
linux_aarch64: (input.profile != null && input.profile.indexOf("arm64") >= 0
|
linux_aarch64: "gcc7.3.0-Fedora27+1.1",
|
||||||
? "gcc-linaro-aarch64-linux-gnu-4.8-2013.11_linux+1.0"
|
linux_arm: "gcc7.3.0-Fedora27+1.1"
|
||||||
: "gcc7.3.0-Fedora27+1.0"),
|
|
||||||
linux_arm: (input.profile != null && input.profile.indexOf("hflt") >= 0
|
|
||||||
? "gcc-linaro-arm-linux-gnueabihf-raspbian-2012.09-20120921_linux+1.0"
|
|
||||||
: (input.profile.indexOf("arm32") >= 0
|
|
||||||
? "gcc7.3.0-Fedora27+1.0"
|
|
||||||
: "arm-linaro-4.7+1.0"
|
|
||||||
)
|
|
||||||
)
|
|
||||||
};
|
};
|
||||||
|
|
||||||
var devkit_platform = (input.target_cpu == "x86"
|
var devkit_platform = (input.target_cpu == "x86"
|
||||||
@@ -871,9 +844,10 @@ var getJibProfilesDependencies = function (input, common) {
|
|||||||
server: "jpg",
|
server: "jpg",
|
||||||
product: "jdk",
|
product: "jdk",
|
||||||
version: common.boot_jdk_version,
|
version: common.boot_jdk_version,
|
||||||
build_number: "46",
|
build_number: "28",
|
||||||
file: "bundles/" + boot_jdk_platform + "/jdk-" + common.boot_jdk_version + "_"
|
file: "bundles/" + boot_jdk_platform + "/jdk-" + common.boot_jdk_version + "_"
|
||||||
+ boot_jdk_platform + "_bin.tar.gz",
|
+ boot_jdk_platform + "_bin"
|
||||||
|
+ (input.build_os == "windows" ? ".zip" : ".tar.gz"),
|
||||||
configure_args: "--with-boot-jdk=" + common.boot_jdk_home,
|
configure_args: "--with-boot-jdk=" + common.boot_jdk_home,
|
||||||
environment_path: common.boot_jdk_home + "/bin"
|
environment_path: common.boot_jdk_home + "/bin"
|
||||||
},
|
},
|
||||||
@@ -882,7 +856,10 @@ var getJibProfilesDependencies = function (input, common) {
|
|||||||
organization: common.organization,
|
organization: common.organization,
|
||||||
ext: "tar.gz",
|
ext: "tar.gz",
|
||||||
module: "devkit-" + devkit_platform,
|
module: "devkit-" + devkit_platform,
|
||||||
revision: devkit_platform_revisions[devkit_platform]
|
revision: devkit_platform_revisions[devkit_platform],
|
||||||
|
environment: {
|
||||||
|
"DEVKIT_HOME": input.get("devkit", "home_path"),
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
build_devkit: {
|
build_devkit: {
|
||||||
@@ -901,13 +878,27 @@ var getJibProfilesDependencies = function (input, common) {
|
|||||||
jtreg: {
|
jtreg: {
|
||||||
server: "javare",
|
server: "javare",
|
||||||
revision: "4.2",
|
revision: "4.2",
|
||||||
build_number: "b12",
|
build_number: "b13",
|
||||||
checksum_file: "MD5_VALUES",
|
checksum_file: "MD5_VALUES",
|
||||||
file: "jtreg_bin-4.2.zip",
|
file: "jtreg_bin-4.2.zip",
|
||||||
environment_name: "JT_HOME",
|
environment_name: "JT_HOME",
|
||||||
environment_path: input.get("jtreg", "install_path") + "/jtreg/bin"
|
environment_path: input.get("jtreg", "install_path") + "/jtreg/bin"
|
||||||
},
|
},
|
||||||
|
|
||||||
|
jmh: {
|
||||||
|
organization: common.organization,
|
||||||
|
ext: "tar.gz",
|
||||||
|
revision: "1.21+1.0"
|
||||||
|
},
|
||||||
|
|
||||||
|
jcov: {
|
||||||
|
server: "jpg",
|
||||||
|
product: "jcov",
|
||||||
|
version: "3.0",
|
||||||
|
build_number: "b07",
|
||||||
|
file: "bundles/jcov-3_0.zip",
|
||||||
|
},
|
||||||
|
|
||||||
gnumake: {
|
gnumake: {
|
||||||
organization: common.organization,
|
organization: common.organization,
|
||||||
ext: "tar.gz",
|
ext: "tar.gz",
|
||||||
@@ -949,7 +940,7 @@ var getJibProfilesDependencies = function (input, common) {
|
|||||||
pandoc: {
|
pandoc: {
|
||||||
organization: common.organization,
|
organization: common.organization,
|
||||||
ext: "tar.gz",
|
ext: "tar.gz",
|
||||||
revision: "1.17.2+1.0",
|
revision: "2.3.1+1.0",
|
||||||
module: "pandoc-" + input.target_platform,
|
module: "pandoc-" + input.target_platform,
|
||||||
configure_args: "PANDOC=" + input.get("pandoc", "install_path") + "/pandoc/pandoc",
|
configure_args: "PANDOC=" + input.get("pandoc", "install_path") + "/pandoc/pandoc",
|
||||||
environment_path: input.get("pandoc", "install_path") + "/pandoc"
|
environment_path: input.get("pandoc", "install_path") + "/pandoc"
|
||||||
@@ -961,9 +952,9 @@ var getJibProfilesDependencies = function (input, common) {
|
|||||||
ext: "zip",
|
ext: "zip",
|
||||||
classifier: "distribution",
|
classifier: "distribution",
|
||||||
revision: "3.0-SNAPSHOT",
|
revision: "3.0-SNAPSHOT",
|
||||||
environment_name: "JIB_JAR",
|
environment_name: "JIB_HOME",
|
||||||
environment_value: input.get("jib", "install_path")
|
environment_value: input.get("jib", "install_path")
|
||||||
+ "/jib-3.0-SNAPSHOT-distribution/lib/jib-3.0-SNAPSHOT.jar"
|
+ "/jib-3.0-SNAPSHOT-distribution"
|
||||||
},
|
},
|
||||||
|
|
||||||
ant: {
|
ant: {
|
||||||
@@ -983,14 +974,6 @@ var getJibProfilesDependencies = function (input, common) {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
// Need to add a value for the Visual Studio tools variable to make
|
|
||||||
// jaot be able to pick up the Visual Studio linker in testing.
|
|
||||||
if (input.target_os == "windows") {
|
|
||||||
dependencies.devkit.environment = {
|
|
||||||
VS120COMNTOOLS: input.get("devkit", "install_path") + "/Common7/Tools"
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
return dependencies;
|
return dependencies;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1171,7 +1154,7 @@ var versionArgs = function(input, common) {
|
|||||||
args = concat(args,
|
args = concat(args,
|
||||||
// This needs to be changed when we start building release candidates
|
// This needs to be changed when we start building release candidates
|
||||||
// with-version-pre must be set to ea for 'ea' and empty for fcs build
|
// with-version-pre must be set to ea for 'ea' and empty for fcs build
|
||||||
"--with-version-pre=",
|
"--with-version-pre=ea",
|
||||||
"--without-version-opt");
|
"--without-version-opt");
|
||||||
} else {
|
} else {
|
||||||
args = concat(args, "--with-version-opt=" + common.build_id);
|
args = concat(args, "--with-version-opt=" + common.build_id);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# 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,7 +31,7 @@ $(eval $(call IncludeCustomExtension, copy/Copy-java.base.gmk))
|
|||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
ifneq ($(findstring $(OPENJDK_TARGET_OS), windows aix),)
|
ifeq ($(OPENJDK_TARGET_OS), aix)
|
||||||
|
|
||||||
TZMAPPINGS_SRC := $(TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS)/conf
|
TZMAPPINGS_SRC := $(TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS)/conf
|
||||||
|
|
||||||
@@ -128,7 +128,7 @@ POLICY_DST := $(CONF_DST_DIR)/security/java.policy
|
|||||||
POLICY_SRC_LIST := $(POLICY_SRC)
|
POLICY_SRC_LIST := $(POLICY_SRC)
|
||||||
|
|
||||||
$(POLICY_DST): $(POLICY_SRC_LIST)
|
$(POLICY_DST): $(POLICY_SRC_LIST)
|
||||||
$(MKDIR) -p $(@D)
|
$(call MakeTargetDir)
|
||||||
$(RM) $@ $@.tmp
|
$(RM) $@ $@.tmp
|
||||||
$(foreach f,$(POLICY_SRC_LIST),$(CAT) $(f) >> $@.tmp;)
|
$(foreach f,$(POLICY_SRC_LIST),$(CAT) $(f) >> $@.tmp;)
|
||||||
$(MV) $@.tmp $@
|
$(MV) $@.tmp $@
|
||||||
@@ -153,7 +153,7 @@ ifneq ($(IMPORT_MODULES_CONF), )
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
$(DEF_POLICY_DST): $(DEF_POLICY_SRC_LIST)
|
$(DEF_POLICY_DST): $(DEF_POLICY_SRC_LIST)
|
||||||
$(MKDIR) -p $(@D)
|
$(call MakeTargetDir)
|
||||||
$(RM) $@ $@.tmp
|
$(RM) $@ $@.tmp
|
||||||
$(foreach f,$(DEF_POLICY_SRC_LIST),$(CAT) $(f) >> $@.tmp;)
|
$(foreach f,$(DEF_POLICY_SRC_LIST),$(CAT) $(f) >> $@.tmp;)
|
||||||
$(MV) $@.tmp $@
|
$(MV) $@.tmp $@
|
||||||
@@ -183,7 +183,7 @@ $(eval $(call SetupCopyFiles, COPY_NET_PROPERTIES, \
|
|||||||
|
|
||||||
TARGETS += $(COPY_NET_PROPERTIES)
|
TARGETS += $(COPY_NET_PROPERTIES)
|
||||||
|
|
||||||
ifeq ($(OPENJDK_TARGET_OS), solaris)
|
ifneq ($(filter $(OPENJDK_TARGET_OS), solaris linux), )
|
||||||
$(eval $(call SetupCopyFiles, COPY_SDP_CONF, \
|
$(eval $(call SetupCopyFiles, COPY_SDP_CONF, \
|
||||||
FILES := $(TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/conf/sdp/sdp.conf.template, \
|
FILES := $(TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/conf/sdp/sdp.conf.template, \
|
||||||
DEST := $(CONF_DST_DIR)/sdp, \
|
DEST := $(CONF_DST_DIR)/sdp, \
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# 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
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# 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
|
||||||
|
|||||||
@@ -265,6 +265,54 @@ class CharacterData00 extends CharacterData {
|
|||||||
case 0x13ED: mapChar = 0xABBD; break;
|
case 0x13ED: mapChar = 0xABBD; break;
|
||||||
case 0x13EE: mapChar = 0xABBE; break;
|
case 0x13EE: mapChar = 0xABBE; break;
|
||||||
case 0x13EF: mapChar = 0xABBF; break;
|
case 0x13EF: mapChar = 0xABBF; break;
|
||||||
|
case 0x1C90: mapChar = 0x10D0; break;
|
||||||
|
case 0x1C91: mapChar = 0x10D1; break;
|
||||||
|
case 0x1C92: mapChar = 0x10D2; break;
|
||||||
|
case 0x1C93: mapChar = 0x10D3; break;
|
||||||
|
case 0x1C94: mapChar = 0x10D4; break;
|
||||||
|
case 0x1C95: mapChar = 0x10D5; break;
|
||||||
|
case 0x1C96: mapChar = 0x10D6; break;
|
||||||
|
case 0x1C97: mapChar = 0x10D7; break;
|
||||||
|
case 0x1C98: mapChar = 0x10D8; break;
|
||||||
|
case 0x1C99: mapChar = 0x10D9; break;
|
||||||
|
case 0x1C9A: mapChar = 0x10DA; break;
|
||||||
|
case 0x1C9B: mapChar = 0x10DB; break;
|
||||||
|
case 0x1C9C: mapChar = 0x10DC; break;
|
||||||
|
case 0x1C9D: mapChar = 0x10DD; break;
|
||||||
|
case 0x1C9E: mapChar = 0x10DE; break;
|
||||||
|
case 0x1C9F: mapChar = 0x10DF; break;
|
||||||
|
case 0x1CA0: mapChar = 0x10E0; break;
|
||||||
|
case 0x1CA1: mapChar = 0x10E1; break;
|
||||||
|
case 0x1CA2: mapChar = 0x10E2; break;
|
||||||
|
case 0x1CA3: mapChar = 0x10E3; break;
|
||||||
|
case 0x1CA4: mapChar = 0x10E4; break;
|
||||||
|
case 0x1CA5: mapChar = 0x10E5; break;
|
||||||
|
case 0x1CA6: mapChar = 0x10E6; break;
|
||||||
|
case 0x1CA7: mapChar = 0x10E7; break;
|
||||||
|
case 0x1CA8: mapChar = 0x10E8; break;
|
||||||
|
case 0x1CA9: mapChar = 0x10E9; break;
|
||||||
|
case 0x1CAA: mapChar = 0x10EA; break;
|
||||||
|
case 0x1CAB: mapChar = 0x10EB; break;
|
||||||
|
case 0x1CAC: mapChar = 0x10EC; break;
|
||||||
|
case 0x1CAD: mapChar = 0x10ED; break;
|
||||||
|
case 0x1CAE: mapChar = 0x10EE; break;
|
||||||
|
case 0x1CAF: mapChar = 0x10EF; break;
|
||||||
|
case 0x1CB0: mapChar = 0x10F0; break;
|
||||||
|
case 0x1CB1: mapChar = 0x10F1; break;
|
||||||
|
case 0x1CB2: mapChar = 0x10F2; break;
|
||||||
|
case 0x1CB3: mapChar = 0x10F3; break;
|
||||||
|
case 0x1CB4: mapChar = 0x10F4; break;
|
||||||
|
case 0x1CB5: mapChar = 0x10F5; break;
|
||||||
|
case 0x1CB6: mapChar = 0x10F6; break;
|
||||||
|
case 0x1CB7: mapChar = 0x10F7; break;
|
||||||
|
case 0x1CB8: mapChar = 0x10F8; break;
|
||||||
|
case 0x1CB9: mapChar = 0x10F9; break;
|
||||||
|
case 0x1CBA: mapChar = 0x10FA; break;
|
||||||
|
case 0x1CBB: mapChar = 0x10FB; break;
|
||||||
|
case 0x1CBC: mapChar = 0x10FC; break;
|
||||||
|
case 0x1CBD: mapChar = 0x10FD; break;
|
||||||
|
case 0x1CBE: mapChar = 0x10FE; break;
|
||||||
|
case 0x1CBF: mapChar = 0x10FF; break;
|
||||||
case 0x1E9E: mapChar = 0x00DF; break;
|
case 0x1E9E: mapChar = 0x00DF; break;
|
||||||
case 0x1F88: mapChar = 0x1F80; break;
|
case 0x1F88: mapChar = 0x1F80; break;
|
||||||
case 0x1F89: mapChar = 0x1F81; break;
|
case 0x1F89: mapChar = 0x1F81; break;
|
||||||
@@ -355,6 +403,52 @@ class CharacterData00 extends CharacterData {
|
|||||||
case 0x0287: mapChar = 0xA7B1; break;
|
case 0x0287: mapChar = 0xA7B1; break;
|
||||||
case 0x029D: mapChar = 0xA7B2; break;
|
case 0x029D: mapChar = 0xA7B2; break;
|
||||||
case 0x029E: mapChar = 0xA7B0; break;
|
case 0x029E: mapChar = 0xA7B0; break;
|
||||||
|
case 0x10D0: mapChar = 0x1C90; break;
|
||||||
|
case 0x10D1: mapChar = 0x1C91; break;
|
||||||
|
case 0x10D2: mapChar = 0x1C92; break;
|
||||||
|
case 0x10D3: mapChar = 0x1C93; break;
|
||||||
|
case 0x10D4: mapChar = 0x1C94; break;
|
||||||
|
case 0x10D5: mapChar = 0x1C95; break;
|
||||||
|
case 0x10D6: mapChar = 0x1C96; break;
|
||||||
|
case 0x10D7: mapChar = 0x1C97; break;
|
||||||
|
case 0x10D8: mapChar = 0x1C98; break;
|
||||||
|
case 0x10D9: mapChar = 0x1C99; break;
|
||||||
|
case 0x10DA: mapChar = 0x1C9A; break;
|
||||||
|
case 0x10DB: mapChar = 0x1C9B; break;
|
||||||
|
case 0x10DC: mapChar = 0x1C9C; break;
|
||||||
|
case 0x10DD: mapChar = 0x1C9D; break;
|
||||||
|
case 0x10DE: mapChar = 0x1C9E; break;
|
||||||
|
case 0x10DF: mapChar = 0x1C9F; break;
|
||||||
|
case 0x10E0: mapChar = 0x1CA0; break;
|
||||||
|
case 0x10E1: mapChar = 0x1CA1; break;
|
||||||
|
case 0x10E2: mapChar = 0x1CA2; break;
|
||||||
|
case 0x10E3: mapChar = 0x1CA3; break;
|
||||||
|
case 0x10E4: mapChar = 0x1CA4; break;
|
||||||
|
case 0x10E5: mapChar = 0x1CA5; break;
|
||||||
|
case 0x10E6: mapChar = 0x1CA6; break;
|
||||||
|
case 0x10E7: mapChar = 0x1CA7; break;
|
||||||
|
case 0x10E8: mapChar = 0x1CA8; break;
|
||||||
|
case 0x10E9: mapChar = 0x1CA9; break;
|
||||||
|
case 0x10EA: mapChar = 0x1CAA; break;
|
||||||
|
case 0x10EB: mapChar = 0x1CAB; break;
|
||||||
|
case 0x10EC: mapChar = 0x1CAC; break;
|
||||||
|
case 0x10ED: mapChar = 0x1CAD; break;
|
||||||
|
case 0x10EE: mapChar = 0x1CAE; break;
|
||||||
|
case 0x10EF: mapChar = 0x1CAF; break;
|
||||||
|
case 0x10F0: mapChar = 0x1CB0; break;
|
||||||
|
case 0x10F1: mapChar = 0x1CB1; break;
|
||||||
|
case 0x10F2: mapChar = 0x1CB2; break;
|
||||||
|
case 0x10F3: mapChar = 0x1CB3; break;
|
||||||
|
case 0x10F4: mapChar = 0x1CB4; break;
|
||||||
|
case 0x10F5: mapChar = 0x1CB5; break;
|
||||||
|
case 0x10F6: mapChar = 0x1CB6; break;
|
||||||
|
case 0x10F7: mapChar = 0x1CB7; break;
|
||||||
|
case 0x10F8: mapChar = 0x1CB8; break;
|
||||||
|
case 0x10F9: mapChar = 0x1CB9; break;
|
||||||
|
case 0x10FA: mapChar = 0x1CBA; break;
|
||||||
|
case 0x10FD: mapChar = 0x1CBD; break;
|
||||||
|
case 0x10FE: mapChar = 0x1CBE; break;
|
||||||
|
case 0x10FF: mapChar = 0x1CBF; break;
|
||||||
case 0x1C80: mapChar = 0x0412; break;
|
case 0x1C80: mapChar = 0x0412; break;
|
||||||
case 0x1C81: mapChar = 0x0414; break;
|
case 0x1C81: mapChar = 0x0414; break;
|
||||||
case 0x1C82: mapChar = 0x041E; break;
|
case 0x1C82: mapChar = 0x041E; break;
|
||||||
@@ -544,10 +638,17 @@ class CharacterData00 extends CharacterData {
|
|||||||
mapChar = ch + 1;
|
mapChar = ch + 1;
|
||||||
}
|
}
|
||||||
else if ((val & $$maskLowerCase) == 0) {
|
else if ((val & $$maskLowerCase) == 0) {
|
||||||
|
// For some Georgian letters, titlecase form is
|
||||||
|
// same as this character.
|
||||||
|
if(ch >= 0x10D0 && ch <= 0x10FF) {
|
||||||
|
mapChar = ch;
|
||||||
|
}
|
||||||
|
else {
|
||||||
// The character does not have a lowercase equivalent, so it must
|
// The character does not have a lowercase equivalent, so it must
|
||||||
// already be lowercase; so subtract 1 to get the titlecase form.
|
// already be lowercase; so subtract 1 to get the titlecase form.
|
||||||
mapChar = ch - 1;
|
mapChar = ch - 1;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
// else {
|
// else {
|
||||||
// The character has both an uppercase equivalent and a lowercase
|
// The character has both an uppercase equivalent and a lowercase
|
||||||
// equivalent, so it must itself be a titlecase form; return it.
|
// equivalent, so it must itself be a titlecase form; return it.
|
||||||
@@ -653,6 +754,21 @@ class CharacterData00 extends CharacterData {
|
|||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
boolean isDigit(int ch) {
|
||||||
|
int props = getProperties(ch);
|
||||||
|
return (props & $$maskType) == Character.DECIMAL_DIGIT_NUMBER;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean isLowerCase(int ch) {
|
||||||
|
int props = getProperties(ch);
|
||||||
|
return (props & $$maskType) == Character.LOWERCASE_LETTER;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean isUpperCase(int ch) {
|
||||||
|
int props = getProperties(ch);
|
||||||
|
return (props & $$maskType) == Character.UPPERCASE_LETTER;
|
||||||
|
}
|
||||||
|
|
||||||
boolean isWhitespace(int ch) {
|
boolean isWhitespace(int ch) {
|
||||||
int props = getProperties(ch);
|
int props = getProperties(ch);
|
||||||
return ((props & $$maskIdentifierInfo) == $$valueJavaWhitespace);
|
return ((props & $$maskIdentifierInfo) == $$valueJavaWhitespace);
|
||||||
@@ -741,6 +857,52 @@ class CharacterData00 extends CharacterData {
|
|||||||
case 0x0287: mapChar = 0xA7B1; break;
|
case 0x0287: mapChar = 0xA7B1; break;
|
||||||
case 0x029D: mapChar = 0xA7B2; break;
|
case 0x029D: mapChar = 0xA7B2; break;
|
||||||
case 0x029E: mapChar = 0xA7B0; break;
|
case 0x029E: mapChar = 0xA7B0; break;
|
||||||
|
case 0x10D0: mapChar = 0x1C90; break;
|
||||||
|
case 0x10D1: mapChar = 0x1C91; break;
|
||||||
|
case 0x10D2: mapChar = 0x1C92; break;
|
||||||
|
case 0x10D3: mapChar = 0x1C93; break;
|
||||||
|
case 0x10D4: mapChar = 0x1C94; break;
|
||||||
|
case 0x10D5: mapChar = 0x1C95; break;
|
||||||
|
case 0x10D6: mapChar = 0x1C96; break;
|
||||||
|
case 0x10D7: mapChar = 0x1C97; break;
|
||||||
|
case 0x10D8: mapChar = 0x1C98; break;
|
||||||
|
case 0x10D9: mapChar = 0x1C99; break;
|
||||||
|
case 0x10DA: mapChar = 0x1C9A; break;
|
||||||
|
case 0x10DB: mapChar = 0x1C9B; break;
|
||||||
|
case 0x10DC: mapChar = 0x1C9C; break;
|
||||||
|
case 0x10DD: mapChar = 0x1C9D; break;
|
||||||
|
case 0x10DE: mapChar = 0x1C9E; break;
|
||||||
|
case 0x10DF: mapChar = 0x1C9F; break;
|
||||||
|
case 0x10E0: mapChar = 0x1CA0; break;
|
||||||
|
case 0x10E1: mapChar = 0x1CA1; break;
|
||||||
|
case 0x10E2: mapChar = 0x1CA2; break;
|
||||||
|
case 0x10E3: mapChar = 0x1CA3; break;
|
||||||
|
case 0x10E4: mapChar = 0x1CA4; break;
|
||||||
|
case 0x10E5: mapChar = 0x1CA5; break;
|
||||||
|
case 0x10E6: mapChar = 0x1CA6; break;
|
||||||
|
case 0x10E7: mapChar = 0x1CA7; break;
|
||||||
|
case 0x10E8: mapChar = 0x1CA8; break;
|
||||||
|
case 0x10E9: mapChar = 0x1CA9; break;
|
||||||
|
case 0x10EA: mapChar = 0x1CAA; break;
|
||||||
|
case 0x10EB: mapChar = 0x1CAB; break;
|
||||||
|
case 0x10EC: mapChar = 0x1CAC; break;
|
||||||
|
case 0x10ED: mapChar = 0x1CAD; break;
|
||||||
|
case 0x10EE: mapChar = 0x1CAE; break;
|
||||||
|
case 0x10EF: mapChar = 0x1CAF; break;
|
||||||
|
case 0x10F0: mapChar = 0x1CB0; break;
|
||||||
|
case 0x10F1: mapChar = 0x1CB1; break;
|
||||||
|
case 0x10F2: mapChar = 0x1CB2; break;
|
||||||
|
case 0x10F3: mapChar = 0x1CB3; break;
|
||||||
|
case 0x10F4: mapChar = 0x1CB4; break;
|
||||||
|
case 0x10F5: mapChar = 0x1CB5; break;
|
||||||
|
case 0x10F6: mapChar = 0x1CB6; break;
|
||||||
|
case 0x10F7: mapChar = 0x1CB7; break;
|
||||||
|
case 0x10F8: mapChar = 0x1CB8; break;
|
||||||
|
case 0x10F9: mapChar = 0x1CB9; break;
|
||||||
|
case 0x10FA: mapChar = 0x1CBA; break;
|
||||||
|
case 0x10FD: mapChar = 0x1CBD; break;
|
||||||
|
case 0x10FE: mapChar = 0x1CBE; break;
|
||||||
|
case 0x10FF: mapChar = 0x1CBF; break;
|
||||||
case 0x1C80: mapChar = 0x0412; break;
|
case 0x1C80: mapChar = 0x0412; break;
|
||||||
case 0x1C81: mapChar = 0x0414; break;
|
case 0x1C81: mapChar = 0x0414; break;
|
||||||
case 0x1C82: mapChar = 0x041E; break;
|
case 0x1C82: mapChar = 0x041E; break;
|
||||||
|
|||||||
@@ -364,6 +364,8 @@ class CharacterData01 extends CharacterData {
|
|||||||
case 0x10E78: retval = 700; break; // RUMI NUMBER SEVEN HUNDRED
|
case 0x10E78: retval = 700; break; // RUMI NUMBER SEVEN HUNDRED
|
||||||
case 0x10E79: retval = 800; break; // RUMI NUMBER EIGHT HUNDRED
|
case 0x10E79: retval = 800; break; // RUMI NUMBER EIGHT HUNDRED
|
||||||
case 0x10E7A: retval = 900; break; // RUMI NUMBER NINE HUNDRED
|
case 0x10E7A: retval = 900; break; // RUMI NUMBER NINE HUNDRED
|
||||||
|
case 0x10F25: retval = 100; break; // OLD SOGDIAN NUMBER ONE HUNDRED
|
||||||
|
case 0x10F54: retval = 100; break; // SOGDIAN NUMBER ONE HUNDRED
|
||||||
case 0x1105E: retval = 40; break; // BRAHMI NUMBER FORTY
|
case 0x1105E: retval = 40; break; // BRAHMI NUMBER FORTY
|
||||||
case 0x1105F: retval = 50; break; // BRAHMI NUMBER FIFTY
|
case 0x1105F: retval = 50; break; // BRAHMI NUMBER FIFTY
|
||||||
case 0x11060: retval = 60; break; // BRAHMI NUMBER SIXTY
|
case 0x11060: retval = 60; break; // BRAHMI NUMBER SIXTY
|
||||||
@@ -407,6 +409,46 @@ class CharacterData01 extends CharacterData {
|
|||||||
case 0x1D36F: retval = 70; break; // COUNTING ROD TENS DIGIT SEVEN
|
case 0x1D36F: retval = 70; break; // COUNTING ROD TENS DIGIT SEVEN
|
||||||
case 0x1D370: retval = 80; break; // COUNTING ROD TENS DIGIT EIGHT
|
case 0x1D370: retval = 80; break; // COUNTING ROD TENS DIGIT EIGHT
|
||||||
case 0x1D371: retval = 90; break; // COUNTING ROD TENS DIGIT NINE
|
case 0x1D371: retval = 90; break; // COUNTING ROD TENS DIGIT NINE
|
||||||
|
case 0x1EC7D: retval = 40; break; // INDIC SIYAQ NUMBER FORTY
|
||||||
|
case 0x1EC7E: retval = 50; break; // INDIC SIYAQ NUMBER FIFTY
|
||||||
|
case 0x1EC7F: retval = 60; break; // INDIC SIYAQ NUMBER SIXTY
|
||||||
|
case 0X1EC80: retval = 70; break; // INDIC SIYAQ NUMBER SEVENTY
|
||||||
|
case 0X1EC81: retval = 80; break; // INDIC SIYAQ NUMBER EIGHTY
|
||||||
|
case 0X1EC82: retval = 90; break; // INDIC SIYAQ NUMBER NINETY
|
||||||
|
case 0X1EC83: retval = 100; break; // INDIC SIYAQ NUMBER ONE HUNDRED
|
||||||
|
case 0X1EC84: retval = 200; break; // INDIC SIYAQ NUMBER TWO HUNDRED
|
||||||
|
case 0X1EC85: retval = 300; break; // INDIC SIYAQ NUMBER THREE HUNDRED
|
||||||
|
case 0X1EC86: retval = 400; break; // INDIC SIYAQ NUMBER FOUR HUNDRED
|
||||||
|
case 0X1EC87: retval = 500; break; // INDIC SIYAQ NUMBER FIVE HUNDRED
|
||||||
|
case 0X1EC88: retval = 600; break; // INDIC SIYAQ NUMBER SIX HUNDRED
|
||||||
|
case 0X1EC89: retval = 700; break; // INDIC SIYAQ NUMBER SEVEN HUNDRED
|
||||||
|
case 0X1EC8A: retval = 800; break; // INDIC SIYAQ NUMBER EIGHT HUNDRED
|
||||||
|
case 0X1EC8B: retval = 900; break; // INDIC SIYAQ NUMBER NINE HUNDRED
|
||||||
|
case 0X1EC8C: retval = 1000; break; // INDIC SIYAQ NUMBER ONE THOUSAND
|
||||||
|
case 0X1EC8D: retval = 2000; break; // INDIC SIYAQ NUMBER TWO THOUSAND
|
||||||
|
case 0X1EC8E: retval = 3000; break; // INDIC SIYAQ NUMBER THREE THOUSAND
|
||||||
|
case 0X1EC8F: retval = 4000; break; // INDIC SIYAQ NUMBER FOUR THOUSAND
|
||||||
|
case 0X1EC90: retval = 5000; break; // INDIC SIYAQ NUMBER FIVE THOUSAND
|
||||||
|
case 0X1EC91: retval = 6000; break; // INDIC SIYAQ NUMBER SIX THOUSAND
|
||||||
|
case 0X1EC92: retval = 7000; break; // INDIC SIYAQ NUMBER SEVEN THOUSAND
|
||||||
|
case 0X1EC93: retval = 8000; break; // INDIC SIYAQ NUMBER EIGHT THOUSAND
|
||||||
|
case 0X1EC94: retval = 9000; break; // INDIC SIYAQ NUMBER NINE THOUSAND
|
||||||
|
case 0X1EC95: retval = 10000; break; // INDIC SIYAQ NUMBER TEN THOUSAND
|
||||||
|
case 0X1EC96: retval = 20000; break; // INDIC SIYAQ NUMBER TWENTY THOUSAND
|
||||||
|
case 0X1EC97: retval = 30000; break; // INDIC SIYAQ NUMBER THIRTY THOUSAND
|
||||||
|
case 0X1EC98: retval = 40000; break; // INDIC SIYAQ NUMBER FORTY THOUSAND
|
||||||
|
case 0X1EC99: retval = 50000; break; // INDIC SIYAQ NUMBER FIFTY THOUSAND
|
||||||
|
case 0X1EC9A: retval = 60000; break; // INDIC SIYAQ NUMBER SIXTY THOUSAND
|
||||||
|
case 0X1EC9B: retval = 70000; break; // INDIC SIYAQ NUMBER SEVENTY THOUSAND
|
||||||
|
case 0X1EC9C: retval = 80000; break; // INDIC SIYAQ NUMBER EIGHTY THOUSAND
|
||||||
|
case 0X1EC9D: retval = 90000; break; // INDIC SIYAQ NUMBER NINETY THOUSAND
|
||||||
|
case 0X1EC9E: retval = 100000; break; // INDIC SIYAQ NUMBER LAKH
|
||||||
|
case 0X1EC9F: retval = 200000; break; // INDIC SIYAQ NUMBER LAKHAN
|
||||||
|
case 0X1ECA0: retval = 100000; break; // INDIC SIYAQ LAKH MARK
|
||||||
|
case 0X1ECA1: retval = 10000000; break; // INDIC SIYAQ NUMBER KAROR
|
||||||
|
case 0X1ECA2: retval = 20000000; break; // INDIC SIYAQ NUMBER KARORAN
|
||||||
|
case 0X1ECB3: retval = 10000; break; // INDIC SIYAQ NUMBER ALTERNATE TEN THOUSAND
|
||||||
|
case 0X1ECB4: retval = 100000; break; // INDIC SIYAQ NUMBER ALTERNATE LAKH MARK
|
||||||
default: retval = -2; break;
|
default: retval = -2; break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -418,6 +460,21 @@ class CharacterData01 extends CharacterData {
|
|||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
boolean isDigit(int ch) {
|
||||||
|
int props = getProperties(ch);
|
||||||
|
return (props & $$maskType) == Character.DECIMAL_DIGIT_NUMBER;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean isLowerCase(int ch) {
|
||||||
|
int props = getProperties(ch);
|
||||||
|
return (props & $$maskType) == Character.LOWERCASE_LETTER;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean isUpperCase(int ch) {
|
||||||
|
int props = getProperties(ch);
|
||||||
|
return (props & $$maskType) == Character.UPPERCASE_LETTER;
|
||||||
|
}
|
||||||
|
|
||||||
boolean isWhitespace(int ch) {
|
boolean isWhitespace(int ch) {
|
||||||
int props = getProperties(ch);
|
int props = getProperties(ch);
|
||||||
return ((props & $$maskIdentifierInfo) == $$valueJavaWhitespace);
|
return ((props & $$maskIdentifierInfo) == $$valueJavaWhitespace);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2003, 2018, 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
|
||||||
@@ -217,6 +217,21 @@ class CharacterData02 extends CharacterData {
|
|||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
boolean isDigit(int ch) {
|
||||||
|
int props = getProperties(ch);
|
||||||
|
return (props & $$maskType) == Character.DECIMAL_DIGIT_NUMBER;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean isLowerCase(int ch) {
|
||||||
|
int props = getProperties(ch);
|
||||||
|
return (props & $$maskType) == Character.LOWERCASE_LETTER;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean isUpperCase(int ch) {
|
||||||
|
int props = getProperties(ch);
|
||||||
|
return (props & $$maskType) == Character.UPPERCASE_LETTER;
|
||||||
|
}
|
||||||
|
|
||||||
boolean isWhitespace(int ch) {
|
boolean isWhitespace(int ch) {
|
||||||
return (getProperties(ch) & $$maskIdentifierInfo) == $$valueJavaWhitespace;
|
return (getProperties(ch) & $$maskIdentifierInfo) == $$valueJavaWhitespace;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2003, 2018, 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
|
||||||
@@ -217,6 +217,21 @@ class CharacterData0E extends CharacterData {
|
|||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
boolean isDigit(int ch) {
|
||||||
|
int props = getProperties(ch);
|
||||||
|
return (props & $$maskType) == Character.DECIMAL_DIGIT_NUMBER;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean isLowerCase(int ch) {
|
||||||
|
int props = getProperties(ch);
|
||||||
|
return (props & $$maskType) == Character.LOWERCASE_LETTER;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean isUpperCase(int ch) {
|
||||||
|
int props = getProperties(ch);
|
||||||
|
return (props & $$maskType) == Character.UPPERCASE_LETTER;
|
||||||
|
}
|
||||||
|
|
||||||
boolean isWhitespace(int ch) {
|
boolean isWhitespace(int ch) {
|
||||||
int props = getProperties(ch);
|
int props = getProperties(ch);
|
||||||
return ((props & $$maskIdentifierInfo) == $$valueJavaWhitespace);
|
return ((props & $$maskIdentifierInfo) == $$valueJavaWhitespace);
|
||||||
|
|||||||
@@ -25,6 +25,8 @@
|
|||||||
|
|
||||||
package java.lang;
|
package java.lang;
|
||||||
|
|
||||||
|
import jdk.internal.HotSpotIntrinsicCandidate;
|
||||||
|
|
||||||
/** The CharacterData class encapsulates the large tables found in
|
/** The CharacterData class encapsulates the large tables found in
|
||||||
Java.lang.Character. */
|
Java.lang.Character. */
|
||||||
|
|
||||||
@@ -78,6 +80,23 @@ class CharacterDataLatin1 extends CharacterData {
|
|||||||
return props;
|
return props;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@HotSpotIntrinsicCandidate
|
||||||
|
boolean isDigit(int ch) {
|
||||||
|
return '0' <= ch && ch <= '9';
|
||||||
|
}
|
||||||
|
|
||||||
|
@HotSpotIntrinsicCandidate
|
||||||
|
boolean isLowerCase(int ch) {
|
||||||
|
int props = getProperties(ch);
|
||||||
|
return (props & $$maskType) == Character.LOWERCASE_LETTER;
|
||||||
|
}
|
||||||
|
|
||||||
|
@HotSpotIntrinsicCandidate
|
||||||
|
boolean isUpperCase(int ch) {
|
||||||
|
int props = getProperties(ch);
|
||||||
|
return (props & $$maskType) == Character.UPPERCASE_LETTER;
|
||||||
|
}
|
||||||
|
|
||||||
boolean isOtherLowercase(int ch) {
|
boolean isOtherLowercase(int ch) {
|
||||||
int props = getPropertiesEx(ch);
|
int props = getPropertiesEx(ch);
|
||||||
return (props & $$maskOtherLowercase) != 0;
|
return (props & $$maskOtherLowercase) != 0;
|
||||||
@@ -214,6 +233,7 @@ class CharacterDataLatin1 extends CharacterData {
|
|||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@HotSpotIntrinsicCandidate
|
||||||
boolean isWhitespace(int ch) {
|
boolean isWhitespace(int ch) {
|
||||||
int props = getProperties(ch);
|
int props = getProperties(ch);
|
||||||
return ((props & $$maskIdentifierInfo) == $$valueJavaWhitespace);
|
return ((props & $$maskIdentifierInfo) == $$valueJavaWhitespace);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2003, 2018, 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
|
||||||
@@ -80,6 +80,18 @@ class CharacterDataPrivateUse extends CharacterData {
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
boolean isDigit(int ch) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean isLowerCase(int ch) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean isUpperCase(int ch) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
boolean isWhitespace(int ch) {
|
boolean isWhitespace(int ch) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2003, 2018, 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
|
||||||
@@ -78,6 +78,18 @@ class CharacterDataUndefined extends CharacterData {
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
boolean isDigit(int ch) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean isLowerCase(int ch) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean isUpperCase(int ch) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
boolean isWhitespace(int ch) {
|
boolean isWhitespace(int ch) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
94
make/data/charsetmapping/IBM1129.c2b
Normal file
94
make/data/charsetmapping/IBM1129.c2b
Normal file
@@ -0,0 +1,94 @@
|
|||||||
|
0x21 U+ff01
|
||||||
|
0x22 U+ff02
|
||||||
|
0x23 U+ff03
|
||||||
|
0x24 U+ff04
|
||||||
|
0x25 U+ff05
|
||||||
|
0x26 U+ff06
|
||||||
|
0x27 U+ff07
|
||||||
|
0x28 U+ff08
|
||||||
|
0x29 U+ff09
|
||||||
|
0x2a U+ff0a
|
||||||
|
0x2b U+ff0b
|
||||||
|
0x2c U+ff0c
|
||||||
|
0x2d U+ff0d
|
||||||
|
0x2e U+ff0e
|
||||||
|
0x2f U+ff0f
|
||||||
|
0x30 U+ff10
|
||||||
|
0x31 U+ff11
|
||||||
|
0x32 U+ff12
|
||||||
|
0x33 U+ff13
|
||||||
|
0x34 U+ff14
|
||||||
|
0x35 U+ff15
|
||||||
|
0x36 U+ff16
|
||||||
|
0x37 U+ff17
|
||||||
|
0x38 U+ff18
|
||||||
|
0x39 U+ff19
|
||||||
|
0x3a U+ff1a
|
||||||
|
0x3b U+ff1b
|
||||||
|
0x3c U+ff1c
|
||||||
|
0x3d U+ff1d
|
||||||
|
0x3e U+ff1e
|
||||||
|
0x3f U+ff1f
|
||||||
|
0x40 U+ff20
|
||||||
|
0x41 U+ff21
|
||||||
|
0x42 U+ff22
|
||||||
|
0x43 U+ff23
|
||||||
|
0x44 U+ff24
|
||||||
|
0x45 U+ff25
|
||||||
|
0x46 U+ff26
|
||||||
|
0x47 U+ff27
|
||||||
|
0x48 U+ff28
|
||||||
|
0x49 U+ff29
|
||||||
|
0x4a U+ff2a
|
||||||
|
0x4b U+ff2b
|
||||||
|
0x4c U+ff2c
|
||||||
|
0x4d U+ff2d
|
||||||
|
0x4e U+ff2e
|
||||||
|
0x4f U+ff2f
|
||||||
|
0x50 U+ff30
|
||||||
|
0x51 U+ff31
|
||||||
|
0x52 U+ff32
|
||||||
|
0x53 U+ff33
|
||||||
|
0x54 U+ff34
|
||||||
|
0x55 U+ff35
|
||||||
|
0x56 U+ff36
|
||||||
|
0x57 U+ff37
|
||||||
|
0x58 U+ff38
|
||||||
|
0x59 U+ff39
|
||||||
|
0x5a U+ff3a
|
||||||
|
0x5b U+ff3b
|
||||||
|
0x5c U+ff3c
|
||||||
|
0x5d U+ff3d
|
||||||
|
0x5e U+ff3e
|
||||||
|
0x5f U+ff3f
|
||||||
|
0x60 U+ff40
|
||||||
|
0x61 U+ff41
|
||||||
|
0x62 U+ff42
|
||||||
|
0x63 U+ff43
|
||||||
|
0x64 U+ff44
|
||||||
|
0x65 U+ff45
|
||||||
|
0x66 U+ff46
|
||||||
|
0x67 U+ff47
|
||||||
|
0x68 U+ff48
|
||||||
|
0x69 U+ff49
|
||||||
|
0x6a U+ff4a
|
||||||
|
0x6b U+ff4b
|
||||||
|
0x6c U+ff4c
|
||||||
|
0x6d U+ff4d
|
||||||
|
0x6e U+ff4e
|
||||||
|
0x6f U+ff4f
|
||||||
|
0x70 U+ff50
|
||||||
|
0x71 U+ff51
|
||||||
|
0x72 U+ff52
|
||||||
|
0x73 U+ff53
|
||||||
|
0x74 U+ff54
|
||||||
|
0x75 U+ff55
|
||||||
|
0x76 U+ff56
|
||||||
|
0x77 U+ff57
|
||||||
|
0x78 U+ff58
|
||||||
|
0x79 U+ff59
|
||||||
|
0x7a U+ff5a
|
||||||
|
0x7b U+ff5b
|
||||||
|
0x7c U+ff5c
|
||||||
|
0x7d U+ff5d
|
||||||
|
0x7e U+ff5e
|
||||||
256
make/data/charsetmapping/IBM1129.map
Normal file
256
make/data/charsetmapping/IBM1129.map
Normal file
@@ -0,0 +1,256 @@
|
|||||||
|
0x00 U+0000
|
||||||
|
0x01 U+0001
|
||||||
|
0x02 U+0002
|
||||||
|
0x03 U+0003
|
||||||
|
0x04 U+0004
|
||||||
|
0x05 U+0005
|
||||||
|
0x06 U+0006
|
||||||
|
0x07 U+0007
|
||||||
|
0x08 U+0008
|
||||||
|
0x09 U+0009
|
||||||
|
0x0a U+000a
|
||||||
|
0x0b U+000b
|
||||||
|
0x0c U+000c
|
||||||
|
0x0d U+000d
|
||||||
|
0x0e U+000e
|
||||||
|
0x0f U+000f
|
||||||
|
0x10 U+0010
|
||||||
|
0x11 U+0011
|
||||||
|
0x12 U+0012
|
||||||
|
0x13 U+0013
|
||||||
|
0x14 U+0014
|
||||||
|
0x15 U+0015
|
||||||
|
0x16 U+0016
|
||||||
|
0x17 U+0017
|
||||||
|
0x18 U+0018
|
||||||
|
0x19 U+0019
|
||||||
|
0x1a U+001a
|
||||||
|
0x1b U+001b
|
||||||
|
0x1c U+001c
|
||||||
|
0x1d U+001d
|
||||||
|
0x1e U+001e
|
||||||
|
0x1f U+001f
|
||||||
|
0x20 U+0020
|
||||||
|
0x21 U+0021
|
||||||
|
0x22 U+0022
|
||||||
|
0x23 U+0023
|
||||||
|
0x24 U+0024
|
||||||
|
0x25 U+0025
|
||||||
|
0x26 U+0026
|
||||||
|
0x27 U+0027
|
||||||
|
0x28 U+0028
|
||||||
|
0x29 U+0029
|
||||||
|
0x2a U+002a
|
||||||
|
0x2b U+002b
|
||||||
|
0x2c U+002c
|
||||||
|
0x2d U+002d
|
||||||
|
0x2e U+002e
|
||||||
|
0x2f U+002f
|
||||||
|
0x30 U+0030
|
||||||
|
0x31 U+0031
|
||||||
|
0x32 U+0032
|
||||||
|
0x33 U+0033
|
||||||
|
0x34 U+0034
|
||||||
|
0x35 U+0035
|
||||||
|
0x36 U+0036
|
||||||
|
0x37 U+0037
|
||||||
|
0x38 U+0038
|
||||||
|
0x39 U+0039
|
||||||
|
0x3a U+003a
|
||||||
|
0x3b U+003b
|
||||||
|
0x3c U+003c
|
||||||
|
0x3d U+003d
|
||||||
|
0x3e U+003e
|
||||||
|
0x3f U+003f
|
||||||
|
0x40 U+0040
|
||||||
|
0x41 U+0041
|
||||||
|
0x42 U+0042
|
||||||
|
0x43 U+0043
|
||||||
|
0x44 U+0044
|
||||||
|
0x45 U+0045
|
||||||
|
0x46 U+0046
|
||||||
|
0x47 U+0047
|
||||||
|
0x48 U+0048
|
||||||
|
0x49 U+0049
|
||||||
|
0x4a U+004a
|
||||||
|
0x4b U+004b
|
||||||
|
0x4c U+004c
|
||||||
|
0x4d U+004d
|
||||||
|
0x4e U+004e
|
||||||
|
0x4f U+004f
|
||||||
|
0x50 U+0050
|
||||||
|
0x51 U+0051
|
||||||
|
0x52 U+0052
|
||||||
|
0x53 U+0053
|
||||||
|
0x54 U+0054
|
||||||
|
0x55 U+0055
|
||||||
|
0x56 U+0056
|
||||||
|
0x57 U+0057
|
||||||
|
0x58 U+0058
|
||||||
|
0x59 U+0059
|
||||||
|
0x5a U+005a
|
||||||
|
0x5b U+005b
|
||||||
|
0x5c U+005c
|
||||||
|
0x5d U+005d
|
||||||
|
0x5e U+005e
|
||||||
|
0x5f U+005f
|
||||||
|
0x60 U+0060
|
||||||
|
0x61 U+0061
|
||||||
|
0x62 U+0062
|
||||||
|
0x63 U+0063
|
||||||
|
0x64 U+0064
|
||||||
|
0x65 U+0065
|
||||||
|
0x66 U+0066
|
||||||
|
0x67 U+0067
|
||||||
|
0x68 U+0068
|
||||||
|
0x69 U+0069
|
||||||
|
0x6a U+006a
|
||||||
|
0x6b U+006b
|
||||||
|
0x6c U+006c
|
||||||
|
0x6d U+006d
|
||||||
|
0x6e U+006e
|
||||||
|
0x6f U+006f
|
||||||
|
0x70 U+0070
|
||||||
|
0x71 U+0071
|
||||||
|
0x72 U+0072
|
||||||
|
0x73 U+0073
|
||||||
|
0x74 U+0074
|
||||||
|
0x75 U+0075
|
||||||
|
0x76 U+0076
|
||||||
|
0x77 U+0077
|
||||||
|
0x78 U+0078
|
||||||
|
0x79 U+0079
|
||||||
|
0x7a U+007a
|
||||||
|
0x7b U+007b
|
||||||
|
0x7c U+007c
|
||||||
|
0x7d U+007d
|
||||||
|
0x7e U+007e
|
||||||
|
0x7f U+007f
|
||||||
|
0x80 U+0080
|
||||||
|
0x81 U+0081
|
||||||
|
0x82 U+0082
|
||||||
|
0x83 U+0083
|
||||||
|
0x84 U+0084
|
||||||
|
0x85 U+0085
|
||||||
|
0x86 U+0086
|
||||||
|
0x87 U+0087
|
||||||
|
0x88 U+0088
|
||||||
|
0x89 U+0089
|
||||||
|
0x8a U+008a
|
||||||
|
0x8b U+008b
|
||||||
|
0x8c U+008c
|
||||||
|
0x8d U+008d
|
||||||
|
0x8e U+008e
|
||||||
|
0x8f U+008f
|
||||||
|
0x90 U+0090
|
||||||
|
0x91 U+0091
|
||||||
|
0x92 U+0092
|
||||||
|
0x93 U+0093
|
||||||
|
0x94 U+0094
|
||||||
|
0x95 U+0095
|
||||||
|
0x96 U+0096
|
||||||
|
0x97 U+0097
|
||||||
|
0x98 U+0098
|
||||||
|
0x99 U+0099
|
||||||
|
0x9a U+009a
|
||||||
|
0x9b U+009b
|
||||||
|
0x9c U+009c
|
||||||
|
0x9d U+009d
|
||||||
|
0x9e U+009e
|
||||||
|
0x9f U+009f
|
||||||
|
0xa0 U+00a0
|
||||||
|
0xa1 U+00a1
|
||||||
|
0xa2 U+00a2
|
||||||
|
0xa3 U+00a3
|
||||||
|
0xa4 U+00a4
|
||||||
|
0xa5 U+00a5
|
||||||
|
0xa6 U+00a6
|
||||||
|
0xa7 U+00a7
|
||||||
|
0xa8 U+0153
|
||||||
|
0xa9 U+00a9
|
||||||
|
0xaa U+00aa
|
||||||
|
0xab U+00ab
|
||||||
|
0xac U+00ac
|
||||||
|
0xad U+00ad
|
||||||
|
0xae U+00ae
|
||||||
|
0xaf U+00af
|
||||||
|
0xb0 U+00b0
|
||||||
|
0xb1 U+00b1
|
||||||
|
0xb2 U+00b2
|
||||||
|
0xb3 U+00b3
|
||||||
|
0xb4 U+0178
|
||||||
|
0xb5 U+00b5
|
||||||
|
0xb6 U+00b6
|
||||||
|
0xb7 U+00b7
|
||||||
|
0xb8 U+0152
|
||||||
|
0xb9 U+00b9
|
||||||
|
0xba U+00ba
|
||||||
|
0xbb U+00bb
|
||||||
|
0xbc U+00bc
|
||||||
|
0xbd U+00bd
|
||||||
|
0xbe U+00be
|
||||||
|
0xbf U+00bf
|
||||||
|
0xc0 U+00c0
|
||||||
|
0xc1 U+00c1
|
||||||
|
0xc2 U+00c2
|
||||||
|
0xc3 U+0102
|
||||||
|
0xc4 U+00c4
|
||||||
|
0xc5 U+00c5
|
||||||
|
0xc6 U+00c6
|
||||||
|
0xc7 U+00c7
|
||||||
|
0xc8 U+00c8
|
||||||
|
0xc9 U+00c9
|
||||||
|
0xca U+00ca
|
||||||
|
0xcb U+00cb
|
||||||
|
0xcc U+0300
|
||||||
|
0xcd U+00cd
|
||||||
|
0xce U+00ce
|
||||||
|
0xcf U+00cf
|
||||||
|
0xd0 U+0110
|
||||||
|
0xd1 U+00d1
|
||||||
|
0xd2 U+0309
|
||||||
|
0xd3 U+00d3
|
||||||
|
0xd4 U+00d4
|
||||||
|
0xd5 U+01a0
|
||||||
|
0xd6 U+00d6
|
||||||
|
0xd7 U+00d7
|
||||||
|
0xd8 U+00d8
|
||||||
|
0xd9 U+00d9
|
||||||
|
0xda U+00da
|
||||||
|
0xdb U+00db
|
||||||
|
0xdc U+00dc
|
||||||
|
0xdd U+01af
|
||||||
|
0xde U+0303
|
||||||
|
0xdf U+00df
|
||||||
|
0xe0 U+00e0
|
||||||
|
0xe1 U+00e1
|
||||||
|
0xe2 U+00e2
|
||||||
|
0xe3 U+0103
|
||||||
|
0xe4 U+00e4
|
||||||
|
0xe5 U+00e5
|
||||||
|
0xe6 U+00e6
|
||||||
|
0xe7 U+00e7
|
||||||
|
0xe8 U+00e8
|
||||||
|
0xe9 U+00e9
|
||||||
|
0xea U+00ea
|
||||||
|
0xeb U+00eb
|
||||||
|
0xec U+0301
|
||||||
|
0xed U+00ed
|
||||||
|
0xee U+00ee
|
||||||
|
0xef U+00ef
|
||||||
|
0xf0 U+0111
|
||||||
|
0xf1 U+00f1
|
||||||
|
0xf2 U+0323
|
||||||
|
0xf3 U+00f3
|
||||||
|
0xf4 U+00f4
|
||||||
|
0xf5 U+01a1
|
||||||
|
0xf6 U+00f6
|
||||||
|
0xf7 U+00f7
|
||||||
|
0xf8 U+00f8
|
||||||
|
0xf9 U+00f9
|
||||||
|
0xfa U+00fa
|
||||||
|
0xfb U+00fb
|
||||||
|
0xfc U+00fc
|
||||||
|
0xfd U+01b0
|
||||||
|
0xfe U+20ab
|
||||||
|
0xff U+00ff
|
||||||
@@ -5,14 +5,3 @@ A1AD 223C
|
|||||||
A2A6 FF5E
|
A2A6 FF5E
|
||||||
A2C1 2299
|
A2C1 2299
|
||||||
A3DC 20A9
|
A3DC 20A9
|
||||||
#
|
|
||||||
# see .map file for the info regarding following 3 entries
|
|
||||||
#
|
|
||||||
a1aa 6950
|
|
||||||
a1a9 84f1
|
|
||||||
a1ad cf7f
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,15 +1,6 @@
|
|||||||
#
|
#
|
||||||
# source: Cp970.b2c, which is identical(?) to 03CA34B0.TPMAP100
|
# source: Cp970.b2c, which is identical(?) to 03CA34B0.TPMAP100
|
||||||
#
|
#
|
||||||
# Warning:
|
|
||||||
# following 3 c->b only entries exist in the "old" implementation,
|
|
||||||
# they don't appear existing in any of of the cdc 970 tables. Added
|
|
||||||
# them into c2b for "compatibility
|
|
||||||
# 6950 -> a1aa 2014
|
|
||||||
# 84f1 -> a1a9 2010
|
|
||||||
# cf7f -> a1ad 301c
|
|
||||||
#
|
|
||||||
#
|
|
||||||
00 0000
|
00 0000
|
||||||
01 0001
|
01 0001
|
||||||
02 0002
|
02 0002
|
||||||
@@ -294,6 +285,7 @@ A2BD 2661
|
|||||||
A2BE 2665
|
A2BE 2665
|
||||||
A2BF 2667
|
A2BF 2667
|
||||||
A2C0 2663
|
A2C0 2663
|
||||||
|
A2C1 25C9
|
||||||
A2C2 25C8
|
A2C2 25C8
|
||||||
A2C3 25A3
|
A2C3 25A3
|
||||||
A2C4 25D0
|
A2C4 25D0
|
||||||
|
|||||||
@@ -1241,6 +1241,16 @@ charset x-IBM1124 IBM1124
|
|||||||
alias ibm-1124
|
alias ibm-1124
|
||||||
alias 1124
|
alias 1124
|
||||||
|
|
||||||
|
charset x-IBM1129 IBM1129
|
||||||
|
package sun.nio.cs.ext
|
||||||
|
type sbcs
|
||||||
|
hisname Cp1129
|
||||||
|
ascii false
|
||||||
|
alias cp1129 # JDK historical
|
||||||
|
alias ibm1129
|
||||||
|
alias ibm-1129
|
||||||
|
alias 1129
|
||||||
|
|
||||||
charset x-IBM1364 IBM1364
|
charset x-IBM1364 IBM1364
|
||||||
package sun.nio.cs.ext
|
package sun.nio.cs.ext
|
||||||
type ebcdic
|
type ebcdic
|
||||||
@@ -1544,10 +1554,11 @@ charset x-IBM970 IBM970
|
|||||||
|
|
||||||
charset x-IBM964 IBM964
|
charset x-IBM964 IBM964
|
||||||
package sun.nio.cs.ext
|
package sun.nio.cs.ext
|
||||||
type source
|
type template
|
||||||
alias cp964 # JDK historical
|
alias cp964 # JDK historical
|
||||||
alias ibm964
|
alias ibm964
|
||||||
alias ibm-964
|
alias ibm-964
|
||||||
|
alias ibm-euctw
|
||||||
alias 964
|
alias 964
|
||||||
|
|
||||||
charset x-IBM33722 IBM33722
|
charset x-IBM33722 IBM33722
|
||||||
@@ -1851,6 +1862,11 @@ charset x-JIS0212_MS5022X JIS_X_0212_MS5022X
|
|||||||
minmax 0x21 0x7e 0x21 0x7e
|
minmax 0x21 0x7e 0x21 0x7e
|
||||||
internal true # "internal implementation
|
internal true # "internal implementation
|
||||||
|
|
||||||
|
charset SimpleEUCEncoder SimpleEUCEncoder
|
||||||
|
package sun.nio.cs.ext
|
||||||
|
type template
|
||||||
|
internal true
|
||||||
|
|
||||||
########################################################
|
########################################################
|
||||||
#
|
#
|
||||||
# platform specific charsets, to be registered into spi
|
# platform specific charsets, to be registered into spi
|
||||||
|
|||||||
@@ -16,11 +16,14 @@ IBM942C
|
|||||||
IBM943
|
IBM943
|
||||||
IBM943C
|
IBM943C
|
||||||
IBM950
|
IBM950
|
||||||
|
IBM964
|
||||||
IBM970
|
IBM970
|
||||||
IBM1046
|
IBM1046
|
||||||
IBM1124
|
IBM1124
|
||||||
|
IBM1129
|
||||||
IBM1383
|
IBM1383
|
||||||
ISO_8859_6
|
ISO_8859_6
|
||||||
ISO_8859_8
|
ISO_8859_8
|
||||||
MS1252
|
MS1252
|
||||||
TIS_620
|
TIS_620
|
||||||
|
SimpleEUCEncoder
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ formatVersion=3
|
|||||||
# Version of the currency code information in this class.
|
# Version of the currency code information in this class.
|
||||||
# It is a serial number that accompanies with each amendment.
|
# It is a serial number that accompanies with each amendment.
|
||||||
|
|
||||||
dataVersion=167
|
dataVersion=169
|
||||||
|
|
||||||
# List of all valid ISO 4217 currency codes.
|
# List of all valid ISO 4217 currency codes.
|
||||||
# To ensure compatibility, do not remove codes.
|
# To ensure compatibility, do not remove codes.
|
||||||
@@ -54,7 +54,7 @@ all=ADP020-AED784-AFA004-AFN971-ALL008-AMD051-ANG532-AOA973-ARS032-ATS040-AUD036
|
|||||||
SBD090-SCR690-SDD736-SDG938-SEK752-SGD702-SHP654-SIT705-SKK703-SLL694-SOS706-\
|
SBD090-SCR690-SDD736-SDG938-SEK752-SGD702-SHP654-SIT705-SKK703-SLL694-SOS706-\
|
||||||
SRD968-SRG740-SSP728-STD678-STN930-SVC222-SYP760-SZL748-THB764-TJS972-TMM795-TMT934-TND788-TOP776-\
|
SRD968-SRG740-SSP728-STD678-STN930-SVC222-SYP760-SZL748-THB764-TJS972-TMM795-TMT934-TND788-TOP776-\
|
||||||
TPE626-TRL792-TRY949-TTD780-TWD901-TZS834-UAH980-UGX800-USD840-USN997-USS998-UYI940-\
|
TPE626-TRL792-TRY949-TTD780-TWD901-TZS834-UAH980-UGX800-USD840-USN997-USS998-UYI940-\
|
||||||
UYU858-UZS860-VEB862-VEF937-VND704-VUV548-WST882-XAF950-XAG961-XAU959-XBA955-\
|
UYU858-UZS860-VEB862-VEF937-VES928-VND704-VUV548-WST882-XAF950-XAG961-XAU959-XBA955-\
|
||||||
XBB956-XBC957-XBD958-XCD951-XDR960-XFO000-XFU000-XOF952-XPD964-XPF953-\
|
XBB956-XBC957-XBD958-XCD951-XDR960-XFO000-XFU000-XOF952-XPD964-XPF953-\
|
||||||
XPT962-XSU994-XTS963-XUA965-XXX999-YER886-YUM891-ZAR710-ZMK894-ZMW967-ZWD716-ZWL932-\
|
XPT962-XSU994-XTS963-XUA965-XXX999-YER886-YUM891-ZAR710-ZMK894-ZMW967-ZWD716-ZWL932-\
|
||||||
ZWN942-ZWR935
|
ZWN942-ZWR935
|
||||||
@@ -509,7 +509,7 @@ SR=SRD
|
|||||||
SJ=NOK
|
SJ=NOK
|
||||||
# Sint Maarten (Dutch part)
|
# Sint Maarten (Dutch part)
|
||||||
SX=ANG
|
SX=ANG
|
||||||
# SWAZILAND
|
# ESWATINI
|
||||||
SZ=SZL
|
SZ=SZL
|
||||||
# SWEDEN
|
# SWEDEN
|
||||||
SE=SEK
|
SE=SEK
|
||||||
@@ -564,7 +564,7 @@ UZ=UZS
|
|||||||
# VANUATU
|
# VANUATU
|
||||||
VU=VUV
|
VU=VUV
|
||||||
# VENEZUELA (BOLIVARIAN REPUBLIC OF)
|
# VENEZUELA (BOLIVARIAN REPUBLIC OF)
|
||||||
VE=VEF
|
VE=VES
|
||||||
# VIET NAM
|
# VIET NAM
|
||||||
VN=VND
|
VN=VND
|
||||||
# VIRGIN ISLANDS, BRITISH
|
# VIRGIN ISLANDS, BRITISH
|
||||||
|
|||||||
33
make/data/docs-resources/index.html
Normal file
33
make/data/docs-resources/index.html
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
|
||||||
|
<!--
|
||||||
|
Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
|
|
||||||
|
This code is free software; you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License version 2 only, as
|
||||||
|
published by the Free Software Foundation. Oracle designates this
|
||||||
|
particular file as subject to the "Classpath" exception as provided
|
||||||
|
by Oracle in the LICENSE file that accompanied this code.
|
||||||
|
|
||||||
|
This code is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
version 2 for more details (a copy is included in the LICENSE file that
|
||||||
|
accompanied this code).
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License version
|
||||||
|
2 along with this work; if not, write to the Free Software Foundation,
|
||||||
|
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
|
Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||||
|
or visit www.oracle.com if you need additional information or have any
|
||||||
|
questions.
|
||||||
|
-->
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="refresh" content="0;url=api/index.html">
|
||||||
|
<title>Java API Documentation redirect</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2017, 2018, 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
|
||||||
@@ -75,7 +75,7 @@ h4 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
a:link {
|
a:link {
|
||||||
color: #437291;
|
color: #4A6782;
|
||||||
}
|
}
|
||||||
|
|
||||||
a:visited {
|
a:visited {
|
||||||
@@ -117,7 +117,7 @@ caption {
|
|||||||
}
|
}
|
||||||
|
|
||||||
tr:nth-child(even), tr:nth-child(even) th[scope=row] {
|
tr:nth-child(even), tr:nth-child(even) th[scope=row] {
|
||||||
background: #DDD;
|
background: #E3E3E3;
|
||||||
}
|
}
|
||||||
|
|
||||||
tr:nth-child(odd), tr:nth-child(odd) th[scope=row] {
|
tr:nth-child(odd), tr:nth-child(odd) th[scope=row] {
|
||||||
@@ -127,3 +127,14 @@ tr:nth-child(odd), tr:nth-child(odd) th[scope=row] {
|
|||||||
th {
|
th {
|
||||||
background: #DDF;
|
background: #DDF;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
table.centered {
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
}
|
||||||
|
table.centered td {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
.centered {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# 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
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#
|
#
|
||||||
#
|
#
|
||||||
# Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2005, 2018, 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
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user