apache / nuttx

Apache NuttX is a mature, real-time embedded operating system (RTOS)
https://nuttx.apache.org/
Apache License 2.0
2.52k stars 1.07k forks source link

riscv/cmake: protected mode issue #12019

Open yf13 opened 4 months ago

yf13 commented 4 months ago

Here are issues encountered with PROTECTED mode risc-v device after commit 741de4b45055a7faec0d applied:

$ rm -rf * && cmake ~/Projects/Nuttx/nuttx -DBOARD_CONFIG=canmv230/pnsh -G Ninja 
-- Initializing NuttX
--   Board:  canmv230
--   Config: pnsh
--   Appdir: /home/yf/Projects/Nuttx/nuttx/../apps
-- The C compiler identification is GNU 10.2.0
-- The CXX compiler identification is GNU 10.2.0
-- The ASM compiler identification is GNU
-- Found assembler: /usr/bin/riscv64-unknown-elf-gcc
riscv64-unknown-elf-gcc: error:  -Wstrict-prototypes -fno-common -Wall -Wshadow -Wundef -Wno-attributes -Wno-unknown-pragmas: No such file or directory
-- Configuring done
CMake Error at cmake/nuttx_add_library.cmake:97 (add_library):
  Cannot find source file:

    /home/yf/Projects/Nuttx/nuttx/libs/libc/spawn/lib_task_spawn.c
Call Stack (most recent call first):
  cmake/nuttx_add_library.cmake:129 (nuttx_add_system_library)
  libs/libc/CMakeLists.txt:20 (nuttx_add_kernel_library)

CMake Error at CMakeLists.txt:422 (add_executable):
  No SOURCES given to target: nuttx_user

CMake Error at cmake/nuttx_add_library.cmake:135 (add_library):
  No SOURCES given to target: kc
Call Stack (most recent call first):
  libs/libc/CMakeLists.txt:20 (nuttx_add_kernel_library)

CMake Generate step failed.  Build files cannot be regenerated correctly.
xiaoxiang781216 commented 4 months ago

@xuxin930 could you take a look?

xuxin930 commented 4 months ago

hi @yf13 try this patch https://github.com/apache/nuttx/pull/12022

to use protected mode, you need to add the userspace source file of the kernel directory.

acassis commented 3 months ago

@yf13 if it worked, please submit a documentation similar to this one: https://nuttx.apache.org/docs/latest/platforms/arm/stm32f4/index.html#protected-mode-build