Drop toolchain-funcs.eclass's gen_usr_ldscript and along with it, inheriting
multilib. gen_usr_ldscript is itself deprecaated but the version in 
toolchain-funcs
doubly so, as it was replaced by the one in usr-ldscript.eclass.

Signed-off-by: Sam James <s...@gentoo.org>
---
Tested by `pkgcheck scan -k MissingInherits` and looking at gen_usr_ldscript
users for missing usr-ldscript.eclass inherits, though we're going to try
cull those too (most are already gone).

I plan on committing the series shortly.

 eclass/toolchain-funcs.eclass | 135 ----------------------------------
 1 file changed, 135 deletions(-)

diff --git a/eclass/toolchain-funcs.eclass b/eclass/toolchain-funcs.eclass
index 754d23f91c069..ae21a18a14c23 100644
--- a/eclass/toolchain-funcs.eclass
+++ b/eclass/toolchain-funcs.eclass
@@ -21,8 +21,6 @@ case ${EAPI} in
        *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
 esac
 
-inherit multilib
-
 # tc-getPROG <VAR [search vars]> <default> [tuple]
 _tc-getPROG() {
        local tuple=$1
@@ -1147,139 +1145,6 @@ tc-enables-ssp-all() {
        tc-cpp-is-true "defined(__SSP_ALL__)" ${CPPFLAGS} ${CFLAGS} ${CXXFLAGS}
 }
 
-
-# @FUNCTION: gen_usr_ldscript
-# @USAGE: [-a] <list of libs to create linker scripts for>
-# @DESCRIPTION:
-# This function is deprecated. Use the version from
-# usr-ldscript.eclass instead.
-gen_usr_ldscript() {
-       ewarn "${FUNCNAME}: Please migrate to usr-ldscript.eclass"
-
-       local lib libdir=$(get_libdir) output_format="" auto=false 
suffix=$(get_libname)
-
-       tc-is-static-only && return
-       use prefix && return
-
-       # We only care about stuffing / for the native ABI, bug #479448
-       if [[ $(type -t multilib_is_native_abi) == "function" ]] ; then
-               multilib_is_native_abi || return 0
-       fi
-
-       # Eventually we'd like to get rid of this func completely, bug #417451
-       case ${CTARGET:-${CHOST}} in
-               *-darwin*) ;;
-               *-android*) return 0 ;;
-               *linux*) use prefix && return 0 ;;
-               *) return 0 ;;
-       esac
-
-       # Just make sure it exists
-       dodir /usr/${libdir}
-
-       if [[ $1 == "-a" ]] ; then
-               auto=true
-               shift
-               dodir /${libdir}
-       fi
-
-       # OUTPUT_FORMAT gives hints to the linker as to what binary format
-       # is referenced ... makes multilib saner
-       local flags=( ${CFLAGS} ${LDFLAGS} -Wl,--verbose )
-       if $(tc-getLD) --version | grep -q 'GNU gold' ; then
-               # If they're using gold, manually invoke the old bfd, bug 
#487696
-               local d="${T}/bfd-linker"
-               mkdir -p "${d}"
-               ln -sf $(type -P ${CHOST}-ld.bfd) "${d}"/ld
-               flags+=( -B"${d}" )
-       fi
-       output_format=$($(tc-getCC) "${flags[@]}" 2>&1 | sed -n 
's/^OUTPUT_FORMAT("\([^"]*\)",.*/\1/p')
-       [[ -n ${output_format} ]] && output_format="OUTPUT_FORMAT ( 
${output_format} )"
-
-       for lib in "$@" ; do
-               local tlib
-               if ${auto} ; then
-                       lib="lib${lib}${suffix}"
-               else
-                       # Ensure /lib/${lib} exists to avoid dangling 
scripts/symlinks.
-                       # This especially is for AIX where $(get_libname) can 
return ".a",
-                       # so /lib/${lib} might be moved to /usr/lib/${lib} (by 
accident).
-                       [[ -r ${ED}/${libdir}/${lib} ]] || continue
-                       #TODO: better die here?
-               fi
-
-               case ${CTARGET:-${CHOST}} in
-               *-darwin*)
-                       if ${auto} ; then
-                               tlib=$(scanmacho -qF'%S#F' 
"${ED}"/usr/${libdir}/${lib})
-                       else
-                               tlib=$(scanmacho -qF'%S#F' 
"${ED}"/${libdir}/${lib})
-                       fi
-                       [[ -z ${tlib} ]] && die "unable to read install_name 
from ${lib}"
-                       tlib=${tlib##*/}
-
-                       if ${auto} ; then
-                               mv 
"${ED}"/usr/${libdir}/${lib%${suffix}}.*${suffix#.} "${ED}"/${libdir}/ || die
-                               # some install_names are funky: they encode a 
version
-                               if [[ ${tlib} != ${lib%${suffix}}.*${suffix#.} 
]] ; then
-                                       mv 
"${ED}"/usr/${libdir}/${tlib%${suffix}}.*${suffix#.} "${ED}"/${libdir}/ || die
-                               fi
-                               rm -f "${ED}"/${libdir}/${lib}
-                       fi
-
-                       # Mach-O files have an id, which is like a soname, it 
tells how
-                       # another object linking against this lib should 
reference it.
-                       # Since we moved the lib from usr/lib into lib this 
reference is
-                       # wrong.  Hence, we update it here.  We don't configure 
with
-                       # libdir=/lib because that messes up libtool files.
-                       # Make sure we don't lose the specific version, so just 
modify the
-                       # existing install_name
-                       if [[ ! -w "${ED}/${libdir}/${tlib}" ]] ; then
-                               chmod u+w "${ED}${libdir}/${tlib}" # needed to 
write to it
-                               local nowrite=yes
-                       fi
-                       install_name_tool \
-                               -id "${EPREFIX}"/${libdir}/${tlib} \
-                               "${ED}"/${libdir}/${tlib} || die 
"install_name_tool failed"
-                       [[ -n ${nowrite} ]] && chmod u-w 
"${ED}${libdir}/${tlib}"
-                       # Now as we don't use GNU binutils and our linker 
doesn't
-                       # understand linker scripts, just create a symlink.
-                       pushd "${ED}/usr/${libdir}" > /dev/null
-                       ln -snf "../../${libdir}/${tlib}" "${lib}"
-                       popd > /dev/null
-                       ;;
-               *)
-                       if ${auto} ; then
-                               tlib=$(scanelf -qF'%S#F' 
"${ED}"/usr/${libdir}/${lib})
-                               [[ -z ${tlib} ]] && die "unable to read SONAME 
from ${lib}"
-                               mv "${ED}"/usr/${libdir}/${lib}* 
"${ED}"/${libdir}/ || die
-                               # some SONAMEs are funky: they encode a version 
before the .so
-                               if [[ ${tlib} != ${lib}* ]] ; then
-                                       mv "${ED}"/usr/${libdir}/${tlib}* 
"${ED}"/${libdir}/ || die
-                               fi
-                               rm -f "${ED}"/${libdir}/${lib}
-                       else
-                               tlib=${lib}
-                       fi
-                       cat > "${ED}/usr/${libdir}/${lib}" <<-END_LDSCRIPT
-                       /* GNU ld script
-                          Since Gentoo has critical dynamic libraries in /lib, 
and the static versions
-                          in /usr/lib, we need to have a "fake" dynamic lib in 
/usr/lib, otherwise we
-                          run into linking problems.  This "fake" dynamic lib 
is a linker script that
-                          redirects the linker to the real lib.  And yes, this 
works in the cross-
-                          compiling scenario as the sysroot-ed linker will 
prepend the real path.
-
-                          See bug https://bugs.gentoo.org/4411 for more info.
-                        */
-                       ${output_format}
-                       GROUP ( ${EPREFIX}/${libdir}/${tlib} )
-                       END_LDSCRIPT
-                       ;;
-               esac
-               fperms a+x "/usr/${libdir}/${lib}" || die "could not change 
perms on ${lib}"
-       done
-}
-
 # @FUNCTION: tc-get-cxx-stdlib
 # @DESCRIPTION:
 # Attempt to identify the C++ standard library used by the compiler.
-- 
2.49.0


Reply via email to