commit:     2205e11665041841492696deb3ed5be99f5c805d
Author:     Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
AuthorDate: Thu Dec 23 21:38:28 2021 +0000
Commit:     Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
CommitDate: Sun Jan  2 11:18:58 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2205e116

multilib.eclass: adopt riscv conventions of the 20.0 profiles

Signed-off-by: Andreas K. Hüttel <dilfridge <AT> gentoo.org>
Closes: https://github.com/gentoo/gentoo/pull/23487
Bug: https://bugs.gentoo.org/797679

 eclass/multilib.eclass | 32 ++++++++++++++++++++++++--------
 1 file changed, 24 insertions(+), 8 deletions(-)

diff --git a/eclass/multilib.eclass b/eclass/multilib.eclass
index b14b0ef77857..fadd371f3ca7 100644
--- a/eclass/multilib.eclass
+++ b/eclass/multilib.eclass
@@ -412,7 +412,18 @@ multilib_env() {
                        : ${DEFAULT_ABI=ppc64}
                ;;
                riscv64*)
-                       export CFLAGS_lp64d=${CFLAGS_lp64d--mabi=lp64d 
-march=rv64imafdc}
+                       : ${MULTILIB_ABIS=lp64d lp64 ilp32d ilp32}
+                       : ${DEFAULT_ABI=lp64d}
+
+                       # the default abi is set to the 1-level libdir default
+
+                       local 
__libdir_riscvdefaultabi_variable="LIBDIR_${DEFAULT_ABI}"
+                       local 
__libdir_riscvdefaultabi=${!__libdir_riscvdefaultabi_variable}
+                       export 
${__libdir_riscvdefaultabi_variable}=${__libdir_riscvdefaultabi:-lib64}
+
+                       # all other abi are set to the 2-level libdir default
+
+                       export CFLAGS_lp64d=${CFLAGS_lp64d--mabi=lp64d 
-march=rv64gc}
                        export CHOST_lp64d=${CTARGET}
                        export CTARGET_lp64d=${CTARGET}
                        export LIBDIR_lp64d=${LIBDIR_lp64d-lib64/lp64d}
@@ -431,12 +442,20 @@ multilib_env() {
                        export CHOST_ilp32=${CTARGET/riscv64/riscv32}
                        export CTARGET_ilp32=${CTARGET/riscv64/riscv32}
                        export LIBDIR_ilp32=${LIBDIR_ilp32-lib32/ilp32}
-
-                       : ${MULTILIB_ABIS=lp64d lp64 ilp32d ilp32}
-                       : ${DEFAULT_ABI=lp64d}
                ;;
                riscv32*)
-                       export CFLAGS_ilp32d=${CFLAGS_ilp32d--mabi=ilp32d}
+                       : ${MULTILIB_ABIS=ilp32d ilp32}
+                       : ${DEFAULT_ABI=ilp32d}
+
+                       # the default abi is set to the 1-level libdir default
+
+                       local 
__libdir_riscvdefaultabi_variable="LIBDIR_${DEFAULT_ABI}"
+                       local 
__libdir_riscvdefaultabi=${!__libdir_riscvdefaultabi_variable}
+                       export 
${__libdir_riscvdefaultabi_variable}=${__libdir_riscvdefaultabi:-lib}
+
+                       # all other abi are set to the 2-level libdir default
+
+                       export CFLAGS_ilp32d=${CFLAGS_ilp32d--mabi=ilp32d 
-march=rv32imafdc}
                        export CHOST_ilp32d=${CTARGET}
                        export CTARGET_ilp32d=${CTARGET}
                        export LIBDIR_ilp32d=${LIBDIR_ilp32d-lib32/ilp32d}
@@ -445,9 +464,6 @@ multilib_env() {
                        export CHOST_ilp32=${CTARGET}
                        export CTARGET_ilp32=${CTARGET}
                        export LIBDIR_ilp32=${LIBDIR_ilp32-lib32/ilp32}
-
-                       : ${MULTILIB_ABIS=ilp32d ilp32}
-                       : ${DEFAULT_ABI=ilp32d}
                ;;
                s390x*)
                        export CFLAGS_s390=${CFLAGS_s390--m31} # the 31 is not 
a typo

Reply via email to