pixman / tls link time issue

Dagobert Michelsen dam at opencsw.org
Mon Jul 11 14:20:32 CEST 2016


Hi Riccardo,

Am 06.07.2016 um 10:17 schrieb Riccardo Mottola <rmottola at opencsw.org>:
> Dagobert Michelsen wrote:
>> Hi Riccardo,
>> 
>> Am 04.07.2016 um 10:04 schrieb Riccardo Mottola<rmottola at opencsw.org>:
>>> >the pixman package would be "yours".. I'd like to fix it, cane we collaborate? I don't want to hurt anyone feet.
>> Sure, in general I don’t mind at all unless you break it;-)
> 
> Let's fix it in case :) I try to be careful.. aftger all we are few people and the receipes seems to "age" and break with time.
> In this case however, a reebuild shows the issue, but also the old package was already broken on soloaris9, so I just discovered an issue, didn't break anything yet.
> 
> I did a minor commit to bring up-todate. I removed the and added architectures.
> 
> How do I fix this, on the x86 version?
> 
> gmake[1]: Leaving directory `/home/rmottola/opencsw/pixman/trunk'
> gmake[1]: Entering directory `/home/rmottola/opencsw/pixman/trunk'
> /home/rmottola/opencsw/.buildsys/v2/gar//gar.conf.mk:559: *** The ISA 'amd64' can not be build on this kernel with the arch 'i386'.  Stop.
> gmake[1]: Leaving directory `/home/rmottola/opencsw/pixman/trunk'
> 
> I thought it was implied that solaris9x can't build AMD64!
> 
> BUILD64_LIBS_ONLY = 1
> 
> Is correct, IIRC!

Yes. The building is a bit complex: in the early days when we had packages for
Solaris 8 and 9 there was a trick to allow using the packages on Solaris 10 by
adding the amd64 binaries built on Solaris 10 on Solaris 8 and 9 packages. As
they were not used on 8 and 9 this won’t do any harm but the package could be
used anyway on Solaris 10 with full functionality. Now that we have enough disk
space and Solaris 8 and 9 are old and we always have additional Solaris 10
packages this behaviour is considered „legacy“ and no amd64 should be included
on Solaris 8 and 9 x86 any more. If solaris10-i386 is in PACkAGING_PLATFORMS
then this is a bug in GAR.

>> What happens?
> 
> On solaris9 sparc, after the succesful build,  to an ldd:
> 
> ldd -r work/solaris9-sparc/build-isa-sparcv9/pixman-0.22.2/pixman/.libs/libpixman-1.so
>        /usr/lib/secure/64/s9_preload.so.1
>        libm.so.1 =>     /usr/lib/64/libm.so.1
>        libc.so.1 =>     /usr/lib/64/libc.so.1
>        libdl.so.1 =>    /usr/lib/64/libdl.so.1
>        /usr/platform/SUNW,SPARC-Enterprise-T5220/lib/sparcv9/libc_psr.so.1
>        symbol not found: __tls_get_addr (work/solaris9-sparc/build-isa-sparcv9/pixman-0.22.2/pixman/.libs/libpixman-1.so)
> 
> ldd -r work/solaris9-sparc/build-isa-sparcv8/pixman-0.22.2/pixman/.libs/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 (work/solaris9-sparc/build-isa-sparcv8/pixman-0.22.2/pixman/.libs/libpixman-1.so)
> 
> 
> On the partial build on solaris9x, where i386 built, it is consistent:
> ldd -r work/solaris9-i386/build-isa-i386/pixman-0.22.2/pixman/.libs/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 (work/solaris9-i386/build-isa-i386/pixman-0.22.2/pixman/.libs/libpixman-1.so)
> 
> As a test, I compiled everything with GCC - but I get the same error.
> Perhaps we are missing some linker flag? I tried to look on the internet, other had this problem also on non-solaris, but found no solutions.
> 
> I'm weary to update pixman: I don't want to enter a dependency hell updating stuff on solaris9. First rebuilding this package "fixed" would be preferrable!
> 
> A "fresh" rebuild on solaris10s is perfectly fine...
> 
> ldd -r work/solaris10-sparc/build-isa-sparcv9/pixman-0.22.2/pixman/.libs/libpixman-1.so
>        libm.so.2 =>     /lib/64/libm.so.2
>        libc.so.1 =>     /lib/64/libc.so.1
>        /platform/SUNW,SPARC-Enterprise-T5220/lib/sparcv9/libc_psr.so.1

You need to get deeper in multithreading on Solaris 9, I haven’t looked into it
in more detail, feel free to do more investigation.


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/users/attachments/20160711/2fa8c3d8/attachment.asc>


More information about the users mailing list