[U-Boot] [PATCH v2 3/5] ARM: enable Thumb build

Mike Frysinger
2012-02-23T18:04:20Z

On Thursday 23 February 2012 12:28:36 Aneesh V wrote:
> On Thursday 23 February 2012 08:27 PM, Mike Frysinger wrote:
> > On Thursday 23 February 2012 08:39:43 Aneesh V wrote:
> >> --- a/arch/arm/config.mk
> >> +++ b/arch/arm/config.mk
> >>
> >> -# Explicitly specifiy 32-bit ARM ISA since toolchain default can be
> >> -mthumb: +# Choose between ARM/Thumb instruction sets
> >> +ifeq ($(CONFIG_SYS_THUMB_BUILD),y)
> >> +PF_CPPFLAGS_ARM := $(call cc-option, -mthumb -mthumb-interwork,\
> >> + $(call cc-option,-marm,)\
> >> + $(call cc-option,-mno-thumb-interwork,)\
> >> + )
> >> +else
> >>
> >> PF_CPPFLAGS_ARM := $(call cc-option,-marm,)
> >>
> >> +PF_CPPFLAGS_ARM += $(call cc-option,-mno-thumb-interwork,)
> >
> > this 2nd part is no good. "+=" is not the same thing as ":=".
>
> I don't understand the difference. '+=' is done after ':=' right?
>
> > might be simpler to do:
> > PF_CPPFLAGS_MARM := $(call cc-option,-marm)
> > PF_CPPFLAGS_THUMB := $(call cc-option,-mthumb -mthumb-interwork)
> > PF_CPPFLAGS_NO_THUMB := $(call cc-option,-mno-thumb-interwork)
> >
> > ifeq ($(CONFIG_SYS_THUMB_BUILD),y)
> > PF_CPPFLAGS_ARM = $(PF_CPPFLAGS_THUMB)
> > else
> > PF_CPPFLAGS_ARM = $(PF_CPPFLAGS_MARM) $(PF_CPPFLAGS_NO_THUMB)
> > endif
>
> Are you trying to avoid all '+='. If so, why?

"+=" does delayed evaluation and is the whole reason we started using ":=" in
makefiles for *computed* values

when you do:
FOO := $(call cc-option,-marm)
you're storing the result of the computation in $(FOO)

if you do:
FOO += $(call cc-option,-marm)
you're appending "$(call cc-option,-marm)" to $(FOO) and that won't actually
get computed until $(FOO) gets used

so if you append $(call ...) to $(CPPFLAGS), then you end up doing the cc-
option computation every time you compile a file that uses $(CPPFLAGS)
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120223/20c81fa7/attachment.pgp>