logo

overlay

My own overlay for experimentations, use with caution, no support is provided git clone https://hacktivis.me/git/overlay.git
commit: 14a04642acce19b75eb83a80dff219a2b4e298f9
parent 86e1abf7e3a513ff16d47f2637ee726e3c799b25
Author: Haelwenn (lanodan) Monnier <contact@hacktivis.me>
Date:   Wed, 10 Apr 2024 06:11:32 +0200

dev-java/icedtea: treeclean

Diffstat:

Ddev-java/icedtea/Manifest10----------
Ddev-java/icedtea/files/generate-cacerts.pl358-------------------------------------------------------------------------------
Ddev-java/icedtea/files/icedtea-2.6.28_remove_brace_expansion.diff193-------------------------------------------------------------------------------
Ddev-java/icedtea/files/icedtea-hotspot-musl.patch55-------------------------------------------------------
Ddev-java/icedtea/files/icedtea-hotspot-stop-using-obsolete-isnanf.patch42------------------------------------------
Ddev-java/icedtea/files/icedtea-jdk-execinfo.patch40----------------------------------------
Ddev-java/icedtea/files/icedtea-jdk-fix-build.patch56--------------------------------------------------------
Ddev-java/icedtea/files/icedtea-jdk-musl.patch116-------------------------------------------------------------------------------
Ddev-java/icedtea/files/icedtea-jdk-no-soname.patch12------------
Ddev-java/icedtea/files/icedtea-os_linux-remove-glibc-dependencies.patch75---------------------------------------------------------------------------
Ddev-java/icedtea/files/icedtea.env.sh18------------------
Ddev-java/icedtea/files/icedtea7-disable-systemtap.patch20--------------------
Ddev-java/icedtea/files/icedtea7-hotspot-miscompile.patch25-------------------------
Ddev-java/icedtea/files/icedtea7-hotspot-pointer-comparison.patch31-------------------------------
Ddev-java/icedtea/files/icedtea7-jdk-fcommon.patch11-----------
Ddev-java/icedtea/files/icedtea7-jdk-freetype.patch11-----------
Ddev-java/icedtea/files/jamvm-1.6.0-aarch64-support.patch632-------------------------------------------------------------------------------
Ddev-java/icedtea/files/jamvm-1.6.0-opcode-guard.patch35-----------------------------------
Ddev-java/icedtea/icedtea-7.2.6.28.ebuild402-------------------------------------------------------------------------------
19 files changed, 0 insertions(+), 2142 deletions(-)

diff --git a/dev-java/icedtea/Manifest b/dev-java/icedtea/Manifest @@ -1,10 +0,0 @@ -DIST icedtea-2.6-corba-60fb55621427.tar.bz2 1077311 BLAKE2B c77bc0e56092f783e2cd3f918ce6fa551aecdca57cab3217aff178c931f691d1ba96b9731c54b4a1948c9aab2bf4cde8193efd4f631b65c534068a58259bc328 SHA512 9719f09aace720af6fb2cc3266b07058b982c57ae157fe9210e82028884a58519ba6a67e63fcf9031d943999b14c6066d2076944fc458cf66fd8ad5f14ab9876 -DIST icedtea-2.6-hotspot-d7f4f4901aa1.tar.bz2 8223348 BLAKE2B c8c2907ec760a934f7592a38d3dfc9041d27adbcd5f37e256900238060ec544d016fb5bf248625822b2063c1cd5ef6a20945e6be41f9b20a527a559e51db7039 SHA512 da0fd6a9055ed82adffc89f955b242ec2fb9927d59f02934fbcc885ea787f81661dc235e52e859fb872639def099a06ff7c7b1a1a5fc16417fd5a654f3bfdc23 -DIST icedtea-2.6-jaxp-2eedd3512498.tar.bz2 2730742 BLAKE2B b3dd148a8f56900e4a934e817718d978e3d2b483e71f575ea9095210ff6a1d88f95fb4673366477a7ecedf76ba5c4f3189b42ef4a165b018870c24e0a9af97d7 SHA512 5392528f5ce2c8a48724b184cda9d50f6a9feecec83a4d3568e64a35c24396fe09ca5d3716cacd6bcb9e6ea00427f1ef392f7da16e9a18e098a8bb4fb484d914 -DIST icedtea-2.6-jaxws-dc69e332d99f.tar.bz2 2024826 BLAKE2B 18c6afbf75b1209af2054adf94c6a0ccb33a987b649a4979172afa40e26507fb4804c873dffaeb5f2f6251e877d8682c21bb87e05d6322924d97a4eebcaabd51 SHA512 56da89c34120295c39f6d8a672be6214059d7b741407ffa102a7b0519a19b04302d1b332d97c577e4664fcd6217f673a53008e6ada89336092d6afe6e983b3c0 -DIST icedtea-2.6-jdk-f42b7efa98fe.tar.bz2 33621741 BLAKE2B 5e45f905356d603a145a61ddc4bd260e818d55b06aa894fe9a80ee639d0cbb9fc73ff147f8708d7b00c26356711b33fa946aaea30902c3d501260b2a9dc70e23 SHA512 9bc079bf3e28ea211b4bf4f738507ecb5610e18e27ff4af7e8bdfea3c2d219daa4a001f1e2d9ca71a7e7386b9ce40d5f16ff985b70624761a375219b8d699f5b -DIST icedtea-2.6-langtools-9cf0f33fe118.tar.bz2 1713015 BLAKE2B 393a04f6c65ad8924ea8153198e97938c8fb9ac5a4a34605c0c01e35dcf3defb4fe570cd00d11033732aa68d03d7e4270a315b58b372956472b1034b31f30e7a SHA512 6aa22ee0950801e710e47ef00ae7fb086bbef406d1d95c31bd8b16ff9254641673636fdf2a4922afd5ea0b9d2f23d8ed1ec6c68b6eb4055e95a68802fe1c983c -DIST icedtea-2.6-openjdk-b7da16493c1b.tar.bz2 132793 BLAKE2B baf8a11f1a6e4f7e68e0f5f85f24c8b9869be4aacba8c6c5eb59ac4ad2517d19b2a6dbee1eb23d3c776959a410f4e0b8da25010e6e9adcc75c6010f818ffaee4 SHA512 9c57d67bd55f5baba97a4f000ec5e23d8511682efa08a5c4780bb09acf9363ca640bdb187e60bf5dbc564b04e4b9caa8a5e928559052601557ce390e7056fd0e -DIST icedtea-2.6.28.tar.xz 2567520 BLAKE2B 676404153c94f997f4c4a6f4e2ac488b6b4cce84c502095d15b3b41fac33b0b6f0719e7cc7e902cca7c374c77594fdd3d96535f4f777cdb97825b8bea8d90b0a SHA512 00a3c4e69d50c365653d1afb9f344809e74802fad91cf153471de409677396ea6d1f4e68eeec45bb0a9fc368b6a3108047dc57960e2a975158c66233575092a7 -DIST icedtea-cacao-c182f119eaad.tar.gz 4485353 BLAKE2B 5c1faa3cbbfea62f819562a01ec389f3682cf3164d06f5404d1d16359c87b37d6ae4101f7c33cde30bad4f3d52af18f0f410e36868b2c9d1280661d2340e683b SHA512 2ccb947d71b80d84b83295d473c19952e98698a1fd944fc7c12004ff1af29af2989d46fbd95b5daf95eae2fda9de7c7f88f964fa887a6345b4f57d0c490bee23 -DIST icedtea-jamvm-ec18fb9e49e62dce16c5094ef1527eed619463aa.tar.gz 317187 BLAKE2B 1ca581a02be4cf5c09162687bbc90ec01b58b4910d866d11512cf17a1caff181fdc69e42f7498b2df9deb875ddc6efc6bc2888428f411da94bbc2313ddf5a2c9 SHA512 a31348481e1c02747f5bb9db333f855c45a1555aa187ee35de5ef553a10a8a47dfcc1beb1e69502046c1758438b91958a328e0a0015812c153221f67734a70a6 diff --git a/dev-java/icedtea/files/generate-cacerts.pl b/dev-java/icedtea/files/generate-cacerts.pl @@ -1,358 +0,0 @@ -#!/usr/bin/perl - -# Copyright (C) 2007, 2008 Red Hat, Inc. -# -# 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 of the License, 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. - -# generate-cacerts.pl generates a JKS keystore named 'cacerts' from -# OpenSSL's certificate bundle using OpenJDK's keytool. - -# First extract each of OpenSSL's bundled certificates into its own -# aliased filename. - -# Downloaded from http://cvs.fedoraproject.org/viewvc/rpms/ca-certificates/F-12/generate-cacerts.pl?revision=1.2 -# Check and prevention of duplicate aliases added by Vlastimil Babka <caster@gentoo.org> - -$file = $ARGV[1]; -open(CERTS, $file); -@certs = <CERTS>; -close(CERTS); - -$pem_file_count = 0; -$in_cert_block = 0; -$write_current_cert = 1; -foreach $cert (@certs) -{ - if ($cert =~ /Issuer: /) - { - $_ = $cert; - if ($cert =~ /personal-freemail/) - { - $cert_alias = "thawtepersonalfreemailca"; - } - elsif ($cert =~ /personal-basic/) - { - $cert_alias = "thawtepersonalbasicca"; - } - elsif ($cert =~ /personal-premium/) - { - $cert_alias = "thawtepersonalpremiumca"; - } - elsif ($cert =~ /server-certs/) - { - $cert_alias = "thawteserverca"; - } - elsif ($cert =~ /premium-server/) - { - $cert_alias = "thawtepremiumserverca"; - } - elsif ($cert =~ /Class 1 Public Primary Certification Authority$/) - { - $cert_alias = "verisignclass1ca"; - } - elsif ($cert =~ /Class 1 Public Primary Certification Authority - G2/) - { - $cert_alias = "verisignclass1g2ca"; - } - elsif ($cert =~ - /VeriSign Class 1 Public Primary Certification Authority - G3/) - { - $cert_alias = "verisignclass1g3ca"; - } - elsif ($cert =~ /Class 2 Public Primary Certification Authority$/) - { - $cert_alias = "verisignclass2ca"; - } - elsif ($cert =~ /Class 2 Public Primary Certification Authority - G2/) - { - $cert_alias = "verisignclass2g2ca"; - } - elsif ($cert =~ - /VeriSign Class 2 Public Primary Certification Authority - G3/) - { - $cert_alias = "verisignclass2g3ca"; - } - elsif ($cert =~ /Class 3 Public Primary Certification Authority$/) - { - $cert_alias = "verisignclass3ca"; - } - # Version 1 of Class 3 Public Primary Certification Authority - # - G2 is added. Version 3 is excluded. See below. - elsif ($cert =~ - /VeriSign Class 3 Public Primary Certification Authority - G3/) - { - $cert_alias = "verisignclass3g3ca"; - } - elsif ($cert =~ - /RSA Data Security.*Secure Server Certification Authority/) - { - $cert_alias = "verisignserverca"; - } - elsif ($cert =~ /GTE CyberTrust Global Root/) - { - $cert_alias = "gtecybertrustglobalca"; - } - elsif ($cert =~ /Baltimore CyberTrust Root/) - { - $cert_alias = "baltimorecybertrustca"; - } - elsif ($cert =~ /www.entrust.net\/Client_CA_Info\/CPS/) - { - $cert_alias = "entrustclientca"; - } - elsif ($cert =~ /www.entrust.net\/GCCA_CPS/) - { - $cert_alias = "entrustglobalclientca"; - } - elsif ($cert =~ /www.entrust.net\/CPS_2048/) - { - $cert_alias = "entrust2048ca"; - } - elsif ($cert =~ /www.entrust.net\/CPS /) - { - $cert_alias = "entrustsslca"; - } - elsif ($cert =~ /www.entrust.net\/SSL_CPS/) - { - $cert_alias = "entrustgsslca"; - } - elsif ($cert =~ /The Go Daddy Group/) - { - $cert_alias = "godaddyclass2ca"; - } - elsif ($cert =~ /Starfield Class 2 Certification Authority/) - { - $cert_alias = "starfieldclass2ca"; - } - elsif ($cert =~ /ValiCert Class 2 Policy Validation Authority/) - { - $cert_alias = "valicertclass2ca"; - } - elsif ($cert =~ /GeoTrust Global CA$/) - { - $cert_alias = "geotrustglobalca"; - } - elsif ($cert =~ /Equifax Secure Certificate Authority/) - { - $cert_alias = "equifaxsecureca"; - } - elsif ($cert =~ /Equifax Secure eBusiness CA-1/) - { - $cert_alias = "equifaxsecureebusinessca1"; - } - elsif ($cert =~ /Equifax Secure eBusiness CA-2/) - { - $cert_alias = "equifaxsecureebusinessca2"; - } - elsif ($cert =~ /Equifax Secure Global eBusiness CA-1/) - { - $cert_alias = "equifaxsecureglobalebusinessca1"; - } - elsif ($cert =~ /Sonera Class1 CA/) - { - $cert_alias = "soneraclass1ca"; - } - elsif ($cert =~ /Sonera Class2 CA/) - { - $cert_alias = "soneraclass2ca"; - } - elsif ($cert =~ /AAA Certificate Services/) - { - $cert_alias = "comodoaaaca"; - } - elsif ($cert =~ /AddTrust Class 1 CA Root/) - { - $cert_alias = "addtrustclass1ca"; - } - elsif ($cert =~ /AddTrust External CA Root/) - { - $cert_alias = "addtrustexternalca"; - } - elsif ($cert =~ /AddTrust Qualified CA Root/) - { - $cert_alias = "addtrustqualifiedca"; - } - elsif ($cert =~ /UTN-USERFirst-Hardware/) - { - $cert_alias = "utnuserfirsthardwareca"; - } - elsif ($cert =~ /UTN-USERFirst-Client Authentication and Email/) - { - $cert_alias = "utnuserfirstclientauthemailca"; - } - elsif ($cert =~ /UTN - DATACorp SGC/) - { - $cert_alias = "utndatacorpsgcca"; - } - elsif ($cert =~ /UTN-USERFirst-Object/) - { - $cert_alias = "utnuserfirstobjectca"; - } - elsif ($cert =~ /America Online Root Certification Authority 1/) - { - $cert_alias = "aolrootca1"; - } - elsif ($cert =~ /DigiCert Assured ID Root CA/) - { - $cert_alias = "digicertassuredidrootca"; - } - elsif ($cert =~ /DigiCert Global Root CA/) - { - $cert_alias = "digicertglobalrootca"; - } - elsif ($cert =~ /DigiCert High Assurance EV Root CA/) - { - $cert_alias = "digicerthighassuranceevrootca"; - } - elsif ($cert =~ /GlobalSign Root CA$/) - { - $cert_alias = "globalsignca"; - } - elsif ($cert =~ /GlobalSign Root CA - R2/) - { - $cert_alias = "globalsignr2ca"; - } - elsif ($cert =~ /Elektronik.*Kas.*2005/) - { - $cert_alias = "extra-elektronikkas2005"; - } - elsif ($cert =~ /Elektronik/) - { - $cert_alias = "extra-elektronik2005"; - } - # Mozilla does not provide these certificates: - # baltimorecodesigningca - # gtecybertrust5ca - # trustcenterclass2caii - # trustcenterclass4caii - # trustcenteruniversalcai - else - { - # Generate an alias using the OU and CN attributes of the - # Issuer field if both are present, otherwise use only the - # CN attribute. The Issuer field must have either the OU - # or the CN attribute. - $_ = $cert; - if ($cert =~ /OU=/) - { - s/Issuer:.*?OU=//; - # Remove other occurrences of OU=. - s/OU=.*CN=//; - # Remove CN= if there were not other occurrences of OU=. - s/CN=//; - s/\/emailAddress.*//; - s/Certificate Authority/ca/g; - s/Certification Authority/ca/g; - } - elsif ($cert =~ /CN=/) - { - s/Issuer:.*CN=//; - s/\/emailAddress.*//; - s/Certificate Authority/ca/g; - s/Certification Authority/ca/g; - } - s/\W//g; - tr/A-Z/a-z/; - $cert_alias = "extra-$_"; - - } - while (-e "$cert_alias.pem") - { - $cert_alias = "$cert_alias" . "_"; - } - } - # When it attempts to parse: - # - # Class 3 Public Primary Certification Authority - G2, Version 3 - # - # keytool says: - # - # #2: ObjectId: 1.3.6.1.5.5.7.1.1 Criticality=false - # Unparseable AuthorityInfoAccess extension due to - # java.io.IOException: Invalid encoding of URI - # - # If we do not exclude this file - # openjdk/jdk/test/lib/security/cacerts/VerifyCACerts.java fails - # on this cert, printing: - # - # Couldn't verify: java.security.SignatureException: Signature - # does not match. - # - elsif ($cert =~ - /A6:0F:34:C8:62:6C:81:F6:8B:F7:7D:A9:F6:67:58:8A:90:3F:7D:36/) - { - $write_current_cert = 0; - $pem_file_count--; - } - elsif ($cert eq "-----BEGIN CERTIFICATE-----\n") - { - if ($in_cert_block != 0) - { - die "$file is malformed."; - } - $in_cert_block = 1; - if ($write_current_cert == 1) - { - $pem_file_count++; - if (-e "$cert_alias.pem") - { - print "$cert_alias"; - die "already exists" - } - open(PEM, ">$cert_alias.pem"); - print PEM $cert; - } - } - elsif ($cert eq "-----END CERTIFICATE-----\n") - { - $in_cert_block = 0; - if ($write_current_cert == 1) - { - print PEM $cert; - close(PEM); - } - $write_current_cert = 1 - } - else - { - if ($in_cert_block == 1 && $write_current_cert == 1) - { - print PEM $cert; - } - } -} - -# Check that the correct number of .pem files were produced. -@pem_files = <*.pem>; -if (@pem_files != $pem_file_count) -{ - print "$pem_file_count"; - die "Number of .pem files produced does not match". - " number of certs read from $file."; -} - -# Now store each cert in the 'cacerts' file using keytool. -$certs_written_count = 0; -foreach $pem_file (@pem_files) -{ - system "$ARGV[0] -noprompt -import". - " -alias `basename $pem_file .pem`". - " -keystore cacerts -storepass 'changeit' -file $pem_file"; - unlink($pem_file); - $certs_written_count++; -} - -# Check that the correct number of certs were added to the keystore. -if ($certs_written_count != $pem_file_count) -{ - die "Number of certs added to keystore does not match". - " number of certs read from $file."; -} diff --git a/dev-java/icedtea/files/icedtea-2.6.28_remove_brace_expansion.diff b/dev-java/icedtea/files/icedtea-2.6.28_remove_brace_expansion.diff @@ -1,193 +0,0 @@ -diff --git a/Makefile.am b/Makefile.am -index 964cbb3..75f0838 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -1645,7 +1645,7 @@ clean-generated: - rm -f stamps/generated.stamp - - stamps/fonts.stamp: stamps/extract.stamp -- cp $(FONTCONFIG_PATH)/linux.fontconfig.Gentoo.properties{,.old} -+ cp $(FONTCONFIG_PATH)/linux.fontconfig.Gentoo.properties $(FONTCONFIG_PATH)/linux.fontconfig.Gentoo.properties.old - cp linux.fontconfig.Gentoo.properties $(FONTCONFIG_PATH) - mkdir -p stamps - touch $@ -@@ -1653,7 +1653,7 @@ stamps/fonts.stamp: stamps/extract.stamp - clean-fonts: - rm -f $(FONTCONFIG_PATH)/linux.fontconfig.Gentoo.properties - if [ -e $(FONTCONFIG_PATH)/linux.fontconfig.Gentoo.properties.old ] ; then \ -- mv $(FONTCONFIG_PATH)/linux.fontconfig.Gentoo.properties{.old,} ; \ -+ mv $(FONTCONFIG_PATH)/linux.fontconfig.Gentoo.properties.old $(FONTCONFIG_PATH)/linux.fontconfig.Gentoo.properties ; \ - fi - rm -f stamps/fonts.stamp - -@@ -2544,7 +2544,7 @@ clean-rewriter: - - stamps/rewrite-rhino.stamp: stamps/rewriter.stamp $(RHINO_JAR) - if WITH_RHINO -- mkdir -p rhino/rhino.{old,new} && \ -+ mkdir -p rhino/rhino.old rhino/rhino.new && \ - (cd rhino/rhino.old && $(BOOT_DIR)/bin/jar xf $(RHINO_JAR)) && \ - $(BOOT_DIR)/bin/java -cp $(REWRITER_BUILD_DIR) \ - com.redhat.rewriter.ClassRewriter \ -@@ -3147,7 +3147,10 @@ install-exec-local: - ${mkinstalldirs} $(DESTDIR)$(includedir)/$(BUILD_OS_DIR) $(DESTDIR)${exec_prefix}/lib/$(INSTALL_ARCH_DIR) - ${mkinstalldirs} $(DESTDIR)${exec_prefix}/lib/$(INSTALL_ARCH_DIR)/jli - ${mkinstalldirs} $(DESTDIR)${prefix}/jre/bin $(DESTDIR)${prefix}/jre/lib -- ${mkinstalldirs} $(DESTDIR)${prefix}/jre/lib/$(INSTALL_ARCH_DIR)/{.,headless,jli,xawt} -+ ${mkinstalldirs} $(DESTDIR)${prefix}/jre/lib/$(INSTALL_ARCH_DIR)/. -+ ${mkinstalldirs} $(DESTDIR)${prefix}/jre/lib/$(INSTALL_ARCH_DIR)/headless -+ ${mkinstalldirs} $(DESTDIR)${prefix}/jre/lib/$(INSTALL_ARCH_DIR)/jli -+ ${mkinstalldirs} $(DESTDIR)${prefix}/jre/lib/$(INSTALL_ARCH_DIR)/xawt - ${mkinstalldirs} $(DESTDIR)${prefix}/jre/lib/ext - ${mkinstalldirs} $(DESTDIR)${prefix}/tapset - if SPLIT_DEBUGINFO -@@ -3155,7 +3158,10 @@ if SPLIT_DEBUGINFO - ${mkinstalldirs} $(DESTDIR)$(DEBUG_PREFIX)/${exec_prefix}/lib/$(INSTALL_ARCH_DIR) - ${mkinstalldirs} $(DESTDIR)$(DEBUG_PREFIX)/${exec_prefix}/lib/$(INSTALL_ARCH_DIR)/jli - ${mkinstalldirs} $(DESTDIR)$(DEBUG_PREFIX)/${prefix}/jre/bin $(DESTDIR)${prefix}/jre/lib -- ${mkinstalldirs} $(DESTDIR)$(DEBUG_PREFIX)/${prefix}/jre/lib/$(INSTALL_ARCH_DIR)/{.,headless,jli,xawt} -+ ${mkinstalldirs} $(DESTDIR)$(DEBUG_PREFIX)/${prefix}/jre/lib/$(INSTALL_ARCH_DIR)/. -+ ${mkinstalldirs} $(DESTDIR)$(DEBUG_PREFIX)/${prefix}/jre/lib/$(INSTALL_ARCH_DIR)/headless -+ ${mkinstalldirs} $(DESTDIR)$(DEBUG_PREFIX)/${prefix}/jre/lib/$(INSTALL_ARCH_DIR)/jli -+ ${mkinstalldirs} $(DESTDIR)$(DEBUG_PREFIX)/${prefix}/jre/lib/$(INSTALL_ARCH_DIR)/xawt - endif - for files in $(BUILD_SDK_DIR)/bin/*; do \ - name=$$(basename $${files}) ; \ -@@ -3268,8 +3274,14 @@ install-data-local: - ${mkinstalldirs} $(DESTDIR)${prefix}/jre/.systemPrefs - ${mkinstalldirs} $(DESTDIR)${prefix}/jre/lib - ${mkinstalldirs} $(DESTDIR)${prefix}/jre/lib/$(INSTALL_ARCH_DIR) -- ${mkinstalldirs} $(DESTDIR)${prefix}/jre/lib/{cmm,ext,images/cursors,management,security,zi} -- ${mkinstalldirs} $(DESTDIR)$(mandir)/{man1,ja_JP.UTF-8/man1} -+ ${mkinstalldirs} $(DESTDIR)${prefix}/jre/lib/cmm -+ ${mkinstalldirs} $(DESTDIR)${prefix}/jre/lib/ext -+ ${mkinstalldirs} $(DESTDIR)${prefix}/jre/lib/images/cursors -+ ${mkinstalldirs} $(DESTDIR)${prefix}/jre/lib/management -+ ${mkinstalldirs} $(DESTDIR)${prefix}/jre/lib/security -+ ${mkinstalldirs} $(DESTDIR)${prefix}/jre/lib/zi -+ ${mkinstalldirs} $(DESTDIR)$(mandir)/man1 -+ ${mkinstalldirs} $(DESTDIR)$(mandir)/ja_JP.UTF-8/man1 - ${mkinstalldirs} $(DESTDIR)${prefix}/demo - ${mkinstalldirs} $(DESTDIR)${prefix}/sample - ${mkinstalldirs} $(DESTDIR)$(docdir) -@@ -3278,7 +3290,7 @@ install-data-local: - for files in $(BUILD_SDK_DIR)/jre/lib/*.properties; do \ - $(call install_file,$${files},$(DESTDIR)${prefix}/jre/lib,$(INSTALL_DATA)) ; \ - done -- for files in $(BUILD_SDK_DIR)/jre/lib/fontconfig*.{properties.src,bfc}; do \ -+ for files in $(BUILD_SDK_DIR)/jre/lib/fontconfig*.properties.src $(BUILD_SDK_DIR)/jre/lib/fontconfig*.bfc; do \ - $(call install_file,$${files},$(DESTDIR)${prefix}/jre/lib,$(INSTALL_DATA)) ; \ - done - $(INSTALL_DATA) $(BUILD_SDK_DIR)/release $(DESTDIR)${prefix} -diff --git a/Makefile.in b/Makefile.in -index 01d58a4..b733fb0 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -1984,7 +1984,7 @@ clean-generated: - rm -f stamps/generated.stamp - - stamps/fonts.stamp: stamps/extract.stamp -- cp $(FONTCONFIG_PATH)/linux.fontconfig.Gentoo.properties{,.old} -+ cp $(FONTCONFIG_PATH)/linux.fontconfig.Gentoo.properties $(FONTCONFIG_PATH)/linux.fontconfig.Gentoo.properties.old - cp linux.fontconfig.Gentoo.properties $(FONTCONFIG_PATH) - mkdir -p stamps - touch $@ -@@ -1992,7 +1992,7 @@ stamps/fonts.stamp: stamps/extract.stamp - clean-fonts: - rm -f $(FONTCONFIG_PATH)/linux.fontconfig.Gentoo.properties - if [ -e $(FONTCONFIG_PATH)/linux.fontconfig.Gentoo.properties.old ] ; then \ -- mv $(FONTCONFIG_PATH)/linux.fontconfig.Gentoo.properties{.old,} ; \ -+ mv $(FONTCONFIG_PATH)/linux.fontconfig.Gentoo.properties.old $(FONTCONFIG_PATH)/linux.fontconfig.Gentoo.properties ; \ - fi - rm -f stamps/fonts.stamp - -@@ -2801,7 +2801,7 @@ clean-rewriter: - rm -f stamps/rewriter.stamp - - stamps/rewrite-rhino.stamp: stamps/rewriter.stamp $(RHINO_JAR) --@WITH_RHINO_TRUE@ mkdir -p rhino/rhino.{old,new} && \ -+@WITH_RHINO_TRUE@ mkdir -p rhino/rhino.old rhino/rhino.new && \ - @WITH_RHINO_TRUE@ (cd rhino/rhino.old && $(BOOT_DIR)/bin/jar xf $(RHINO_JAR)) && \ - @WITH_RHINO_TRUE@ $(BOOT_DIR)/bin/java -cp $(REWRITER_BUILD_DIR) \ - @WITH_RHINO_TRUE@ com.redhat.rewriter.ClassRewriter \ -@@ -3320,14 +3320,20 @@ install-exec-local: - ${mkinstalldirs} $(DESTDIR)$(includedir)/$(BUILD_OS_DIR) $(DESTDIR)${exec_prefix}/lib/$(INSTALL_ARCH_DIR) - ${mkinstalldirs} $(DESTDIR)${exec_prefix}/lib/$(INSTALL_ARCH_DIR)/jli - ${mkinstalldirs} $(DESTDIR)${prefix}/jre/bin $(DESTDIR)${prefix}/jre/lib -- ${mkinstalldirs} $(DESTDIR)${prefix}/jre/lib/$(INSTALL_ARCH_DIR)/{.,headless,jli,xawt} -+ ${mkinstalldirs} $(DESTDIR)${prefix}/jre/lib/$(INSTALL_ARCH_DIR)/. -+ ${mkinstalldirs} $(DESTDIR)${prefix}/jre/lib/$(INSTALL_ARCH_DIR)/headless -+ ${mkinstalldirs} $(DESTDIR)${prefix}/jre/lib/$(INSTALL_ARCH_DIR)/jli -+ ${mkinstalldirs} $(DESTDIR)${prefix}/jre/lib/$(INSTALL_ARCH_DIR)/xawt - ${mkinstalldirs} $(DESTDIR)${prefix}/jre/lib/ext - ${mkinstalldirs} $(DESTDIR)${prefix}/tapset - @SPLIT_DEBUGINFO_TRUE@ ${mkinstalldirs} $(DESTDIR)$(DEBUG_PREFIX)/$(bindir) $(DESTDIR)$(DEBUG_PREFIX)/${exec_prefix}/lib - @SPLIT_DEBUGINFO_TRUE@ ${mkinstalldirs} $(DESTDIR)$(DEBUG_PREFIX)/${exec_prefix}/lib/$(INSTALL_ARCH_DIR) - @SPLIT_DEBUGINFO_TRUE@ ${mkinstalldirs} $(DESTDIR)$(DEBUG_PREFIX)/${exec_prefix}/lib/$(INSTALL_ARCH_DIR)/jli - @SPLIT_DEBUGINFO_TRUE@ ${mkinstalldirs} $(DESTDIR)$(DEBUG_PREFIX)/${prefix}/jre/bin $(DESTDIR)${prefix}/jre/lib --@SPLIT_DEBUGINFO_TRUE@ ${mkinstalldirs} $(DESTDIR)$(DEBUG_PREFIX)/${prefix}/jre/lib/$(INSTALL_ARCH_DIR)/{.,headless,jli,xawt} -+@SPLIT_DEBUGINFO_TRUE@ ${mkinstalldirs} $(DESTDIR)$(DEBUG_PREFIX)/${prefix}/jre/lib/$(INSTALL_ARCH_DIR)/. -+@SPLIT_DEBUGINFO_TRUE@ ${mkinstalldirs} $(DESTDIR)$(DEBUG_PREFIX)/${prefix}/jre/lib/$(INSTALL_ARCH_DIR)/headless -+@SPLIT_DEBUGINFO_TRUE@ ${mkinstalldirs} $(DESTDIR)$(DEBUG_PREFIX)/${prefix}/jre/lib/$(INSTALL_ARCH_DIR)/jli -+@SPLIT_DEBUGINFO_TRUE@ ${mkinstalldirs} $(DESTDIR)$(DEBUG_PREFIX)/${prefix}/jre/lib/$(INSTALL_ARCH_DIR)/xawt - for files in $(BUILD_SDK_DIR)/bin/*; do \ - name=$$(basename $${files}) ; \ - if test "x$(enable_split_debuginfo)" = "xyes" -a ! -h $${files} -a "x$${name}" != "xjava-rmi.cgi" ; then \ -@@ -3435,8 +3441,14 @@ install-data-local: - ${mkinstalldirs} $(DESTDIR)${prefix}/jre/.systemPrefs - ${mkinstalldirs} $(DESTDIR)${prefix}/jre/lib - ${mkinstalldirs} $(DESTDIR)${prefix}/jre/lib/$(INSTALL_ARCH_DIR) -- ${mkinstalldirs} $(DESTDIR)${prefix}/jre/lib/{cmm,ext,images/cursors,management,security,zi} -- ${mkinstalldirs} $(DESTDIR)$(mandir)/{man1,ja_JP.UTF-8/man1} -+ ${mkinstalldirs} $(DESTDIR)${prefix}/jre/lib/cmm -+ ${mkinstalldirs} $(DESTDIR)${prefix}/jre/lib/ext -+ ${mkinstalldirs} $(DESTDIR)${prefix}/jre/lib/images/cursors -+ ${mkinstalldirs} $(DESTDIR)${prefix}/jre/lib/management -+ ${mkinstalldirs} $(DESTDIR)${prefix}/jre/lib/security -+ ${mkinstalldirs} $(DESTDIR)${prefix}/jre/lib/zi -+ ${mkinstalldirs} $(DESTDIR)$(mandir)/man1 -+ ${mkinstalldirs} $(DESTDIR)$(mandir)/ja_JP.UTF-8/man1 - ${mkinstalldirs} $(DESTDIR)${prefix}/demo - ${mkinstalldirs} $(DESTDIR)${prefix}/sample - ${mkinstalldirs} $(DESTDIR)$(docdir) -@@ -3445,7 +3457,7 @@ install-data-local: - for files in $(BUILD_SDK_DIR)/jre/lib/*.properties; do \ - $(call install_file,$${files},$(DESTDIR)${prefix}/jre/lib,$(INSTALL_DATA)) ; \ - done -- for files in $(BUILD_SDK_DIR)/jre/lib/fontconfig*.{properties.src,bfc}; do \ -+ for files in $(BUILD_SDK_DIR)/jre/lib/fontconfig*.properties.src $(BUILD_SDK_DIR)/jre/lib/fontconfig*.bfc; do \ - $(call install_file,$${files},$(DESTDIR)${prefix}/jre/lib,$(INSTALL_DATA)) ; \ - done - $(INSTALL_DATA) $(BUILD_SDK_DIR)/release $(DESTDIR)${prefix} -diff --git a/acinclude.m4 b/acinclude.m4 -index 62dc853..516e392 100644 ---- a/acinclude.m4 -+++ b/acinclude.m4 -@@ -374,7 +374,10 @@ AC_DEFUN_ONCE([IT_FIND_ECJ_JAR], - if test -z "${ECJ_JAR}"; then - for jar in /usr/share/java/eclipse-ecj.jar \ - /usr/share/java/ecj.jar \ -- /usr/share/eclipse-ecj-3.{2,3,4,5}/lib/ecj.jar; do -+ /usr/share/eclipse-ecj-3.2/lib/ecj.jar \ -+ /usr/share/eclipse-ecj-3.3/lib/ecj.jar \ -+ /usr/share/eclipse-ecj-3.4/lib/ecj.jar \ -+ /usr/share/eclipse-ecj-3.5/lib/ecj.jar; do - if test -e $jar; then - ECJ_JAR=$jar - break -diff --git a/configure b/configure -index d7931a5..f2a1047 100755 ---- a/configure -+++ b/configure -@@ -10371,7 +10371,10 @@ fi - if test -z "${ECJ_JAR}"; then - for jar in /usr/share/java/eclipse-ecj.jar \ - /usr/share/java/ecj.jar \ -- /usr/share/eclipse-ecj-3.{2,3,4,5}/lib/ecj.jar; do -+ /usr/share/eclipse-ecj-3.2/lib/ecj.jar \ -+ /usr/share/eclipse-ecj-3.3/lib/ecj.jar \ -+ /usr/share/eclipse-ecj-3.4/lib/ecj.jar \ -+ /usr/share/eclipse-ecj-3.5/lib/ecj.jar ; do - if test -e $jar; then - ECJ_JAR=$jar - break diff --git a/dev-java/icedtea/files/icedtea-hotspot-musl.patch b/dev-java/icedtea/files/icedtea-hotspot-musl.patch @@ -1,55 +0,0 @@ ---- openjdk.orig/hotspot/src/os/linux/vm/jvm_linux.cpp -+++ openjdk/hotspot/src/os/linux/vm/jvm_linux.cpp -@@ -154,7 +154,9 @@ - #ifdef SIGSTKFLT - "STKFLT", SIGSTKFLT, /* Stack fault. */ - #endif -+#ifdef SIGCLD - "CLD", SIGCLD, /* Same as SIGCHLD (System V). */ -+#endif - "CHLD", SIGCHLD, /* Child status has changed (POSIX). */ - "CONT", SIGCONT, /* Continue (POSIX). */ - "STOP", SIGSTOP, /* Stop, unblockable (POSIX). */ ---- openjdk.orig/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp -+++ openjdk/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp -@@ -73,7 +73,6 @@ - # include <pwd.h> - # include <poll.h> - # include <ucontext.h> --# include <fpu_control.h> - - #ifdef AMD64 - #define REG_SP REG_RSP -@@ -532,6 +531,9 @@ - - ShouldNotReachHere(); - } -+ -+#define _FPU_GETCW(cw) __asm__ __volatile__ ("fnstcw %0" : "=m" (*&cw)) -+#define _FPU_SETCW(cw) __asm__ __volatile__ ("fldcw %0" : : "m" (*&cw)) - - void os::Linux::init_thread_fpu_state(void) { - #ifndef AMD64 ---- openjdk.orig/hotspot/src/os_cpu/linux_x86/vm/threadLS_linux_x86.hpp -+++ openjdk/hotspot/src/os_cpu/linux_x86/vm/threadLS_linux_x86.hpp -@@ -32,7 +32,9 @@ - // map stack pointer to thread pointer - see notes in threadLS_linux_x86.cpp - #define SP_BITLENGTH 32 - #define PAGE_SHIFT 12 -+ #ifndef PAGE_SIZE - #define PAGE_SIZE (1UL << PAGE_SHIFT) -+ #endif - static Thread* _sp_map[1UL << (SP_BITLENGTH - PAGE_SHIFT)]; - - public: ---- openjdk.orig/hotspot/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp -+++ openjdk/hotspot/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp -@@ -75,7 +75,7 @@ - # include <pwd.h> - # include <poll.h> - # include <ucontext.h> --# include <fpu_control.h> -+# include <linux/types.h> /* provides __u64 */ - - #ifdef BUILTIN_SIM - #define REG_SP REG_RSP diff --git a/dev-java/icedtea/files/icedtea-hotspot-stop-using-obsolete-isnanf.patch b/dev-java/icedtea/files/icedtea-hotspot-stop-using-obsolete-isnanf.patch @@ -1,42 +0,0 @@ -From 1624e2dd3739fe208efa13b31abf4bc53ae2e5c1 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <andre.draszik at jci.com <https://lists.yoctoproject.org/listinfo/yocto>> -Date: Tue, 27 Feb 2018 11:24:44 +0000 -Subject: [PATCH 1/9] hotspot: stop using obsolete isnanf() -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Compiling against musl-libc gives the following error: -| hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp: In function 'int g_isnan(float)': -| hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp:238:39: error: 'isnanf' was not declared in this scope -| inline int g_isnan(float f) { return isnanf(f); } -| ^~~~~~ - -isnanf() is obsolete, and musl doesn't implement it. isnan() -is the right thing to use for all types (float and double), -replacing isnanf(), even on glibc. - -Do so. - -Upstream-Status: Pending -Signed-off-by: André Draszik <andre.draszik at jci.com <https://lists.yoctoproject.org/listinfo/yocto>> ---- - hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp b/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp -index efa0b4e1..6df2302e 100644 ---- openjdk/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp -+++ openjdk/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp -@@ -235,7 +235,7 @@ inline int g_isnan(double f) { return isnand(f); } - #elif defined(__APPLE__) - inline int g_isnan(double f) { return isnan(f); } - #elif defined(LINUX) || defined(_ALLBSD_SOURCE) --inline int g_isnan(float f) { return isnanf(f); } -+inline int g_isnan(float f) { return isnan(f); } - inline int g_isnan(double f) { return isnan(f); } - #else - #error "missing platform-specific definition here" --- -2.16.2 - diff --git a/dev-java/icedtea/files/icedtea-jdk-execinfo.patch b/dev-java/icedtea/files/icedtea-jdk-execinfo.patch @@ -1,40 +0,0 @@ ---- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_xembed_server.c -+++ openjdk/jdk/src/solaris/native/sun/awt/awt_xembed_server.c -@@ -35,7 +35,7 @@ - #include <X11/Xlib.h> - #include <X11/Xatom.h> - #include <Xm/MwmUtil.h> --#ifdef __linux__ -+#if defined(__linux__) && defined(__GLIBC__) && ! defined(__UCLIBC__) - #include <execinfo.h> - #endif - #include <stdio.h> -@@ -835,7 +835,7 @@ - AWT_UNLOCK(); - } - --#ifdef __linux__ -+#if defined(__linux__) && defined(__GLIBC__) && ! defined(__UCLIBC__) - void - print_stack (void) - { ---- openjdk.orig/jdk/src/solaris/native/sun/xawt/XToolkit.c -+++ openjdk/jdk/src/solaris/native/sun/xawt/XToolkit.c -@@ -27,7 +27,7 @@ - #include <X11/Xutil.h> - #include <X11/Xos.h> - #include <X11/Xatom.h> --#ifdef __linux__ -+#if defined(__linux__) && defined(__GLIBC__) && ! defined(__UCLIBC__) - #include <execinfo.h> - #endif - -@@ -689,7 +689,7 @@ - return ret; - } - --#ifdef __linux__ -+#if defined(__linux__) && defined(__GLIBC__) && ! defined(__UCLIBC__) - void print_stack(void) - { - void *array[10]; diff --git a/dev-java/icedtea/files/icedtea-jdk-fix-build.patch b/dev-java/icedtea/files/icedtea-jdk-fix-build.patch @@ -1,56 +0,0 @@ -Fixes three issues: - - so's should not be linked to -ljvm as dlopen(/abs/name) is - used by the launcher to load libjvm.so; it is thus not available - (musl/uclibc) ld.so to satisfy NEEDED dependency inserted by - -ljvm. Fix to not link against -ljvm, and disable -z defs so - undefined symbols are allowed in sos - - the previous makes ldd generate errors on unresolved symbols (musl) - remove it altogether as it's used for informative purposes only - (display things - not check anything useful) - - Don't delete the generated directory $(GENCSEXT), this can - confuse make in highly parallel builds with: - make[6]: *** INTERNAL: readdir: No such file or directory. Stop. - make[6]: Leaving directory '.../openjdk-boot/jdk/make/sun/nio/cs' - ---- openjdk.orig/jdk/make/common/Defs-linux.gmk -+++ openjdk/jdk/make/common/Defs-linux.gmk -@@ -350,7 +350,7 @@ - - EXTRA_LIBS += -lc - --LDFLAGS_DEFS_OPTION = -Xlinker -z -Xlinker defs -+LDFLAGS_DEFS_OPTION = - LDFLAGS_COMMON += $(LDFLAGS_DEFS_OPTION) - - # -@@ -407,7 +407,7 @@ - # the library itself should not. - # - VM_NAME = server --JVMLIB = -L$(LIBDIR)/$(LIBARCH)/$(VM_NAME) -ljvm -+JVMLIB = - JAVALIB = -ljava $(JVMLIB) - - # ---- openjdk.orig/jdk/make/sun/nio/cs/Makefile -+++ openjdk/jdk/make/sun/nio/cs/Makefile -@@ -107,7 +107,7 @@ - $(GENCSDATASRC)/DoubleByte-X.java.template \ - $(GENCSDATASRC)/extsbcs $(GENCSDATASRC)/dbcs - @$(prep-target) -- $(RM) -r $(GENCSEXT) -+ $(RM) -f "$(GENCSEXT)"/* - $(MKDIR) -p $(GENCSEXT) - $(BOOT_JAVA_CMD) -jar $(CHARSETMAPPING_JARFILE) $(GENCSDATASRC) $(GENCSEXT) extsbcs - $(BOOT_JAVA_CMD) -jar $(CHARSETMAPPING_JARFILE) $(GENCSDATASRC) $(GENCSEXT) euctw \ ---- openjdk.orig/jdk/make/common/shared/Defs-linux.gmk -+++ openjdk/jdk/make/common/shared/Defs-linux.gmk -@@ -207,8 +207,6 @@ - if [ "`$(NM) -D -g --defined-only $1 | $(EGREP) 'SUNWprivate'`" = "" ] ; then \ - $(ECHO) "$(MAPFILE_WARNING): File was not built with a mapfile: $1"; \ - fi && \ -- $(ECHO) "Library loads for: $1" && \ -- $(LDD) $1 && \ - $(ECHO) "RUNPATH for: $1" && \ - ( $(READELF) -d $1 | $(EGREP) 'NEEDED|RUNPATH|RPATH' ) \ - ) diff --git a/dev-java/icedtea/files/icedtea-jdk-musl.patch b/dev-java/icedtea/files/icedtea-jdk-musl.patch @@ -1,116 +0,0 @@ -diff -ru openjdk.orig/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp ---- openjdk.orig/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp 2014-06-12 20:14:44.000000000 +0000 -+++ openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp 2014-07-15 07:19:52.186682096 +0000 -@@ -46,6 +46,8 @@ - - #include "zip.h" - -+#define uchar unsigned char -+ - #ifdef NO_ZLIB - - inline bool jar::deflate_bytes(bytes& head, bytes& tail) { -diff -ru openjdk.orig/jdk/src/share/native/com/sun/java/util/jar/pack/zip.h openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/zip.h ---- openjdk.orig/jdk/src/share/native/com/sun/java/util/jar/pack/zip.h 2014-06-12 20:14:44.000000000 +0000 -+++ openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/zip.h 2014-07-15 07:19:52.186682096 +0000 -@@ -23,9 +23,7 @@ - * questions. - */ - --#define ushort unsigned short --#define uint unsigned int --#define uchar unsigned char -+#include <sys/types.h> - - struct unpacker; - -diff -ru openjdk.orig/jdk/src/share/native/sun/awt/medialib/mlib_types.h openjdk/jdk/src/share/native/sun/awt/medialib/mlib_types.h ---- openjdk.orig/jdk/src/share/native/sun/awt/medialib/mlib_types.h 2014-06-12 20:14:44.000000000 +0000 -+++ openjdk/jdk/src/share/native/sun/awt/medialib/mlib_types.h 2014-07-15 07:19:52.186682096 +0000 -@@ -27,6 +27,7 @@ - #ifndef MLIB_TYPES_H - #define MLIB_TYPES_H - -+#include <stddef.h> /* for NULL */ - #include <limits.h> - #if defined(_MSC_VER) - #include <float.h> /* for FLT_MAX and DBL_MAX */ -diff -ru openjdk.orig/jdk/src/solaris/native/java/net/Inet4AddressImpl.c openjdk/jdk/src/solaris/native/java/net/Inet4AddressImpl.c ---- openjdk.orig/jdk/src/solaris/native/java/net/Inet4AddressImpl.c 2014-06-12 20:14:44.000000000 +0000 -+++ openjdk/jdk/src/solaris/native/java/net/Inet4AddressImpl.c 2014-07-15 07:19:52.186682096 +0000 -@@ -47,7 +47,7 @@ - - #include "java_net_Inet4AddressImpl.h" - --#if defined(__GLIBC__) || (defined(__FreeBSD__) && (__FreeBSD_version >= 601104)) -+#if defined(__linux__) || (defined(__FreeBSD__) && (__FreeBSD_version >= 601104)) - #define HAS_GLIBC_GETHOSTBY_R 1 - #endif - -diff -ru openjdk.orig/jdk/src/solaris/native/java/net/NetworkInterface.c openjdk/jdk/src/solaris/native/java/net/NetworkInterface.c ---- openjdk.orig/jdk/src/solaris/native/java/net/NetworkInterface.c 2014-06-12 20:14:44.000000000 +0000 -+++ openjdk/jdk/src/solaris/native/java/net/NetworkInterface.c 2014-07-15 07:19:52.186682096 +0000 -@@ -47,7 +47,6 @@ - - #ifdef __linux__ - #include <sys/ioctl.h> --#include <bits/ioctls.h> - #include <sys/utsname.h> - #include <stdio.h> - #endif -diff -ru openjdk.orig/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c openjdk/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c ---- openjdk.orig/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c 2014-06-12 20:14:44.000000000 +0000 -+++ openjdk/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c 2014-07-15 07:19:52.190015524 +0000 -@@ -35,7 +35,6 @@ - #endif - #ifdef __linux__ - #include <unistd.h> --#include <sys/sysctl.h> - #include <sys/utsname.h> - #include <netinet/ip.h> - -diff -ru openjdk.orig/jdk/src/solaris/native/java/net/PlainSocketImpl.c openjdk/jdk/src/solaris/native/java/net/PlainSocketImpl.c ---- openjdk.orig/jdk/src/solaris/native/java/net/PlainSocketImpl.c 2014-06-12 20:14:44.000000000 +0000 -+++ openjdk/jdk/src/solaris/native/java/net/PlainSocketImpl.c 2014-07-15 07:19:52.190015524 +0000 -@@ -43,7 +43,6 @@ - #endif - #ifdef __linux__ - #include <unistd.h> --#include <sys/sysctl.h> - #endif - - #include "jvm.h" -diff -ru openjdk.orig/jdk/src/solaris/native/java/net/linux_close.c openjdk/jdk/src/solaris/native/java/net/linux_close.c ---- openjdk.orig/jdk/src/solaris/native/java/net/linux_close.c 2014-06-12 20:14:44.000000000 +0000 -+++ openjdk/jdk/src/solaris/native/java/net/linux_close.c 2014-07-15 07:22:17.609355950 +0000 -@@ -75,7 +75,7 @@ - #ifdef _AIX - static int sigWakeup = (SIGRTMAX - 1); - #else --static int sigWakeup = (__SIGRTMAX - 2); -+static int sigWakeup; - #endif - - /* -@@ -148,6 +148,9 @@ - /* - * Setup the signal handler - */ -+#ifndef __AIX -+ sigWakeup = SIGRTMAX - 2; -+#endif - sa.sa_handler = sig_wakeup; - sa.sa_flags = 0; - sigemptyset(&sa.sa_mask); -diff -ru openjdk.orig/jdk/src/solaris/native/sun/nio/ch/NativeThread.c openjdk/jdk/src/solaris/native/sun/nio/ch/NativeThread.c ---- openjdk.orig/jdk/src/solaris/native/sun/nio/ch/NativeThread.c 2014-06-12 20:14:44.000000000 +0000 -+++ openjdk/jdk/src/solaris/native/sun/nio/ch/NativeThread.c 2014-07-15 07:19:52.190015524 +0000 -@@ -38,7 +38,7 @@ - #include <sys/signal.h> - - /* Also defined in src/solaris/native/java/net/linux_close.c */ --#define INTERRUPT_SIGNAL (__SIGRTMAX - 2) -+#define INTERRUPT_SIGNAL (SIGRTMAX - 2) - - static void - nullHandler(int sig) diff --git a/dev-java/icedtea/files/icedtea-jdk-no-soname.patch b/dev-java/icedtea/files/icedtea-jdk-no-soname.patch @@ -1,12 +0,0 @@ ---- ./openjdk/jdk/make/common/Defs-linux.gmk.orig -+++ ./openjdk/jdk/make/common/Defs-linux.gmk -@@ -248,7 +248,9 @@ - # - LDFLAGS_OPT = -Xlinker -O1 - LDFLAGS_COMMON += -L$(LIBDIR)/$(LIBARCH) -+ifdef LIBRARY - LDFLAGS_COMMON += -Wl,-soname=$(LIB_PREFIX)$(LIBRARY).$(LIBRARY_SUFFIX) -+endif - - # - # -static-libgcc is a gcc-3 flag to statically link libgcc, gcc-2.9x always diff --git a/dev-java/icedtea/files/icedtea-os_linux-remove-glibc-dependencies.patch b/dev-java/icedtea/files/icedtea-os_linux-remove-glibc-dependencies.patch @@ -1,75 +0,0 @@ -From a02a9fbc3f1fed181504bdb5b0a16863247f92fc Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <andre.draszik at jci.com <https://lists.yoctoproject.org/listinfo/yocto>> -Date: Fri, 2 Mar 2018 10:11:51 +0000 -Subject: [PATCH 6/9] hotspot: os_linux: remove glibc dependencies -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -* gnu/libc-version.h doesn't exist in musl - | hotspot/src/os/linux/vm/os_linux.cpp:97:11: fatal error: gnu/libc-version.h: No such file or directory - | # include <gnu/libc-version.h> - | ^~~~~~~~~~~~~~~~~~~~ - -* dlvsym() is a GNU extension and doesn't exist in musl - | hotspot/src/os/linux/vm/os_linux.cpp:2846:13: error: 'dlvsym' was not declared in this scope - | void *f = dlvsym(handle, name, "libnuma_1.1"); - | ^~~~~~ - | hotspot/src/os/linux/vm/os_linux.cpp:2846:13: note: suggested alternative: 'dlsym' - | void *f = dlvsym(handle, name, "libnuma_1.1"); - | ^~~~~~ - | dlsym - -Upstream-Status: Inappropriate [musl specific] -Signed-off-by: André Draszik <andre.draszik at jci.com <https://lists.yoctoproject.org/listinfo/yocto>> ---- - hotspot/src/os/linux/vm/os_linux.cpp | 12 +++++++++++- - 1 file changed, 11 insertions(+), 1 deletion(-) - -diff --git a/hotspot/src/os/linux/vm/os_linux.cpp b/hotspot/src/os/linux/vm/os_linux.cpp -index 044a70a6..3137796a 100644 ---- openjdk/hotspot/src/os/linux/vm/os_linux.cpp -+++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp -@@ -94,7 +94,6 @@ - # include <string.h> - # include <syscall.h> - # include <sys/sysinfo.h> --# include <gnu/libc-version.h> - # include <sys/ipc.h> - # include <sys/shm.h> - # include <link.h> -@@ -530,6 +529,13 @@ void os::Linux::hotspot_sigmask(Thread* thread) { - // detecting pthread library - - void os::Linux::libpthread_init() { -+#if 1 -+ // Hard code supported musl compatible settings (taken from alpine linux) -+ os::Linux::set_glibc_version("glibc 2.9"); -+ os::Linux::set_libpthread_version("NPTL"); -+ os::Linux::set_is_NPTL(); -+ os::Linux::set_is_floating_stack(); -+#else - // Save glibc and pthread version strings. Note that _CS_GNU_LIBC_VERSION - // and _CS_GNU_LIBPTHREAD_VERSION are supported in glibc >= 2.3.2. Use a - // generic name for earlier versions. -@@ -588,6 +594,7 @@ void os::Linux::libpthread_init() { - if (os::Linux::is_NPTL() || os::Linux::supports_variable_stack_size()) { - os::Linux::set_is_floating_stack(); - } -+#endif - } - - ///////////////////////////////////////////////////////////////////////////// -@@ -2814,6 +2821,9 @@ int os::Linux::sched_getcpu_syscall(void) { - return (retval == -1) ? retval : cpu; - } - -+// musl doesn't have dlvsym() -+#define dlvsym(h,s,v) dlsym(h,s) -+ - // Something to do with the numa-aware allocator needs these symbols - extern "C" JNIEXPORT void numa_warn(int number, char *where, ...) { } - extern "C" JNIEXPORT void numa_error(char *where) { } --- -2.16.2 - diff --git a/dev-java/icedtea/files/icedtea.env.sh b/dev-java/icedtea/files/icedtea.env.sh @@ -1,18 +0,0 @@ -# Copyright 1999-2016 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Id$ - -VERSION="IcedTea JDK ${PV}" -JAVA_HOME="${EPREFIX}/usr/$(get_libdir)/icedtea${SLOT}" -JDK_HOME="${EPREFIX}/usr/$(get_libdir)/icedtea${SLOT}" -JAVAC="\${JAVA_HOME}/bin/javac" -PATH="\${JAVA_HOME}/bin:\${JAVA_HOME}/jre/bin" -ROOTPATH="\${JAVA_HOME}/bin:\${JAVA_HOME}/jre/bin" -LDPATH="\${JAVA_HOME}/jre/lib/$(get_system_arch)/:\${JAVA_HOME}/jre/lib/$(get_system_arch)/server/$([[ ${SLOT} = [67] ]] && printf :\${JAVA_HOME}/jre/lib/$(get_system_arch)/xawt/)$([[ ${SLOT} = 6 ]] && printf :\${JAVA_HOME}/jre/lib/$(get_system_arch)/native_threads/)" -MANPATH="${EPREFIX}/usr/$(get_libdir)/icedtea${SLOT}/man" -PROVIDES_TYPE="JDK JRE" -PROVIDES_VERSION="1.${SLOT}" -# Taken from sun.boot.class.path property -BOOTCLASSPATH="\${JAVA_HOME}/jre/lib/resources.jar:\${JAVA_HOME}/jre/lib/rt.jar:\${JAVA_HOME}/jre/lib/sunrsasign.jar:\${JAVA_HOME}/jre/lib/jsse.jar:\${JAVA_HOME}/jre/lib/jce.jar:\${JAVA_HOME}/jre/lib/charsets.jar:\${JAVA_HOME}/jre/lib/jfr.jar" -GENERATION="2" -ENV_VARS="JAVA_HOME JDK_HOME JAVAC PATH ROOTPATH LDPATH MANPATH" diff --git a/dev-java/icedtea/files/icedtea7-disable-systemtap.patch b/dev-java/icedtea/files/icedtea7-disable-systemtap.patch @@ -1,20 +0,0 @@ ---- a/Makefile.am 2020-07-16 14:34:04.759855943 +0000 -+++ b/Makefile.am 2020-07-16 14:34:29.151797650 +0000 -@@ -3156,7 +3156,6 @@ - ${mkinstalldirs} $(DESTDIR)${prefix}/jre/bin $(DESTDIR)${prefix}/jre/lib - ${mkinstalldirs} $(DESTDIR)${prefix}/jre/lib/$(INSTALL_ARCH_DIR)/{.,headless,jli,xawt} - ${mkinstalldirs} $(DESTDIR)${prefix}/jre/lib/ext -- ${mkinstalldirs} $(DESTDIR)${prefix}/tapset - if SPLIT_DEBUGINFO - ${mkinstalldirs} $(DESTDIR)$(DEBUG_PREFIX)/$(bindir) $(DESTDIR)$(DEBUG_PREFIX)/${exec_prefix}/lib - ${mkinstalldirs} $(DESTDIR)$(DEBUG_PREFIX)/${exec_prefix}/lib/$(INSTALL_ARCH_DIR) -@@ -3256,9 +3255,6 @@ - for files in $(BUILD_SDK_DIR)/jre/lib/ext/*.jar; do \ - $(call install_file,$${files},$(DESTDIR)${prefix}/jre/lib/ext,$(INSTALL_DATA));\ - done -- for files in $(BUILD_SDK_DIR)/tapset/*.stp; do \ -- $(call install_file,$${files},$(DESTDIR)${prefix}/tapset,$(INSTALL_DATA));\ -- done - $(abs_top_builddir)/pax-mark-vm $(DESTDIR)${prefix} false - - install-data-local: diff --git a/dev-java/icedtea/files/icedtea7-hotspot-miscompile.patch b/dev-java/icedtea/files/icedtea7-hotspot-miscompile.patch @@ -1,25 +0,0 @@ ---- openjdk.orig/hotspot/src/share/vm/memory/dump.cpp 2021-12-06 19:02:27.037014756 +0000 -+++ openjdk/hotspot/src/share/vm/memory/dump.cpp 2021-12-06 19:03:01.597850811 +0000 -@@ -1426,7 +1426,11 @@ - /* Skip spaces and control characters */ - continue; - } -- h = 31 * h + c; -+ jlong h0 = h; -+ for(int i = 0; i < 5; i++) { -+ h += h; -+ } -+ h += c - h0; - } - return h; - } ---- openjdk/hotspot/src/share/vm/memory/dump.cpp.orig 2021-12-07 00:12:44.969219667 +0000 -+++ openjdk/hotspot/src/share/vm/memory/dump.cpp 2021-12-07 00:12:54.219429310 +0000 -@@ -1554,7 +1554,6 @@ - if (computed_jsum != file_jsum) { - tty->cr(); - tty->print_cr("Preload failed: checksum of class list was incorrect."); -- exit(1); - } - - tty->print_cr("done. "); diff --git a/dev-java/icedtea/files/icedtea7-hotspot-pointer-comparison.patch b/dev-java/icedtea/files/icedtea7-hotspot-pointer-comparison.patch @@ -1,31 +0,0 @@ ---- openjdk.orig/hotspot/src/share/vm/opto/lcm.cpp 2021-12-06 12:25:52.743843656 +0000 -+++ openjdk/hotspot/src/share/vm/opto/lcm.cpp 2021-12-06 12:26:05.814241520 +0000 -@@ -60,7 +60,7 @@ - // Check whether val is not-null-decoded compressed oop, - // i.e. will grab into the base of the heap if it represents NULL. - static bool accesses_heap_base_zone(Node *val) { -- if (UseCompressedOops && Universe::narrow_oop_base() > 0) { -+ if (UseCompressedOops && (Universe::narrow_oop_base() != 0)) { - if (val && val->is_Mach()) { - if (val->as_Mach()->ideal_Opcode() == Op_DecodeN) { - // This assumes all Decodes with TypePtr::NotNull are matched to nodes that ---- openjdk.orig/hotspot/src/share/vm/runtime/virtualspace.cpp 2021-12-06 13:08:11.976366383 +0000 -+++ openjdk/hotspot/src/share/vm/runtime/virtualspace.cpp 2021-12-06 13:08:34.377048681 +0000 -@@ -527,7 +527,7 @@ - (UseCompressedOops && (Universe::narrow_oop_base() != NULL) && - Universe::narrow_oop_use_implicit_null_checks()) ? - lcm(os::vm_page_size(), alignment) : 0) { -- if (base() > 0) { -+ if (base() != 0) { - MemTracker::record_virtual_memory_type((address)base(), mtJavaHeap); - } - -@@ -546,7 +546,7 @@ - (UseCompressedOops && (Universe::narrow_oop_base() != NULL) && - Universe::narrow_oop_use_implicit_null_checks()) ? - lcm(os::vm_page_size(), prefix_align) : 0) { -- if (base() > 0) { -+ if (base() != 0) { - MemTracker::record_virtual_memory_type((address)base(), mtJavaHeap); - } - diff --git a/dev-java/icedtea/files/icedtea7-jdk-fcommon.patch b/dev-java/icedtea/files/icedtea7-jdk-fcommon.patch @@ -1,11 +0,0 @@ ---- openjdk.orig/jdk/make/common/Defs-linux.gmk 2021-12-06 17:35:01.291049716 +0000 -+++ openjdk/jdk/make/common/Defs-linux.gmk 2021-12-06 17:35:28.811707263 +0000 -@@ -271,7 +271,7 @@ - # - # Misc compiler options - # --CFLAGS_COMMON = -fno-strict-aliasing -+CFLAGS_COMMON = -fno-strict-aliasing -fcommon - PIC_CODE_LARGE = -fPIC - PIC_CODE_SMALL = -fpic - GLOBAL_KPIC = $(PIC_CODE_LARGE) diff --git a/dev-java/icedtea/files/icedtea7-jdk-freetype.patch b/dev-java/icedtea/files/icedtea7-jdk-freetype.patch @@ -1,11 +0,0 @@ ---- openjdk.orig/jdk/make/common/shared/Defs-versions.gmk 2011-04-11 15:03:04.000000000 +0100 -+++ openjdk/jdk/make/common/shared/Defs-versions.gmk 2021-12-06 00:33:27.338540213 +0000 -@@ -213,7 +213,7 @@ - # Generic - REQUIRED_ANT_VER = 1.7.1 - REQUIRED_BOOT_VER = 1.6 --REQUIRED_FREETYPE_VERSION = 2.2.1 -+REQUIRED_FREETYPE_VERSION = 2.10.1 - REQUIRED_MAKE_VER = 3.81 - REQUIRED_UNZIP_VER = 5.12 - REQUIRED_ZIP_VER = 2.2 diff --git a/dev-java/icedtea/files/jamvm-1.6.0-aarch64-support.patch b/dev-java/icedtea/files/jamvm-1.6.0-aarch64-support.patch @@ -1,632 +0,0 @@ -From a44154f7a18496cc3e5fc0b1b2ea69523ebc623a Mon Sep 17 00:00:00 2001 -From: Simon South <simon@simonsouth.net> -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 ---- jamvm/jamvm/AUTHORS -+++ jamvm/jamvm/AUTHORS -@@ -1,1 +1,2 @@ - Robert Lougher <rob@jamvm.org.uk> -+Simon South <simon@simonsouth.net> -diff --git a/configure.ac b/configure.ac -index 138b7e6..e7051d7 100644 ---- jamvm/jamvm/configure.ac -+++ jamvm/jamvm/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 ---- jamvm/jamvm/src/arch/Makefile.am -+++ jamvm/jamvm/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 -+++ jamvm/jamvm/src/arch/aarch64.h -@@ -0,0 +1,147 @@ -+/* -+ * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 -+ * Robert Lougher <rob@jamvm.org.uk>. -+ * Copyright (C) 2020 Simon South <simon@simonsouth.net>. -+ * -+ * 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 <stdint.h> -+ -+#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 ---- jamvm/jamvm/src/jam.c -+++ jamvm/jamvm/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-2013 Robert Lougher <rob@jamvm.org.uk>\n\n"); -+ printf("Copyright (C) 2003-2013 Robert Lougher <rob@jamvm.org.uk>\n"); -+ printf("Portions Copyright (C) 2020 Simon South <simon@simonsouth.net>\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 ---- jamvm/jamvm/src/os/linux/Makefile.am -+++ jamvm/jamvm/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 -+++ jamvm/jamvm/src/os/linux/aarch64/Makefile.am -@@ -0,0 +1,28 @@ -+## -+## Copyright (C) 2003, 2004, 2005, 2006, 2007, 2010, 2011, 2012 -+## Robert Lougher <rob@jamvm.org.uk>. -+## -+## File added by Simon South <simon@simonsouth.net>. -+## -+## 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 -+++ jamvm/jamvm/src/os/linux/aarch64/callNative.S -@@ -0,0 +1,212 @@ -+/* -+ * Copyright (C) 2008, 2009, 2011, 2012 Robert Lougher <rob@jamvm.org.uk>. -+ * Copyright (C) 2020 Simon South <simon@simonsouth.net>. -+ * -+ * 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 -+++ jamvm/jamvm/src/os/linux/aarch64/dll_md.c -@@ -0,0 +1,59 @@ -+/* -+ * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2010, 2011 -+ * Robert Lougher <rob@jamvm.org.uk>. -+ * Copyright (C) 2020 Simon South <simon@simonsouth.net>. -+ * -+ * 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 -+++ jamvm/jamvm/src/os/linux/aarch64/init.c -@@ -0,0 +1,51 @@ -+/* -+ * Copyright (C) 2003, 2004, 2005, 2006, 2007 -+ * Robert Lougher <rob@jamvm.org.uk>. -+ * Copyright (C) 2020 Simon South <simon@simonsouth.net>. -+ * -+ * 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/icedtea/files/jamvm-1.6.0-opcode-guard.patch b/dev-java/icedtea/files/jamvm-1.6.0-opcode-guard.patch @@ -1,35 +0,0 @@ -From ca11b53896365c948426974cb90e8f71c70d123b Mon Sep 17 00:00:00 2001 -From: Simon South <simon@simonsouth.net> -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 ---- jamvm/jamvm/src/interp/engine/interp-inlining.h -+++ jamvm/jamvm/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/icedtea/icedtea-7.2.6.28.ebuild b/dev-java/icedtea/icedtea-7.2.6.28.ebuild @@ -1,402 +0,0 @@ -# Copyright 1999-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 -# Build written by Andrew John Hughes (gnu_andrew@member.fsf.org) - -EAPI="6" -SLOT="7" - -inherit autotools check-reqs eutils gnome2-utils java-pkg-2 java-vm-2 multiprocessing pax-utils prefix versionator virtualx - -ICEDTEA_VER=$(get_version_component_range 2-4) -ICEDTEA_BRANCH=$(get_version_component_range 2-3) -ICEDTEA_PKG=icedtea-${ICEDTEA_VER} -ICEDTEA_PRE=$(get_version_component_range _) -CORBA_TARBALL="60fb55621427.tar.bz2" -HOTSPOT_TARBALL="d7f4f4901aa1.tar.bz2" -JAXP_TARBALL="2eedd3512498.tar.bz2" -JAXWS_TARBALL="dc69e332d99f.tar.bz2" -JDK_TARBALL="f42b7efa98fe.tar.bz2" -LANGTOOLS_TARBALL="9cf0f33fe118.tar.bz2" -OPENJDK_TARBALL="b7da16493c1b.tar.bz2" - -CACAO_TARBALL="cacao-c182f119eaad.tar.gz" -JAMVM_TARBALL="jamvm-ec18fb9e49e62dce16c5094ef1527eed619463aa.tar.gz" - -CORBA_GENTOO_TARBALL="icedtea-${ICEDTEA_BRANCH}-corba-${CORBA_TARBALL}" -JAXP_GENTOO_TARBALL="icedtea-${ICEDTEA_BRANCH}-jaxp-${JAXP_TARBALL}" -JAXWS_GENTOO_TARBALL="icedtea-${ICEDTEA_BRANCH}-jaxws-${JAXWS_TARBALL}" -JDK_GENTOO_TARBALL="icedtea-${ICEDTEA_BRANCH}-jdk-${JDK_TARBALL}" -LANGTOOLS_GENTOO_TARBALL="icedtea-${ICEDTEA_BRANCH}-langtools-${LANGTOOLS_TARBALL}" -OPENJDK_GENTOO_TARBALL="icedtea-${ICEDTEA_BRANCH}-openjdk-${OPENJDK_TARBALL}" -HOTSPOT_GENTOO_TARBALL="icedtea-${ICEDTEA_BRANCH}-hotspot-${HOTSPOT_TARBALL}" - -CACAO_GENTOO_TARBALL="icedtea-${CACAO_TARBALL}" -JAMVM_GENTOO_TARBALL="icedtea-${JAMVM_TARBALL}" - -DROP_URL="https://icedtea.classpath.org/download/drops" -ICEDTEA_URL="${DROP_URL}/icedtea${SLOT}/${ICEDTEA_VER}" - -DESCRIPTION="A harness to build OpenJDK using Free Software build tools and dependencies" -HOMEPAGE="https://icedtea.classpath.org" -SRC_PKG="${ICEDTEA_PKG}.tar.xz" -SRC_URI=" - https://icedtea.classpath.org/download/source/${SRC_PKG} - ${ICEDTEA_URL}/openjdk.tar.bz2 -> ${OPENJDK_GENTOO_TARBALL} - ${ICEDTEA_URL}/corba.tar.bz2 -> ${CORBA_GENTOO_TARBALL} - ${ICEDTEA_URL}/jaxp.tar.bz2 -> ${JAXP_GENTOO_TARBALL} - ${ICEDTEA_URL}/jaxws.tar.bz2 -> ${JAXWS_GENTOO_TARBALL} - ${ICEDTEA_URL}/jdk.tar.bz2 -> ${JDK_GENTOO_TARBALL} - ${ICEDTEA_URL}/hotspot.tar.bz2 -> ${HOTSPOT_GENTOO_TARBALL} - ${ICEDTEA_URL}/langtools.tar.bz2 -> ${LANGTOOLS_GENTOO_TARBALL} - ${DROP_URL}/cacao/${CACAO_TARBALL} -> ${CACAO_GENTOO_TARBALL} - ${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 arm64" - -IUSE="+alsa cacao +cups debug doc examples +gtk headless-awt - jamvm +jbootstrap kerberos nss pax_kernel - sctp selinux smartcard source test zero" - -REQUIRED_USE="gtk? ( !headless-awt )" - -# Ideally the following were optional at build time. -ALSA_COMMON_DEP=" - >=media-libs/alsa-lib-1.0" -CUPS_COMMON_DEP=" - >=net-print/cups-1.2.12" -X_COMMON_DEP=" - >=media-libs/giflib-4.1.6:= - >=media-libs/libpng-1.2:0= - >=x11-libs/libX11-1.1.3 - >=x11-libs/libXext-1.1.1 - >=x11-libs/libXi-1.1.3 - >=x11-libs/libXrender-0.9.4 - >=x11-libs/libXtst-1.0.3 - x11-libs/libXt - x11-libs/libXcomposite" -X_DEPEND=" - >=x11-libs/libXau-1.0.3 - >=x11-libs/libXdmcp-1.0.2 - >=x11-libs/libXinerama-1.0.2 - x11-base/xorg-proto" - -COMMON_DEP=" - app-misc/mime-types - >=dev-libs/glib-2.26:2 - media-libs/fontconfig - >=media-libs/freetype-2.10.1:2= - >=media-libs/lcms-2.5 - >=sys-libs/zlib-1.2.3:= - virtual/jpeg:0= - gtk? ( - >=dev-libs/atk-1.30.0 - >=x11-libs/cairo-1.8.8:= - x11-libs/gdk-pixbuf:2 - >=x11-libs/gtk+-2.8:2= - >=x11-libs/pango-1.24.5 - ) - kerberos? ( virtual/krb5 ) - nss? ( >=dev-libs/nss-3.12.5-r1 ) - sctp? ( net-misc/lksctp-tools ) - smartcard? ( sys-apps/pcsc-lite )" - -# gsettings-desktop-schemas is needed for native proxy support. #431972 -RDEPEND="${COMMON_DEP} - !dev-java/icedtea:0 - !dev-java/icedtea-web:7 - >=gnome-base/gsettings-desktop-schemas-3.12.2 - media-fonts/dejavu - alsa? ( ${ALSA_COMMON_DEP} ) - cups? ( ${CUPS_COMMON_DEP} ) - !headless-awt? ( ${X_COMMON_DEP} ) - selinux? ( sec-policy/selinux-java )" - -# Only ant-core-1.8.1 has fixed ant -diagnostics when xerces+xalan are not present. -# ca-certificates, perl and openssl are used for the cacerts keystore generation -DEPEND="${COMMON_DEP} ${ALSA_COMMON_DEP} ${CUPS_COMMON_DEP} ${X_COMMON_DEP} ${X_DEPEND} - || ( - dev-java/jamvm:2.0-3 - dev-java/icedtea:7 - ) - sys-devel/automake:1.16 - app-arch/cpio - app-arch/unzip - app-arch/zip - app-misc/ca-certificates - dev-java/ant-core:bootstrap - dev-lang/perl - >=dev-libs/libxslt-1.1.26 - dev-libs/openssl - sys-apps/attr - sys-apps/lsb-release - virtual/pkgconfig - pax_kernel? ( sys-apps/elfix )" - -S="${WORKDIR}"/${ICEDTEA_PKG} - -icedtea_check_requirements() { - local CHECKREQS_DISK_BUILD - - if use doc; then - CHECKREQS_DISK_BUILD="9000M" - else - CHECKREQS_DISK_BUILD="8500M" - fi - - check-reqs_pkg_${EBUILD_PHASE} -} - -pkg_pretend() { - icedtea_check_requirements -} - -pkg_setup() { - icedtea_check_requirements - - JAVA_PKG_WANT_BUILD_VM="jamvm-2.0-3 icedtea-7" - JAVA_PKG_WANT_SOURCE="1.5" - JAVA_PKG_WANT_TARGET="1.5" - - java-vm-2_pkg_setup - java-pkg-2_pkg_setup -} - -src_unpack() { - unpack ${SRC_PKG} - - ln -s "${FILESDIR}/jamvm-1.6.0-aarch64-support.patch" "${S}/patches/jamvm" || die - ln -s "${FILESDIR}/jamvm-1.6.0-opcode-guard.patch" "${S}/patches/jamvm" || die - ln -s "${FILESDIR}/${PN}-jdk-musl.patch" "${S}/patches" || die - ln -s "${FILESDIR}/${PN}-jdk-no-soname.patch" "${S}/patches" || die - ln -s "${FILESDIR}/${PN}-jdk-fix-build.patch" "${S}/patches" || die - ln -s "${FILESDIR}/${PN}-jdk-execinfo.patch" "${S}/patches" || die - ln -s "${FILESDIR}/${PN}-hotspot-stop-using-obsolete-isnanf.patch" "${S}/patches" || die - ln -s "${FILESDIR}/${PN}${SLOT}-jdk-freetype.patch" "${S}/patches" || die - ln -s "${FILESDIR}/${PN}${SLOT}-hotspot-pointer-comparison.patch" "${S}/patches" || die - ln -s "${FILESDIR}/${PN}${SLOT}-jdk-fcommon.patch" "${S}/patches" || die - ln -s "${FILESDIR}/${PN}${SLOT}-hotspot-miscompile.patch" "${S}/patches" || die - ln -s "${FILESDIR}/${PN}-hotspot-musl.patch" "${S}/patches" || die - ln -s "${FILESDIR}/${PN}-os_linux-remove-glibc-dependencies.patch" "${S}/patches" || die -} - -src_prepare() { - default - sed -i 's/REQUIRED_FREETYPE_VERSION = 2.2.1/REQUIRED_FREETYPE_VERSION = 2.10.1/' patches/boot/revert-6973616.patch - - #eapply "${FILESDIR}/${PN}${SLOT}-disable-systemtap.patch" - eapply "${FILESDIR}/icedtea-2.6.28_remove_brace_expansion.diff" - eautoreconf -} - -src_configure() { - export ANT_HOME="${EPREFIX}/usr/share/ant" - - # For bootstrap builds as the sandbox control file might not yet exist. - addpredict /proc/self/coredump_filter - - # icedtea doesn't like some locales. #330433 #389717 - export LANG="C" LC_ALL="C" - - local cacao_config config hotspot_port jamvm_config use_cacao use_jamvm use_zero zero_config - local vm=$(java-pkg_get-current-vm) - - # Export patches for configure - DISTRIBUTION_PATCHES="" - - if use jamvm; then - DISTRIBUTION_PATCHES+="patches/jamvm/jamvm-1.6.0-aarch64-support.patch " - DISTRIBUTION_PATCHES+="patches/jamvm/jamvm-1.6.0-opcode-guard.patch " - fi - - DISTRIBUTION_PATCHES+="patches/${PN}-jdk-musl.patch " - DISTRIBUTION_PATCHES+="patches/${PN}-jdk-no-soname.patch " - DISTRIBUTION_PATCHES+="patches/${PN}-jdk-fix-build.patch " - DISTRIBUTION_PATCHES+="patches/${PN}-jdk-execinfo.patch " - DISTRIBUTION_PATCHES+="patches/${PN}-hotspot-stop-using-obsolete-isnanf.patch " - DISTRIBUTION_PATCHES+="patches/${PN}${SLOT}-jdk-freetype.patch " - DISTRIBUTION_PATCHES+="patches/${PN}${SLOT}-jdk-fcommon.patch " - DISTRIBUTION_PATCHES+="patches/${PN}${SLOT}-hotspot-pointer-comparison.patch " - DISTRIBUTION_PATCHES+="patches/${PN}${SLOT}-hotspot-miscompile.patch " - DISTRIBUTION_PATCHES+="patches/${PN}-hotspot-musl.patch " - DISTRIBUTION_PATCHES+="patches/${PN}-os_linux-remove-glibc-dependencies.patch " - - export DISTRIBUTION_PATCHES - - # gcj-jdk ensures ecj is present. - if use jbootstrap || has "${vm}" jamvm-2.0-3; then - use jbootstrap || einfo "bootstrap is necessary when building with ${vm}, ignoring USE=\"-jbootstrap\"" - config+=" --enable-bootstrap" - else - config+=" --disable-bootstrap" - fi - - # Use Zero if requested - if use zero; then - use_zero="yes" - fi - - # Use JamVM if requested - if use jamvm; then - use_jamvm="yes" - fi - - # Use CACAO if requested - if use cacao; then - use_cacao="yes" - fi - - # Are we on a architecture with a HotSpot port? - # In-tree JIT ports are available for amd64, arm, arm64, ppc64 (be&le), SPARC and x86. - if { use amd64 || use arm || use ppc64 || use sparc || use x86; }; then - hotspot_port="yes" - fi - - # Always use HotSpot as the primary VM if available. #389521 #368669 #357633 ... - # Otherwise use CACAO on ppc and Zero on anything else - if test "x${hotspot_port}" != "xyes"; then - if use ppc; then - use_cacao="yes" - else - use_zero="yes" - fi - fi - - if test "x${use_jamvm}" = "xyes"; then - jamvm_config="--enable-jamvm" - fi - - # Turn on CACAO if needed (non-HS archs) or requested - if test "x${use_cacao}" = "xyes"; then - if test "x${hotspot_port}" = "xyes"; then - ewarn 'Enabling CACAO on an architecture with HotSpot support; issues may result.' - ewarn 'If so, please rebuild with USE="-cacao"' - fi - cacao_config="--enable-cacao" - fi - - # Turn on Zero if needed (non-HS/CACAO archs) or requested - if test "x${use_zero}" = "xyes"; then - if test "x${hotspot_port}" = "xyes"; then - ewarn 'Enabling Zero on an architecture with HotSpot support; performance will be significantly reduced.' - fi - zero_config="--enable-zero" - fi - - config+=" --with-parallel-jobs=$(makeopts_jobs)" - config+=" --without-rhino" - - unset JAVA_HOME JDK_HOME CLASSPATH JAVAC JAVACFLAGS - - econf ${config} \ - --with-openjdk-src-zip="${DISTDIR}/${OPENJDK_GENTOO_TARBALL}" \ - --with-corba-src-zip="${DISTDIR}/${CORBA_GENTOO_TARBALL}" \ - --with-jaxp-src-zip="${DISTDIR}/${JAXP_GENTOO_TARBALL}" \ - --with-jaxws-src-zip="${DISTDIR}/${JAXWS_GENTOO_TARBALL}" \ - --with-jdk-src-zip="${DISTDIR}/${JDK_GENTOO_TARBALL}" \ - --with-hotspot-src-zip="${DISTDIR}/${HOTSPOT_GENTOO_TARBALL}" \ - --with-langtools-src-zip="${DISTDIR}/${LANGTOOLS_GENTOO_TARBALL}" \ - --with-cacao-src-zip="${DISTDIR}/${CACAO_GENTOO_TARBALL}" \ - --with-jamvm-src-zip="${DISTDIR}/${JAMVM_GENTOO_TARBALL}" \ - --with-jdk-home="$(java-config -O)" \ - --prefix="${EPREFIX}/usr/$(get_libdir)/icedtea${SLOT}" \ - --mandir="${EPREFIX}/usr/$(get_libdir)/icedtea${SLOT}/man" \ - --docdir="${EPREFIX}/usr/share/doc/${PF}" \ - --htmldir="${EPREFIX}/usr/share/doc/${PF}/html" \ - --with-pkgversion="Gentoo ${PF}" \ - --disable-downloading --disable-Werror --disable-tests \ - --enable-system-lcms --enable-system-jpeg \ - --enable-system-zlib --disable-systemtap-tests \ - --enable-improved-font-rendering \ - $(use_enable !headless-awt system-gif) \ - $(use_enable !headless-awt system-png) \ - $(use_enable !debug optimizations) \ - $(use_enable cups system-cups) \ - $(use_enable doc docs) \ - $(use_enable gtk system-gtk) \ - $(use_enable kerberos system-kerberos) \ - $(use_enable nss) \ - $(use_with pax_kernel pax "${EPREFIX}/usr/sbin/paxmark.sh") \ - $(use_enable sctp system-sctp) \ - $(use_enable smartcard system-pcsc) \ - ${zero_config} ${cacao_config} ${jamvm_config} -} - -src_compile() { - # Would use GENTOO_VM otherwise. - export ANT_RESPECT_JAVA_HOME=TRUE - - # With ant >=1.8.2 all required tasks are part of ant-core - export ANT_TASKS="none" - - export DISABLE_HOTSPOT_OS_VERSION_CHECK=ok - - emake -} - -src_test() { - # Use Xvfb for tests - unset DISPLAY - - Xemake check -} - -src_install() { - default - - local dest="${EPREFIX}/usr/$(get_libdir)/icedtea${SLOT}" - local ddest="${ED}${dest#/}" - - if ! use alsa; then - rm -v "${ddest}"/jre/lib/$(get_system_arch)/libjsoundalsa.* || die - fi - - if use headless-awt; then - rm -vr "${ddest}"/jre/lib/$(get_system_arch)/{xawt,libsplashscreen.*,libjavagtk.*} \ - "${ddest}"/{,jre/}bin/policytool "${ddest}"/bin/appletviewer || die - fi - - if ! use examples; then - rm -r "${ddest}"/demo "${ddest}"/sample || die - fi - - if ! use source; then - rm -v "${ddest}"/src.zip || die - fi - - dosym /usr/share/doc/${PF} /usr/share/doc/${PN}${SLOT} - - # Fix the permissions. - find "${ddest}" \! -type l \( -perm /111 -exec chmod 755 {} \; -o -exec chmod 644 {} \; \) || die - - # We need to generate keystore - bug #273306 - einfo "Generating cacerts file from certificates in ${EPREFIX}/usr/share/ca-certificates/" - mkdir "${T}/certgen" && cd "${T}/certgen" || die - cp "${FILESDIR}/generate-cacerts.pl" . && chmod +x generate-cacerts.pl || die - for c in "${EPREFIX}"/usr/share/ca-certificates/*/*.crt; do - openssl x509 -text -in "${c}" >> all.crt || die - done - ./generate-cacerts.pl "${ddest}/bin/keytool" all.crt || die - cp -vRP cacerts "${ddest}/jre/lib/security/" || die - chmod 644 "${ddest}/jre/lib/security/cacerts" || die - - java-vm_install-env "${FILESDIR}/icedtea.env.sh" - java-vm_sandbox-predict /proc/self/coredump_filter -} - -pkg_preinst() { - if has_version "<=dev-java/icedtea-7.2.0:7"; then - # portage would preserve the symlink otherwise, related to bug #384397 - rm -f "${EROOT}/usr/lib/jvm/icedtea7" - elog "To unify the layout and simplify scripts, the identifier of Icedtea-7*" - elog "has changed from 'icedtea7' to 'icedtea-7' starting from version 7.2.0-r1" - elog "If you had icedtea7 as system VM, the change should be automatic, however" - elog "build VM settings in /etc/java-config-2/build/jdk.conf are not changed" - elog "and the same holds for any user VM settings. Sorry for the inconvenience." - fi - - gnome2_icon_savelist; -} - -pkg_postinst() { gnome2_icon_cache_update; } -pkg_postrm() { gnome2_icon_cache_update; }