25a5b9665d
This patch extends the "copy extra GCC libraries to target" feature to also work for internal toolchains. The variable has been renamed to be BR2_TOOLCHAIN_EXTRA_LIBS and the configuration option moved under the generic toolchain package. For external toolchains, the step that does the copy is still in the copy_toolchain_lib_root() helper which copies from the sysroot to the target. For the internal toolchain, the host gcc-final package does a post install hook to copy the libraries from the toolchain build folders to both the sysroot and target(!static). Examples where this can be useful is for adding debug libraries to the target like the GCC libsanitizer (libasan/liblsan/...). Cc: Markus Mayer <mmayer@broadcom.com> Signed-off-by: Matthew Weber <matthew.weber@rockwellcollins.com> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
442 lines
12 KiB
Plaintext
442 lines
12 KiB
Plaintext
if BR2_TOOLCHAIN_EXTERNAL_CUSTOM
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_PREFIX
|
|
default BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX
|
|
|
|
config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL
|
|
default "toolchain-external-custom"
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_URL
|
|
string "Toolchain URL"
|
|
depends on BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD
|
|
help
|
|
URL of the custom toolchain tarball to download and install.
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_REL_BIN_PATH
|
|
string "Toolchain relative binary path"
|
|
default "bin"
|
|
depends on BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD
|
|
help
|
|
Path to where the binaries (e.g. the compiler) can be found,
|
|
relative to the downloaded toolchain root directory. The
|
|
default is "bin" and is correct for most toolchains.
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX
|
|
string "Toolchain prefix"
|
|
default "$(ARCH)-linux"
|
|
|
|
choice
|
|
bool "External toolchain gcc version"
|
|
help
|
|
Set to the gcc version that is used by your external
|
|
toolchain.
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_GCC_9
|
|
bool "9.x"
|
|
select BR2_TOOLCHAIN_GCC_AT_LEAST_9
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_GCC_8
|
|
bool "8.x"
|
|
select BR2_TOOLCHAIN_GCC_AT_LEAST_8
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_GCC_7
|
|
bool "7.x"
|
|
select BR2_TOOLCHAIN_GCC_AT_LEAST_7
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_GCC_6
|
|
bool "6.x"
|
|
select BR2_TOOLCHAIN_GCC_AT_LEAST_6
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_GCC_5
|
|
bool "5.x"
|
|
select BR2_TOOLCHAIN_GCC_AT_LEAST_5
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_GCC_4_9
|
|
bool "4.9.x"
|
|
select BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_GCC_4_8
|
|
bool "4.8.x"
|
|
select BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_GCC_4_7
|
|
bool "4.7.x"
|
|
select BR2_TOOLCHAIN_GCC_AT_LEAST_4_7
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_GCC_4_6
|
|
bool "4.6.x"
|
|
select BR2_TOOLCHAIN_GCC_AT_LEAST_4_6
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_GCC_4_5
|
|
bool "4.5.x"
|
|
select BR2_TOOLCHAIN_GCC_AT_LEAST_4_5
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_GCC_4_4
|
|
bool "4.4.x"
|
|
select BR2_TOOLCHAIN_GCC_AT_LEAST_4_4
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_GCC_4_3
|
|
bool "4.3.x"
|
|
select BR2_TOOLCHAIN_GCC_AT_LEAST_4_3
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_GCC_OLD
|
|
bool "older"
|
|
help
|
|
Use this option if your GCC version is older than any of the
|
|
above.
|
|
|
|
Note that the Buildroot community doesn't do any testing with
|
|
such old toolchains. Some packages may fail to build in
|
|
surprising ways, or the generated root filesystem may not
|
|
work at all. Use such old toolchains at your own risk.
|
|
|
|
endchoice
|
|
|
|
choice
|
|
bool "External toolchain kernel headers series"
|
|
default BR2_TOOLCHAIN_EXTERNAL_HEADERS_REALLY_OLD
|
|
help
|
|
Set to the kernel headers version that were used to build
|
|
this external toolchain.
|
|
|
|
This is used to hide/show some packages that have strict
|
|
requirements on the version of kernel headers.
|
|
|
|
If unsure what version your toolchain is using, you can look
|
|
at the value of LINUX_VERSION_CODE in linux/version.h in your
|
|
toolchain. The Linux version is M.m.p, with:
|
|
M = ( LINUX_VERSION_CODE >> 16 ) & 0xFF
|
|
m = ( LINUX_VERSION_CODE >> 8 ) & 0xFF
|
|
p = ( LINUX_VERSION_CODE >> 0 ) & 0xFF
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_3
|
|
bool "5.3.x"
|
|
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_3
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_2
|
|
bool "5.2.x"
|
|
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_2
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_1
|
|
bool "5.1.x"
|
|
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_1
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_0
|
|
bool "5.0.x"
|
|
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_0
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_20
|
|
bool "4.20.x"
|
|
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_20
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_19
|
|
bool "4.19.x"
|
|
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_19
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_18
|
|
bool "4.18.x"
|
|
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_18
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_17
|
|
bool "4.17.x"
|
|
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_17
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_16
|
|
bool "4.16.x"
|
|
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_16
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_15
|
|
bool "4.15.x"
|
|
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_15
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_14
|
|
bool "4.14.x"
|
|
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_14
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_13
|
|
bool "4.13.x"
|
|
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_13
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_12
|
|
bool "4.12.x"
|
|
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_11
|
|
bool "4.11.x"
|
|
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_11
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_10
|
|
bool "4.10.x"
|
|
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_10
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_9
|
|
bool "4.9.x"
|
|
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_8
|
|
bool "4.8.x"
|
|
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_8
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_7
|
|
bool "4.7.x"
|
|
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_7
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_6
|
|
bool "4.6.x"
|
|
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_6
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_5
|
|
bool "4.5.x"
|
|
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_5
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_4
|
|
bool "4.4.x"
|
|
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_4
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_3
|
|
bool "4.3.x"
|
|
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_3
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_2
|
|
bool "4.2.x"
|
|
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_2
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_1
|
|
bool "4.1.x"
|
|
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_1
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_0
|
|
bool "4.0.x"
|
|
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_19
|
|
bool "3.19.x"
|
|
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_19
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_18
|
|
bool "3.18.x"
|
|
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_17
|
|
bool "3.17.x"
|
|
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_16
|
|
bool "3.16.x"
|
|
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_15
|
|
bool "3.15.x"
|
|
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_15
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_14
|
|
bool "3.14.x"
|
|
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_13
|
|
bool "3.13.x"
|
|
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_13
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_12
|
|
bool "3.12.x"
|
|
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_11
|
|
bool "3.11.x"
|
|
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_11
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_10
|
|
bool "3.10.x"
|
|
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_9
|
|
bool "3.9.x"
|
|
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_9
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_8
|
|
bool "3.8.x"
|
|
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_8
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_7
|
|
bool "3.7.x"
|
|
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_6
|
|
bool "3.6.x"
|
|
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_6
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_5
|
|
bool "3.5.x"
|
|
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_5
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_4
|
|
bool "3.4.x"
|
|
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_3
|
|
bool "3.3.x"
|
|
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_3
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_2
|
|
bool "3.2.x"
|
|
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_1
|
|
bool "3.1.x"
|
|
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_1
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_0
|
|
bool "3.0.x"
|
|
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_REALLY_OLD
|
|
bool "2.6.x"
|
|
|
|
endchoice
|
|
|
|
choice
|
|
prompt "External toolchain C library"
|
|
default BR2_TOOLCHAIN_EXTERNAL_CUSTOM_UCLIBC
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_CUSTOM_UCLIBC
|
|
bool "uClibc/uClibc-ng"
|
|
select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
|
|
help
|
|
Select this option if your external toolchain uses the
|
|
uClibc (available from http://www.uclibc.org/)
|
|
or uClibc-ng (available from http://www.uclibc-ng.org)
|
|
C library.
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC
|
|
bool "glibc/eglibc"
|
|
depends on !BR2_STATIC_LIBS
|
|
select BR2_TOOLCHAIN_EXTERNAL_GLIBC
|
|
help
|
|
Select this option if your external toolchain uses the GNU C
|
|
library (available from https://www.gnu.org/software/libc/)
|
|
or its variant the eglibc library (http://www.eglibc.org/).
|
|
|
|
Note: eglibc is a variant of glibc that (among other things)
|
|
can be configured to exclude some of its features. Using a
|
|
toolchain with eglibc configured to exclude key features may
|
|
cause build failures to some packages.
|
|
|
|
comment "(e)glibc only available with shared lib support"
|
|
depends on BR2_STATIC_LIBS
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_CUSTOM_MUSL
|
|
bool "musl (experimental)"
|
|
select BR2_TOOLCHAIN_EXTERNAL_MUSL
|
|
help
|
|
Select this option if your external toolchain uses the
|
|
'musl' C library, available from http://www.musl-libc.org/.
|
|
|
|
endchoice
|
|
|
|
if BR2_TOOLCHAIN_EXTERNAL_CUSTOM_UCLIBC
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_WCHAR
|
|
bool "Toolchain has WCHAR support?"
|
|
select BR2_USE_WCHAR
|
|
help
|
|
Select this option if your external toolchain supports
|
|
WCHAR. If you don't know, leave the default value, Buildroot
|
|
will tell you if it's correct or not.
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_LOCALE
|
|
bool "Toolchain has locale support?"
|
|
select BR2_TOOLCHAIN_EXTERNAL_WCHAR
|
|
select BR2_ENABLE_LOCALE
|
|
help
|
|
Select this option if your external toolchain has locale
|
|
support. If you don't know, leave the default value,
|
|
Buildroot will tell you if it's correct or not.
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS
|
|
bool "Toolchain has threads support?"
|
|
default y
|
|
select BR2_TOOLCHAIN_HAS_THREADS
|
|
help
|
|
Select this option if your external toolchain has thread
|
|
support. If you don't know, leave the default value,
|
|
Buildroot will tell you if it's correct or not.
|
|
|
|
if BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG
|
|
bool "Toolchain has threads debugging support?"
|
|
default y
|
|
select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
|
|
help
|
|
Select this option if your external toolchain has thread
|
|
debugging support. If you don't know, leave the default
|
|
value, Buildroot will tell you if it's correct or not.
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_NPTL
|
|
bool "Toolchain has NPTL threads support?"
|
|
default y
|
|
select BR2_TOOLCHAIN_HAS_THREADS_NPTL
|
|
help
|
|
Select this option if your external toolchain uses the NPTL
|
|
(Native Posix Thread Library) implementation of Posix
|
|
threads. If you don't know, leave the default value,
|
|
Buildroot will tell you if it's correct or not.
|
|
|
|
endif # BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS
|
|
|
|
endif # BR2_TOOLCHAIN_EXTERNAL_CUSTOM_UCLIBC
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_HAS_SSP
|
|
bool "Toolchain has SSP support?"
|
|
default y if BR2_TOOLCHAIN_EXTERNAL_GLIBC
|
|
default y if BR2_TOOLCHAIN_EXTERNAL_MUSL
|
|
select BR2_TOOLCHAIN_HAS_SSP
|
|
help
|
|
Selection this option if your external toolchain has Stack
|
|
Smashing Protection support enabled. If you don't know,
|
|
leave the default value, Buildroot will tell you if it's
|
|
correct or not.
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_INET_RPC
|
|
bool "Toolchain has RPC support?"
|
|
default y if BR2_TOOLCHAIN_EXTERNAL_GLIBC
|
|
depends on !BR2_TOOLCHAIN_EXTERNAL_MUSL
|
|
select BR2_TOOLCHAIN_HAS_NATIVE_RPC
|
|
help
|
|
Select this option if your external toolchain supports
|
|
RPC. If you don't know, leave the default value, Buildroot
|
|
will tell you if it's correct or not.
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_CXX
|
|
bool "Toolchain has C++ support?"
|
|
select BR2_INSTALL_LIBSTDCPP
|
|
help
|
|
Select this option if your external toolchain has C++
|
|
support. If you don't know, leave the default value,
|
|
Buildroot will tell you if it's correct or not.
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_DLANG
|
|
bool "Toolchain has D support?"
|
|
select BR2_TOOLCHAIN_HAS_DLANG
|
|
help
|
|
Select this option if your external toolchain has D
|
|
support.
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_FORTRAN
|
|
bool "Toolchain has Fortran support?"
|
|
select BR2_TOOLCHAIN_HAS_FORTRAN
|
|
help
|
|
Select this option if your external toolchain has Fortran
|
|
support. If you don't know, leave the default value,
|
|
Buildroot will tell you if it's correct or not.
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_OPENMP
|
|
bool "Toolchain has OpenMP support?"
|
|
select BR2_TOOLCHAIN_HAS_OPENMP
|
|
help
|
|
Select this option if your external toolchain has OpenMP
|
|
support. If you don't know, leave the default value,
|
|
Buildroot will tell you if it's correct or not.
|
|
|
|
endif
|