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 When the jack_client_thread is replaced with NULL the shared object can be loaded, with jack_client_thread it yields the: R_PPC64_ADDR32 4000002e240 for symbol `' out of range The functions are declared as: void * jack_client_thread (void *arg) and int jack_client_create_thread (jack_client_t* client, pthread_t *thread, int priority, int realtime, void *(*start_routine)(void*), void *arg); Any idea? -- René Rebe - Rubensstr. 64 - 12157 Berlin (Europe / Germany) http://exactcode.de | http://t2-project.org | http://rebe.name +49 (0)30 / 255 897 45