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

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Tue Jun 28 16:24:15 UTC 2016


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.

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


More information about the buildroot mailing list