This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: GCC 4.1 and R_PPC64_ADDR32 out of range
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.