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