On 8/22/23 12:03, Palmer Dabbelt wrote:
On Tue, 22 Aug 2023 10:39:38 PDT (-0700), Jeff Law wrote:
The docs seem to suggest that we should have a multarch-compatible
MULTILIB_OSDIRNAMES as we support both multilib and multiarch:
@code{MULTIARCH_DIRNAME} is not used for configurations that support
both multilib and multiarch. In that case, multiarch names are encoded
in @code{MULTILIB_OSDIRNAMES} instead.
It's not clear if "supports" there actually means "enabled", as IIUC
none of the distros actually ship multilib. So maybe this can't manifest and we
should fix the docs?
Debian explicitly disables multilibs for RISC-V, Ubuntu almost certainly
just follows that. Fedora and its relatives don't use multiarch.
Or maybe something like this just does it?
Maybe, but we'd really want/need to test it :-)
diff --git a/gcc/config/riscv/t-linux b/gcc/config/riscv/t-linux
index a6f64f88d25..00e382db0f8 100644
--- a/gcc/config/riscv/t-linux
+++ b/gcc/config/riscv/t-linux
@@ -1,5 +1,5 @@
# Only XLEN and ABI affect Linux multilib dir names, e.g.
/lib32/ilp32d/
MULTILIB_DIRNAMES := $(patsubst rv32%,lib32,$(patsubst
rv64%,lib64,$(MULTILIB_DIRNAMES)))
-MULTILIB_OSDIRNAMES := $(patsubst lib%,../lib%,$(MULTILIB_DIRNAMES))
+MULTILIB_OSDIRNAMES := $(patsubst lib64%:rv64%-linux-gnu,$(patsubst
lib32%:rv32%-linux-gnu,../lib32,$(MULTILIB_DIRNAMES)))
MULTIARCH_DIRNAME := $(call if_multiarch,$(firstword $(subst -,
,$(target)))-linux-gnu)
I have no idea how to test multiarch+multilib, though. Is there a way
to just autoconf error that out as unsupported until someone wants it?
I'm not sure either. It might be as simple as bootstrapping on a Debian
native with a small set of rv64 multilibs.
Jeff