config USE_MIPS16
bool "Build packages with MIPS16 instructions" if TARGET_OPTIONS
depends on HAS_MIPS16
- depends on !GCC_VERSION_4_6
default y
help
If your target CPU does support the MIPS16 instruction set
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
help
- If enabled, OpenWrt will compile using an existing toolchain instead of
+ If enabled, the buildroot will compile using an existing toolchain instead of
compiling one.
config NATIVE_TOOLCHAIN
depends on EXTERNAL_TOOLCHAIN
select NO_STRIP
help
- If enabled, OpenWrt will compile using the native toolchain for your
+ If enabled, the buildroot will compile using the native toolchain for your
host instead of compiling one.
config TARGET_NAME
default "/opt/cross/powerpc-unknown-linux-gnu" if powerpc
default "/opt/cross/x86_64-unknown-linux-gnu" if x86_64
- config TOOLCHAIN_LIBC
- string
+ choice TOOLCHAIN_LIBC_TYPE
prompt "Toolchain libc" if DEVEL
depends on EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN
- default "uclibc"
+ default EXTERNAL_TOOLCHAIN_LIBC_USE_MUSL
help
Specify the libc type used by the external toolchain. The given value
is passed as -m flag to all gcc and g++ invocations. This is mainly
intended for multilib toolchains which support glibc and uclibc at
the same time. If no value is specified, no -m flag is passed.
+ config EXTERNAL_TOOLCHAIN_LIBC_USE_GLIBC
+ bool "glibc"
+ select USE_GLIBC
+
+ config EXTERNAL_TOOLCHAIN_LIBC_USE_MUSL
+ bool "musl"
+ select USE_MUSL
+
+ endchoice
+
+ config EXTERNAL_GCC_VERSION
+ string
+ prompt "External Toolchain GCC Version" if DEVEL
+ depends on EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN
+ help
+ Manually specify the GCC version used by the selected
+ external toolchain.
+
+ config TOOLCHAIN_LIBC
+ string
+ depends on EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN
+ default "glibc" if EXTERNAL_TOOLCHAIN_LIBC_USE_GLIBC
+ default "musl" if EXTERNAL_TOOLCHAIN_LIBC_USE_MUSL
+
config TOOLCHAIN_BIN_PATH
string
prompt "Toolchain program path" if DEVEL
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 y if powerpc64
- default n
help
Some builds may require a 'biarch' toolchain. This option
allows you to specify an additional target arch.
config EXTRA_TARGET_ARCH_NAME
string
- default "powerpc64" if powerpc64
prompt "Extra architecture name" if EXTRA_TARGET_ARCH
help
Specify the cpu name (eg powerpc64 or x86_64) of the
config EXTRA_TARGET_ARCH_OPTS
string
- default "-m64" if powerpc64
prompt "Extra architecture compiler options" if EXTRA_TARGET_ARCH
help
If you're specifying an addition target architecture,
bool "n64"
config MIPS64_ABI_N32
+ depends on !LIBC_USE_MUSL
bool "n32"
config MIPS64_ABI_O32
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
source "toolchain/gcc/Config.in"
+config NASM
+ bool
+ depends on ( i386 || x86_64 )
+ prompt "Build nasm" if TOOLCHAINOPTS
+ default y
+ help
+ Enable if you want to build nasm
+
comment "C Library"
depends on TOOLCHAINOPTS
choice
prompt "C Library implementation" if TOOLCHAINOPTS
- default LIBC_USE_GLIBC if mips64 || mips64el
+ default LIBC_USE_GLIBC if arc
default LIBC_USE_MUSL
help
Select the C library implementation.
config LIBC_USE_GLIBC
- bool "Use (e)glibc"
+ bool "Use glibc"
select USE_GLIBC
- config LIBC_USE_UCLIBC
- select USE_UCLIBC
- bool "Use uClibc"
- depends on !(aarch64 || aarch64_be)
-
config LIBC_USE_MUSL
select USE_MUSL
bool "Use musl"
- depends on !(mips64 || mips64el)
+ depends on !arc
endchoice
-source "toolchain/glibc/Config.in"
-source "toolchain/uClibc/Config.in"
source "toolchain/musl/Config.in"
comment "Debuggers"
config GDB
bool
- depends on !(aarch64 || aarch64_be)
prompt "Build gdb" if TOOLCHAINOPTS
default y if !EXTERNAL_TOOLCHAIN
help
Enable if you want to build the gdb.
-config INSIGHT
+config GDB_PYTHON
bool
- prompt "Build insight-gdb" if TOOLCHAINOPTS
- select GDB
- default n
+ depends on GDB
+ prompt "Build gdb with python binding"
+
help
- Enable if you want to build insight-gdb.
+ Enable the python bindings for GDB to allow using python in the gdb shell.
-config USE_GLIBC
+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
- default y if !TOOLCHAINOPTS && !EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN && (mips64 || mips64el)
+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
config USE_MUSL
- default y if !TOOLCHAINOPTS && !EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN && !(mips64 || mips64el)
+ default y if !TOOLCHAINOPTS && !EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN && !(arc)
+ bool
+
+config SSP_SUPPORT
+ default y if !PKG_CC_STACKPROTECTOR_NONE
bool
config USE_EXTERNAL_LIBC
bool
default y if EXTERNAL_TOOLCHAIN || NATIVE_TOOLCHAIN
+source "toolchain/binutils/Config.version"
source "toolchain/gcc/Config.version"
-source "toolchain/glibc/Config.version"
-source "toolchain/uClibc/Config.version"
-source "toolchain/musl/Config.version"
-
config LIBC
string
default "glibc" if USE_GLIBC
- default "uClibc" if USE_UCLIBC
default "musl" if USE_MUSL
-config LIBC_VERSION
- string
- default GLIBC_VERSION if USE_GLIBC
- default UCLIBC_VERSION if USE_UCLIBC
- default MUSL_VERSION 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)