mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-06-05 10:42:13 +02:00
Remove the syscall sandbox
After initially being merged in #20487, it's no-longer clear that an internal syscall sandboxing mechanism is something that Bitcoin Core should have/maintain, especially when compared to better maintained/supported alterantives, i.e firejail. Note that given where it's used, the sandbox also gets dragged into the kernel. There is some related discussion in #24771. This should not require any sort of deprecation, as this was only ever an opt-in, experimental feature. Closes #24771.
This commit is contained in:
37
configure.ac
37
configure.ac
@@ -96,12 +96,6 @@ case $host in
|
||||
;;
|
||||
esac
|
||||
|
||||
AC_ARG_WITH([seccomp],
|
||||
[AS_HELP_STRING([--with-seccomp],
|
||||
[enable experimental syscall sandbox feature (-sandbox), default is yes if seccomp-bpf is detected under Linux x86_64])],
|
||||
[seccomp_found=$withval],
|
||||
[seccomp_found=auto])
|
||||
|
||||
AC_ARG_ENABLE([c++20],
|
||||
[AS_HELP_STRING([--enable-c++20],
|
||||
[enable compilation in c++20 mode (disabled by default)])],
|
||||
@@ -1539,36 +1533,6 @@ if test "$use_external_signer" != "no"; then
|
||||
fi
|
||||
AM_CONDITIONAL([ENABLE_EXTERNAL_SIGNER], [test "$use_external_signer" = "yes"])
|
||||
|
||||
dnl Do not compile with syscall sandbox support when compiling under the sanitizers.
|
||||
dnl The sanitizers introduce use of syscalls that are not typically used in bitcoind
|
||||
dnl (such as execve when the sanitizers execute llvm-symbolizer).
|
||||
if test "$use_sanitizers" != ""; then
|
||||
AC_MSG_WARN([Specifying --with-sanitizers forces --without-seccomp since the sanitizers introduce use of syscalls not allowed by the bitcoind syscall sandbox (-sandbox=<mode>).])
|
||||
seccomp_found=no
|
||||
fi
|
||||
if test "$seccomp_found" != "no"; then
|
||||
AC_MSG_CHECKING([for seccomp-bpf (Linux x86-64)])
|
||||
AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[
|
||||
@%:@include <linux/seccomp.h>
|
||||
]], [[
|
||||
#if !defined(__x86_64__)
|
||||
# error Syscall sandbox is an experimental feature currently available only under Linux x86-64.
|
||||
#endif
|
||||
]])],[
|
||||
AC_MSG_RESULT([yes])
|
||||
seccomp_found="yes"
|
||||
AC_DEFINE([USE_SYSCALL_SANDBOX], [1], [Define this symbol to build with syscall sandbox support.])
|
||||
],[
|
||||
AC_MSG_RESULT([no])
|
||||
seccomp_found="no"
|
||||
])
|
||||
fi
|
||||
dnl Currently only enable -sandbox=<mode> feature if seccomp is found.
|
||||
dnl In the future, sandboxing could be also be supported with other
|
||||
dnl sandboxing mechanisms besides seccomp.
|
||||
use_syscall_sandbox=$seccomp_found
|
||||
AM_CONDITIONAL([ENABLE_SYSCALL_SANDBOX], [test "$use_syscall_sandbox" != "no"])
|
||||
|
||||
dnl Check for reduced exports
|
||||
if test "$use_reduce_exports" = "yes"; then
|
||||
AX_CHECK_COMPILE_FLAG([-fvisibility=hidden], [CORE_CXXFLAGS="$CORE_CXXFLAGS -fvisibility=hidden"],
|
||||
@@ -2008,7 +1972,6 @@ echo
|
||||
echo "Options used to compile and link:"
|
||||
echo " external signer = $use_external_signer"
|
||||
echo " multiprocess = $build_multiprocess"
|
||||
echo " with experimental syscall sandbox support = $use_syscall_sandbox"
|
||||
echo " with libs = $build_bitcoin_libs"
|
||||
echo " with wallet = $enable_wallet"
|
||||
if test "$enable_wallet" != "no"; then
|
||||
|
||||
Reference in New Issue
Block a user