GCC 4.1 and R_PPC64_ADDR32 out of range
Andrew Haley
aph@redhat.com
Tue Apr 25 16:41:00 GMT 2006
Rene Rebe writes:
> On Tuesday 25 April 2006 14:21, Andrew Haley wrote:
> > Rene Rebe writes:
> > > Hi,
> > >
> > > not such an high priority, but testing the latest gcc 4.1.0 in
> > > "whole system builds" I stumble over:
> > >
> > > jackd: error while loading shared libraries: /usr/lib64/libjack.so.0:
> > > R_PPC64_ADDR32 40000056b70 for symbol `' out of range
> > >
> > > There only R_PPC64_ADDR32 in .text+0*.
> > >
> > > Any idea or proposal how to hunt this?
> >
> > just a guess, but perhaps libjack isn't compiled -fPIC?
>
> I further narrowed it stripping down the preprocessed sources. The
> culprit appears to be a function pointer passed as reference to a thread
> creation function:.
>
> client.c:1696:
> #else
> if (jack_client_create_thread (client,
> &client->thread,
> client->engine->client_priority,
> client->engine->real_time,
> jack_client_thread, client)) {
> return -1;
> }
> #endif
ppc64 function pointers point to a function descriptor, which
specifies both the entry point and TOC for the function.
I'm guessing the problem may be with the desriptor, but I'll bow out
now to let the PPC experts answer.
Andrew.
More information about the Gcc
mailing list