mirror of
https://github.com/RT-Thread/rt-thread.git
synced 2025-12-28 10:00:24 +00:00
[libc] add RT_USING_INTERNAL_LIBC_ONLY macro
This option is for RT-Thread Nano version. If select this option, it will not compile components/libc folder and only use tool chain internal libc. Normally, the tool chain internal is only cover ISO standard (e.g. armcc), but some tool chains' internal libc will cover more than ISO standard (e.g. newlib).
This commit is contained in:
@@ -1,11 +1,27 @@
|
||||
menu "C/C++ and POSIX layer"
|
||||
|
||||
# This is for external libc(e.g. mlib),
|
||||
# and NOT for newlib or picolibc which are inherent in the toolchains.
|
||||
# Usually, the external libc should be a software package and select
|
||||
# RT_USING_EXTERNAL_LIBC in software package's Kconfig
|
||||
config RT_USING_INTERNAL_LIBC_ONLY
|
||||
bool "Only use tool chain internal libc"
|
||||
default n
|
||||
help
|
||||
This option is for RT-Thread Nano version.
|
||||
If select this option, it will not compile components/libc
|
||||
folder and only use tool chain internal libc. Normally, the
|
||||
tool chain internal is only cover ISO standard (e.g. armcc),
|
||||
but some tool chains' internal libc will cover more than
|
||||
ISO standard (e.g. newlib). However, no matter the cover level
|
||||
it is, the rt-thread libc leveling layer will not be involved
|
||||
at all if select this option.
|
||||
|
||||
config RT_USING_EXTERNAL_LIBC
|
||||
depends on !RT_USING_INTERNAL_LIBC_ONLY
|
||||
bool
|
||||
help
|
||||
This is for external libc(e.g. mlib),
|
||||
and NOT for newlib or picolibc which are inherent in the toolchains.
|
||||
Usually, the external libc should be a software package and select
|
||||
RT_USING_EXTERNAL_LIBC in software package's Kconfig
|
||||
This option is not available for users to select.
|
||||
|
||||
source "$RTT_DIR/components/libc/compilers/common/Kconfig"
|
||||
source "$RTT_DIR/components/libc/posix/Kconfig"
|
||||
|
||||
@@ -7,9 +7,10 @@ cwd = GetCurrentDir()
|
||||
objs = []
|
||||
list = os.listdir(cwd)
|
||||
|
||||
for d in list:
|
||||
path = os.path.join(cwd, d)
|
||||
if os.path.isfile(os.path.join(path, 'SConscript')):
|
||||
objs = objs + SConscript(os.path.join(d, 'SConscript'))
|
||||
if not GetDepend('RT_USING_INTERNAL_LIBC_ONLY'):
|
||||
for d in list:
|
||||
path = os.path.join(cwd, d)
|
||||
if os.path.isfile(os.path.join(path, 'SConscript')):
|
||||
objs = objs + SConscript(os.path.join(d, 'SConscript'))
|
||||
|
||||
Return('objs')
|
||||
|
||||
Reference in New Issue
Block a user