[Buildroot] How to choose C library dependencies

Илья Валеев ilya-valeev at yandex.ru
Mon May 16 12:32:03 UTC 2016


> On 05/14/16 05:59, Илья Валеев wrote:
>> Hello!
>> I want to compile ejabberd and run it on my router. I choose erlang
>> package with
>> SMP support and all modules and ejabberd package, does not configure
>> defconfig.
>> Then I run /make ejabberd/, copy ejabberd, erlang and busybox from
>> /target/
>> folder to router and run it.
>
>  Buildroot in't really meant for that kind of scenario. That said, it
> should be possible to do it. Basically you must create a toolchain
> that matches exactly with what is already installed on the target.
Is there any manual how to do this?


>> I found that at least ejabberd compiled with glibc dependence and
>> won't run
>> without it. Running /cd /path/to/ejabberd && ./ejabberdctl start/
>> ends with
>>> /opt/lib/erlang/bin/erl: exec: line 29:
>>> /usr/lib/erlang/erts-7.3/bin/erlexec
>> As I found before, it's because erlexec want glibc which missing in
>> router.
>> Than I enable Linux kernel, set defconfig to bcm and try to run
>> /make/ and copy
>> these programms from rootfs image to router with same result.
>>
>> How can I compile these programms (ejabberd, erlang and busybox) with
>> uClibc
>> dependence?
>
>  The config file you attached indeed selects uClibc, so I don't see
> how it could possibly link against glibc. How do you know it links
> with glibc?
>
>  To verify something like that, do:
>
> readelf -d output/target/usr/lib/erlang/erts-7.3/bin/erlexec
>
> and check that all the libraries mentioned there exist on the target.
>
I've run /readelf -l output/target/usr/lib/erlang/erts-7.3/bin/erlexec/
and it show glibc as "requesting program interpreter".
My erlexec wants:
libm.so.1
libc.so.1
I copy them to router from buildroot generated rootfs, and error
"'/opt/lib/libc.so.1' library contains unsupported TLS" appears. So it
seems you are right about toolchain.


>
>  Regards,
>  Arnout
>
>>
>> *Buildroot:* snapshot from 2016.05.13
>> *C library in menuconfig:* uClibc with C++ support
>> *defconfig:* bcm
>> *Target Architecture:* ARM (little endian)
>> *Target Architecture Variant:* cortex-A9
>> *System running buildroot:* Debian 8 x64
>> *Router:* Broadcom BCM4708A0, 2xARM Cortex A9, asuswrt-merlin 380.58_0
>> *.config:* in attach
>>
>> -- 
>> Идентификатор открытого ключа: 1D38C8C9
>> Отпечаток: 6210 01B6 A34E E490 A9E4  87DD 841D 0ABE 1D38 C8C9
>>
>>
>>
>> _______________________________________________
>> buildroot mailing list
>> buildroot at busybox.net
>> http://lists.busybox.net/mailman/listinfo/buildroot
>>
>
>
> -- 
> Arnout Vandecappelle                          arnout at mind be
> Senior Embedded Software Architect            +32-16-286500
> Essensium/Mind                                http://www.mind.be
> G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
> LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
> GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20160516/46eee123/attachment.html>


More information about the buildroot mailing list