[Buildroot] [PATCH 1/1] toolchain: allow crosstool-ng musl toolchains

Frank Hunleth fhunleth at troodon-software.com
Wed Jun 29 14:45:32 UTC 2016


Hi Thomas,

On Tue, Jun 28, 2016 at 12:24 PM, Thomas Petazzoni
<thomas.petazzoni at free-electrons.com> wrote:
> Hello,
>
> On Tue, 21 Jun 2016 13:36:43 -0400, Frank Hunleth wrote:
>
>> diff --git a/toolchain/helpers.mk b/toolchain/helpers.mk
>> index 108fdaa..9a41bd6 100644
>> --- a/toolchain/helpers.mk
>> +++ b/toolchain/helpers.mk
>> @@ -210,7 +210,7 @@ check_glibc = \
>>  # $1: sysroot directory
>>  check_musl = \
>>       SYSROOT_DIR="$(strip $1)"; \
>> -     if test ! -f $${SYSROOT_DIR}/lib/libc.so -o -e $${SYSROOT_DIR}/lib/libm.so ; then \
>> +     if test ! \( -f $${SYSROOT_DIR}/lib/libc.so -o -f $${SYSROOT_DIR}/usr/lib/libc.so \) -o -e $${SYSROOT_DIR}/lib/libm.so ; then \
>>               echo "Incorrect selection of the C library" ; \
>
> Thanks for this patch. However, I dislike a bit this test: the test
> that libm exists is not super great, and we're really looking at
> consequences of having musl, and not whether we're using musl or not.

I completely agree. The original test didn't seem like the best test
for musl, and I like your idea of verifying the linkage of a short C
program.

I'm quite busy at the moment, but as soon as I free up, I'll play
around with it and post a revision.

Thanks,
Frank

>
> What about instead changing to:
>
>  1/ Building a minimal C program "int main(void) { return 0; }"
>
>  2/ Check if the program interpreter contains /lib/ld-musl or not ?
>
> I.e:
>
> thomas at skate:~/nerves-mipsel-unknown-linux-musl-linux-x86_64-v0.6.3$ cat foo.c
> int main(void) { return 0; }
> thomas at skate:~/nerves-mipsel-unknown-linux-musl-linux-x86_64-v0.6.3$ ./bin/mipsel-unknown-linux-musl-gcc -o foo foo.c
> thomas at skate:~/nerves-mipsel-unknown-linux-musl-linux-x86_64-v0.6.3$ ./bin/mipsel-unknown-linux-musl-readelf -a foo | grep "program interpreter"
>       [Requesting program interpreter: /lib/ld-musl-mipsel.so.1]
>
> This would, IMO, be a much better solution. What do you think?
>
> Thanks,
>
> Thomas
> --
> Thomas Petazzoni, CTO, Free Electrons
> Embedded Linux, Kernel and Android engineering
> http://free-electrons.com



-- 
Frank Hunleth
Troodon Software LLC
Embedded Software Development
http://troodon-software.com/



More information about the buildroot mailing list