LD Changes To Implicit DSO Linking Update
Roland Grunberg
rgrunber at redhat.com
Tue Feb 9 15:44:21 UTC 2010
>Most of the time upstream (myself included) just forgets to add a
>library at the end of the LDADD line, so all I had to do was send a
>trivial patch upstream to add "-lm" or something.
>See here for an example:
>http://bugzilla-attachments.gnome.org/attachment.cgi?id=152993
In fact most of the changes will probably involve a one line addition.
As an example, galculator-1.3.4-2.fc12.src.rpm was found to be failing
because libm is used but not explicitly linked.
RPM build errors:
/usr/bin/ld.bfd: math_functions.o: undefined reference to symbol 'sin@@GLIBC_2.0'
/usr/bin/ld.bfd: note: 'sin@@GLIBC_2.0' is defined in DSO /lib/libm.so.6 so try
adding it to the linker command line
/lib/libm.so.6: could not read symbols: Invalid operation
The following would fix this and allow the package to build.
--- configure.in.old 2010-02-09 10:25:30.000000000 -0500
+++ configure.in 2010-02-09 10:26:28.000000000 -0500
@@ -16,6 +16,7 @@
PKG_CHECK_MODULES(PACKAGE, [$pkg_modules])
AC_SUBST(PACKAGE_CFLAGS)
AC_SUBST(PACKAGE_LIBS)
+AC_CHECK_LIB(m, pow)
GETTEXT_PACKAGE=galculator
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [Name of gettext package])
There's an example at the bottom of the page :
https://fedoraproject.org/wiki/UnderstandingDSOLinkChange
demonstrating what a failed build message would look like,
and how to go about fixing the issue.
--
Roland Grunberg
More information about the devel
mailing list