Ben Hutchings <ben@xxxxxxxxxxxxxxx> 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.