pixman / tls link time issue
Dagobert Michelsen
dam at opencsw.org
Wed Jun 22 09:43:40 CEST 2016
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.
> 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 841 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.opencsw.org/pipermail/maintainers/attachments/20160622/551f9199/attachment-0001.asc>
More information about the maintainers
mailing list