Makefile: Restructure for multilibs
Several Zephyr SDK toolchains support multilibs. Instead of hard-coding locations of the libraries, the proper/cleanest way is to query the GCC compiler for the locations of libgcc and libc. However, in order to do this, we need to ensure a certain order of initialization in the Makefile: 1. Determine CROSS_COMPILE. We cannot determine LIB_INCLUDE_DIR, TOOLCHAIN_CFLAGS yet, as we don't know the KBUILD_CFLAGS yet. 2. Calculate KBUILD_CFLAGS using CROSS_COMPILE KBUILD_CFLAGS often need the compiler to validate options, i.e: KBUILD_CFLAGS += $(call cc-option,-mabi=aapcs -mthumb -mcpu=cortex-m0) However, LIB_INCLUDE_DIR, TOOLCHAIN_CFLAGS should not be needed for this 3. Finally, using CROSS_COMPILE and KBUILD_CFLAGS determine LIB_INCLUDE_DIR, TOOLCHAIN_CFLAGS by querying GCC using -print-libgcc-file-name and -print-multi-directory command line options. This change should only affect Zephyr SDK toolchains, all other toolchains are expected to function as before. Change-Id: I27b460d46fe65d05fcb8bafb51cd6b3deba275ed Signed-off-by:Juro Bystricky <juro.bystricky@intel.com> Signed-off-by:
Kumar Gala <kumar.gala@linaro.org>
Loading
Please sign in to comment