commit: 652b5e27bb7c15574678d9cd837f6e24639e713b Author: Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org> AuthorDate: Fri Feb 9 12:16:31 2024 +0000 Commit: Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org> CommitDate: Fri Feb 9 12:16:31 2024 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=652b5e27
sys-apps/baselayout: Add bugfix for riscv multilib stage builds Signed-off-by: Andreas K. Hüttel <dilfridge <AT> gentoo.org> ...elayout-9999.ebuild => baselayout-2.14-r3.ebuild} | 20 ++++++++++++++++---- sys-apps/baselayout/baselayout-9999.ebuild | 18 +++++++++++++++--- 2 files changed, 31 insertions(+), 7 deletions(-) diff --git a/sys-apps/baselayout/baselayout-9999.ebuild b/sys-apps/baselayout/baselayout-2.14-r3.ebuild similarity index 95% copy from sys-apps/baselayout/baselayout-9999.ebuild copy to sys-apps/baselayout/baselayout-2.14-r3.ebuild index 76beeff5aac8..820c4f714c44 100644 --- a/sys-apps/baselayout/baselayout-9999.ebuild +++ b/sys-apps/baselayout/baselayout-2.14-r3.ebuild @@ -12,7 +12,7 @@ if [[ ${PV} = 9999 ]]; then inherit git-r3 else SRC_URI="https://gitweb.gentoo.org/proj/${PN}.git/snapshot/${P}.tar.bz2" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + KEYWORDS="~riscv" fi LICENSE="GPL-2" @@ -67,11 +67,23 @@ multilib_layout() { continue fi if ! use split-usr && [[ ${prefix} = ${EROOT}/ ]]; then + # for the special case of riscv multilib, we drop the + # second part of two-component libdirs, e.g. lib64/lp64 libdir="${libdir%%/*}" dir="${prefix}${libdir}" - einfo "symlinking ${dir} to usr/${libdir}" - ln -s usr/${libdir} ${dir} || - die "Unable to make ${dir} symlink" + if [[ -h "${dir}" ]] ; then + if use riscv ; then + # with riscv we get now double entries so we + # need to ignore already existing symlinks + einfo "symlink ${dir} already exists (riscv)" + else + die "symlink ${dir} already exists" + fi + else + einfo "symlinking ${dir} to usr/${libdir}" + ln -s usr/${libdir} ${dir} || + die "Unable to make ${dir} symlink" + fi else einfo "creating directory ${dir}" mkdir -p "${dir}" || diff --git a/sys-apps/baselayout/baselayout-9999.ebuild b/sys-apps/baselayout/baselayout-9999.ebuild index 76beeff5aac8..8dfcf1d42876 100644 --- a/sys-apps/baselayout/baselayout-9999.ebuild +++ b/sys-apps/baselayout/baselayout-9999.ebuild @@ -67,11 +67,23 @@ multilib_layout() { continue fi if ! use split-usr && [[ ${prefix} = ${EROOT}/ ]]; then + # for the special case of riscv multilib, we drop the + # second part of two-component libdirs, e.g. lib64/lp64 libdir="${libdir%%/*}" dir="${prefix}${libdir}" - einfo "symlinking ${dir} to usr/${libdir}" - ln -s usr/${libdir} ${dir} || - die "Unable to make ${dir} symlink" + if [[ -h "${dir}" ]] ; then + if use riscv ; then + # with riscv we get now double entries so we + # need to ignore already existing symlinks + einfo "symlink ${dir} already exists (riscv)" + else + die "symlink ${dir} already exists" + fi + else + einfo "symlinking ${dir} to usr/${libdir}" + ln -s usr/${libdir} ${dir} || + die "Unable to make ${dir} symlink" + fi else einfo "creating directory ${dir}" mkdir -p "${dir}" ||