Ville Skyttä wrote:
On Thu, 2006-10-26 at 09:52 -0500, Rex Dieter wrote:
> Ville Skyttä wrote:
>
> > trying "gcc -lgtk foo.c" on the above fails as expected, and "gcc
-lgdk
> > -lgtk foo.c" succeeds, again as expected. However, to my surprise,
> > "gcc -Wl,--as-needed -lgdk -lgtk foo.c" fails:
>
> Try
> gcc -Wl,--as-needed foo.c -lgtk -lgdk
> or even better:
> gcc -Wl,--as-needed foo.c `pkg-config --libs gtk+`
> instead.
Both succeed but neither links in libgdk, resulting in runtime symbol
lookup errors. But anyway, that doesn't answer my question, see the two
last paragraphs in my original message at
https://www.redhat.com/archives/fedora-devel-list/2006-October/msg00724.html
Yeah, I read it, you only mentioned linking, not runtime errors. (:
Confirmed, on fc5 linking succeeds, but then it fails at runtime.
./foo: symbol lookup error: /usr/lib/libgtk-1.2.so.0: undefined symbol:
gdk_root_window
This is a possible bintutils/ld regression, this works (as expected) with no
runtime errors on rhel4.
So, in short, I see 2 bugs here:
1. libgtk shouldn't contain undefined symbols. The problem goes away if
this is fixed.
and possibly:
2. binutils' handling of --as-needed is apparently only looking at the
source/object file for dependancies, and not following dependant libraries.
It could be argued that it shouldn't have to. See (1). (:
-- Rex