config: fix recursive deps

The latest kconfig stuff is more stringent when it comes to validating
the dependency of the symbols. It is no longer possible to have a symbol
depend on itself (such as our construct for arch/cc/libc/... was doing).

Fix our generated-file infrastructure to avoid these situations when the
new kconfig stuff will be merged (in a following changeset).

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
This commit is contained in:
Yann E. MORIN" 2011-05-08 19:02:44 +02:00
parent a43bb564ae
commit 53892de14c
28 changed files with 227 additions and 245 deletions

View File

@ -1,10 +1,9 @@
# Alpha specific configuration file # Alpha specific configuration file
config ARCH_alpha ## select ARCH_SUPPORTS_32
select ARCH_SUPPORTS_32 ## select ARCH_DEFAULT_32
select ARCH_DEFAULT_32 ## select ARCH_USE_MMU
select ARCH_USE_MMU ## select ARCH_SUPPORT_CPU
select ARCH_SUPPORT_CPU ## select ARCH_SUPPORT_TUNE
select ARCH_SUPPORT_TUNE ##
help ## help The Alpha architecture.
The Alpha architecture.

View File

@ -1,16 +1,15 @@
# ARM specific configuration file # ARM specific configuration file
config ARCH_arm ## select ARCH_SUPPORTS_32
select ARCH_SUPPORTS_32 ## select ARCH_DEFAULT_32
select ARCH_DEFAULT_32 ## select ARCH_SUPPORTS_BOTH_MMU
select ARCH_SUPPORTS_BOTH_MMU ## select ARCH_DEFAULT_HAS_MMU
select ARCH_DEFAULT_HAS_MMU ## select ARCH_SUPPORTS_BOTH_ENDIAN
select ARCH_SUPPORTS_BOTH_ENDIAN ## select ARCH_DEFAULT_LE
select ARCH_DEFAULT_LE ## select ARCH_SUPPORT_ARCH
select ARCH_SUPPORT_ARCH ## select ARCH_SUPPORT_CPU
select ARCH_SUPPORT_CPU ## select ARCH_SUPPORT_TUNE
select ARCH_SUPPORT_TUNE ## select ARCH_SUPPORT_FPU
select ARCH_SUPPORT_FPU ##
help ## help The ARM architecture, as defined by:
The ARM architecture, as defined by: ## help http://www.arm.com/
http://www.arm.com/

View File

@ -1,14 +1,13 @@
# AVR32 specific configuration file # AVR32 specific configuration file
config ARCH_avr32 ## select ARCH_SUPPORTS_32
select ARCH_SUPPORTS_32 ## select ARCH_DEFAULT_32
select ARCH_DEFAULT_32 ## select ARCH_USE_MMU
select ARCH_USE_MMU ## select ARCH_DEFAULT_BE
select ARCH_DEFAULT_BE ## select ARCH_SUPPORT_ARCH
select ARCH_SUPPORT_ARCH ## select ARCH_SUPPORT_CPU
select ARCH_SUPPORT_CPU ## select ARCH_SUPPORT_TUNE
select ARCH_SUPPORT_TUNE ## select ARCH_SUPPORT_FPU
select ARCH_SUPPORT_FPU ##
help ## help The AVR32 architecture, as defined by:
The AVR32 architecture, as defined by: ## help http://www.atmel.com/products/avr32
http://www.atmel.com/products/avr32

View File

@ -1,12 +1,11 @@
# Blackfin specific configuration file # Blackfin specific configuration file
config ARCH_blackfin ## select ARCH_SUPPORTS_32
select ARCH_SUPPORTS_32 ## select ARCH_DEFAULT_32
select ARCH_DEFAULT_32 ## select ARCH_DEFAULT_LE
select ARCH_DEFAULT_LE ## select ARCH_SUPPORT_ARCH
select ARCH_SUPPORT_ARCH ## select ARCH_SUPPORT_CPU
select ARCH_SUPPORT_CPU ## select ARCH_SUPPORT_TUNE
select ARCH_SUPPORT_TUNE ## select ARCH_SUPPORT_FPU
select ARCH_SUPPORT_FPU ##
help ## help The Blackfin architecture
The Blackfin architecture

View File

@ -1,10 +1,10 @@
# m68k specific configuration file # m68k specific configuration file
# depends on EXPERIMENTAL
config ARCH_m68k ## depends on EXPERIMENTAL
select ARCH_SUPPORTS_32 ##
select ARCH_DEFAULT_32 ## select ARCH_SUPPORTS_32
select ARCH_DEFAULT_BE ## select ARCH_DEFAULT_32
select ARCH_SUPPORT_CPU ## select ARCH_DEFAULT_BE
help ## select ARCH_SUPPORT_CPU
The m68k architecture ##
## help The m68k architecture

View File

@ -1,14 +1,13 @@
# MIPS specific config options # MIPS specific config options
config ARCH_mips ## select ARCH_SUPPORTS_32
select ARCH_SUPPORTS_32 ## select ARCH_SUPPORTS_64 if EXPERIMENTAL
select ARCH_SUPPORTS_64 if EXPERIMENTAL ## select ARCH_DEFAULT_32
select ARCH_DEFAULT_32 ## select ARCH_USE_MMU
select ARCH_USE_MMU ## select ARCH_SUPPORTS_BOTH_ENDIAN
select ARCH_SUPPORTS_BOTH_ENDIAN ## select ARCH_DEFAULT_BE
select ARCH_DEFAULT_BE ## select ARCH_SUPPORT_ARCH
select ARCH_SUPPORT_ARCH ## select ARCH_SUPPORT_TUNE
select ARCH_SUPPORT_TUNE ##
help ## help The MIPS architecture, as defined by:
The MIPS architecture, as defined by: ## help http://www.mips.com/
http://www.mips.com/

View File

@ -1,13 +1,12 @@
# powerpc specific configuration file # powerpc specific configuration file
config ARCH_powerpc ## select ARCH_SUPPORTS_32
select ARCH_SUPPORTS_32 ## select ARCH_SUPPORTS_64 if EXPERIMENTAL
select ARCH_SUPPORTS_64 if EXPERIMENTAL ## select ARCH_DEFAULT_32
select ARCH_DEFAULT_32 ## select ARCH_USE_MMU
select ARCH_USE_MMU ## select ARCH_SUPPORT_ABI
select ARCH_SUPPORT_ABI ## select ARCH_SUPPORT_CPU
select ARCH_SUPPORT_CPU ## select ARCH_SUPPORT_TUNE
select ARCH_SUPPORT_TUNE ##
help ## help The PowerPC architecture, as defined by:
The PowerPC architecture, as defined by: ## help http://www.ibm.com/developerworks/eserver/articles/archguide.html
http://www.ibm.com/developerworks/eserver/articles/archguide.html

View File

@ -1,13 +1,13 @@
# s390 specific config options # s390 specific config options
# depends on EXPERIMENTAL
config ARCH_s390 ## depends on EXPERIMENTAL
select ARCH_SUPPORTS_32 ##
select ARCH_SUPPORTS_64 ## select ARCH_SUPPORTS_32
select ARCH_DEFAULT_32 ## select ARCH_SUPPORTS_64
select ARCH_USE_MMU ## select ARCH_DEFAULT_32
select ARCH_SUPPORT_FPU ## select ARCH_USE_MMU
help ## select ARCH_SUPPORT_FPU
Defined by IBM in: ##
32-bit ESA/390 : http://publibfp.boulder.ibm.com/cgi-bin/bookmgr/BOOKS/dz9ar008/CCONTENTS ## help Defined by IBM in:
64-bit z/Architecure : http://publibfp.boulder.ibm.com/cgi-bin/bookmgr/BOOKS/dz9zr002/CCONTENTS ## help 32-bit ESA/390 : http://publibfp.boulder.ibm.com/cgi-bin/bookmgr/BOOKS/dz9ar008/CCONTENTS
## help 64-bit z/Architecure : http://publibfp.boulder.ibm.com/cgi-bin/bookmgr/BOOKS/dz9zr002/CCONTENTS

View File

@ -1,11 +1,10 @@
# Super-H specific configuration file # Super-H specific configuration file
config ARCH_sh ## select ARCH_SUPPORTS_32
select ARCH_SUPPORTS_32 ## select ARCH_DEFAULT_32
select ARCH_DEFAULT_32 ## select ARCH_USE_MMU
select ARCH_USE_MMU ## select ARCH_SUPPORTS_BOTH_ENDIAN
select ARCH_SUPPORTS_BOTH_ENDIAN ## select ARCH_DEFAULT_LE
select ARCH_DEFAULT_LE ##
help ## help The Super-H architecture, as defined by:
The Super-H architecture, as defined by: ## help http://www.renesas.com/fmwk.jsp?cnt=superh_family_landing.jsp&fp=/products/mpumcu/superh_family/
http://www.renesas.com/fmwk.jsp?cnt=superh_family_landing.jsp&fp=/products/mpumcu/superh_family/

View File

@ -1,13 +1,12 @@
# SPARC specific config options # SPARC specific config options
config ARCH_sparc ## select ARCH_SUPPORTS_32
select ARCH_SUPPORTS_32 ## select ARCH_SUPPORTS_64
select ARCH_SUPPORTS_64 ## select ARCH_DEFAULT_32
select ARCH_DEFAULT_32 ## select ARCH_USE_MMU
select ARCH_USE_MMU ## select ARCH_SUPPORT_CPU
select ARCH_SUPPORT_CPU ## select ARCH_SUPPORT_TUNE
select ARCH_SUPPORT_TUNE ##
help ## help The SUN SPARC architecture, as defined by:
The SUN SPARC architecture, as defined by: ## help 32 bit: http://www.sparc.org/standards/V8.pdf
32 bit: http://www.sparc.org/standards/V8.pdf ## help 64 bit: http://www.sparc.org/standards/SPARCV9.pdf
64 bit: http://www.sparc.org/standards/SPARCV9.pdf

View File

@ -1,14 +1,13 @@
# x86 specific options # x86 specific options
config ARCH_x86 ## select ARCH_SUPPORTS_32
select ARCH_SUPPORTS_32 ## select ARCH_SUPPORTS_64
select ARCH_SUPPORTS_64 ## select ARCH_DEFAULT_32
select ARCH_DEFAULT_32 ## select ARCH_USE_MMU
select ARCH_USE_MMU ## select ARCH_SUPPORT_ARCH
select ARCH_SUPPORT_ARCH ## select ARCH_SUPPORT_CPU
select ARCH_SUPPORT_CPU ## select ARCH_SUPPORT_TUNE
select ARCH_SUPPORT_TUNE ##
help ## help The x86 architecture, as defined by:
The x86 architecture, as defined by: ## help 32-bit (ia32) : http://www.intel.com/
32-bit (ia32) : http://www.intel.com/ ## help 64-bit (amd64): http://www.amd.com/us-en/Processors/DevelopWithAMD/0,,30_2252_875_7044,00.html
64-bit (amd64): http://www.amd.com/us-en/Processors/DevelopWithAMD/0,,30_2252_875_7044,00.html

View File

@ -1,17 +1,16 @@
# Compiler options # Compiler options
#
config CC_gcc ## select CC_SUPPORT_CXX
select CC_SUPPORT_CXX ## select CC_SUPPORT_FORTRAN
select CC_SUPPORT_FORTRAN ## select CC_SUPPORT_JAVA
select CC_SUPPORT_JAVA ## select CC_SUPPORT_ADA
select CC_SUPPORT_ADA ## select CC_SUPPORT_OBJC
select CC_SUPPORT_OBJC ## select CC_SUPPORT_OBJCXX
select CC_SUPPORT_OBJCXX ##
help ## help gcc is the full-blown GNU compiler. This is what most people will choose.
gcc is the full-blown GNU compiler. This is what most people will choose. ## help
## help gcc supports many languages, a powerful code parser, optimised binary
gcc supports many languages, a powerful code parser, optimised binary ## help output, and lots of other features.
output, and lots of other features.
config CC_GCC_SHOW_LINARO config CC_GCC_SHOW_LINARO
bool bool

View File

@ -80,7 +80,7 @@ define build_gen_choice_in
$(SILENT)(echo "# $(2) menu"; \ $(SILENT)(echo "# $(2) menu"; \
echo "# Generated file, do not edit!!!"; \ echo "# Generated file, do not edit!!!"; \
echo ""; \ echo ""; \
echo "choice"; \ echo "choice GEN_CHOICE_$(3)"; \
echo " bool"; \ echo " bool"; \
echo " prompt \"$(2)\""; \ echo " prompt \"$(2)\""; \
echo ""; \ echo ""; \
@ -90,13 +90,13 @@ define build_gen_choice_in
echo "config $(3)_$${_entry}"; \ echo "config $(3)_$${_entry}"; \
echo " bool"; \ echo " bool"; \
echo " prompt \"$${entry}\""; \ echo " prompt \"$${entry}\""; \
dep_val=$$($(grep) -E '^# depends on ' $${file} 2>/dev/null); \
if [ -n "$${dep_val}" ]; then \
echo " $${dep_val#\# }"; \
fi; \
if [ "$(5)" = "Y" ]; then \ if [ "$(5)" = "Y" ]; then \
echo " depends on $(3)_$${_entry}_AVAILABLE"; \ echo " depends on $(3)_$${_entry}_AVAILABLE"; \
fi; \ fi; \
sed -r -e '/^## depends on /!d; s/^## / /;' $${file} 2>/dev/null;\
sed -r -e '/^## select /!d; s/^## / /;' $${file} 2>/dev/null; \
echo " help"; \
sed -r -e '/^## help ?/!d; s/^## help ?/ /;' $${file} 2>/dev/null; \
echo ""; \ echo ""; \
done; \ done; \
echo "endchoice"; \ echo "endchoice"; \
@ -157,10 +157,11 @@ define build_gen_menu_in
echo "menuconfig $(3)_$${_entry}"; \ echo "menuconfig $(3)_$${_entry}"; \
echo " bool"; \ echo " bool"; \
echo " prompt \"$${entry}\""; \ echo " prompt \"$${entry}\""; \
dep_val=$$($(grep) -E '^# depends on ' $${file} 2>/dev/null); \ sed -r -e '/^## depends on /!d; s/^## / /;' $${file} 2>/dev/null;\
if [ -n "$${dep_val}" ]; then \ sed -r -e '/^## select /!d; s/^## / /;' $${file} 2>/dev/null; \
echo " $${dep_val#\# }"; \ echo " help"; \
fi; \ sed -r -e '/^## help ?/!d; s/^## help ?/ /;' $${file} 2>/dev/null; \
echo ""; \
echo "if $(3)_$${_entry}"; \ echo "if $(3)_$${_entry}"; \
echo "source \"$${file}\""; \ echo "source \"$${file}\""; \
echo "endif"; \ echo "endif"; \

View File

@ -1,8 +1,9 @@
# dmalloc debug facility # dmalloc debug facility
# depends on ! BACKEND
config DEBUG_dmalloc ## depends on ! BACKEND
bool ##
## help dmalloc helps tracking memory allocation mis-usage
## help such as double-free, use-after-free...
choice choice
bool bool

View File

@ -1,11 +1,10 @@
# D.U.M.A. - Detect Unintended Memory Access - Memory checker # D.U.M.A. - Detect Unintended Memory Access - Memory checker
# depends on ! BACKEND
config DEBUG_duma ## depends on ! BACKEND
help
D.U.M.A. - Detect Unintended Memory Access ## help D.U.M.A. - Detect Unintended Memory Access
A memory bound checker, with additional features. ## help A memory bound checker, with additional features.
Formerly known as Electric Fence. ## help Formerly known as Electric Fence.
config DUMA_A config DUMA_A
bool bool

View File

@ -1,8 +1,6 @@
# GDB menu # GDB menu
config DEBUG_gdb ## help gdb is the GNU debugger
help
Enable gdb for the target
source "config/debug/gdb.in.cross" source "config/debug/gdb.in.cross"
source "config/debug/gdb.in.native" source "config/debug/gdb.in.native"

View File

@ -1,13 +1,13 @@
# ltrace # ltrace
# depends on ! BACKEND
config DEBUG_ltrace ## depends on ! BACKEND
select LIBELF_TARGET ##
help ## select LIBELF_TARGET
ltrace is a program that simply runs the specified command until it exits. ##
It intercepts and records the dynamic library calls which are called by ## help ltrace is a program that simply runs the specified command until it exits.
the executed process and the signals which are received by that process. ## help It intercepts and records the dynamic library calls which are called by
It can also intercept and print the system calls executed by the program. ## help the executed process and the signals which are received by that process.
## help It can also intercept and print the system calls executed by the program.
choice choice
bool bool

View File

@ -1,7 +1,6 @@
# strace # strace
# depends on ! BACKEND
config DEBUG_strace ## depends on ! BACKEND
choice choice
bool bool

View File

@ -1,11 +1,10 @@
# Bare metal config options # Bare metal config options
config KERNEL_bare_metal ## select BARE_METAL
select BARE_METAL ##
help ## help 'Bare metal' refers to those programs that run without any kernel.
'Bare metal' refers to those programs that run without any kernel. ## help
## help You probably want to say 'y' here if you plan to use your compiler
You probably want to say 'y' here if you plan to use your compiler ## help to build bootloaders. It is not yet suitable to build Linux kernels,
to build bootloaders. It is not yet suitable to build Linux kernels, ## help though, because the APCI stuff relies on the target C library headers
though, because the APCI stuff relies on the target C library headers ## help being available?!?!...
being available?!?!...

View File

@ -1,6 +1,5 @@
# Linux kernel options # Linux kernel options
config KERNEL_linux ## select KERNEL_SUPPORTS_SHARED_LIBS
select KERNEL_SUPPORTS_SHARED_LIBS ##
help ## help Build a toolchain targeting systems running Linux as a kernel.
Build a toolchain targeting systems running Linux as a kernel.

View File

@ -1,10 +1,10 @@
# mingw32 config options # mingw32 config options
# depends on EXPERIMENTAL && ( ARCH_x86 && ARCH_32 )
config KERNEL_mingw32 ## depends on EXPERIMENTAL && ( ARCH_x86 && ARCH_32 )
select MINGW32 ##
help ## select MINGW32
Build a toolchain targeting systems running Windows as host ##
## help Build a toolchain targeting systems running Windows as host
choice choice
bool bool

View File

@ -1,16 +1,16 @@
# eglibc options # eglibc options
# depends on ! MINGW32 && ! BARE_METAL && ARCH_USE_MMU
config LIBC_eglibc ## depends on ! MINGW32 && ! BARE_METAL && ARCH_USE_MMU
select LIBC_SUPPORT_NPTL ##
select LIBC_SUPPORT_LINUXTHREADS ## select LIBC_SUPPORT_NPTL
help ## select LIBC_SUPPORT_LINUXTHREADS
EGLIBC (Embedded GLIBC) is a variant of the standard GNU GLIBC ##
that is designed to work well on embedded systems. EGLIBC strives ## help EGLIBC (Embedded GLIBC) is a variant of the standard GNU GLIBC
to be source and binary compatible with GLIBC. Its goals include ## help that is designed to work well on embedded systems. EGLIBC strives
a reduced footprint, configurable components, and improved ## help to be source and binary compatible with GLIBC. Its goals include
cross-compilation support. EGLIBC also includes some embedded ports ## help a reduced footprint, configurable components, and improved
(such as e500/spe) that are normally separate add-ons of GLIBC. ## help cross-compilation support. EGLIBC also includes some embedded ports
## help (such as e500/spe) that are normally separate add-ons of GLIBC.
choice choice
bool bool

View File

@ -3,24 +3,21 @@
if LIBC_glibc || LIBC_eglibc if LIBC_glibc || LIBC_eglibc
# Some architectures require the ports addon. List them one by one here:
# This list must be carefully in sync with the architectures names
# we can find in config/arch/*
config LIBC_GLIBC_MAY_FORCE_PORTS
bool
default y if ARCH_arm
default y if ARCH_mips
select LIBC_GLIBC_USE_PORTS
# Force using the BFD linker during the toolchain build # Force using the BFD linker during the toolchain build
config LIBC_glibc_familly config LIBC_glibc_familly
bool bool
default y default y
select BINUTILS_FORCE_LD_BFD select BINUTILS_FORCE_LD_BFD
# Some architectures require the ports addon. List them one by one here:
# This list must be carefully in sync with the architectures names
# we can find in config/arch/*
config ARCH_arm
select LIBC_GLIBC_USE_PORTS
config ARCH_mips
select LIBC_GLIBC_USE_PORTS
# End of arch-specific ports auto-select
comment "glibc/eglibc common options" comment "glibc/eglibc common options"
config LIBC_GLIBC_EXTRA_CONFIG config LIBC_GLIBC_EXTRA_CONFIG

View File

@ -1,11 +1,11 @@
# glibc options # glibc options
# depends on ! MINGW32 && ! BARE_METAL && ARCH_USE_MMU
config LIBC_glibc ## depends on ! MINGW32 && ! BARE_METAL && ARCH_USE_MMU
select LIBC_SUPPORT_NPTL ##
help ## select LIBC_SUPPORT_NPTL
The de-facto standard for Linux distributions. ##
Feature-rich, but large... Most usefull for desktop-like systems. ## help The de-facto standard for Linux distributions.
## help Feature-rich, but large... Most usefull for desktop-like systems.
choice choice
bool bool

View File

@ -1,11 +1,10 @@
# mingw options # mingw options
# depends on MINGW32
config LIBC_mingw ## depends on MINGW32
bool ##
select LIBC_SUPPORT_WIN32THREADS ## select LIBC_SUPPORT_WIN32THREADS
help ##
The de-facto standard for Mingw distributions. ## help The de-facto standard for Mingw distributions.
choice choice
bool bool

View File

@ -1,15 +1,15 @@
# newlib options # newlib options
# depends on BARE_METAL
config LIBC_newlib ## depends on BARE_METAL
select LIBC_SUPPORT_THREADS_NONE ##
help ## select LIBC_SUPPORT_THREADS_NONE
Newlib is a C library intended for use on embedded systems. It is a ##
conglomeration of several library parts, all under free software ## help Newlib is a C library intended for use on embedded systems. It is a
licenses that make them easily usable on embedded products. Newlib ## help conglomeration of several library parts, all under free software
is only available in source form. It can be compiled for a wide ## help licenses that make them easily usable on embedded products. Newlib
array of processors, and will usually work on any architecture with ## help is only available in source form. It can be compiled for a wide
the addition of a few low-level routines. ## help array of processors, and will usually work on any architecture with
## help the addition of a few low-level routines.
choice choice
bool bool

View File

@ -1,14 +1,13 @@
# Dummy config file to not use a C library *at all* # Dummy config file to not use a C library *at all*
# depends on BARE_METAL
config LIBC_none ## depends on BARE_METAL
help ##
Do not use a C library. ## help Do not use a C library.
## help
This is usefull if your project is self-contained, does not rely on ## help This is usefull if your project is self-contained, does not rely on
an external C library, and provides all the necessary bits. ## help an external C library, and provides all the necessary bits.
## help
Most probably usefull to bootloaders, as they generally don't depend ## help Most probably usefull to bootloaders, as they generally don't depend
on the C library. ## help on the C library.
## help
If unsure: do *not* choose that, and use another option in the choice. ## help If unsure: do *not* choose that, and use another option in the choice.

View File

@ -1,13 +1,14 @@
# uClibc options # uClibc options
# depends on ! MINGW32 && ! BARE_METAL
config LIBC_uClibc ## depends on ! MINGW32 && ! BARE_METAL
select LIBC_SUPPORT_LINUXTHREADS ##
select LIBC_SUPPORT_THREADS_NONE ## select LIBC_SUPPORT_LINUXTHREADS
help ## select LIBC_SUPPORT_THREADS_NONE
The de-facto standard for embeded linux systems. ##
Highly configurable, thus as feature-rich as you need, without ## help The de-facto standard for embeded linux systems.
compromising for size. ## help
## help Highly configurable, thus as feature-rich as you
## help need, without compromising for size.
choice choice
bool bool