kumquat-buildroot/package/uclibc/Config.in

278 lines
8.7 KiB
Plaintext
Raw Normal View History

if BR2_TOOLCHAIN_BUILDROOT_UCLIBC
# For legal-info
config BR2_PACKAGE_UCLIBC
bool
default y
comment "uClibc Options"
uclibc: adapt thread implementation selection to uClibc-ng uClibc-ng does not support linuxthreads or linuxthreads.old on architectures that have NPTL support. This creates another complicated dependency: dependeing on the uClibc version being used, not the same thread implementations are available. In order to handle this situation, this patch introduces three hidden booleans: - BR2_UCLIBC_VERSION_SUPPORTS_LINUXTHREADS - BR2_UCLIBC_VERSION_SUPPORTS_LINUXTHREADS_OLD - BR2_UCLIBC_VERSION_SUPPORTS_NPTL They are selected by the different uClibc versions, depending on which thread implementation they support on the different architectures. Then, the choice of the thread implementation can rely on those booleans to know if a given thread implementation is available in the current architecture / uClibc version selection. This makes sure that unusable thread implementation do not get selected, therefore fixing build issues such as: http://autobuild.buildroot.org/results/89e/89e423bee040cbce3e82cd89f1191efaac490c0d/ The support table is as follows (only taking into account architectures that allow the selection of BR2_TOOLCHAIN_BUILDROOT_UCLIBC, other architectures are not considered) : ----uclibc---- uclibc-xtensa- --uclibc-arc-- --uclibc-ng--- LT LT.old NPTL LT LT.old NPTL LT LT.old NPTL LT LT.old NPTL arc(le|eb) y y n n n n (1) arm(eb) y y y n y y (2) bfin n y n y y n i386 y y y n n y (3) m68k y y y y y n mips(64)(el) y y y n n y powerpc y y y n n y sh y y y n n y sparc y y y n n y xtensa n y n n n y x86_64 y y y n n y (1) : uclibc-ng only has NPTL support for ARC but it requires a more recent compiler version that hasn't been officially released by Synopsys. (2) : the general idea of uclibc-ng is to only support NPTL on architectures where it is available. However, in order to support ARM noMMU platforms, LT.old support has been kept on ARM. (3) : except i386 itself, which doesn't have what's needed for NPTL support. i386 is simply not supported by uclibc-ng basically. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-03-11 23:01:24 +01:00
config BR2_UCLIBC_VERSION_SUPPORTS_LINUXTHREADS
bool
config BR2_UCLIBC_VERSION_SUPPORTS_LINUXTHREADS_OLD
bool
config BR2_UCLIBC_VERSION_SUPPORTS_NPTL
bool
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_33
bool "uClibc 0.9.33.x"
uclibc: adapt thread implementation selection to uClibc-ng uClibc-ng does not support linuxthreads or linuxthreads.old on architectures that have NPTL support. This creates another complicated dependency: dependeing on the uClibc version being used, not the same thread implementations are available. In order to handle this situation, this patch introduces three hidden booleans: - BR2_UCLIBC_VERSION_SUPPORTS_LINUXTHREADS - BR2_UCLIBC_VERSION_SUPPORTS_LINUXTHREADS_OLD - BR2_UCLIBC_VERSION_SUPPORTS_NPTL They are selected by the different uClibc versions, depending on which thread implementation they support on the different architectures. Then, the choice of the thread implementation can rely on those booleans to know if a given thread implementation is available in the current architecture / uClibc version selection. This makes sure that unusable thread implementation do not get selected, therefore fixing build issues such as: http://autobuild.buildroot.org/results/89e/89e423bee040cbce3e82cd89f1191efaac490c0d/ The support table is as follows (only taking into account architectures that allow the selection of BR2_TOOLCHAIN_BUILDROOT_UCLIBC, other architectures are not considered) : ----uclibc---- uclibc-xtensa- --uclibc-arc-- --uclibc-ng--- LT LT.old NPTL LT LT.old NPTL LT LT.old NPTL LT LT.old NPTL arc(le|eb) y y n n n n (1) arm(eb) y y y n y y (2) bfin n y n y y n i386 y y y n n y (3) m68k y y y y y n mips(64)(el) y y y n n y powerpc y y y n n y sh y y y n n y sparc y y y n n y xtensa n y n n n y x86_64 y y y n n y (1) : uclibc-ng only has NPTL support for ARC but it requires a more recent compiler version that hasn't been officially released by Synopsys. (2) : the general idea of uclibc-ng is to only support NPTL on architectures where it is available. However, in order to support ARM noMMU platforms, LT.old support has been kept on ARM. (3) : except i386 itself, which doesn't have what's needed for NPTL support. i386 is simply not supported by uclibc-ng basically. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-03-11 23:01:24 +01:00
select BR2_UCLIBC_VERSION_SUPPORTS_LINUXTHREADS \
if !BR2_bfin
select BR2_UCLIBC_VERSION_SUPPORTS_LINUXTHREADS_OLD
select BR2_UCLIBC_VERSION_SUPPORTS_NPTL \
if !BR2_bfin && !BR2_x86_i386
depends on !(BR2_arc || BR2_xtensa)
config BR2_UCLIBC_VERSION_ARC_GIT
bool "uClibc Git ARC"
uclibc: adapt thread implementation selection to uClibc-ng uClibc-ng does not support linuxthreads or linuxthreads.old on architectures that have NPTL support. This creates another complicated dependency: dependeing on the uClibc version being used, not the same thread implementations are available. In order to handle this situation, this patch introduces three hidden booleans: - BR2_UCLIBC_VERSION_SUPPORTS_LINUXTHREADS - BR2_UCLIBC_VERSION_SUPPORTS_LINUXTHREADS_OLD - BR2_UCLIBC_VERSION_SUPPORTS_NPTL They are selected by the different uClibc versions, depending on which thread implementation they support on the different architectures. Then, the choice of the thread implementation can rely on those booleans to know if a given thread implementation is available in the current architecture / uClibc version selection. This makes sure that unusable thread implementation do not get selected, therefore fixing build issues such as: http://autobuild.buildroot.org/results/89e/89e423bee040cbce3e82cd89f1191efaac490c0d/ The support table is as follows (only taking into account architectures that allow the selection of BR2_TOOLCHAIN_BUILDROOT_UCLIBC, other architectures are not considered) : ----uclibc---- uclibc-xtensa- --uclibc-arc-- --uclibc-ng--- LT LT.old NPTL LT LT.old NPTL LT LT.old NPTL LT LT.old NPTL arc(le|eb) y y n n n n (1) arm(eb) y y y n y y (2) bfin n y n y y n i386 y y y n n y (3) m68k y y y y y n mips(64)(el) y y y n n y powerpc y y y n n y sh y y y n n y sparc y y y n n y xtensa n y n n n y x86_64 y y y n n y (1) : uclibc-ng only has NPTL support for ARC but it requires a more recent compiler version that hasn't been officially released by Synopsys. (2) : the general idea of uclibc-ng is to only support NPTL on architectures where it is available. However, in order to support ARM noMMU platforms, LT.old support has been kept on ARM. (3) : except i386 itself, which doesn't have what's needed for NPTL support. i386 is simply not supported by uclibc-ng basically. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-03-11 23:01:24 +01:00
select BR2_UCLIBC_VERSION_SUPPORTS_LINUXTHREADS
select BR2_UCLIBC_VERSION_SUPPORTS_LINUXTHREADS_OLD
depends on BR2_arc
config BR2_UCLIBC_VERSION_NG
bool "uClibc-ng"
uclibc: adapt thread implementation selection to uClibc-ng uClibc-ng does not support linuxthreads or linuxthreads.old on architectures that have NPTL support. This creates another complicated dependency: dependeing on the uClibc version being used, not the same thread implementations are available. In order to handle this situation, this patch introduces three hidden booleans: - BR2_UCLIBC_VERSION_SUPPORTS_LINUXTHREADS - BR2_UCLIBC_VERSION_SUPPORTS_LINUXTHREADS_OLD - BR2_UCLIBC_VERSION_SUPPORTS_NPTL They are selected by the different uClibc versions, depending on which thread implementation they support on the different architectures. Then, the choice of the thread implementation can rely on those booleans to know if a given thread implementation is available in the current architecture / uClibc version selection. This makes sure that unusable thread implementation do not get selected, therefore fixing build issues such as: http://autobuild.buildroot.org/results/89e/89e423bee040cbce3e82cd89f1191efaac490c0d/ The support table is as follows (only taking into account architectures that allow the selection of BR2_TOOLCHAIN_BUILDROOT_UCLIBC, other architectures are not considered) : ----uclibc---- uclibc-xtensa- --uclibc-arc-- --uclibc-ng--- LT LT.old NPTL LT LT.old NPTL LT LT.old NPTL LT LT.old NPTL arc(le|eb) y y n n n n (1) arm(eb) y y y n y y (2) bfin n y n y y n i386 y y y n n y (3) m68k y y y y y n mips(64)(el) y y y n n y powerpc y y y n n y sh y y y n n y sparc y y y n n y xtensa n y n n n y x86_64 y y y n n y (1) : uclibc-ng only has NPTL support for ARC but it requires a more recent compiler version that hasn't been officially released by Synopsys. (2) : the general idea of uclibc-ng is to only support NPTL on architectures where it is available. However, in order to support ARM noMMU platforms, LT.old support has been kept on ARM. (3) : except i386 itself, which doesn't have what's needed for NPTL support. i386 is simply not supported by uclibc-ng basically. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-03-11 23:01:24 +01:00
select BR2_UCLIBC_VERSION_SUPPORTS_LINUXTHREADS \
if BR2_bfin || BR2_m68k
select BR2_UCLIBC_VERSION_SUPPORTS_LINUXTHREADS_OLD \
if BR2_bfin || BR2_m68k || BR2_arm || BR2_armeb
select BR2_UCLIBC_VERSION_SUPPORTS_NPTL \
if !BR2_arc && !BR2_bfin && !BR2_m68k && !BR2_x86_i386
config BR2_UCLIBC_VERSION_XTENSA_GIT
bool "uClibc Git Xtensa"
depends on BR2_xtensa
uclibc: adapt thread implementation selection to uClibc-ng uClibc-ng does not support linuxthreads or linuxthreads.old on architectures that have NPTL support. This creates another complicated dependency: dependeing on the uClibc version being used, not the same thread implementations are available. In order to handle this situation, this patch introduces three hidden booleans: - BR2_UCLIBC_VERSION_SUPPORTS_LINUXTHREADS - BR2_UCLIBC_VERSION_SUPPORTS_LINUXTHREADS_OLD - BR2_UCLIBC_VERSION_SUPPORTS_NPTL They are selected by the different uClibc versions, depending on which thread implementation they support on the different architectures. Then, the choice of the thread implementation can rely on those booleans to know if a given thread implementation is available in the current architecture / uClibc version selection. This makes sure that unusable thread implementation do not get selected, therefore fixing build issues such as: http://autobuild.buildroot.org/results/89e/89e423bee040cbce3e82cd89f1191efaac490c0d/ The support table is as follows (only taking into account architectures that allow the selection of BR2_TOOLCHAIN_BUILDROOT_UCLIBC, other architectures are not considered) : ----uclibc---- uclibc-xtensa- --uclibc-arc-- --uclibc-ng--- LT LT.old NPTL LT LT.old NPTL LT LT.old NPTL LT LT.old NPTL arc(le|eb) y y n n n n (1) arm(eb) y y y n y y (2) bfin n y n y y n i386 y y y n n y (3) m68k y y y y y n mips(64)(el) y y y n n y powerpc y y y n n y sh y y y n n y sparc y y y n n y xtensa n y n n n y x86_64 y y y n n y (1) : uclibc-ng only has NPTL support for ARC but it requires a more recent compiler version that hasn't been officially released by Synopsys. (2) : the general idea of uclibc-ng is to only support NPTL on architectures where it is available. However, in order to support ARM noMMU platforms, LT.old support has been kept on ARM. (3) : except i386 itself, which doesn't have what's needed for NPTL support. i386 is simply not supported by uclibc-ng basically. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-03-11 23:01:24 +01:00
select BR2_UCLIBC_SUPPORTS_LINUXTHREADS_OLD
config BR2_UCLIBC_VERSION_SNAPSHOT
bool "daily snapshot"
uclibc: adapt thread implementation selection to uClibc-ng uClibc-ng does not support linuxthreads or linuxthreads.old on architectures that have NPTL support. This creates another complicated dependency: dependeing on the uClibc version being used, not the same thread implementations are available. In order to handle this situation, this patch introduces three hidden booleans: - BR2_UCLIBC_VERSION_SUPPORTS_LINUXTHREADS - BR2_UCLIBC_VERSION_SUPPORTS_LINUXTHREADS_OLD - BR2_UCLIBC_VERSION_SUPPORTS_NPTL They are selected by the different uClibc versions, depending on which thread implementation they support on the different architectures. Then, the choice of the thread implementation can rely on those booleans to know if a given thread implementation is available in the current architecture / uClibc version selection. This makes sure that unusable thread implementation do not get selected, therefore fixing build issues such as: http://autobuild.buildroot.org/results/89e/89e423bee040cbce3e82cd89f1191efaac490c0d/ The support table is as follows (only taking into account architectures that allow the selection of BR2_TOOLCHAIN_BUILDROOT_UCLIBC, other architectures are not considered) : ----uclibc---- uclibc-xtensa- --uclibc-arc-- --uclibc-ng--- LT LT.old NPTL LT LT.old NPTL LT LT.old NPTL LT LT.old NPTL arc(le|eb) y y n n n n (1) arm(eb) y y y n y y (2) bfin n y n y y n i386 y y y n n y (3) m68k y y y y y n mips(64)(el) y y y n n y powerpc y y y n n y sh y y y n n y sparc y y y n n y xtensa n y n n n y x86_64 y y y n n y (1) : uclibc-ng only has NPTL support for ARC but it requires a more recent compiler version that hasn't been officially released by Synopsys. (2) : the general idea of uclibc-ng is to only support NPTL on architectures where it is available. However, in order to support ARM noMMU platforms, LT.old support has been kept on ARM. (3) : except i386 itself, which doesn't have what's needed for NPTL support. i386 is simply not supported by uclibc-ng basically. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-03-11 23:01:24 +01:00
select BR2_UCLIBC_SUPPORTS_LINUXTHREADS if !BR2_bfin && !BR2_xtensa
select BR2_UCLIBC_SUPPORTS_LINUXTHREADS_OLD
select BR2_UCLIBC_VERSION_SUPPORTS_NPTL \
if !BR2_bfin && !BR2_x86_i386 && !BR2_xtensa
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.33.2" if BR2_UCLIBC_VERSION_0_9_33
default "arc-2014.12" if BR2_UCLIBC_VERSION_ARC_GIT
default "1.0.1" if BR2_UCLIBC_VERSION_NG
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.33.config" if BR2_UCLIBC_VERSION_0_9_33
default "package/uclibc/uClibc-ng.config" if BR2_UCLIBC_VERSION_NG
default "package/uclibc/uClibc-snapshot.config" if BR2_UCLIBC_VERSION_ARC_GIT
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"
uclibc: adapt thread implementation selection to uClibc-ng uClibc-ng does not support linuxthreads or linuxthreads.old on architectures that have NPTL support. This creates another complicated dependency: dependeing on the uClibc version being used, not the same thread implementations are available. In order to handle this situation, this patch introduces three hidden booleans: - BR2_UCLIBC_VERSION_SUPPORTS_LINUXTHREADS - BR2_UCLIBC_VERSION_SUPPORTS_LINUXTHREADS_OLD - BR2_UCLIBC_VERSION_SUPPORTS_NPTL They are selected by the different uClibc versions, depending on which thread implementation they support on the different architectures. Then, the choice of the thread implementation can rely on those booleans to know if a given thread implementation is available in the current architecture / uClibc version selection. This makes sure that unusable thread implementation do not get selected, therefore fixing build issues such as: http://autobuild.buildroot.org/results/89e/89e423bee040cbce3e82cd89f1191efaac490c0d/ The support table is as follows (only taking into account architectures that allow the selection of BR2_TOOLCHAIN_BUILDROOT_UCLIBC, other architectures are not considered) : ----uclibc---- uclibc-xtensa- --uclibc-arc-- --uclibc-ng--- LT LT.old NPTL LT LT.old NPTL LT LT.old NPTL LT LT.old NPTL arc(le|eb) y y n n n n (1) arm(eb) y y y n y y (2) bfin n y n y y n i386 y y y n n y (3) m68k y y y y y n mips(64)(el) y y y n n y powerpc y y y n n y sh y y y n n y sparc y y y n n y xtensa n y n n n y x86_64 y y y n n y (1) : uclibc-ng only has NPTL support for ARC but it requires a more recent compiler version that hasn't been officially released by Synopsys. (2) : the general idea of uclibc-ng is to only support NPTL on architectures where it is available. However, in order to support ARM noMMU platforms, LT.old support has been kept on ARM. (3) : except i386 itself, which doesn't have what's needed for NPTL support. i386 is simply not supported by uclibc-ng basically. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-03-11 23:01:24 +01:00
default BR2_PTHREADS_NATIVE if BR2_UCLIBC_VERSION_SUPPORTS_NPTL
default BR2_PTHREADS_OLD if BR2_UCLIBC_VERSION_SUPPORTS_LINUXTHREADS_OLD
default BR2_PTHREADS if BR2_UCLIBC_VERSION_SUPPORTS_LINUXTHREADS
help
Use this option to select the thread library implementation
that should be used in your toolchain.
config BR2_PTHREADS_NONE
bool "none"
config BR2_PTHREADS
bool "linuxthreads"
select BR2_TOOLCHAIN_HAS_THREADS
uclibc: adapt thread implementation selection to uClibc-ng uClibc-ng does not support linuxthreads or linuxthreads.old on architectures that have NPTL support. This creates another complicated dependency: dependeing on the uClibc version being used, not the same thread implementations are available. In order to handle this situation, this patch introduces three hidden booleans: - BR2_UCLIBC_VERSION_SUPPORTS_LINUXTHREADS - BR2_UCLIBC_VERSION_SUPPORTS_LINUXTHREADS_OLD - BR2_UCLIBC_VERSION_SUPPORTS_NPTL They are selected by the different uClibc versions, depending on which thread implementation they support on the different architectures. Then, the choice of the thread implementation can rely on those booleans to know if a given thread implementation is available in the current architecture / uClibc version selection. This makes sure that unusable thread implementation do not get selected, therefore fixing build issues such as: http://autobuild.buildroot.org/results/89e/89e423bee040cbce3e82cd89f1191efaac490c0d/ The support table is as follows (only taking into account architectures that allow the selection of BR2_TOOLCHAIN_BUILDROOT_UCLIBC, other architectures are not considered) : ----uclibc---- uclibc-xtensa- --uclibc-arc-- --uclibc-ng--- LT LT.old NPTL LT LT.old NPTL LT LT.old NPTL LT LT.old NPTL arc(le|eb) y y n n n n (1) arm(eb) y y y n y y (2) bfin n y n y y n i386 y y y n n y (3) m68k y y y y y n mips(64)(el) y y y n n y powerpc y y y n n y sh y y y n n y sparc y y y n n y xtensa n y n n n y x86_64 y y y n n y (1) : uclibc-ng only has NPTL support for ARC but it requires a more recent compiler version that hasn't been officially released by Synopsys. (2) : the general idea of uclibc-ng is to only support NPTL on architectures where it is available. However, in order to support ARM noMMU platforms, LT.old support has been kept on ARM. (3) : except i386 itself, which doesn't have what's needed for NPTL support. i386 is simply not supported by uclibc-ng basically. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-03-11 23:01:24 +01:00
depends on BR2_UCLIBC_VERSION_SUPPORTS_LINUXTHREADS
config BR2_PTHREADS_OLD
bool "linuxthreads (stable/old)"
select BR2_TOOLCHAIN_HAS_THREADS
uclibc: adapt thread implementation selection to uClibc-ng uClibc-ng does not support linuxthreads or linuxthreads.old on architectures that have NPTL support. This creates another complicated dependency: dependeing on the uClibc version being used, not the same thread implementations are available. In order to handle this situation, this patch introduces three hidden booleans: - BR2_UCLIBC_VERSION_SUPPORTS_LINUXTHREADS - BR2_UCLIBC_VERSION_SUPPORTS_LINUXTHREADS_OLD - BR2_UCLIBC_VERSION_SUPPORTS_NPTL They are selected by the different uClibc versions, depending on which thread implementation they support on the different architectures. Then, the choice of the thread implementation can rely on those booleans to know if a given thread implementation is available in the current architecture / uClibc version selection. This makes sure that unusable thread implementation do not get selected, therefore fixing build issues such as: http://autobuild.buildroot.org/results/89e/89e423bee040cbce3e82cd89f1191efaac490c0d/ The support table is as follows (only taking into account architectures that allow the selection of BR2_TOOLCHAIN_BUILDROOT_UCLIBC, other architectures are not considered) : ----uclibc---- uclibc-xtensa- --uclibc-arc-- --uclibc-ng--- LT LT.old NPTL LT LT.old NPTL LT LT.old NPTL LT LT.old NPTL arc(le|eb) y y n n n n (1) arm(eb) y y y n y y (2) bfin n y n y y n i386 y y y n n y (3) m68k y y y y y n mips(64)(el) y y y n n y powerpc y y y n n y sh y y y n n y sparc y y y n n y xtensa n y n n n y x86_64 y y y n n y (1) : uclibc-ng only has NPTL support for ARC but it requires a more recent compiler version that hasn't been officially released by Synopsys. (2) : the general idea of uclibc-ng is to only support NPTL on architectures where it is available. However, in order to support ARM noMMU platforms, LT.old support has been kept on ARM. (3) : except i386 itself, which doesn't have what's needed for NPTL support. i386 is simply not supported by uclibc-ng basically. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-03-11 23:01:24 +01:00
depends on BR2_UCLIBC_VERSION_SUPPORTS_LINUXTHREADS_OLD
config BR2_PTHREADS_NATIVE
bool "Native POSIX Threading (NPTL)"
select BR2_TOOLCHAIN_HAS_THREADS
select BR2_TOOLCHAIN_HAS_THREADS_NPTL
uclibc: adapt thread implementation selection to uClibc-ng uClibc-ng does not support linuxthreads or linuxthreads.old on architectures that have NPTL support. This creates another complicated dependency: dependeing on the uClibc version being used, not the same thread implementations are available. In order to handle this situation, this patch introduces three hidden booleans: - BR2_UCLIBC_VERSION_SUPPORTS_LINUXTHREADS - BR2_UCLIBC_VERSION_SUPPORTS_LINUXTHREADS_OLD - BR2_UCLIBC_VERSION_SUPPORTS_NPTL They are selected by the different uClibc versions, depending on which thread implementation they support on the different architectures. Then, the choice of the thread implementation can rely on those booleans to know if a given thread implementation is available in the current architecture / uClibc version selection. This makes sure that unusable thread implementation do not get selected, therefore fixing build issues such as: http://autobuild.buildroot.org/results/89e/89e423bee040cbce3e82cd89f1191efaac490c0d/ The support table is as follows (only taking into account architectures that allow the selection of BR2_TOOLCHAIN_BUILDROOT_UCLIBC, other architectures are not considered) : ----uclibc---- uclibc-xtensa- --uclibc-arc-- --uclibc-ng--- LT LT.old NPTL LT LT.old NPTL LT LT.old NPTL LT LT.old NPTL arc(le|eb) y y n n n n (1) arm(eb) y y y n y y (2) bfin n y n y y n i386 y y y n n y (3) m68k y y y y y n mips(64)(el) y y y n n y powerpc y y y n n y sh y y y n n y sparc y y y n n y xtensa n y n n n y x86_64 y y y n n y (1) : uclibc-ng only has NPTL support for ARC but it requires a more recent compiler version that hasn't been officially released by Synopsys. (2) : the general idea of uclibc-ng is to only support NPTL on architectures where it is available. However, in order to support ARM noMMU platforms, LT.old support has been kept on ARM. (3) : except i386 itself, which doesn't have what's needed for NPTL support. i386 is simply not supported by uclibc-ng basically. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-03-11 23:01:24 +01:00
depends on BR2_UCLIBC_VERSION_SUPPORTS_NPTL
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
depends on BR2_USE_MMU # 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 "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
config BR2_UCLIBC_ARC_TYPE
string
depends on BR2_UCLIBC_TARGET_ARCH = "arc"
default "ARC_CPU_700" if BR2_arc750d
default "ARC_CPU_700" if BR2_arc770d
default "ARC_CPU_HS" if BR2_archs38
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 "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 || BR2_x86_corei7
endif # BR2_TOOLCHAIN_BUILDROOT_UCLIBC