add support for s390x multilib
authorMike Frysinger <vapier@gentoo.org>
Wed, 12 Oct 2005 22:39:57 +0000 (22:39 +0000)
committerMike Frysinger <vapier@gentoo.org>
Wed, 12 Oct 2005 22:39:57 +0000 (22:39 +0000)
eclass/multilib.eclass
eclass/toolchain-binutils.eclass
eclass/toolchain.eclass

index 160142ad2a40f45fbf4449b2f7497dad6d13b52e..c041a5df74e711c9bcb89ef914cb6e695a91d70a 100644 (file)
@@ -1,6 +1,6 @@
 # Copyright 1999-2004 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/multilib.eclass,v 1.42 2005/10/10 21:18:15 vapier Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/multilib.eclass,v 1.43 2005/10/12 22:39:07 vapier Exp $
 #
 # Author: Jeremy Huddleston <eradicator@gentoo.org>
 #
@@ -609,6 +609,22 @@ multilib_env() {
                        export MULTILIB_ABIS="ppc64 ppc"
                        export DEFAULT_ABI="ppc64"
                ;;
+               s390x*)
+                       export CFLAGS_s390=${CFLAGS_s390--m31} # the 31 is not a typo
+                       export CHOST_s390=${CTARGET/s390x/s390}
+                       export CTARGET_s390=${CHOST_s390}
+                       export CDEFINE_s390="!__s390x__"
+                       export LIBDIR_s390="lib"
+
+                       export CFLAGS_s390x=${CFLAGS_s390x--m64}
+                       export CHOST_s390x=${CTARGET}
+                       export CTARGET_s390x=${CHOST_s390x}
+                       export CDEFINE_s390x="__s390x__"
+                       export LIBDIR_s390x="lib64"
+
+                       export MULTILIB_ABIS="s390x s390"
+                       export DEFAULT_ABI="s390x"
+               ;;
                sparc64*)
                        export CFLAGS_sparc32=${CFLAGS_sparc32--m32}
                        export CHOST_sparc32=${CTARGET/sparc64/sparc}
index 6293ec7a432755210ac122fded49120c4df5c425..3139f3399365b3717f5f6918bc06979f9780c991 100644 (file)
@@ -1,6 +1,6 @@
 # Copyright 1999-2005 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/toolchain-binutils.eclass,v 1.45 2005/09/23 23:52:33 vapier Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/toolchain-binutils.eclass,v 1.46 2005/10/12 22:39:24 vapier Exp $
 
 # We install binutils into CTARGET-VERSION specific directories.  This lets
 # us easily merge multiple versions for multiple targets (if we wish) and
@@ -185,14 +185,18 @@ toolchain-binutils_src_install() {
        # we want to tell binutils-config that it's cool if
        # it generates multiple sets of binutil symlinks.
        # e.g. sparc gets {sparc,sparc64}-unknown-linux-gnu
-       local targ=${CTARGET/-*}
+       local targ=${CTARGET/-*} src="" dst=""
        local FAKE_TARGETS=${CTARGET}
        case ${targ} in
-               mips64*|powerpc64|sparc64*)
-                       FAKE_TARGETS="${FAKE_TARGETS} ${CTARGET/64-/-}";;
-               mips*|powerpc|sparc*)
-                       FAKE_TARGETS="${FAKE_TARGETS} ${CTARGET/-/64-}";;
+               mips*)    src="mips"    dst="mips64";;
+               powerpc*) src="powerpc" dst="powerpc64";;
+               s390*)    src="s390"    dst="s390x";;
+               sparc*)   src="sparc"   dst="sparc64";;
        esac
+       case ${targ} in
+               mips64*|powerpc64*|s390x*|sparc64*) targ=${src} src=${dst} dst=${targ};;
+       esac
+       [[ -n ${src}${dst} ]] && FAKE_TARGETS="${FAKE_TARGETS} ${CTARGET/${src}/${dst}}"
 
        # Generate an env.d entry for this binutils
        cd "${S}"
index 49c42652d0be35fdcad97942caf0d65ea6a8cc7b..4c413e1685f661599b3b94b78ce1ea5d50296516 100644 (file)
@@ -1,6 +1,6 @@
 # Copyright 1999-2005 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/toolchain.eclass,v 1.208 2005/10/11 23:53:59 eradicator Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/toolchain.eclass,v 1.209 2005/10/12 22:39:57 vapier Exp $
 
 HOMEPAGE="http://www.gnu.org/software/gcc/gcc.html"
 LICENSE="GPL-2 LGPL-2.1"
@@ -1343,7 +1343,7 @@ gcc_do_filter_flags() {
        strip-unsupported-flags
 
        # dont want to funk ourselves
-       filter-flags '-mabi*' -m32 -m64
+       filter-flags '-mabi*' -m31 -m32 -m64
 
        case ${GCC_BRANCH_VER} in
        3.2|3.3)
@@ -2132,11 +2132,8 @@ fix_libtool_libdir_paths() {
 
 is_multilib() {
        case ${CTARGET} in
-               *-uclibc) false ;;
-
-               x86_64*|mips64*|powerpc64*|sparc64*)
+               mips64*|powerpc64*|s390x*|sparc64*|x86_64*)
                        has_multilib_profile || use multilib ;;
-
                *)      false ;;
        esac
 }