Merge pull request #5105 from mysterywolf/part
[libc]新建gcc文件夹,将newlib和partical文件夹并入
This commit is contained in:
commit
d43a68e95e
|
@ -18,10 +18,6 @@ config PKGS_DIR
|
||||||
source "$RTT_DIR/Kconfig"
|
source "$RTT_DIR/Kconfig"
|
||||||
source "$PKGS_DIR/Kconfig"
|
source "$PKGS_DIR/Kconfig"
|
||||||
|
|
||||||
config SOC_LS
|
|
||||||
bool
|
|
||||||
default y
|
|
||||||
|
|
||||||
config SOC_LS1B
|
config SOC_LS1B
|
||||||
bool
|
bool
|
||||||
select RT_USING_COMPONENTS_INIT
|
select RT_USING_COMPONENTS_INIT
|
||||||
|
|
|
@ -19,10 +19,6 @@ source "$RTT_DIR/Kconfig"
|
||||||
source "$RTT_DIR/libcpu/mips/common/Kconfig"
|
source "$RTT_DIR/libcpu/mips/common/Kconfig"
|
||||||
source "$PKGS_DIR/Kconfig"
|
source "$PKGS_DIR/Kconfig"
|
||||||
|
|
||||||
config SOC_LS
|
|
||||||
bool
|
|
||||||
default y
|
|
||||||
|
|
||||||
config SOC_LS1C300
|
config SOC_LS1C300
|
||||||
bool
|
bool
|
||||||
select RT_USING_COMPONENTS_INIT
|
select RT_USING_COMPONENTS_INIT
|
||||||
|
|
|
@ -22,10 +22,6 @@ source "$RTT_DIR/Kconfig"
|
||||||
source "$RTT_DIR/libcpu/mips/common/Kconfig"
|
source "$RTT_DIR/libcpu/mips/common/Kconfig"
|
||||||
source "$PKGS_DIR/Kconfig"
|
source "$PKGS_DIR/Kconfig"
|
||||||
|
|
||||||
config SOC_LS
|
|
||||||
bool
|
|
||||||
default y
|
|
||||||
|
|
||||||
config SOC_LS2K1000
|
config SOC_LS2K1000
|
||||||
bool
|
bool
|
||||||
select ARCH_MIPS64
|
select ARCH_MIPS64
|
||||||
|
|
|
@ -257,21 +257,6 @@ int msh_exec_module(const char *cmd_line, int size)
|
||||||
rt_free(pg_name);
|
rt_free(pg_name);
|
||||||
return ret;
|
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) */
|
#endif /* defined(RT_USING_MODULE) && defined(RT_USING_DFS) */
|
||||||
|
|
||||||
static int _msh_exec_cmd(char *cmd, rt_size_t length, int *retp)
|
static int _msh_exec_cmd(char *cmd, rt_size_t length, int *retp)
|
||||||
|
|
|
@ -319,16 +319,6 @@ int remove(const char *filename)
|
||||||
#endif
|
#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
|
#ifdef __MICROLIB
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
|
|
|
@ -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')
|
|
|
@ -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
|
|
|
@ -25,11 +25,21 @@ void __rt_libc_exit(int status)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int __rt_libc_system(const char *string)
|
|
||||||
{
|
|
||||||
#ifdef RT_USING_MSH
|
#ifdef RT_USING_MSH
|
||||||
|
int system(const char *command)
|
||||||
|
{
|
||||||
extern int msh_exec(char *cmd, rt_size_t length);
|
extern int msh_exec(char *cmd, rt_size_t length);
|
||||||
msh_exec((char*)string, rt_strlen(string));
|
|
||||||
#endif
|
int ret = -RT_ENOMEM;
|
||||||
return 0;
|
char *cmd = rt_strdup(command);
|
||||||
|
|
||||||
|
if (cmd)
|
||||||
|
{
|
||||||
|
ret = msh_exec(cmd, rt_strlen(cmd));
|
||||||
|
rt_free(cmd);
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
RTM_EXPORT(system);
|
||||||
|
#endif
|
||||||
|
|
|
@ -6,7 +6,6 @@
|
||||||
* Change Logs:
|
* Change Logs:
|
||||||
* Date Author Notes
|
* Date Author Notes
|
||||||
* 2021-02-13 Meco Man implement exit() and abort()
|
* 2021-02-13 Meco Man implement exit() and abort()
|
||||||
* 2021-02-20 Meco Man add system()
|
|
||||||
*/
|
*/
|
||||||
#include <rtthread.h>
|
#include <rtthread.h>
|
||||||
|
|
||||||
|
@ -17,9 +16,3 @@ void __exit (int status)
|
||||||
__rt_libc_exit(status);
|
__rt_libc_exit(status);
|
||||||
while(1);
|
while(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
int system(const char * string)
|
|
||||||
{
|
|
||||||
extern int __rt_libc_system(const char *string);
|
|
||||||
return __rt_libc_system(string);
|
|
||||||
}
|
|
||||||
|
|
|
@ -6,4 +6,5 @@ Please define RT_USING_LIBC and compile RT-Thread with GCC compiler.
|
||||||
|
|
||||||
## More Information
|
## More Information
|
||||||
|
|
||||||
https://sourceware.org/newlib/libc.html#Reentrancy
|
https://sourceware.org/newlib/libc.html#Reentrancy
|
||||||
|
|
|
@ -85,6 +85,7 @@ void __libc_init_array(void)
|
||||||
#ifdef RT_USING_LIBC
|
#ifdef RT_USING_LIBC
|
||||||
#include <reent.h>
|
#include <reent.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include "libc.h"
|
||||||
#ifdef RT_USING_DFS
|
#ifdef RT_USING_DFS
|
||||||
#include <dfs_posix.h>
|
#include <dfs_posix.h>
|
||||||
#endif
|
#endif
|
||||||
|
@ -92,10 +93,6 @@ void __libc_init_array(void)
|
||||||
#include <dlmodule.h>
|
#include <dlmodule.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define DBG_TAG "newlib.syscalls"
|
|
||||||
#define DBG_LVL DBG_INFO
|
|
||||||
#include <rtdbg.h>
|
|
||||||
|
|
||||||
/* Reentrant versions of system calls. */
|
/* Reentrant versions of system calls. */
|
||||||
|
|
||||||
#ifndef _REENT_ONLY
|
#ifndef _REENT_ONLY
|
||||||
|
@ -311,12 +308,6 @@ _ssize_t _write_r(struct _reent *ptr, int fd, const void *buf, size_t nbytes)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void _system(const char *s)
|
|
||||||
{
|
|
||||||
extern int __rt_libc_system(const char *string);
|
|
||||||
__rt_libc_system(s);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* for exit() and abort() */
|
/* for exit() and abort() */
|
||||||
__attribute__ ((noreturn)) void _exit (int status)
|
__attribute__ ((noreturn)) void _exit (int status)
|
||||||
{
|
{
|
|
@ -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')
|
|
@ -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')
|
|
@ -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
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
This folder is for some particular targets.
|
||||||
|
|
Loading…
Reference in New Issue