diff --git a/CMakeLists.txt b/CMakeLists.txt index 96d1807b37f3..abf098085c76 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -214,12 +214,14 @@ endif() # @Intent: Set compiler specific flags for standard C includes toolchain_cc_nostdinc() +# @Intent: Set compiler specific macro inclusion of AUTOCONF_H +toolchain_cc_imacros(${AUTOCONF_H}) + # @Intent: Set compiler specific flag for bare metal freestanding option toolchain_cc_freestanding() zephyr_compile_options( -g # TODO: build configuration enough? - -imacros ${AUTOCONF_H} -fno-common ${TOOLCHAIN_C_FLAGS} ) diff --git a/cmake/compiler/clang/target.cmake b/cmake/compiler/clang/target.cmake index 31b53ce8df17..b20d4075a3f6 100644 --- a/cmake/compiler/clang/target.cmake +++ b/cmake/compiler/clang/target.cmake @@ -80,6 +80,7 @@ include(${ZEPHYR_BASE}/cmake/compiler/gcc/target_cpp.cmake) include(${ZEPHYR_BASE}/cmake/compiler/gcc/target_asm.cmake) include(${ZEPHYR_BASE}/cmake/compiler/gcc/target_baremetal.cmake) include(${ZEPHYR_BASE}/cmake/compiler/${COMPILER}/target_warnings.cmake) +include(${ZEPHYR_BASE}/cmake/compiler/gcc/target_imacros.cmake) macro(toolchain_cc_security_fortify) # No op, clang doesn't understand fortify at all diff --git a/cmake/compiler/gcc/target.cmake b/cmake/compiler/gcc/target.cmake index f717fb9a373d..926aa4c7fb19 100644 --- a/cmake/compiler/gcc/target.cmake +++ b/cmake/compiler/gcc/target.cmake @@ -140,3 +140,4 @@ include(${ZEPHYR_BASE}/cmake/compiler/${COMPILER}/target_cpp.cmake) include(${ZEPHYR_BASE}/cmake/compiler/${COMPILER}/target_asm.cmake) include(${ZEPHYR_BASE}/cmake/compiler/${COMPILER}/target_baremetal.cmake) include(${ZEPHYR_BASE}/cmake/compiler/${COMPILER}/target_warnings.cmake) +include(${ZEPHYR_BASE}/cmake/compiler/${COMPILER}/target_imacros.cmake) diff --git a/cmake/compiler/gcc/target_imacros.cmake b/cmake/compiler/gcc/target_imacros.cmake new file mode 100644 index 000000000000..31eadf2c66f1 --- /dev/null +++ b/cmake/compiler/gcc/target_imacros.cmake @@ -0,0 +1,9 @@ +# SPDX-License-Identifier: Apache-2.0 + +# See root CMakeLists.txt for description and expectations of these macros + +macro(toolchain_cc_imacros header_file) + + zephyr_compile_options(-imacros ${header_file}) + +endmacro() diff --git a/cmake/compiler/host-gcc/target.cmake b/cmake/compiler/host-gcc/target.cmake index 0ccd4d8dee3b..220800571a31 100644 --- a/cmake/compiler/host-gcc/target.cmake +++ b/cmake/compiler/host-gcc/target.cmake @@ -89,3 +89,4 @@ include(${ZEPHYR_BASE}/cmake/compiler/gcc/target_cpp.cmake) include(${ZEPHYR_BASE}/cmake/compiler/gcc/target_asm.cmake) include(${ZEPHYR_BASE}/cmake/compiler/gcc/target_baremetal.cmake) include(${ZEPHYR_BASE}/cmake/compiler/gcc/target_warnings.cmake) +include(${ZEPHYR_BASE}/cmake/compiler/gcc/target_imacros.cmake) diff --git a/cmake/compiler/xcc/target.cmake b/cmake/compiler/xcc/target.cmake index 779dc6ca5f2a..137cff37fe0a 100644 --- a/cmake/compiler/xcc/target.cmake +++ b/cmake/compiler/xcc/target.cmake @@ -83,3 +83,4 @@ include(${ZEPHYR_BASE}/cmake/compiler/gcc/target_cpp.cmake) include(${ZEPHYR_BASE}/cmake/compiler/gcc/target_asm.cmake) include(${ZEPHYR_BASE}/cmake/compiler/gcc/target_baremetal.cmake) include(${ZEPHYR_BASE}/cmake/compiler/gcc/target_warnings.cmake) +include(${ZEPHYR_BASE}/cmake/compiler/gcc/target_imacros.cmake)