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
signature.asc
Description: Message signed with OpenPGP using GPGMail
