commit:     d258a6ab040a704adae2c1a6024b5cf2240865a5
Author:     Eli Schwartz <eschwartz93 <AT> gmail <DOT> com>
AuthorDate: Tue Mar 12 03:09:40 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Mar 12 03:30:49 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d258a6ab

dev-libs/libtecla: mark as LTO-unsafe

Actually, it doesn't use the compiler to link its shared libraries, it
uses $LD directly. Totally broken. The resulting shared library is LTO
bytecode linked without a bytecode handler, i.e. it's not really a real
library. Everything then explodes.

Closes: https://bugs.gentoo.org/772014
Signed-off-by: Eli Schwartz <eschwartz93 <AT> gmail.com>
Signed-off-by: Sam James <sam <AT> gentoo.org>

 dev-libs/libtecla/libtecla-1.6.3-r1.ebuild | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/dev-libs/libtecla/libtecla-1.6.3-r1.ebuild 
b/dev-libs/libtecla/libtecla-1.6.3-r1.ebuild
index d0214a052aab..a61d52f0bee1 100644
--- a/dev-libs/libtecla/libtecla-1.6.3-r1.ebuild
+++ b/dev-libs/libtecla/libtecla-1.6.3-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=8
@@ -33,6 +33,20 @@ src_prepare() {
        eautoreconf
 }
 
+src_configure() {
+       # ld: <artificial>:(.text.startup+0x6c): undefined reference to 
`libtecla_version'
+       #
+       # For some mysterious reason this is running $LD directly to link the
+       # shared library rather than use the compiler as the linker driver. As a
+       # result -flto is effectively a no-op *at link time* and the shared 
library
+       # contains... nothing. Because it didn't process the bytecode. Of 
course,
+       # nothing can then link to it.
+       #
+       # https://bugs.gentoo.org/772014
+       filter-lto
+       default
+}
+
 src_compile() {
        emake \
                OPT="" \

Reply via email to