Skip to content

Commit f067dbb

Browse files
committed
[mlibc] support mlibc for rt-smart
1 parent 2c4fb34 commit f067dbb

File tree

6 files changed

+35
-0
lines changed

6 files changed

+35
-0
lines changed

.github/workflows/action_utest.yml

+1
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ jobs:
4949
- {UTEST: "rtsmart/arm", RTT_BSP: "bsp/qemu-vexpress-a9", QEMU_ARCH: "arm", QEMU_MACHINE: "vexpress-a9", CONFIG_FILE: "rtsmart/base.conf", SD_FILE: "sd.bin", RUN: "no"}
5050
- {UTEST: "rtsmart/aarch64", RTT_BSP: "bsp/qemu-virt64-aarch64", QEMU_ARCH: "aarch64", QEMU_MACHINE: "virt", CONFIG_FILE: "rtsmart/base.conf", SD_FILE: "sd.bin", RUN: "no"}
5151
- {UTEST: "rtsmart/riscv64", RTT_BSP: "bsp/qemu-virt64-riscv", QEMU_ARCH: "riscv64", QEMU_MACHINE: "virt", CONFIG_FILE: "rtsmart/base.conf", SD_FILE: "None", RUN: "yes"}
52+
- {UTEST: "rtsmart/mlibc/riscv64", RTT_BSP: "bsp/qemu-virt64-riscv", QEMU_ARCH: "riscv64", QEMU_MACHINE: "virt", CONFIG_FILE: "rtsmart/mlibc.conf", SD_FILE: "None", RUN: "yes"}
5253
env:
5354
TEST_QEMU_ARCH: ${{ matrix.legs.QEMU_ARCH }}
5455
TEST_QEMU_MACHINE: ${{ matrix.legs.QEMU_MACHINE }}

components/lwp/lwp.c

+2
Original file line numberDiff line numberDiff line change
@@ -576,6 +576,8 @@ pid_t lwp_execve(char *filename, int debug, int argc, char **argv, char **envp)
576576

577577
#ifdef RT_USING_MUSLLIBC
578578
extern char **__environ;
579+
#elif defined(RT_USING_MLIBC)
580+
extern char **__environ;
579581
#else
580582
char **__environ = 0;
581583
#endif

components/lwp/lwp.h

+6
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,12 @@ struct lwp_tty;
8484
#define LWP_CREATE_STAT_SIGNALED(signo, coredump) (((signo) & 0x7f) | (coredump ? LWP_COREDUMP_FLAG : 0))
8585
#define LWP_CREATE_STAT_STOPPED(signo) (LWP_CREATE_STAT_EXIT(signo) | 0x7f)
8686
#define LWP_CREATE_STAT_CONTINUED (0xffff)
87+
#elif defined(RT_USING_MLIBC)
88+
#define LWP_COREDUMP_FLAG 0x80
89+
#define LWP_CREATE_STAT_EXIT(exit_code) (((exit_code)&0xff) << 8)
90+
#define LWP_CREATE_STAT_SIGNALED(signo, coredump) (((signo) & 0x7f) | (coredump ? LWP_COREDUMP_FLAG : 0))
91+
#define LWP_CREATE_STAT_STOPPED(signo) (LWP_CREATE_STAT_EXIT(signo) | 0x7f)
92+
#define LWP_CREATE_STAT_CONTINUED (0xffff)
8793
#else
8894
#error "No compatible lwp set status provided for this libc"
8995
#endif

components/lwp/lwp_syscall.c

+1
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
#include <mm_aspace.h>
4141
#include <lwp_user_mm.h>
4242
#include <lwp_arch.h>
43+
#include <bsd_porting.h>
4344
#endif
4445

4546
#include <fcntl.h>

components/lwp/lwp_user_mm.h

+4
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@
2222
#include <mm_fault.h>
2323
#include <mm_page.h>
2424

25+
#ifdef RT_USING_MLIBC
26+
#include <sys/mman.h>
27+
#endif
28+
2529
#ifdef __cplusplus
2630
extern "C" {
2731
#endif
+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# mlibc
2+
CONFIG_RT_USING_EXTERNAL_LIBC=y
3+
CONFIG_PKG_USING_MLIBC=y
4+
CONFIG_PKG_MLIBC_PATH="/packages/system/mlibc"
5+
CONFIG_PKG_USING_MLIBC_LATEST_VERSION=y
6+
CONFIG_PKG_MLIBC_VER="latest"
7+
8+
# testcase
9+
CONFIG_RT_USING_MEMHEAP=y
10+
CONFIG_UTEST_MEMHEAP_TC=y
11+
12+
# RT-Smart
13+
CONFIG_RT_USING_SMART=y
14+
CONFIG_RT_USING_POSIX_EVENTFD=y
15+
CONFIG_RT_USING_POSIX_EPOLL=y
16+
CONFIG_RT_USING_POSIX_SIGNALFD=y
17+
CONFIG_RT_SIGNALFD_MAX_NUM=10
18+
CONFIG_RT_USING_POSIX_TIMERFD=y
19+
20+
# misc
21+
CONFIG_RT_USING_DFS_V2=y

0 commit comments

Comments
 (0)