On Wed, 11 Apr 2007 22:19:22 +0200
"Simon 'corecode' Schubert" <[EMAIL PROTECTED]> wrote:

> Steve O'Hara-Smith wrote:
> >> However, I don't know how we can do this.  Does anybody have input,
> >> ideas?  One way would be to use rtld/libmap, like in FreeBSD, but I
> >> don't 100% like this approach.  I'd like to find something more
> >> elegant.  But I'm kind of stuck here, maybe somebody has some ideas to
> >> contribute?
> > 
> >     The thought that comes immediately to mind is that variant
> > symlinks may be of help here.
> 
> varsyms do not necessarily help here, because at link time the soname
> might be stored in the binary, which means that the varsym is not being
> used at runtime.  We would need some way to have a proxy lib at link
> time, but a varsym at runtime.
> 
> AH! (bulb lights up)
> 
> how about:
> 
> libpthread.so
>       proxy lib.  ONLY used for linking, not for runtime usage.
>       has set its soname to "librealpthread.so.0"
> 
> librealpthread.so.0
>       is a varsym link to either one of the threading libs.

        Hmm - "All problems in computer science can be solved by adding
another level of indirection" :)

> -pthread would translate to -lpthread.  however, libpthread.so has set a
> soname, so that this soname will be used by the rtld.  this means that
> all binaries in general obey the ABI (defined functions) defined by
> libpthread.so, however they will use the lib pointed to by
> librealpthread.so.0, which then can be libc_r.so.5 or libthread_xu.so.1.
> 
> makes sense?

        Sounds good to me.

-- 
C:>WIN                                      |   Directable Mirror Arrays
The computer obeys and wins.                | A better way to focus the sun
You lose and Bill collects.                 |    licences available see
                                            |    http://www.sohara.org/

Reply via email to