Pass user defines for Barebox build

Lior Weintraub liorw at pliops.com
Wed Nov 29 23:30:43 PST 2023


Thanks!

> -----Original Message-----
> From: Ahmad Fatoum <a.fatoum at pengutronix.de>
> Sent: Thursday, November 30, 2023 9:28 AM
> To: Lior Weintraub <liorw at pliops.com>; barebox at lists.infradead.org
> Subject: Re: Pass user defines for Barebox build
> 
> CAUTION: External Sender
> 
> Hi,
> 
> On 29.11.23 11:13, Lior Weintraub wrote:
> > Thanks Ahmad,
> >
> > On our Barebox porting we have a small piece of code that needs different
> coding if we build it for QEMU or for the real HW.
> > We are used to pass build defines in other projects so that is way we took
> this approach.
> >
> > I assume the official way would be to set a new defconfig and define a new
> platform?
> > Currently our spider_defconfig has:
> > CONFIG_MACH_SPIDER_MK1_EVK=y
> > So the new one (spider-qemu_defconfig) would use:
> > CONFIG_MACH_SPIDER_QEMU_EVK=y
> >
> > Is this the correct solution?
> 
> I'd rather suggest either
> 
>    - Having the difference detected at runtime.
> 
>    - Have the difference encoded into the device tree: You can have
>      multiple ENTRY_FUNCTION, each with a different device tree and
>      get multiple images in the same build, one for each device tree.
> 
> This avoids the confusion when the wrong image is used. You can even
> combine them, see for example arch/arm/boards/stm32mp15xx-
> dkx/lowlevel.c.
> 
> Cheers,
> Ahmad
> 
> >
> > Cheers,
> > Lior.
> >
> >> -----Original Message-----
> >> From: Ahmad Fatoum <a.fatoum at pengutronix.de>
> >> Sent: Wednesday, November 29, 2023 9:20 AM
> >> To: Lior Weintraub <liorw at pliops.com>; barebox at lists.infradead.org
> >> Subject: Re: Pass user defines for Barebox build
> >>
> >> CAUTION: External Sender
> >>
> >> Hello Lior,
> >>
> >> On 27.11.23 08:02, Lior Weintraub wrote:
> >>> Hi guys,
> >>>
> >>> Is there a formal way to pass user compilation flags into Barebox build?
> >>
> >> There isn't. Both barebox and Linux have been broken in the past by distros
> >> setting CFLAGS that force hardening options that require kernel/libc
> cooperation,
> >> which didn't apply to barebox. For that reason, the variables were prefixed
> >> with KBUILD_ and a way to inject variables into the build of barebox itself
> >> (i.e. not host tools) is intentionally not provided.
> >>
> >> What options do you want to inject?
> >>
> >>> I couldn't find one so I just patched the main Makefile
> >>> diff --git a/Makefile b/Makefile
> >>> index 471bbc2679..febc94b7f3 100644
> >>> --- a/Makefile
> >>> +++ b/Makefile
> >>> @@ -443,7 +443,7 @@ KBUILD_CPPFLAGS        := -D__KERNEL__ -
> >> D__BAREBOX__ $(LINUXINCLUDE) -fno-builti
> >>>  KBUILD_CFLAGS   := -Wall -Wundef -Werror=strict-prototypes -Wno-
> trigraphs
> >> \
> >>>                    -fno-strict-aliasing -fno-common -fshort-wchar \
> >>>                     -Werror=implicit-function-declaration -Werror=implicit-int \
> >>> -                   -Os -pipe -Wmissing-prototypes -std=gnu89
> >>> +                   -Os -pipe -Wmissing-prototypes -std=gnu89
> >> $(BAREBOX_USER_CFLAGS)
> >>
> >> USER is an unfortunate name, because there's already
> KBUILD_USERCFLAGS
> >> and that user is short for userspace and not the user, who is building
> >> barebox.
> >>
> >> Cheers,
> >> Ahmad
> >>
> >>>  KBUILD_AFLAGS          := -D__ASSEMBLY__
> >>>  KBUILD_AFLAGS_KERNEL :=
> >>>  KBUILD_CFLAGS_KERNEL :=
> >>>
> >>> This patch allowed me to set BAREBOX_CFLAGS environment when calling
> >> make.
> >>>
> >>> Thanks,
> >>> Lior.
> >>>
> >>>
> >>>
> >>
> >> --
> >> Pengutronix e.K.                           |                             |
> >> Steuerwalder Str. 21                       | http://secure-
> web.cisco.com/1V675vT6A56-
> >> sSk-T9-
> bJ2qzuaJbiJ0EB_N1QWP_UHYUKGBuj9PAjRQHPYsTfz9deA_5ev2NrI87w-
> >> kH7EvvotDdB1MXS4OIYlI3dCXTV0YhfEZy-
> >>
> woT7YkA7cjsyhiUkvVJ_RIhamKrCuM300cDnHTGxcaoc6H6DkhUysqXNFY9FC
> Xjser
> >> C7dKTwiEPxhk_pdVn-S0-lW1YjHU-UonTqdBHcJvBCtjWkVOiihczwV-
> >>
> TCt9jiaam9NqGn_WreRxWWTC0hcFH0eAsBAi277FQmsFnxcBgaEKxI40JADKL
> uW
> >> F0/http%3A%2F%2Fwww.pengutronix.de%2F  |
> >> 31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
> >> Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |
> >>
> >
> 
> --
> Pengutronix e.K.                           |                             |
> Steuerwalder Str. 21                       | http://secure-
> web.cisco.com/1aXu6Phv7ESjz7ccbTVcsr9n2LgVwuk7DbzthUPOTjNKG0vKA-
> XyVeSHfJ_kVCyF5LiAtNYUqYwVUwYR5piRb8qva7N---
> REF9OYfH7r4u25TGbrGo-r3-MeWsqKBijlR6sxAHLou3FNPz_3pxFngZ_-
> ElP06RRqDyCTYvFExUpH9dJ-6ejaeGRJJUP81u7-
> TJkQVfzif88nfO0HTSTQhHp1GXyiPuSUwmGjJ_pJIEZvQILiuf53l-
> Xvt3phI1udCVDGgu_-
> X0UPL8tqLs71i0PcHutimKFPSCvKSdZK263I/http%3A%2F%2Fwww.pengutro
> nix.de%2F  |
> 31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
> Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |
> 



More information about the barebox mailing list