This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

[bug report] SDK v12 has filename capitalization changes that break gcc toolchain

  1. components/toolchain/gcc/*.S should be *.s
  2. components/toolchain/CMSIS/Include is now named ...cmsis/include.

On Windows OS, this might not matter, but on Linux and OSX using gcc toolchain, it may break existing build systems e.g. the Makefiles in the examples.

If Nordic is trying to follow a convention of all lower case filenames, then (1) could be fixed in the name of the file, and (2) could be fixed by changing all example Makefiles, where they define include paths to "CMSIS/Include". This is a suggested fix for Nordic, and a workaround for readers. There might be better fixes.

The symptoms are:

  1. make emits "no rule to make _build/gcc_startup_nrf52.o" because the Makefile rule specifies .s which does not match the .S of the source file.

  2. compiler emits "core_cm4.h: No such file or directory" because the include paths point to a directory "CMSIS/Include" which does not exist.

This regression seems to have occurred since yesterday.

Related