lkml.org 
[lkml]   [2023]   [Jan]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 0/6] pending bug fixes for nolibc
On Mon, Jan 09, 2023 at 08:54:36AM +0100, Willy Tarreau wrote:
> Hello Paul,
>
> please consider the current patch series for merging into your fixes queue.
> The intent is to get them before 6.2, then backported where relevant.
>
> It addresses the following bugs:
> - fd_set was incorrectly defined as arrays of u32 instead of long,
> which breaks BE64. Fix courtesy of Sven Schnelle.
>
> - S_ISxxx macros were incorrectly testing the bits after applying them
> instead of applying S_ISFMT to the value. Fix from Warner Losh.
>
> - the mips code was randomly broken due to an unprotected "noreorder"
> directive in the _start code that would prevent the assembler from
> filling delayed slots, and randomly leaving other instructions there
>
> - since the split of the single include file into multiple files, we're
> implicitly refraining from including some which are not explicitly
> added in the code. It causes build failures when such files contain
> definitions for functions that may be used e.g. by libgcc, such as
> raise() or memset(), which are often called only by a few archs at
> certain optimization levels only.
>
> - gcc 11.3 in ARM thumb2 mode at -O2 was able to recognize a memset()
> construction inside the memset() definition, and it replaced it with
> a call to... memset(). We cannot impose to userland to build with
> -ffreestanding so the introduction of an empty asm() statement in
> the loop was enough to stop this.
>
> - most of the O_* macros were wrong on RISCV because their octal value
> was used as a hexadecimal one when the platform was introduced. This
> was revealed by the selftest breaking in getdents64().
>
> The series was tested on x86_64, i386, armv5, armv7, thumb1, thumb2,
> mips and riscv, all at -O0, -Os and -O3. This is based on the "nolibc"
> branch of your linux-rcu tree. Do not hesitate to let me know if you
> prefer that I rebase it on a different one.

"81 test(s) passed", so queued at urgent-nolibc.2023.01.09a, thank you!

Also, thank you for the detailed cover letter, which I co-opted into the
signed tag. But please check to make sure that my wordsmithing didn't
break anything.

If all goes well, I will send the pull request to Linus before the end
of this week.

Thanx, Paul

> Thank you!
> Willy
>
> ---
> Sven Schnelle (1):
> nolibc: fix fd_set type
>
> Warner Losh (1):
> tools/nolibc: Fix S_ISxxx macros
>
> Willy Tarreau (4):
> tools/nolibc: restore mips branch ordering in the _start block
> tools/nolibc: fix missing includes causing build issues at -O0
> tools/nolibc: prevent gcc from making memset() loop over itself
> tools/nolibc: fix the O_* fcntl/open macro definitions for riscv
>
> tools/include/nolibc/arch-mips.h | 2 +
> tools/include/nolibc/arch-riscv.h | 14 +++----
> tools/include/nolibc/ctype.h | 3 ++
> tools/include/nolibc/errno.h | 3 ++
> tools/include/nolibc/signal.h | 3 ++
> tools/include/nolibc/stdio.h | 3 ++
> tools/include/nolibc/stdlib.h | 3 ++
> tools/include/nolibc/string.h | 8 +++-
> tools/include/nolibc/sys.h | 2 +
> tools/include/nolibc/time.h | 3 ++
> tools/include/nolibc/types.h | 70 ++++++++++++++++++-------------
> tools/include/nolibc/unistd.h | 3 ++
> 12 files changed, 79 insertions(+), 38 deletions(-)
>
> --
> 2.35.3
>

\
 
 \ /
  Last update: 2023-03-26 23:33    [W:0.074 / U:0.516 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site