errors with hidden symbols and apache
Edward Peschko
esp5@pge.com
Wed Sep 8 09:26:00 GMT 2004
On Fri, Sep 03, 2004 at 04:34:09PM -0700, Richard Henderson wrote:
> On Fri, Sep 03, 2004 at 04:17:30PM -0700, Edward Peschko wrote:
> > On Fri, Sep 03, 2004 at 04:08:53PM -0700, Richard Henderson wrote:
> > > I suspect that you linked using ld, and not with the gcc driver.
> > > Which would be incorrect.
> > >
> > > r~
> >
> > given that the command to do the linking was ...
>
> I did not mean the main application. I mean that one of the
> libraries (against which the main application is being linked)
> has already been linked incorrectly.
>
> The error message given doesn't actually say which library is
> referencing the symbol in question, but there are only a couple
> listed that aren't Solaris system libraries. Which limits the
> possibilities.
>
> Use 'readelf -r libfoo.so | grep __floatdisf' to find out which.
ok, well I found the symbol (defined) symbol in libhttpd.ep and libhttpd.so.
I went further and found out that it was linked incorrectrly vbthey get to be defined there? I looked
again at the linking statement, and indeed it was ld:
ld -G ....
I change this to
gcc -G ...
and it works fine..
So I guess my question is why the need for a separate linker? Why don't
you always use gcc instead of ld and have it get passed to the right linker?
Why even support binutils as a separate package?
Ed
More information about the Gcc
mailing list