From 2e13c372f1419f08dab7797b244681f889dd9bcf Mon Sep 17 00:00:00 2001 From: Michal Hanus Date: Mon, 14 Apr 2025 22:04:32 +0200 Subject: nrfdemo --- .../mcuboot/zephyr/include/generated/app_smem.ld | 38 ++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 nrfdemo/builddk/mcuboot/zephyr/include/generated/app_smem.ld (limited to 'nrfdemo/builddk/mcuboot/zephyr/include/generated/app_smem.ld') diff --git a/nrfdemo/builddk/mcuboot/zephyr/include/generated/app_smem.ld b/nrfdemo/builddk/mcuboot/zephyr/include/generated/app_smem.ld new file mode 100644 index 0000000..7b3eead --- /dev/null +++ b/nrfdemo/builddk/mcuboot/zephyr/include/generated/app_smem.ld @@ -0,0 +1,38 @@ +/* SPDX-License-Identifier: Apache-2.0 */ + +/* + * This hackish way of including files is due to CMake issues: + * https://gitlab.kitware.com/cmake/cmake/issues/11985 + * https://gitlab.kitware.com/cmake/cmake/issues/13718 + * + * When using the "Unix Makefiles" generator, CMake simply + * greps for "#include" to generate dependency list. + * So if doing it normally, both files are being included + * in the dependency list. This creates weird dependency + * issue: + * + * 1. Using A.ld to create a linker script A.cmd. + * 2. Using A.cmd to generate A_prebuilt.elf. + * 3. Using A_prebuilt.elf to create B.ld. + * 4. Creating B.cmd with B.ld. + * 5. Creating B_prebuilt.elf using B.cmd. + * + * Since the dependency list of A.cmd contains both + * A.ld and B.ld, when make is invoked again, B.ld + * is newer than A.cmd so everything from this point on + * gets rebuilt. In order to break this cycle, this + * hackish needs to be used since CMake does not parse + * macros, and thus these will not appear in + * the dependency list. The dependencies should then be + * put in CMakeLists.txt instead. + * + * Note: Ninja generator does not suffer from this issue. + */ +#ifdef LINKER_APP_SMEM_UNALIGNED +#define APP_SMEM_LD +#else +#define APP_SMEM_LD +#endif + +#include APP_SMEM_LD +#undef APP_SMEM_LD -- cgit v1.2.3