Ben Hutchings <ben at decadent.org.uk> wrote:
> I have released version 2.0.13.? This is available in the git
> repository at:
> ??? https://git.kernel.org/pub/scm/libs/klibc/klibc.git
> and as a tarball at:
> ??? https://mirrors.kernel.org/pub/linux/libs/klibc/2.0/
> New features:
> - The statx() and clock_{gettime,settime,nanosleep}() system calls are
> supported.
> - time_t is 64-bit on all architectures.
> - The LoongArch64 architecture is supported.
> - kinit supports kernel parameter root=PARTLABEL=...
> Bug fixes:
> - select() with a NULL timeout works correctly when select() is a
> wrapper function.
> - ipconfig no longer busy-polls in certain conditions.
> - It's possible to build for MIPS64 R6 with newer gcc versions.
> - The command aliases of gzip and halt are installed as links instead
> of copies.
> Other changes:
> - All architectures use the RT signals API (i386, m68k, and s390(x)
> previously did not).
> - The address layout for arm and riscv64 has been changed to work
> around a QEMU bug.
> - ipconfig retries failed sends after 1 second instead of 10 seconds.
> A git shortlog of changes since version 2.0.12 follows.
> Ben.
> Ben Hutchings (20):
> [klibc] 2.0.12 released, next version is 2.0.13
> [klibc] m68k,s390,x86: signal: Stop using broken
<asm/signal.h>
> [klibc] i386,m68k,s390: signal: Switch to RT signal API
> [klibc] signal: Make RT signals mandatory
> [klibc] resource: Avoid using <linux/resource.h>
> [klibc] stat: Make all stat calls wrappers for statx()
> [klibc] utimes: Make all utimes calls wrappers for utimensat()
> [klibc] select: Remove support for pselect7() syscall
> [klibc] select: Fix handling of NULL timeout when wrapping pselect()
> [klibc] select: Make all select calls wrappers for pselect6()
> [klibc] time: Use clock_* system calls for time-of-day and sleep
> [klibc] time: Use 64-bit time types on all architectures
> Merge branch 'time64'
> [klibc] ipconfig: Do not poll sockets we don't intend to read
from
> [klibc] ipconfig: Handle error events from poll
> [klibc] ipconfig: Retry failed send after 1 second
> [klibc] mips64: Compatibility with R6 compact branches
> [klibc] arm: Move shared library below executables
> [klibc] riscv64: Move shared library below executables
> [klibc] Install command links as appropriate
> Feiyang Chen (1):
> [klibc] Add LoongArch64 port
> Rob Vandermeulen (1):
> [klibc] kinit: Support specifying root with PARTLABEL
Is there a minimum kernel that klibc is expected to build against? I ask
because klibc-2.0.13 includes a change that requires kernel 5.11+.
Klibc klibc-2.0.13 introduces build errors when built against 5.10
kernel:
In file included from usr/klibc/sysv_signal.c:5:
usr/klibc/sysv_signal.c: In function ?sysv_signal?:
/usr/local/google/home/gthelen/src/10.twd.2023-07-30/usr/klibc/../include/signal.h:24:23:
error: ?SA_ONESHOT? undeclared (first use in this function)
24 | # define SA_RESETHAND SA_ONESHOT
| ^~~~~~~~~~
usr/klibc/sysv_signal.c:10:42: note: in expansion of macro ?SA_RESETHAND?
10 | return __signal(signum, handler, SA_RESETHAND);
| ^~~~~~~~~~~~
Bisecting kernel v5.10..v5.11 vs klibc-2.0.13 indicates 5.11 commit
1d82b7898f2a ("arch: move SA_* definitions to generic headers") is
required to build klibc-2.0.13.
Bisecting klibc-2.0.12..klibc-2.0.13 vs 5.10 indicates klibc-2.0.13
commit ea8e91a7db06 ("[klibc] m68k,s390,x86: signal: Stop using broken
<asm/signal.h>") is where 5.11+ is required.