lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <e648436f-f95c-f0e5-f341-3e640bfe1495@linuxfoundation.org>
Date:   Mon, 28 Aug 2023 12:32:58 -0600
From:   Shuah Khan <skhan@...uxfoundation.org>
To:     Linus Torvalds <torvalds@...ux-foundation.org>
Cc:     Willy Tarreau <w@....eu>,
        Thomas Weißschuh <thomas@...ch.de>,
        "Paul E. McKenney" <paulmck@...nel.org>, shuah <shuah@...nel.org>,
        Shuah Khan <skhan@...uxfoundation.org>,
        Stephen Rothwell <sfr@...b.auug.org.au>,
        Andrew Morton <akpm@...ux-foundation.org>,
        linux-kernel@...r.kernel.org, linux-kselftest@...r.kernel.org,
        Christian Brauner <brauner@...nel.org>
Subject: [GIT PULL] nolibc changes for Linux 6.6-rc1

Hi Linus,

Please pull the nolibc update for Linux 6.6-rc1. This is the first
nolibc pull request since Paul and I took on the administrative
maintainer role going forward.

Please see notes at the end on two conflicts. Build and nolibc tests
were run on next.

This nolibc update for Linux 6.6-rc1 consists of:

Nolibc:
   - improved portability by removing build errors with -ENOSYS
   - added syscall6() on MIPS to support pselect6() and mmap()
   - added setvbuf(), rmdir(), pipe(), pipe2()
   - add support for ppc/ppc64
   - environ is no longer optional
   - fixed frame pointer issues at -O0
   - dropped sys_stat() in favor of sys_statx()
   - centralized _start_c() to remove lots of asm code
   - switched size_t to __SIZE_TYPE__

Selftests:
   - improved status reporting (success/warning/failure counts,
     path to log file)
   - various code cleanups (indent, unused variables, ...)
   - more consistent test numbering
   - enabled compiler warnings
   - dropped unreliable chmod_net test
   - improved reliability (create /dev/zero & /tmp, rely less on /proc)
   - new tests (brk/sbrk/mmap/munmap)
   - improved compatibility with musl
   - new run-nolibc-test target to build and run natively
   - new run-libc-test target to build and run against native libc
   - made the cmdline parser more reliable against boolean arguments
   - dropped dependency on memfd for vfprintf() test
   - nolibc-test is no longer stripped
   - added support for extending ARCH via XARCH

Other:
   - add Thomas as co-maintainer

Please note that these patches have been in next for a couple of
weeks. I had to do a rebase to drop a vfs patch to resolve conflict
with vfs-brauner tree last week.

We still have the following conflicts with vfs-brauner tree and
the fix is in next.

   tools/testing/selftests/nolibc/nolibc-test.c

between commit:

   49319832de90 ("selftests/nolibc: drop test chmod_net")

from the vfs-brauner tree and commit:

   148e9718e2a2 ("selftests/nolibc: add chmod_argv0 test")

from the nolibc tree.

A second note on conflict with mm-tree and the fix is in next:

tools/include/nolibc/stdio.h

between commit:

   08d959738a95 ("selftests: line buffer test program's stdout")

from the mm-stable tree and commits:

   65ff4d19f792 ("tools/nolibc/stdio: add setvbuf() to set buffering mode")
   2e00a8fc4f47 ("tools/nolibc: setvbuf: avoid unused parameter warnings")

from the nolibc tree.

diff is attached.

thanks,
-- Shuah

----------------------------------------------------------------
The following changes since commit 06c2afb862f9da8dc5efa4b6076a0e48c3fbaaa5:

   Linux 6.5-rc1 (2023-07-09 13:53:13 -0700)

are available in the Git repository at:

   git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest tags/linux-kselftest-nolibc-6.6-rc1

for you to fetch changes up to 556fb7131e03b0283672fb40f6dc2d151752aaa7:

   tools/nolibc: avoid undesired casts in the __sysret() macro (2023-08-23 05:17:07 +0200)

----------------------------------------------------------------
linux-kselftest-nolibc-6.6-rc1

This nolibc update for Linux 6.6-rc1 consists of:

Nolibc:
   - improved portability by removing build errors with -ENOSYS
   - added syscall6() on MIPS to support pselect6() and mmap()
   - added setvbuf(), rmdir(), pipe(), pipe2()
   - add support for ppc/ppc64
   - environ is no longer optional
   - fixed frame pointer issues at -O0
   - dropped sys_stat() in favor of sys_statx()
   - centralized _start_c() to remove lots of asm code
   - switched size_t to __SIZE_TYPE__

Selftests:
   - improved status reporting (success/warning/failure counts,
     path to log file)
   - various code cleanups (indent, unused variables, ...)
   - more consistent test numbering
   - enabled compiler warnings
   - dropped unreliable chmod_net test
   - improved reliability (create /dev/zero & /tmp, rely less on /proc)
   - new tests (brk/sbrk/mmap/munmap)
   - improved compatibility with musl
   - new run-nolibc-test target to build and run natively
   - new run-libc-test target to build and run against native libc
   - made the cmdline parser more reliable against boolean arguments
   - dropped dependency on memfd for vfprintf() test
   - nolibc-test is no longer stripped
   - added support for extending ARCH via XARCH

Other:
   - add Thomas as co-maintainer

----------------------------------------------------------------
Ryan Roberts (1):
       tools/nolibc/stdio: add setvbuf() to set buffering mode

Thomas Weißschuh (21):
       selftests/nolibc: simplify call to ioperm
       tools/nolibc: completely remove optional environ support
       selftests/nolibc: make evaluation of test conditions
       selftests/nolibc: simplify status printing
       selftests/nolibc: avoid gaps in test numbers
       selftests/nolibc: avoid buffer underrun in space printing
       tools/nolibc: drop unused variables
       tools/nolibc: fix return type of getpagesize()
       tools/nolibc: setvbuf: avoid unused parameter warnings
       tools/nolibc: sys: avoid implicit sign cast
       tools/nolibc: stdint: use __SIZE_TYPE__ for size_t
       selftests/nolibc: drop unused variables
       selftests/nolibc: mark test helpers as potentially unused
       selftests/nolibc: make functions static if possible
       selftests/nolibc: avoid unused parameter warnings
       selftests/nolibc: avoid sign-compare warnings
       selftests/nolibc: use correct return type for read() and write()
       selftests/nolibc: prevent out of bounds access in expect_vfprintf
       selftests/nolibc: don't strip nolibc-test
       selftests/nolibc: enable compiler warnings
       MAINTAINERS: nolibc: add myself as co-maintainer

Willy Tarreau (3):
       selftests/nolibc: avoid warnings during intptr tests
       tools/nolibc: keep brk(), sbrk(), mmap() away from __sysret()
       tools/nolibc: avoid undesired casts in the __sysret() macro

Yuan Tan (2):
       tools/nolibc: add pipe() and pipe2() support
       selftests/nolibc: add testcase for pipe

Zhangjin Wu (76):
       selftests/nolibc: add a standalone test report macro
       selftests/nolibc: always print the path to test log file
       selftests/nolibc: restore the failed tests print
       tools/nolibc: fix up #error compile failures with -ENOSYS
       tools/nolibc: fix up undeclared syscall macros with #ifdef and -ENOSYS
       tools/nolibc: sys.h: add a syscall return helper
       tools/nolibc: unistd.h: apply __sysret() helper
       tools/nolibc: sys.h: apply __sysret() helper
       tools/nolibc: unistd.h: reorder the syscall macros
       tools/nolibc: arch-*.h: fix up code indent errors
       toolc/nolibc: arch-*.h: clean up whitespaces after __asm__
       tools/nolibc: arch-loongarch.h: shrink with _NOLIBC_SYSCALL_CLOBBERLIST
       tools/nolibc: arch-mips.h: shrink with _NOLIBC_SYSCALL_CLOBBERLIST
       tools/nolibc: add missing my_syscall6() for mips
       tools/nolibc: __sysret: support syscalls who return a pointer
       tools/nolibc: clean up mmap() routine
       tools/nolibc: clean up sbrk() routine
       selftests/nolibc: export argv0 for some tests
       selftests/nolibc: prepare: create /dev/zero
       selftests/nolibc: add EXPECT_PTREQ, EXPECT_PTRNE and EXPECT_PTRER
       selftests/nolibc: add sbrk_0 to test current brk getting
       selftests/nolibc: add mmap_bad test case
       selftests/nolibc: add munmap_bad test case
       selftests/nolibc: add mmap_munmap_good test case
       selftests/nolibc: add run-libc-test target
       selftests/nolibc: stat_fault: silence NULL argument warning with glibc
       selftests/nolibc: gettid: restore for glibc and musl
       selftests/nolibc: add _LARGEFILE64_SOURCE for musl
       selftests/nolibc: fix up int_fast16/32_t test cases for musl
       tools/nolibc: types.h: add RB_ flags for reboot()
       selftests/nolibc: prefer <sys/reboot.h> to <linux/reboot.h>
       selftests/nolibc: fix up kernel parameters support
       selftests/nolibc: link_cross: use /proc/self/cmdline
       tools/nolibc: add rmdir() support
       selftests/nolibc: add a new rmdir() test case
       selftests/nolibc: fix up failures when CONFIG_PROC_FS=n
       selftests/nolibc: prepare /tmp for tests that need to write
       selftests/nolibc: vfprintf: remove MEMFD_CREATE dependency
       selftests/nolibc: chdir_root: restore current path after test
       selftests/nolibc: stat_timestamps: remove procfs dependency
       selftests/nolibc: chroot_exe: remove procfs dependency
       selftests/nolibc: add chmod_argv0 test
       selftests/nolibc: report: print a summarized test status
       selftests/nolibc: report: print total tests
       selftests/nolibc: report: align passed, skipped and failed
       selftests/nolibc: report: extrude the test status line
       selftests/nolibc: report: add newline before test failures
       tools/nolibc: arch-*.h: add missing space after ','
       tools/nolibc: fix up startup failures for -O0 under gcc < 11.1.0
       tools/nolibc: remove the old sys_stat support
       tools/nolibc: add new crt.h with _start_c
       tools/nolibc: stackprotector.h: add empty __stack_chk_init for !_NOLIBC_STACKPROTECTOR
       tools/nolibc: crt.h: initialize stack protector
       tools/nolibc: arm: shrink _start with _start_c
       tools/nolibc: aarch64: shrink _start with _start_c
       tools/nolibc: i386: shrink _start with _start_c
       tools/nolibc: x86_64: shrink _start with _start_c
       tools/nolibc: mips: shrink _start with _start_c
       tools/nolibc: loongarch: shrink _start with _start_c
       tools/nolibc: riscv: shrink _start with _start_c
       tools/nolibc: s390: shrink _start with _start_c
       selftests/nolibc: add EXPECT_PTRGE, EXPECT_PTRGT, EXPECT_PTRLE, EXPECT_PTRLT
       selftests/nolibc: add testcases for startup code
       selftests/nolibc: allow run nolibc-test locally
       selftests/nolibc: allow test -include /path/to/nolibc.h
       selftests/nolibc: mmap_munmap_good: fix up return value
       tools/nolibc: add support for powerpc
       tools/nolibc: add support for powerpc64
       selftests/nolibc: add XARCH and ARCH mapping support
       selftests/nolibc: add test support for ppc
       selftests/nolibc: add test support for ppc64le
       selftests/nolibc: add test support for ppc64
       selftests/nolibc: allow report with existing test log
       tools/nolibc: stackprotector.h: make __stack_chk_init static
       selftests/nolibc: libc-test: use HOSTCC instead of CC
       tools/nolibc: silence ppc64 compile warnings

  MAINTAINERS                                  |   1 +
  tools/include/nolibc/Makefile                |   1 +
  tools/include/nolibc/arch-aarch64.h          |  85 +---
  tools/include/nolibc/arch-arm.h              | 111 +----
  tools/include/nolibc/arch-i386.h             |  86 +---
  tools/include/nolibc/arch-loongarch.h        |  83 +---
  tools/include/nolibc/arch-mips.h             | 147 +++----
  tools/include/nolibc/arch-powerpc.h          | 221 ++++++++++
  tools/include/nolibc/arch-riscv.h            |  83 +---
  tools/include/nolibc/arch-s390.h             |  77 +---
  tools/include/nolibc/arch-x86_64.h           |  86 +---
  tools/include/nolibc/arch.h                  |   2 +
  tools/include/nolibc/crt.h                   |  61 +++
  tools/include/nolibc/nolibc.h                |   9 +-
  tools/include/nolibc/stackprotector.h        |   5 +-
  tools/include/nolibc/stdint.h                |   2 +-
  tools/include/nolibc/stdio.h                 |  27 ++
  tools/include/nolibc/stdlib.h                |  12 +-
  tools/include/nolibc/sys.h                   | 534 +++++++----------------
  tools/include/nolibc/types.h                 |  22 +-
  tools/include/nolibc/unistd.h                |  13 +-
  tools/testing/selftests/nolibc/Makefile      | 111 +++--
  tools/testing/selftests/nolibc/nolibc-test.c | 608 ++++++++++++++++++++-------
  23 files changed, 1221 insertions(+), 1166 deletions(-)
  create mode 100644 tools/include/nolibc/arch-powerpc.h
  create mode 100644 tools/include/nolibc/crt.h

----------------------------------------------------------------
View attachment "linux-kselftest-nolibc-6.6-rc1.diff" of type "text/x-patch" (164846 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ