from Kamil Rytarowski: > I have managed to get light cross-toolchain producing Linux binaries.
> The only dependency is musl (+gmake to build it). Is it necessary to use musl, as opposed to uClibc-ng or glibc? Did you cross-compile from NetBSD to get the cross-toolchain, or did you need some Linux stuff already compiled? But I believe you would need Linux kernel headers in any case. Where do you get musl-gcc, or is it built as part of the light cross-toolchain? > It works almost out of the box (I had to manually build certain files). > The only think that is required to be tuned is to add a dummy gnu_debuglink. > https://nxr.netbsd.org/xref/src/sys/compat/linux/common/linux_exec_elf32.c#214 > The kernel shall have a fallback, and probably parse .intrp string and > look for 'ld-musl' in it. > $ cat m.c > #include <stdio.h> > int > main(int argc, char **argv) { > printf("Hello world!\n"); > return 0; } > $ musl-gcc m.c > $ objcopy --add-gnu-debuglink=/dev/null ./a.out > $ file a.out > a.out: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically > linked, interpreter /lib/ld-musl-x86_64.so.1, not stripped > $ ./a.out > Hello world! > Another step is to build LTP with musl-gcc and run the tests. > https://github.com/linux-test-project/ltp (LTP supports musl) > There will be some patches involved. > The question is how to setup the tests for it? anita + picking these > packages from pkgsrc? > Making a setup with a syzbot instance for linux32/linux64 target should > be not that difficult. > Unfortunately all that needs some work in various projects, integration, > upstreaming code (to LTP?) etc and maybe TNF could spare someone to do it. > > Also linux_compat is getting more and more irrelevant as time pass due > > to shortage in our futex code (lack of robust futexes). > This is slowly worked on. Tom