From 8b17d53da73289a368a47f798a9275aea3e50d86 Mon Sep 17 00:00:00 2001 From: Meco Man <920369182@qq.com> Date: Mon, 27 Sep 2021 14:43:31 -0400 Subject: [PATCH 1/2] =?UTF-8?q?[libc]=E6=96=B0=E5=BB=BAgcc=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=A4=B9=EF=BC=8C=E5=B0=86newlib=E5=92=8Cpartical?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=A4=B9=E5=B9=B6=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bsp/ls1bdev/Kconfig | 4 ---- bsp/ls1cdev/Kconfig | 4 ---- bsp/ls2kdev/Kconfig | 4 ---- .../compilers/common/partial/ls/SConscript | 23 ------------------- .../compilers/common/partial/ls/readme.md | 9 -------- .../{common/partial => gcc}/SConscript | 0 .../libc/compilers/{ => gcc}/newlib/README.md | 3 ++- .../compilers/{ => gcc}/newlib/SConscript | 0 .../libc/compilers/{ => gcc}/newlib/libc.c | 0 .../libc/compilers/{ => gcc}/newlib/libc.h | 0 .../compilers/{ => gcc}/newlib/libc_syms.c | 0 .../compilers/{ => gcc}/newlib/machine/time.h | 0 .../libc/compilers/{ => gcc}/newlib/stdio.c | 0 .../compilers/{ => gcc}/newlib/syscalls.c | 5 +--- .../libc/compilers/gcc/partial/SConscript | 15 ++++++++++++ .../compilers/gcc/partial/mips/SConscript | 20 ++++++++++++++++ .../libc/compilers/gcc/partial/mips/readme.md | 4 ++++ .../ls => gcc/partial/mips}/sys/select.h | 0 .../libc/compilers/gcc/partial/readme.md | 2 ++ 19 files changed, 44 insertions(+), 49 deletions(-) delete mode 100644 components/libc/compilers/common/partial/ls/SConscript delete mode 100644 components/libc/compilers/common/partial/ls/readme.md rename components/libc/compilers/{common/partial => gcc}/SConscript (100%) rename components/libc/compilers/{ => gcc}/newlib/README.md (71%) rename components/libc/compilers/{ => gcc}/newlib/SConscript (100%) rename components/libc/compilers/{ => gcc}/newlib/libc.c (100%) rename components/libc/compilers/{ => gcc}/newlib/libc.h (100%) rename components/libc/compilers/{ => gcc}/newlib/libc_syms.c (100%) rename components/libc/compilers/{ => gcc}/newlib/machine/time.h (100%) rename components/libc/compilers/{ => gcc}/newlib/stdio.c (100%) rename components/libc/compilers/{ => gcc}/newlib/syscalls.c (98%) create mode 100644 components/libc/compilers/gcc/partial/SConscript create mode 100644 components/libc/compilers/gcc/partial/mips/SConscript create mode 100644 components/libc/compilers/gcc/partial/mips/readme.md rename components/libc/compilers/{common/partial/ls => gcc/partial/mips}/sys/select.h (100%) create mode 100644 components/libc/compilers/gcc/partial/readme.md diff --git a/bsp/ls1bdev/Kconfig b/bsp/ls1bdev/Kconfig index c9196af29d..b02aee337a 100644 --- a/bsp/ls1bdev/Kconfig +++ b/bsp/ls1bdev/Kconfig @@ -18,10 +18,6 @@ config PKGS_DIR source "$RTT_DIR/Kconfig" source "$PKGS_DIR/Kconfig" -config SOC_LS - bool - default y - config SOC_LS1B bool select RT_USING_COMPONENTS_INIT diff --git a/bsp/ls1cdev/Kconfig b/bsp/ls1cdev/Kconfig index 59f7c43323..3fb6e3bbdf 100644 --- a/bsp/ls1cdev/Kconfig +++ b/bsp/ls1cdev/Kconfig @@ -19,10 +19,6 @@ source "$RTT_DIR/Kconfig" source "$RTT_DIR/libcpu/mips/common/Kconfig" source "$PKGS_DIR/Kconfig" -config SOC_LS - bool - default y - config SOC_LS1C300 bool select RT_USING_COMPONENTS_INIT diff --git a/bsp/ls2kdev/Kconfig b/bsp/ls2kdev/Kconfig index 57dd99e53a..fc2dfe1328 100644 --- a/bsp/ls2kdev/Kconfig +++ b/bsp/ls2kdev/Kconfig @@ -22,10 +22,6 @@ source "$RTT_DIR/Kconfig" source "$RTT_DIR/libcpu/mips/common/Kconfig" source "$PKGS_DIR/Kconfig" -config SOC_LS - bool - default y - config SOC_LS2K1000 bool select ARCH_MIPS64 diff --git a/components/libc/compilers/common/partial/ls/SConscript b/components/libc/compilers/common/partial/ls/SConscript deleted file mode 100644 index 2665bee078..0000000000 --- a/components/libc/compilers/common/partial/ls/SConscript +++ /dev/null @@ -1,23 +0,0 @@ -from shutil import copy -from building import * - -Import('rtconfig') - -src = [] -cwd = GetCurrentDir() -CPPPATH = [cwd] -group = [] - -if rtconfig.PLATFORM == 'gcc' and GetDepend('SOC_LS'): - try: - # There is no 'sys/select.h' in these bsp's gcc toolchain; thus, we need to copy this file from 'nogcc/sys/select.h' - copy("../../nogcc/sys/select.h", "./sys/select.h") - except: - pass - - if GetDepend('RT_USING_LIBC'): - src += Glob('*.c') - - group = DefineGroup('libc', src, depend = [], CPPPATH = CPPPATH) - -Return('group') diff --git a/components/libc/compilers/common/partial/ls/readme.md b/components/libc/compilers/common/partial/ls/readme.md deleted file mode 100644 index fa68e1e84a..0000000000 --- a/components/libc/compilers/common/partial/ls/readme.md +++ /dev/null @@ -1,9 +0,0 @@ -This folder will be included when compiling the BSPs as follow: - -- ls1bdev -- ls1cdev -- ls2kdev - -These files will be generated by scons automatically , and **DO NOT** change them: - -- sys/select.h \ No newline at end of file diff --git a/components/libc/compilers/common/partial/SConscript b/components/libc/compilers/gcc/SConscript similarity index 100% rename from components/libc/compilers/common/partial/SConscript rename to components/libc/compilers/gcc/SConscript diff --git a/components/libc/compilers/newlib/README.md b/components/libc/compilers/gcc/newlib/README.md similarity index 71% rename from components/libc/compilers/newlib/README.md rename to components/libc/compilers/gcc/newlib/README.md index 385f329a4f..62172e6a55 100644 --- a/components/libc/compilers/newlib/README.md +++ b/components/libc/compilers/gcc/newlib/README.md @@ -6,4 +6,5 @@ Please define RT_USING_LIBC and compile RT-Thread with GCC compiler. ## More Information -https://sourceware.org/newlib/libc.html#Reentrancy \ No newline at end of file +https://sourceware.org/newlib/libc.html#Reentrancy + diff --git a/components/libc/compilers/newlib/SConscript b/components/libc/compilers/gcc/newlib/SConscript similarity index 100% rename from components/libc/compilers/newlib/SConscript rename to components/libc/compilers/gcc/newlib/SConscript diff --git a/components/libc/compilers/newlib/libc.c b/components/libc/compilers/gcc/newlib/libc.c similarity index 100% rename from components/libc/compilers/newlib/libc.c rename to components/libc/compilers/gcc/newlib/libc.c diff --git a/components/libc/compilers/newlib/libc.h b/components/libc/compilers/gcc/newlib/libc.h similarity index 100% rename from components/libc/compilers/newlib/libc.h rename to components/libc/compilers/gcc/newlib/libc.h diff --git a/components/libc/compilers/newlib/libc_syms.c b/components/libc/compilers/gcc/newlib/libc_syms.c similarity index 100% rename from components/libc/compilers/newlib/libc_syms.c rename to components/libc/compilers/gcc/newlib/libc_syms.c diff --git a/components/libc/compilers/newlib/machine/time.h b/components/libc/compilers/gcc/newlib/machine/time.h similarity index 100% rename from components/libc/compilers/newlib/machine/time.h rename to components/libc/compilers/gcc/newlib/machine/time.h diff --git a/components/libc/compilers/newlib/stdio.c b/components/libc/compilers/gcc/newlib/stdio.c similarity index 100% rename from components/libc/compilers/newlib/stdio.c rename to components/libc/compilers/gcc/newlib/stdio.c diff --git a/components/libc/compilers/newlib/syscalls.c b/components/libc/compilers/gcc/newlib/syscalls.c similarity index 98% rename from components/libc/compilers/newlib/syscalls.c rename to components/libc/compilers/gcc/newlib/syscalls.c index 4c1dc82ad3..8b7ff9efdb 100644 --- a/components/libc/compilers/newlib/syscalls.c +++ b/components/libc/compilers/gcc/newlib/syscalls.c @@ -85,6 +85,7 @@ void __libc_init_array(void) #ifdef RT_USING_LIBC #include #include +#include "libc.h" #ifdef RT_USING_DFS #include #endif @@ -92,10 +93,6 @@ void __libc_init_array(void) #include #endif -#define DBG_TAG "newlib.syscalls" -#define DBG_LVL DBG_INFO -#include - /* Reentrant versions of system calls. */ #ifndef _REENT_ONLY diff --git a/components/libc/compilers/gcc/partial/SConscript b/components/libc/compilers/gcc/partial/SConscript new file mode 100644 index 0000000000..4c815c49b8 --- /dev/null +++ b/components/libc/compilers/gcc/partial/SConscript @@ -0,0 +1,15 @@ +# RT-Thread building script for bridge + +import os +from building import * + +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')) + +Return('objs') diff --git a/components/libc/compilers/gcc/partial/mips/SConscript b/components/libc/compilers/gcc/partial/mips/SConscript new file mode 100644 index 0000000000..7651233d46 --- /dev/null +++ b/components/libc/compilers/gcc/partial/mips/SConscript @@ -0,0 +1,20 @@ +from shutil import copy +from building import * + +Import('rtconfig') + +src = [] +cwd = GetCurrentDir() +CPPPATH = [cwd] +group = [] + +if rtconfig.PLATFORM == 'gcc' and ('mips' in rtconfig.PREFIX): # identify mips gcc tool chain + try: + # There is no 'sys/select.h' in tthe mips gcc toolchain; it will be copied from 'nogcc/sys/select.h' + copy("../../../common/nogcc/sys/select.h", "./sys/select.h") + except: + pass + + group = DefineGroup('libc', src, depend = [], CPPPATH = CPPPATH) + +Return('group') diff --git a/components/libc/compilers/gcc/partial/mips/readme.md b/components/libc/compilers/gcc/partial/mips/readme.md new file mode 100644 index 0000000000..a3eeb06c5d --- /dev/null +++ b/components/libc/compilers/gcc/partial/mips/readme.md @@ -0,0 +1,4 @@ +These files don't exist in the mips gcc toolchain. They will be generated by scons automatically , and **DO NOT** change them: + +- sys/select.h + diff --git a/components/libc/compilers/common/partial/ls/sys/select.h b/components/libc/compilers/gcc/partial/mips/sys/select.h similarity index 100% rename from components/libc/compilers/common/partial/ls/sys/select.h rename to components/libc/compilers/gcc/partial/mips/sys/select.h diff --git a/components/libc/compilers/gcc/partial/readme.md b/components/libc/compilers/gcc/partial/readme.md new file mode 100644 index 0000000000..959fc29f35 --- /dev/null +++ b/components/libc/compilers/gcc/partial/readme.md @@ -0,0 +1,2 @@ +This folder is for some particular targets. + From c80688126a013c53334464799e28fcf2e4f4fb8c Mon Sep 17 00:00:00 2001 From: Meco Man <920369182@qq.com> Date: Mon, 27 Sep 2021 22:20:21 -0400 Subject: [PATCH 2/2] =?UTF-8?q?[libc]=20=E4=BC=98=E5=8C=96system=20?= =?UTF-8?q?=E6=94=AF=E6=8C=81gcc?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/finsh/msh.c | 15 -------------- components/libc/compilers/armlibc/syscalls.c | 10 ---------- components/libc/compilers/common/stdlib.c | 20 ++++++++++++++----- components/libc/compilers/dlib/syscalls.c | 7 ------- .../libc/compilers/gcc/newlib/syscalls.c | 6 ------ 5 files changed, 15 insertions(+), 43 deletions(-) diff --git a/components/finsh/msh.c b/components/finsh/msh.c index 86985c561c..18182ca264 100644 --- a/components/finsh/msh.c +++ b/components/finsh/msh.c @@ -257,21 +257,6 @@ int msh_exec_module(const char *cmd_line, int size) rt_free(pg_name); return ret; } - -int system(const char *command) -{ - int ret = -RT_ENOMEM; - char *cmd = rt_strdup(command); - - if (cmd) - { - ret = msh_exec(cmd, rt_strlen(cmd)); - rt_free(cmd); - } - - return ret; -} -RTM_EXPORT(system); #endif /* defined(RT_USING_MODULE) && defined(RT_USING_DFS) */ static int _msh_exec_cmd(char *cmd, rt_size_t length, int *retp) diff --git a/components/libc/compilers/armlibc/syscalls.c b/components/libc/compilers/armlibc/syscalls.c index 7d8ec2e8b4..3b1627d82a 100644 --- a/components/libc/compilers/armlibc/syscalls.c +++ b/components/libc/compilers/armlibc/syscalls.c @@ -319,16 +319,6 @@ int remove(const char *filename) #endif } -#if defined(RT_USING_FINSH) && defined(RT_USING_MODULE) && defined(RT_USING_DFS) -/* use system(const char *string) implementation in the msh */ -#else -int system(const char *string) -{ - extern int __rt_libc_system(const char *string); - return __rt_libc_system(string); -} -#endif - #ifdef __MICROLIB #include diff --git a/components/libc/compilers/common/stdlib.c b/components/libc/compilers/common/stdlib.c index 16a13afb83..6cc0b9fdac 100644 --- a/components/libc/compilers/common/stdlib.c +++ b/components/libc/compilers/common/stdlib.c @@ -25,11 +25,21 @@ void __rt_libc_exit(int status) } } -int __rt_libc_system(const char *string) -{ #ifdef RT_USING_MSH +int system(const char *command) +{ extern int msh_exec(char *cmd, rt_size_t length); - msh_exec((char*)string, rt_strlen(string)); -#endif - return 0; + + int ret = -RT_ENOMEM; + char *cmd = rt_strdup(command); + + if (cmd) + { + ret = msh_exec(cmd, rt_strlen(cmd)); + rt_free(cmd); + } + + return ret; } +RTM_EXPORT(system); +#endif diff --git a/components/libc/compilers/dlib/syscalls.c b/components/libc/compilers/dlib/syscalls.c index e1c9562b3a..1ee6a3bc12 100644 --- a/components/libc/compilers/dlib/syscalls.c +++ b/components/libc/compilers/dlib/syscalls.c @@ -6,7 +6,6 @@ * Change Logs: * Date Author Notes * 2021-02-13 Meco Man implement exit() and abort() - * 2021-02-20 Meco Man add system() */ #include @@ -17,9 +16,3 @@ void __exit (int status) __rt_libc_exit(status); while(1); } - -int system(const char * string) -{ - extern int __rt_libc_system(const char *string); - return __rt_libc_system(string); -} diff --git a/components/libc/compilers/gcc/newlib/syscalls.c b/components/libc/compilers/gcc/newlib/syscalls.c index 8b7ff9efdb..f5a2c16ecc 100644 --- a/components/libc/compilers/gcc/newlib/syscalls.c +++ b/components/libc/compilers/gcc/newlib/syscalls.c @@ -308,12 +308,6 @@ _ssize_t _write_r(struct _reent *ptr, int fd, const void *buf, size_t nbytes) #endif } -void _system(const char *s) -{ - extern int __rt_libc_system(const char *string); - __rt_libc_system(s); -} - /* for exit() and abort() */ __attribute__ ((noreturn)) void _exit (int status) {