[libc][musl] support arm-linux-musleabi toolchain

目前基本功能已经可以在QEMU上跑起来,但是pthread和内核signal选中会报冲突。先合并一版本,后续解决这些问题。
This commit is contained in:
Man, Jianting (Meco)
2022-11-22 21:40:50 -05:00
committed by GitHub
parent fc83546cf5
commit bdd663a33f
11 changed files with 247 additions and 126 deletions
+16 -17
View File
@@ -3,28 +3,27 @@ from building import *
from gcc import *
Import('rtconfig')
src = []
cwd = GetCurrentDir()
group = []
LIBS = []
CPPPATH = [cwd]
if rtconfig.PLATFORM in ['gcc']:
LIBS += ['c', 'm'] # link libc and libm
src += Glob('*.c')
libc_name, libc_version = GetGCCLibcNameVersion(rtconfig)
#report newlib version
print('Newlib version:' + GetNewLibVersion(rtconfig))
if libc_name == 'newlib':
print('Newlib version: ' + libc_version)
# identify this is Newlib, and only enable POSIX.1-1990
CPPDEFINES = ['RT_USING_NEWLIBC', 'RT_USING_LIBC', '_POSIX_C_SOURCE=1']
cwd = GetCurrentDir()
src = Glob('*.c')
CPPPATH = [cwd]
CPPDEFINES = ['RT_USING_NEWLIBC', 'RT_USING_LIBC', '_POSIX_C_SOURCE=1'] # identify this is Newlib, and only enable POSIX.1-1990
LIBS = ['c', 'm'] # link libc and libm
AddDepend(['RT_USING_NEWLIBC', 'RT_USING_LIBC'])
group = DefineGroup('Compiler', src, depend = [''], CPPPATH = CPPPATH, CPPDEFINES = CPPDEFINES, LIBS = LIBS)
list = os.listdir(cwd)
for d in list:
path = os.path.join(cwd, d)
if os.path.isfile(os.path.join(path, 'SConscript')):
group = group + SConscript(os.path.join(d, 'SConscript'))
group = group + DefineGroup('Compiler', src, depend = [''], CPPPATH = CPPPATH, CPPDEFINES = CPPDEFINES, LIBS = LIBS)
list = os.listdir(cwd)
for d in list:
path = os.path.join(cwd, d)
if os.path.isfile(os.path.join(path, 'SConscript')):
group = group + SConscript(os.path.join(d, 'SConscript'))
Return('group')