Messages in this thread | | | Date | Mon, 9 Jan 2023 11:11:41 -0800 | From | "Paul E. McKenney" <> | Subject | Re: [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 >
| |