Most people will answer N.
+ choice BPF_TOOLCHAIN
+ prompt "BPF toolchain" if DEVEL
+ default BPF_TOOLCHAIN_BUILD_LLVM if BUILDBOT
+ default BPF_TOOLCHAIN_PREBUILT if HAS_PREBUILT_LLVM_TOOLCHAIN
+ default BPF_TOOLCHAIN_NONE
+
+ config BPF_TOOLCHAIN_NONE
+ bool "None"
+
+ config BPF_TOOLCHAIN_PREBUILT
+ bool "Use prebuilt LLVM toolchain"
+ depends on HAS_PREBUILT_LLVM_TOOLCHAIN
+ select USE_LLVM_PREBUILT
+
+ config BPF_TOOLCHAIN_HOST
+ select USE_LLVM_HOST
+ bool "Use host LLVM toolchain"
+
+ config BPF_TOOLCHAIN_BUILD_LLVM
+ select USE_LLVM_BUILD
+ bool "Build LLVM toolchain for eBPF"
+ help
+ If enabled, a LLVM toolchain for building eBPF binaries will be built.
+ If this is not enabled, eBPF packages can only be built if the host
+ has a suitable toolchain
+ endchoice
+
+ config BPF_TOOLCHAIN_HOST_PATH
+ string
+ depends on BPF_TOOLCHAIN_HOST
+ prompt "Host LLVM toolchain path (prefix)" if DEVEL
+ default "/usr/local/opt/llvm" if HOST_OS_MACOS
+ default ""
+
menuconfig EXTERNAL_TOOLCHAIN
bool
prompt "Use external toolchain" if DEVEL
bool "glibc"
select USE_GLIBC
- config EXTERNAL_TOOLCHAIN_LIBC_USE_UCLIBC
- bool "uClibc"
- select USE_UCLIBC
- depends on !(aarch64 || aarch64_be)
-
config EXTERNAL_TOOLCHAIN_LIBC_USE_MUSL
bool "musl"
select USE_MUSL
string
depends on EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN
default "glibc" if EXTERNAL_TOOLCHAIN_LIBC_USE_GLIBC
- default "uclibc" if EXTERNAL_TOOLCHAIN_LIBC_USE_UCLIBC
default "musl" if EXTERNAL_TOOLCHAIN_LIBC_USE_MUSL
config TOOLCHAIN_BIN_PATH
string
prompt "Toolchain include path" if DEVEL
depends on EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN
+ default "./usr/include ./include/fortify ./include" if EXTERNAL_TOOLCHAIN_LIBC_USE_MUSL
default "./usr/include ./include"
help
Specify additional directories searched for header files (override
bool
prompt "Enable an extra toolchain target architecture" if TOOLCHAINOPTS
depends on !sparc
- default n
help
Some builds may require a 'biarch' toolchain. This option
allows you to specify an additional target arch.
source "toolchain/binutils/Config.in"
+config DWARVES
+ bool
+ prompt "Build pahole" if TOOLCHAINOPTS
+ depends on !HOST_OS_MACOS
+ help
+ Enable if you want to build pahole and the dwarves tools.
+
comment "Compiler"
depends on TOOLCHAINOPTS
choice
prompt "C Library implementation" if TOOLCHAINOPTS
- default LIBC_USE_UCLIBC if arc
+ default LIBC_USE_GLIBC if arc
default LIBC_USE_MUSL
help
Select the C library implementation.
config LIBC_USE_GLIBC
bool "Use glibc"
select USE_GLIBC
- depends on !arc
-
- config LIBC_USE_UCLIBC
- select USE_UCLIBC
- bool "Use uClibc"
- depends on !(aarch64 || aarch64_be || powerpc64)
- depends on BROKEN || !(arm || armeb || i386 || x86_64 || mips || mipsel || mips64 || mips64el || powerpc)
config LIBC_USE_MUSL
select USE_MUSL
endchoice
-source "toolchain/uClibc/Config.in"
source "toolchain/musl/Config.in"
comment "Debuggers"
help
Enable if you want to build the gdb.
-config USE_GLIBC
+config GDB_PYTHON
+ bool
+ depends on GDB
+ prompt "Build gdb with python binding"
+
+ help
+ Enable the python bindings for GDB to allow using python in the gdb shell.
+
+config HAS_BPF_TOOLCHAIN
+ bool
+
+config HAS_PREBUILT_LLVM_TOOLCHAIN
+ def_bool $(shell, [ -f llvm-bpf/.llvm-version ] && echo y || echo n)
+
+config USE_LLVM_HOST
+ select HAS_BPF_TOOLCHAIN
bool
-config USE_UCLIBC
+config USE_LLVM_PREBUILT
+ select HAS_BPF_TOOLCHAIN
+ default y if !DEVEL && !BUILDBOT && HAS_PREBUILT_LLVM_TOOLCHAIN
+ bool
+
+config USE_LLVM_BUILD
+ default y if !DEVEL && BUILDBOT
+ select HAS_BPF_TOOLCHAIN
+ bool
+
+config USE_GLIBC
default y if !TOOLCHAINOPTS && !EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN && (arc)
bool
bool
config SSP_SUPPORT
- default y if USE_MUSL || GCC_LIBSSP
+ default y if !PKG_CC_STACKPROTECTOR_NONE
bool
config USE_EXTERNAL_LIBC
config LIBC
string
default "glibc" if USE_GLIBC
- default "uClibc" if USE_UCLIBC
default "musl" if USE_MUSL
config TARGET_SUFFIX
string
default "gnueabi" if USE_GLIBC && (arm || armeb)
default "gnu" if USE_GLIBC && !(arm || armeb)
- default "uclibcgnueabi" if USE_UCLIBC && (arm || armeb)
- default "uclibc" if USE_UCLIBC && !(arm || armeb)
default "muslgnueabi" if USE_MUSL && (arm || armeb)
default "musl" if USE_MUSL && !(arm || armeb)