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?