Hi Riccardo,

Am 21.06.2016 um 12:48 schrieb Riccardo Mottola <[email protected]>:
> 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.

> CONFIGURE_ARGS_5.9 += CFLAGS="$(CFLAGS) -I/opt/csw/include/freetype2 
> -I/opt/csw/include/cairo" LDFLAGS="$(LDFLAGS) -lcairo"
> 
> This generates
> 
>  $ ./configure --prefix=/opt/csw --exec_prefix=/opt/csw --bindir=/opt/csw/bin 
> --sbindir=/opt/csw/sbin --libexecdir=/opt/csw/libexec -
> -datadir=/opt/csw/share --sysconfdir=/etc/opt/csw 
> --sharedstatedir=/opt/csw/share --localstatedir=/var/opt/csw 
> --libdir=/opt/csw/lib -
> -infodir=/opt/csw/share/info --includedir=/opt/csw/include 
> --mandir=/opt/csw/share/man --enable-graphics=cairo CFLAGS=-O2 -pipe -mcpu=
> v8 -I/opt/csw/include/freetype2 -I/opt/csw/include/cairo LDFLAGS=-mcpu=v8 
> -L/opt/csw/lib -lcairo
> 
> 
> which looks fine to me
> 
> This seesm to work partially, since a configure test fails this way.
> 
> configure:2717: checking whether the C compiler works
> configure:2739: /opt/csw/bin/gcc-4.6 -O2 -pipe -mcpu=v8 
> -I/opt/csw/include/freetype2 -I/opt/csw/include/cairo  -mcpu=v8 -L/opt/csw/lib
> -lcairo conftest.c  >&5
> Undefined                       first referenced
> symbol                             in file
> __tls_get_addr                      /opt/csw/lib/libpixman-1.so.0
> ld: fatal: Symbol referencing errors. No output written to a.out
> 
> pixman is surely pulled in by cairo.
> Apparently pixman needs tls but it is not there or it is not the right 
> version?
> Or a TLS package should be installed on unstable9s and it isn't?
> 
> pkginfo shows:
> application CSWgnutls
> application CSWgnutlsdevel                   gnutls_devel - Legacy
> application CSWlibgnutls-dev                 libgnutls_dev -
> application CSWlibgnutls13                   libgnutls13 - Legacy GNU
> application CSWlibgnutls26                   libgnutls26 - GNU Transport 
> Layer Security libraries and tools providing libgnutls*.so.26
> 
> ldd /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
> 
> 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.


Best regards

  — Dago


--
"You don't become great by trying to be great, you become great by wanting to 
do something,
and then doing it so hard that you become great in the process." - xkcd #896

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

Reply via email to