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

Reply via email to