zephyrproject-rtos / zephyr

Primary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.
https://docs.zephyrproject.org
Apache License 2.0
10.73k stars 6.56k forks source link

esp32c3_devkitm fails to build samples/userspace/syscall_perf when CONFIG_RISCV_PMP=y #65145

Closed bkc closed 6 months ago

bkc commented 11 months ago

Describe the bug

When building samples/userspace/syscall_perf on esp32c3 soc (esp32c3_devkitm, stamp_c3, etc), with CONFIG_RISCV_PMP=y the build fails due to undefined references during the linker phase

Please also mention any information which could help others to understand the problem you're facing:

failing prj.conf

I added the first line in the file to enable PMP support.

CONFIG_RISCV_PMP=y
CONFIG_USERSPACE=y
CONFIG_APPLICATION_DEFINED_SYSCALL=y
CONFIG_ASSERT=y
CONFIG_LOG=y
CONFIG_LOG_MODE_MINIMAL=y
CONFIG_MAIN_STACK_SIZE=2048
CONFIG_COMMON_LIBC_MALLOC_ARENA_SIZE=0

To Reproduce Steps to reproduce the behavior:

  1. cd /home/bkc/src/zephyrproject/zephyr
  2. git pull
  3. west update
  4. west blobs fetch hal_espressif
  5. cd /home/bkc/src/zephyrproject/zephyr/samples/userspace/syscall_perf
  6. add CONFIG_RISCV_PMP=y to prj.conf as shown above
  7. west build -p auto -b esp32c3_devkitm
  8. See error

Expected behavior The program should compile and link

Impact What impact does this issue have on your progress (showstopper)

Logs and console output

❯ west build -p auto  -b esp32c3_devkitm
-- west build: generating a build system
Loading Zephyr default modules (Zephyr base (cached)).
-- Application: /home/bkc/src/zephyrproject/zephyr/samples/userspace/syscall_perf
-- CMake version: 3.22.1
-- Cache files will be written to: /home/bkc/.cache/zephyr
-- Zephyr version: 3.5.99 (/home/bkc/src/zephyrproject/zephyr)
-- Found west (found suitable version "1.2.0", minimum required is "0.14.0")
-- Board: esp32c3_devkitm
-- ZEPHYR_TOOLCHAIN_VARIANT not set, trying to locate Zephyr SDK
-- Found host-tools: zephyr 0.16.3 (/home/bkc/zephyr-sdk-0.16.3)
-- Found toolchain: zephyr 0.16.3 (/home/bkc/zephyr-sdk-0.16.3)
-- Found Dtc: /home/bkc/zephyr-sdk-0.16.3/sysroots/x86_64-pokysdk-linux/usr/bin/dtc (found suitable version "1.6.0", minimum required is "1.4.6") 
-- Found BOARD.dts: /home/bkc/src/zephyrproject/zephyr/boards/riscv/esp32c3_devkitm/esp32c3_devkitm.dts
-- Generated zephyr.dts: /home/bkc/src/zephyrproject/zephyr/samples/userspace/syscall_perf/build/zephyr/zephyr.dts
-- Generated devicetree_generated.h: /home/bkc/src/zephyrproject/zephyr/samples/userspace/syscall_perf/build/zephyr/include/generated/devicetree_generated.h
-- Including generated dts.cmake file: /home/bkc/src/zephyrproject/zephyr/samples/userspace/syscall_perf/build/zephyr/dts.cmake
Parsing /home/bkc/src/zephyrproject/zephyr/Kconfig
Loaded configuration '/home/bkc/src/zephyrproject/zephyr/boards/riscv/esp32c3_devkitm/esp32c3_devkitm_defconfig'
Merged configuration '/home/bkc/src/zephyrproject/zephyr/samples/userspace/syscall_perf/prj.conf'
Configuration saved to '/home/bkc/src/zephyrproject/zephyr/samples/userspace/syscall_perf/build/zephyr/.config'
Kconfig header saved to '/home/bkc/src/zephyrproject/zephyr/samples/userspace/syscall_perf/build/zephyr/include/generated/autoconf.h'
-- Found GnuLd: /home/bkc/zephyr-sdk-0.16.3/riscv64-zephyr-elf/bin/../lib/gcc/riscv64-zephyr-elf/12.2.0/../../../../riscv64-zephyr-elf/bin/ld.bfd (found version "2.38") 
-- The C compiler identification is GNU 12.2.0
-- The CXX compiler identification is GNU 12.2.0
-- The ASM compiler identification is GNU
-- Found assembler: /home/bkc/zephyr-sdk-0.16.3/riscv64-zephyr-elf/bin/riscv64-zephyr-elf-gcc
CMake Warning at /home/bkc/src/zephyrproject/zephyr/CMakeLists.txt:1940 (message):
  __ASSERT() statements are globally ENABLED

-- Configuring done
-- Generating done
-- Build files have been written to: /home/bkc/src/zephyrproject/zephyr/samples/userspace/syscall_perf/build
-- west build: building application
[1/183] Preparing syscall dependency handling

[2/183] Generating include/generated/version.h
-- Zephyr version: 3.5.99 (/home/bkc/src/zephyrproject/zephyr), build: zephyr-v3.5.0-1431-g4fe2605160fd
[152/183] Performing configure step for 'EspIdfBootloader'
-- Found Git: /usr/bin/git (found version "2.34.1") 
-- The C compiler identification is GNU 12.2.0
-- The CXX compiler identification is GNU 12.2.0
-- The ASM compiler identification is GNU
-- Found assembler: /home/bkc/zephyr-sdk-0.16.3/riscv64-zephyr-elf/bin/riscv64-zephyr-elf-gcc
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /home/bkc/zephyr-sdk-0.16.3/riscv64-zephyr-elf/bin/riscv64-zephyr-elf-gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /home/bkc/zephyr-sdk-0.16.3/riscv64-zephyr-elf/bin/riscv64-zephyr-elf-g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Building ESP-IDF components for target esp32c3
-- Project sdkconfig file /home/bkc/src/zephyrproject/zephyr/samples/userspace/syscall_perf/build/esp-idf/build/sdkconfig
-- Adding linker script /home/bkc/src/zephyrproject/modules/hal/espressif/components/soc/esp32c3/ld/esp32c3.peripherals.ld
-- Adding linker script /home/bkc/src/zephyrproject/modules/hal/espressif/components/esp_rom/esp32c3/ld/esp32c3.rom.ld
-- Adding linker script /home/bkc/src/zephyrproject/modules/hal/espressif/components/esp_rom/esp32c3/ld/esp32c3.rom.api.ld
-- Adding linker script /home/bkc/src/zephyrproject/modules/hal/espressif/components/esp_rom/esp32c3/ld/esp32c3.rom.libgcc.ld
-- Adding linker script /home/bkc/src/zephyrproject/modules/hal/espressif/components/esp_rom/esp32c3/ld/esp32c3.rom.newlib.ld
-- Adding linker script /home/bkc/src/zephyrproject/modules/hal/espressif/components/bootloader/subproject/main/ld/esp32c3/bootloader.ld
-- Adding linker script /home/bkc/src/zephyrproject/modules/hal/espressif/components/bootloader/subproject/main/ld/esp32c3/bootloader.rom.ld
-- Components: bootloader bootloader_support efuse esp32c3 esp_common esp_hw_support esp_rom esp_system esptool_py freertos hal log main micro-ecc newlib partition_table riscv soc spi_flash
-- Component paths: /home/bkc/src/zephyrproject/modules/hal/espressif/components/bootloader /home/bkc/src/zephyrproject/modules/hal/espressif/components/bootloader_support /home/bkc/src/zephyrproject/modules/hal/espressif/components/efuse /home/bkc/src/zephyrproject/modules/hal/espressif/components/esp32c3 /home/bkc/src/zephyrproject/modules/hal/espressif/components/esp_common /home/bkc/src/zephyrproject/modules/hal/espressif/components/esp_hw_support /home/bkc/src/zephyrproject/modules/hal/espressif/components/esp_rom /home/bkc/src/zephyrproject/modules/hal/espressif/components/esp_system /home/bkc/src/zephyrproject/modules/hal/espressif/components/esptool_py /home/bkc/src/zephyrproject/modules/hal/espressif/components/freertos /home/bkc/src/zephyrproject/modules/hal/espressif/components/hal /home/bkc/src/zephyrproject/modules/hal/espressif/components/log /home/bkc/src/zephyrproject/modules/hal/espressif/components/bootloader/subproject/main /home/bkc/src/zephyrproject/modules/hal/espressif/components/bootloader/subproject/components/micro-ecc /home/bkc/src/zephyrproject/modules/hal/espressif/components/newlib /home/bkc/src/zephyrproject/modules/hal/espressif/components/partition_table /home/bkc/src/zephyrproject/modules/hal/espressif/components/riscv /home/bkc/src/zephyrproject/modules/hal/espressif/components/soc /home/bkc/src/zephyrproject/modules/hal/espressif/components/spi_flash
-- Configuring done
-- Generating done
-- Build files have been written to: /home/bkc/src/zephyrproject/zephyr/samples/userspace/syscall_perf/build/esp-idf/build/bootloader
[154/183] Performing build step for 'EspIdfBootloader'
[1/88] Generating project_elf_src_esp32c3.c
[2/88] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/soc_include_legacy_warn.c.obj
[3/88] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32c3/gdma_periph.c.obj
[4/88] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32c3/rmt_periph.c.obj
[5/88] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32c3/dedic_gpio_periph.c.obj
[6/88] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32c3/interrupts.c.obj
[7/88] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32c3/ledc_periph.c.obj
[8/88] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32c3/sigmadelta_periph.c.obj
[9/88] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32c3/timer_periph.c.obj
[10/88] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/lldesc.c.obj
[11/88] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32c3/spi_periph.c.obj
[12/88] Building C object CMakeFiles/bootloader.elf.dir/project_elf_src_esp32c3.c.obj
[13/88] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32c3/adc_periph.c.obj
[14/88] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32c3/uart_periph.c.obj
[15/88] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32c3/gpio_periph.c.obj
[16/88] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32c3/i2s_periph.c.obj
[17/88] Building C object esp-idf/hal/CMakeFiles/__idf_hal.dir/mpu_hal.c.obj
[18/88] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32c3/i2c_periph.c.obj
[19/88] Building C object esp-idf/spi_flash/CMakeFiles/__idf_spi_flash.dir/esp32c3/spi_flash_rom_patch.c.obj
[20/88] Building C object esp-idf/hal/CMakeFiles/__idf_hal.dir/cpu_hal.c.obj
[21/88] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_console_loader.c.obj
[22/88] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_mem.c.obj
[23/88] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_clock_init.c.obj
[24/88] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/esp32c3/bootloader_sha.c.obj
[25/88] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_random_esp32c3.c.obj
[26/88] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_random.c.obj
[27/88] Building C object esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/port/esp32c3/rtc_time.c.obj
[28/88] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_flash_config_esp32c3.c.obj
[29/88] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_efuse_esp32c3.c.obj
[30/88] Building C object esp-idf/hal/CMakeFiles/__idf_hal.dir/wdt_hal_iram.c.obj
[31/88] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/flash_partitions.c.obj
[32/88] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/flash_encrypt.c.obj
[33/88] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/secure_boot.c.obj
[34/88] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/flash_qio_mode.c.obj
[35/88] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_clock_loader.c.obj
[36/88] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_console.c.obj
[37/88] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_panic.c.obj
[38/88] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_common_loader.c.obj
[39/88] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/esp32c3/bootloader_soc.c.obj
[40/88] Building C object esp-idf/efuse/CMakeFiles/__idf_efuse.dir/esp32c3/esp_efuse_table.c.obj
[41/88] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_common.c.obj
[42/88] Building C object esp-idf/efuse/CMakeFiles/__idf_efuse.dir/esp32c3/esp_efuse_fields.c.obj
[43/88] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_init.c.obj
[44/88] Building C object esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/compare_set.c.obj
[45/88] Building C object esp-idf/efuse/CMakeFiles/__idf_efuse.dir/esp32c3/esp_efuse_rtc_calib.c.obj
[46/88] Building C object esp-idf/esp_system/CMakeFiles/__idf_esp_system.dir/esp_err.c.obj
[47/88] Building C object esp-idf/efuse/CMakeFiles/__idf_efuse.dir/src/esp_efuse_fields.c.obj
[48/88] Building C object esp-idf/efuse/CMakeFiles/__idf_efuse.dir/esp32c3/esp_efuse_utility.c.obj
[49/88] Building C object esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/cpu_util.c.obj
[50/88] Building C object esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/port/esp32c3/cpu_util_esp32c3.c.obj
[51/88] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_flash.c.obj
[52/88] Building C object esp-idf/esp_rom/CMakeFiles/__idf_esp_rom.dir/patches/esp_rom_crc.c.obj
[53/88] Building C object esp-idf/esp_rom/CMakeFiles/__idf_esp_rom.dir/patches/esp_rom_sys.c.obj
[54/88] Building C object esp-idf/esp_rom/CMakeFiles/__idf_esp_rom.dir/patches/esp_rom_tjpgd.c.obj
[55/88] Building C object esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/port/esp32c3/rtc_clk_init.c.obj
[56/88] Building C object esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/port/esp32c3/rtc_pm.c.obj
[57/88] Building C object esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/port/esp32c3/chip_info.c.obj
[58/88] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/esp32c3/bootloader_esp32c3.c.obj
[59/88] Building C object esp-idf/esp_rom/CMakeFiles/__idf_esp_rom.dir/patches/esp_rom_uart.c.obj
[60/88] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_utility.c.obj
[61/88] Building C object esp-idf/esp_common/CMakeFiles/__idf_esp_common.dir/src/esp_err_to_name.c.obj
[62/88] Building C object esp-idf/efuse/CMakeFiles/__idf_efuse.dir/src/esp_efuse_api.c.obj
[63/88] Building C object esp-idf/log/CMakeFiles/__idf_log.dir/log_noos.c.obj
[64/88] Building C object esp-idf/efuse/CMakeFiles/__idf_efuse.dir/src/esp_efuse_api_key_esp32xx.c.obj
[65/88] Building C object esp-idf/main/CMakeFiles/__idf_main.dir/bootloader_start.c.obj
[66/88] Building C object esp-idf/log/CMakeFiles/__idf_log.dir/log.c.obj
[67/88] Building C object esp-idf/efuse/CMakeFiles/__idf_efuse.dir/src/esp_efuse_utility.c.obj
[68/88] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/esp_image_format.c.obj
[69/88] Building C object esp-idf/log/CMakeFiles/__idf_log.dir/log_buffers.c.obj
[70/88] Building C object esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/port/esp32c3/rtc_sleep.c.obj
[71/88] Building C object esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/port/esp32c3/rtc_init.c.obj
[72/88] Linking C static library esp-idf/log/liblog.a
[73/88] Building C object esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/port/esp32c3/rtc_clk.c.obj
[74/88] Linking C static library esp-idf/esp_rom/libesp_rom.a
[75/88] Linking C static library esp-idf/esp_common/libesp_common.a
[76/88] Linking C static library esp-idf/esp_hw_support/libesp_hw_support.a
[77/88] Linking C static library esp-idf/esp_system/libesp_system.a
[78/88] Linking C static library esp-idf/efuse/libefuse.a
[79/88] Building C object esp-idf/micro-ecc/CMakeFiles/__idf_micro-ecc.dir/uECC_verify_antifault.c.obj
[80/88] Linking C static library esp-idf/bootloader_support/libbootloader_support.a
[81/88] Linking C static library esp-idf/spi_flash/libspi_flash.a
[82/88] Linking C static library esp-idf/micro-ecc/libmicro-ecc.a
[83/88] Linking C static library esp-idf/soc/libsoc.a
[84/88] Linking C static library esp-idf/hal/libhal.a
[85/88] Linking C static library esp-idf/main/libmain.a
[86/88] Linking C executable bootloader.elf
[87/88] Generating binary image from built executable
esptool.py v4.5
Creating esp32c3 image...
Merged 1 ELF section
Successfully created esp32c3 image.
Generated /home/bkc/src/zephyrproject/zephyr/samples/userspace/syscall_perf/build/esp-idf/build/bootloader/bootloader.bin
[88/88] cd /home/bkc/src/zephyrproject/zephyr/samples/userspace/syscall_perf/build/esp-idf/build/bootloader/esp-idf/esptool_py && /usr/bin/python3 /home/bkc/src/zephyrproject/modules/hal/espressif/components/partition_table/check_sizes.py --offset 0x8000 bootloader 0x0 /home/bkc/src/zephyrproject/zephyr/samples/userspace/syscall_perf/build/esp-idf/build/bootloader/bootloader.bin
Bootloader binary size 0x4ba0 bytes. 0x3460 bytes (41%) free.
[164/183] Linking C executable zephyr/zephyr_pre0.elf
FAILED: zephyr/zephyr_pre0.elf zephyr/zephyr_pre0.map /home/bkc/src/zephyrproject/zephyr/samples/userspace/syscall_perf/build/zephyr/zephyr_pre0.map 
: && ccache /home/bkc/zephyr-sdk-0.16.3/riscv64-zephyr-elf/bin/riscv64-zephyr-elf-gcc  -gdwarf-4 zephyr/CMakeFiles/zephyr_pre0.dir/misc/empty_file.c.obj -o zephyr/zephyr_pre0.elf  zephyr/CMakeFiles/offsets.dir/./arch/riscv/core/offsets/offsets.c.obj  -fuse-ld=bfd  -T  zephyr/linker_zephyr_pre0.cmd  -Wl,-Map=/home/bkc/src/zephyrproject/zephyr/samples/userspace/syscall_perf/build/zephyr/zephyr_pre0.map  -Wl,--whole-archive  app/libapp.a  zephyr/libzephyr.a  zephyr/arch/common/libarch__common.a  zephyr/arch/arch/riscv/core/libarch__riscv__core.a  zephyr/lib/libc/picolibc/liblib__libc__picolibc.a  zephyr/lib/libc/common/liblib__libc__common.a  zephyr/drivers/interrupt_controller/libdrivers__interrupt_controller.a  zephyr/drivers/clock_control/libdrivers__clock_control.a  zephyr/drivers/console/libdrivers__console.a  zephyr/drivers/gpio/libdrivers__gpio.a  zephyr/drivers/pinctrl/libdrivers__pinctrl.a  zephyr/drivers/serial/libdrivers__serial.a  zephyr/drivers/timer/libdrivers__timer.a  -Wl,--no-whole-archive  zephyr/kernel/libkernel.a  -L"/home/bkc/zephyr-sdk-0.16.3/riscv64-zephyr-elf/bin/../lib/gcc/riscv64-zephyr-elf/12.2.0"  -L/home/bkc/src/zephyrproject/zephyr/samples/userspace/syscall_perf/build/zephyr  -lgcc  zephyr/arch/common/libisr_tables.a  -lgcc  -mabi=ilp32  -march=rv32imc_zicsr  -Wl,--gc-sections  -Wl,--build-id=none  -Wl,--sort-common=descending  -Wl,--sort-section=alignment  -Wl,--no-relax  -Wl,-u,_OffsetAbsSyms  -Wl,-u,_ConfigAbsSyms  -nostdlib  -static  -Wl,-X  -Wl,-N  -Wl,--orphan-handling=warn  -Wl,-no-pie  -DPICOLIBC_INTEGER_PRINTF_SCANF  -T/home/bkc/src/zephyrproject/modules/hal/espressif/zephyr/esp32c3/src/linker/esp32c3.rom.alias.ld  -T/home/bkc/src/zephyrproject/modules/hal/espressif/zephyr/esp32c3/../../components/esp_rom/esp32c3/ld/esp32c3.rom.ld  -T/home/bkc/src/zephyrproject/modules/hal/espressif/zephyr/esp32c3/../../components/esp_rom/esp32c3/ld/esp32c3.rom.eco3.ld  -T/home/bkc/src/zephyrproject/modules/hal/espressif/zephyr/esp32c3/../../components/esp_rom/esp32c3/ld/esp32c3.rom.api.ld  -T/home/bkc/src/zephyrproject/modules/hal/espressif/zephyr/esp32c3/../../components/esp_rom/esp32c3/ld/esp32c3.rom.libgcc.ld  -T/home/bkc/src/zephyrproject/modules/hal/espressif/zephyr/esp32c3/../../components/esp_rom/esp32c3/ld/esp32c3.rom.newlib.ld  -T/home/bkc/src/zephyrproject/modules/hal/espressif/zephyr/esp32c3/../../components/esp_rom/esp32c3/ld/esp32c3.rom.version.ld  -T/home/bkc/src/zephyrproject/modules/hal/espressif/zephyr/esp32c3/../../components/soc/esp32c3/ld/esp32c3.peripherals.ld  --specs=picolibc.specs  -lc  -lgcc && cd /home/bkc/src/zephyrproject/zephyr/samples/userspace/syscall_perf/build/zephyr && /usr/bin/cmake -E true
/home/bkc/zephyr-sdk-0.16.3/riscv64-zephyr-elf/bin/../lib/gcc/riscv64-zephyr-elf/12.2.0/../../../../riscv64-zephyr-elf/bin/ld.bfd: warning: orphan section `.user_stacks' from `app/libapp.a(main.c.obj)' being placed in section `.user_stacks'
/home/bkc/zephyr-sdk-0.16.3/riscv64-zephyr-elf/bin/../lib/gcc/riscv64-zephyr-elf/12.2.0/../../../../riscv64-zephyr-elf/bin/ld.bfd: warning: orphan section `data_smem_z_libc_partition_data' from `zephyr/lib/libc/picolibc/liblib__libc__picolibc.a(libc-hooks.c.obj)' being placed in section `data_smem_z_libc_partition_data'
/home/bkc/zephyr-sdk-0.16.3/riscv64-zephyr-elf/bin/../lib/gcc/riscv64-zephyr-elf/12.2.0/../../../../riscv64-zephyr-elf/bin/ld.bfd: warning: orphan section `.user_stacks' from `zephyr/kernel/libkernel.a(init.c.obj)' being placed in section `.user_stacks'
/home/bkc/zephyr-sdk-0.16.3/riscv64-zephyr-elf/bin/../lib/gcc/riscv64-zephyr-elf/12.2.0/../../../../riscv64-zephyr-elf/bin/ld.bfd: zephyr/kernel/libkernel.a(device.c.obj): in function `z_vrfy_device_is_ready':
/home/bkc/src/zephyrproject/zephyr/kernel/device.c:73: undefined reference to `k_object_find'
/home/bkc/zephyr-sdk-0.16.3/riscv64-zephyr-elf/bin/../lib/gcc/riscv64-zephyr-elf/12.2.0/../../../../riscv64-zephyr-elf/bin/ld.bfd: zephyr/kernel/libkernel.a(thread.c.obj): in function `z_vrfy_k_thread_start':
/home/bkc/src/zephyrproject/zephyr/kernel/thread.c:456: undefined reference to `k_object_find'
/home/bkc/zephyr-sdk-0.16.3/riscv64-zephyr-elf/bin/../lib/gcc/riscv64-zephyr-elf/12.2.0/../../../../riscv64-zephyr-elf/bin/ld.bfd: zephyr/kernel/libkernel.a(thread.c.obj): in function `z_stack_is_user_capable':
/home/bkc/src/zephyrproject/zephyr/kernel/thread.c:742: undefined reference to `k_object_find'
/home/bkc/zephyr-sdk-0.16.3/riscv64-zephyr-elf/bin/../lib/gcc/riscv64-zephyr-elf/12.2.0/../../../../riscv64-zephyr-elf/bin/ld.bfd: zephyr/kernel/libkernel.a(thread.c.obj): in function `z_vrfy_k_thread_create':
/home/bkc/src/zephyrproject/zephyr/kernel/thread.c:755: undefined reference to `k_object_find'
/home/bkc/zephyr-sdk-0.16.3/riscv64-zephyr-elf/bin/../lib/gcc/riscv64-zephyr-elf/12.2.0/../../../../riscv64-zephyr-elf/bin/ld.bfd: /home/bkc/src/zephyrproject/zephyr/kernel/thread.c:760: undefined reference to `k_object_find'
/home/bkc/zephyr-sdk-0.16.3/riscv64-zephyr-elf/bin/../lib/gcc/riscv64-zephyr-elf/12.2.0/../../../../riscv64-zephyr-elf/bin/ld.bfd: zephyr/kernel/libkernel.a(thread.c.obj):/home/bkc/src/zephyrproject/zephyr/kernel/thread.c:993: more undefined references to `k_object_find' follow
/home/bkc/zephyr-sdk-0.16.3/riscv64-zephyr-elf/bin/../lib/gcc/riscv64-zephyr-elf/12.2.0/../../../../riscv64-zephyr-elf/bin/ld.bfd: zephyr/kernel/libkernel.a(userspace.c.obj): in function `k_thread_perms_inherit':
/home/bkc/src/zephyrproject/zephyr/kernel/userspace.c:601: undefined reference to `k_object_wordlist_foreach'
/home/bkc/zephyr-sdk-0.16.3/riscv64-zephyr-elf/bin/../lib/gcc/riscv64-zephyr-elf/12.2.0/../../../../riscv64-zephyr-elf/bin/ld.bfd: zephyr/kernel/libkernel.a(userspace.c.obj): in function `k_thread_perms_all_clear':
/home/bkc/src/zephyrproject/zephyr/kernel/userspace.c:636: undefined reference to `k_object_wordlist_foreach'
/home/bkc/zephyr-sdk-0.16.3/riscv64-zephyr-elf/bin/../lib/gcc/riscv64-zephyr-elf/12.2.0/../../../../riscv64-zephyr-elf/bin/ld.bfd: zephyr/kernel/libkernel.a(userspace.c.obj): in function `z_impl_k_object_access_grant':
/home/bkc/src/zephyrproject/zephyr/kernel/userspace.c:694: undefined reference to `k_object_find'
/home/bkc/zephyr-sdk-0.16.3/riscv64-zephyr-elf/bin/../lib/gcc/riscv64-zephyr-elf/12.2.0/../../../../riscv64-zephyr-elf/bin/ld.bfd: zephyr/kernel/libkernel.a(userspace.c.obj): in function `k_object_access_all_grant':
/home/bkc/src/zephyrproject/zephyr/kernel/userspace.c:717: undefined reference to `k_object_find'
/home/bkc/zephyr-sdk-0.16.3/riscv64-zephyr-elf/bin/../lib/gcc/riscv64-zephyr-elf/12.2.0/../../../../riscv64-zephyr-elf/bin/ld.bfd: zephyr/kernel/libkernel.a(userspace.c.obj): in function `k_object_init':
/home/bkc/src/zephyrproject/zephyr/kernel/userspace.c:769: undefined reference to `k_object_find'
/home/bkc/zephyr-sdk-0.16.3/riscv64-zephyr-elf/bin/../lib/gcc/riscv64-zephyr-elf/12.2.0/../../../../riscv64-zephyr-elf/bin/ld.bfd: zephyr/kernel/libkernel.a(userspace.c.obj): in function `k_object_uninit':
/home/bkc/src/zephyrproject/zephyr/kernel/userspace.c:798: undefined reference to `k_object_find'
/home/bkc/zephyr-sdk-0.16.3/riscv64-zephyr-elf/bin/../lib/gcc/riscv64-zephyr-elf/12.2.0/../../../../riscv64-zephyr-elf/bin/ld.bfd: zephyr/kernel/libkernel.a(userspace.c.obj):/home/bkc/src/zephyrproject/zephyr/kernel/userspace.c:27: undefined reference to `z_data_smem_z_libc_partition_bss_start'
/home/bkc/zephyr-sdk-0.16.3/riscv64-zephyr-elf/bin/../lib/gcc/riscv64-zephyr-elf/12.2.0/../../../../riscv64-zephyr-elf/bin/ld.bfd: zephyr/kernel/libkernel.a(userspace.c.obj):(.app_regions.z_libc_partition+0x4): undefined reference to `z_data_smem_z_libc_partition_bss_size'
/home/bkc/zephyr-sdk-0.16.3/riscv64-zephyr-elf/bin/../lib/gcc/riscv64-zephyr-elf/12.2.0/../../../../riscv64-zephyr-elf/bin/ld.bfd: zephyr/kernel/libkernel.a(userspace.c.obj):/home/bkc/src/zephyrproject/zephyr/kernel/userspace.c:27: undefined reference to `z_data_smem_z_libc_partition_part_start'
/home/bkc/zephyr-sdk-0.16.3/riscv64-zephyr-elf/bin/../lib/gcc/riscv64-zephyr-elf/12.2.0/../../../../riscv64-zephyr-elf/bin/ld.bfd: zephyr/kernel/libkernel.a(userspace.c.obj):(.data.z_libc_partition+0x4): undefined reference to `z_data_smem_z_libc_partition_part_size'
/home/bkc/zephyr-sdk-0.16.3/riscv64-zephyr-elf/bin/../lib/gcc/riscv64-zephyr-elf/12.2.0/../../../../riscv64-zephyr-elf/bin/ld.bfd: zephyr/kernel/libkernel.a(userspace_handler.c.obj): in function `validate_kernel_object':
/home/bkc/src/zephyrproject/zephyr/kernel/userspace_handler.c:19: undefined reference to `k_object_find'
/home/bkc/zephyr-sdk-0.16.3/riscv64-zephyr-elf/bin/../lib/gcc/riscv64-zephyr-elf/12.2.0/../../../../riscv64-zephyr-elf/bin/ld.bfd: zephyr/kernel/libkernel.a(userspace_handler.c.obj): in function `z_vrfy_k_object_access_grant':
/home/bkc/src/zephyrproject/zephyr/kernel/userspace_handler.c:61: undefined reference to `k_object_find'
/home/bkc/zephyr-sdk-0.16.3/riscv64-zephyr-elf/bin/../lib/gcc/riscv64-zephyr-elf/12.2.0/../../../../riscv64-zephyr-elf/bin/ld.bfd: zephyr/libzephyr.a(mutex.c.obj): in function `get_k_mutex':
/home/bkc/src/zephyrproject/zephyr/lib/os/mutex.c:16: undefined reference to `k_object_find'
/home/bkc/zephyr-sdk-0.16.3/riscv64-zephyr-elf/bin/../lib/gcc/riscv64-zephyr-elf/12.2.0/../../../../riscv64-zephyr-elf/bin/ld.bfd: /home/bkc/src/zephyrproject/zephyr/lib/os/mutex.c:16: undefined reference to `k_object_find'
/home/bkc/zephyr-sdk-0.16.3/riscv64-zephyr-elf/bin/../lib/gcc/riscv64-zephyr-elf/12.2.0/../../../../riscv64-zephyr-elf/bin/ld.bfd: zephyr/arch/arch/riscv/core/libarch__riscv__core.a(pmp.c.obj): in function `z_riscv_pmp_init':
/home/bkc/src/zephyrproject/zephyr/arch/riscv/core/pmp.c:328: undefined reference to `__rom_region_size'
/home/bkc/zephyr-sdk-0.16.3/riscv64-zephyr-elf/bin/../lib/gcc/riscv64-zephyr-elf/12.2.0/../../../../riscv64-zephyr-elf/bin/ld.bfd: /home/bkc/src/zephyrproject/zephyr/arch/riscv/core/pmp.c:328: undefined reference to `__rom_region_start'
/home/bkc/zephyr-sdk-0.16.3/riscv64-zephyr-elf/bin/../lib/gcc/riscv64-zephyr-elf/12.2.0/../../../../riscv64-zephyr-elf/bin/ld.bfd: /home/bkc/src/zephyrproject/zephyr/arch/riscv/core/pmp.c:328: undefined reference to `__rom_region_size'
/home/bkc/zephyr-sdk-0.16.3/riscv64-zephyr-elf/bin/../lib/gcc/riscv64-zephyr-elf/12.2.0/../../../../riscv64-zephyr-elf/bin/ld.bfd: /home/bkc/src/zephyrproject/zephyr/arch/riscv/core/pmp.c:328: undefined reference to `__rom_region_start'
/home/bkc/zephyr-sdk-0.16.3/riscv64-zephyr-elf/bin/../lib/gcc/riscv64-zephyr-elf/12.2.0/../../../../riscv64-zephyr-elf/bin/ld.bfd: zephyr/arch/arch/riscv/core/libarch__riscv__core.a(pmp.c.obj): in function `arch_buffer_validate':
/home/bkc/src/zephyrproject/zephyr/arch/riscv/core/pmp.c:683: undefined reference to `__rom_region_start'
/home/bkc/zephyr-sdk-0.16.3/riscv64-zephyr-elf/bin/../lib/gcc/riscv64-zephyr-elf/12.2.0/../../../../riscv64-zephyr-elf/bin/ld.bfd: /home/bkc/src/zephyrproject/zephyr/arch/riscv/core/pmp.c:683: undefined reference to `__rom_region_start'
/home/bkc/zephyr-sdk-0.16.3/riscv64-zephyr-elf/bin/../lib/gcc/riscv64-zephyr-elf/12.2.0/../../../../riscv64-zephyr-elf/bin/ld.bfd: /home/bkc/src/zephyrproject/zephyr/arch/riscv/core/pmp.c:684: undefined reference to `__rom_region_size'
/home/bkc/zephyr-sdk-0.16.3/riscv64-zephyr-elf/bin/../lib/gcc/riscv64-zephyr-elf/12.2.0/../../../../riscv64-zephyr-elf/bin/ld.bfd: /home/bkc/src/zephyrproject/zephyr/arch/riscv/core/pmp.c:684: undefined reference to `__rom_region_size'
/home/bkc/zephyr-sdk-0.16.3/riscv64-zephyr-elf/bin/../lib/gcc/riscv64-zephyr-elf/12.2.0/../../../../riscv64-zephyr-elf/bin/ld.bfd: zephyr/drivers/gpio/libdrivers__gpio.a(gpio_handlers.c.obj): in function `z_vrfy_gpio_pin_configure':
/home/bkc/src/zephyrproject/zephyr/drivers/gpio/gpio_handlers.c:14: undefined reference to `k_object_find'
/home/bkc/zephyr-sdk-0.16.3/riscv64-zephyr-elf/bin/../lib/gcc/riscv64-zephyr-elf/12.2.0/../../../../riscv64-zephyr-elf/bin/ld.bfd: zephyr/drivers/gpio/libdrivers__gpio.a(gpio_handlers.c.obj): in function `z_vrfy_gpio_port_get_raw':
/home/bkc/src/zephyrproject/zephyr/drivers/gpio/gpio_handlers.c:37: undefined reference to `k_object_find'
/home/bkc/zephyr-sdk-0.16.3/riscv64-zephyr-elf/bin/../lib/gcc/riscv64-zephyr-elf/12.2.0/../../../../riscv64-zephyr-elf/bin/ld.bfd: zephyr/drivers/gpio/libdrivers__gpio.a(gpio_handlers.c.obj): in function `z_vrfy_gpio_port_set_masked_raw':
/home/bkc/src/zephyrproject/zephyr/drivers/gpio/gpio_handlers.c:48: undefined reference to `k_object_find'
/home/bkc/zephyr-sdk-0.16.3/riscv64-zephyr-elf/bin/../lib/gcc/riscv64-zephyr-elf/12.2.0/../../../../riscv64-zephyr-elf/bin/ld.bfd: zephyr/drivers/gpio/libdrivers__gpio.a(gpio_handlers.c.obj): in function `z_vrfy_gpio_port_set_bits_raw':
/home/bkc/src/zephyrproject/zephyr/drivers/gpio/gpio_handlers.c:58: undefined reference to `k_object_find'
/home/bkc/zephyr-sdk-0.16.3/riscv64-zephyr-elf/bin/../lib/gcc/riscv64-zephyr-elf/12.2.0/../../../../riscv64-zephyr-elf/bin/ld.bfd: zephyr/drivers/gpio/libdrivers__gpio.a(gpio_handlers.c.obj): in function `z_vrfy_gpio_port_clear_bits_raw':
/home/bkc/src/zephyrproject/zephyr/drivers/gpio/gpio_handlers.c:67: undefined reference to `k_object_find'
/home/bkc/zephyr-sdk-0.16.3/riscv64-zephyr-elf/bin/../lib/gcc/riscv64-zephyr-elf/12.2.0/../../../../riscv64-zephyr-elf/bin/ld.bfd: zephyr/drivers/gpio/libdrivers__gpio.a(gpio_handlers.c.obj):/home/bkc/src/zephyrproject/zephyr/drivers/gpio/gpio_handlers.c:76: more undefined references to `k_object_find' follow
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
FATAL ERROR: command exited with status 1: /usr/bin/cmake --build /home/bkc/src/zephyrproject/zephyr/samples/userspace/syscall_perf/build

Environment (please complete the following information):

Additional context

I'm a Zephyr/CMake noob.

I assume that esp32c3 soc builds on riscv/common/linker.ld but I really don't know.

If I had some hints about what's missing in the soc/xtensa/espressif_esp32c (or wherever), I would be willing to work on the issue. I just need a few hints to get started.

Thanks

github-actions[bot] commented 11 months ago

Hi @bkc! We appreciate you submitting your first issue for our open-source project. 🌟

Even though I'm a bot, I can assure you that the whole community is genuinely grateful for your time and effort. 🤖💙

sylvioalves commented 10 months ago

@bkc, Hi, this requires RISCV_PMP implemented on esp32c3 soc. Probably a few linker changes would enabled it. You could check, as you said, default riscv's linker and add necessary changes on esp32c3. I can take a look in a few weeks though.

github-actions[bot] commented 8 months ago

This issue has been marked as stale because it has been open (more than) 60 days with no activity. Remove the stale label or add a comment saying that you would like to have the label removed otherwise this issue will automatically be closed in 14 days. Note, that you can always re-open a closed issue at any time.

bkc commented 8 months ago

Please remove the stale label

I'm still interested in trying to fix this.

github-actions[bot] commented 6 months ago

This issue has been marked as stale because it has been open (more than) 60 days with no activity. Remove the stale label or add a comment saying that you would like to have the label removed otherwise this issue will automatically be closed in 14 days. Note, that you can always re-open a closed issue at any time.