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