mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2025-02-21 09:21:52 +00:00
Generate the choice menu for C libraries, the same way arch and kernels are generated.
/trunk/kconfig/kconfig.mk | 10 8 2 0 ++++++-- /trunk/scripts/build/libc/glibc.sh | 2 1 1 0 +- /trunk/config/libc/glibc.in | 22 6 16 0 +++++------------- /trunk/config/libc/uClibc.in | 7 6 1 0 +++++- /trunk/config/libc/eglibc.in | 12 11 1 0 +++++++++- /trunk/config/libc.in | 53 4 49 0 +++----------------------------------------- 6 files changed, 36 insertions(+), 70 deletions(-)
This commit is contained in:
parent
f9838b0853
commit
d2fe51a715
@ -2,10 +2,7 @@
|
||||
|
||||
config LIBC
|
||||
string
|
||||
default "none" if BARE_METAL
|
||||
default "glibc" if LIBC_GLIBC
|
||||
default "eglibc" if LIBC_EGLIBC
|
||||
default "uClibc" if LIBC_UCLIBC
|
||||
default "none" if BARE_METAL
|
||||
|
||||
if ! BARE_METAL
|
||||
|
||||
@ -25,37 +22,7 @@ config LIBC_VERSION
|
||||
So if you want to be able to re-build your toolchain later, you will
|
||||
have to save your C library tarball by yourself.
|
||||
|
||||
choice
|
||||
bool
|
||||
prompt "C-library to use:"
|
||||
default LIBC_GLIBC
|
||||
|
||||
config LIBC_GLIBC
|
||||
bool
|
||||
prompt "glibc"
|
||||
select LIBC_SUPPORT_NPTL
|
||||
select LIBC_SUPPORT_LINUXTHREADS
|
||||
|
||||
config LIBC_EGLIBC
|
||||
bool
|
||||
prompt "eglibc (EXPERIMENTAL)"
|
||||
select LIBC_SUPPORT_NPTL
|
||||
select LIBC_SUPPORT_LINUXTHREADS
|
||||
depends on EXPERIMENTAL
|
||||
help
|
||||
EGLIBC (Embedded GLIBC) is a variant of the standard GNU GLIBC
|
||||
that is designed to work well on embedded systems. EGLIBC strives
|
||||
to be source and binary compatible with GLIBC. Its goals include
|
||||
a reduced footprint, configurable components, and improved
|
||||
cross-compilation support. EGLIBC also includes some embedded ports
|
||||
(such as e500/spe) that are normally separate add-ons of GLIBC.
|
||||
|
||||
config LIBC_UCLIBC
|
||||
bool
|
||||
prompt "uClibc"
|
||||
select LIBC_SUPPORT_LINUXTHREADS
|
||||
|
||||
endchoice
|
||||
source config.gen/libc.in
|
||||
|
||||
comment "Common C library options"
|
||||
|
||||
@ -96,23 +63,11 @@ config THREADS_NONE
|
||||
|
||||
endchoice
|
||||
|
||||
if LIBC_GLIBC
|
||||
source config/libc/glibc.in
|
||||
endif
|
||||
|
||||
if LIBC_EGLIBC
|
||||
source config/libc/eglibc.in
|
||||
endif
|
||||
|
||||
# Hack: mconf does not allow to include a file multiple times,
|
||||
# so include glibc and eglibc common options from here, rather
|
||||
# than from each config files.
|
||||
if LIBC_GLIBC || LIBC_EGLIBC
|
||||
source config/libc/glibc-eglibc-common.in
|
||||
endif
|
||||
|
||||
if LIBC_UCLIBC
|
||||
source config/libc/uClibc.in
|
||||
if LIBC_glibc || LIBC_eglibc
|
||||
source config/libc/glibc-eglibc.in-common
|
||||
endif
|
||||
|
||||
endmenu
|
||||
|
@ -1,6 +1,16 @@
|
||||
# EXPERIMENTAL
|
||||
# eglibc options
|
||||
|
||||
comment "eglibc specific options"
|
||||
config LIBC_eglibc
|
||||
select LIBC_SUPPORT_NPTL
|
||||
select LIBC_SUPPORT_LINUXTHREADS
|
||||
help
|
||||
EGLIBC (Embedded GLIBC) is a variant of the standard GNU GLIBC
|
||||
that is designed to work well on embedded systems. EGLIBC strives
|
||||
to be source and binary compatible with GLIBC. Its goals include
|
||||
a reduced footprint, configurable components, and improved
|
||||
cross-compilation support. EGLIBC also includes some embedded ports
|
||||
(such as e500/spe) that are normally separate add-ons of GLIBC.
|
||||
|
||||
choice
|
||||
bool
|
||||
|
@ -1,6 +1,11 @@
|
||||
# glibc options
|
||||
|
||||
comment "glibc specific options"
|
||||
config LIBC_glibc
|
||||
select LIBC_SUPPORT_NPTL
|
||||
select LIBC_SUPPORT_LINUXTHREADS
|
||||
help
|
||||
The de-facto standard for Linux distributions.
|
||||
Feature-rich, but large... Most usefull for desktop-like systems.
|
||||
|
||||
choice
|
||||
bool
|
||||
@ -60,18 +65,3 @@ config LIBC_VERSION
|
||||
# CT_INSERT_VERSION_STRING_ABOVE
|
||||
# Don't remove above line!
|
||||
|
||||
# Please note: This is not used for now (no sh support).
|
||||
config LIBC_GLIBC_CONFIGPARMS
|
||||
string
|
||||
# prompt "Extra config params (READ HELP)"
|
||||
default "" if ARCH != "sh3" && ARCH != "sh4"
|
||||
default "no-z-defs=yes" if ARCH = "sh3" || ARCH = "sh4"
|
||||
help
|
||||
Some architectures need to set options in the file configparms.
|
||||
This is the case for sh3/4, which really need to set configparms as of
|
||||
gcc-3.4/glibc-2.3.2.
|
||||
|
||||
Unless you are building a toolchain for sh3/4, you should leave that empty.
|
||||
|
||||
Note: this is awkward, doesn't work well if you need more than one
|
||||
line in configparms
|
||||
|
@ -1,6 +1,11 @@
|
||||
# uClibc options
|
||||
|
||||
comment "uClibc specific options"
|
||||
config LIBC_uClibc
|
||||
select LIBC_SUPPORT_LINUXTHREADS
|
||||
help
|
||||
The de-facto standard for embeded linux systems.
|
||||
Highly configurable, thus as feature-rich as you need, without
|
||||
compromising for size.
|
||||
|
||||
choice
|
||||
bool
|
||||
|
@ -20,13 +20,15 @@ endif
|
||||
|
||||
# Build a list of all config files
|
||||
ARCH_CONFIG_FILES = $(wildcard $(CT_LIB_DIR)/config/arch/*.in)
|
||||
KERNEL_CONFIG_FILES = $(wildcard $(CT_LIB_DIR)/config/kernel/*.in)
|
||||
KERNEL_CONFIG_FILES = $(wildcard $(CT_LIB_DIR)/config/kernel/*.in)
|
||||
LIBC_CONFIG_FILES = $(wildcard $(CT_LIB_DIR)/config/libc/*.in)
|
||||
DEBUG_CONFIG_FILES = $(wildcard $(CT_LIB_DIR)/config/debug/*.in)
|
||||
TOOL_CONFIG_FILES = $(wildcard $(CT_LIB_DIR)/config/tools/*.in)
|
||||
TOOL_CONFIG_FILES = $(wildcard $(CT_LIB_DIR)/config/tools/*.in)
|
||||
|
||||
STATIC_CONFIG_FILES = $(shell find $(CT_LIB_DIR)/config -type f -name '*.in')
|
||||
GEN_CONFIG_FILES=$(CT_TOP_DIR)/config.gen/arch.in \
|
||||
$(CT_TOP_DIR)/config.gen/kernel.in \
|
||||
$(CT_TOP_DIR)/config.gen/libc.in \
|
||||
$(CT_TOP_DIR)/config.gen/tools.in \
|
||||
$(CT_TOP_DIR)/config.gen/debug.in
|
||||
|
||||
@ -35,6 +37,7 @@ CONFIG_FILES=$(STATIC_CONFIG_FILES) $(GEN_CONFIG_FILES)
|
||||
# Build list of items
|
||||
ARCHS = $(patsubst $(CT_LIB_DIR)/config/arch/%.in,%,$(ARCH_CONFIG_FILES))
|
||||
KERNELS = $(patsubst $(CT_LIB_DIR)/config/kernel/%.in,%,$(KERNEL_CONFIG_FILES))
|
||||
LIBCS = $(patsubst $(CT_LIB_DIR)/config/libc/%.in,%,$(LIBC_CONFIG_FILES))
|
||||
DEBUGS = $(patsubst $(CT_LIB_DIR)/config/debug/%.in,%,$(DEBUG_CONFIG_FILES))
|
||||
TOOLS = $(patsubst $(CT_LIB_DIR)/config/tools/%.in,%,$(TOOL_CONFIG_FILES))
|
||||
|
||||
@ -96,6 +99,9 @@ $(CT_TOP_DIR)/config.gen/arch.in: $(ARCH_CONFIG_FILES)
|
||||
$(CT_TOP_DIR)/config.gen/kernel.in: $(KERNEL_CONFIG_FILES)
|
||||
$(call build_gen_choice_in,$(patsubst $(CT_TOP_DIR)/%,%,$@),Target OS,KERNEL,config/kernel,$(KERNELS))
|
||||
|
||||
$(CT_TOP_DIR)/config.gen/libc.in: $(LIBC_CONFIG_FILES)
|
||||
$(call build_gen_choice_in,$(patsubst $(CT_TOP_DIR)/%,%,$@),C library,LIBC,config/libc,$(LIBCS))
|
||||
|
||||
# Function build_gen_menu_in:
|
||||
# $1 : destination file
|
||||
# $2 : name of entries family (eg. Tools, Debug...)
|
||||
|
@ -282,7 +282,7 @@ do_libc_start_files() {
|
||||
# Super-H really needs to set configparms as of gcc-3.4/glibc-2.3.2
|
||||
# note: this is awkward, doesn't work well if you need more than one
|
||||
# line in configparms
|
||||
echo ${CT_LIBC_GLIBC_CONFIGPARMS} > configparms
|
||||
[ "${CT_ARCH_sh}" = "y" ] && echo "no-z-defs=yes" > configparms
|
||||
|
||||
echo "libc_cv_forced_unwind=yes" > config.cache
|
||||
echo "libc_cv_c_cleanup=yes" >> config.cache
|
||||
|
Loading…
x
Reference in New Issue
Block a user