Re: [PATCH 0/6] pending bug fixes for nolibc

From: Willy Tarreau
Date: Tue Jan 10 2023 - 02:32:00 EST


Hello Paul,

On Mon, Jan 09, 2023 at 11:11:41AM -0800, Paul E. McKenney wrote:
> 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.

You're welcome!

> But please check to make sure that my wordsmithing didn't
> break anything.

It all looks perfect to me.

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

Great, thank you!
Willy