x86_64-linux-musl targets do not support multilib layout as-is
and usually expects libdir=lib. glibc target usually uses libdir=lib64.

In https://bugs.gentoo.org/675954 (also touched on https://gcc.gnu.org/PR90077)
Gentoo discovered the following discrepancy when gcc is built with 
--disable-multilib:

1. --disable-multilib
  ../gcc/configure --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu 
--target=x86_64-gentoo-linux-musl --disable-multilib
  $ gcc/xgcc -B. -print-multi-os-directory
  ../lib64
Wouldn't it be reasonable to have '.' instead of '../lib64' here?

2. --disable-multilib --with-multilib-list=
  ../gcc/configure --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu 
--target=x86_64-gentoo-linux-musl --disable-multilib --with-multilib-list=
  $ gcc/xgcc -B. -print-multi-os-directory
  .

3. --disable-multilib --with-multilib-list=m64
  ../gcc/configure --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu 
--target=x86_64-gentoo-linux-musl --disable-multilib --with-multilib-list=m64
  $ gcc/xgcc -B. -print-multi-os-directory
  ../lib64

Currently Gentoo uses [3.] and experiences problems in 'meson'
build systems which extract libdir via 'gcc -print-multi-os-directory'
and observed "lib" != "lib64" mismatch.

I have a few questions:

Q1. Are all [1.]/[2.]/[3.] behaviors correct and expected? Should
  '--with-multilib-list=' (empty) be always accompanied with 
'--disable-multilib'
  to avoid multi-os-dir=../lib64? Or should gcc be tweaked to disallow
  contradicting cases like [3.]?

Q2. What is the best way for *-musl* targets to just default to 'lib'
  layout at least for explicit '--disable-multilib' case? Just advise users
  do [2.] or should gcc be tweaked?

Q3. Is '--disable-multilib --with-multilib-list=m64' a sensible configuration 
at all?
  Should it be an equivalent of '--disable-multilib --with-multilib-list='
  (multi-os-dir=.) with default m64 ABI?
  Or should it be an equivalent of '--enable-multilib'
  (multi-os-dir=../lib64) with default m64 ABI?

Thank you!

-- 

  Sergei

Reply via email to