libtool
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

.la file dependency_libs dropping sole -lm dependency


From: Bob Friesenhahn
Subject: .la file dependency_libs dropping sole -lm dependency
Date: Wed, 31 Jan 2024 09:33:28 -0600 (CST)
User-agent: Alpine 2.20 (GSO 67 2015-01-07)

I am encountering an issue when building a static build of GraphicsMagick in that although -lm is supplied to libtool while linking the static library, the associated .la file is missing -lm in dependency_libs. If several more libraries are specified (also including -lm) then they all seem to be included in dependency_libs. The linkage is using --tag=CXX because there are some modules compiled with C++.

Programs which depend on the library fail to link due to missing the symbols from '-lm'.

The libtool used reports itself as

  % /usr/local/bin/libtool --version
  libtool (GNU libtool) 2.4.7
  Written by Gordon Matzigkeit, 1996

  Copyright (C) 2014 Free Software Foundation, Inc.

which I think is confusing since the tarball date is 2022-03-17 and the copyright at the top of libtool.m4 is up to 2022 although several lines down where the copyright message comes from, I see "Copyright (C) 2014 Free Software Foundation, Inc.".

The OS used is Ubuntu 20.04 LTS.

My expectation is that the .la file in the build tree will remember which compiler/language needs to be used for linking, and remember the library dependencies, so that dependent libraries and programs which depend on the library do not need to.

In magick/libGraphicsMagick.la, I see:

  # Libraries that this one depends upon.
  dependency_libs=' -L/usr/local/lib'

rather than this:

  # Libraries that this one depends upon.
  dependency_libs=' -L/usr/local/lib' -lm

As a result, linking fails when programs which depend on this library attempt to link with it using libtool in the same build.

The linking request looks somewhat like (abbreviated for clarity):

bin/bash ./libtool --tag=CXX --mode=link g++-10 -no-undefined -export-symbols-regex ".*" -version-info 27:4:24 -L/usr/local/lib -Wl,-rpath,/usr/local/lib -o magick/libGraphicsMagick.la -rpath /usr/local/lib [ list of .lo files ] -lm

An I misunderstanding something, or is this a bug in libtool? What am I missing in order for this to work?

Bob
--
Bob Friesenhahn
bfriesen@simple.dallas.tx.us, http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer,    http://www.GraphicsMagick.org/
Public Key,     http://www.simplesystems.org/users/bfriesen/public-key.txt



reply via email to

[Prev in Thread] Current Thread [Next in Thread]