commit:     abdb7522fe5f609ecd70959b1a95e67e76daa351
Author:     Michal Rostecki <vadorovsky <AT> protonmail <DOT> com>
AuthorDate: Thu Jan  1 17:01:33 2026 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Jan  2 04:12:25 2026 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=abdb7522

llvm-runtimes/libcxx: Always place library symlinks in /usr/lib*, not /lib*

Executing `dolib.so` after `into /usr/${CTARGET}` results in the file
being placed in `/usr/${CTARGET}/lib(64)`. At the same time, CMake
installs all the library files in `/usr/${CTARGET}/usr/lib(64)`
(`usr/lib*`, not `lib*` inside the sysroot).

Given that crossdev creates split-usr environments, that results in the
`libc++_shared.so` symlink being broken - the library file it points to
is in a different directory.

Fix that by calling `into /usr/${CTARGET}/usr`, so the directory used
by `dolib` matches the directory with actual library artifacts.

Bug: https://bugs.gentoo.org/968255
Signed-off-by: Michal Rostecki <vadorovsky <AT> protonmail.com>
Part-of: https://github.com/gentoo/gentoo/pull/45221
Closes: https://github.com/gentoo/gentoo/pull/45221
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/libcxx/libcxx-19.1.7.ebuild             | 4 ++--
 llvm-runtimes/libcxx/libcxx-20.1.8-r1.ebuild          | 4 ++--
 llvm-runtimes/libcxx/libcxx-21.1.8.ebuild             | 4 ++--
 llvm-runtimes/libcxx/libcxx-22.0.0.9999.ebuild        | 4 ++--
 llvm-runtimes/libcxx/libcxx-22.0.0_pre20251127.ebuild | 4 ++--
 llvm-runtimes/libcxx/libcxx-22.0.0_pre20251223.ebuild | 4 ++--
 6 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/llvm-runtimes/libcxx/libcxx-19.1.7.ebuild 
b/llvm-runtimes/libcxx/libcxx-19.1.7.ebuild
index 3d25c65f44de..0e27be5e76cc 100644
--- a/llvm-runtimes/libcxx/libcxx-19.1.7.ebuild
+++ b/llvm-runtimes/libcxx/libcxx-19.1.7.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=8
@@ -181,7 +181,7 @@ multilib_src_install() {
        # since we've replaced libc++.{a,so} with ldscripts, now we have to
        # install the extra symlinks
        if [[ ${CHOST} != *-darwin* ]] ; then
-               is_crosspkg && into /usr/${CTARGET}
+               is_crosspkg && into /usr/${CTARGET}/usr
                dolib.so lib/libc++_shared.so
                use static-libs && dolib.a lib/libc++_static.a
        fi

diff --git a/llvm-runtimes/libcxx/libcxx-20.1.8-r1.ebuild 
b/llvm-runtimes/libcxx/libcxx-20.1.8-r1.ebuild
index 82dd642d2abc..e0e4478f8d0d 100644
--- a/llvm-runtimes/libcxx/libcxx-20.1.8-r1.ebuild
+++ b/llvm-runtimes/libcxx/libcxx-20.1.8-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=8
@@ -190,7 +190,7 @@ multilib_src_install() {
        # since we've replaced libc++.{a,so} with ldscripts, now we have to
        # install the extra symlinks
        if [[ ${CHOST} != *-darwin* ]] ; then
-               is_crosspkg && into /usr/${CTARGET}
+               is_crosspkg && into /usr/${CTARGET}/usr
                dolib.so lib/libc++_shared.so
                use static-libs && dolib.a lib/libc++_static.a
        fi

diff --git a/llvm-runtimes/libcxx/libcxx-21.1.8.ebuild 
b/llvm-runtimes/libcxx/libcxx-21.1.8.ebuild
index 506916d888fa..4ca019f00c96 100644
--- a/llvm-runtimes/libcxx/libcxx-21.1.8.ebuild
+++ b/llvm-runtimes/libcxx/libcxx-21.1.8.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=8
@@ -190,7 +190,7 @@ multilib_src_install() {
        # since we've replaced libc++.{a,so} with ldscripts, now we have to
        # install the extra symlinks
        if [[ ${CHOST} != *-darwin* ]] ; then
-               is_crosspkg && into /usr/${CTARGET}
+               is_crosspkg && into /usr/${CTARGET}/usr
                dolib.so lib/libc++_shared.so
                use static-libs && dolib.a lib/libc++_static.a
        fi

diff --git a/llvm-runtimes/libcxx/libcxx-22.0.0.9999.ebuild 
b/llvm-runtimes/libcxx/libcxx-22.0.0.9999.ebuild
index c72ef6e7c89c..7d224001ae1b 100644
--- a/llvm-runtimes/libcxx/libcxx-22.0.0.9999.ebuild
+++ b/llvm-runtimes/libcxx/libcxx-22.0.0.9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=8
@@ -196,7 +196,7 @@ multilib_src_install() {
        # install the extra symlinks
        if [[ ${CHOST} != *-darwin* ]] ; then
                local libdir=$(get_libdir)
-               is_crosspkg && into /usr/${CTARGET}
+               is_crosspkg && into /usr/${CTARGET}/usr
                dolib.so "${libdir}"/libc++_shared.so
                use static-libs && dolib.a "${libdir}"/libc++_static.a
        fi

diff --git a/llvm-runtimes/libcxx/libcxx-22.0.0_pre20251127.ebuild 
b/llvm-runtimes/libcxx/libcxx-22.0.0_pre20251127.ebuild
index 9825200fd784..62e18ee138be 100644
--- a/llvm-runtimes/libcxx/libcxx-22.0.0_pre20251127.ebuild
+++ b/llvm-runtimes/libcxx/libcxx-22.0.0_pre20251127.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=8
@@ -196,7 +196,7 @@ multilib_src_install() {
        # install the extra symlinks
        if [[ ${CHOST} != *-darwin* ]] ; then
                local libdir=$(get_libdir)
-               is_crosspkg && into /usr/${CTARGET}
+               is_crosspkg && into /usr/${CTARGET}/usr
                dolib.so "${libdir}"/libc++_shared.so
                use static-libs && dolib.a "${libdir}"/libc++_static.a
        fi

diff --git a/llvm-runtimes/libcxx/libcxx-22.0.0_pre20251223.ebuild 
b/llvm-runtimes/libcxx/libcxx-22.0.0_pre20251223.ebuild
index c72ef6e7c89c..7d224001ae1b 100644
--- a/llvm-runtimes/libcxx/libcxx-22.0.0_pre20251223.ebuild
+++ b/llvm-runtimes/libcxx/libcxx-22.0.0_pre20251223.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=8
@@ -196,7 +196,7 @@ multilib_src_install() {
        # install the extra symlinks
        if [[ ${CHOST} != *-darwin* ]] ; then
                local libdir=$(get_libdir)
-               is_crosspkg && into /usr/${CTARGET}
+               is_crosspkg && into /usr/${CTARGET}/usr
                dolib.so "${libdir}"/libc++_shared.so
                use static-libs && dolib.a "${libdir}"/libc++_static.a
        fi

Reply via email to