diff options
author | Sergei Trofimovich <slyfox@gentoo.org> | 2020-06-19 19:15:21 +0100 |
---|---|---|
committer | Sergei Trofimovich <slyfox@gentoo.org> | 2020-06-19 21:52:43 +0100 |
commit | 92e383747ffc633ff6e85a02bf8cdb856eb1bcdc (patch) | |
tree | 56e3a5747be4479254f44e7e932eab6604e47c78 /eclass | |
parent | mail-client/neomutt: Version bump to 2020-06-19 (diff) | |
download | gentoo-92e383747ffc633ff6e85a02bf8cdb856eb1bcdc.tar.gz gentoo-92e383747ffc633ff6e85a02bf8cdb856eb1bcdc.tar.bz2 gentoo-92e383747ffc633ff6e85a02bf8cdb856eb1bcdc.zip |
toolchain.eclass: drop fix_libtool_files.sh
fixlafiles.awk can mangle two things in .la fils:
1. patch reference 'from .../libstdc++.la' to '-lstdc++'
2. change ${CHOST} when user switches CHOST and rebuilds the system
[1.] is not relevant since gcc-4 in Gentoo where we started deleting
libstdc++.la on gcc installation. Nothing should embed libstdc++.la
paths anymore.
[2.] is a rare one-off step that has a lot more caveats than just .la
file patching.
Generally .la files are tracked by package manager and should not be
changed after they are installed on disk. 'fix_libtool_files.sh' breaks
that invariant.
On top of that portage's FEATURES=fixlafiles removes nested .la files
references.
Let's remove 'fix_libtool_files.sh' and 'fixlafiles.awk' completely.
If really needed we can reintroduce it as a separate tool.
Closes: https://bugs.gentoo.org/722554
Closes: https://bugs.gentoo.org/657330
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Diffstat (limited to 'eclass')
-rw-r--r-- | eclass/toolchain.eclass | 40 |
1 files changed, 9 insertions, 31 deletions
diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass index 1e164957b2b8..8384e565d867 100644 --- a/eclass/toolchain.eclass +++ b/eclass/toolchain.eclass @@ -1914,13 +1914,8 @@ toolchain_src_install() { # prune empty dirs left behind find "${ED}" -depth -type d -delete 2>/dev/null - # Rather install the script, else portage with changing $FILESDIR - # between binary and source package borks things .... if ! is_crosscompile && [[ ${PN} != "kgcc64" ]] ; then - insinto "${DATAPATH#${EPREFIX}}" - newins "$(prefixify_ro "${FILESDIR}"/awk/fixlafiles.awk-no_gcc_la)" fixlafiles.awk || die exeinto "${DATAPATH#${EPREFIX}}" - doexe "$(prefixify_ro "${FILESDIR}"/fix_libtool_files.sh)" || die doexe "${FILESDIR}"/c{89,99} || die fi @@ -2225,24 +2220,12 @@ toolchain_pkg_postinst() { fi if ! is_crosscompile && [[ ${PN} != "kgcc64" ]] ; then - echo - ewarn "If you have issues with packages unable to locate libstdc++.la," - ewarn "then try running 'fix_libtool_files.sh' on the old gcc versions." - echo - ewarn "You might want to review the GCC upgrade guide when moving between" - ewarn "major versions (like 4.2 to 4.3):" - ewarn "https://wiki.gentoo.org/wiki/Upgrading_GCC" - echo - - # Clean up old paths - rm -f "${EROOT%/}"/*/rcscripts/awk/fixlafiles.awk "${EROOT%/}"/sbin/fix_libtool_files.sh - rmdir "${EROOT%/}"/*/rcscripts{/awk,} 2>/dev/null - - mkdir -p "${EROOT%/}"/usr/{share/gcc-data,sbin,bin} - # DATAPATH has EPREFIX already, use ROOT with it - cp "${ROOT%/}${DATAPATH}"/fixlafiles.awk "${EROOT%/}"/usr/share/gcc-data/ || die - cp "${ROOT%/}${DATAPATH}"/fix_libtool_files.sh "${EROOT%/}"/usr/sbin/ || die + # gcc stopped installing .la files fixer in June 2020. + # Cleaning can be removed in June 2022. + rm -f "${EROOT%/}"/sbin/fix_libtool_files.sh + rm -f "${EROOT%/}"/usr/share/gcc-data/fixlafiles.awk + mkdir -p "${EROOT%/}"/usr/bin # Since these aren't critical files and portage sucks with # handling of binpkgs, don't require these to be found cp "${ROOT%/}${DATAPATH}"/c{89,99} "${EROOT%/}"/usr/bin/ 2>/dev/null @@ -2271,15 +2254,10 @@ toolchain_pkg_postrm() { return 0 fi - # ROOT isnt handled by the script - [[ ${ROOT%/} ]] && return 0 - - if [[ ! -e ${LIBPATH}/libstdc++.so ]] ; then - einfo "Running 'fix_libtool_files.sh ${GCC_RELEASE_VER}'" - fix_libtool_files.sh ${GCC_RELEASE_VER} - fi - - return 0 + # gcc stopped installing .la files fixer in June 2020. + # Cleaning can be removed in June 2022. + rm -f "${EROOT%/}"/sbin/fix_libtool_files.sh + rm -f "${EROOT%/}"/usr/share/gcc-data/fixlafiles.awk } do_gcc_config() { |