On Tue, Apr 25, 2006 at 05:41:18PM +0100, Andrew Haley wrote: > Rene Rebe writes: > > On Tuesday 25 April 2006 14:21, Andrew Haley wrote: > > > Rene Rebe writes: > > > > 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*.
Hmm, R_PPC64_ADDR32 relocs ought to only appear in debug sections, and debug sections don't have dynamic relocs on ppc64. Is there some assembly somewhere that uses ".long" instead of ".quad" perhaps? > > 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. But these don't use R_PPC64_ADDR32 relocs. -- Alan Modra IBM OzLabs - Linux Technology Centre