c64f948d2c
As our architecture support expands to a number of architectures that do not implement NPTL threading, and the number of packages that depend on NPTL specific features, it has become necessary to be able to know whether the toolchain has NPTL support or not. This commit adds a new BR2_TOOLCHAIN_HAS_THREADS_NPTL hidden Config.in option that allows packages to know whether NPTL is available or not. This hidden option is: * Automatically enabled when glibc/eglibc or musl toolchains are used, either internal or external. * Automatically enabled when an internal uClibc toolchain with NPTL support is configured. It is left disabled otherwise for internal uClibc toolchains. * Configured according to a visible Config.in option for custom external uClibc toolchains. [Peter: factor _EXTERNAL_HAS_THREADS in single if as suggested by Arnout] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
273 lines
8.4 KiB
Plaintext
273 lines
8.4 KiB
Plaintext
if BR2_TOOLCHAIN_BUILDROOT_UCLIBC
|
|
|
|
comment "uClibc Options"
|
|
|
|
choice
|
|
prompt "uClibc C library Version"
|
|
default BR2_UCLIBC_VERSION_0_9_33
|
|
help
|
|
Select the version of uClibc you wish to use.
|
|
|
|
config BR2_UCLIBC_VERSION_0_9_31
|
|
bool "uClibc 0.9.31.x"
|
|
depends on BR2_avr32
|
|
|
|
config BR2_UCLIBC_VERSION_0_9_32
|
|
bool "uClibc 0.9.32.x"
|
|
depends on !(BR2_arc || BR2_avr32 || BR2_sh || BR2_xtensa)
|
|
|
|
config BR2_UCLIBC_VERSION_0_9_33
|
|
bool "uClibc 0.9.33.x"
|
|
depends on !(BR2_arc || BR2_avr32 || BR2_xtensa)
|
|
|
|
config BR2_UCLIBC_VERSION_XTENSA_GIT
|
|
bool "uClibc Git Xtensa"
|
|
depends on BR2_xtensa
|
|
|
|
config BR2_UCLIBC_VERSION_SNAPSHOT
|
|
bool "daily snapshot"
|
|
depends on !(BR2_arc)
|
|
|
|
endchoice
|
|
|
|
config BR2_USE_UCLIBC_SNAPSHOT
|
|
string "Date (yyyymmdd) of snapshot or 'snapshot' for latest"
|
|
default "snapshot"
|
|
depends on BR2_UCLIBC_VERSION_SNAPSHOT
|
|
help
|
|
Use latest snapshot or one from a specific date?
|
|
|
|
config BR2_UCLIBC_VERSION_STRING
|
|
string
|
|
default 0.9.31.1 if BR2_UCLIBC_VERSION_0_9_31
|
|
default 0.9.32.1 if BR2_UCLIBC_VERSION_0_9_32
|
|
default 0.9.33.2 if BR2_UCLIBC_VERSION_0_9_33
|
|
default "f37101d94284c692ee9b23bc72ef38b9473cd316" if BR2_arc
|
|
default "7bf35c8b7d4a1f97174eb49f47f33946b282114c" if BR2_UCLIBC_VERSION_XTENSA_GIT
|
|
default BR2_USE_UCLIBC_SNAPSHOT if BR2_UCLIBC_VERSION_SNAPSHOT
|
|
|
|
config BR2_UCLIBC_CONFIG
|
|
string "uClibc configuration file to use?"
|
|
default "package/uclibc/uClibc-0.9.31.config" if BR2_UCLIBC_VERSION_0_9_31
|
|
default "package/uclibc/uClibc-0.9.32.config" if BR2_UCLIBC_VERSION_0_9_32
|
|
default "package/uclibc/uClibc-0.9.33.config" if BR2_UCLIBC_VERSION_0_9_33
|
|
default "package/uclibc/uClibc-snapshot.config" if BR2_arc
|
|
default "package/uclibc/uClibc-snapshot.config" if BR2_UCLIBC_VERSION_SNAPSHOT
|
|
default "package/uclibc/uClibc-snapshot.config" if BR2_UCLIBC_VERSION_XTENSA_GIT
|
|
help
|
|
Some people may wish to use their own modified uClibc configuration
|
|
file and will specify their config file location with this option.
|
|
See also docs/README in this package.
|
|
If unsure, use the default.
|
|
|
|
config BR2_TOOLCHAIN_BUILDROOT_LARGEFILE
|
|
bool "Enable large file (files > 2 GB) support"
|
|
select BR2_LARGEFILE
|
|
help
|
|
Enable this option if you want your toolchain to support
|
|
files bigger than 2 GB.
|
|
|
|
config BR2_TOOLCHAIN_BUILDROOT_INET_IPV6
|
|
bool "Enable IPv6 support"
|
|
select BR2_INET_IPV6
|
|
help
|
|
Enable this option if you want your toolchain to support
|
|
IPv6.
|
|
|
|
config BR2_TOOLCHAIN_BUILDROOT_INET_RPC
|
|
bool "Enable RPC support"
|
|
select BR2_TOOLCHAIN_HAS_NATIVE_RPC
|
|
help
|
|
Enable this option if you want your toolchain to support
|
|
RPC (needed for NFS, for example).
|
|
|
|
config BR2_TOOLCHAIN_BUILDROOT_WCHAR
|
|
bool "Enable WCHAR support"
|
|
select BR2_USE_WCHAR
|
|
help
|
|
Enable this option if you want your toolchain to support
|
|
wide characters (i.e characters longer than 8 bits, needed
|
|
for locale support).
|
|
|
|
config BR2_TOOLCHAIN_BUILDROOT_LOCALE
|
|
bool "Enable toolchain locale/i18n support"
|
|
select BR2_TOOLCHAIN_BUILDROOT_WCHAR
|
|
select BR2_ENABLE_LOCALE
|
|
help
|
|
Enable this option if you want your toolchain to support
|
|
localization and internationalization.
|
|
|
|
choice
|
|
prompt "Thread library implementation"
|
|
default BR2_PTHREADS_NATIVE if !(BR2_avr32 || BR2_xtensa)
|
|
default BR2_PTHREADS_OLD
|
|
help
|
|
Use this option to select the thread library implementation
|
|
that should be used in your toolchain. Not all thread
|
|
variants work with all versions of uClibc, the "linuxthreads
|
|
(stable/old)" may be a working fallback if you need
|
|
threading at all.
|
|
|
|
config BR2_PTHREADS_NONE
|
|
bool "none"
|
|
|
|
config BR2_PTHREADS
|
|
bool "linuxthreads"
|
|
depends on !BR2_bfin
|
|
depends on !BR2_xtensa
|
|
select BR2_TOOLCHAIN_HAS_THREADS
|
|
|
|
config BR2_PTHREADS_OLD
|
|
bool "linuxthreads (stable/old)"
|
|
select BR2_TOOLCHAIN_HAS_THREADS
|
|
|
|
config BR2_PTHREADS_NATIVE
|
|
bool "Native POSIX Threading (NPTL)"
|
|
select BR2_TOOLCHAIN_HAS_THREADS
|
|
select BR2_TOOLCHAIN_HAS_THREADS_NPTL
|
|
depends on !BR2_arc
|
|
depends on !BR2_avr32
|
|
depends on !BR2_bfin
|
|
depends on !BR2_xtensa
|
|
depends on !BR2_x86_i386
|
|
endchoice
|
|
|
|
config BR2_PTHREAD_DEBUG
|
|
bool "Thread library debugging"
|
|
depends on BR2_PTHREADS || BR2_PTHREADS_OLD || BR2_PTHREADS_NATIVE
|
|
select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
|
|
help
|
|
Build the thread library with debugging enabled.
|
|
|
|
config BR2_TOOLCHAIN_BUILDROOT_USE_SSP
|
|
bool "Enable stack protection support"
|
|
select BR2_TOOLCHAIN_HAS_SSP
|
|
help
|
|
Enable stack smashing protection support using GCCs
|
|
-fstack-protector-all option in uClibc.
|
|
|
|
See http://www.linuxfromscratch.org/hints/downloads/files/ssp.txt
|
|
for details.
|
|
|
|
config BR2_UCLIBC_INSTALL_UTILS
|
|
bool "Compile and install uClibc utilities"
|
|
depends on !BR2_bfin
|
|
default y
|
|
help
|
|
Enabling this option will compile and install the getconf,
|
|
ldconfig and ldd uClibc utilities for the target.
|
|
|
|
You can save ~32 KiB in target space by disabling them since
|
|
they're normally not needed.
|
|
|
|
config BR2_UCLIBC_INSTALL_TEST_SUITE
|
|
bool "Compile and install uClibc tests"
|
|
select BR2_PACKAGE_MAKE
|
|
help
|
|
Enabling this option will compile and install the uClibc test suite.
|
|
This is useful if you want to check if the uClibc library is working
|
|
for your architecture and/or help developing uClibc.
|
|
|
|
The test suite will be installed into /root/uClibc directory. To run
|
|
the test suite enter the /root/uClibc/test directory and type
|
|
"make UCLIBC_ONLY=1 CC=/bin/true check".
|
|
|
|
See the /root/uClibc/test/README for additional information.
|
|
|
|
This is not needed at all for normal builds, so you can safely say no
|
|
if you do not plan to dig into your C library.
|
|
|
|
# Mapping from the Buildroot architecture configuration options to the
|
|
# uClibc architecture names.
|
|
config BR2_UCLIBC_TARGET_ARCH
|
|
string
|
|
default arc if BR2_arcle || BR2_arceb
|
|
default arm if BR2_arm || BR2_armeb
|
|
default avr32 if BR2_avr32
|
|
default bfin if BR2_bfin
|
|
default m68k if BR2_m68k
|
|
default mips if BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
|
|
default powerpc if BR2_powerpc
|
|
default sh if BR2_sh
|
|
default sparc if BR2_sparc
|
|
default xtensa if BR2_xtensa
|
|
default i386 if BR2_i386
|
|
default x86_64 if BR2_x86_64
|
|
|
|
# This is only useful for uClibc <= 0.9.32. It can be removed once
|
|
# Buildroot will support only uClibc >= 0.9.33 on ARM.
|
|
config BR2_UCLIBC_ARM_TYPE
|
|
string
|
|
depends on BR2_UCLIBC_TARGET_ARCH = "arm"
|
|
default GENERIC_ARM if BR2_fa526
|
|
default ARM7TDMI if BR2_arm7tdmi
|
|
default ARM720T if BR2_arm720t
|
|
default ARM920T if BR2_arm920t
|
|
default ARM922T if BR2_arm922t
|
|
default ARM926T if BR2_arm926t
|
|
default ARM10T if BR2_arm10t
|
|
default ARM1136JF_S if BR2_arm1136jf_s
|
|
default ARM1176JZ_S if BR2_arm1176jz_s
|
|
default ARM1176JZF_S if BR2_arm1176jzf_s
|
|
default ARM_SA1100 if BR2_strongarm
|
|
default ARM_XSCALE if BR2_xscale
|
|
default ARM_IWMMXT if BR2_iwmmxt
|
|
default ARM_CORTEXA8 if BR2_cortex_a8
|
|
default ARM_CORTEXA9 if BR2_cortex_a9
|
|
|
|
config BR2_UCLIBC_ARM_BX
|
|
bool
|
|
depends on BR2_UCLIBC_TARGET_ARCH = "arm"
|
|
default y if (BR2_ARM_CPU_HAS_THUMB || BR2_ARM_CPU_HAS_THUMB2)
|
|
|
|
config BR2_UCLIBC_MIPS_ABI
|
|
string
|
|
depends on BR2_UCLIBC_TARGET_ARCH = "mips"
|
|
default O32 if BR2_MIPS_OABI32
|
|
default N32 if BR2_MIPS_NABI32
|
|
default N64 if BR2_MIPS_NABI64
|
|
|
|
config BR2_UCLIBC_MIPS_ISA
|
|
string
|
|
depends on BR2_UCLIBC_TARGET_ARCH = "mips"
|
|
default 1 if BR2_mips_1
|
|
default 2 if BR2_mips_2
|
|
default 3 if BR2_mips_3
|
|
default 4 if BR2_mips_4
|
|
default MIPS32 if BR2_mips_32
|
|
default MIPS32R2 if BR2_mips_32r2
|
|
default MIPS64 if BR2_mips_64
|
|
|
|
config BR2_UCLIBC_SH_TYPE
|
|
string
|
|
depends on BR2_UCLIBC_TARGET_ARCH = "sh"
|
|
default SH2A if BR2_sh2a
|
|
default SH4 if BR2_sh4 || BR2_sh4eb
|
|
|
|
config BR2_UCLIBC_SPARC_TYPE
|
|
string
|
|
depends on BR2_UCLIBC_TARGET_ARCH = "sparc"
|
|
default V7 if BR2_sparc_v7 || BR2_sparc_sparchfleon || BR2_sparc_sparcsfleon
|
|
default V8 if BR2_sparc_v8 || BR2_sparc_sparchfleonv8 || BR2_sparc_sparcsfleonv8
|
|
|
|
config BR2_UCLIBC_POWERPC_TYPE
|
|
string
|
|
depends on BR2_UCLIBC_TARGET_ARCH = "powerpc"
|
|
default CLASSIC if !BR2_powerpc_8540 && !BR2_powerpc_8548
|
|
default E500 if BR2_powerpc_8540 || BR2_powerpc_8548
|
|
|
|
config BR2_UCLIBC_X86_TYPE
|
|
string
|
|
depends on BR2_UCLIBC_TARGET_ARCH = "i386"
|
|
default 386 if BR2_x86_i386
|
|
default 486 if BR2_x86_i486
|
|
default 586 if BR2_x86_i586
|
|
default 586MMX if BR2_x86_pentium_mmx
|
|
default 686 if BR2_x86_i686 || BR2_x86_pentiumpro
|
|
default PENTIUMII if BR2_x86_pentium2
|
|
default PENTIUMIII if BR2_x86_pentium3
|
|
default PENTIUM4 if BR2_x86_pentium4 || BR2_x86_pentium_m || \
|
|
BR2_x86_nocona || BR2_x86_core2
|
|
|
|
endif # BR2_TOOLCHAIN_BUILDROOT_UCLIBC
|