
On Thu, Apr 09, 2020 at 02:49:41PM +0200, Heinrich Schuchardt wrote:
On 2020-04-08 17:39, Sicris wrote:
This patch fixes the typo error in Makefile where -I$(srctree)/arch/$(ARCH)/thumb1/include is not picked up in the compiler flag when compiling for thumb2. END
Signed-off-by: Sicris sicris.embay@gmail.com
Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile b/Makefile index 8de5ff6d94..503b30392d 100644 --- a/Makefile +++ b/Makefile @@ -704,7 +704,7 @@ UBOOTINCLUDE := \ -Iinclude \ $(if $(KBUILD_SRC), -I$(srctree)/include) \ $(if $(CONFIG_$(SPL_)SYS_THUMB_BUILD), \
$(if $(CONFIG_HAS_THUMB2),, \
$(if $(CONFIG_HAS_THUMB2), \ -I$(srctree)/arch/$(ARCH)/thumb1/include),) \
This patch relates to https://stackoverflow.com/questions/61097841/error-selected-processor-does-n...
The original problem was using the wrong compiler as discussed on Stackoverflow.
Compiling stm32f769-disco_defconfig works fine using the Debian Bullseye package gcc-arm-linux-gnueabi without this patch.
The current logic is: If it is thumb and not thumb2, include the thumb1 directory. If it is thumb and thumb2, do not include the thumb1 directory.
You are inverting the logic with your patch:
If it is thumb and thumb2, include the thumb1 directory. If it is thumb and not thumb2, do not include the thumb1 directory.
This does not make much sense to me.
For understanding the if-statement I found the following Makefile useful:
all: $(if ,,echo 1) $(if ,echo 2) $(if 1,,echo 3) $(if 1,echo 4)
The output contains 1 and 4.
Perhaps things need testing with a bit wider range of compilers, to make sure we're doing the right thing in all cases, and then perhaps changing the logic to make sure we pass the right flags for what we're told to build for.