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
config ARCH_alpha
select ARCH_SUPPORTS_32
select ARCH_DEFAULT_32
select ARCH_USE_MMU
select ARCH_SUPPORT_CPU
select ARCH_SUPPORT_TUNE
help
The Alpha architecture.
## select ARCH_SUPPORTS_32
## select ARCH_DEFAULT_32
## select ARCH_USE_MMU
## select ARCH_SUPPORT_CPU
## select ARCH_SUPPORT_TUNE
##
## help The Alpha architecture.

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,13 +1,13 @@
# s390 specific config options
# depends on EXPERIMENTAL
config ARCH_s390
select ARCH_SUPPORTS_32
select ARCH_SUPPORTS_64
select ARCH_DEFAULT_32
select ARCH_USE_MMU
select ARCH_SUPPORT_FPU
help
Defined by IBM in:
32-bit ESA/390 : http://publibfp.boulder.ibm.com/cgi-bin/bookmgr/BOOKS/dz9ar008/CCONTENTS
64-bit z/Architecure : http://publibfp.boulder.ibm.com/cgi-bin/bookmgr/BOOKS/dz9zr002/CCONTENTS
## depends on EXPERIMENTAL
##
## select ARCH_SUPPORTS_32
## select ARCH_SUPPORTS_64
## select ARCH_DEFAULT_32
## select ARCH_USE_MMU
## select ARCH_SUPPORT_FPU
##
## help Defined by IBM in:
## 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
config ARCH_sh
select ARCH_SUPPORTS_32
select ARCH_DEFAULT_32
select ARCH_USE_MMU
select ARCH_SUPPORTS_BOTH_ENDIAN
select ARCH_DEFAULT_LE
help
The Super-H architecture, as defined by:
http://www.renesas.com/fmwk.jsp?cnt=superh_family_landing.jsp&fp=/products/mpumcu/superh_family/
## select ARCH_SUPPORTS_32
## select ARCH_DEFAULT_32
## select ARCH_USE_MMU
## select ARCH_SUPPORTS_BOTH_ENDIAN
## select ARCH_DEFAULT_LE
##
## help The Super-H architecture, as defined by:
## help 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
config ARCH_sparc
select ARCH_SUPPORTS_32
select ARCH_SUPPORTS_64
select ARCH_DEFAULT_32
select ARCH_USE_MMU
select ARCH_SUPPORT_CPU
select ARCH_SUPPORT_TUNE
help
The SUN SPARC architecture, as defined by:
32 bit: http://www.sparc.org/standards/V8.pdf
64 bit: http://www.sparc.org/standards/SPARCV9.pdf
## select ARCH_SUPPORTS_32
## select ARCH_SUPPORTS_64
## select ARCH_DEFAULT_32
## select ARCH_USE_MMU
## select ARCH_SUPPORT_CPU
## select ARCH_SUPPORT_TUNE
##
## help The SUN SPARC architecture, as defined by:
## help 32 bit: http://www.sparc.org/standards/V8.pdf
## help 64 bit: http://www.sparc.org/standards/SPARCV9.pdf

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -3,24 +3,21 @@
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
config LIBC_glibc_familly
bool
default y
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"
config LIBC_GLIBC_EXTRA_CONFIG

View File

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

View File

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

View File

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

View File

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

View File

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