Building ZigBee app fails with "ninja: error: ' ... libnrf-802154-sl.a', needed by 'zephyr/zephyr_pre0.elf', missing and no known rule to make it"

I encountered the following error while building my ZigBee app on a CI (dockerized Linux container), after bumping the SDK from 2.6.1 to 2.7.0.

ninja: error: '*HIDDEN*/ncs/nrfxlib/nrf_802154/sl/sl/lib/nRF52840/hard-float/libnrf-802154-sl.a', needed by 'zephyr/zephyr_pre0.elf', missing and no known rule to make it

The part "nRF52840" in the path originates from the Kconfig value "CONFIG_SOC". It is actually "nRF52840_QIAA", and the suffix "_QIAA" will be removed in the nrfxlib's common.cmake.

The CMake function nrfxlib_calculate_lib_path generates the path to libnrf-802154-sl.a like this: 

*HIDDEN*/ncs/nrfxlib/nrf_802154/sl/sl/lib/nRF52840/hard-float/libnrf-802154-sl.a

But the actual valid path in the SDK is:

*HIDDEN*/ncs/nrfxlib/nrf_802154/sl/sl/lib/nrf58240/hard-float/libnrf-802154-sl.a

The difference is the upper and lower case in the SoC's name. Actually, it fails on Linux machines incl. CI, but doesn't fail on macOS that uses case-insensitive filesystem by default.

I tentatively made a symlink from nRF52840 to nrf52840 and the build succeeded.

Is it a known issue, or did I do something wrong?

Parents
  • Hi,

    I have not been able to reproduce this on my end, building a Zigbee sample (light_bulb) for nRF52840 on Linux works on my end on.

    That said, there is a change in how CONFIG_SOC is handled in general 2.6 and 2.7. In 2.7 it is converted to all lower case and without the package variant (you can see that if you build a sample project for a DK in 2.6 and 2.7 and compare the .config files). There are several changes similar to this in 2.7 due to the introduction of a new hardware model.

Reply
  • Hi,

    I have not been able to reproduce this on my end, building a Zigbee sample (light_bulb) for nRF52840 on Linux works on my end on.

    That said, there is a change in how CONFIG_SOC is handled in general 2.6 and 2.7. In 2.7 it is converted to all lower case and without the package variant (you can see that if you build a sample project for a DK in 2.6 and 2.7 and compare the .config files). There are several changes similar to this in 2.7 due to the introduction of a new hardware model.

Children
No Data
Related