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