This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]