diff options
author | Eli Schwartz <eschwartz@gentoo.org> | 2024-09-25 13:51:52 -0400 |
---|---|---|
committer | Eli Schwartz <eschwartz@gentoo.org> | 2024-09-25 14:22:23 -0400 |
commit | 58128e2701881192e5d551d6b1d27bac3f6cde58 (patch) | |
tree | 172dace7b243dd7d5ab31e136645032c9aa86a76 /eclass | |
parent | dev-cpp/xsimd: fix python version for doc (diff) | |
download | gentoo-58128e2701881192e5d551d6b1d27bac3f6cde58.tar.gz gentoo-58128e2701881192e5d551d6b1d27bac3f6cde58.tar.bz2 gentoo-58128e2701881192e5d551d6b1d27bac3f6cde58.zip |
toolchain.eclass: ban the use of rlibtool
dev-build/slibtool provides an alternative implementation of libtool
which is intended to hook itself into and replace the ltmain.sh-based
./libtool shell scripts installed into an autotools build system.
It has some interesting quirks. In particular, it takes the idea of
"packagers don't want to install libtool archives for random libraries
because nobody uses them and pkg-config is better" and runs with it. It
runs quite far with it, as it doesn't install them at all without a new
flag passed to slibtool. This is redundant with our existing approach of
deleting them in src_install when we know they are useless, and is
downright broken in cases such as GCC, where the libtool archives are
load-bearing and the resultant compiler is, in their absence,
nonfunctional.
slibtool supports a variety of wrappers to enable reasonable
functionality which it by default disabled. The official recommendation
is you are supposed to use "rlibtool" to replace ./libtool as it
performs heuristics based on the generated config. But we actually need
"rclibtool", which both respects the generated config and also generates
the *.la archives and leaves it up to ebuilds to decide whether they
should be removed.
Raise a fatal error if the user has misconfigured slibtool. This
prevents the user from building a broken and malformed GCC.
Closes: https://bugs.gentoo.org/932245
Closes: https://bugs.gentoo.org/924150
Closes: https://bugs.gentoo.org/931268
Closes: https://bugs.gentoo.org/931279
Signed-off-by: Eli Schwartz <eschwartz@gentoo.org>
Reviewed-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'eclass')
-rw-r--r-- | eclass/toolchain.eclass | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass index 0557db974035..53b64a470e37 100644 --- a/eclass/toolchain.eclass +++ b/eclass/toolchain.eclass @@ -574,6 +574,9 @@ toolchain_pkg_setup() { # bug #265283 unset LANGUAGES + # bug #932245 + [[ ${LIBTOOL} = rlibtool ]] && die "\$LIBTOOL is using rlibtool from dev-build/slibtool. You must not use rlibtool, only rclibtool." + # See https://www.gnu.org/software/make/manual/html_node/Parallel-Output.html # Avoid really confusing logs from subconfigure spam, makes logs far # more legible. |