[oe] pixman 0.18.4: `do_compile()` fails with minimal-uclibc: `../pixman/.libs/libpixman-1.so: undefined reference to `__tls_get_addr'` (was: Re: [PATCH] preferred-xorg-versions-X11R7.5-latest.inc: Use Pixman 0.18.4.)

Khem Raj raj.khem at gmail.com
Tue Sep 14 22:49:25 UTC 2010


On Tue, Sep 14, 2010 at 3:32 PM, Paul Menzel
<paulepanter at users.sourceforge.net> wrote:
> Am Dienstag, den 14.09.2010, 22:29 +0200 schrieb Paul Menzel:
>> Am Dienstag, den 14.09.2010, 15:17 +0200 schrieb Frans Meulenbroeks:
>> > 2010/9/13 Khem Raj <raj.khem at gmail.com>:
>> > > On Mon, Sep 13, 2010 at 12:03 PM, Paul Menzel <paulepanter at users.sourceforge.net> wrote:
>> > >> Date: Mon, 13 Sep 2010 20:53:48 +0200
>> > >>
>> > >> Cairo 1.10.0 was added in 1d4c650b1d8dac6adee3d3d4208b81bc9b67bd3d [1] and requires Pixman 0.18.4. This fixes at least the distribution Minimal which does not set the version of cairo explicitly.
>> > >>
>> > >>
>> > >> [1] http://cgit.openembedded.org/cgit.cgi/openembedded/commit/?id=1d4c650b1d8dac6adee3d3d4208b81bc9b67bd3d
>> > >> [2] http://cgit.freedesktop.org/cairo/commit/?id=8127f1f5d52bb716dbd70efe096894f2a542f4a9
>> > >>
>> > >> Signed-off-by: Paul Menzel <paulepanter at users.sourceforge.net>
>> > >
>> > > Acked-by: Khem Raj <raj.khem at gmail.com>
>> >
>> > Paul, thanks for the fix!
>> >
>> > Acked-by: Frans Meulenbroeks <frans.meulenbroeks at gmail.com>
>>
>> Leon committed the same in f68f811ed20c32d3fb7c71fb41484ae6dd9908fc [3].
>
>> [3] http://cgit.openembedded.org/cgit.cgi/openembedded/commit/?id=f68f811ed20c32d3fb7c71fb41484ae6dd9908fc
>
> Unfortunately I just tested this patch with minimal-uclibc and it Pixman
> 0.18.4 fails with the following error when doing `bitbake
> console-image`.
>
> | […]
> | /oe/build-minimal-uclibc/minimal-uclibc-dev/sysroots/i686-linux/usr/armv7a/lib/gcc/arm-oe-linux-uclibceabi/4.4.4/../../../../arm-oe-linux-uclibceabi/bin/ld: warning: libc.so, needed by /oe/build-minimal-uclibc/minimal-uclibc-dev/sysroots/i686-linux/usr/armv7a/lib/gcc/arm-oe-linux-uclibceabi/4.4.4/../../../../arm-oe-linux-uclibceabi/lib/libgcc_s.so.1, not found (try using -rpath or -rpath-link)
> | ../pixman/.libs/libpixman-1.so: undefined reference to `__tls_get_addr'
> | collect2: ld returned 1 exit status
> | make[2]: *** [a1-trap-test] Error 1
> | make[2]: *** Waiting for unfinished jobs....
> | /oe/build-minimal-uclibc/minimal-uclibc-dev/sysroots/i686-linux/usr/armv7a/lib/gcc/arm-oe-linux-uclibceabi/4.4.4/../../../../arm-oe-linux-uclibceabi/bin/ld: warning: libc.so, needed by /oe/build-minimal-uclibc/minimal-uclibc-dev/sysroots/i686-linux/usr/armv7a/lib/gcc/arm-oe-linux-uclibceabi/4.4.4/../../../../arm-oe-linux-uclibceabi/lib/libgcc_s.so.1, not found (try using -rpath or -rpath-link)
> | ../pixman/.libs/libpixman-1.so: undefined reference to `__tls_get_addr'
> | collect2: ld returned 1 exit status
> | make[2]: *** [region-test] Error 1
> | […]
>
>

It seems that TLS is needed/enabled by default for pixman. You can explore if
you can disable tls during configure like --disable-tls or some such option
if exists would be ideal then you can disable it for uclibc based builds.

Otherwise we have to patch it to work without TLS.

As a workaround you can use uclibc-git recipes which have TLS/NPTL enabled
by default and it should work with uclibc-git unmodified.

-Khem

> Please tell me, if I can provide more information. Thanks,
>
> Paul
>
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel at lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
>
>



-- 
-Khem




More information about the Openembedded-devel mailing list