java-vm-2.eclass: Make get_system_arch ABI-aware
authorJames Le Cuirot <chewi@gentoo.org>
Sun, 31 Jul 2016 21:59:57 +0000 (22:59 +0100)
committerJames Le Cuirot <chewi@gentoo.org>
Tue, 2 Aug 2016 22:34:20 +0000 (23:34 +0100)
The old version just sucked. Closes bug #159439.

eclass/java-vm-2.eclass

index c544191ffcf575343ac74d96b34cc13c1da09748..52f040e5a0ee752f2796b29cf87cf262e3dd9c45 100644 (file)
@@ -132,14 +132,29 @@ java_set_default_vm_() {
 # @FUNCTION: get_system_arch
 # @DESCRIPTION:
 # Get Java specific arch name.
+#
+# NOTE the mips and sparc values are best guesses. Oracle uses sparcv9
+# but does OpenJDK use sparc64? We don't support OpenJDK on sparc or any
+# JVM on mips though so it doesn't matter much.
 
 get_system_arch() {
-       local sarch
-       sarch=$(echo ${ARCH} | sed -e s/[i]*.86/i386/ -e s/x86_64/amd64/ -e s/sun4u/sparc/ -e s/sparc64/sparc/ -e s/arm.*/arm/ -e s/sa110/arm/)
-       if [ -z "${sarch}" ]; then
-               sarch=$(uname -m | sed -e s/[i]*.86/i386/ -e s/x86_64/amd64/ -e s/sun4u/sparc/ -e s/sparc64/sparc/ -e s/arm.*/arm/ -e s/sa110/arm/)
-       fi
-       echo ${sarch}
+       local abi=${1-${ABI}}
+
+       case $(get_abi_CHOST ${abi}) in
+               mips*l*) echo mipsel ;;
+               mips*) echo mips ;;
+               ppc64le*) echo ppc64le ;;
+               *)
+                       case ${abi} in
+                               *_fbsd) get_system_arch ${abi%_fbsd} ;;
+                               arm64) echo aarch64 ;;
+                               hppa) echo parisc ;;
+                               sparc32) echo sparc ;;
+                               sparc64) echo sparcv9 ;;
+                               x86*) echo i386 ;;
+                               *) echo ${abi} ;;
+                       esac ;;
+       esac
 }