From 4418de0dd58e5905dd4491fe70e2aecc0b2ca1bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andrius=20=C5=A0tikonas?= Date: Sun, 5 Jul 2020 12:38:16 +0100 Subject: [PATCH] dev-java/jamvm: add aarch64 patches. --- dev-java/ant-core/Manifest | 2 +- dev-java/ant-core/ant-core-1.8.4-r1.ebuild | 2 +- dev-java/eclipse-ecj/Manifest | 4 +- dev-java/eclipse-ecj/eclipse-ecj-3.2.ebuild | 2 +- dev-java/eclipse-ecj/eclipse-ecj-4.2.1.ebuild | 2 +- dev-java/gnu-classpath/Manifest | 6 +- .../gnu-classpath/gnu-classpath-0.93.ebuild | 2 +- .../gnu-classpath-0.99-r2.ebuild | 2 +- .../gnu-classpath-0.99_p1.ebuild | 2 +- dev-java/icedtea/Manifest | 4 +- dev-java/icedtea/icedtea-3.7.0.ebuild | 2 +- dev-java/icedtea/icedtea-7.2.6.9.ebuild | 2 +- dev-java/jamvm/Manifest | 11 +- .../files/jamvm-1.5.1-aarch64-support.patch | 572 ++++++++++++++++ .../files/jamvm-2.0.0-aarch64-support.patch | 645 ++++++++++++++++++ .../files/jamvm-2.0.0-opcode-guard.patch | 35 + dev-java/jamvm/jamvm-1.5.1.ebuild | 3 +- dev-java/jamvm/jamvm-2.0.0-r10.ebuild | 8 +- dev-java/jamvm/jamvm-2.0.0-r20.ebuild | 8 +- dev-java/jamvm/jamvm-2.0.0.ebuild | 8 +- dev-java/jikes/Manifest | 2 +- dev-java/jikes/jikes-1.22-r13.ebuild | 2 +- virtual/jdk/Manifest | 6 +- virtual/jdk/jdk-1.4.ebuild | 2 +- virtual/jdk/jdk-1.5.ebuild | 2 +- virtual/jdk/jdk-1.6.ebuild | 2 +- virtual/jre/Manifest | 6 +- virtual/jre/jre-1.4.ebuild | 2 +- virtual/jre/jre-1.5.ebuild | 2 +- virtual/jre/jre-1.6.ebuild | 2 +- 30 files changed, 1306 insertions(+), 44 deletions(-) create mode 100644 dev-java/jamvm/files/jamvm-1.5.1-aarch64-support.patch create mode 100644 dev-java/jamvm/files/jamvm-2.0.0-aarch64-support.patch create mode 100644 dev-java/jamvm/files/jamvm-2.0.0-opcode-guard.patch diff --git a/dev-java/ant-core/Manifest b/dev-java/ant-core/Manifest index 5bcd6a8..188c23f 100644 --- a/dev-java/ant-core/Manifest +++ b/dev-java/ant-core/Manifest @@ -1,3 +1,3 @@ DIST apache-ant-1.8.4-src.tar.bz2 3385365 BLAKE2B 2cbb84385dbfdcbc68d138fa5c88f6759ed579ae3e1df129094948aa5677fca6d4d1140c0c8c2723bddce1dfb04f0121f46b7f8a798f4beb6e1c5cdb15fe9eff SHA512 7dbbdcd31f5fd498cbbe7f125451899320e5e9c2396b80f1f90d18943f8ef066a75198edfdba0edf96b1e0b5b84cb049b5281403180a7a6924ebfb077930e307 -EBUILD ant-core-1.8.4-r1.ebuild 1814 BLAKE2B f6a914256e3d781b3861abbf68f44abbfdb96f54b544c28d7581f528e5462b40abba5b17ae1f4c996f34f3e5d6bcf4bdcf6151dcbeb811c538ff2f4a5608207b SHA512 a8f2e5c96641a7201c9655b3ac2324f51d51b413e1399787757d1bded7a1b92938682d1ff192370027da846aea8ace2bff59563feb2151912b7d81b7a7791cb4 +EBUILD ant-core-1.8.4-r1.ebuild 1820 BLAKE2B 446bf4d69b5e95ad56c33cc455c8104c7853d0b908a83755c37bbbc3fc221fbdd8eeb5bd0f1b3f524164a4ca0a6c19543143bc314928cf1b0629e5539653561e SHA512 e2ab8eb032b06be7176154cbbe72a8ec775db14bddc2949264f91d774a2570274d2366c92254a563df1cf1bb868470ac491ac2e9c27fdf981b731ef437b1929f MISC metadata.xml 390 BLAKE2B c6509d0728b476d3bc7d596a11e7477b75cae7c3c3918e18ae0f6bb5fdd04edb62e22f1dca148843d82760406ef2e9f4da43e3348b396801dbb3f07a322e5fae SHA512 ab625d234114a10cf0074c97cc4ec2fe9a191be282c9faca739964d36fc790199f4a6d6788fe4f6d3e9279e80b44f909aacfb3c5a595334b3b4bcc19f5f343e4 diff --git a/dev-java/ant-core/ant-core-1.8.4-r1.ebuild b/dev-java/ant-core/ant-core-1.8.4-r1.ebuild index 1c62bbf..935c201 100644 --- a/dev-java/ant-core/ant-core-1.8.4-r1.ebuild +++ b/dev-java/ant-core/ant-core-1.8.4-r1.ebuild @@ -17,7 +17,7 @@ SRC_URI="http://archive.apache.org/dist/ant/source/apache-ant-${PV}-src.tar.bz2" LICENSE="Apache-2.0" SLOT="bootstrap" -KEYWORDS="amd64" +KEYWORDS="amd64 arm64" IUSE="doc" RDEPEND="dev-java/jamvm:1.5 diff --git a/dev-java/eclipse-ecj/Manifest b/dev-java/eclipse-ecj/Manifest index 76b4c2f..fa9d136 100644 --- a/dev-java/eclipse-ecj/Manifest +++ b/dev-java/eclipse-ecj/Manifest @@ -3,5 +3,5 @@ AUX eclipse-ecj-3.2-build-gentoo.patch 1874 BLAKE2B dee1fd186a776a049ecdaf05472d AUX override.patch 53592 BLAKE2B ddfb5cdb8b3569755036a4cde4a49924dd9d6eb124c52c52a2aab1161fccdc579f6722d9173863a65da3b059fb7f7a9d1b4098e6014deb70f9f3715807f7961d SHA512 f5f84c9f4388a4a5b81ece22fdb5e3b106659fff23927e814d97eae4f4ccbfd5ebec41825386ad118ee7ef266dc56eaea0e771800195a2ecac61fbf781e4bff6 DIST ecjsrc-4.2.1.jar 1417043 BLAKE2B dc6915ec85d96a6ecdafb04485549feeb6ef8329811e294647e9e179ff3b1ec3cea55c29ad23b306ff3489dbfe6f574dc691ee31080a592d71607d3a996e9bb4 SHA512 967b47a722893ea1f9eb17e69d386881dc87516e93c1d7a2a119d6fb2e053faa0d9d6455b6e4b89c3f23a3ec7ae33686f4acc305d7c6e51929ce7837c9c93eaf DIST eclipse-ecj-3.2.tar.bz2 612611 BLAKE2B dc2cadb2f7be85f6583020079f2e02a66d6432b35f595c44cc38731504c8dcd43cd3e407b80c93e5dc828e10eb37d78a74a4674e2c7c5eac7329f179947b8683 SHA512 037564cacb154e6dc81718cbb1a4f1547663c151681e3725d7728db782611ed22905d5395d24214336cfaefeeb4e2ea87fab69f5012f163164a7aaf87f203ba2 -EBUILD eclipse-ecj-3.2.ebuild 1516 BLAKE2B e760457fb3d845a13ab78c92c4320b33703c0bc70a29bb05a47bf289b4c9c3bf15bdef479378c532d5cf88bc886926dbf2e4f65313abe34d38194941e5c80f06 SHA512 244914719c20bbf869a80208b410f317b3f2b1aea18623d6aa3f6fa46846b4df40be0215a64c38f486f12f14c00c69a4ee635f34a7af5c8d86e275ad53325723 -EBUILD eclipse-ecj-4.2.1.ebuild 2890 BLAKE2B 8628fb9ea54e4056a0d4884ba201e23ee399b4375cbe0315284550aed86ea2da199ef44a53f9a5214766edd179fedcd3e462d82fb8c24e392533ef462a8e97a5 SHA512 5c462d52376b2354e134e981d4a1c753af36a26bf4b36d9dda9181f75eceb81a311d5d24dbec3df842ce650b0e0f35306a7bf0f6a0ff00998f9673b2a8eb9b81 +EBUILD eclipse-ecj-3.2.ebuild 1522 BLAKE2B 3fb3efadd87b5a37bb75dd75c31d4822c9834c55f51b995fb3fb9c98118230778ab334d3944acfbd507016b20eb69e4a5703e7503048ca3df565767503d517f0 SHA512 0dc31cca6b9f4b76fd3af4970e69fde4c7ddbc5d3fde3dbb6e2f07392c1fd5d548bbdb897cd663a45d1b6fc1b7eac8b4eb03a22f50fe84707edfc52baa99fc63 +EBUILD eclipse-ecj-4.2.1.ebuild 2896 BLAKE2B f48fbfe4009151b51df9b9ea6f8cab7b831177b21e2e32587ceac8543f4db723efdf2335db8d0e662bd80ffcbba1cd54b25a9f9520052d1462dfc1d30f8b712a SHA512 5ead6757c1765b43cff4656355e23e3e917650280a31f8ee3ca96f4068e93cd76c90ac81a1bad41a53ebcd6f68eff64fc7bb2f0d102a8b562b244e9908be4dcf diff --git a/dev-java/eclipse-ecj/eclipse-ecj-3.2.ebuild b/dev-java/eclipse-ecj/eclipse-ecj-3.2.ebuild index 797b2bb..4809d75 100644 --- a/dev-java/eclipse-ecj/eclipse-ecj-3.2.ebuild +++ b/dev-java/eclipse-ecj/eclipse-ecj-3.2.ebuild @@ -12,7 +12,7 @@ DESCRIPTION="Eclipse Compiler for Java" HOMEPAGE="http://www.eclipse.org/" SRC_URI="${P}.tar.bz2" LICENSE="EPL-1.0" -KEYWORDS="amd64" +KEYWORDS="amd64 arm64" SLOT="3.2" RDEPEND="virtual/jre:1.4" diff --git a/dev-java/eclipse-ecj/eclipse-ecj-4.2.1.ebuild b/dev-java/eclipse-ecj/eclipse-ecj-4.2.1.ebuild index 8b7f49d..bc1f95f 100644 --- a/dev-java/eclipse-ecj/eclipse-ecj-4.2.1.ebuild +++ b/dev-java/eclipse-ecj/eclipse-ecj-4.2.1.ebuild @@ -13,7 +13,7 @@ HOMEPAGE="http://www.eclipse.org/" SRC_URI="http://download.eclipse.org/eclipse/downloads/drops4/${DMF}/${MY_PN}src-${PV}.jar" LICENSE="EPL-1.0" -KEYWORDS="amd64 ppc64 x86 ~amd64-linux ~x86-linux ~x86-solaris" +KEYWORDS="amd64 arm64 ppc64 x86 ~amd64-linux ~x86-linux ~x86-solaris" SLOT="4.2" IUSE="+userland_GNU" diff --git a/dev-java/gnu-classpath/Manifest b/dev-java/gnu-classpath/Manifest index a9993f6..679f9ae 100644 --- a/dev-java/gnu-classpath/Manifest +++ b/dev-java/gnu-classpath/Manifest @@ -1,6 +1,6 @@ DIST classpath-0.93.tar.gz 9534222 BLAKE2B 36313f25e165856a8716c18873d725d82f52e20310d2c22ca0b0b0a481e66a00ccad4138c76e96c119772565819bc06cd626bc100ddea0684d04165e10206541 SHA512 69d831361085514bb7c5607fa694914cc01bc9fe589b7744d5534c97d434722193a1b68a336642d0dba9a3b50e9acea0364741790e9f19d196e5956a51c320b0 DIST classpath-0.99.tar.gz 11078232 BLAKE2B cb62cc58b9ce75df98809298a6c6a588704a98a133e8a0378c372e6cc0e6b07c8f05d7bd23c52f2697e6a3b4bfc1f0cdfc7aa108f2f681af154e6fd8c59d9460 SHA512 d8f38677ecc6a0f4b26197ab16e9888c51043364141675ad69684828e2d0ecb93122249672e2e7997aea817cc4aac68c17ccf59bf8913afe81e9536bee6b73ac -EBUILD gnu-classpath-0.93.ebuild 1141 BLAKE2B 044978d90b27efaa721d6ccebd8282b69203598523135c8468f2ab5ba9066595bf2182badaaed0f00f6f11cad23db665d60291d86b086fc684b8943b33b9109b SHA512 a06310f8596d9731c261e4327ff469704d25534f539796076620cada4a210426772f8b0a7d989c42fc5a830433dfb0615a6f49dc69c58a4000132829bfbb1971 -EBUILD gnu-classpath-0.99-r2.ebuild 2448 BLAKE2B 0b809111313f9f5fd396c945c759a8fab26efb5f6943140e795f2a0ce6fd7b9bb1753f57882c3f4b7ede8f862abd9922ff077cf94b2d7d4d260e30323c892deb SHA512 370539badfe7d2907c989273e4c6e55bbf426288f65f8b5d230f0cdd76e93bc69063a6d23c9c33ee25ddef8033983e1b0e2d26175919e5c22eaeabea1db8f49a -EBUILD gnu-classpath-0.99_p1.ebuild 2424 BLAKE2B 336b6ddba10937a8673c689f1130d83099a8270f3537d2ebdee422616a54129f0551377dd43853936419a937374d7aeaa955b530b525e30e4228e094c23cc088 SHA512 e0cff948b88917950729dc2adbae648e0e7fdb8ef3c4b93754b3cfb795362f0f2c75d1b94f6554a5ca58e1e18b0aa13bb50111ba2234548793117e72eb8616a2 +EBUILD gnu-classpath-0.93.ebuild 1140 BLAKE2B 63f079bdd97532d81b136b0d549d52cbe3196c89793aa13b8721fde3c0831e93bb8885036927a5a63236d2a01ca891450e93d27d87cd3124d6f52116fa24723e SHA512 d031455cc6c0c5797430908d31dbe6a555c3524f2fb60fec8d26579111b64391faccf28091eafa8c0dc857dd24f9b621ed2ff600a824131fdadd33024520ed11 +EBUILD gnu-classpath-0.99-r2.ebuild 2454 BLAKE2B ca8c22eb916bb50f0783cc9b39157e1299a3a8e8d2f33b76d81cda3a3c1707f1d179db2337cf3748acf55ac03b4b381020e9ef7210e3d4f8eec4d02a987cbc79 SHA512 5f543434b3efdf84533478c7eb79762394c224ef52e72c2f6eb09f8a97e1ab8983f33cbd163111c4a9e1cb182bda754919122aff59eba0774e383b5cbc87a604 +EBUILD gnu-classpath-0.99_p1.ebuild 2430 BLAKE2B b074eed7f5a2f5a7b50c19b2d595e3bd4a429b0692112feb0600887c4efa0d8eac1dee1f4b806252bf8805b3e1389ecffc6a77cadaf7742b1730563bc003e5d9 SHA512 f82c30f310412c7a97beca61c7acd045180fe6d3619a744db62eec1864f10d2fdb0a70fbcb9519eb462a935b5418cce4492f4496fdc8597cc92c02b036996ce2 MISC metadata.xml 252 BLAKE2B a3a36edd6c0b4e630f0e38d236ff4133a5c6b4aa42f5525d8a0978ecdbbe3d53602d3fcde02cf1a495bfabb4fd06f914826df44bda7f542ce8543b32fd7bbfe2 SHA512 1ab83f56876901e45f2b34aa5c81bd1d7b243009236d238b49fca2d49ec167c596ea589de6df1c8dfe1a6b834a2e0e493409ee65d499bd2b6ecaf687ae71df69 diff --git a/dev-java/gnu-classpath/gnu-classpath-0.93.ebuild b/dev-java/gnu-classpath/gnu-classpath-0.93.ebuild index 57aa175..55d2bca 100644 --- a/dev-java/gnu-classpath/gnu-classpath-0.93.ebuild +++ b/dev-java/gnu-classpath/gnu-classpath-0.93.ebuild @@ -12,7 +12,7 @@ HOMEPAGE="https://www.gnu.org/software/classpath" LICENSE="GPL-2-with-linking-exception" SLOT="0.93" -KEYWORDS="amd64 ~arm64" +KEYWORDS="amd64 arm64" DEPEND="sys-libs/zlib app-arch/fastjar diff --git a/dev-java/gnu-classpath/gnu-classpath-0.99-r2.ebuild b/dev-java/gnu-classpath/gnu-classpath-0.99-r2.ebuild index b7dc7a2..e3057de 100644 --- a/dev-java/gnu-classpath/gnu-classpath-0.99-r2.ebuild +++ b/dev-java/gnu-classpath/gnu-classpath-0.99-r2.ebuild @@ -12,7 +12,7 @@ HOMEPAGE="https://www.gnu.org/software/classpath" LICENSE="GPL-2-with-linking-exception" SLOT="0.99" -KEYWORDS="amd64" +KEYWORDS="amd64 arm64" IUSE="" REQUIRED_USE="" diff --git a/dev-java/gnu-classpath/gnu-classpath-0.99_p1.ebuild b/dev-java/gnu-classpath/gnu-classpath-0.99_p1.ebuild index b8ed456..40e3a08 100644 --- a/dev-java/gnu-classpath/gnu-classpath-0.99_p1.ebuild +++ b/dev-java/gnu-classpath/gnu-classpath-0.99_p1.ebuild @@ -12,7 +12,7 @@ HOMEPAGE="https://www.gnu.org/software/classpath" LICENSE="GPL-2-with-linking-exception" SLOT="0.99-devel" -KEYWORDS="amd64" +KEYWORDS="amd64 arm64" IUSE="" REQUIRED_USE="" diff --git a/dev-java/icedtea/Manifest b/dev-java/icedtea/Manifest index 041e16b..223c177 100644 --- a/dev-java/icedtea/Manifest +++ b/dev-java/icedtea/Manifest @@ -23,5 +23,5 @@ DIST icedtea-3.7.0.tar.xz 1487360 BLAKE2B efef75c5ac615c21310f16f50fc425c5a76076 DIST icedtea-cacao-c182f119eaad.tar.gz 4485353 BLAKE2B 5c1faa3cbbfea62f819562a01ec389f3682cf3164d06f5404d1d16359c87b37d6ae4101f7c33cde30bad4f3d52af18f0f410e36868b2c9d1280661d2340e683b SHA512 2ccb947d71b80d84b83295d473c19952e98698a1fd944fc7c12004ff1af29af2989d46fbd95b5daf95eae2fda9de7c7f88f964fa887a6345b4f57d0c490bee23 DIST icedtea-cacao-c182f119eaad.tar.xz 3056520 BLAKE2B 6b1be66ce19f491d49f1591babcd8c088e8e327f828dca3f30b8f8b04c132140f8b9f487ef6d91aed212aebab2c7c3052d79fa3f2d76d3832341d94d48e77089 SHA512 22e8a031db5f93f82b276b310c175f1e926e48d64e1e50bebe51138e0f66391cd005501491a959d31663f338f27a29ec984ac29f77078f59472856e4d08edef7 DIST icedtea-jamvm-ec18fb9e49e62dce16c5094ef1527eed619463aa.tar.gz 317187 BLAKE2B 1ca581a02be4cf5c09162687bbc90ec01b58b4910d866d11512cf17a1caff181fdc69e42f7498b2df9deb875ddc6efc6bc2888428f411da94bbc2313ddf5a2c9 SHA512 a31348481e1c02747f5bb9db333f855c45a1555aa187ee35de5ef553a10a8a47dfcc1beb1e69502046c1758438b91958a328e0a0015812c153221f67734a70a6 -EBUILD icedtea-3.7.0.ebuild 13477 BLAKE2B dcc4a04e53af1d131c1ab49d8917a5f2f3df14dd32edf6de46696b0c891b891bc5574e5e38f2a38dff5a23ce76f32706c7c07ecd62e7c908ab9307baf7e487a3 SHA512 54237eeca80c361ca1e9e4936c026ed79997884e3248981dab23c4b4e85f8ba46da65715e1862311f81d18fd0a929b97b4bc0f18c9e6ba7b05d1e176a740a756 -EBUILD icedtea-7.2.6.9.ebuild 11295 BLAKE2B f191cc2ac77758c3b62ce58042ff4b9c5cdd327af859ab8d772f3274bb9a36e48654dc05e3f818a96db4c7fa7a52d21601694a85107b7d5995b46b9e2c8db5cd SHA512 b74b168c71f39804ba502afe84c294d9f001672bdfaf34dcd7c7510a6700f5ed8a8a8ad87a3395841a175d612fde83a3f3b26396ba44d622ac628b0dc4933379 +EBUILD icedtea-3.7.0.ebuild 13476 BLAKE2B 83ff27f01a25038abf19cbfe5b13d495fe1845e112d6fa916f3192664779ae5bcef95b6b3d0fe189cf5c5baa24dae6ab901b9c50ee99f6679a4a1b6ffd6d4720 SHA512 beacbf9b65aba5ca2a624f1d3a68245feee9331b694e3a0f6993eacfdae78332174702bed0933809d97e8d5ee2ed2a1007e31f5e246720d2baa3ad0e47dc4619 +EBUILD icedtea-7.2.6.9.ebuild 11301 BLAKE2B 4ee54e61af66905ee7f63b42351bf80c989786c9b7115602ac73e99f3d2c7e3b8c2196a2244887008f1cd5829b3a5451d7cdf259cf09a33a949fcc897549df24 SHA512 ee84b939c47d3e407769ac0e271d54ccf78ca1f8c8748b7fbad80e05644277a0fc541a0bb73a6f3c7b5cfa921dfc4b0fb0746de730d405d0e3cb7e35740f53db diff --git a/dev-java/icedtea/icedtea-3.7.0.ebuild b/dev-java/icedtea/icedtea-3.7.0.ebuild index 3bf0501..ed53482 100644 --- a/dev-java/icedtea/icedtea-3.7.0.ebuild +++ b/dev-java/icedtea/icedtea-3.7.0.ebuild @@ -63,7 +63,7 @@ SRC_URI=" ${DROP_URL}/jamvm/${JAMVM_TARBALL} -> ${JAMVM_GENTOO_TARBALL}" LICENSE="Apache-1.1 Apache-2.0 GPL-1 GPL-2 GPL-2-with-linking-exception LGPL-2 MPL-1.0 MPL-1.1 public-domain W3C" -KEYWORDS="amd64 ~arm ~arm64 ~ppc64 ~x86" +KEYWORDS="amd64 ~arm arm64 ~ppc64 ~x86" IUSE="+alsa cacao +cups doc examples +gtk headless-awt jamvm +jbootstrap kerberos libressl pax_kernel +pch diff --git a/dev-java/icedtea/icedtea-7.2.6.9.ebuild b/dev-java/icedtea/icedtea-7.2.6.9.ebuild index 69129dc..f447881 100644 --- a/dev-java/icedtea/icedtea-7.2.6.9.ebuild +++ b/dev-java/icedtea/icedtea-7.2.6.9.ebuild @@ -57,7 +57,7 @@ SRC_URI=" ${DROP_URL}/jamvm/${JAMVM_TARBALL} -> ${JAMVM_GENTOO_TARBALL}" LICENSE="Apache-1.1 Apache-2.0 GPL-1 GPL-2 GPL-2-with-linking-exception LGPL-2 MPL-1.0 MPL-1.1 public-domain W3C" -KEYWORDS="amd64" +KEYWORDS="amd64 arm64" IUSE="+alsa cacao +cups debug doc examples +gtk headless-awt +jbootstrap kerberos libressl nss pax_kernel diff --git a/dev-java/jamvm/Manifest b/dev-java/jamvm/Manifest index cf9ea34..3a84ad3 100644 --- a/dev-java/jamvm/Manifest +++ b/dev-java/jamvm/Manifest @@ -1,17 +1,20 @@ AUX classes-location.patch 1184 BLAKE2B 367fad8488bf6866021aade628221a7ce53a000fc6cba0b59bbe4b2145d30a07cb6d057dcc7a4ea370f82926e0171021e50691ce35959b129802ad38d441983d SHA512 0e441916dbf66289bea37da807a85930a9fe320b5c3a5301df85a870418125fe9fe0c5fb7ce7e4baa9dfc75a3438509e9d77b0ede67b06411935875ec7e641ee +AUX jamvm-1.5.1-aarch64-support.patch 19981 BLAKE2B d596d0f3fb237a9fad5c2455b50248908184998e81ac91766155eb7b32aa74da453a9de324d1bbc8ef120d748cf367c0eba6556e5a091cc92f85fd1a11eaa535 SHA512 4380a95ee83bbcb076c8f19854dcd1c78fb81bc210ed2da04ce37d5977a0788debb1a3de04adff8295a6c5623e2fb2aa20739dd743f4e5b7fafaabe323189e0e AUX jamvm-1.5.1.env 502 BLAKE2B 51e16cc15c1e6392b3c9d37089c1c8e73f64ec0431a90369ba60fd0bc6751c6aa8d3af5283a14ddb509091bb0a9390ba131c7b8bc92f1f371b7ea95a5d6c1f4f SHA512 b00ff86eb6de75c73b46f8f6dff14be1cf290d1b9d2942710fb9b6c2c90543cf2eb0e92d40df42804e9b5ff644b9099ff78a272cc2e253cfc85ee619a7d46ab6 AUX jamvm-2.0.0-2-classes-location.patch 1278 BLAKE2B 9da04a8e239ae8522ff055ea56d09f69be348701fc2790b38143d78425a1396168daa55bb609b88a26638d879b5bea0bf040224f5e867416038b4b0de7b86705 SHA512 841ef1ebe425127130883c8b20372e558bf072c8fa596aa61f6d68a9cc1fd6716e1a92d7d4563a973470a537e26b4d3e0a6ac3d46b8c9dc73cada9aaf48ed193 AUX jamvm-2.0.0-2-env.file 549 BLAKE2B 328469234c99b25df79c2324491fb12d3a7c7baf95a58729b81c40aad019061be8b564b8931c7f39c24e8146e64cf06575142c4e1dd393370c44cb3bc9f5ce68 SHA512 f8a4350c4281f04c120471765b112dcb02bea4302cb2e3c37c0d65d46c7c59620b2572eb2ab0e2e32c2b50c381a34b71de4183101f98fd3466e15168a032be84 AUX jamvm-2.0.0-3-classes-location.patch 1278 BLAKE2B 09375a5f0a975868679e959a35eebed9290db064edc2278ecffab282cd1641247f4fcdaf2ad3c79b24aa0c0033745c6e70450d4180868486bd150e3f678555ef SHA512 60bac0cd29d1d0affa01a6eb5f5deb6c29e72c26c5bfc172754ba528d28ab45fd6fc522dc3b4dee103c557a883140dff6a54398a710ee2312a42de964e648162 AUX jamvm-2.0.0-3-env.file 549 BLAKE2B 51d4f1c4aa8331eb75817ab93cc2e941eb2e83f3c5312577cf88fa686b4a8fd659bd62969d0dbc2380a2abda207f2691482bb9a78be40652b40368ab1e24b395 SHA512 e551495436bd8c0f6be7b7950fb7c56d494fca1469dafa2f222ca9c310e3e3e4fd7b3f16c0a68488d3f1405fd596772efe8b71f9bd99b630609a786f6f03d08f +AUX jamvm-2.0.0-aarch64-support.patch 23804 BLAKE2B a7585bcd3b9b1775430b99072315b8864253a26456fdb2b6f5dc68a0917e967d3f48c394de2ceb882ca9353532a281e5eb3c168372826f5bb447fdf59c4f23c8 SHA512 d930865029c45f74f169b038171d72ad91f558532f074ea70fdf4bd43f6c4d1748f88edaaab9b6e46f792c26ce38efa3eb3853c7e09da2c1964f316ca8fbed24 AUX jamvm-2.0.0-classes-location.patch 1278 BLAKE2B 10a7851ad9f0c7651aaed7ff0e72a2c96a04157dedbcc38eefc465ad436a5011fea94b11e793a746d825384e80149444d93955ef35ef2fa7c6f87b8cffef08e8 SHA512 45299cbcfd17aaae64f0a1678462970704543dfeed7162b03eb732b415f497aedf83fbb831782226b30e2508d61ba4e72d60d54b4f4fa8347bedf2934cb15a1c AUX jamvm-2.0.0-env.file 547 BLAKE2B 805af8fd4b6ba6452d645a4ae46d9ecdb74cbd9b6d13ffe4f0ab545963bfaf6b4ec2a7b57f39b5143d59816e0838054fb07bcf9dc0ee1fa7b48abf5b7cc2448b SHA512 6135a2ca9eafa39619a8f427864e81589e38b061be31dfb5cbfdf19b2530a4f7aab1b50de5cdc4c37f696f8e92cd96684845fd107a3bfa937a2fa334225c15de AUX jamvm-2.0.0-javac.in 1739 BLAKE2B ff167bfba594dbfb71dd1d09e41ce502ebfcc598fbcef0794cb967c00894745f8b16412adc7b4afbd167878defa29351e99b30a71b4377987c5c8a692f404e30 SHA512 65170b747012e114b072cd28a688089cdf2f54ddd151ba0cea92241b9b75fd0c7c410bfa4186cf9d233af4328bf962e13e8838a0cc09a1fbf2c28d29b13e36cb AUX jamvm-2.0.0-noexecstack.patch 1387 BLAKE2B afd020772bf627c3dbd6b5da9e03d3b03e8f5c9dc3844279fe325183819cb11deadaedb4920ebfb0c6b25321daeee9f0e4fff45addd162e2b6c02e3f3ea12d31 SHA512 17c38ad0017e5659295dea7ed57f263eb0eee673bbc1f5d1e44e0c8fe588f4172a8a05c832a1fd41f3dc094779fade66aa710c8ce48c754412b0b6afdea6551a +AUX jamvm-2.0.0-opcode-guard.patch 1396 BLAKE2B 0f6ba763606d9e1aa807d3441fd51383c7f71f9f649e73a93e177fee48a788bd320b3491e5ff05e8f9fa0022f3751c38bf444c7a154a3c872a6647fa95d07747 SHA512 842fd08f4e11e240c809ca7a0029ea9936f33fb12a765a47a34e73ac4a3d3e7eda1e6a1c1c99d3157911347d2fc1333faae35a6e502bfafb8eab30f69ace8001 DIST jamvm-1.5.1.tar.gz 599084 BLAKE2B af79d5615fbfa395230d93ec52fd70f6000d85eac881414f59ab9f33ab4393a4dadbfa6966c574d11422612e10354bec562b3728e4a8fe6e6334b5c0f2742ed9 SHA512 9f93611fefb28b5494d166d7ec9575eb8d12add775dd65b2b46303355e3f845f417d5301649a1f09cb306e6690cd82b67cb1dface30ce18d0b2ecc815d3bc9b9 DIST jamvm-2.0.0.tar.gz 741459 BLAKE2B 9b8b0f8cfd8f56c0b835144c07aaca709ef466fdfe5df18438d05c66cd8a07fecfebf27e1581c67658feb3674a96c2e916b85f13dc434baf2db9be4e4fbfd0cf SHA512 8ac27787ee94fa8fde962635d3c08d1dc1e5244c9d56bb693e73f3fd9b58e944ad3f7a0127afeed727d7c00d904a775d2c483157f5ac87e7eab6ecade1aad21d -EBUILD jamvm-1.5.1.ebuild 1678 BLAKE2B ce5004db30b6b6062fd703ad6303c225e38b30e17a27e1fad3dd4896f09309c9e70c1b01cf5ccc275b74083e9134ced379537a1047e111068627fb4f7e7544b7 SHA512 847d70b720b02302975f281aa33506de2a27587bb964b9ecabb0b1461e781b1b978cad3c2f203ca8c2fedb206e7273f4f3b48b069112b82790526771e3dadca0 -EBUILD jamvm-2.0.0-r10.ebuild 4219 BLAKE2B b585af6b56568eba2cb6209b52c2f4a9704ec5504a109abbedeab2c187cf5bbe094236296aff5ba8fd7de032e72610da3ae1268a09c747d5ac3fb22ce956fb1b SHA512 8cbb68442ce2bbd4ed9d564c93a5e0fd0027b6eb68daea752962174a7af1365c2aab0a03cf4ea50cc3cb55000a7cf4db54fccfcd23f11d3dbbc320eb53a59cdb -EBUILD jamvm-2.0.0-r20.ebuild 4221 BLAKE2B ede08481ed657e5ddb7db69addd86f54e246871dce7a5a6f6f484485bb99f7dca9d4ee9a616d314ecef0c6b09df5a0fdc100ea0053d40c8abea93e7cbe9e82a0 SHA512 3a3a96e221e3a06ae61c028f91554ba8c32e18160db3ae06ab851f9c43b054f191b2baa9522742dce9f1d8dd640ef5f58ddfcea5d421788641bd24608135e7c0 -EBUILD jamvm-2.0.0.ebuild 4124 BLAKE2B 06feced993e3c8ca65aab256d600f81fde6b88bc02194f51f9a8940e059e02f07021df5c94d1ab35965f197de94684a44662c3b3c06e29a6fe3c3c14f8f3b2eb SHA512 f7eeb3554eae8c4a2b0f7961d8cbe54206faea734125e0a71372323226c5c7da103bf80cab08727c4bd930a20ea8174b4d612b2e9e145a744f52ce4926c6ff7c +EBUILD jamvm-1.5.1.ebuild 1733 BLAKE2B 550f9cb65941c110c94396a3113680a9d3d32c8e4febf2a83ec0ea0872282f152c110228eeca549b2f6a99db434587f5074a85caf3ef285fa268a44dad5c4813 SHA512 67708d68e0813b97590b9ccc27dd0afab45dbf2e7a59a94bef725b54927fb27268e2aa4d162d3610095cd2a159802886fda546614a7a0d68c7ee7b35cc4d86af +EBUILD jamvm-2.0.0-r10.ebuild 4302 BLAKE2B 775a76eee7bd89a8195ea90f7dd447c1aab20e6c54cc15b3a168ec9a1faf7810c2d50ae00451a9ab7fa13e99f0dd269a8edfca8e6689b903ce0445e1ced95109 SHA512 95dba02d5f14b775d2504797734f398470d26b6d1953b7df6a3cb174c2e70dc9993153584feb0bee5f876c5593641bfa553893a3ad26260075c8a5fdddff8485 +EBUILD jamvm-2.0.0-r20.ebuild 4304 BLAKE2B 96f8ad38a166bc045d28241f5d427d7e6b0be6eb18e7dee35a7231643816ddff5bbcc337e8272f0d3e651d42a30c64959d5c2ec5135b2e21011691c5119c1486 SHA512 c927e0ddb7c6646f9d4aa8d99245f7de550b02771348360ef02eef702027595f49ad57269b9f42a976d44a6912717ea8ef8500b5b74a67e1dfbba9b94a46edd6 +EBUILD jamvm-2.0.0.ebuild 4207 BLAKE2B 3e8517def99d62c62ce6c3940de7148274f3061d98f15d2cddc56321610f577370825e3e598249610d0a05606fe81fce7a8f43971e22b54d62bc959c37df889c SHA512 60d96d263034d2a2b51d37a08d38dc7cf6062b68f08b33256459d2ea0565b133aebd38037b393126533f851bb9f45bc1e94ec8d2fd6ae1980780596a7f850181 MISC metadata.xml 252 BLAKE2B a3a36edd6c0b4e630f0e38d236ff4133a5c6b4aa42f5525d8a0978ecdbbe3d53602d3fcde02cf1a495bfabb4fd06f914826df44bda7f542ce8543b32fd7bbfe2 SHA512 1ab83f56876901e45f2b34aa5c81bd1d7b243009236d238b49fca2d49ec167c596ea589de6df1c8dfe1a6b834a2e0e493409ee65d499bd2b6ecaf687ae71df69 diff --git a/dev-java/jamvm/files/jamvm-1.5.1-aarch64-support.patch b/dev-java/jamvm/files/jamvm-1.5.1-aarch64-support.patch new file mode 100644 index 0000000..8867d4f --- /dev/null +++ b/dev-java/jamvm/files/jamvm-1.5.1-aarch64-support.patch @@ -0,0 +1,572 @@ +From 9c83c3d3f443eb92f87dc87c7dcfe95577b95621 Mon Sep 17 00:00:00 2001 +From: Simon South +Date: Thu, 28 May 2020 14:29:55 -0400 +Subject: [PATCH] Add support for aarch64 on GNU/Linux + +--- + configure.ac | 10 +- + src/arch/Makefile.am | 2 +- + src/arch/aarch64.h | 110 ++++++++++++++++ + src/os/linux/Makefile.am | 2 +- + src/os/linux/aarch64/Makefile.am | 28 ++++ + src/os/linux/aarch64/callNative.S | 212 ++++++++++++++++++++++++++++++ + src/os/linux/aarch64/dll_md.c | 59 +++++++++ + src/os/linux/aarch64/init.c | 51 +++++++ + 8 files changed, 469 insertions(+), 5 deletions(-) + create mode 100644 src/arch/aarch64.h + create mode 100644 src/os/linux/aarch64/Makefile.am + create mode 100644 src/os/linux/aarch64/callNative.S + create mode 100644 src/os/linux/aarch64/dll_md.c + create mode 100644 src/os/linux/aarch64/init.c + +diff --git a/configure.ac b/configure.ac +index ccd530f..707f281 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -43,6 +43,7 @@ amd64-*-freebsd*) host_os=bsd libdl_needed=no ;; + arm*-*-linux*) host_cpu=arm host_os=linux ;; + arm*-*-openbsd*) host_cpu=arm host_os=bsd libdl_needed=no ;; + arm*-*-freebsd*) host_cpu=arm host_os=bsd libdl_needed=no ;; ++aarch64*-*-linux*) host_cpu=aarch64 host_os=linux ;; + powerpc*-*-linux*) host_cpu=powerpc host_os=linux ;; + powerpc*-*-openbsd*) host_cpu=powerpc host_os=bsd libdl_needed=no ;; + powerpc*-*-freebsd*) host_cpu=powerpc host_os=bsd libdl_needed=no ;; +@@ -149,9 +150,11 @@ AC_ARG_ENABLE(runtime-reloc-checks, + + AC_ARG_ENABLE(int-inlining, + [AS_HELP_STRING(--enable-int-inlining,enable inline threaded version of the interpreter +- (by default enabled on x86_64, i386 and powerpc, disabled otherwise))],, +- [if test "$host_cpu" = x86_64 -o "$host_cpu" = i386 -o "$host_cpu" = powerpc && \ +- test "$cross_compiling" = no -o "$enable_runtime_reloc_checks" != no; then ++ (by default enabled on x86_64, i386, powerpc and aarch64, ++ disabled otherwise))],, ++ [if test "$host_cpu" = x86_64 -o "$host_cpu" = i386 -o "$host_cpu" = powerpc -o \ ++ "$host_cpu" = aarch64 && test "$cross_compiling" = no -o \ ++ "$enable_runtime_reloc_checks" != no; then + enable_int_inlining=yes + else + enable_int_inlining=no +@@ -298,6 +301,7 @@ AC_CONFIG_FILES( + src/os/linux/x86_64/Makefile \ + src/os/linux/parisc/Makefile \ + src/os/linux/mips/Makefile \ ++ src/os/linux/aarch64/Makefile \ + src/os/darwin/i386/Makefile \ + src/os/darwin/arm/Makefile \ + src/os/darwin/powerpc/Makefile \ +diff --git a/src/arch/Makefile.am b/src/arch/Makefile.am +index 078c1de..afb26d1 100644 +--- a/src/arch/Makefile.am ++++ b/src/arch/Makefile.am +@@ -19,4 +19,4 @@ + ## Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + ## + +-EXTRA_DIST = powerpc.h arm.h i386.h x86_64.h parisc.h mips.h ++EXTRA_DIST = powerpc.h arm.h i386.h x86_64.h parisc.h mips.h aarch64.h +diff --git a/src/arch/aarch64.h b/src/arch/aarch64.h +new file mode 100644 +index 0000000..c96aa9f +--- /dev/null ++++ b/src/arch/aarch64.h +@@ -0,0 +1,110 @@ ++/* ++ * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 ++ * Robert Lougher . ++ * Copyright (C) 2020 Simon South . ++ * ++ * This file is part of JamVM. ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version 2, ++ * or (at your option) any later version. ++ * ++ * This program 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 for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++ */ ++ ++#include ++ ++#define OS_ARCH "aarch64" ++ ++#define HANDLER_TABLE_T static const void ++#define DOUBLE_1_BITS 0x3ff0000000000000LL ++ ++#define READ_DBL(v,p,l) v = ((u8)p[0]<<56)|((u8)p[1]<<48)|((u8)p[2]<<40) \ ++ |((u8)p[3]<<32)|((u8)p[4]<<24)|((u8)p[5]<<16) \ ++ |((u8)p[6]<<8)|(u8)p[7]; p+=8 ++ ++/* Needed for i386 -- empty here */ ++#define FPU_HACK ++ ++#define COMPARE_AND_SWAP_64(addr, old_val, new_val) \ ++({ \ ++ int result, read_val; \ ++ __asm__ __volatile__ (" \ ++ 1: ldaxr %2, %1; \ ++ cmp %2, %3; \ ++ b.ne 2f; \ ++ stlxr %w0, %4, %1; \ ++ cmp %w0, wzr; \ ++ b.ne 1b; \ ++ 2: cset %w0, eq;" \ ++ : "=&r" (result), "+Q" (*addr), "=&r" (read_val) \ ++ : "r" (old_val), "r" (new_val) \ ++ : "cc"); \ ++ result; \ ++}) ++ ++#define COMPARE_AND_SWAP(addr, old_val, new_val) \ ++ COMPARE_AND_SWAP_64(addr, old_val, new_val) ++ ++#define LOCKWORD_READ(addr) \ ++({ \ ++ uintptr_t result; \ ++ __asm__ __volatile__ (" \ ++ ldar %0, %1;" \ ++ : "=r" (result) \ ++ : "Q" (*addr) \ ++ : "cc"); \ ++ result; \ ++}) ++ ++#define LOCKWORD_WRITE(addr, value) \ ++({ \ ++ __asm__ __volatile__ (" \ ++ stlr %1, %0;" \ ++ : "=Q" (*addr) \ ++ : "r" (value) \ ++ : "cc"); \ ++}) ++ ++#define LOCKWORD_COMPARE_AND_SWAP(addr, old_val, new_val) \ ++ COMPARE_AND_SWAP_64(addr, old_val, new_val) ++ ++#define FLUSH_CACHE(addr, length) \ ++{ \ ++ uintptr_t start = (uintptr_t) (addr); \ ++ uintptr_t end = start + length; \ ++ uintptr_t i; \ ++ \ ++ for(i = start & aarch64_data_cache_line_mask; \ ++ i < end; \ ++ i += aarch64_data_cache_line_len) \ ++ __asm__ ("dc cvau, %0" :: "r" (i)); \ ++ \ ++ __asm__ ("dsb ish"); \ ++ \ ++ for(i = start & aarch64_instruction_cache_line_mask; \ ++ i < end; \ ++ i += aarch64_instruction_cache_line_len) \ ++ __asm__ ("ic ivau, %0" :: "r" (i)); \ ++ \ ++ __asm__ ("dsb ish; isb"); \ ++} ++ ++#define MBARRIER() __asm__ ("dmb ish" ::: "memory") ++#define UNLOCK_MBARRIER() __asm__ ("dmb ish" ::: "memory") ++#define JMM_LOCK_MBARRIER() __asm__ ("dmb ish" ::: "memory") ++#define JMM_UNLOCK_MBARRIER() JMM_LOCK_MBARRIER() ++ ++/* Defined in src/os/linux/aarch64/init.c */ ++extern unsigned char aarch64_data_cache_line_len; ++extern uintptr_t aarch64_data_cache_line_mask; ++extern unsigned char aarch64_instruction_cache_line_len; ++extern uintptr_t aarch64_instruction_cache_line_mask; +diff --git a/src/os/linux/Makefile.am b/src/os/linux/Makefile.am +index aa29be1..d582b97 100644 +--- a/src/os/linux/Makefile.am ++++ b/src/os/linux/Makefile.am +@@ -20,7 +20,7 @@ + ## + + SUBDIRS = @arch@ +-DIST_SUBDIRS = powerpc arm i386 x86_64 parisc mips ++DIST_SUBDIRS = powerpc arm i386 x86_64 parisc mips aarch64 + + noinst_LTLIBRARIES = libos.la + libos_la_SOURCES = os.c +diff --git a/src/os/linux/aarch64/Makefile.am b/src/os/linux/aarch64/Makefile.am +new file mode 100644 +index 0000000..1024c3a +--- /dev/null ++++ b/src/os/linux/aarch64/Makefile.am +@@ -0,0 +1,28 @@ ++## ++## Copyright (C) 2003, 2004, 2005, 2006, 2007, 2010, 2011, 2012 ++## Robert Lougher . ++## ++## File added by Simon South . ++## ++## This file is part of JamVM. ++## ++## This program is free software; you can redistribute it and/or ++## modify it under the terms of the GNU General Public License ++## as published by the Free Software Foundation; either version 2, ++## or (at your option) any later version. ++## ++## This program 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 for more details. ++## ++## You should have received a copy of the GNU General Public License ++## along with this program; if not, write to the Free Software ++## Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++## ++ ++noinst_LTLIBRARIES = libnative.la ++libnative_la_SOURCES = init.c dll_md.c callNative.S ++ ++AM_CPPFLAGS = -I$(top_builddir)/src -I$(top_srcdir)/src ++AM_CCASFLAGS = -I$(top_builddir)/src +diff --git a/src/os/linux/aarch64/callNative.S b/src/os/linux/aarch64/callNative.S +new file mode 100644 +index 0000000..e067c4f +--- /dev/null ++++ b/src/os/linux/aarch64/callNative.S +@@ -0,0 +1,212 @@ ++/* ++ * Copyright (C) 2008, 2009, 2011, 2012 Robert Lougher . ++ * Copyright (C) 2020 Simon South . ++ * ++ * This file is part of JamVM. ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version 2, ++ * or (at your option) any later version. ++ * ++ * This program 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 for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++ */ ++ ++#include "config.h" ++ ++#ifndef USE_FFI ++ .text ++ .arch armv8-a ++ .align 2 ++ .global callJNIMethod ++ .type callJNIMethod,function ++ ++/* ++ * Arguments passed in: ++ * ++ * x0 JNIEnv ++ * x1 class or NULL ++ * x2 sig ++ * w3 extra arg ++ * x4 ostack ++ * x5 function pntr ++ * w6 args count ++ */ ++ ++/* Register usage: ++ * ++ * x20 ostack ++ * x19 sig pntr ++ * x16 function pntr ++ * x15 ostack pntr ++ * x14 args pntr ++ * x13 float/double handler ++ * x12 int/long handler ++ * w11 fp regs remaining ++ * w10 int regs remaining ++ * x9 scratch ++ * x2-x7 outgoing int args ++ * x1 outgoing class or this pntr ++ * x0 outgoing JNIEnv (as passed in) ++ * ++ * d0 - d7 outgoing float args ++ */ ++ ++callJNIMethod: ++ stp x29, x30, [sp, #-32]! ++ mov x29, sp ++ stp x19, x20, [x29, #16] ++ ++ sub sp, sp, w3 /* allocate room for stacked args */ ++ mov x14, sp ++ ++ mov x20, x4 /* preserve ostack */ ++ add x19, x2, #1 /* init sig pntr -- skipping '(' */ ++ ++ mov x16, x5 /* save function pntr */ ++ mov x15, x20 /* init ostack pntr */ ++ ++ adr x13, fp_reg_handlers-8 ++ adr x12, int_reg_handlers-8 ++ ++ mov w11, #8 /* fp regs remaining */ ++ mov w10, #6 /* int regs remaining */ ++ ++ cbnz x1, scan_sig /* is method non-static? */ ++ ldr x1, [x15], #8 /* yes, load x1 with "this" */ ++ ++scan_sig: ++ ldrb w9, [x19], #1 /* get next sig char */ ++ ++ cmp w9, #41 /* ')' */ ++ b.eq done ++ ++ cmp w9, #74 /* 'J' */ ++ b.eq long ++ ++ cmp w9, #70 /* 'F' */ ++ b.eq float ++ ++ cmp w9, #68 /* 'D' */ ++ b.eq double ++ ++skip_brackets: ++ cmp w9, #91 /* '[' */ ++ b.ne 1f ++ ldrb w9, [x19], #1 ++ b skip_brackets ++1: ++ cmp w9, #76 /* 'L' */ ++ b.ne int ++ ++skip_ref: ++ ldrb w9, [x19], #1 ++ cmp w9, #59 /* ';' */ ++ b.ne skip_ref ++ ++int: ++ ldr x9, [x15], #8 ++ cbz w10, stack_push ++ ++load_int_reg: ++ sub w10, w10, #1 ++ add x12, x12, #8 ++ br x12 ++ ++int_reg_handlers: ++ mov x2, x9 ++ b scan_sig ++ mov x3, x9 ++ b scan_sig ++ mov x4, x9 ++ b scan_sig ++ mov x5, x9 ++ b scan_sig ++ mov x6, x9 ++ b scan_sig ++ mov x7, x9 ++ b scan_sig ++ ++long: ++ ldr x9, [x15], #16 ++ cbz w10, stack_push ++ b load_int_reg ++ ++float: ++ ldr w9, [x15], #8 ++ cbz w11, stack_push ++ b load_fp_reg ++ ++double: ++ ldr x9, [x15], #16 ++ cbz w11, stack_push ++ ++load_fp_reg: ++ sub w11, w11, #1 ++ add x13, x13, #8 ++ br x13 ++ ++fp_reg_handlers: ++ fmov d0, x9 ++ b scan_sig ++ fmov d1, x9 ++ b scan_sig ++ fmov d2, x9 ++ b scan_sig ++ fmov d3, x9 ++ b scan_sig ++ fmov d4, x9 ++ b scan_sig ++ fmov d5, x9 ++ b scan_sig ++ fmov d6, x9 ++ b scan_sig ++ fmov d7, x9 ++ b scan_sig ++ ++stack_push: ++ str x9, [x14], #8 ++ b scan_sig ++ ++done: ++ /* Call the function */ ++ blr x16 ++ ++ mov sp, x29 /* Pop argument area */ ++ ++ ldrb w9, [x19] /* Return type */ ++ ++ cmp w9, #86 /* 'V' */ ++ b.eq return ++ ++ cmp w9, #68 /* 'D' */ ++ b.ne 2f ++ str d0, [x20], #16 ++ b return ++2: ++ cmp w9, #70 /* 'F' */ ++ b.ne 3f ++ str s0, [x20], #8 ++ b return ++3: ++ cmp w9, #74 /* 'J' */ ++ b.ne 4f ++ str x0, [x20], #16 ++ b return ++4: ++ str x0, [x20], #8 ++ ++return: ++ mov x0, x20 /* return ostack */ ++ ++ ldp x19, x20, [x29, #16] ++ ldp x29, x30, [sp], #32 ++ ret ++#endif +diff --git a/src/os/linux/aarch64/dll_md.c b/src/os/linux/aarch64/dll_md.c +new file mode 100644 +index 0000000..189f8a8 +--- /dev/null ++++ b/src/os/linux/aarch64/dll_md.c +@@ -0,0 +1,59 @@ ++/* ++ * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2010, 2011 ++ * Robert Lougher . ++ * Copyright (C) 2020 Simon South . ++ * ++ * This file is part of JamVM. ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version 2, ++ * or (at your option) any later version. ++ * ++ * This program 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 for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++ */ ++ ++#include "jam.h" ++ ++#ifndef USE_FFI ++ ++int nativeExtraArg(MethodBlock *mb) { ++ char *sig = mb->type; ++ int stack_args = 0; ++ int int_args = 6; ++ int fp_args = 8; ++ ++ while(*++sig != ')') ++ switch(*sig) { ++ case 'F': ++ case 'D': ++ if(fp_args == 0) ++ stack_args += 8; ++ else ++ fp_args--; ++ ++ default: ++ if(int_args == 0) ++ stack_args += 8; ++ else ++ int_args--; ++ ++ if(*sig == '[') ++ while(*++sig == '['); ++ if(*sig == 'L') ++ while(*++sig != ';'); ++ break; ++ } ++ ++ /* Ensure the stack remains 16 byte aligned. */ ++ return (stack_args + 15) & ~15; ++} ++ ++#endif +diff --git a/src/os/linux/aarch64/init.c b/src/os/linux/aarch64/init.c +new file mode 100644 +index 0000000..e03b446 +--- /dev/null ++++ b/src/os/linux/aarch64/init.c +@@ -0,0 +1,51 @@ ++/* ++ * Copyright (C) 2003, 2004, 2005, 2006, 2007 ++ * Robert Lougher . ++ * Copyright (C) 2020 Simon South . ++ * ++ * This file is part of JamVM. ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version 2, ++ * or (at your option) any later version. ++ * ++ * This program 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 for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++ */ ++ ++#include "arch/aarch64.h" ++ ++/* Length in bytes of the smallest line in the host system's data cache */ ++unsigned char aarch64_data_cache_line_len; ++ ++/* Mask used to align a virtual address to a line in the data cache */ ++uintptr_t aarch64_data_cache_line_mask; ++ ++/* Length in bytes of the smallest line in the host system's instruction ++ cache */ ++unsigned char aarch64_instruction_cache_line_len; ++ ++/* Mask used to align a virtual address to a line in the instruction cache */ ++uintptr_t aarch64_instruction_cache_line_mask; ++ ++void initialisePlatform() { ++ unsigned int cache_type; ++ ++ /* Extract information from the cache-type register, which describes aspects ++ of the host's cache configuration */ ++ __asm__ ("mrs %0, ctr_el0" : "=r" (cache_type)); ++ ++ aarch64_data_cache_line_len = 4 << ((cache_type >> 16) & 0x0f); ++ aarch64_data_cache_line_mask = ~(aarch64_data_cache_line_len - 1); ++ ++ aarch64_instruction_cache_line_len = 4 << (cache_type & 0x0f); ++ aarch64_instruction_cache_line_mask = ++ ~(aarch64_instruction_cache_line_len - 1); ++} +-- +2.26.2 + diff --git a/dev-java/jamvm/files/jamvm-2.0.0-aarch64-support.patch b/dev-java/jamvm/files/jamvm-2.0.0-aarch64-support.patch new file mode 100644 index 0000000..b67d8b4 --- /dev/null +++ b/dev-java/jamvm/files/jamvm-2.0.0-aarch64-support.patch @@ -0,0 +1,645 @@ +From a44154f7a18496cc3e5fc0b1b2ea69523ebc623a Mon Sep 17 00:00:00 2001 +From: Simon South +Date: Mon, 1 Jun 2020 07:09:34 -0400 +Subject: [PATCH] Add support for aarch64 on GNU/Linux + +--- + AUTHORS | 1 + + README | 2 +- + configure.ac | 7 +- + src/arch/Makefile.am | 2 +- + src/arch/aarch64.h | 147 +++++++++++++++++++++ + src/jam.c | 3 +- + src/os/linux/Makefile.am | 2 +- + src/os/linux/aarch64/Makefile.am | 28 ++++ + src/os/linux/aarch64/callNative.S | 212 ++++++++++++++++++++++++++++++ + src/os/linux/aarch64/dll_md.c | 59 +++++++++ + src/os/linux/aarch64/init.c | 51 +++++++ + 11 files changed, 508 insertions(+), 6 deletions(-) + create mode 100644 src/arch/aarch64.h + create mode 100644 src/os/linux/aarch64/Makefile.am + create mode 100644 src/os/linux/aarch64/callNative.S + create mode 100644 src/os/linux/aarch64/dll_md.c + create mode 100644 src/os/linux/aarch64/init.c + +diff --git a/AUTHORS b/AUTHORS +index e1334fe..6fd0eeb 100644 +--- a/AUTHORS ++++ b/AUTHORS +@@ -1 +1,2 @@ + Robert Lougher ++Simon South +diff --git a/README b/README +index c9d80bb..0e93d00 100644 +--- a/README ++++ b/README +@@ -77,7 +77,7 @@ versions of JamVM also includes stubs for common method signatures. + The following platforms/architectures are recognised by configure. Those + marked with * must be configured to use libffi. + +-- Linux: x86, x86_64, ARM, PowerPC, PowerPC64(*), MIPS, HPPA ++- Linux: x86, x86_64, ARM, ARM64, PowerPC, PowerPC64(*), MIPS, HPPA + - FreeBSD: x86, x86_64, ARM, PowerPC, PowerPC64(*), SPARC(*) + - OpenBSD: x86, x86_64, ARM, PowerPC, PowerPC64(*), SPARC(*) + - Mac OS X/Darwin: x86, x86_64, ARM, PowerPC, PowerPC64 +diff --git a/configure.ac b/configure.ac +index 138b7e6..e7051d7 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -46,6 +46,7 @@ x86_64-*-freebsd*) host_os=bsd libdl_needed=no ;; + arm*-*-linux*) host_cpu=arm host_os=linux interp_cflags=-marm ;; + arm*-*-openbsd*) host_cpu=arm host_os=bsd libdl_needed=no ;; + arm*-*-freebsd*) host_cpu=arm host_os=bsd libdl_needed=no ;; ++aarch64*-*-linux*) host_cpu=aarch64 host_os=linux ;; + powerpc*-*-linux*) host_cpu=powerpc host_os=linux ;; + powerpc*-*-openbsd*) host_cpu=powerpc host_os=bsd libdl_needed=no ;; + powerpc*-*-freebsd*) host_cpu=powerpc host_os=bsd libdl_needed=no ;; +@@ -155,10 +156,11 @@ AC_ARG_ENABLE(runtime-reloc-checks, + + AC_ARG_ENABLE(int-inlining, + [AS_HELP_STRING(--enable-int-inlining,enable inline threaded version of the interpreter +- (by default enabled on x86_64, i386, powerpc, mips and arm, ++ (by default enabled on x86_64, i386, powerpc, mips, arm and aarch64, + disabled otherwise))],, + [if test "$host_cpu" = x86_64 -o "$host_cpu" = i386 -o "$host_cpu" = x86 -o \ +- "$host_cpu" = powerpc -o "$host_cpu" = arm -o "$host_cpu" = mips; then ++ "$host_cpu" = powerpc -o "$host_cpu" = arm -o "$host_cpu" = mips -o \ ++ "$host_cpu" = aarch64; then + enable_int_inlining=yes + else + enable_int_inlining=no +@@ -407,6 +409,7 @@ AC_CONFIG_FILES( + src/os/linux/x86_64/Makefile \ + src/os/linux/parisc/Makefile \ + src/os/linux/mips/Makefile \ ++ src/os/linux/aarch64/Makefile \ + src/os/darwin/i386/Makefile \ + src/os/darwin/arm/Makefile \ + src/os/darwin/powerpc/Makefile \ +diff --git a/src/arch/Makefile.am b/src/arch/Makefile.am +index 7580a1b..4e2a4f9 100644 +--- a/src/arch/Makefile.am ++++ b/src/arch/Makefile.am +@@ -19,4 +19,4 @@ + ## Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + ## + +-EXTRA_DIST = powerpc.h arm.h i386.h x86_64.h parisc.h mips.h sparc.h ++EXTRA_DIST = powerpc.h arm.h i386.h x86_64.h parisc.h mips.h sparc.h aarch64.h +diff --git a/src/arch/aarch64.h b/src/arch/aarch64.h +new file mode 100644 +index 0000000..1912e79 +--- /dev/null ++++ b/src/arch/aarch64.h +@@ -0,0 +1,147 @@ ++/* ++ * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 ++ * Robert Lougher . ++ * Copyright (C) 2020 Simon South . ++ * ++ * This file is part of JamVM. ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version 2, ++ * or (at your option) any later version. ++ * ++ * This program 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 for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++ */ ++ ++#include ++ ++#define OS_ARCH "aarch64" ++ ++#define HANDLER_TABLE_T static const void ++#define DOUBLE_1_BITS 0x3ff0000000000000LL ++ ++#define READ_DBL(v,p,l) v = ((u8)p[0]<<56)|((u8)p[1]<<48)|((u8)p[2]<<40) \ ++ |((u8)p[3]<<32)|((u8)p[4]<<24)|((u8)p[5]<<16) \ ++ |((u8)p[6]<<8)|(u8)p[7]; p+=8 ++ ++/* Needed for i386 -- empty here */ ++#define FPU_HACK ++ ++#define COMPARE_AND_SWAP_64(addr, old_val, new_val) \ ++({ \ ++ int result, read_val; \ ++ __asm__ __volatile__ (" \ ++ 1: ldaxr %2, %1; \ ++ cmp %2, %3; \ ++ b.ne 2f; \ ++ stlxr %w0, %4, %1; \ ++ cmp %w0, wzr; \ ++ b.ne 1b; \ ++ 2: cset %w0, eq;" \ ++ : "=&r" (result), "+Q" (*addr), "=&r" (read_val) \ ++ : "r" (old_val), "r" (new_val) \ ++ : "cc"); \ ++ result; \ ++}) ++ ++#define COMPARE_AND_SWAP_32(addr, old_val, new_val) \ ++({ \ ++ int result, read_val; \ ++ __asm__ __volatile__ (" \ ++ 1: ldaxr %w2, %1; \ ++ cmp %w2, %w3; \ ++ b.ne 2f; \ ++ stlxr %w0, %w4, %1; \ ++ cmp %w0, wzr; \ ++ b.ne 1b; \ ++ 2: cset %w0, eq;" \ ++ : "=&r" (result), "+Q" (*addr), "=&r" (read_val) \ ++ : "r" (old_val), "r" (new_val) \ ++ : "cc"); \ ++ result; \ ++}) ++ ++#define COMPARE_AND_SWAP(addr, old_val, new_val) \ ++ COMPARE_AND_SWAP_64(addr, old_val, new_val) ++ ++#define LOCKWORD_READ(addr) \ ++({ \ ++ uintptr_t result; \ ++ __asm__ __volatile__ (" \ ++ ldar %0, %1;" \ ++ : "=r" (result) \ ++ : "Q" (*addr) \ ++ : "cc"); \ ++ result; \ ++}) ++ ++#define LOCKWORD_WRITE(addr, value) \ ++({ \ ++ __asm__ __volatile__ (" \ ++ stlr %1, %0;" \ ++ : "=Q" (*addr) \ ++ : "r" (value) \ ++ : "cc"); \ ++}) ++ ++#define LOCKWORD_COMPARE_AND_SWAP(addr, old_val, new_val) \ ++ COMPARE_AND_SWAP_64(addr, old_val, new_val) ++ ++#define FLUSH_CACHE(addr, length) \ ++{ \ ++ uintptr_t start = (uintptr_t) (addr); \ ++ uintptr_t end = start + length; \ ++ uintptr_t i; \ ++ \ ++ for(i = start & aarch64_data_cache_line_mask; \ ++ i < end; \ ++ i += aarch64_data_cache_line_len) \ ++ __asm__ ("dc cvau, %0" :: "r" (i)); \ ++ \ ++ __asm__ ("dsb ish"); \ ++ \ ++ for(i = start & aarch64_instruction_cache_line_mask; \ ++ i < end; \ ++ i += aarch64_instruction_cache_line_len) \ ++ __asm__ ("ic ivau, %0" :: "r" (i)); \ ++ \ ++ __asm__ ("dsb ish; isb"); \ ++} ++ ++#define GEN_REL_JMP(target_addr, patch_addr, patch_size) \ ++({ \ ++ int patched = FALSE; \ ++ \ ++ if(patch_size >= 4) { \ ++ /* Guard against the pointer difference being \ ++ larger than the signed range */ \ ++ long long offset = (uintptr_t)(target_addr) - \ ++ (uintptr_t)(patch_addr); \ ++ \ ++ if(offset >= -1<<28 && offset < 1<<28) { \ ++ *(uint32_t*)(patch_addr) = offset>>2 & 0x03ffffff \ ++ | 0x14000000; \ ++ patched = TRUE; \ ++ } \ ++ } \ ++ patched; \ ++}) ++ ++#define MBARRIER() __asm__ ("dmb ish" ::: "memory") ++#define RMBARRIER() __asm__ ("dmb ishld" ::: "memory") ++#define WMBARRIER() __asm__ ("dmb ishst" ::: "memory") ++#define JMM_LOCK_MBARRIER() __asm__ ("dmb ish" ::: "memory") ++#define JMM_UNLOCK_MBARRIER() JMM_LOCK_MBARRIER() ++ ++/* Defined in src/os/linux/aarch64/init.c */ ++extern unsigned char aarch64_data_cache_line_len; ++extern uintptr_t aarch64_data_cache_line_mask; ++extern unsigned char aarch64_instruction_cache_line_len; ++extern uintptr_t aarch64_instruction_cache_line_mask; +diff --git a/src/jam.c b/src/jam.c +index 052f84a..c97524a 100644 +--- a/src/jam.c ++++ b/src/jam.c +@@ -98,7 +98,8 @@ void showUsage(char *name) { + void showVersionAndCopyright() { + printf("java version \"%s\"\n", JAVA_COMPAT_VERSION); + printf("JamVM version %s\n", VERSION); +- printf("Copyright (C) 2003-2014 Robert Lougher \n\n"); ++ printf("Copyright (C) 2003-2014 Robert Lougher \n"); ++ printf("Portions Copyright (C) 2020 Simon South \n\n"); + printf("This program is free software; you can redistribute it and/or\n"); + printf("modify it under the terms of the GNU General Public License\n"); + printf("as published by the Free Software Foundation; either version 2,\n"); +diff --git a/src/os/linux/Makefile.am b/src/os/linux/Makefile.am +index 542094e..83e7dfe 100644 +--- a/src/os/linux/Makefile.am ++++ b/src/os/linux/Makefile.am +@@ -20,7 +20,7 @@ + ## + + SUBDIRS = @arch@ +-DIST_SUBDIRS = powerpc arm i386 x86_64 parisc mips ++DIST_SUBDIRS = powerpc arm i386 x86_64 parisc mips aarch64 + + noinst_LTLIBRARIES = libos.la + libos_la_SOURCES = os.c +diff --git a/src/os/linux/aarch64/Makefile.am b/src/os/linux/aarch64/Makefile.am +new file mode 100644 +index 0000000..0e5134f +--- /dev/null ++++ b/src/os/linux/aarch64/Makefile.am +@@ -0,0 +1,28 @@ ++## ++## Copyright (C) 2003, 2004, 2005, 2006, 2007, 2010, 2011, 2012 ++## Robert Lougher . ++## ++## File added by Simon South . ++## ++## This file is part of JamVM. ++## ++## This program is free software; you can redistribute it and/or ++## modify it under the terms of the GNU General Public License ++## as published by the Free Software Foundation; either version 2, ++## or (at your option) any later version. ++## ++## This program 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 for more details. ++## ++## You should have received a copy of the GNU General Public License ++## along with this program; if not, write to the Free Software ++## Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++## ++ ++noinst_LTLIBRARIES = libnative.la ++libnative_la_SOURCES = init.c dll_md.c callNative.S ++ ++AM_CPPFLAGS = -I$(top_builddir)/src -I$(top_srcdir)/src ++AM_CCASFLAGS = -I$(top_builddir)/src +diff --git a/src/os/linux/aarch64/callNative.S b/src/os/linux/aarch64/callNative.S +new file mode 100644 +index 0000000..e067c4f +--- /dev/null ++++ b/src/os/linux/aarch64/callNative.S +@@ -0,0 +1,212 @@ ++/* ++ * Copyright (C) 2008, 2009, 2011, 2012 Robert Lougher . ++ * Copyright (C) 2020 Simon South . ++ * ++ * This file is part of JamVM. ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version 2, ++ * or (at your option) any later version. ++ * ++ * This program 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 for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++ */ ++ ++#include "config.h" ++ ++#ifndef USE_FFI ++ .text ++ .arch armv8-a ++ .align 2 ++ .global callJNIMethod ++ .type callJNIMethod,function ++ ++/* ++ * Arguments passed in: ++ * ++ * x0 JNIEnv ++ * x1 class or NULL ++ * x2 sig ++ * w3 extra arg ++ * x4 ostack ++ * x5 function pntr ++ * w6 args count ++ */ ++ ++/* Register usage: ++ * ++ * x20 ostack ++ * x19 sig pntr ++ * x16 function pntr ++ * x15 ostack pntr ++ * x14 args pntr ++ * x13 float/double handler ++ * x12 int/long handler ++ * w11 fp regs remaining ++ * w10 int regs remaining ++ * x9 scratch ++ * x2-x7 outgoing int args ++ * x1 outgoing class or this pntr ++ * x0 outgoing JNIEnv (as passed in) ++ * ++ * d0 - d7 outgoing float args ++ */ ++ ++callJNIMethod: ++ stp x29, x30, [sp, #-32]! ++ mov x29, sp ++ stp x19, x20, [x29, #16] ++ ++ sub sp, sp, w3 /* allocate room for stacked args */ ++ mov x14, sp ++ ++ mov x20, x4 /* preserve ostack */ ++ add x19, x2, #1 /* init sig pntr -- skipping '(' */ ++ ++ mov x16, x5 /* save function pntr */ ++ mov x15, x20 /* init ostack pntr */ ++ ++ adr x13, fp_reg_handlers-8 ++ adr x12, int_reg_handlers-8 ++ ++ mov w11, #8 /* fp regs remaining */ ++ mov w10, #6 /* int regs remaining */ ++ ++ cbnz x1, scan_sig /* is method non-static? */ ++ ldr x1, [x15], #8 /* yes, load x1 with "this" */ ++ ++scan_sig: ++ ldrb w9, [x19], #1 /* get next sig char */ ++ ++ cmp w9, #41 /* ')' */ ++ b.eq done ++ ++ cmp w9, #74 /* 'J' */ ++ b.eq long ++ ++ cmp w9, #70 /* 'F' */ ++ b.eq float ++ ++ cmp w9, #68 /* 'D' */ ++ b.eq double ++ ++skip_brackets: ++ cmp w9, #91 /* '[' */ ++ b.ne 1f ++ ldrb w9, [x19], #1 ++ b skip_brackets ++1: ++ cmp w9, #76 /* 'L' */ ++ b.ne int ++ ++skip_ref: ++ ldrb w9, [x19], #1 ++ cmp w9, #59 /* ';' */ ++ b.ne skip_ref ++ ++int: ++ ldr x9, [x15], #8 ++ cbz w10, stack_push ++ ++load_int_reg: ++ sub w10, w10, #1 ++ add x12, x12, #8 ++ br x12 ++ ++int_reg_handlers: ++ mov x2, x9 ++ b scan_sig ++ mov x3, x9 ++ b scan_sig ++ mov x4, x9 ++ b scan_sig ++ mov x5, x9 ++ b scan_sig ++ mov x6, x9 ++ b scan_sig ++ mov x7, x9 ++ b scan_sig ++ ++long: ++ ldr x9, [x15], #16 ++ cbz w10, stack_push ++ b load_int_reg ++ ++float: ++ ldr w9, [x15], #8 ++ cbz w11, stack_push ++ b load_fp_reg ++ ++double: ++ ldr x9, [x15], #16 ++ cbz w11, stack_push ++ ++load_fp_reg: ++ sub w11, w11, #1 ++ add x13, x13, #8 ++ br x13 ++ ++fp_reg_handlers: ++ fmov d0, x9 ++ b scan_sig ++ fmov d1, x9 ++ b scan_sig ++ fmov d2, x9 ++ b scan_sig ++ fmov d3, x9 ++ b scan_sig ++ fmov d4, x9 ++ b scan_sig ++ fmov d5, x9 ++ b scan_sig ++ fmov d6, x9 ++ b scan_sig ++ fmov d7, x9 ++ b scan_sig ++ ++stack_push: ++ str x9, [x14], #8 ++ b scan_sig ++ ++done: ++ /* Call the function */ ++ blr x16 ++ ++ mov sp, x29 /* Pop argument area */ ++ ++ ldrb w9, [x19] /* Return type */ ++ ++ cmp w9, #86 /* 'V' */ ++ b.eq return ++ ++ cmp w9, #68 /* 'D' */ ++ b.ne 2f ++ str d0, [x20], #16 ++ b return ++2: ++ cmp w9, #70 /* 'F' */ ++ b.ne 3f ++ str s0, [x20], #8 ++ b return ++3: ++ cmp w9, #74 /* 'J' */ ++ b.ne 4f ++ str x0, [x20], #16 ++ b return ++4: ++ str x0, [x20], #8 ++ ++return: ++ mov x0, x20 /* return ostack */ ++ ++ ldp x19, x20, [x29, #16] ++ ldp x29, x30, [sp], #32 ++ ret ++#endif +diff --git a/src/os/linux/aarch64/dll_md.c b/src/os/linux/aarch64/dll_md.c +new file mode 100644 +index 0000000..189f8a8 +--- /dev/null ++++ b/src/os/linux/aarch64/dll_md.c +@@ -0,0 +1,59 @@ ++/* ++ * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2010, 2011 ++ * Robert Lougher . ++ * Copyright (C) 2020 Simon South . ++ * ++ * This file is part of JamVM. ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version 2, ++ * or (at your option) any later version. ++ * ++ * This program 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 for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++ */ ++ ++#include "jam.h" ++ ++#ifndef USE_FFI ++ ++int nativeExtraArg(MethodBlock *mb) { ++ char *sig = mb->type; ++ int stack_args = 0; ++ int int_args = 6; ++ int fp_args = 8; ++ ++ while(*++sig != ')') ++ switch(*sig) { ++ case 'F': ++ case 'D': ++ if(fp_args == 0) ++ stack_args += 8; ++ else ++ fp_args--; ++ ++ default: ++ if(int_args == 0) ++ stack_args += 8; ++ else ++ int_args--; ++ ++ if(*sig == '[') ++ while(*++sig == '['); ++ if(*sig == 'L') ++ while(*++sig != ';'); ++ break; ++ } ++ ++ /* Ensure the stack remains 16 byte aligned. */ ++ return (stack_args + 15) & ~15; ++} ++ ++#endif +diff --git a/src/os/linux/aarch64/init.c b/src/os/linux/aarch64/init.c +new file mode 100644 +index 0000000..b21dc55 +--- /dev/null ++++ b/src/os/linux/aarch64/init.c +@@ -0,0 +1,51 @@ ++/* ++ * Copyright (C) 2003, 2004, 2005, 2006, 2007 ++ * Robert Lougher . ++ * Copyright (C) 2020 Simon South . ++ * ++ * This file is part of JamVM. ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version 2, ++ * or (at your option) any later version. ++ * ++ * This program 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 for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++ */ ++ ++#include "arch/aarch64.h" ++ ++/* Length in bytes of the smallest line in the host system's data cache */ ++unsigned char aarch64_data_cache_line_len; ++ ++/* Mask used to align a virtual address to a line in the data cache */ ++uintptr_t aarch64_data_cache_line_mask; ++ ++/* Length in bytes of the smallest line in the host system's instruction ++ cache */ ++unsigned char aarch64_instruction_cache_line_len; ++ ++/* Mask used to align a virtual address to a line in the instruction cache */ ++uintptr_t aarch64_instruction_cache_line_mask; ++ ++void initialisePlatform() { ++ unsigned int cache_type; ++ ++ /* Extract information from the cache-type register, which describes aspects ++ of the host's cache configuration */ ++ __asm__ ("mrs %0, ctr_el0" : "=r" (cache_type)); ++ ++ aarch64_data_cache_line_len = 4 << ((cache_type >> 16) & 0x0f); ++ aarch64_data_cache_line_mask = ~(aarch64_data_cache_line_len - 1); ++ ++ aarch64_instruction_cache_line_len = 4 << (cache_type & 0x0f); ++ aarch64_instruction_cache_line_mask = ++ ~(aarch64_instruction_cache_line_len - 1); ++} +-- +2.26.2 + diff --git a/dev-java/jamvm/files/jamvm-2.0.0-opcode-guard.patch b/dev-java/jamvm/files/jamvm-2.0.0-opcode-guard.patch new file mode 100644 index 0000000..5415c27 --- /dev/null +++ b/dev-java/jamvm/files/jamvm-2.0.0-opcode-guard.patch @@ -0,0 +1,35 @@ +From ca11b53896365c948426974cb90e8f71c70d123b Mon Sep 17 00:00:00 2001 +From: Simon South +Date: Sun, 31 May 2020 20:36:43 -0400 +Subject: [PATCH] Guard floating-point opcodes with explicit memory barrier + +--- + src/interp/engine/interp-inlining.h | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + +diff --git a/src/interp/engine/interp-inlining.h b/src/interp/engine/interp-inlining.h +index 3339b0e..4ee5c5a 100644 +--- a/src/interp/engine/interp-inlining.h ++++ b/src/interp/engine/interp-inlining.h +@@ -78,8 +78,17 @@ + 4.3, we need to insert a label, and ensure its address + is taken (to stop it being optimised out). However, + this reduces performance on PowerPC by approx 1 - 2%. ++ ++ With gcc 5 and newer an asm statement with a "memory" ++ clobber argument explicitly sets a memory barrier for the ++ compiler, preventing it from reordering memory accesses ++ in a way that breaks decaching. + */ +-#if (__GNUC__ == 4) && (__GNUC_MINOR__ >= 3) ++#if (__GNUC__ > 4) ++#define DEF_GUARD_TABLE(level) /* none */ ++#define GUARD(opcode, level) __asm__("" ::: "memory"); ++#define GUARD_TBLS /* none */ ++#elif (__GNUC__ == 4) && (__GNUC_MINOR__ >= 3) + #define DEF_GUARD_TABLE(level) DEF_HANDLER_TABLE(level, GUARD) + #define GUARD(opcode, level) label(opcode, level, GUARD) + #define GUARD_TBLS , HNDLR_TBLS(GUARD) +-- +2.26.2 + diff --git a/dev-java/jamvm/jamvm-1.5.1.ebuild b/dev-java/jamvm/jamvm-1.5.1.ebuild index e9e08b8..e389f02 100644 --- a/dev-java/jamvm/jamvm-1.5.1.ebuild +++ b/dev-java/jamvm/jamvm-1.5.1.ebuild @@ -11,7 +11,7 @@ SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz" LICENSE="GPL-2" SLOT="1.5" -KEYWORDS="amd64" +KEYWORDS="amd64 arm64" DEPEND="dev-java/gnu-classpath:0.93" @@ -30,6 +30,7 @@ src_prepare() { src_configure() { export JAVAC="${EPREFIX}/usr/bin/jikes-bin" epatch "${FILESDIR}/classes-location.patch" + epatch "${FILESDIR}/${P}-aarch64-support.patch" sed -i -e "s/return CLASSPATH_INSTALL_DIR\"\/lib\/classpath\";/return CLASSPATH_INSTALL_DIR\"\/$(get_libdir)\/classpath\";/g" src/dll.c || die "Sed failed!" eautoreconf diff --git a/dev-java/jamvm/jamvm-2.0.0-r10.ebuild b/dev-java/jamvm/jamvm-2.0.0-r10.ebuild index 9940de6..2e6ab82 100644 --- a/dev-java/jamvm/jamvm-2.0.0-r10.ebuild +++ b/dev-java/jamvm/jamvm-2.0.0-r10.ebuild @@ -11,7 +11,7 @@ SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz" LICENSE="GPL-2" SLOT="2.0-2" -KEYWORDS="amd64" +KEYWORDS="amd64 arm64" IUSE="libffi" DEPEND="dev-java/gnu-classpath:0.99-devel @@ -22,8 +22,10 @@ DEPEND="dev-java/gnu-classpath:0.99-devel RDEPEND="${DEPEND}" PATCHES=( - "${FILESDIR}"/"${P}-2-classes-location.patch" - "${FILESDIR}"/"${P}-noexecstack.patch" + "${FILESDIR}/${P}-2-classes-location.patch" + "${FILESDIR}/${P}-noexecstack.patch" + "${FILESDIR}/${P}-aarch64-support.patch" + "${FILESDIR}/${P}-opcode-guard.patch" ) src_prepare() { diff --git a/dev-java/jamvm/jamvm-2.0.0-r20.ebuild b/dev-java/jamvm/jamvm-2.0.0-r20.ebuild index 30c0365..22e3716 100644 --- a/dev-java/jamvm/jamvm-2.0.0-r20.ebuild +++ b/dev-java/jamvm/jamvm-2.0.0-r20.ebuild @@ -11,7 +11,7 @@ SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz" LICENSE="GPL-2" SLOT="2.0-3" -KEYWORDS="amd64" +KEYWORDS="amd64 arm64" IUSE="libffi" DEPEND="dev-java/gnu-classpath:0.99-devel @@ -22,8 +22,10 @@ DEPEND="dev-java/gnu-classpath:0.99-devel RDEPEND="${DEPEND}" PATCHES=( - "${FILESDIR}"/"${P}-3-classes-location.patch" - "${FILESDIR}"/"${P}-noexecstack.patch" + "${FILESDIR}/${P}-3-classes-location.patch" + "${FILESDIR}/${P}-noexecstack.patch" + "${FILESDIR}/${P}-aarch64-support.patch" + "${FILESDIR}/${P}-opcode-guard.patch" ) src_prepare() { diff --git a/dev-java/jamvm/jamvm-2.0.0.ebuild b/dev-java/jamvm/jamvm-2.0.0.ebuild index 88dda46..ddcfced 100644 --- a/dev-java/jamvm/jamvm-2.0.0.ebuild +++ b/dev-java/jamvm/jamvm-2.0.0.ebuild @@ -11,7 +11,7 @@ SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz" LICENSE="GPL-2" SLOT="2.0" -KEYWORDS="amd64" +KEYWORDS="amd64 arm64" IUSE="libffi" DEPEND="dev-java/gnu-classpath:0.99 @@ -22,8 +22,10 @@ DEPEND="dev-java/gnu-classpath:0.99 RDEPEND="${DEPEND}" PATCHES=( - "${FILESDIR}"/"${P}-classes-location.patch" - "${FILESDIR}"/"${P}-noexecstack.patch" + "${FILESDIR}/${P}-classes-location.patch" + "${FILESDIR}/${P}-noexecstack.patch" + "${FILESDIR}/${P}-aarch64-support.patch" + "${FILESDIR}/${P}-opcode-guard.patch" ) src_prepare() { diff --git a/dev-java/jikes/Manifest b/dev-java/jikes/Manifest index 58cedd4..cba4097 100644 --- a/dev-java/jikes/Manifest +++ b/dev-java/jikes/Manifest @@ -2,5 +2,5 @@ AUX compiler-settings 147 BLAKE2B 699ec782bb528c1da7d1b825fca9d4c9075bdd46e0f615 AUX deprecated.patch 995 BLAKE2B ce8856e45ecab3dd69c5a044bdc966f00c3b5764f7ea42b7c542985168d36b0cff3fb436a93f5b63a9a6bd99fc3ea513e1016e9a337e6188b1a3d4a4b111c265 SHA512 a99d25d3cb588677695d5ce549ef476b3bededd8ea2e84835fb9e3af57c182fc2a87ca539991e963a9aae22ff437e453a8e2e20f15e08dbcdfbf83a44d084a18 AUX jikes 393 BLAKE2B 827f7b3dc28da8e751057695e9e7d1403b0671db07443457833da5043f75270fa51fae9ffa16fa0c5788a139ffe500018f4723cf9d5977dbc4bd278cd6777110 SHA512 d3ee8ae832cd026535b547cc1850e8a786d004ab76c9776be5ddfa9a9bbb32aa06a004b0a08cd61abb78ccb2202fafe79cc1e8ee7dc625e36943b8c5e99176c4 DIST jikes-1.22.tar.bz2 616655 BLAKE2B a4b69c014394c511aab2b52284eeae5d2ec3209d4edc315102f233d1053ced214612d7c8879c4c88140b26e7be852736c69b8a699c8ce831cd579d8ee8fea56e SHA512 6b318f49f075da0cf0558512748bd77072f5b5b0428160538bcba01201c94719ec0f4b0cd0159ddb04fb3a86c323c8f11f09dc4b31cf880fb94e00c1ee0bbc58 -EBUILD jikes-1.22-r13.ebuild 837 BLAKE2B 5b2ff2698d888a47547fb6f603e7238d9f866f00a4972691b554691f2cd91772b5f43399c368b6dda7a30ae3f1bf4ab2366610688b324568c49c8d2131df5199 SHA512 837c759d92f8052a625e71bc4e6698798ccd7e84257157d7c8f5bc427f644d90cef0c66df2bc37c313545d224592d14d0fea34a27c5e51b41ccc70393ca08219 +EBUILD jikes-1.22-r13.ebuild 836 BLAKE2B 6ee6bb2bbf7f8a54ef6813d1fa413be494d574fc790a02a35a3b334f46c4c7b093b09e24fa19f8e0820c7171ced3f2a8963022449c2566726b83f395fa06e2dc SHA512 24b74001cc52d2e8e8507637b236b76c06c888b4d57419fa062c18ff8562ed083765e8b85eb4285c63ea17862b540d4ac44d7a572ef9cc89f7019e35c317b98c MISC metadata.xml 390 BLAKE2B c6509d0728b476d3bc7d596a11e7477b75cae7c3c3918e18ae0f6bb5fdd04edb62e22f1dca148843d82760406ef2e9f4da43e3348b396801dbb3f07a322e5fae SHA512 ab625d234114a10cf0074c97cc4ec2fe9a191be282c9faca739964d36fc790199f4a6d6788fe4f6d3e9279e80b44f909aacfb3c5a595334b3b4bcc19f5f343e4 diff --git a/dev-java/jikes/jikes-1.22-r13.ebuild b/dev-java/jikes/jikes-1.22-r13.ebuild index 25d0a0a..15c6343 100644 --- a/dev-java/jikes/jikes-1.22-r13.ebuild +++ b/dev-java/jikes/jikes-1.22-r13.ebuild @@ -10,7 +10,7 @@ HOMEPAGE="http://jikes.sourceforge.net/" SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2" LICENSE="IBM" SLOT="0" -KEYWORDS="amd64 ~arm64" +KEYWORDS="amd64 arm64" RDEPEND=">=dev-java/java-config-2.0.0" src_unpack() { diff --git a/virtual/jdk/Manifest b/virtual/jdk/Manifest index e992124..521445b 100644 --- a/virtual/jdk/Manifest +++ b/virtual/jdk/Manifest @@ -1,4 +1,4 @@ -EBUILD jdk-1.4.ebuild 228 BLAKE2B b8d13df90ece66eacbd60e27632b8c24792374fb8bac3cd8a0bd15c6c351aedc122447b979a8af6774cc0f600ea0f6105105b6954c3c92058a5bf39aaf3f8b73 SHA512 28fc9af3aee5105d8a62cce67d6ec39b024f3443d2a311d683445b7a0d89f0bd357c5278a3968d48edf5136fe4b0010a46efffa93e74931b90278fa21e7ed93f -EBUILD jdk-1.5.ebuild 299 BLAKE2B 7afa97c8d9c66930a366d3028ffea4bc17d14f16a06fc26be0e12b8c0b461948d67a6f2abb1d00e822fa01aadbd276d6802ff8aebc066e3b7b63ff778d3bab1d SHA512 17951a5d0a4eb79bd35ee30d60ec55029a9d3744e6eaffba8a545330b9b68fac2480bc9c6a17d39cdae5ccbd5229bb2999046fe3550f547cb3c3313f99f2be4d -EBUILD jdk-1.6.ebuild 307 BLAKE2B 0e31699224424cd04a701d4f4d4b9eb90361c8c78e3c659a5f81f42086e8f7765ddb2e00c0d093213588200a9a9b83ddd3bf3087d119e78e90d30939662f3b52 SHA512 7affd522fadb5f3ae118228ed9d7d00bbe45d5359ece6b36782a608e3793f9dd060be36173da86584585bb494a09721a4625ea115aa6e68ff9bca2f5c2dd7680 +EBUILD jdk-1.4.ebuild 234 BLAKE2B 601d5970f79820627ca26c4ecbda709e2e6a2b49dae9a6738e13cef92520a383e1a210cc57279d45b4668323870af4082b3f7c4a00bd5833edb13b4322418a67 SHA512 cddaef73827a336ad746a650d0b8bce63482d6786b3d727e7998ef24ac4a4ffe77859482dd657b9d301ae26a7161c2e4f4d6ec45245ff7f33835e33b9649af2d +EBUILD jdk-1.5.ebuild 305 BLAKE2B 7d73f2566dfcfdde7d1875232bc095133025872e508e749851553d837b838661ec6068bbda5c5463f000f19141a81483d61c0bba41828c2328af964c9d6fdf0d SHA512 5a5e6b8c05e0aa300878498b7605a0c6936d23c95dbdd3ce4042600b9c94423656438cefd7ad0ddb02c395482e475eb5ada9d9193f7676ec4e40127a873ab76a +EBUILD jdk-1.6.ebuild 313 BLAKE2B e6fa5c4e97874baba34d7ad99015cef0a69fa0601bf7c267de37e69a88fbf37d328761a491a06e5198f4a4bbc4e00928d5aeea1bd488c913c6aef0fcf5efe41e SHA512 332f4532b82f32f3c3199bbd8b07525bc514cf4f5b6a018eaa01d4668021abc0a03da9d9c2ba451f5a91336bd4797fb561b521f8323a9713a493be6f91d13464 MISC metadata.xml 252 BLAKE2B a3a36edd6c0b4e630f0e38d236ff4133a5c6b4aa42f5525d8a0978ecdbbe3d53602d3fcde02cf1a495bfabb4fd06f914826df44bda7f542ce8543b32fd7bbfe2 SHA512 1ab83f56876901e45f2b34aa5c81bd1d7b243009236d238b49fca2d49ec167c596ea589de6df1c8dfe1a6b834a2e0e493409ee65d499bd2b6ecaf687ae71df69 diff --git a/virtual/jdk/jdk-1.4.ebuild b/virtual/jdk/jdk-1.4.ebuild index 9fb6351..73b647e 100644 --- a/virtual/jdk/jdk-1.4.ebuild +++ b/virtual/jdk/jdk-1.4.ebuild @@ -5,6 +5,6 @@ EAPI="7" DESCRIPTION="Virtual for Java Development Kit (JDK)" SLOT="${PV}" -KEYWORDS="amd64" +KEYWORDS="amd64 arm64" RDEPEND="dev-java/jamvm:1.5" diff --git a/virtual/jdk/jdk-1.5.ebuild b/virtual/jdk/jdk-1.5.ebuild index be8044a..19c3ca7 100644 --- a/virtual/jdk/jdk-1.5.ebuild +++ b/virtual/jdk/jdk-1.5.ebuild @@ -5,7 +5,7 @@ EAPI="7" DESCRIPTION="Virtual for Java Development Kit (JDK)" SLOT="${PV}" -KEYWORDS="amd64" +KEYWORDS="amd64 arm64" RDEPEND="dev-java/jamvm:2.0 dev-java/eclipse-ecj:3.2 diff --git a/virtual/jdk/jdk-1.6.ebuild b/virtual/jdk/jdk-1.6.ebuild index d3f38be..f72515d 100644 --- a/virtual/jdk/jdk-1.6.ebuild +++ b/virtual/jdk/jdk-1.6.ebuild @@ -5,7 +5,7 @@ EAPI="7" DESCRIPTION="Virtual for Java Development Kit (JDK)" SLOT="${PV}" -KEYWORDS="amd64" +KEYWORDS="amd64 arm64" RDEPEND="dev-java/jamvm:2.0-3 dev-java/eclipse-ecj:4.2 diff --git a/virtual/jre/Manifest b/virtual/jre/Manifest index 24e0d4f..62713d4 100644 --- a/virtual/jre/Manifest +++ b/virtual/jre/Manifest @@ -1,4 +1,4 @@ -EBUILD jre-1.4.ebuild 254 BLAKE2B 1f647e1884b94c0371f77d006cc00c1231a8ee8839f7e9010eccfb50edd785c62386bacd289df04173e460313aa66dae87967d0cd5269f25d53f6b0d4e73c924 SHA512 b944e9a74449795561e28c34f0dab19a529a2ebb7813efedb6a721956f91df379faa1a7416641b19f43129e1d50d3ad1b138b0c824daefef1b96ac009d13298e -EBUILD jre-1.5.ebuild 254 BLAKE2B 15695c42ab53e92ac36e94e1a180660caf4a9096ac04071f5b6a7a8241924e3f376b731a0da61ceedda287b6c2d46c3de54ea6bc70206daf98dae00037f7f050 SHA512 0660c4aefc799ac147af86b8a1bc0e3ccdd25ce0c44579f2b1ff0f5ead90622829e36a2c10c8d97f4438848c7844f8c01504e5d5918601d3ac4d6067cb9c547c -EBUILD jre-1.6.ebuild 235 BLAKE2B 65f9dcfc8e1b2918e90022e55b5724f612a47516b213417ec8fdd498436e5246167d95669f75754664513a103a2c5b7f54b5b5372d0dc0205fe31fe3e0ae886c SHA512 5534dd2be6bd69e6e4b8897b204c1dc7ffe77b9454fd11db9296b2d26c4cf5aa9b1a23f88e3f51f365c3aee56c87221eb39569fa9c608d3c013a7edfd08aaafb +EBUILD jre-1.4.ebuild 260 BLAKE2B 15efa7a3014f74cf604d09bb292ee4abce7e5666ea719d8009963c1280801296ff9d94559951c2a705a7761784b1b06fabf7e079cede54447f3c143e917d1e56 SHA512 b484cb1151a38f458fbf7100e087b29ce1c33013c412a3098c1586c82f2c3e436bce587c0456a712aadd15cf83d1fc26d9e4be0685a6f94056cdccc0d210fb28 +EBUILD jre-1.5.ebuild 260 BLAKE2B 9a4d870bba9f0d01234eb1790b0a291c5894a1a0f2a918d9472d2c44435be54149fbc1c8951e2e23ec3f9b188be5f7549fa9a341513530f353a32e2b6fe051b5 SHA512 10f6a82d241f0241cfc7ac6082630e22618fe9756d35e6326ae082186f65310630a4f9183891675735a8180b82870d25421a46c3fd0c3b35183aa79e8cdd3e34 +EBUILD jre-1.6.ebuild 241 BLAKE2B 6541bc97ce1235035d91492ae3606f3cc52dd4077f93c0b3581d4a9b296a8291359a62e981790d9535849498881b35b78240606e54137c5540c0b93759ef9ab7 SHA512 07984efd4c1ce70ff95541a5073a86eb9cb3653e20767c6d0af54f079b8be0445d0d34d576696f54cac20b762cde707db9f5af0e0aaacfcf4b228c867254c1c1 MISC metadata.xml 252 BLAKE2B a3a36edd6c0b4e630f0e38d236ff4133a5c6b4aa42f5525d8a0978ecdbbe3d53602d3fcde02cf1a495bfabb4fd06f914826df44bda7f542ce8543b32fd7bbfe2 SHA512 1ab83f56876901e45f2b34aa5c81bd1d7b243009236d238b49fca2d49ec167c596ea589de6df1c8dfe1a6b834a2e0e493409ee65d499bd2b6ecaf687ae71df69 diff --git a/virtual/jre/jre-1.4.ebuild b/virtual/jre/jre-1.4.ebuild index 5291e17..458e480 100644 --- a/virtual/jre/jre-1.4.ebuild +++ b/virtual/jre/jre-1.4.ebuild @@ -5,7 +5,7 @@ EAPI=7 DESCRIPTION="Virtual for Java Runtime Environment (JRE)" SLOT="${PV}" -KEYWORDS="amd64" +KEYWORDS="amd64 arm64" RDEPEND=" virtual/jdk:${SLOT} diff --git a/virtual/jre/jre-1.5.ebuild b/virtual/jre/jre-1.5.ebuild index b5f3308..cb89b61 100644 --- a/virtual/jre/jre-1.5.ebuild +++ b/virtual/jre/jre-1.5.ebuild @@ -5,7 +5,7 @@ EAPI=7 DESCRIPTION="Virtual for Java Runtime Environment (JRE)" SLOT="${PV}" -KEYWORDS="amd64" +KEYWORDS="amd64 arm64" RDEPEND=" virtual/jdk:${SLOT} diff --git a/virtual/jre/jre-1.6.ebuild b/virtual/jre/jre-1.6.ebuild index 69f8ebc..5a7389c 100644 --- a/virtual/jre/jre-1.6.ebuild +++ b/virtual/jre/jre-1.6.ebuild @@ -5,7 +5,7 @@ EAPI=7 DESCRIPTION="Virtual for Java Runtime Environment (JRE)" SLOT="${PV}" -KEYWORDS="amd64" +KEYWORDS="amd64 arm64" RDEPEND=" dev-java/jamvm:2.0-2