Skip to content

[BUG] Zephyr Build Error - Dependency Loop #461

@iandmorris

Description

@iandmorris

Describe the bug

I get the following error when building the Zephyr matrix_multiply_uart example:

west build .\matrix_multiply_uart\ -b frdm_kw41z -p always
-- west build: making build dir C:\Users\user-1\zephyrproject\modules\lib\erpc\examples\zephyr\build pristine
-- west build: generating a build system
Loading Zephyr default modules (Zephyr base).
-- Application: C:/Users/user-1/zephyrproject/modules/lib/erpc/examples/zephyr/matrix_multiply_uart
-- CMake version: 4.0.3
-- Found Python3: C:/Users/user-1/zephyrproject/.venv/Scripts/python.exe (found suitable version "3.13.1", minimum required is "3.12.1") found components: Interpreter
-- Cache files will be written to: C:/Users/user-1/zephyrproject/zephyr/.cache
-- Zephyr version: 4.2.00-rc1 (C:/Users/user-1/zephyrproject/zephyr)
-- Found west (found suitable version "1.4.0", minimum required is "0.14.0")
-- Board: frdm_kw41z, qualifiers: mkw41z4
-- ZEPHYR_TOOLCHAIN_VARIANT not set, trying to locate Zephyr SDK
-- Found host-tools: zephyr 0.17.2 (C:/Users/user-1/zephyr-sdk-0.17.2)
-- Found toolchain: zephyr 0.17.2 (C:/Users/user-1/zephyr-sdk-0.17.2)
-- Found Dtc: C:/Users/user-1/AppData/Local/Microsoft/WinGet/Packages/oss-winget.dtc_Microsoft.Winget.Source_8wekyb3d8bbwe/usr/bin/dtc.exe (found suitable version "1.6.1", minimum required is "1.4.6")
-- Found BOARD.dts: C:/Users/user-1/zephyrproject/zephyr/boards/nxp/frdm_kw41z/frdm_kw41z.dts
-- Generated zephyr.dts: C:/Users/user-1/zephyrproject/modules/lib/erpc/examples/zephyr/build/zephyr/zephyr.dts
-- Generated pickled edt: C:/Users/user-1/zephyrproject/modules/lib/erpc/examples/zephyr/build/zephyr/edt.pickle   
-- Generated devicetree_generated.h: C:/Users/user-1/zephyrproject/modules/lib/erpc/examples/zephyr/build/zephyr/include/generated/zephyr/devicetree_generated.h
Parsing C:/Users/user-1/zephyrproject/zephyr/Kconfig
C:/Users/user-1/zephyrproject/zephyr/scripts/kconfig/kconfig.py: Dependency loop
===============

REQUIRES_FULL_LIBC (defined at lib/libc/Kconfig:6), with definition...

config REQUIRES_FULL_LIBC
        bool "Require complete C library"
        help
          Select a C library implementation that provides a complete C library
          implementation, rather than the subset provided by MINIMAL_LIBC.

(select-related dependencies: (LIBLC3 && FPU) || (SIMPLELINK_HOST_DRIVER && HAS_CC3220SDK && MULTITHREADING) || (LIBLC3 && FPU && 0) || (SOC_SERIES_APOLLO5X && SOC_FAMILY_AMBIQ) || (IEEE802154_KW41Z && DT_HAS_NXP_KW41Z_IEEE802154_ENABLED && IEEE802154) || (NPM13XX_CHARGER && (DT_HAS_NORDIC_NPM1300_CHARGER_ENABLED || DT_HAS_NORDIC_NPM1304_CHARGER_ENABLED) && SENSOR) || (REQUIRES_FULL_LIBCPP && CPP) || POSIX_DEVICE_IO || (JSON_LIBRARY_FP_SUPPORT && JSON_LIBRARY) || (LORAWAN && LORA && SYSTEM_WORKQUEUE_STACK_SIZE >= 2048) || (UPDATEHUB && FLASH && REBOOT && IMG_MANAGER && BOOTLOADER_MCUBOOT && NETWORKING && NET_UDP && NET_SOCKETS && COAP && DNS_RESOLVER && JSON_LIBRARY && HWINFO))

...depends on LIBLC3 (defined at C:/Users/user-1/zephyrproject/zephyr/modules/liblc3/Kconfig:8, modules\liblc3\Kconfig:8), with definition...

config LIBLC3
        bool "liblc3 Support"
        select REQUIRES_FULL_LIBC
        depends on FPU
        help
          Enable the Low Complexity Communication Codec (LC3)

config LIBLC3
        bool "liblc3 Support"
        select REQUIRES_FULL_LIBC
        depends on FPU && 0
        help
          Enable the Low Complexity Communication Codec (LC3)

...depends on FPU (defined at C:/Users/user-1/zephyrproject/zephyr/soc/st/stm32\stm32wbax\Kconfig.defconfig:45, C:/Users/user-1/zephyrproject/zephyr/soc/sifive/sifive_freedom\fu500\Kconfig.defconfig:25, C:/Users/user-1/zephyrproject/zephyr/soc/sifive/sifive_freedom\fu700\Kconfig.defconfig:25, C:/Users/user-1/zephyrproject/zephyr/soc/renesas/rz\rzn2l\Kconfig.defconfig:12, C:/Users/user-1/zephyrproject/zephyr/soc/renesas/rz\rzt2l\Kconfig.defconfig:12, C:/Users/user-1/zephyrproject/zephyr/soc/renesas/rz\rzt2m\Kconfig.defconfig:13, C:/Users/user-1/zephyrproject/zephyr/soc/renesas/rz\rzv2h\Kconfig.defconfig.rzv2h_cr8:9, C:/Users/user-1/zephyrproject/zephyr/soc/nxp/s32\s32k1\Kconfig.defconfig:15, C:/Users/user-1/zephyrproject/zephyr/soc/nxp/s32\s32k3\Kconfig.defconfig:15, C:/Users/user-1/zephyrproject/zephyr/soc/nxp/s32\s32ze\Kconfig.defconfig:12, C:/Users/user-1/zephyrproject/zephyr/soc/nxp/imx\imx6sx\Kconfig.defconfig.mcimx6x_m4:8, arch/Kconfig:1003), with definition...

config FPU
        bool
        default y
        depends on BT_STM32WBA && SOC_SERIES_STM32WBAX && SOC_FAMILY_STM32

config FPU
        bool
        default y if CPU_HAS_FPU
        depends on SOC_SERIES_SIFIVE_FREEDOM_FU500 && SOC_FAMILY_SIFIVE_FREEDOM

config FPU
        bool
        default y if CPU_HAS_FPU
        depends on SOC_SERIES_SIFIVE_FREEDOM_FU700 && SOC_FAMILY_SIFIVE_FREEDOM

config FPU
        bool
        default y
        depends on SOC_SERIES_RZN2L && SOC_FAMILY_RENESAS_RZ

config FPU
        bool
        default y
        depends on SOC_SERIES_RZT2L && SOC_FAMILY_RENESAS_RZ

config FPU
        bool
        default y
        depends on SOC_SERIES_RZT2M && SOC_FAMILY_RENESAS_RZ

config FPU
        bool
        default y
        depends on SOC_R9A09G057H44GBG_CR8 && SOC_SERIES_RZV2H && SOC_FAMILY_RENESAS_RZ

config FPU
        bool
        default y if CPU_HAS_FPU
        depends on SOC_SERIES_S32K1 && SOC_FAMILY_NXP_S32

config FPU
        bool
        default y
        depends on SOC_SERIES_S32K3 && SOC_FAMILY_NXP_S32

config FPU
        bool
        default y
        depends on SOC_SERIES_S32ZE && SOC_FAMILY_NXP_S32

config FPU
        bool
        default y
        depends on SOC_MCIMX6X_M4 && SOC_SERIES_IMX6SX && SOC_FAMILY_NXP_IMX

config FPU
        bool "Floating point unit (FPU)"
        depends on CPU_HAS_FPU
        help
          This option enables the hardware Floating Point Unit (FPU), in order to
          support using the floating point registers and instructions.

          When this option is enabled, by default, threads may use the floating
          point registers only in an exclusive manner, and this usually means that
          only one thread may perform floating point operations.

          If it is necessary for multiple threads to perform concurrent floating
          point operations, the "FPU register sharing" option must be enabled to
          preserve the floating point registers across context switches.

          Note that this option cannot be selected for the platforms that do not
          include a hardware floating point unit; the floating point support for
          those platforms is dependent on the availability of the toolchain-
          provided software floating point library.

(select-related dependencies: (SOC_SERIES_RA4E1 && SOC_FAMILY_RENESAS_RA) || (SOC_SERIES_RA4E2 && SOC_FAMILY_RENESAS_RA) || (SOC_SERIES_RA4L1 && SOC_FAMILY_RENESAS_RA) || (SOC_SERIES_RA4M1 && SOC_FAMILY_RENESAS_RA) || (SOC_SERIES_RA4M2 && SOC_FAMILY_RENESAS_RA) || (SOC_SERIES_RA4M3 && SOC_FAMILY_RENESAS_RA) || (SOC_SERIES_RA4W1 && SOC_FAMILY_RENESAS_RA) || (SOC_SERIES_RA6E1 && SOC_FAMILY_RENESAS_RA) || (SOC_SERIES_RA6E2 && SOC_FAMILY_RENESAS_RA) || (SOC_SERIES_RA6M1 && SOC_FAMILY_RENESAS_RA) || (SOC_SERIES_RA6M2 && SOC_FAMILY_RENESAS_RA) || (SOC_SERIES_RA6M3 && SOC_FAMILY_RENESAS_RA) || (SOC_SERIES_RA6M4 && SOC_FAMILY_RENESAS_RA) || (SOC_SERIES_RA6M5 && SOC_FAMILY_RENESAS_RA) || (SOC_SERIES_RA8D1 && SOC_FAMILY_RENESAS_RA) || (SOC_SERIES_RA8M1 && SOC_FAMILY_RENESAS_RA) || (SOC_SERIES_RA8P1 && SOC_FAMILY_RENESAS_RA) || (SOC_SERIES_RA8T1 && SOC_FAMILY_RENESAS_RA) || (ICP201XX && CPU_HAS_FPU && DT_HAS_INVENSENSE_ICP201XX_ENABLED && SENSOR))

(imply-related dependencies: (SOC_SERIES_RA4E1 && SOC_FAMILY_RENESAS_RA) || (SOC_SERIES_RA4E2 && SOC_FAMILY_RENESAS_RA) || (SOC_SERIES_RA4L1 && SOC_FAMILY_RENESAS_RA) || (SOC_SERIES_RA4M1 && SOC_FAMILY_RENESAS_RA) || (SOC_SERIES_RA4M2 && SOC_FAMILY_RENESAS_RA) || (SOC_SERIES_RA4M3 && SOC_FAMILY_RENESAS_RA) || (SOC_SERIES_RA4W1 && SOC_FAMILY_RENESAS_RA) || (SOC_SERIES_RA6E1 && SOC_FAMILY_RENESAS_RA) || (SOC_SERIES_RA6E2 && SOC_FAMILY_RENESAS_RA) || (SOC_SERIES_RA6M1 && SOC_FAMILY_RENESAS_RA) || (SOC_SERIES_RA6M2 && SOC_FAMILY_RENESAS_RA) || (SOC_SERIES_RA6M3 && SOC_FAMILY_RENESAS_RA) || (SOC_SERIES_RA6M4 && SOC_FAMILY_RENESAS_RA) || (SOC_SERIES_RA6M5 && SOC_FAMILY_RENESAS_RA) || (SOC_SERIES_RA8D1 && SOC_FAMILY_RENESAS_RA) || (SOC_SERIES_RA8M1 && SOC_FAMILY_RENESAS_RA) || (SOC_SERIES_RA8P1 && SOC_FAMILY_RENESAS_RA) || (SOC_SERIES_RA8T1 && SOC_FAMILY_RENESAS_RA) || (ICP201XX && CPU_HAS_FPU && DT_HAS_INVENSENSE_ICP201XX_ENABLED && SENSOR))

...depends on ICP201XX (defined at drivers/sensor/tdk/icp201xx/Kconfig:7), with definition...

menuconfig ICP201XX
        bool "ICP201xx Barometric Pressure and Temperature Sensor"
        default y
        select I2C if n
        select SPI if n
        select USE_EMD_ICP201XX
        select FPU if CPU_HAS_FPU
        depends on DT_HAS_INVENSENSE_ICP201XX_ENABLED && SENSOR
        help
          Enable driver for ICP101xx Barometric Pressure and Temperature Sensor.

...depends on SENSOR (defined at drivers/sensor/Kconfig:7), with definition...

menuconfig SENSOR
        bool "Sensor drivers"
        help
          Include sensor drivers in system config

(select-related dependencies: (NRF_802154_SL_OPENSOURCE && NRF_802154_TEMPERATURE_UPDATE && <choice NRF_802154_SL_TYPE>) || (NRF_802154_SL_OPENSOURCE && NRF_802154_TEMPERATURE_UPDATE && <choice NRF_802154_SL_TYPE>) || (BT_STM32WBA_USE_TEMP_BASED_CALIB && BT_STM32WBA && BT_HCI && BT_DRIVERS) || (CLOCK_CONTROL_NRF_USES_TEMP_SENSOR && HAS_HW_NRF_TEMP && CLOCK_CONTROL_NRF_DRIVER_CALIBRATION && CLOCK_CONTROL_NRF_K32SRC_RC_CALIBRATION && CLOCK_CONTROL_NRF && CLOCK_CONTROL) || (SENSING && DT_HAS_ZEPHYR_SENSING_ENABLED))

...depends on CLOCK_CONTROL_NRF_USES_TEMP_SENSOR (defined at drivers/clock_control/Kconfig.nrf:130), with definition...

config CLOCK_CONTROL_NRF_USES_TEMP_SENSOR
        bool
        default y if CLOCK_CONTROL_NRF_CALIBRATION_MAX_SKIP > 0 && CLOCK_CONTROL_NRF_CALIBRATION_TEMP_DIFF > 0       
        select TEMP_NRF5
        select SENSOR
        depends on HAS_HW_NRF_TEMP && CLOCK_CONTROL_NRF_DRIVER_CALIBRATION && CLOCK_CONTROL_NRF_K32SRC_RC_CALIBRATION && CLOCK_CONTROL_NRF && CLOCK_CONTROL

...depends on CLOCK_CONTROL (defined at C:/Users/user-1/zephyrproject/zephyr/soc/wch/ch32v\ch32v00x\Kconfig.defconfig:9, C:/Users/user-1/zephyrproject/zephyr/soc/wch/ch32v\qingke_v2a\Kconfig.defconfig:18, C:/Users/user-1/zephyrproject/zephyr/soc/wch/ch32v\qingke_v4b\Kconfig.defconfig:9, C:/Users/user-1/zephyrproject/zephyr/soc/wch/ch32v\qingke_v4c\Kconfig.defconfig:9, C:/Users/user-1/zephyrproject/zephyr/soc/wch/ch32v\qingke_v4f\Kconfig.defconfig:9, C:/Users/user-1/zephyrproject/zephyr/soc/st/stm32/Kconfig.defconfig:17, C:/Users/user-1/zephyrproject/zephyr/soc/renesas/ra\ra2a1\Kconfig.defconfig:17, C:/Users/user-1/zephyrproject/zephyr/soc/renesas/ra\ra2l1\Kconfig.defconfig:17, C:/Users/user-1/zephyrproject/zephyr/soc/renesas/ra\ra4e1\Kconfig.defconfig:17, C:/Users/user-1/zephyrproject/zephyr/soc/renesas/ra\ra4e2\Kconfig.defconfig:17, C:/Users/user-1/zephyrproject/zephyr/soc/renesas/ra\ra4l1\Kconfig.defconfig:17, C:/Users/user-1/zephyrproject/zephyr/soc/renesas/ra\ra4m1\Kconfig.defconfig:17, C:/Users/user-1/zephyrproject/zephyr/soc/renesas/ra\ra4m2\Kconfig.defconfig:17, C:/Users/user-1/zephyrproject/zephyr/soc/renesas/ra\ra4m3\Kconfig.defconfig:17, C:/Users/user-1/zephyrproject/zephyr/soc/renesas/ra\ra4w1\Kconfig.defconfig:17, C:/Users/user-1/zephyrproject/zephyr/soc/renesas/ra\ra6e1\Kconfig.defconfig:17, C:/Users/user-1/zephyrproject/zephyr/soc/renesas/ra\ra6e2\Kconfig.defconfig:17, C:/Users/user-1/zephyrproject/zephyr/soc/renesas/ra\ra6m1\Kconfig.defconfig:17, C:/Users/user-1/zephyrproject/zephyr/soc/renesas/ra\ra6m2\Kconfig.defconfig:17, C:/Users/user-1/zephyrproject/zephyr/soc/renesas/ra\ra6m3\Kconfig.defconfig:17, C:/Users/user-1/zephyrproject/zephyr/soc/renesas/ra\ra6m4\Kconfig.defconfig:17, C:/Users/user-1/zephyrproject/zephyr/soc/renesas/ra\ra6m5\Kconfig.defconfig:17, C:/Users/user-1/zephyrproject/zephyr/soc/renesas/ra\ra8d1\Kconfig.defconfig:12, C:/Users/user-1/zephyrproject/zephyr/soc/renesas/ra\ra8m1\Kconfig.defconfig:12, C:/Users/user-1/zephyrproject/zephyr/soc/renesas/ra\ra8p1\Kconfig.defconfig:33, C:/Users/user-1/zephyrproject/zephyr/soc/renesas/ra\ra8t1\Kconfig.defconfig:12, C:/Users/user-1/zephyrproject/zephyr/soc/nordic/Kconfig.defconfig:13, C:/Users/user-1/zephyrproject/zephyr/soc/microchip/sam/Kconfig.defconfig:10, C:/Users/user-1/zephyrproject/zephyr/soc/gd/gd32/Kconfig.defconfig:11, C:/Users/user-1/zephyrproject/zephyr/soc/espressif\common\Kconfig.defconfig:74, C:/Users/user-1/zephyrproject/zephyr/soc/atmel/sam/Kconfig.defconfig:11, drivers/clock_control/Kconfig:9), with definition...

config CLOCK_CONTROL
        bool
        default y
        depends on SOC_SERIES_CH32V00X && SOC_FAMILY_CH32V

config CLOCK_CONTROL
        bool
        default y
        depends on SOC_SERIES_QINGKE_V2A && SOC_FAMILY_CH32V

config CLOCK_CONTROL
        bool
        default y
        depends on SOC_SERIES_QINGKE_V4B && SOC_FAMILY_CH32V

config CLOCK_CONTROL
        bool
        default y
        depends on SOC_SERIES_QINGKE_V4C && SOC_FAMILY_CH32V

config CLOCK_CONTROL
        bool
        default y
        depends on SOC_SERIES_QINGKE_V4F && SOC_FAMILY_CH32V

config CLOCK_CONTROL
        bool
        default y
        depends on SOC_FAMILY_STM32

config CLOCK_CONTROL
        bool
        default y
        depends on SOC_SERIES_RA2A1 && SOC_FAMILY_RENESAS_RA

config CLOCK_CONTROL
        bool
        default y
        depends on SOC_SERIES_RA2L1 && SOC_FAMILY_RENESAS_RA

config CLOCK_CONTROL
        bool
        default y
        depends on SOC_SERIES_RA4E1 && SOC_FAMILY_RENESAS_RA

config CLOCK_CONTROL
        bool
        default y
        depends on SOC_SERIES_RA4E2 && SOC_FAMILY_RENESAS_RA

config CLOCK_CONTROL
        bool
        default y
        depends on SOC_SERIES_RA4L1 && SOC_FAMILY_RENESAS_RA

config CLOCK_CONTROL
        bool
        default y
        depends on SOC_SERIES_RA4M1 && SOC_FAMILY_RENESAS_RA

config CLOCK_CONTROL
        bool
        default y
        depends on SOC_SERIES_RA4M2 && SOC_FAMILY_RENESAS_RA

config CLOCK_CONTROL
        bool
        default y
        depends on SOC_SERIES_RA4M3 && SOC_FAMILY_RENESAS_RA

config CLOCK_CONTROL
        bool
        default y
        depends on SOC_SERIES_RA4W1 && SOC_FAMILY_RENESAS_RA

config CLOCK_CONTROL
        bool
        default y
        depends on SOC_SERIES_RA6E1 && SOC_FAMILY_RENESAS_RA

config CLOCK_CONTROL
        bool
        default y
        depends on SOC_SERIES_RA6E2 && SOC_FAMILY_RENESAS_RA

config CLOCK_CONTROL
        bool
        default y
        depends on SOC_SERIES_RA6M1 && SOC_FAMILY_RENESAS_RA

config CLOCK_CONTROL
        bool
        default y
        depends on SOC_SERIES_RA6M2 && SOC_FAMILY_RENESAS_RA

config CLOCK_CONTROL
        bool
        default y
        depends on SOC_SERIES_RA6M3 && SOC_FAMILY_RENESAS_RA

config CLOCK_CONTROL
        bool
        default y
        depends on SOC_SERIES_RA6M4 && SOC_FAMILY_RENESAS_RA

config CLOCK_CONTROL
        bool
        default y
        depends on SOC_SERIES_RA6M5 && SOC_FAMILY_RENESAS_RA

config CLOCK_CONTROL
        bool
        default y
        depends on SOC_SERIES_RA8D1 && SOC_FAMILY_RENESAS_RA

config CLOCK_CONTROL
        bool
        default y
        depends on SOC_SERIES_RA8M1 && SOC_FAMILY_RENESAS_RA

config CLOCK_CONTROL
        bool
        default y
        depends on SOC_SERIES_RA8P1 && SOC_FAMILY_RENESAS_RA

config CLOCK_CONTROL
        bool
        default y
        depends on SOC_SERIES_RA8T1 && SOC_FAMILY_RENESAS_RA

config CLOCK_CONTROL
        bool
        default y if SYS_CLOCK_EXISTS && !NRF_PLATFORM_HALTIUM && !RISCV_CORE_NORDIC_VPR
        depends on SOC_FAMILY_NORDIC_NRF

config CLOCK_CONTROL
        bool
        default y
        depends on SOC_FAMILY_MICROCHIP_SAM

config CLOCK_CONTROL
        bool
        default y
        depends on SOC_FAMILY_GD_GD32

config CLOCK_CONTROL
        bool
        default y
        depends on (SOC_SERIES_ESP32 || SOC_SERIES_ESP32S2 || SOC_SERIES_ESP32S3) && SOC_FAMILY_ESPRESSIF_ESP32      

config CLOCK_CONTROL
        bool
        default y
        depends on SOC_FAMILY_ATMEL_SAM

menuconfig CLOCK_CONTROL
        bool "Clock controller drivers"
        help
          Enable support for hardware clock controller. Such hardware can
          provide clock for other subsystem, and thus can be also used for
          power efficiency by controlling their clock. Note that this has
          nothing to do with RTC.

(select-related dependencies: (NRF_802154_RADIO_DRIVER && HAS_HW_NRF_RADIO_IEEE802154 && !n && HAS_NORDIC_DRIVERS) || (NRF_802154_RADIO_DRIVER && HAS_HW_NRF_RADIO_IEEE802154 && !n && HAS_NORDIC_DRIVERS && 0) || (SOC_SERIES_MSPM0G && SOC_FAMILY_TI_MSPM0) || (SOC_SERIES_SIM3U && SOC_FAMILY_SILABS_SIM3) || (SOC_SERIES_DA1469X && SOC_FAMILY_RENESAS_SMARTBOND) || (SOC_SERIES_RX130 && SOC_FAMILY_RENESAS_RX) || (SOC_SERIES_RX62N && SOC_FAMILY_RENESAS_RX) || SOC_OPENISA_RV32M1 || (SOC_SERIES_S32K1 && SOC_FAMILY_NXP_S32) || (SOC_SERIES_S32K3 && SOC_FAMILY_NXP_S32) || (SOC_SERIES_S32ZE && SOC_FAMILY_NXP_S32) || SOC_SERIES_RW6XX || (SOC_SERIES_MCXA && SOC_FAMILY_NXP_MCX) || (SOC_SERIES_MCXC && SOC_FAMILY_NXP_MCX) || (SOC_SERIES_MCXN && SOC_FAMILY_NXP_MCX) || (SOC_SERIES_MCXW && SOC_FAMILY_NXP_MCX) || SOC_FAMILY_LPC || (SOC_SERIES_LPC11U6X && SOC_FAMILY_LPC) || (SOC_LPC51U68 && SOC_FAMILY_LPC) || (SOC_LPC54114_M4 && SOC_FAMILY_LPC) || (SOC_LPC54114_M0 && SOC_FAMILY_LPC) || (SOC_SERIES_KINETIS_K2X && SOC_FAMILY_KINETIS) || (SOC_SERIES_K32LX && SOC_FAMILY_KINETIS) || (SOC_SERIES_KINETIS_K6X && SOC_FAMILY_KINETIS) || (SOC_SERIES_KINETIS_K8X && SOC_FAMILY_KINETIS) || (SOC_SERIES_KINETIS_KE1XF && SOC_FAMILY_KINETIS) || (SOC_SERIES_KE1XZ && SOC_FAMILY_KINETIS) || (SOC_SERIES_KINETIS_KL2X && SOC_FAMILY_KINETIS) || (SOC_SERIES_KINETIS_KV5X && SOC_FAMILY_KINETIS) || (SOC_SERIES_KINETIS_KWX && SOC_FAMILY_KINETIS) || (SOC_SERIES_IMXRT10XX && SOC_FAMILY_NXP_IMXRT) || (SOC_SERIES_IMXRT118X && SOC_FAMILY_NXP_IMXRT) || (SOC_SERIES_IMXRT11XX && SOC_FAMILY_NXP_IMXRT) || (SOC_MIMXRT595S_CM33 && SOC_FAMILY_NXP_IMXRT) || (SOC_MIMXRT685S_CM33 && SOC_FAMILY_NXP_IMXRT) || (SOC_MIMXRT685S_HIFI4 && SOC_FAMILY_NXP_IMXRT) || (SOC_MIMXRT798S_CM33_CPU0 && SOC_FAMILY_NXP_IMXRT) || (SOC_MIMXRT798S_CM33_CPU1 && SOC_FAMILY_NXP_IMXRT) || (SOC_SERIES_IMX6SX && SOC_FAMILY_NXP_IMX) || (SOC_SERIES_IMX7D && SOC_FAMILY_NXP_IMX) || (SOC_SERIES_NPCM4 && SOC_FAMILY_NPCM) || (SOC_SERIES_ESP32 && SOC_FAMILY_ESPRESSIF_ESP32) || (SOC_SERIES_ESP32C2 && SOC_FAMILY_ESPRESSIF_ESP32) || (SOC_SERIES_ESP32C3 && SOC_FAMILY_ESPRESSIF_ESP32) || (SOC_SERIES_ESP32C6 && SOC_ESP32C6_HPCORE && SOC_FAMILY_ESPRESSIF_ESP32) || (SOC_SERIES_ESP32S2 && SOC_FAMILY_ESPRESSIF_ESP32) || (SOC_SERIES_ESP32S3 && SOC_FAMILY_ESPRESSIF_ESP32) || (SOC_SERIES_BL60X && SOC_FAMILY_BFLB) || SOC_FAMILY_MAX32 || SOC_FAMILY_MAX32_M33 || (BT_AMBIQ_HCI && SOC_SERIES_APOLLO4X && DT_HAS_AMBIQ_BT_HCI_SPI_ENABLED && BT_HCI && BT_DRIVERS) || (CAN_NXP_S32_CANXL && DT_HAS_NXP_S32_CANXL_ENABLED && CAN) || (CAN_NRF && DT_HAS_NORDIC_NRF_CAN_ENABLED && CAN) || (CAN_RENESAS_RZ_CANFD && DT_HAS_RENESAS_RZ_CANFD_ENABLED && CAN) || (COUNTER_NRFX_TIMER_USE_CLOCK_CONTROL && (n || n) && !SOC_NRF54H20_CPUFLPR && !SOC_NRF54H20_CPUPPR && COUNTER) || (COUNTER_SMARTBOND_TIMER && DT_HAS_RENESAS_SMARTBOND_TIMER_ENABLED && COUNTER) || (COUNTER_NXP_S32_SYS_TIMER && DT_HAS_NXP_S32_SYS_TIMER_ENABLED && COUNTER) || (I2S_NRF_TDM && DT_HAS_NORDIC_NRF_TDM_ENABLED && I2S) || (MDIO_NXP_S32_GMAC && DT_HAS_NXP_S32_GMAC_MDIO_ENABLED && MDIO) || (XLNX_SDHC && DT_HAS_XLNX_VERSAL_8_9A_ENABLED && SDHC) || (UART_RTS5912 && SOC_SERIES_RTS5912 && SERIAL) || (UART_SILABS_EUSART && DT_HAS_SILABS_EUSART_UART_ENABLED && SERIAL) || (UART_SILABS_USART && DT_HAS_SILABS_USART_UART_ENABLED && SERIAL) || (USB_DC_SMARTBOND && DT_HAS_RENESAS_SMARTBOND_USBD_ENABLED && USB_DEVICE_DRIVER) || (WDT_NXP_S32 && DT_HAS_NXP_S32_SWT_ENABLED && WATCHDOG))

...depends on UART_SILABS_EUSART (defined at drivers/serial\Kconfig.silabs_eusart:5), with definition...

config UART_SILABS_EUSART
        bool "Silabs EUSART UART driver"
        default y
        select SERIAL_HAS_DRIVER
        select SERIAL_SUPPORT_INTERRUPT
        select SOC_GECKO_EUSART
        select SERIAL_SUPPORT_ASYNC if DT_HAS_SILABS_LDMA_ENABLED
        select DMA if UART_ASYNC_API
        select PINCTRL
        select CLOCK_CONTROL
        depends on DT_HAS_SILABS_EUSART_UART_ENABLED && SERIAL
        help
          Enable the eusart uart driver.

...depends on SERIAL (defined at boards/shields\openthread_rcp_arduino\Kconfig.defconfig:8, C:/Users/user-1/zephyrproject/zephyr/soc/nxp/lpc\lpc55xxx\Kconfig.defconfig:73, drivers/serial/Kconfig:6), with definition...

config SERIAL
        bool
        default y if SHIELD_OPENTHREAD_RCP_ARDUINO_SERIAL
        depends on OPENTHREAD && (SHIELD_OPENTHREAD_RCP_ARDUINO_SERIAL || SHIELD_OPENTHREAD_RCP_ARDUINO_SPI)

config SERIAL
        bool
        default n
        depends on SOC_LPC55S69_CPU1 && SOC_SERIES_LPC55XXX && SOC_FAMILY_LPC

menuconfig SERIAL
        bool "Serial drivers"
        help
          Enable options for serial drivers.

(select-related dependencies: (ERPC_TRANSPORT_UART && ERPC) || (AUXDISPLAY_ITRON && DT_HAS_NORITAKE_ITRON_ENABLED && AUXDISPLAY) || (BT_UART && BT_HCI && BT_DRIVERS) || (W1_ZEPHYR_SERIAL && DT_HAS_ZEPHYR_W1_SERIAL_ENABLED && W1) || (WIFI_ESWIFI_BUS_UART && <choice WIFI_ESWIFI_BUS>) || (SHELL_BACKEND_SERIAL && SHELL_BACKENDS && SHELL))

...depends on ERPC (defined at C:/Users/user-1/zephyrproject/modules/lib/erpc/zephyr/Kconfig:10), with definition...

config ERPC
        bool "eRPC Support"
        depends on ZEPHYR_ERPC_MODULE && CPP && FULL_LIBCPP_SUPPORTED
        help
          This option enables the eRPC library

...depends on FULL_LIBCPP_SUPPORTED (defined at lib/cpp/Kconfig:88), with definition...

config FULL_LIBCPP_SUPPORTED
        bool
        depends on CPP
        help
          Selected when the target has at least one C++ library that offers a
          complete implementation and which would be selected when
          REQUIRES_FULL_LIBCPP is set.

(select-related dependencies: (GLIBCXX_LIBCPP && !NATIVE_APPLICATION && (NEWLIB_LIBC || PICOLIBC) && <choice LIBCPP_IMPLEMENTATION>) || (LIBCXX_LIBCPP && !NATIVE_APPLICATION && NEWLIB_LIBC && "zephyr" = "llvm" && <choice LIBCPP_IMPLEMENTATION>) || NATIVE_LIBCPP)

...depends on the choice symbol GLIBCXX_LIBCPP (defined at lib/cpp/Kconfig:112), with definition...

config GLIBCXX_LIBCPP
        bool "GNU C++ Standard Library"
        select FULL_LIBCPP_SUPPORTED
        depends on !NATIVE_APPLICATION && (NEWLIB_LIBC || PICOLIBC) && <choice LIBCPP_IMPLEMENTATION>
        help
          Build with GNU C++ Standard Library (libstdc++) provided by the GNU
          Compiler Collection (GCC)-based toolchain.

...depends on the choice symbol PICOLIBC (defined at lib/libc/Kconfig:91), with definition...

config PICOLIBC
        bool "Picolibc library"
        select COMMON_LIBC_ABORT
        select LIBC_ERRNO if THREAD_LOCAL_STORAGE
        select NEED_LIBC_MEM_PARTITION
        select TC_PROVIDES_POSIX_C_LANG_SUPPORT_R
        imply THREAD_LOCAL_STORAGE if ARCH_HAS_THREAD_LOCAL_STORAGE && TOOLCHAIN_SUPPORTS_THREAD_LOCAL_STORAGE       
        imply COMMON_LIBC_MALLOC
        imply COMMON_LIBC_ABORT
        imply COMMON_LIBC_TIME
        depends on PICOLIBC_SUPPORTED && <choice LIBC_IMPLEMENTATION>
        help
          Build with picolibc library. The picolibc library is built as
          a module if PICOLIBC_MODULE is set, otherwise picolibc is
          expected to be provided by the toolchain.

...depends on <choice LIBC_IMPLEMENTATION> (defined at C:/Users/user-1/zephyrproject/zephyr/soc/st/stm32\stm32wbax\Kconfig.defconfig:34, lib/libc/Kconfig:69), with definition...

choice LIBC_IMPLEMENTATION
        bool
        default NEWLIB_LIBC
        depends on BT_STM32WBA && SOC_SERIES_STM32WBAX && SOC_FAMILY_STM32

choice LIBC_IMPLEMENTATION
        bool "C Library Implementation"
        default EXTERNAL_LIBC if NATIVE_BUILD && !(NATIVE_LIBRARY && NATIVE_LIBC_INCOMPATIBLE)
        default PICOLIBC
        default NEWLIB_LIBC if REQUIRES_FULL_LIBC
        default MINIMAL_LIBC
        default IAR_LIBC

...depends on the choice symbol MINIMAL_LIBC (defined at lib/libc/Kconfig:77), with definition...

config MINIMAL_LIBC
        bool "Minimal C library"
        select COMMON_LIBC_ABORT
        select COMMON_LIBC_STRNLEN
        imply COMPILER_FREESTANDING
        imply COMMON_LIBC_MALLOC
        imply COMMON_LIBC_CALLOC
        imply COMMON_LIBC_REALLOCARRAY
        imply COMMON_LIBC_TIME
        depends on !REQUIRES_FULL_LIBC && MINIMAL_LIBC_SUPPORTED && <choice LIBC_IMPLEMENTATION>
        help
          Build with minimal C library.

...depends again on REQUIRES_FULL_LIBC (defined at lib/libc/Kconfig:6)
CMake Error at C:/Users/user-1/zephyrproject/zephyr/cmake/modules/kconfig.cmake:385 (message):
  command failed with return code: 1
Call Stack (most recent call first):
  C:/Users/user-1/zephyrproject/zephyr/cmake/modules/zephyr_default.cmake:131 (include)
  C:/Users/user-1/zephyrproject/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:66 (include)
  C:/Users/user-1/zephyrproject/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:92 (include_boilerplate)      
  CMakeLists.txt:9 (find_package)


-- Configuring incomplete, errors occurred!
FATAL ERROR: command exited with status 1: 'C:\Program Files\CMake\bin\cmake.EXE' -DWEST_PYTHON=C:/Users/user-1/zephyrproject/.venv/Scripts/python.exe '-BC:\Users\user-1\zephyrproject\modules\lib\erpc\examples\zephyr\build' -GNinja -DBOARD=frdm_kw41z '-SC:\Users\user-1\zephyrproject\modules\lib\erpc\examples\zephyr\matrix_multiply_uart' 

To Reproduce

west build .\matrix_multiply_uart\ -b frdm_kw41z -p always

Expected behavior

I expect the example to build successfully.

Screenshots

Desktop (please complete the following information)

  • OS Windows 11 Enterprise
  • eRPC Version v1.14.0
  • Zephyr v4.2.0-rc1

Steps you didn't forgot to do

  • I checked if there is no related issue opened/closed.
  • I checked that there doesn't exist opened PR which is solving this issue.

Additional context

The description of the FULL_LIBCPP_SUPPORTED symbol states that it depends on CONFIG_CPP:

Kconfig Search — Zephyr Project Documentation

However, in the erpc Kconfig file (erpc/zephyr/Kconfig at main · EmbeddedRPC/erpc) ERPC depends on both CPP and FULL_LIBCPP_SUPPORTED.

Seems like, depending on the order of evaluation, this could be causing the dependency loop.

As I test I removed the depends on FULL_LIBCPP_SUPPORTED from the erpc Kconfig file and it now builds without errors.

I'm not sure if this is the best (or even a correct solution) so I'd be interested to hear your input.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions