eclass/toolchain.eclass: mask LIBPATH for cross-case, bug #692844
authorSergei Trofimovich <slyfox@gentoo.org>
Sun, 25 Aug 2019 09:23:54 +0000 (10:23 +0100)
committerSergei Trofimovich <slyfox@gentoo.org>
Sun, 25 Aug 2019 09:40:18 +0000 (10:40 +0100)
/usr/lib/gcc/${CTARGET}/${GCC_CONFIG_VER} contains libraries
destined to be used by ${CTARGET}. revdep-rebuild complains
about missing dependencies against them as we don't populate
LDPATH (or anything else) for them.

The change populates /etc/revdep-rebuild/05cross-${CTARGET}-${GCC_CONFIG_VER}
with a single entry:
    SEARCH_DIRS_MASK="/usr/lib/gcc/${CTARGET}/${GCC_CONFIG_VER}"

crossdev will still own root's SEARCH_DIRS_MASK="/usr/${CTARGET}".

Reported-by: crocket
Closes: https://bugs.gentoo.org/692844
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
eclass/toolchain.eclass

index 12b86214a055d78626e63054dc0eded735b318a3..156ec3d0cf88ba8a2c37842afa95157cc73ed45f 100644 (file)
@@ -1818,6 +1818,7 @@ toolchain_src_install() {
 
        dodir /etc/env.d/gcc
        create_gcc_env_entry
+       create_revdep_rebuild_entry
 
        # Setup the gcc_env_entry for hardened gcc 4 with minispecs
        want_minispecs && copy_minispecs_gcc_specs
@@ -2138,6 +2139,20 @@ create_gcc_env_entry() {
        EOF
 }
 
+create_revdep_rebuild_entry() {
+       dodir /etc/revdep-rebuild
+       local revdep_rebuild_base="/etc/revdep-rebuild/05cross-${CTARGET}-${GCC_CONFIG_VER}"
+       local revdep_rebuild_file="${ED}${revdep_rebuild_base}"
+
+       is_crosscompile || return 0
+
+       cat <<-EOF > ${revdep_rebuild_file}
+       # Generated by ${CATEGORY}/${PF}
+       # Ignore libraries built for ${CTARGET}, https://bugs.gentoo.org/692844.
+       SEARCH_DIRS_MASK="${LIBPATH}"
+       EOF
+}
+
 copy_minispecs_gcc_specs() {
        # on gcc 6 we don't need minispecs
        if tc_version_is_at_least 6.0 ; then