Re: [PATCH 0/8] tools/nolibc: add support for stack protector

Paul E. McKenney
2023-03-26T15:14:01Z

On Sat, Mar 25, 2023 at 09:36:28PM -0700, Paul E. McKenney wrote:
> On Sat, Mar 25, 2023 at 04:45:08PM +0100, Willy Tarreau wrote:
> > Hello Paul,
> >
> > This is essentially Thomas' work so instead of paraphrasing his work,
> > I'm pasting his description below. I've tested his changes on all
> > supported archs, applied a tiny modification with his permission
> > to continue to support passing CFLAGS, and for me this is all fine.
> > In a short summary this adds support for stack protector to i386 and
> > x86_64 in nolibc, and the accompanying test to the selftest program.
> >
> > A new test category was added, "protection", which currently has a
> > single test. Archs that support it will report "OK" there and those
> > that do not will report "SKIPPED", as is already the case for tests
> > that cannot be run.
> >
> > This was applied on top of your dev.2023.03.20a branch. I'm reasonably
> > confident with the nature of the changes, so if your queue for 6.4 is
> > not closed yet, it can be a good target, otherwise 6.5 will be fine as
> > well.
>
> I have applied and pushed it out, thank you both!
>
> We are a little late in the process, but if testing goes well, I can't
> see why this cannot make the v6.4 merge window.

And "make run-user" says "124 test(s) passed", which looks promising.

But "make run" says "0 test(s) passed".

(They initially both said "0 test(s) passed", but that was because I
forgot to build qemu-x86_64 after an upgrade.)

Please see below for the full output of "make run". Am I missing
some other package?

Thanx, Paul

------------------------------------------------------------------------

MKDIR sysroot/x86/include
make[1]: Entering directory '/home/git/linux-rcu/tools/include/nolibc'
make[2]: Entering directory '/home/git/linux-rcu'
make[2]: Leaving directory '/home/git/linux-rcu'
make[2]: Entering directory '/home/git/linux-rcu'
INSTALL /home/git/linux-rcu/tools/testing/selftests/nolibc/sysroot/sysroot/include
make[2]: Leaving directory '/home/git/linux-rcu'
make[1]: Leaving directory '/home/git/linux-rcu/tools/include/nolibc'
CC nolibc-test
MKDIR initramfs
INSTALL initramfs/init
make[1]: Entering directory '/home/git/linux-rcu'
DESCEND objtool
INSTALL libsubcmd_headers
CALL scripts/checksyscalls.sh
GEN usr/initramfs_data.cpio
GZIP usr/initramfs_inc_data
AS usr/initramfs_data.o
AR usr/built-in.a
AR built-in.a
AR vmlinux.a
LD vmlinux.o
OBJCOPY modules.builtin.modinfo
GEN modules.builtin
MODPOST vmlinux.symvers
UPD include/generated/utsversion.h
CC init/version-timestamp.o
LD .tmp_vmlinux.kallsyms1
NM .tmp_vmlinux.kallsyms1.syms
KSYMS .tmp_vmlinux.kallsyms1.S
AS .tmp_vmlinux.kallsyms1.S
LD .tmp_vmlinux.kallsyms2
NM .tmp_vmlinux.kallsyms2.syms
KSYMS .tmp_vmlinux.kallsyms2.S
AS .tmp_vmlinux.kallsyms2.S
LD .tmp_vmlinux.kallsyms3
NM .tmp_vmlinux.kallsyms3.syms
KSYMS .tmp_vmlinux.kallsyms3.S
AS .tmp_vmlinux.kallsyms3.S
LD vmlinux
NM System.map
SORTTAB vmlinux
CC arch/x86/boot/version.o
VOFFSET arch/x86/boot/compressed/../voffset.h
OBJCOPY arch/x86/boot/compressed/vmlinux.bin
RELOCS arch/x86/boot/compressed/vmlinux.relocs
CC arch/x86/boot/compressed/kaslr.o
GZIP arch/x86/boot/compressed/vmlinux.bin.gz
CC arch/x86/boot/compressed/misc.o
MKPIGGY arch/x86/boot/compressed/piggy.S
AS arch/x86/boot/compressed/piggy.o
LD arch/x86/boot/compressed/vmlinux
ZOFFSET arch/x86/boot/zoffset.h
OBJCOPY arch/x86/boot/vmlinux.bin
AS arch/x86/boot/header.o
LD arch/x86/boot/setup.elf
OBJCOPY arch/x86/boot/setup.bin
BUILD arch/x86/boot/bzImage
Kernel: arch/x86/boot/bzImage is ready (#103)
make[1]: Leaving directory '/home/git/linux-rcu'
0 test(s) passed.