From: Lior Weintraub <liorw@pliops.com>
To: Ahmad Fatoum <a.fatoum@pengutronix.de>,
"barebox@lists.infradead.org" <barebox@lists.infradead.org>
Subject: RE: Pass user defines for Barebox build
Date: Thu, 30 Nov 2023 07:30:43 +0000 [thread overview]
Message-ID: <PR3P195MB055565F1563B777167B9441CC382A@PR3P195MB0555.EURP195.PROD.OUTLOOK.COM> (raw)
In-Reply-To: <1349c023-d0dd-49f2-9d91-e3c870430cf3@pengutronix.de>
Thanks!
> -----Original Message-----
> From: Ahmad Fatoum <a.fatoum@pengutronix.de>
> Sent: Thursday, November 30, 2023 9:28 AM
> To: Lior Weintraub <liorw@pliops.com>; barebox@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@pengutronix.de>
> >> Sent: Wednesday, November 29, 2023 9:20 AM
> >> To: Lior Weintraub <liorw@pliops.com>; barebox@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 |
>
prev parent reply other threads:[~2023-11-30 7:32 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-27 7:02 Lior Weintraub
2023-11-29 7:19 ` Ahmad Fatoum
2023-11-29 10:13 ` Lior Weintraub
2023-11-30 7:28 ` Ahmad Fatoum
2023-11-30 7:30 ` Lior Weintraub [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=PR3P195MB055565F1563B777167B9441CC382A@PR3P195MB0555.EURP195.PROD.OUTLOOK.COM \
--to=liorw@pliops.com \
--cc=a.fatoum@pengutronix.de \
--cc=barebox@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox