pixman / tls link time issue

Riccardo Mottola rmottola at opencsw.org
Wed Jun 22 14:54:36 CEST 2016


Dagobert Michelsen wrote:
> Hi Riccardo,
> Am 21.06.2016 um 12:48 schrieb Riccardo Mottola <rmottola at opencsw.org>:
>> in gnustep-back I am trying to compileagainst the cairo library both on solaris 9 and solaris 10. Since pkg-config doesn't appear to work too well, I added manually CFLAGS and LDFLAGS this way:
> I strongly suggest fixing the .pc file.

the .pc file from cairo? this wizardry is hard to fix ...

>> I see no linkage to tls!
> unstable9s% ldd -r /opt/csw/lib/libpixman-1.so
>          /usr/lib/secure/s9_preload.so.1
>          libm.so.1 =>     /usr/lib/libm.so.1
>          libc.so.1 =>     /usr/lib/libc.so.1
>          libdl.so.1 =>    /usr/lib/libdl.so.1
>          /usr/platform/SUNW,SPARC-Enterprise-T5220/lib/libc_psr.so.1
>          symbol not found: __tls_get_addr                (/opt/csw/lib/libpixman-1.so)
> So libpixman-1.so needs the symbol, but does not link against it. __tls_get_addr is not
> from GnuTLS (Transport Layer Security), but from a multithreading library (Thread Local Store).
> I don’t know where this comes from, 1 minute Googling didn’t bring up anything reasonable
> and I can’t remember to have seen this before. You may need to investigate.

thanks for the TLS poiter and the -r flag, it is thus a lazy symbol.

I tried to rebuild pixman (without any update) and I notice that the 

already has that issue. I then changed the receipe to build with GCC 
instead of sun studio, but no fix.

This is ldd -r on Solaris sparc 10
ldd -r /opt/csw/lib/libpixman-1.so
         libm.so.1 =>     /lib/libm.so.1
         libc.so.1 =>     /lib/libc.so.1
         libm.so.2 =>     /lib/libm.so.2

this on 9:ldd -r  /opt/csw/lib/libpixman-1.so
         libm.so.1 =>     /usr/lib/libm.so.1
         libc.so.1 =>     /usr/lib/libc.so.1
         libdl.so.1 =>    /usr/lib/libdl.so.1
         symbol not found: __tls_get_addr 

I notice there is an extra "dl" library!

Darn. I found of several people who have a similarproblem, but 
absolutely no solution. some peoplce cited the -z linker flag, but it 
needs an option which I don't know which is correct.


More information about the maintainers mailing list