When upgrading to clang-13.0.1 and llvm-13.0.1, compiler-rt-13.0.1 is pulled in as a dependency. This has a surprising and unwanted requirement on a machine built with ABI_X86="64": # required by sys-libs/compiler-rt-sanitizers-13.0.1::gentoo # required by sys-devel/clang-runtime-13.0.1::gentoo[sanitize,compiler-rt] # required by sys-devel/clang-13.0.1::gentoo # required by sys-devel/clang-common-13.0.1::gentoo >=virtual/libcrypt-2 abi_x86_32 # required by virtual/libcrypt-2::gentoo # required by sys-libs/compiler-rt-sanitizers-13.0.1::gentoo # required by sys-devel/clang-runtime-13.0.1::gentoo[sanitize,compiler-rt] # required by sys-devel/clang-13.0.1::gentoo # required by sys-devel/clang-common-13.0.1::gentoo >=sys-libs/libxcrypt-4.4.27 abi_x86_32 The ebuild has this added since 13.0.0: + if use amd64; then + mycmakeargs+=( + -DCAN_TARGET_i386=$(usex abi_x86_32) + -DCAN_TARGET_x86_64=$(usex abi_x86_64) + ) + fi + Please remove this so no unnecessary 32bit libraries are required.
That fragment/hunk you highlight would not be responsible for a dependency change at all. It just affects options passed to the build system. emerge -p -uvDU @world output would be helpful to understand why it's enabled for Clang LLVM which then drags in the other deps. --autounmask=n may give more helpful output too. In any case, please give more output and information.
Ah, I see we have this in compiler-rt-sanitizers: >IUSE="+abi_x86_32 abi_x86_64 +clang debug test"
(In reply to Sam James from comment #2) > Ah, I see we have this in compiler-rt-sanitizers: > >IUSE="+abi_x86_32 abi_x86_64 +clang debug test" commit 1b8078187d4d85e5f5a88f80b665051939dd48a3 Author: Michał Górny <mgorny@gentoo.org> Date: Sat Dec 4 14:24:29 2021 +0100 sys-libs/compiler-rt-sanitizers: Inline ABI_X86 flags to fix non-x86 Inline ABI_X86 flags instead of using multilib-build, as the latter injects a REQUIRED_USE constraint that is impossible to satisfy on non-x86 architectures. Signed-off-by: Michał Górny <mgorny@gentoo.org> commit 3cd6d3273c98da84571084ce2e814c2bbb2d6bb3 Author: Michał Górny <mgorny@gentoo.org> Date: Fri Dec 3 19:06:10 2021 +0100 sys-libs/compiler-rt-sanitizers: Add ABI_X86 flags Signed-off-by: Michał Górny <mgorny@gentoo.org> ... then ... $ grep -rsin "abi_x86" profiles/ | grep clang profiles/arch/amd64/package.use:6:sys-devel/clang-runtime abi_x86_32 ... then ... # Theo Anderson <telans@posteo.de> (2021-03-06) # Enable 32-bit clang runtime to ease -m32 builds with non-GCC runtime sys-devel/clang-runtime abi_x86_32 sys-libs/libcxxabi abi_x86_32 sys-libs/libcxx abi_x86_32 sys-libs/libomp abi_x86_32 sys-libs/llvm-libunwind abi_x86_32 .... then ... commit d10cdcf53d0f254880621200ec882af96c59914e Author: Theo Anderson <telans@posteo.de> Date: Sat Mar 6 22:23:07 2021 +1300 profiles: enable abi_x86_32 clang-runtime & deps Enables compatability with -unwindlib=libunwind sys-devel/clang[default-compiler-rt] requires these for multilib builds Package-Manager: Portage-3.0.16, Repoman-3.0.2 Signed-off-by: Theo Anderson <telans@posteo.de> Signed-off-by: Michał Górny <mgorny@gentoo.org> - so nothing new, I don't think.
Ah. I didn't have a no-multilib profile selected. I see glibc is built 32bit. It would be nice if xcrypt defaulted to that if it's required.