libtool
[Top][All Lists]
Advanced

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

LD_LIBRARY_PATH set by wrapper on Ubuntu, not on Rocky (Redhat)


From: Corey Minyard
Subject: LD_LIBRARY_PATH set by wrapper on Ubuntu, not on Rocky (Redhat)
Date: Sun, 4 Sep 2022 12:21:58 -0500

I have a library and tools that uses autotools for building.  It
generates some modules that get loaded at runtime by searching
LD_LIBRARY_PATH and then a libexec directory.

On a current Ubuntu system (22.04.1, automake 1.16.5, autoconf 2.71,
libtool 2.4.6) and an older Ubuntu system (20.04.5, automake 1.16.1,
autoconf 2.69, libtool 2.4.6) the wrapper file for the program sets
LD_LIBRARY_PATH to the various lib directories:

  if test -f "$progdir/$program"; then
    # Add our own library path to LD_LIBRARY_PATH
    
LD_LIBRARY_PATH="/personal/git/gensio/Z/lib/.libs:/personal/git/gensio/Z/glib/.libs:/personal/git/gensio/Z/tcl/.libs:$LD_LIBRARY_PATH"

On a current Rocky linux system (9.0, automake 1.16.2, autoconf 2.69,
libtool 2.4.6) which should be equivalent to RHEL, it generates no such
code in the same place.  It doesn't set LD_LIBRARY_PATH at all, and I
guess uses rpath to find the libraries.  It's exactly the same code and
configuration on both systems.

I haven't been able to figure out why looking at patches between the two
versions internet searches.  The Rocky behavior is breaking my program
when running from the wrapper because it's not finding the modules
because they are not installed.  It works fine on Ubuntu because
LD_LIBRARY_PATH is set.  And the libtool documentation states that
searching LD_LIBRARY_PATH for modules should work, under "10.4 Finding
the correct name to dlopen":

     If your program uses this approach, then it should search the
  directories listed in the 'LD_LIBRARY_PATH'(1) environment variable, as
  well as the directory where libraries will eventually be installed.
  Searching this variable (or equivalent) will guarantee that your program
  can find its dlopened modules, even before installation, provided you
  have linked them using libtool.

I haven't figured out why, and I can't find a way to force libtool to
put in the LD_LIBRARY_PATH.  What am I doing wrong?

-corey



reply via email to

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