[PATCH] Series-to: u-boot Cover-letter: Fix Typo error in Makefile

Sicris Rey Embay sicris.embay at gmail.com
Thu Apr 9 16:25:47 CEST 2020


On Thu, Apr 9, 2020 at 8:49 PM Heinrich Schuchardt <xypron.glpk at gmx.de> 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 at 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-not-support-requested-special-purpose-register
>
> The original problem was using the wrong compiler as discussed on
> Stackoverflow.

Sorry, I was not very clear on the problem that I've encountered.

I tried the M-profile as suggested in the stackoverflow comment from
Frant.  However, I still get the same error
with CONFIG_CMD_UBI=y.

{standard input}:757: Error: selected processor does not support
requested special purpose register – msr cpsr_c,r3

This is due to the assembly inline function local_irq_save() /
local_irq_restore.  On closer inspection,
the wrong header for local_irq_save / local_irq_restore was picked up
by the compiler.

Wrong Header: /arch/arm/include/asm/proc-armv/system.h
(Closest i can find) Correct Header:
/arch/arm/thumb1/include/asm/proc-armv/system.h

>
> Compiling stm32f769-disco_defconfig works fine using the Debian Bullseye
> package gcc-arm-linux-gnueabi without this patch.

Can you help me check if this compiles using Debian Bullseye with
CONFIG_CMD_UBI=y?
>
> 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.
>

Does this suggestion make sense?

    $(if $(CONFIG_HAS_THUMB2), \
        -I$(srctree)/arch/$(ARCH)/thumb2/include),
        -I$(srctree)/arch/$(ARCH)/thumb1/include),) \

with thumb2/include contains the same thumb1/include contents.

> 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.
>
> Best regards
>
> Heinrich
>
>
> >               -I$(srctree)/arch/$(ARCH)/include \
> >               -include $(srctree)/include/linux/kconfig.h
> >
>

cheers,
Sicris Rey


More information about the U-Boot mailing list