linux-um.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/9] Start porting UML to nolibc
@ 2025-09-15  7:11 Benjamin Berg
  2025-09-15  7:11 ` [PATCH 1/9] tools compiler.h: fix __used definition Benjamin Berg
                   ` (8 more replies)
  0 siblings, 9 replies; 20+ messages in thread
From: Benjamin Berg @ 2025-09-15  7:11 UTC (permalink / raw)
  To: linux-um, Willy Tarreau, Thomas Weißschuh, linux-kselftest,
	Arnaldo Carvalho de Melo
  Cc: linux-kernel, Tiwei Bie, Benjamin Berg

From: Benjamin Berg <benjamin.berg@intel.com>

For a while now, we have discussed that it may be better to avoid using
libc inside UML as it may be interfering in unexpected ways with kernel
functionality. A major point of concern is that there is no guarantee
that the libc is not using any address space that may conflict with
kernel addresses.

This patchset is an attempt to start a nolibc port of UML. The goal is
to port UML to use nolibc in smaller chunks to make the switch more
manageable.

There are three parts to this patchset:
 * Two patches to use tools/include headers instead of kernel headers
   for userspace files.
 * A few nolibc fixes and a new NOLIBC_NO_STARTCODE compile flag for it
 * Finally nolibc build support for UML and switching two files

The first two parts could be merged independently. The last step to use
nolibc inside UML obviously depends on the first two.

Benjamin

Benjamin Berg (9):
  tools compiler.h: fix __used definition
  um: use tools/include for user files
  tools/nolibc/stdio: remove perror if NOLIBC_IGNORE_ERRNO is set
  tools/nolibc/dirent: avoid errno in readdir_r
  tools/nolibc: use __fallthrough__ rather than fallthrough
  tools/nolibc: add option to disable startup code
  um: add infrastructure to build files using nolibc
  um: use nolibc for the --showconfig implementation
  um: switch ptrace FP register access to nolibc

 arch/um/Makefile                              | 32 ++++++++++++++++---
 .../um/include/shared/generated/asm-offsets.h |  1 +
 .../include/shared/generated/user_constants.h |  1 +
 arch/um/include/shared/init.h                 |  2 +-
 arch/um/include/shared/os.h                   |  2 ++
 arch/um/include/shared/user.h                 |  5 ---
 arch/um/kernel/Makefile                       |  2 +-
 arch/um/kernel/skas/stub.c                    |  1 +
 arch/um/kernel/skas/stub_exe.c                |  4 +--
 arch/um/os-Linux/skas/process.c               |  6 ++--
 arch/um/os-Linux/start_up.c                   |  4 +--
 arch/um/scripts/Makefile.rules                | 10 ++++--
 arch/x86/um/Makefile                          |  6 ++--
 arch/x86/um/os-Linux/Makefile                 |  5 ++-
 arch/x86/um/os-Linux/registers.c              | 22 +++++--------
 arch/x86/um/user-offsets.c                    |  1 -
 tools/include/linux/compiler.h                |  2 +-
 tools/include/nolibc/arch-arm.h               |  2 ++
 tools/include/nolibc/arch-arm64.h             |  2 ++
 tools/include/nolibc/arch-loongarch.h         |  2 ++
 tools/include/nolibc/arch-m68k.h              |  2 ++
 tools/include/nolibc/arch-mips.h              |  2 ++
 tools/include/nolibc/arch-powerpc.h           |  2 ++
 tools/include/nolibc/arch-riscv.h             |  2 ++
 tools/include/nolibc/arch-s390.h              |  2 ++
 tools/include/nolibc/arch-sh.h                |  2 ++
 tools/include/nolibc/arch-sparc.h             |  2 ++
 tools/include/nolibc/arch-x86.h               |  4 +++
 tools/include/nolibc/compiler.h               |  4 +--
 tools/include/nolibc/crt.h                    |  3 ++
 tools/include/nolibc/dirent.h                 |  6 ++--
 tools/include/nolibc/stackprotector.h         |  2 ++
 tools/include/nolibc/stdio.h                  |  2 ++
 tools/include/nolibc/stdlib.h                 |  2 ++
 tools/include/nolibc/sys.h                    |  3 +-
 tools/include/nolibc/sys/auxv.h               |  3 ++
 36 files changed, 108 insertions(+), 47 deletions(-)
 create mode 120000 arch/um/include/shared/generated/asm-offsets.h
 create mode 120000 arch/um/include/shared/generated/user_constants.h

-- 
2.51.0



^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2025-09-15 11:22 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-15  7:11 [PATCH 0/9] Start porting UML to nolibc Benjamin Berg
2025-09-15  7:11 ` [PATCH 1/9] tools compiler.h: fix __used definition Benjamin Berg
2025-09-15  8:39   ` Thomas Weißschuh
2025-09-15  7:11 ` [PATCH 2/9] um: use tools/include for user files Benjamin Berg
2025-09-15 10:40   ` kernel test robot
2025-09-15  7:11 ` [PATCH 3/9] tools/nolibc/stdio: remove perror if NOLIBC_IGNORE_ERRNO is set Benjamin Berg
2025-09-15  8:44   ` Thomas Weißschuh
2025-09-15  7:11 ` [PATCH 4/9] tools/nolibc/dirent: avoid errno in readdir_r Benjamin Berg
2025-09-15  8:45   ` Thomas Weißschuh
2025-09-15  7:11 ` [PATCH 5/9] tools/nolibc: use __fallthrough__ rather than fallthrough Benjamin Berg
2025-09-15  8:50   ` Thomas Weißschuh
2025-09-15  7:11 ` [PATCH 6/9] tools/nolibc: add option to disable startup code Benjamin Berg
2025-09-15  8:55   ` Thomas Weißschuh
2025-09-15  7:11 ` [PATCH 7/9] um: add infrastructure to build files using nolibc Benjamin Berg
2025-09-15  8:57   ` Thomas Weißschuh
2025-09-15  7:11 ` [PATCH 8/9] um: use nolibc for the --showconfig implementation Benjamin Berg
2025-09-15  7:11 ` [PATCH 9/9] um: switch ptrace FP register access to nolibc Benjamin Berg
2025-09-15  9:07   ` Thomas Weißschuh
2025-09-15 11:09     ` Berg, Benjamin
2025-09-15 11:22       ` Thomas Weißschuh

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).