You are not logged in.

#1 2010-04-14 07:28:12

ConnorBehan
Package Maintainer (PM)
From: Long Island NY
Registered: 2007-07-05
Posts: 1,359
Website

Another dynamic linking (gnome hating) question

For years I've thought that when ldd lists the libraries needed by a dynamic executable, it lists things that appear as "-lgconf -lORBit2". When such linker flags are used by a compiler this is usually because the program in question (abiword in this case) uses functions from gconf and orbit2. If abiword uses functions from gconf and orbit2 then gconf and orbit2 MUST BE INSTALLED when you build it... correct? Otherwise the executable produced won't know where to look for those symbols.

So I just uninstalled gconf and orbit2 from my system. They were not anywhere on it. Then I build abiword and the build completed. I installed abiword and I can run it just fine. However when I run "ldd /usr/bin/abiword" I see "not found" beside gconf and orbit2.

I am very confused. The fact that it runs means abiword is not linked against these libraries and to me that means ldd should not mention them at all. Where am I missing part of the picture? Thanks.


6EA3 F3F3 B908 2632 A9CB E931 D53A 0445 B47A 0DAB
Great things come in tar.xz packages.

Offline

#2 2010-04-14 08:08:14

Allan
Pacman
From: Brisbane, AU
Registered: 2007-06-09
Posts: 11,402
Website

Re: Another dynamic linking (gnome hating) question

My guess is that it is linking to something else that needs those libraries.   Instead of using ldd, use "readelf -d".  That will show you only what abiword links to and not its whole link chain.

Offline

#3 2010-04-14 17:53:43

ConnorBehan
Package Maintainer (PM)
From: Long Island NY
Registered: 2007-07-05
Posts: 1,359
Website

Re: Another dynamic linking (gnome hating) question

Thanks alot... this is a useful command which I should've used instead of ldd many times. When I use it, gconf and orbit indeed do not appear. What's more strange is that if I proceed to run readelf -d on all the libraries that do appear and follow the link chain myself, I STILL never run into gconf and orbit. So I will just stop trusting ldd altogether. It seems like instead of listing the libraries that are needed, it sometimes lists libraries that *could've been needed* had I built the package in a different way.


6EA3 F3F3 B908 2632 A9CB E931 D53A 0445 B47A 0DAB
Great things come in tar.xz packages.

Offline

Board footer

Powered by FluxBB