Re: [PATCH 0/9] tools/nolibc: fix build issues on aarch64 after unistd cleanup

From: Valentin Schneider
Date: Thu Jan 21 2021 - 06:19:53 EST


On 21/01/21 08:20, Willy Tarreau wrote:
> Hi Paul,
>
> as per the recent discussion with Mark, I've updated the nolibc header to
> reflect latest upstream which is needed to build on arm64, and I performed
> the few cleanups that Mark rightfully suggested.
>
> The following patches were taken from the upstream code and this time I
> carefully copied the original commit IDs in hope not to miss such fixes
> anymore in the future.
>
> I've build-tested these on x86_64, i586, arm(v5 & v7), arm64, mips and
> mipsel, using compilers ranging from gcc 3.4 to gcc 9.3 so I think we're
> good for these archs now.
>
> Just let me know if you prefer a pull request, as I can do that as well.
>

This lets me run the following invocation without a hitch:

tools/testing/selftests/rcutorture/bin/kvm.sh --allcpus --duration 10 --configs "4*SRCU-P" --trust-make

where before I would get some errors building the initrd due to missing
__NR_foo.

Tested-by: Valentin Schneider <valentin.schneider@xxxxxxx>

Thanks for having a look at this! And kuddos to Mark for nudging the
right people.

> Thanks!
> Willy
>
>
> Willy Tarreau (9):
> tools/nolibc: the definition dup() was missing
> tools/nolibc: make dup2() rely on dup3() when available
> tools/nolibc: make getpgrp() fall back to getpgid(0)
> tools/nolibc: implement fork() based on clone()
> tools/nolibc: implement poll() based on ppoll()
> tools/nolibc: get timeval, timespec and timezone from linux/time.h
> tools/nolibc: remove incorrect definitions of __ARCH_WANT_*
> tools/nolibc: emit a detailed error when missing alternate syscall
> number definitions
> tools/nolibc: fix position of -lgcc in the documented example
>
> tools/include/nolibc/nolibc.h | 153 +++++++++++++++++++++++++---------
> 1 file changed, 115 insertions(+), 38 deletions(-)
>
> --
> 2.28.0