commit:     54fba455a21cca9530e205301ea0ba11cf9a5056
Author:     Dave Hughes <davidhughes205 <AT> gmail <DOT> com>
AuthorDate: Sat Mar 13 04:02:30 2021 +0000
Commit:     Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Sat Mar 13 16:16:30 2021 +0000
URL:        https://gitweb.gentoo.org/proj/musl.git/commit/?id=54fba455

dev-java/openjdk: bump to latest + some fix-up patches from Alpine

Package-Manager: Portage-3.0.17, Repoman-3.0.2
Manifest-Sign-Key: 0xA1919C830E9498E0
Signed-off-by: Dave Hughes <davidhughes205 <AT> gmail.com>
Signed-off-by: Anthony G. Basile <blueness <AT> gentoo.org>

 dev-java/openjdk/Manifest                          |  55 ++++--
 dev-java/openjdk/files/bootcycle_jobs.patch        |  26 ---
 .../files/musl/8/0002_musl_hotspot_ppc.patch       |  24 ---
 dev-java/openjdk/files/patches/11/0000_README      |  16 ++
 .../11/0001_fix-bootjdk-check.patch}               |  13 +-
 .../11/build.patch => patches/11/1001_build.patch} |  32 ++--
 .../11/1002_aarch64.patch}                         |   9 +-
 .../11/1003_ppc64le.patch}                         |  68 ++++---
 dev-java/openjdk/files/patches/8/0000_README       |  16 ++
 .../8/0001_fix-jdk-ipv6-init.patch}                |   0
 .../8/0002_fix-jdk-close-fds.patch}                |   0
 .../files/patches/8/0003_jdk-disable-vfork.patch   |  27 +++
 .../8/0004_hotspot-insantiate-arrayallocator.patch |  16 ++
 .../0005_fix-build-with-as-needed-toolchain.patch  |  91 +++++++++
 .../8/0006_fix-libjvm-load.patch}                  |   0
 .../8/0007_jdk-includes.patch}                     |   0
 .../8/0008_jdk-execinfo.patch}                     |   0
 .../8/1001_hotspot-musl.patch}                     |   0
 .../8/1002_hotspot-ppc-musl.patch}                 | 203 +++++++++++----------
 .../8/1003_hotspot-aarch64-musl.patch}             |   0
 .../8/1004_hotspot-noagent-musl.patch}             |   0
 .../8/1006_jdk-musl.patch}                         |   0
 ...11.0.9_p11.ebuild => openjdk-11.0.10_p9.ebuild} |  23 +--
 ...k-8.272_p10.ebuild => openjdk-8.282_p08.ebuild} |  37 ++--
 24 files changed, 413 insertions(+), 243 deletions(-)

diff --git a/dev-java/openjdk/Manifest b/dev-java/openjdk/Manifest
index 676253a..321a16b 100644
--- a/dev-java/openjdk/Manifest
+++ b/dev-java/openjdk/Manifest
@@ -1,17 +1,38 @@
-DIST openjdk-11.0.9_p11.tar.bz2 91638327 BLAKE2B 
a04b7fb5ebde3b6c024e5f3931a2efe796e08ad66c0190cddfa4268d5181f46f24685d9d51ae328547916e8ece723967bf653feeac87347ee14ecbe213ad657a
 SHA512 
a0a6726d5adbe95904b78d8b4319bc4386c594a563f80f63d59072cf72d00928b451163b91258b44193a80851400ce8b8d142fecfd2bd902ff7a5e47cb4a9976
-DIST openjdk-8.272_p10.tar.bz2 457222 BLAKE2B 
51e487d36c1922c5fc04d8922f1000a776e4872142517933ef5e8d5fd825f221fa02325bd755bf3f48f7f3221a2da3ca182301fb303675cb7d712d7b2f1c7751
 SHA512 
488b7fa0ed725936d483efd54242dbf4409752c685f29277023fb47c4375b5700b34e743d819d7d7c2406a2f8845d1c3d4fc548c156b6c7c30e43574c1b51527
-DIST openjdk-aarch64-shenandoah-8.272_p10.tar.bz2 462755 BLAKE2B 
abeabf704d2135da9df6746545209f5a658ec547be5852041bb9bd1dfc4546cef143541df61b4705b6d2181ae7ec91a8c64e2b27347c24d146da49bbf8c228ef
 SHA512 
7cae0cf80e09e1d2ad3eef8bf6740942788d0af4d3c9821bb0785ea42d4b38319d0ec57a8d21add25a40eebdc5ecba8234c9f04e6922e87c80480f71b04e2e3d
-DIST openjdk-aarch64-shenandoah-corba-8.272_p10.tar.bz2 1052989 BLAKE2B 
8d6f79758ccf1719396fb56fd47c258c2440beea79516025b4911027a59b6cf4b5826c5eb01ba3a4c45847915531989c74665cbedf6349541df38732e7b828de
 SHA512 
12547c8b5f1fe4efcc58f5b148977d519c954b964e814fc3fce717bd6d6221c2e7eda98a0e1e8157ed2f509f3b89e1e7b529da81cd1ee768daf4ad6369c57e8b
-DIST openjdk-aarch64-shenandoah-hotspot-8.272_p10.tar.bz2 8767088 BLAKE2B 
85b2dcbd696c58db72a7aeb4dc9a4752d742ed90bfd2e06ce5ddd8ed4ec5c63ab2de40a41aab5747fa120d8865c1d57f02a99b27a6ebf7c68c0891e19f5a7f27
 SHA512 
7866495487b271228f1a2d95cecfa6b76bb912d8c1c63d3d92e7b2cda88dd151b3b6c4c3bc717e37a0bd972762620ae7fb456c1aee281772a145a1dd1b11758b
-DIST openjdk-aarch64-shenandoah-jaxp-8.272_p10.tar.bz2 2718084 BLAKE2B 
1e6cc999d84a49c03731a2a2ca73dfe684940509a64199ad52571ef51b3da035e41b41bf262ea88af9f77418c7b1b5721724d86f67a5f737e53eaf3673f4eab8
 SHA512 
a73e5a4628c936cf9b19082ad49ed2134984d15a1165c45206c74dff45118c50922fd0a668efe93a46c3839775ec567d56eee19cd0e3a9f90e7995d1b6a42f11
-DIST openjdk-aarch64-shenandoah-jaxws-8.272_p10.tar.bz2 2558262 BLAKE2B 
3b00ca162f3b758ee65090011551f074f7675f499f179ae0d4c8c62b1d70c942d7d2082d48e84cece6cd2be7ea319c1707fc6239e82fd5e79297f796838688e4
 SHA512 
d64a15cf35df014c4dca2edddea2015905bafe252d3d2bdfd1bc8f72683ac827e5d0347e36d5d94cda354b31a6b0782017b1cea6571443e073caf9f26c7bebda
-DIST openjdk-aarch64-shenandoah-jdk-8.272_p10.tar.bz2 48370921 BLAKE2B 
98026a28463ce3f520feab2b146830bf91acdccac5aa28488ffdbe4328b9a2cbbc17e95eeb36a60364cab470eeb26efcfa06a588e1bebcb6e978821459536feb
 SHA512 
1bc5baa799282a2d7c0014d2cf55b350c7d99dbd129643d2cfeadebd467b2f6f9a8b8a97d34f66c656103db3ee3d5a57d6ff57dc45bc655258dd5093506d89b5
-DIST openjdk-aarch64-shenandoah-langtools-8.272_p10.tar.bz2 2397200 BLAKE2B 
1d985e852f07ab69e0af01a17cc3874cf903b1e3e2c4a909b7403087b3243beaf57a1e9b7792b52469a80764c7db614e3bb6ec4b43527d022219f3e79af21457
 SHA512 
76118b6c56481bcd3a6a709006d0d114faeef2b2a3c353e4a5ef2af5f03429dddd78d2d5951e9245fb5e41443e871e43634921825c0dbae8907f3f49fb3dea0c
-DIST openjdk-aarch64-shenandoah-nashorn-jdk8.272_p10.tar.bz2 2838876 BLAKE2B 
40d011a11122b2dd19349282468c756a58afbc1ff2a33424d6c4e82cde1f664e3317eb1616533b0d2bc24604c68ffd0b1b92d3271dd633f3a39aad22c84ca781
 SHA512 
1f50c2c1a6a5d271d63906cb1cf3e87d7b6fe61e92c90cf2974ec40e956be0e8388c2694d189c85ec7072abfd21566671498b8652c2ae9cb2021c6ec4d548f66
-DIST openjdk-corba-8.272_p10.tar.bz2 1033649 BLAKE2B 
db9d72dabe4b1727dbbe1de01e46f62676c48668e7ec960e10643c19374a2553dee3c2b5b576f85d09b541b570756b20980e1307fc614e4b4bee9789affc650e
 SHA512 
1426b3ce6983429fe6399da77fb102fb5d54ebf65ab83ad4e3c0ee789e33e2a0afc1bbfb7b8f942334ff9b03be0696494919c374ce1b793b179ecc43e2c4384a
-DIST openjdk-hotspot-8.272_p10.tar.bz2 8206390 BLAKE2B 
6822635a29f919696c7a260bf7db20a749ec8598e6c751a8a5e3973c780c17f3ff16a1ed64eb44353be72136fd1ea945dc6620f18d0d876a5773c897bca8705f
 SHA512 
48444d86bacaef503303fb160dca538546e74f7bd71fd34fc2b9faa4e0b1cf7710a6262e9ead161c1b0e8e02e8f96e56a6407d442bbfb01ff8ab835cd840d834
-DIST openjdk-jaxp-8.272_p10.tar.bz2 2692905 BLAKE2B 
e8fa9e6a7fd4c4ebeba82a3c55b17e4eba9cb03660baa8d478a8cfced1ab9673465faa1a0f690ebbe2634b2cf2741d7321f2c20c748339237eba7b772a2cea14
 SHA512 
15efb3db0dc28fd375d769037f248b3527e40d2c190fed57ca1d6a09e59aa79465c0e6516d2a122f6c7ee55f7cfeadaa76669884f74fa34b11ccfdfd76e71f6d
-DIST openjdk-jaxws-8.272_p10.tar.bz2 2543199 BLAKE2B 
3deae4cef17a5f3d513c1a748a72b50bacb3a0d9b6fb33e5ded121f4d209cc2eb2d59d7b7c182015811426e49eb3e2b463279fa201992c51a5c4a94a184931c9
 SHA512 
51c0ee76a7e0587ac9c2533d62717f24224ec8bc643df6af2e2fac89cd79cc4f228c7c57427e43f354a594568d16bb5bbf3295af9ce52717339c35b56d6c375a
-DIST openjdk-jdk-8.272_p10.tar.bz2 48273590 BLAKE2B 
80717a644df7d9741e5786708c816483f4fea1cfeb02438df17fb4183c0702fe6e3fcbeaefcee84a4f847d5cbafb0a9e80af63b56cf0c6381e0fbeb535d2f147
 SHA512 
85d20763f6cda66f2eac3b2a1e672e6b828c437386575d16a1c70b27a56c718fc0f44c712e6261eb89f6dd273fd2c21a2c4baa3f562cafa2911a5e2467d7ba13
-DIST openjdk-langtools-8.272_p10.tar.bz2 2399755 BLAKE2B 
34ffa30993fa9f42ed2fa96ae658c3c43ecbc54750c3b854cc90efdbd3c4d5abdda012d55c4e81d4ab805d9184b5ea7429fba5927bf3192fcce2a17d9ef11744
 SHA512 
54698e8a74119f39971024ee165707fa9e27cd0008b59801f05a194362d723ba67269b1f34c181e2a0b1ce9cd36f52cf3ad3ad980c4670f7cfa476a0fa78fec8
-DIST openjdk-nashorn-8.272_p10.tar.bz2 2850055 BLAKE2B 
2348c0f45916101d9fcb4aaa283d2c03be5b28decf12248ec930b9d726e346d0884dd64a22627e2f2fd8260c8755d0bc46a1cf6fecf691a30a7f4b54f6a293a9
 SHA512 
754fcdca5e0ce523d73cbdfbdcaaa13677ed8c2b72c5ae04ff1cc77fd73469f3366e51add68b13bac3c43800fecfcbb93bf4fcf7469258c4adc57e414b105ef5
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA256
+
+DIST openjdk-11.0.10_p9.tar.bz2 95141294 BLAKE2B 
f35cd0392b433210eb06b023bd92a168e17363635e27addcdcf1f1f9de7091a9f447a15b0fbbd1b0e3425377cb770de8dedf31c3a1cb1d7ecfc944175be4464d
 SHA512 
755d6b9789ddca274fefa1762a68892ec0597e581d16fa2a26cfce0e5c10232c73706f3beb99fcaf99e80a051d0db7365e3c5402e952c2dec4405626ac2a4ef7
+DIST openjdk-8.282_p08.tar.bz2 457358 BLAKE2B 
4451b2de340136ceb152615a32e33a3db60ff0f000d00e758d992f549af0110c4f64e3724abdd6ca7d679862e927557d475a2a36e923f0c3c5dd48fcb81b9b45
 SHA512 
40ccce0a25da6a6eef5cadfc0d6b208d0243ccd1fbc2a7aaef4c627802144122dbda96677c2d3ba45e05c5ac123a058ed37f59b8f035f0afcf34e832d50e8c35
+DIST openjdk-aarch64-shenandoah-8.282_p08.tar.bz2 463565 BLAKE2B 
dfdcadb0fc914fd9dbe61b20cc94c4298dce7f1875073a545a3e9ec043914514be54e9934465df4ec827881c35e10dc0ae4b21778a991ab42a1709a36b2cb49e
 SHA512 
3e430c93726a12f60eeb27b1693c0c61fedabf0f19512df4b14732565b910a660bd9e776651caf7c0154ad93e0c90ac26aae1d5155a35ed29dda0cd601070d6a
+DIST openjdk-aarch64-shenandoah-corba-8.282_p08.tar.bz2 1051633 BLAKE2B 
0f4ea71b4bfcb87f7305876065bee4184939e09c5d2b38728f28e1e6407d850a70de1840d10f5c98a6d4709403838a42cd3f104a6a38c1a32f65ac127cc3271a
 SHA512 
dd4e31baf81ed286b45ab2ac0a96f23306fb51b8d387ce6a846c7e1134ca45811fbe1842379bd54f486c97df8cc76a674941f4fe07ce5e5bc1ce3e8c85c9c782
+DIST openjdk-aarch64-shenandoah-hotspot-8.282_p08.tar.bz2 8771899 BLAKE2B 
436b57d6c405fa43a08f36221175e86d0cac7880cff964216f627c62e6fc59795906624241d3e73909dc633ff40176ed4560fd6d8f98eb2d7987fed99bb935a1
 SHA512 
d99b034288a857250d5054f1d2342f79f75efa400c9776fe75a139cd94faddf7abe407dca80a776cef975ab3608168f6d21b31c8a0602b302be3d600b24c9fd3
+DIST openjdk-aarch64-shenandoah-jaxp-8.282_p08.tar.bz2 2726328 BLAKE2B 
27325d12954e94baaed304fd7b4782a0028e71352b2357ed0710df5e61b0ba7b9d26110cc8424b85d987f723c2ee46b04ff03d0445ca7e654e480d0328e8546b
 SHA512 
5e66838889f3e22ceb11ef6dbd7a20f9f090c51526440c2e54b9b2d733a7e10da47c36df1dbc0b33ea38fb324f1f32475f0448a24feb9aede211be92f4d72057
+DIST openjdk-aarch64-shenandoah-jaxws-8.282_p08.tar.bz2 2559051 BLAKE2B 
cf808ef4d6aa5e5bb699fde4cd36ce9032f9d5c14b7151279170a3a1556fcb56ded67d03865b2d093950f0f64c638b41d0cebb873d2a7e8563e711249e64484b
 SHA512 
09b01fa9c967aa771f2d14b4613a5b5d26c396b47c7726b707bb87f0c1ddae406a400c3ee9a93caec3ec8d41deab030ffca101f64865d8ecba3325f9cacd0ef5
+DIST openjdk-aarch64-shenandoah-jdk-8.282_p08.tar.bz2 48636508 BLAKE2B 
cd2b5e1b3a10eab1fd869dd707c8c7f3970bec3559f6699f9b68b2715a279e1c5d4ee37a172e62ab32abe5608813d72e9bac91fe5670f6596dfa8debabd26cc3
 SHA512 
70c2e327f602249e3472a8b0ed2391ab7ea08cddab28ad3f04bbccec76bfa7f749f7b1ac1eac7440da9723f824f4d564e6f19db3520260875137b7f95798afde
+DIST openjdk-aarch64-shenandoah-langtools-8.282_p08.tar.bz2 2400152 BLAKE2B 
d1f5752bab7a2bd01f220796e24bec018a44ed69bc10d4c0b8deab28c3ae18eb573b71ad7d48ac2219fde0c23170a593b050f53d87e6bfc8dacd323c25c76468
 SHA512 
48e861ba9d98f3c48d6f70ea13aa34e0cbb25272a5bdf20fe5f9e6daf1a2d2a4b754816bd1be1d1c251bb56849487ac494582e2eb94c8c04eecf60aea4b8a6e7
+DIST openjdk-aarch64-shenandoah-nashorn-jdk8.282_p08.tar.bz2 2839986 BLAKE2B 
9c42469bab74ef6c36702499017b7ae3f98fb86f04b7336659d6f1fbe132a8513de5308c0c2bb4065063f05a8c0fe2acb81d2b2daf0610ac58cc309879475d57
 SHA512 
424b764e0b9360df972305a1df8b7655fe69697c69250beeebd1e719e42bc94681d21331c92b47e3d38a9650bbe7cd39311230c3eda2aac090f3a83e0ad04acc
+DIST openjdk-corba-8.282_p08.tar.bz2 1034749 BLAKE2B 
394e1d6fcccf1e512a0c241c4053ebf1da7df65e3d05d75c243c184ac6990b61fe9e55596513baf291d2dcc99d01d7ba94f31247d617b1cd316dfcdc8ecc663e
 SHA512 
aa0eea3f1efb4c4da8d03b902cf5cdbbe475365427a96ff74bbac21af4c2f4eff1fa8b05a0f4b1cfb64385860aa963e53736e4a3ff314cec2e141524f3001613
+DIST openjdk-hotspot-8.282_p08.tar.bz2 8207755 BLAKE2B 
1cf5e81275199a6659aca8ee29092131572797dcf71d2ea9fa61bcc00d8ba7c056ae96787aa684fc6f9d68cd1d628ab2d2fd4a9837a6750b91d5c008d9860139
 SHA512 
c2f2a62348aacfc022ade44d7b1bf733723ccd0f2388153ba595cfecb38a1c3abca3349ac2388274830614ca17c428981beb6c5cf2efbd1eb95d3a2be277776b
+DIST openjdk-jaxp-8.282_p08.tar.bz2 2682951 BLAKE2B 
91c50452d450bb748d42b2e5e556aa9f7356aa66554ac45766e7a573cda901bda038acd984587cc150990cd2b8a02e7069d0fdd5d5ed44fbb433f4b45338efaa
 SHA512 
ab17c2be397505a944d3b2d8090fa9b7c3db97f5b301fe8a485956318d6acfe065447959cfb7261e58e8506c25da7c0a7bef6075082ad6c89c52463284d1d227
+DIST openjdk-jaxws-8.282_p08.tar.bz2 2543297 BLAKE2B 
69db522a4bd508ad6d15fd0272bcc29a84ad3829fa4496501f8351cad3acfaae24a440dd3c98638b7807cc8270f0eadbe8aec44700a5386cb0a75f240b475607
 SHA512 
d17163f42dc617187376962e9a99fecb6b71c3119a84bb0d57d43a09eabc090dc9e120ad4546b7b7b03ba832c54fa148f6751053d6eede69f7ac804c3fb78792
+DIST openjdk-jdk-8.282_p08.tar.bz2 48584190 BLAKE2B 
6c5949abe6a18c4f633f2ef5c3e93db8421845f4578f6ddc783fe0af581b2df0ec6e7c833716c4b181547c289f9cb74b0b6b96893c45120a13061a45a70fbda3
 SHA512 
99adf9270f132e4a59c466b56069598058ffd4b41c7b0698ba8362e92d4b9529fbc9a166b5ae70d518b1c56eba80e4d5e51efef82df919df63bde42e8e6df296
+DIST openjdk-langtools-8.282_p08.tar.bz2 2399247 BLAKE2B 
5f2fe1eb3422053df33ce3df2ce99c6334d9867098485e90e08cc84d8df81399efd8c8169b9665b42df84048bfcdd964643861d93bc27c3be67e7a732704b5ef
 SHA512 
9b29e6bfd6e12dc810a5e5339a92410b0f6fbf20e4f0e727da25f954ec8d3dfccc4f7decf285a7f8b1e6710971ae363c0ee1f8d2738dc54b57989699300dfe59
+DIST openjdk-nashorn-8.282_p08.tar.bz2 2850710 BLAKE2B 
c3a4eab94946d43e4b1f3b78d16c016dfd3e84addc7be79a70a083266f2e87948a2b704ce2131c4603739828d613a9f91374af9ae5c915bbb9a0771115016321
 SHA512 
f46a17dd811276c381ab3af333a901a18fe10ea67f487dcb7c7696c0b3c6247569ebbd1a438cfb056d4e42a6f4e509fb8c21e3b1bfad675a743dbf404f298464
+-----BEGIN PGP SIGNATURE-----
+
+iQKTBAEBCAB9FiEEZdLCSnfk9z83VSkfsaMsEcx8U7oFAmBMOU9fFIAAAAAALgAo
+aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDY1
+RDJDMjRBNzdFNEY3M0YzNzU1MjkxRkIxQTMyQzExQ0M3QzUzQkEACgkQsaMsEcx8
+U7rWbhAAshfoexOTZhEaop4cSXE9day+dCFMb2Mg+Fgn02tO20eOvE7sZ/1iJQ2l
+NO7RPh9NBSVkzEy4+8D26o6I4n+TCYxzWcGw30SUdKwH4Xf5A83jYi+jUAfVD6bC
+Zl8y/+yGMhDRXif6ffMh548hOBgVpl3U/zYR5AY1zKD0wOBJQHOs8cNjGcMnP9En
+gvI2inQtfbgwM6zQ8KpKcxyLOenXJpLTMpROPOr6EbQlccPwaqWfdPRiDhmBr4kO
+H+PQ1ctAXETShXuHRVsfsCXKlC6WouKAiZI1CqYJuT+qM0B81US2iKbrwzTZgXBd
+mtfSqz7N/DQXUJM2xakdYBluO3f0dK+/osa90wu6BgWbcJC3RW8SOeU8Nu2Sz4Vo
+/exjZSJis/ua0dDJwSi3cp3rc/xLMXRk0wENGHD6RkXWnfRgJMdV/scq75C0e6xf
+JfhspZEiKMzrSoq9j17ckMl80W52cZ+bUGKs4Hi02DQLLBwDaOGnE60HNCgSFroM
+AvCy2hT3NxZ9FOhZJTtatoQ/1PUoQN0X8JW2f+i4XZHqjwMG6kB+AmE6fyFmzcKF
+TO1Ci238f5cLGqXU/dpiZJnQjYC8Evf3G4chkzaqvqBt/l4p+DIUlW/Q/8m5YDdP
+knDBYwN2iOFgoqwegnR0cTTKEQF3fs5MyEbkl+259k9w7tS1fjA=
+=wQFo
+-----END PGP SIGNATURE-----

diff --git a/dev-java/openjdk/files/bootcycle_jobs.patch 
b/dev-java/openjdk/files/bootcycle_jobs.patch
deleted file mode 100644
index 9dfae98..0000000
--- a/dev-java/openjdk/files/bootcycle_jobs.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff -r 21b063d75b3e make/Init.gmk
---- jdk9/make/Init.gmk Thu Mar 16 16:34:33 2017 +0000
-+++ jdk9/make/Init.gmk Tue Apr 04 13:49:37 2017 +0100
-@@ -303,7 +303,8 @@
-           $(call PrepareSmartJavac)
-           ( cd $(TOPDIR) && \
-               $(NICE) $(MAKE) $(MAKE_ARGS) $(OUTPUT_SYNC_FLAG) \
--                  -j $(JOBS) -f make/Main.gmk $(USER_MAKE_VARS) \
-+                  $(if $(DISABLE_JOBS),, -j $(JOBS)) \
-+                  -f make/Main.gmk $(USER_MAKE_VARS) \
-                   $(PARALLEL_TARGETS) $(COMPARE_BUILD_MAKE) $(BUILD_LOG_PIPE) 
|| \
-               ( exitcode=$$? && \
-               $(PRINTF) "\nERROR: Build failed for $(TARGET_DESCRIPTION) 
(exit code $$exitcode) \n" \
-diff -r 21b063d75b3e make/Main.gmk
---- jdk9/make/Main.gmk Thu Mar 16 16:34:33 2017 +0000
-+++ jdk9/make/Main.gmk Tue Apr 04 13:49:37 2017 +0100
-@@ -320,7 +320,7 @@
-         ifneq ($(COMPILE_TYPE), cross)
-         $(call LogWarn, Boot cycle build step 2: Building a new JDK image 
using previously built image)
-         +$(MAKE) $(MAKE_ARGS) -f $(SRC_ROOT)/make/Init.gmk 
PARALLEL_TARGETS=$(BOOTCYCLE_TARGET) \
--            JOBS= SPEC=$(dir $(SPEC))bootcycle-spec.gmk main
-+            DISABLE_JOBS=true SPEC=$(dir $(SPEC))bootcycle-spec.gmk main
-         else
-         $(call LogWarn, Boot cycle build disabled when cross compiling)
-         endif
-

diff --git a/dev-java/openjdk/files/musl/8/0002_musl_hotspot_ppc.patch 
b/dev-java/openjdk/files/musl/8/0002_musl_hotspot_ppc.patch
deleted file mode 100644
index bafdb7d..0000000
--- a/dev-java/openjdk/files/musl/8/0002_musl_hotspot_ppc.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -Naur openjdk-8.265_p01/hotspot/src/cpu/ppc/vm/macroAssembler_ppc.cpp 
openjdk-8.265_p01-copy/hotspot/src/cpu/ppc/vm/macroAssembler_ppc.cpp
---- openjdk-8.265_p01/hotspot/src/cpu/ppc/vm/macroAssembler_ppc.cpp    
2020-10-11 15:53:08.452010359 -0400
-+++ openjdk-8.265_p01-copy/hotspot/src/cpu/ppc/vm/macroAssembler_ppc.cpp       
2020-10-11 20:51:15.688019033 -0400
-@@ -44,6 +44,8 @@
- #include "gc_implementation/g1/heapRegion.hpp"
- #endif // INCLUDE_ALL_GCS
- 
-+#include <asm/ptrace.h>
-+
- #ifdef PRODUCT
- #define BLOCK_COMMENT(str) // nothing
- #else
-diff -Naur 
openjdk-8.265_p01/hotspot/src/os_cpu/linux_ppc/vm/thread_linux_ppc.cpp 
openjdk-8.265_p01-copy/hotspot/src/os_cpu/linux_ppc/vm/thread_linux_ppc.cpp
---- openjdk-8.265_p01/hotspot/src/os_cpu/linux_ppc/vm/thread_linux_ppc.cpp     
2020-10-11 15:53:08.472010359 -0400
-+++ 
openjdk-8.265_p01-copy/hotspot/src/os_cpu/linux_ppc/vm/thread_linux_ppc.cpp     
   2020-10-11 20:51:42.444019045 -0400
-@@ -27,6 +27,8 @@
- #include "runtime/frame.inline.hpp"
- #include "runtime/thread.hpp"
- 
-+#include <asm/ptrace.h>
-+
- bool JavaThread::pd_get_top_frame_for_profiling(frame* fr_addr, void* 
ucontext, bool isInJava) {
-   assert(this->is_Java_thread(), "must be JavaThread");
- 

diff --git a/dev-java/openjdk/files/patches/11/0000_README 
b/dev-java/openjdk/files/patches/11/0000_README
new file mode 100644
index 0000000..9ebcbd9
--- /dev/null
+++ b/dev-java/openjdk/files/patches/11/0000_README
@@ -0,0 +1,16 @@
+README
+--------------------------------------------------------------------------
+This patchset is to be the series of patches for OpenJDK.
+
+It is designed for cross-compatibility, fixes and stability, with performance
+and additional features support being included also.
+
+
+Patchset Numbering Scheme
+--------------------------------------------------------------------------
+
+0000           README
+
+0001           General fixes
+
+1001           Musl specific fixes

diff --git a/dev-java/openjdk/files/musl/11/fix-bootjdk-check.patch 
b/dev-java/openjdk/files/patches/11/0001_fix-bootjdk-check.patch
similarity index 67%
rename from dev-java/openjdk/files/musl/11/fix-bootjdk-check.patch
rename to dev-java/openjdk/files/patches/11/0001_fix-bootjdk-check.patch
index 3549f3a..b34a1b2 100644
--- a/dev-java/openjdk/files/musl/11/fix-bootjdk-check.patch
+++ b/dev-java/openjdk/files/patches/11/0001_fix-bootjdk-check.patch
@@ -1,8 +1,10 @@
+Subject: Fix detection of bootjdk on configure
+Upstream: No
 Author: Simon Frankenberger <simon-alp...@fraho.eu>
-Upstream: no
-Reason: The alpine builders print out a warning about sched_getaffinity() not 
working.
-        This causes the version check for the boot jdk to fail.
-        Patch the command to determine the version number to ignore any errors 
and warnings.
+
+The alpine builders print out a warning about sched_getaffinity() not working.
+This causes the version check for the boot jdk to fail.
+Patch the command to determine the version number to ignore any errors and 
warnings.
 
 --- old/make/autoconf/boot-jdk.m4
 +++ new/make/autoconf/boot-jdk.m4
@@ -12,7 +14,6 @@ Reason: The alpine builders print out a warning about 
sched_getaffinity() not wo
            # 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" -version 2>&1 | $GREP 
version | $HEAD -n 1`
- 
+
            # Extra M4 quote needed to protect [] in grep expression.
            [FOUND_CORRECT_VERSION=`$ECHO $BOOT_JDK_VERSION \
-

diff --git a/dev-java/openjdk/files/musl/11/build.patch 
b/dev-java/openjdk/files/patches/11/1001_build.patch
similarity index 97%
rename from dev-java/openjdk/files/musl/11/build.patch
rename to dev-java/openjdk/files/patches/11/1001_build.patch
index 58bd60d..2223250 100644
--- a/dev-java/openjdk/files/musl/11/build.patch
+++ b/dev-java/openjdk/files/patches/11/1001_build.patch
@@ -1,9 +1,10 @@
+Subject: Fix compilation issues with musl libc
+Upstream: No
 Author: The portola team at https://openjdk.java.net/projects/portola/
         With modifications by Simon Frankenberger <simon-alp...@fraho.eu>
-Upstream: somewhat
-Reason: This giant patch makes it possible to compile openjdk with musl libc.
-        The base was taken from a diff with the portola project and adjusted
-        for latest musl libc.
+
+This giant patch makes it possible to compile openjdk with musl libc.
+The base was taken from a diff with the portola project and adjusted for 
latest musl libc.
 
 --- old/make/ReleaseFile.gmk
 +++ new/make/ReleaseFile.gmk
@@ -23,7 +24,7 @@ Reason: This giant patch makes it possible to compile openjdk 
with musl libc.
  
 +# config.guess doesn't identify systems running the musl C library, and will
 +# instead return a string with a -gnu suffix. This block detects musl and
-+# modifies the string to have a -musl suffix instead. 
++# modifies the string to have a -musl suffix instead.
 +echo $OUT | grep -- -linux- > /dev/null 2> /dev/null
 +if test $? = 0; then
 +  ldd_version=`ldd --version 2>&1 | head -1 | cut -f1 -d' '`
@@ -85,7 +86,7 @@ Reason: This giant patch makes it possible to compile openjdk 
with musl libc.
  }
  
  /////////////////////////////////////////////////////////////////////////////
-@@ -3053,20 +3058,36 @@
+@@ -3109,20 +3114,36 @@
  extern "C" JNIEXPORT void numa_warn(int number, char *where, ...) { }
  extern "C" JNIEXPORT void numa_error(char *where) { }
  
@@ -194,7 +195,7 @@ Reason: This giant patch makes it possible to compile 
openjdk with musl libc.
      sigemptyset(&sa.sa_mask);
 --- old/src/java.base/unix/native/libjava/childproc.c
 +++ new/src/java.base/unix/native/libjava/childproc.c
-@@ -237,7 +237,13 @@
+@@ -238,7 +238,13 @@
  {
      if (envp == NULL || (char **) envp == environ) {
          execvp(file, (char **) argv);
@@ -285,7 +286,7 @@ Reason: This giant patch makes it possible to compile 
openjdk with musl libc.
  
  #include <jvm.h>
  #include <jni.h>
-@@ -790,26 +787,6 @@
+@@ -783,26 +780,6 @@
      }
      return ret;
  }
@@ -398,7 +399,7 @@ Reason: This giant patch makes it possible to compile 
openjdk with musl libc.
      printf("Testing stack guard page behaviour for initial thread\n");
 --- old/test/jdk/java/lang/ProcessBuilder/Basic.java
 +++ new/test/jdk/java/lang/ProcessBuilder/Basic.java
-@@ -396,8 +396,8 @@
+@@ -400,8 +400,8 @@
                  if (failed != 0) throw new Error("null PATH");
              } else if (action.equals("PATH search algorithm")) {
                  equal(System.getenv("PATH"), "dir1:dir2:");
@@ -409,7 +410,7 @@ Reason: This giant patch makes it possible to compile 
openjdk with musl libc.
                  String[] cmd = {"prog"};
                  ProcessBuilder pb1 = new ProcessBuilder(cmd);
                  ProcessBuilder pb2 = new ProcessBuilder(cmd);
-@@ -438,13 +438,13 @@
+@@ -442,13 +442,13 @@
                          checkPermissionDenied(pb);
  
                          // continue searching if EACCES
@@ -425,7 +426,7 @@ Reason: This giant patch makes it possible to compile 
openjdk with musl libc.
                          equal(run(pb).exitValue(), True.exitValue());
  
                          // Check empty PATH component means current directory.
-@@ -460,10 +460,10 @@
+@@ -464,10 +464,10 @@
                              pb.command(command);
                              File prog = new File("./prog");
                              // "Normal" binaries
@@ -438,7 +439,7 @@ Reason: This giant patch makes it possible to compile 
openjdk with musl libc.
                              equal(run(pb).exitValue(),
                                    False.exitValue());
                              prog.delete();
-@@ -518,12 +518,12 @@
+@@ -522,12 +522,12 @@
                          new File("dir2/prog").delete();
                          new File("prog").delete();
                          new File("dir3").mkdirs();
@@ -455,7 +456,7 @@ Reason: This giant patch makes it possible to compile 
openjdk with musl libc.
                          equal(run(pb).exitValue(), False.exitValue());
  
                      } finally {
-@@ -620,6 +620,13 @@
+@@ -624,6 +624,13 @@
               new File("/bin/false").exists());
      }
  
@@ -469,7 +470,7 @@ Reason: This giant patch makes it possible to compile 
openjdk with musl libc.
      static class UnicodeOS {
          public static boolean is() { return is; }
          private static final String osName = System.getProperty("os.name");
-@@ -658,6 +665,45 @@
+@@ -662,6 +669,45 @@
          }
      }
  
@@ -515,7 +516,7 @@ Reason: This giant patch makes it possible to compile 
openjdk with musl libc.
      static class EnglishUnix {
          private static final Boolean is =
              (! Windows.is() && isEnglish("LANG") && isEnglish("LC_ALL"));
-@@ -1961,7 +2007,7 @@
+@@ -1965,7 +2011,7 @@
              //----------------------------------------------------------------
              try {
                  new File("suBdiR").mkdirs();
@@ -542,4 +543,3 @@ Reason: This giant patch makes it possible to compile 
openjdk with musl libc.
                      Assert.assertTrue(command.endsWith(expected), "Command: 
expected: \'" +
                              expected + "\', actual: " + command);
  
-

diff --git a/dev-java/openjdk/files/musl/11/aarch64.patch 
b/dev-java/openjdk/files/patches/11/1002_aarch64.patch
similarity index 67%
rename from dev-java/openjdk/files/musl/11/aarch64.patch
rename to dev-java/openjdk/files/patches/11/1002_aarch64.patch
index c0fa972..49110e2 100644
--- a/dev-java/openjdk/files/musl/11/aarch64.patch
+++ b/dev-java/openjdk/files/patches/11/1002_aarch64.patch
@@ -1,7 +1,9 @@
+Subject: Remove fpu_control.h include
+Upstream: No
 Author: Simon Frankenberger <simon-alp...@fraho.eu>
-Upstream: no
-Reason: This file is not present when building on aarch64 alpine.
-        Furthermore, the build runs just fine without it.
+
+The header is not present with musl and including it results in build error.
+It's not needed anyways.
 
 --- old/src/hotspot/os_cpu/linux_aarch64/os_linux_aarch64.cpp
 +++ new/src/hotspot/os_cpu/linux_aarch64/os_linux_aarch64.cpp
@@ -13,3 +15,4 @@ Reason: This file is not present when building on aarch64 
alpine.
  
  #define REG_FP 29
  #define REG_LR 30
+

diff --git a/dev-java/openjdk/files/musl/11/ppc64le.patch 
b/dev-java/openjdk/files/patches/11/1003_ppc64le.patch
similarity index 85%
copy from dev-java/openjdk/files/musl/11/ppc64le.patch
copy to dev-java/openjdk/files/patches/11/1003_ppc64le.patch
index c26755b..dd5fcc6 100644
--- a/dev-java/openjdk/files/musl/11/ppc64le.patch
+++ b/dev-java/openjdk/files/patches/11/1003_ppc64le.patch
@@ -1,7 +1,11 @@
+Subject: Fix compilation with different ucontext_t on musl
+Upstream: No
 Author: Simon Frankenberger <simon-alp...@fraho.eu>
-Upstream: no
-Reason: Musl libc offers a different structure for context_t*,
-        so we need a patch to access the structure fields correctly.
+
+The machine state registers have to be accessed differently when
+running on musl libc. This patch fix this by replacing
+"uc_mcontext.regs->grp" with "uc_mcontext.gp_regs"
+and accessing the named fields (like "->nip") by the array index constants.
 
 --- old/src/hotspot/cpu/ppc/macroAssembler_ppc.cpp
 +++ new/src/hotspot/cpu/ppc/macroAssembler_ppc.cpp
@@ -65,7 +69,7 @@ Reason: Musl libc offers a different structure for context_t*,
    }
 --- old/src/hotspot/cpu/ppc/vm_version_ppc.cpp
 +++ new/src/hotspot/cpu/ppc/vm_version_ppc.cpp
-@@ -893,7 +893,7 @@
+@@ -921,7 +921,7 @@
    unsigned long auxv = getauxval(AT_HWCAP2);
  
    if (auxv & PPC_FEATURE2_HTM_NOSC) {
@@ -76,6 +80,16 @@ Reason: Musl libc offers a different structure for 
context_t*,
        // POWER9 DD2.1 NV has a few issues that need a couple of firmware
 --- old/src/hotspot/os_cpu/linux_ppc/os_linux_ppc.cpp
 +++ new/src/hotspot/os_cpu/linux_ppc/os_linux_ppc.cpp
+@@ -76,6 +76,9 @@
+ # include <poll.h>
+ # include <ucontext.h>
+
++#if ! (defined(__GLIBC__) || defined(__UCLIBC__))
++# include <asm/ptrace.h>
++#endif
+
+ address os::current_stack_pointer() {
+   intptr_t* csp;
 @@ -108,24 +108,42 @@
    // - if uc was filled by getcontext(), it is undefined - getcontext() does 
not fill
    //   it because the volatile registers are not needed to make setcontext() 
work.
@@ -85,7 +99,7 @@ Reason: Musl libc offers a different structure for context_t*,
    return (address)uc->uc_mcontext.regs->nip;
 +#else // Musl
 +  guarantee(uc->uc_mcontext.gp_regs != NULL, "only use ucontext_get_pc in 
sigaction context");
-+  return (address)uc->uc_mcontext.gp_regs[32];
++  return (address)uc->uc_mcontext.gp_regs[PT_NIP];
 +#endif
  }
  
@@ -98,7 +112,7 @@ Reason: Musl libc offers a different structure for 
context_t*,
    uc->uc_mcontext.regs->nip = (unsigned long)pc;
 +#else // Musl
 +  guarantee(uc->uc_mcontext.gp_regs != NULL, "only use ucontext_set_pc in 
sigaction context");
-+  uc->uc_mcontext.gp_regs[32] = (unsigned long)pc;
++  uc->uc_mcontext.gp_regs[PT_NIP] = (unsigned long)pc;
 +#endif
  }
  
@@ -106,7 +120,7 @@ Reason: Musl libc offers a different structure for 
context_t*,
 +#if defined(__GLIBC__) || defined(__UCLIBC__)
    return (address)uc->uc_mcontext.regs->link;
 +#else // Musl
-+  return (address)uc->uc_mcontext.gp_regs[36];
++  return (address)uc->uc_mcontext.gp_regs[PT_LNK];
 +#endif
  }
  
@@ -126,26 +140,24 @@ Reason: Musl libc offers a different structure for 
context_t*,
 +#if defined(__GLIBC__) || defined(__UCLIBC__)
    return uc->uc_mcontext.regs->trap;
 +#else // Musl
-+  return uc->uc_mcontext.gp_regs[40];
++  return uc->uc_mcontext.gp_regs[PT_TRAP];
 +#endif
  }
  
  ExtendedPC os::fetch_frame_from_context(const void* ucVoid,
-@@ -259,7 +281,13 @@
+@@ -259,7 +279,11 @@
      // 3.2.1 "Machine State Register"), however note that ISA notation for bit
      // numbering is MSB 0, so for normal bit numbering (LSB 0) they come to be
      // bits 33 and 34. It's not related to endianness, just a notation matter.
 +#if defined(__GLIBC__) || defined(__UCLIBC__)
      if (second_uc->uc_mcontext.regs->msr & 0x600000000) {
 +#else // Musl
-+    // why 33?
-+    // see comment for glibc NGREG: "r0-r31, nip, msr, lr, etc."
-+    if (second_uc->uc_mcontext.gp_regs[33] & 0x600000000) {
++    if (second_uc->uc_mcontext.gp_regs[PT_MSR] & 0x600000000) {
 +#endif
        if (TraceTraps) {
          tty->print_cr("caught signal in transaction, "
                          "ignoring to jump to abort handler");
-@@ -586,6 +614,7 @@
+@@ -587,6 +615,7 @@
    const ucontext_t* uc = (const ucontext_t*)context;
  
    st->print_cr("Registers:");
@@ -153,14 +165,14 @@ Reason: Musl libc offers a different structure for 
context_t*,
    st->print("pc =" INTPTR_FORMAT "  ", uc->uc_mcontext.regs->nip);
    st->print("lr =" INTPTR_FORMAT "  ", uc->uc_mcontext.regs->link);
    st->print("ctr=" INTPTR_FORMAT "  ", uc->uc_mcontext.regs->ctr);
-@@ -594,8 +623,18 @@
+@@ -595,8 +624,18 @@
      st->print("r%-2d=" INTPTR_FORMAT "  ", i, uc->uc_mcontext.regs->gpr[i]);
      if (i % 3 == 2) st->cr();
    }
 +#else // Musl
-+  st->print("pc =" INTPTR_FORMAT "  ", uc->uc_mcontext.gp_regs[32]);
-+  st->print("lr =" INTPTR_FORMAT "  ", uc->uc_mcontext.gp_regs[36]);
-+  st->print("ctr=" INTPTR_FORMAT "  ", uc->uc_mcontext.gp_regs[35]);
++  st->print("pc =" INTPTR_FORMAT "  ", uc->uc_mcontext.gp_regs[PT_NIP]);
++  st->print("lr =" INTPTR_FORMAT "  ", uc->uc_mcontext.gp_regs[PT_LNK]);
++  st->print("ctr=" INTPTR_FORMAT "  ", uc->uc_mcontext.gp_regs[PT_CTR]);
    st->cr();
 +  for (int i = 0; i < 32; i++) {
 +    st->print("r%-2d=" INTPTR_FORMAT "  ", i, uc->uc_mcontext.gp_regs[i]);
@@ -172,7 +184,7 @@ Reason: Musl libc offers a different structure for 
context_t*,
  
    intptr_t *sp = (intptr_t *)os::Linux::ucontext_get_sp(uc);
    st->print_cr("Top of Stack: (sp=" PTR_FORMAT ")", p2i(sp));
-@@ -618,12 +657,22 @@
+@@ -619,12 +658,22 @@
    st->print_cr("Register to memory mapping:");
    st->cr();
  
@@ -181,9 +193,9 @@ Reason: Musl libc offers a different structure for 
context_t*,
    st->print("lr ="); print_location(st, (intptr_t)uc->uc_mcontext.regs->link);
    st->print("ctr ="); print_location(st, (intptr_t)uc->uc_mcontext.regs->ctr);
 +#else // Musl
-+  st->print("pc ="); print_location(st, 
(intptr_t)uc->uc_mcontext.gp_regs[32]);
-+  st->print("lr ="); print_location(st, 
(intptr_t)uc->uc_mcontext.gp_regs[36]);
-+  st->print("ctr ="); print_location(st, 
(intptr_t)uc->uc_mcontext.gp_regs[35]);
++  st->print("pc ="); print_location(st, 
(intptr_t)uc->uc_mcontext.gp_regs[PT_NIP]);
++  st->print("lr ="); print_location(st, 
(intptr_t)uc->uc_mcontext.gp_regs[PT_LNK]);
++  st->print("ctr ="); print_location(st, 
(intptr_t)uc->uc_mcontext.gp_regs[PT_CTR]);
 +#endif
    for (int i = 0; i < 32; i++) {
      st->print("r%-2d=", i);
@@ -197,6 +209,17 @@ Reason: Musl libc offers a different structure for 
context_t*,
  }
 --- old/src/hotspot/os_cpu/linux_ppc/thread_linux_ppc.cpp
 +++ new/src/hotspot/os_cpu/linux_ppc/thread_linux_ppc.cpp
+@@ -27,6 +27,10 @@
+ #include "runtime/frame.inline.hpp"
+ #include "runtime/thread.hpp"
+ 
++#if ! (defined(__GLIBC__) || defined(__UCLIBC__))
++#include <asm/ptrace.h>
++#endif
++
+ frame JavaThread::pd_last_frame() {
+   assert(has_last_Java_frame(), "must have last_Java_sp() when suspended");
+ 
 @@ -56,8 +56,13 @@
    // if we were running Java code when SIGPROF came in.
    if (isInJava) {
@@ -206,7 +229,7 @@ Reason: Musl libc offers a different structure for 
context_t*,
                       (address)uc->uc_mcontext.regs->nip);
 +#else // Musl
 +    frame ret_frame((intptr_t*)uc->uc_mcontext.gp_regs[1/*REG_SP*/],
-+                     (address)uc->uc_mcontext.gp_regs[32]);
++                     (address)uc->uc_mcontext.gp_regs[PT_NIP]);
 +#endif
  
      if (ret_frame.pc() == NULL) {
@@ -223,4 +246,3 @@ Reason: Musl libc offers a different structure for 
context_t*,
        uint64_t istate_bcp = istate->bcp;
        uint64_t code_start = (uint64_t)(m->code_base());
        uint64_t code_end = (uint64_t)(m->code_base() + m->code_size());
-

diff --git a/dev-java/openjdk/files/patches/8/0000_README 
b/dev-java/openjdk/files/patches/8/0000_README
new file mode 100644
index 0000000..9ebcbd9
--- /dev/null
+++ b/dev-java/openjdk/files/patches/8/0000_README
@@ -0,0 +1,16 @@
+README
+--------------------------------------------------------------------------
+This patchset is to be the series of patches for OpenJDK.
+
+It is designed for cross-compatibility, fixes and stability, with performance
+and additional features support being included also.
+
+
+Patchset Numbering Scheme
+--------------------------------------------------------------------------
+
+0000           README
+
+0001           General fixes
+
+1001           Musl specific fixes

diff --git a/dev-java/openjdk/files/musl/8/0009_fix_jdk_ipv6_init.patch 
b/dev-java/openjdk/files/patches/8/0001_fix-jdk-ipv6-init.patch
similarity index 100%
rename from dev-java/openjdk/files/musl/8/0009_fix_jdk_ipv6_init.patch
rename to dev-java/openjdk/files/patches/8/0001_fix-jdk-ipv6-init.patch

diff --git a/dev-java/openjdk/files/musl/8/0010_fix_jdk_close_fds.patch 
b/dev-java/openjdk/files/patches/8/0002_fix-jdk-close-fds.patch
similarity index 100%
rename from dev-java/openjdk/files/musl/8/0010_fix_jdk_close_fds.patch
rename to dev-java/openjdk/files/patches/8/0002_fix-jdk-close-fds.patch

diff --git a/dev-java/openjdk/files/patches/8/0003_jdk-disable-vfork.patch 
b/dev-java/openjdk/files/patches/8/0003_jdk-disable-vfork.patch
new file mode 100644
index 0000000..3cd3e5c
--- /dev/null
+++ b/dev-java/openjdk/files/patches/8/0003_jdk-disable-vfork.patch
@@ -0,0 +1,27 @@
+--- openjdk.orig/jdk/src/solaris/native/java/lang/UNIXProcess_md.c
++++ openjdk/jdk/src/solaris/native/java/lang/UNIXProcess_md.c
+@@ -552,7 +552,11 @@
+ startChild(JNIEnv *env, jobject process, ChildStuff *c, const char 
*helperpath) {
+     switch (c->mode) {
+       case MODE_VFORK:
++// use regular fork when running on musl
++// this should fix deadlocks on aarch64
++#if defined(__GLIBC__) || defined(__UCLIBC__)
+         return vforkChild(c);
++#endif              
+       case MODE_FORK:
+         return forkChild(c);
+ #if defined(__solaris__) || defined(_ALLBSD_SOURCE) || defined(_AIX)
+@@ -651,8 +655,12 @@
+     if (resultPid < 0) {
+         switch (c->mode) {
+           case MODE_VFORK:
++// use regular fork when running on musl
++// this should fix deadlocks on aarch64
++#if defined(__GLIBC__) || defined(__UCLIBC__)
+             throwIOException(env, errno, "vfork failed");
+             break;
++#endif
+           case MODE_FORK:
+             throwIOException(env, errno, "fork failed");
+             break;

diff --git 
a/dev-java/openjdk/files/patches/8/0004_hotspot-insantiate-arrayallocator.patch 
b/dev-java/openjdk/files/patches/8/0004_hotspot-insantiate-arrayallocator.patch
new file mode 100644
index 0000000..ba5283f
--- /dev/null
+++ 
b/dev-java/openjdk/files/patches/8/0004_hotspot-insantiate-arrayallocator.patch
@@ -0,0 +1,16 @@
+Workarounds build error:
+Error: dl failure on line 895
+Error relocating .../libjvm.so: _ZN14ArrayAllocatorImL10MemoryType7EE4freeEv: 
symbol not found
+
+Possibly due to g++ 10.x error on not properly instantiating the template.
+
+--- openjdk/hotspot/src/share/vm/utilities/bitMap.cpp.orig     2020-11-10 
14:07:08.372045326 +0200
++++ openjdk/hotspot/src/share/vm/utilities/bitMap.cpp  2020-11-10 
14:08:07.911412813 +0200
+@@ -42,6 +42,7 @@
+ # include "os_bsd.inline.hpp"
+ #endif
+ 
++template class ArrayAllocator<BitMap::bm_word_t, mtInternal>;
+ 
+ BitMap::BitMap(bm_word_t* map, idx_t size_in_bits) :
+   _map(map), _size(size_in_bits), _map_allocator(false)

diff --git 
a/dev-java/openjdk/files/patches/8/0005_fix-build-with-as-needed-toolchain.patch
 
b/dev-java/openjdk/files/patches/8/0005_fix-build-with-as-needed-toolchain.patch
new file mode 100644
index 0000000..7decd5e
--- /dev/null
+++ 
b/dev-java/openjdk/files/patches/8/0005_fix-build-with-as-needed-toolchain.patch
@@ -0,0 +1,91 @@
+From 84bcdb9cdab0e0be9cdfededfb518d3cea9009e3 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <andre.draszik at jci.com>
+Date: Mon, 12 Mar 2018 15:40:58 +0000
+Subject: [PATCH] build: fix build on --as-needed toolchains (generic)
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+If the (host) toolchain has been configured to
+unconditionally add --as-needed to the linker command line
+then linking fails when using the system zlib:
+  + ...gcc -lz -L<sysroot>/usr/lib -L<sysroot>/lib \
+               -Wl,-rpath-link,<sysroot>/usr/lib -Wl,-rpath-link,<sysroot>/lib 
\
+               -Wl,-rpath,<sysroot>/usr/lib -Wl,-rpath,<sysroot>/lib \
+           -Wl,-O1 -Xlinker --hash-style=both -Xlinker -z -Xlinker defs 
-Xlinker -O1 \
+           -Xlinker --allow-shlib-undefined -Xlinker -soname=libunpack.so \
+           -Xlinker -z -Xlinker origin -Xlinker -rpath -Xlinker '$ORIGIN' \
+           -lc \
+           -Xlinker 
-version-script=<src>/jdk/make/mapfiles/libunpack/mapfile-vers-unpack200 \
+           -o $build/jdk/objs/unpackexe/unpack200 \
+           $build/jdk/objs/unpackexe/bands.o $build/jdk/objs/unpackexe/bytes.o 
\
+           $build/jdk/objs/unpackexe/coding.o $build/jdk/objs/unpackexe/main.o 
\
+           $build/jdk/objs/unpackexe/unpack.o 
$build/jdk/objs/unpackexe/utils.o \
+           $build/jdk/objs/unpackexe/zip.o -lstdc++
+  $build/jdk/objs/unpackexe/zip.o: In function `jar::deflate_bytes(bytes&, 
bytes&)':
+  $src/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp:464: undefined 
reference to `deflateInit2_'
+  $src/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp:507: undefined 
reference to `deflate'
+  $src/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp:514: undefined 
reference to `deflateEnd'
+  $src/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp:502: undefined 
reference to `deflate'
+  $src/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp:518: undefined 
reference to `deflateEnd'
+  $build/jdk/objs/unpackexe/zip.o: In function `jar::get_crc32(unsigned int, 
unsigned char*, unsigned int)':
+  $src/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp:61: undefined 
reference to `crc32'
+  $src/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp:61: undefined 
reference to `crc32'
+  $src/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp:61: undefined 
reference to `crc32'
+  $build/jdk/objs/unpackexe/zip.o: In function `gunzip::free()':
+  $src/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp:645: undefined 
reference to `inflateEnd'
+  $build/jdk/objs/unpackexe/zip.o: In function `read_input_via_gzip(unpacker*, 
void*, long, long)':
+  $src/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp:548: undefined 
reference to `inflate'
+  $src/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp:548: undefined 
reference to `inflate'
+  $build/jdk/objs/unpackexe/zip.o: In function `gunzip::start(int)':
+  $src/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp:637: undefined 
reference to `inflateInit2_'
+  collect2: error: ld returned 1 exit status
+
+(as happened on a Ubuntu 16.04 xenial host:
+  gcc --version
+  gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
+  Copyright (C) 2015 Free Software Foundation, Inc.
+  This is free software; see the source for copying conditions.  There is NO
+  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+)
+
+The reason is that the order of command line arguments
+becomes important with --as-needed and the JDK build system
+places -lz at the beginning of the command line where it
+would normally place the zlib object files from its own
+bundled compiled version.
+
+Having -lz early in the command line is not useful, as it
+is discarded by the linker at that point in time as it
+hasn't seen any reference to the symbols provided yet.
+
+As it seems a generic pattern in the makefiles here, just
+place the $EXPECTED_OBJS early in the command line, before
+any additional libraries, so as to fix this once and for
+all.
+
+Signed-off-by: André Draszik <andre.draszik at jci.com>
+---
+Upstream-Status: Pending
+ make/common/NativeCompilation.gmk | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/make/common/NativeCompilation.gmk 
b/make/common/NativeCompilation.gmk
+index e7ea22ce..79f081fd 100644
+--- a/make/common/NativeCompilation.gmk
++++ b/make/common/NativeCompilation.gmk
+@@ -477,9 +477,8 @@ define SetupNativeCompilation
+ 
+     $$($1_TARGET) : $$($1_EXPECTED_OBJS) $$($1_RES) $$($1_GEN_MANIFEST)
+       $$(call LINKING_EXE_MSG,$$($1_BASENAME))
+-      $$($1_LDEXE) $$($1_LDFLAGS) $$($1_EXTRA_LDFLAGS) 
$(EXE_OUT_OPTION)$$($1_TARGET) \
+-      $$($1_EXPECTED_OBJS) $$($1_RES) $$($1_LDFLAGS_SUFFIX) \
+-      $$($1_EXTRA_LDFLAGS_SUFFIX)
++      $$($1_LDEXE) $$($1_EXPECTED_OBJS) $$($1_LDFLAGS) $$($1_EXTRA_LDFLAGS) 
$(EXE_OUT_OPTION)$$($1_TARGET) \
++      $$($1_RES) $$($1_LDFLAGS_SUFFIX) $$($1_EXTRA_LDFLAGS_SUFFIX)
+         ifneq (,$$($1_GEN_MANIFEST))
+         $(MT) -nologo -manifest $$($1_GEN_MANIFEST) -outputresource:$$@;#1
+         endif
+-- 
+2.16.2
+

diff --git a/dev-java/openjdk/files/musl/8/0005_musl_fix_libjvm_load.patch 
b/dev-java/openjdk/files/patches/8/0006_fix-libjvm-load.patch
similarity index 100%
rename from dev-java/openjdk/files/musl/8/0005_musl_fix_libjvm_load.patch
rename to dev-java/openjdk/files/patches/8/0006_fix-libjvm-load.patch

diff --git a/dev-java/openjdk/files/musl/8/0007_musl_jdk_includes.patch 
b/dev-java/openjdk/files/patches/8/0007_jdk-includes.patch
similarity index 100%
rename from dev-java/openjdk/files/musl/8/0007_musl_jdk_includes.patch
rename to dev-java/openjdk/files/patches/8/0007_jdk-includes.patch

diff --git a/dev-java/openjdk/files/musl/8/0008_musl_jdk_execinfo.patch 
b/dev-java/openjdk/files/patches/8/0008_jdk-execinfo.patch
similarity index 100%
rename from dev-java/openjdk/files/musl/8/0008_musl_jdk_execinfo.patch
rename to dev-java/openjdk/files/patches/8/0008_jdk-execinfo.patch

diff --git a/dev-java/openjdk/files/musl/8/0001_musl_hotspot.patch 
b/dev-java/openjdk/files/patches/8/1001_hotspot-musl.patch
similarity index 100%
rename from dev-java/openjdk/files/musl/8/0001_musl_hotspot.patch
rename to dev-java/openjdk/files/patches/8/1001_hotspot-musl.patch

diff --git a/dev-java/openjdk/files/musl/11/ppc64le.patch 
b/dev-java/openjdk/files/patches/8/1002_hotspot-ppc-musl.patch
similarity index 52%
rename from dev-java/openjdk/files/musl/11/ppc64le.patch
rename to dev-java/openjdk/files/patches/8/1002_hotspot-ppc-musl.patch
index c26755b..dfb3150 100644
--- a/dev-java/openjdk/files/musl/11/ppc64le.patch
+++ b/dev-java/openjdk/files/patches/8/1002_hotspot-ppc-musl.patch
@@ -1,23 +1,27 @@
+Subject: Fix compilation with different ucontext_t on musl
+Upstream: No
 Author: Simon Frankenberger <simon-alp...@fraho.eu>
-Upstream: no
-Reason: Musl libc offers a different structure for context_t*,
-        so we need a patch to access the structure fields correctly.
 
---- old/src/hotspot/cpu/ppc/macroAssembler_ppc.cpp
-+++ new/src/hotspot/cpu/ppc/macroAssembler_ppc.cpp
-@@ -1290,7 +1290,11 @@
+The machine state registers have to be accessed differently when
+running on musl libc. This patch fix this by replacing
+"uc_mcontext.regs->grp" with "uc_mcontext.gp_regs"
+and accessing the named fields (like "->nip") by the array index constants.
+
+--- openjdk.orig/hotspot/src/cpu/ppc/vm/macroAssembler_ppc.cpp
++++ openjdk/hotspot/src/cpu/ppc/vm/macroAssembler_ppc.cpp
+@@ -1243,7 +1243,11 @@
    // the safepoing polling page.
    ucontext_t* uc = (ucontext_t*) ucontext;
    // Set polling address.
 +#if defined(__GLIBC__) || defined(__UCLIBC__)
    address addr = (address)uc->uc_mcontext.regs->gpr[ra] + (ssize_t)ds;
 +#else // Musl
-+  address addr = (address)uc->uc_mcontext.gp_regs[ra] + (ssize_t) ds;
++  address addr = (address)uc->uc_mcontext.gp_regs[ra] + (ssize_t)ds;
 +#endif
    if (polling_address_ptr != NULL) {
      *polling_address_ptr = addr;
    }
-@@ -1311,15 +1315,24 @@
+@@ -1264,15 +1268,24 @@
      int rb = inv_rb_field(instruction);
  
      // look up content of ra and rb in ucontext
@@ -42,7 +46,7 @@ Reason: Musl libc offers a different structure for context_t*,
      return os::is_memory_serialize_page(thread, ra_val+d1);
    } else {
      return false;
-@@ -1382,11 +1395,20 @@
+@@ -1335,11 +1348,20 @@
        || (is_stdu(instruction) && rs == 1)) {
      int ds = inv_ds_field(instruction);
      // return banged address
@@ -63,104 +67,104 @@ Reason: Musl libc offers a different structure for 
context_t*,
      return ra != 1 || rb_val >= 0 ? NULL         // not a stack bang
                                    : sp + rb_val; // banged address
    }
---- old/src/hotspot/cpu/ppc/vm_version_ppc.cpp
-+++ new/src/hotspot/cpu/ppc/vm_version_ppc.cpp
-@@ -893,7 +893,7 @@
-   unsigned long auxv = getauxval(AT_HWCAP2);
+--- openjdk.orig/hotspot/src/os_cpu/linux_ppc/vm/os_linux_ppc.cpp
++++ openjdk/hotspot/src/os_cpu/linux_ppc/vm/os_linux_ppc.cpp
+@@ -75,7 +75,11 @@
+ # include <poll.h>
+ # include <ucontext.h>
+ 
++#if ! (defined(__GLIBC__) || defined(__UCLIBC__))
++# include <asm/ptrace.h>
++#endif
  
-   if (auxv & PPC_FEATURE2_HTM_NOSC) {
--    if (auxv & PPC_FEATURE2_HAS_HTM) {
-+    if (auxv & PPC_FEATURE2_HTM) {
-       // TM on POWER8 and POWER9 in compat mode (VM) is supported by the JVM.
-       // TM on POWER9 DD2.1 NV (baremetal) is not supported by the JVM (TM on
-       // POWER9 DD2.1 NV has a few issues that need a couple of firmware
---- old/src/hotspot/os_cpu/linux_ppc/os_linux_ppc.cpp
-+++ new/src/hotspot/os_cpu/linux_ppc/os_linux_ppc.cpp
-@@ -108,24 +108,42 @@
-   // - if uc was filled by getcontext(), it is undefined - getcontext() does 
not fill
++
+ address os::current_stack_pointer() {
+   intptr_t* csp;
+ 
+@@ -110,11 +114,19 @@
    //   it because the volatile registers are not needed to make setcontext() 
work.
    //   Hopefully it was zero'd out beforehand.
-+#if defined(__GLIBC__) || defined(__UCLIBC__)
    guarantee(uc->uc_mcontext.regs != NULL, "only use ucontext_get_pc in 
sigaction context");
++#if defined(__GLIBC__) || defined(__UCLIBC__)
    return (address)uc->uc_mcontext.regs->nip;
 +#else // Musl
-+  guarantee(uc->uc_mcontext.gp_regs != NULL, "only use ucontext_get_pc in 
sigaction context");
-+  return (address)uc->uc_mcontext.gp_regs[32];
++  return (address)uc->uc_mcontext.gp_regs[PT_NIP];
 +#endif
  }
  
- // modify PC in ucontext.
- // Note: Only use this for an ucontext handed down to a signal handler. See 
comment
- // in ucontext_get_pc.
- void os::Linux::ucontext_set_pc(ucontext_t * uc, address pc) {
+ intptr_t* os::Linux::ucontext_get_sp(ucontext_t * uc) {
 +#if defined(__GLIBC__) || defined(__UCLIBC__)
-   guarantee(uc->uc_mcontext.regs != NULL, "only use ucontext_set_pc in 
sigaction context");
-   uc->uc_mcontext.regs->nip = (unsigned long)pc;
+   return (intptr_t*)uc->uc_mcontext.regs->gpr[1/*REG_SP*/];
 +#else // Musl
-+  guarantee(uc->uc_mcontext.gp_regs != NULL, "only use ucontext_set_pc in 
sigaction context");
-+  uc->uc_mcontext.gp_regs[32] = (unsigned long)pc;
++  return (intptr_t*)uc->uc_mcontext.gp_regs[1/*REG_SP*/];
 +#endif
  }
  
- static address ucontext_get_lr(const ucontext_t * uc) {
+ intptr_t* os::Linux::ucontext_get_fp(ucontext_t * uc) {
+@@ -213,7 +225,11 @@
+   if (uc) {
+     address const pc = os::Linux::ucontext_get_pc(uc);
+     if (pc && StubRoutines::is_safefetch_fault(pc)) {
 +#if defined(__GLIBC__) || defined(__UCLIBC__)
-   return (address)uc->uc_mcontext.regs->link;
+       uc->uc_mcontext.regs->nip = (unsigned 
long)StubRoutines::continuation_for_safefetch_fault(pc);
 +#else // Musl
-+  return (address)uc->uc_mcontext.gp_regs[36];
++      uc->uc_mcontext.gp_regs[PT_NIP] = (unsigned 
long)StubRoutines::continuation_for_safefetch_fault(pc);
 +#endif
- }
- 
- intptr_t* os::Linux::ucontext_get_sp(const ucontext_t * uc) {
+       return true;
+     }
+   }
+@@ -364,7 +380,11 @@
+           // continue at the next instruction after the faulting read. 
Returning
+           // garbage from this read is ok.
+           thread->set_pending_unsafe_access_error();
 +#if defined(__GLIBC__) || defined(__UCLIBC__)
-   return (intptr_t*)uc->uc_mcontext.regs->gpr[1/*REG_SP*/];
+           uc->uc_mcontext.regs->nip = ((unsigned long)pc) + 4;
 +#else // Musl
-+  return (intptr_t*)uc->uc_mcontext.gp_regs[1/*REG_SP*/];
++          uc->uc_mcontext.gp_regs[PT_NIP] = ((unsigned long)pc) + 4;
 +#endif
- }
- 
- intptr_t* os::Linux::ucontext_get_fp(const ucontext_t * uc) {
-@@ -133,7 +151,11 @@
- }
- 
- static unsigned long ucontext_get_trap(const ucontext_t * uc) {
+           return true;
+         }
+       }
+@@ -383,7 +403,11 @@
+         // continue at the next instruction after the faulting read. Returning
+         // garbage from this read is ok.
+         thread->set_pending_unsafe_access_error();
 +#if defined(__GLIBC__) || defined(__UCLIBC__)
-   return uc->uc_mcontext.regs->trap;
+         uc->uc_mcontext.regs->nip = ((unsigned long)pc) + 4;
 +#else // Musl
-+  return uc->uc_mcontext.gp_regs[40];
++        uc->uc_mcontext.gp_regs[PT_NIP] = ((unsigned long)pc) + 4;
 +#endif
- }
- 
- ExtendedPC os::fetch_frame_from_context(const void* ucVoid,
-@@ -259,7 +281,13 @@
-     // 3.2.1 "Machine State Register"), however note that ISA notation for bit
-     // numbering is MSB 0, so for normal bit numbering (LSB 0) they come to be
-     // bits 33 and 34. It's not related to endianness, just a notation matter.
+         return true;
+       }
+     }
+@@ -406,7 +430,11 @@
+   if (stub != NULL) {
+     // Save all thread context in case we need to restore it.
+     if (thread != NULL) thread->set_saved_exception_pc(pc);
 +#if defined(__GLIBC__) || defined(__UCLIBC__)
-     if (second_uc->uc_mcontext.regs->msr & 0x600000000) {
-+#else // Musl
-+    // why 33?
-+    // see comment for glibc NGREG: "r0-r31, nip, msr, lr, etc."
-+    if (second_uc->uc_mcontext.gp_regs[33] & 0x600000000) {
-+#endif
-       if (TraceTraps) {
-         tty->print_cr("caught signal in transaction, "
-                         "ignoring to jump to abort handler");
-@@ -586,6 +614,7 @@
-   const ucontext_t* uc = (const ucontext_t*)context;
+     uc->uc_mcontext.regs->nip = (unsigned long)stub;
++#else
++    uc->uc_mcontext.gp_regs[PT_NIP] = (unsigned long)stub;
++#endif
+     return true;
+   }
+ 
+@@ -564,6 +592,7 @@
+   ucontext_t* uc = (ucontext_t*)context;
  
    st->print_cr("Registers:");
 +#if defined(__GLIBC__) || defined(__UCLIBC__)
    st->print("pc =" INTPTR_FORMAT "  ", uc->uc_mcontext.regs->nip);
    st->print("lr =" INTPTR_FORMAT "  ", uc->uc_mcontext.regs->link);
    st->print("ctr=" INTPTR_FORMAT "  ", uc->uc_mcontext.regs->ctr);
-@@ -594,8 +623,18 @@
+@@ -572,8 +601,18 @@
      st->print("r%-2d=" INTPTR_FORMAT "  ", i, uc->uc_mcontext.regs->gpr[i]);
      if (i % 3 == 2) st->cr();
    }
 +#else // Musl
-+  st->print("pc =" INTPTR_FORMAT "  ", uc->uc_mcontext.gp_regs[32]);
-+  st->print("lr =" INTPTR_FORMAT "  ", uc->uc_mcontext.gp_regs[36]);
-+  st->print("ctr=" INTPTR_FORMAT "  ", uc->uc_mcontext.gp_regs[35]);
++  st->print("pc =" INTPTR_FORMAT "  ", uc->uc_mcontext.gp_regs[PT_NIP]);
++  st->print("lr =" INTPTR_FORMAT "  ", uc->uc_mcontext.gp_regs[PT_LNK]);
++  st->print("ctr=" INTPTR_FORMAT "  ", uc->uc_mcontext.gp_regs[PT_CTR]);
    st->cr();
 +  for (int i = 0; i < 32; i++) {
 +    st->print("r%-2d=" INTPTR_FORMAT "  ", i, uc->uc_mcontext.gp_regs[i]);
@@ -172,19 +176,8 @@ Reason: Musl libc offers a different structure for 
context_t*,
  
    intptr_t *sp = (intptr_t *)os::Linux::ucontext_get_sp(uc);
    st->print_cr("Top of Stack: (sp=" PTR_FORMAT ")", p2i(sp));
-@@ -618,12 +657,22 @@
-   st->print_cr("Register to memory mapping:");
-   st->cr();
- 
-+#if defined(__GLIBC__) || defined(__UCLIBC__)
-   st->print("pc ="); print_location(st, (intptr_t)uc->uc_mcontext.regs->nip);
-   st->print("lr ="); print_location(st, (intptr_t)uc->uc_mcontext.regs->link);
-   st->print("ctr ="); print_location(st, (intptr_t)uc->uc_mcontext.regs->ctr);
-+#else // Musl
-+  st->print("pc ="); print_location(st, 
(intptr_t)uc->uc_mcontext.gp_regs[32]);
-+  st->print("lr ="); print_location(st, 
(intptr_t)uc->uc_mcontext.gp_regs[36]);
-+  st->print("ctr ="); print_location(st, 
(intptr_t)uc->uc_mcontext.gp_regs[35]);
-+#endif
+@@ -600,7 +639,11 @@
+   // this is only for the "general purpose" registers
    for (int i = 0; i < 32; i++) {
      st->print("r%-2d=", i);
 +#if defined(__GLIBC__) || defined(__UCLIBC__)
@@ -195,9 +188,20 @@ Reason: Musl libc offers a different structure for 
context_t*,
    }
    st->cr();
  }
---- old/src/hotspot/os_cpu/linux_ppc/thread_linux_ppc.cpp
-+++ new/src/hotspot/os_cpu/linux_ppc/thread_linux_ppc.cpp
-@@ -56,8 +56,13 @@
+--- openjdk.orig/hotspot/src/os_cpu/linux_ppc/vm/thread_linux_ppc.cpp
++++ openjdk/hotspot/src/os_cpu/linux_ppc/vm/thread_linux_ppc.cpp
+@@ -27,6 +27,10 @@
+ #include "runtime/frame.inline.hpp"
+ #include "runtime/thread.hpp"
+ 
++#if ! (defined(__GLIBC__) || defined(__UCLIBC__))
++#include <asm/ptrace.h>
++#endif
++
+ bool JavaThread::pd_get_top_frame_for_profiling(frame* fr_addr, void* 
ucontext, bool isInJava) {
+   assert(this->is_Java_thread(), "must be JavaThread");
+ 
+@@ -42,8 +46,13 @@
    // if we were running Java code when SIGPROF came in.
    if (isInJava) {
      ucontext_t* uc = (ucontext_t*) ucontext;
@@ -206,21 +210,20 @@ Reason: Musl libc offers a different structure for 
context_t*,
                       (address)uc->uc_mcontext.regs->nip);
 +#else // Musl
 +    frame ret_frame((intptr_t*)uc->uc_mcontext.gp_regs[1/*REG_SP*/],
-+                     (address)uc->uc_mcontext.gp_regs[32]);
++                     (address)uc->uc_mcontext.gp_regs[PT_NIP]);
 +#endif
  
      if (ret_frame.pc() == NULL) {
        // ucontext wasn't useful
-@@ -70,7 +75,11 @@
-       if (m == NULL || !m->is_valid_method()) return false;
-       if (!Metaspace::contains((const void*)m->constMethod())) return false;
- 
+@@ -55,7 +64,11 @@
+        if (!((Method*)(istate->method))->is_metaspace_object()) {
+          return false;
+        }
 +#if defined(__GLIBC__) || defined(__UCLIBC__)
-       uint64_t reg_bcp = uc->uc_mcontext.regs->gpr[14/*R14_bcp*/];
+        uint64_t reg_bcp = uc->uc_mcontext.regs->gpr[14/*R14_bcp*/];
 +#else // Musl
-+      uint64_t reg_bcp = uc->uc_mcontext.gp_regs[14/*R14_bcp*/];
++       uint64_t reg_bcp = uc->uc_mcontext.gp_regs[14/*R14_bcp*/];
 +#endif
-       uint64_t istate_bcp = istate->bcp;
-       uint64_t code_start = (uint64_t)(m->code_base());
-       uint64_t code_end = (uint64_t)(m->code_base() + m->code_size());
-
+        uint64_t istate_bcp = istate->bcp;
+        uint64_t code_start = 
(uint64_t)(((Method*)(istate->method))->code_base());
+        uint64_t code_end = (uint64_t)(((Method*)istate->method)->code_base() 
+ ((Method*)istate->method)->code_size());

diff --git a/dev-java/openjdk/files/musl/8/0003_musl_hotspot_aarch64.patch 
b/dev-java/openjdk/files/patches/8/1003_hotspot-aarch64-musl.patch
similarity index 100%
rename from dev-java/openjdk/files/musl/8/0003_musl_hotspot_aarch64.patch
rename to dev-java/openjdk/files/patches/8/1003_hotspot-aarch64-musl.patch

diff --git a/dev-java/openjdk/files/musl/8/0004_musl_hotspot_noagent.patch 
b/dev-java/openjdk/files/patches/8/1004_hotspot-noagent-musl.patch
similarity index 100%
rename from dev-java/openjdk/files/musl/8/0004_musl_hotspot_noagent.patch
rename to dev-java/openjdk/files/patches/8/1004_hotspot-noagent-musl.patch

diff --git a/dev-java/openjdk/files/musl/8/0006_musl_jdk.patch 
b/dev-java/openjdk/files/patches/8/1006_jdk-musl.patch
similarity index 100%
rename from dev-java/openjdk/files/musl/8/0006_musl_jdk.patch
rename to dev-java/openjdk/files/patches/8/1006_jdk-musl.patch

diff --git a/dev-java/openjdk/openjdk-11.0.9_p11.ebuild 
b/dev-java/openjdk/openjdk-11.0.10_p9.ebuild
similarity index 93%
rename from dev-java/openjdk/openjdk-11.0.9_p11.ebuild
rename to dev-java/openjdk/openjdk-11.0.10_p9.ebuild
index af0cd66..fb91502 100644
--- a/dev-java/openjdk/openjdk-11.0.9_p11.ebuild
+++ b/dev-java/openjdk/openjdk-11.0.10_p9.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=6
@@ -132,19 +132,15 @@ pkg_setup() {
 src_prepare() {
        default
 
-       # conditionally apply patches for musl compatibility
-       if use elibc_musl; then
-               eapply "${FILESDIR}/musl/${SLOT}/build.patch"
-               eapply "${FILESDIR}/musl/${SLOT}/fix-bootjdk-check.patch"
-               eapply "${FILESDIR}/musl/${SLOT}/ppc64le.patch"
-               eapply "${FILESDIR}/musl/${SLOT}/aarch64.patch"
-       fi
+       eapply "${FILESDIR}/patches/${SLOT}/0001_fix-bootjdk-check.patch"
+
+       if use elibc_musl ; then
+               eapply "${FILESDIR}/patches/${SLOT}/1001_build.patch"
+               eapply "${FILESDIR}/patches/${SLOT}/1002_aarch64.patch"
+               eapply "${FILESDIR}/patches/${SLOT}/1003_ppc64le.patch"
 
-       # conditionally remove not compilable module (hotspot jdk.hotspot.agent)
-       # this needs libthread_db which is only provided by glibc
-       #
-       # haven't found any way to disable this module so just remove it.
-       if use elibc_musl; then
+               # this needs libthread_db which is only provided by glibc
+               # haven't found any way to disable this module so just remove 
it.
                rm -rf "${S}"/src/jdk.hotspot.agent || die "failed to remove 
HotSpot agent"
        fi
 
@@ -185,6 +181,7 @@ src_configure() {
                --with-zlib=system
                --enable-dtrace=$(usex systemtap yes no)
                --enable-headless-only=$(usex headless-awt yes no)
+               $(tc-is-clang && echo "--with-toolchain-type=clang")
        )
 
        if use javafx; then

diff --git a/dev-java/openjdk/openjdk-8.272_p10.ebuild 
b/dev-java/openjdk/openjdk-8.282_p08.ebuild
similarity index 86%
rename from dev-java/openjdk/openjdk-8.272_p10.ebuild
rename to dev-java/openjdk/openjdk-8.282_p08.ebuild
index 28b42be..eb6095f 100644
--- a/dev-java/openjdk/openjdk-8.272_p10.ebuild
+++ b/dev-java/openjdk/openjdk-8.282_p08.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=6
@@ -43,7 +43,7 @@ SRC_URI="
 
 LICENSE="GPL-2"
 SLOT="$(ver_cut 1)"
-KEYWORDS="amd64 ~arm64 ppc64 x86"
+KEYWORDS="amd64 arm64 ppc64 x86"
 IUSE="alsa debug cups doc examples headless-awt javafx +jbootstrap +pch 
selinux source"
 
 COMMON_DEPEND="
@@ -139,22 +139,28 @@ src_prepare() {
        sed -i '/^WARNINGS_ARE_ERRORS/ s/-Werror/-Wno-error/' \
                hotspot/make/linux/makefiles/gcc.make || die
 
+       # todo: patches
+       eapply "${FILESDIR}/patches/${SLOT}/0001_fix-jdk-ipv6-init.patch"
+       eapply "${FILESDIR}/patches/${SLOT}/0002_fix-jdk-close-fds.patch"
+       eapply "${FILESDIR}/patches/${SLOT}/0003_jdk-disable-vfork.patch"
+       eapply 
"${FILESDIR}/patches/${SLOT}/0004_hotspot-insantiate-arrayallocator.patch"
+       eapply 
"${FILESDIR}/patches/${SLOT}/0005_fix-build-with-as-needed-toolchain.patch"
+       eapply "${FILESDIR}/patches/${SLOT}/0006_fix-libjvm-load.patch"
+       eapply "${FILESDIR}/patches/${SLOT}/0007_jdk-includes.patch"
+       eapply "${FILESDIR}/patches/${SLOT}/0008_jdk-execinfo.patch"
+
        # conditionally apply patches for musl compatibility
        if use elibc_musl; then
-               eapply "${FILESDIR}/musl/${SLOT}/0001_musl_hotspot.patch"
-               eapply "${FILESDIR}/musl/${SLOT}/0002_musl_hotspot_ppc.patch"
-               eapply 
"${FILESDIR}/musl/${SLOT}/0004_musl_hotspot_noagent.patch"
-               eapply 
"${FILESDIR}/musl/${SLOT}/0005_musl_fix_libjvm_load.patch"
-               eapply "${FILESDIR}/musl/${SLOT}/0006_musl_jdk.patch"
-               eapply "${FILESDIR}/musl/${SLOT}/0007_musl_jdk_includes.patch"
-               eapply "${FILESDIR}/musl/${SLOT}/0008_musl_jdk_execinfo.patch"
-               eapply "${FILESDIR}/musl/${SLOT}/0009_fix_jdk_ipv6_init.patch"
-               eapply "${FILESDIR}/musl/${SLOT}/0010_fix_jdk_close_fds.patch"
-       fi
+               eapply "${FILESDIR}/patches/${SLOT}/1001_hotspot-musl.patch"
+               eapply "${FILESDIR}/patches/${SLOT}/1002_hotspot-ppc-musl.patch"
+
+               # apply this patch here as the sources are not available unless 
ARCH == arm64
+               if use arm64; then
+                       eapply 
"${FILESDIR}/patches/${SLOT}/1003_hotspot-aarch64-musl.patch"
+               fi
 
-       # apply this patch here as the sources are not available unless ARCH == 
arm64
-       if use elibc_musl && use arm64; then
-               eapply 
"${FILESDIR}/patches/${PN}-${SLOT}/0003_musl_hotspot_aarch64.patch"
+               eapply 
"${FILESDIR}/patches/${SLOT}/1004_hotspot-noagent-musl.patch"
+               eapply "${FILESDIR}/patches/${SLOT}/1006_jdk-musl.patch"
        fi
 
        chmod +x configure || die
@@ -193,6 +199,7 @@ src_configure() {
                        --with-zlib=system
                        --with-native-debug-symbols=$(usex debug internal none)
                        $(usex headless-awt --disable-headful '')
+                       $(tc-is-clang && echo "--with-toolchain-type=clang")
                )
 
        # PaX breaks pch, bug #601016

Reply via email to