LD Changes To Implicit DSO Linking Update
Enrico Scholz
enrico.scholz at informatik.tu-chemnitz.de
Tue Feb 16 16:03:24 UTC 2010
Gerd Hoffmann <kraxel at redhat.com> writes:
> Well. Even pretty fundamental GNOME stuff like gtk2-devel is still
> broken. Look here:
>
> [root at localhost ~]# pkg-config --libs gtk+-2.0
> -pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0
> -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype
> -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0
Are all these libraries really required? Putting them into a linker line
causes a huge overlinking adding lots of unneeded direct dependencies to
rpm packages.
> -lX11 is missing (at least, maybe more).
That's the problem with the current DSO change :( It causes packagers or
upstream developers to define typical use cases (e.g. when somebody
calls 'mylib_foo(otherlib_struct *)' he calls usually
'otherlib_init(otherlib_struct *)', so that '-lotherlib' is usually
needed).
Such soft decisions are far away from being reliable and to work for
everybody...
I ended up for 'xmlrpc-c' to replace .so symlinks by linker scripts with
| INPUT(<main-lib> AS_NEEDED(<dep-libs>+))
commands. The <dep-libs> list is created by extracting recursively the
NEEDED libs from <main-lib>.
Not very nice but probably to only way to cope with '--no-add-needed' :(
Enrico
More information about the devel
mailing list