Skip to content

mlibc 集成到 RTT 中后无法编译 #61

@unicornx

Description

@unicornx

尝试了两个平台, 都有报错,值得注意的是报错还不一样。

可能和 mlibc 仓库里 SConscript 的什么写得不对有关?

bsp/qemu-vexpress-a9

注意,为避免 DFS 编译报错问题,不将 DFS v2.0 切换为 DFS v1.0。其他都参考 README 执行选择 下载mlibc软件包, 记得要 pkgs --update 一下确保 mlbc 下载了。

执行 scons,报如下错误:

u@u:~/ws/duo/rt-thread/bsp/qemu-vexpress-a9$ scons 
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
scons: building associated VariantDir targets: build
CC build/applications/lcd_init.o
CC build/applications/main.o
CC build/applications/mnt.o
In file included from packages/mlibc-latest/include/sys/statfs.h:18,
                 from /home/u/ws/duo/rt-thread/components/dfs/dfs_v2/include/dfs.h:22,
                 from /home/u/ws/duo/rt-thread/components/dfs/dfs_v2/include/dfs_fs.h:15,
                 from applications/mnt.c:18:
packages/mlibc-latest/include/sys/statvfs.h:18:10: fatal error: alltypes.h: No such file or directory
   18 | #include <alltypes.h>
      |          ^~~~~~~~~~~~
compilation terminated.
scons: *** [build/applications/mnt.o] Error 1
scons: building terminated because of errors.

bsp/qemu-virt64-riscv

先参考 bsp/qemu-virt64-riscv/README_cn.md 确保 RTT 标准版可以编译。

然后重新 menuconfig,参考 vexpress-a9 选择下载 mlibc。然后 scons -c 后重新编译,报错如下:

u@u:~/ws/duo/rt-thread/bsp/qemu-virt64-riscv$ scons
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
scons: building associated VariantDir targets: build
CC build/applications/main.o
In file included from /home/u/ws/duo/rt-thread/components/libc/compilers/common/include/sys/signal.h:230,
                 from /home/u/ws/duo/rt-thread/include/rttypes.h:23,
                 from /home/u/ws/duo/rt-thread/include/rtsched.h:14,
                 from /home/u/ws/duo/rt-thread/include/rtdef.h:68,
                 from /home/u/ws/duo/rt-thread/include/rtthread.h:32,
                 from applications/main.c:10:
packages/mlibc-latest/include/signal.h:20: warning: "SIGBUS" redefined
   20 | #define SIGBUS    7
      | 
In file included from /home/u/ws/duo/rt-thread/include/rttypes.h:23,
                 from /home/u/ws/duo/rt-thread/include/rtsched.h:14,
                 from /home/u/ws/duo/rt-thread/include/rtdef.h:68,
                 from /home/u/ws/duo/rt-thread/include/rtthread.h:32,
                 from applications/main.c:10:
/home/u/ws/duo/rt-thread/components/libc/compilers/common/include/sys/signal.h:201: note: this is the location of the previous definition
  201 | #define SIGBUS  10  /* bus error */
      | 
In file included from /home/u/ws/duo/rt-thread/components/libc/compilers/common/include/sys/signal.h:230,
                 from /home/u/ws/duo/rt-thread/include/rttypes.h:23,
                 from /home/u/ws/duo/rt-thread/include/rtsched.h:14,
                 from /home/u/ws/duo/rt-thread/include/rtdef.h:68,
                 from /home/u/ws/duo/rt-thread/include/rtthread.h:32,
                 from applications/main.c:10:
packages/mlibc-latest/include/signal.h:34: warning: "SIGCHLD" redefined
   34 | #define SIGCHLD   17
      | 
In file included from /home/u/ws/duo/rt-thread/include/rttypes.h:23,
                 from /home/u/ws/duo/rt-thread/include/rtsched.h:14,
                 from /home/u/ws/duo/rt-thread/include/rtdef.h:68,
                 from /home/u/ws/duo/rt-thread/include/rtthread.h:32,
                 from applications/main.c:10:
/home/u/ws/duo/rt-thread/components/libc/compilers/common/include/sys/signal.h:211: note: this is the location of the previous definition
  211 | #define SIGCHLD 20  /* to parent on child stop or exit */
      | 
In file included from /home/u/ws/duo/rt-thread/components/libc/compilers/common/include/sys/signal.h:230,
                 from /home/u/ws/duo/rt-thread/include/rttypes.h:23,
                 from /home/u/ws/duo/rt-thread/include/rtsched.h:14,
                 from /home/u/ws/duo/rt-thread/include/rtdef.h:68,
                 from /home/u/ws/duo/rt-thread/include/rtthread.h:32,
                 from applications/main.c:10:
packages/mlibc-latest/include/signal.h:61: warning: "SIGSYS" redefined
   61 | #define SIGSYS    31
      | 
In file included from /home/u/ws/duo/rt-thread/include/rttypes.h:23,
                 from /home/u/ws/duo/rt-thread/include/rtsched.h:14,
                 from /home/u/ws/duo/rt-thread/include/rtdef.h:68,
                 from /home/u/ws/duo/rt-thread/include/rtthread.h:32,
                 from applications/main.c:10:
/home/u/ws/duo/rt-thread/components/libc/compilers/common/include/sys/signal.h:203: note: this is the location of the previous definition
  203 | #define SIGSYS  12  /* bad argument to system call */
      | 
In file included from /home/u/ws/duo/rt-thread/components/libc/compilers/common/include/sys/signal.h:230,
                 from /home/u/ws/duo/rt-thread/include/rttypes.h:23,
                 from /home/u/ws/duo/rt-thread/include/rtsched.h:14,
                 from /home/u/ws/duo/rt-thread/include/rtdef.h:68,
                 from /home/u/ws/duo/rt-thread/include/rtthread.h:32,
                 from applications/main.c:10:
packages/mlibc-latest/include/signal.h:108:7: error: redefinition of 'union sigval'
  108 | union sigval
      |       ^~~~~~
In file included from /home/u/ws/duo/rt-thread/include/rttypes.h:23,
                 from /home/u/ws/duo/rt-thread/include/rtsched.h:14,
                 from /home/u/ws/duo/rt-thread/include/rtdef.h:68,
                 from /home/u/ws/duo/rt-thread/include/rtthread.h:32,
                 from applications/main.c:10:
/home/u/ws/duo/rt-thread/components/libc/compilers/common/include/sys/signal.h:50:7: note: originally defined here
   50 | union sigval
      |       ^~~~~~
In file included from /home/u/ws/duo/rt-thread/components/libc/compilers/common/include/sys/signal.h:230,
                 from /home/u/ws/duo/rt-thread/include/rttypes.h:23,
                 from /home/u/ws/duo/rt-thread/include/rtsched.h:14,
                 from /home/u/ws/duo/rt-thread/include/rtdef.h:68,
                 from /home/u/ws/duo/rt-thread/include/rtthread.h:32,
                 from applications/main.c:10:
packages/mlibc-latest/include/signal.h:114:8: error: redefinition of 'struct sigaction'
  114 | struct sigaction
      |        ^~~~~~~~~
In file included from /home/u/ws/duo/rt-thread/include/rttypes.h:23,
                 from /home/u/ws/duo/rt-thread/include/rtsched.h:14,
                 from /home/u/ws/duo/rt-thread/include/rtdef.h:68,
                 from /home/u/ws/duo/rt-thread/include/rtthread.h:32,
                 from applications/main.c:10:
/home/u/ws/duo/rt-thread/components/libc/compilers/common/include/sys/signal.h:83:8: note: originally defined here
   83 | struct sigaction
      |        ^~~~~~~~~
In file included from /home/u/ws/duo/rt-thread/components/libc/compilers/common/include/sys/signal.h:230,
                 from /home/u/ws/duo/rt-thread/include/rttypes.h:23,
                 from /home/u/ws/duo/rt-thread/include/rtsched.h:14,
                 from /home/u/ws/duo/rt-thread/include/rtdef.h:68,
                 from /home/u/ws/duo/rt-thread/include/rtthread.h:32,
                 from applications/main.c:10:
packages/mlibc-latest/include/signal.h:121:8: error: redefinition of 'struct sigevent'
  121 | struct sigevent
      |        ^~~~~~~~
In file included from /home/u/ws/duo/rt-thread/include/rttypes.h:23,
                 from /home/u/ws/duo/rt-thread/include/rtsched.h:14,
                 from /home/u/ws/duo/rt-thread/include/rtdef.h:68,
                 from /home/u/ws/duo/rt-thread/include/rtthread.h:32,
                 from applications/main.c:10:
/home/u/ws/duo/rt-thread/components/libc/compilers/common/include/sys/signal.h:56:8: note: originally defined here
   56 | struct sigevent
      |        ^~~~~~~~
In file included from /home/u/ws/duo/rt-thread/components/libc/compilers/common/include/sys/signal.h:230,
                 from /home/u/ws/duo/rt-thread/include/rttypes.h:23,
                 from /home/u/ws/duo/rt-thread/include/rtsched.h:14,
                 from /home/u/ws/duo/rt-thread/include/rtdef.h:68,
                 from /home/u/ws/duo/rt-thread/include/rtthread.h:32,
                 from applications/main.c:10:
packages/mlibc-latest/include/signal.h:175:3: error: conflicting types for 'siginfo_t'
  175 | } siginfo_t;
      |   ^~~~~~~~~
In file included from /home/u/ws/duo/rt-thread/include/rttypes.h:23,
                 from /home/u/ws/duo/rt-thread/include/rtsched.h:14,
                 from /home/u/ws/duo/rt-thread/include/rtdef.h:68,
                 from /home/u/ws/duo/rt-thread/include/rtthread.h:32,
                 from applications/main.c:10:
/home/u/ws/duo/rt-thread/components/libc/compilers/common/include/sys/signal.h:72:24: note: previous declaration of 'siginfo_t' was here
   72 | typedef struct siginfo siginfo_t;
      |                        ^~~~~~~~~
packages/mlibc-latest/include/signal.h:201:26: error: expected ')' before '*' token
  201 | int sigemptyset(sigset_t *set);
      |                          ^
/home/u/ws/duo/rt-thread/components/libc/compilers/common/include/sys/signal.h:106:32: note: in definition of macro 'sigemptyset'
  106 | #define sigemptyset(what)   (*(what) = 0, 0)
      |                                ^~~~
/home/u/ws/duo/rt-thread/components/libc/compilers/common/include/sys/signal.h:106:38: error: expected ')' before '=' token
  106 | #define sigemptyset(what)   (*(what) = 0, 0)
      |                                      ^
packages/mlibc-latest/include/signal.h:201:5: note: in expansion of macro 'sigemptyset'
  201 | int sigemptyset(sigset_t *set);
      |     ^~~~~~~~~~~
scons: *** [build/applications/main.o] Error 1
scons: building terminated because of errors.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions