[Snek] ev3 build: musl or static older libc, or ?

Mikhail Gusarov dottedmag at dottedmag.net
Wed Feb 19 13:38:13 PST 2020


Hi,

I'm preparing a patch with a skeleton of EV3 support, and stumbled into 
the following:

Stable ev3dev (distro for Lego EV3) is based on Debian stretch, with 
glibc 2.24.

Unstable is now at glibc 2.29, so naively cross-compiling causes 
unresolved symbols.

I've tried two ways to work around it. Both work, which one to choose? 
Or something else?

1. Build musl toolchain (e.g. https://github.com/GregorR/musl-cross) and 
statically
    compile snek-ev3.

    Upsides: works with unstable, resulting binaries are static.
    Downsides: takes ~20 minutes to build one

2. Install ARM cross-compiler and libc from stretch, and use it to 
build.

    Upsides: it's the toolchain used by the ev3dev.
    Downsides: another Dockerfile just for the sake of ev3?

Best,
Misha.


More information about the Snek mailing list