[PATCH 0/9] sandbox: use native setjmp/longjmp/initjmp implementation by default

Ahmad Fatoum a.fatoum at pengutronix.de
Mon Nov 25 07:35:14 PST 2024


In order to implement initjmp, we have two ways with available
functionality: The sigaltstack we are currently using and
makecontext/swapcontext. makecontext/swapcontext are unfortunately
deprecated in favor of POSIX threads and the sigaltstack runs afoul of
AddressSanitizer when compiled with clang.

This series fixes this by using the already existent assembly
implementations

Ahmad Fatoum (9):
  sandbox: asm: support inclusion from sandbox os support code
  test: self: setjmp: add simple initial testcase
  sandbox: source/invoke um Makefiles provided by host architecture
  sandbox: setjmp: mark C version as __weak
  sandbox: use native setjmp/longjmp/initjmp implementation by default
  sandbox: retire HAVE_ARCH_ASAN
  bthread: move asan fiber API into header
  test: self: setjmp: make compatible with ASAN
  bthread: fix use of ASAN fiber stack switch API

 Makefile                           |  2 +
 arch/Kconfig                       |  3 ++
 arch/arm/include/asm/setjmp.h      |  2 +
 arch/arm/um/Makefile               | 12 +++++
 arch/kvx/include/asm/setjmp.h      |  2 +
 arch/kvx/um/Makefile               |  6 +++
 arch/mips/include/asm/setjmp.h     |  2 +
 arch/mips/um/Makefile              |  6 +++
 arch/openrisc/include/asm/setjmp.h |  2 +
 arch/openrisc/um/Makefile          |  6 +++
 arch/powerpc/include/asm/setjmp.h  |  2 +
 arch/powerpc/um/Makefile           |  6 +++
 arch/riscv/include/asm/setjmp.h    |  2 +
 arch/riscv/um/Makefile             |  6 +++
 arch/sandbox/Kconfig               | 10 +++-
 arch/sandbox/Makefile              |  9 ++++
 arch/sandbox/include/asm/setjmp.h  | 44 +++++++++++++++-
 arch/sandbox/os/setjmp.c           |  6 +--
 arch/x86/include/asm/setjmp.h      |  2 +
 arch/x86/um/Makefile               | 12 +++++
 common/Kconfig                     |  3 --
 common/Kconfig.debug               |  5 +-
 common/bthread.c                   | 67 ++++++-----------------
 include/asm-generic/setjmp.h       | 27 ++++++++++
 scripts/subarch.include            | 11 ++++
 test/self/setjmp.c                 | 85 ++++++++++++++++++++++--------
 26 files changed, 260 insertions(+), 80 deletions(-)
 create mode 100644 arch/arm/um/Makefile
 create mode 100644 arch/kvx/um/Makefile
 create mode 100644 arch/mips/um/Makefile
 create mode 100644 arch/openrisc/um/Makefile
 create mode 100644 arch/powerpc/um/Makefile
 create mode 100644 arch/riscv/um/Makefile
 create mode 100644 arch/x86/um/Makefile
 create mode 100644 include/asm-generic/setjmp.h
 create mode 100644 scripts/subarch.include

-- 
2.39.5




More information about the barebox mailing list