[U-Boot] [PATCH] tools/Makefile: fix HOSTCFLAGS with CROSS_BUILD_TOOLS

Fabrice Fontaine fontaine.fabrice at gmail.com
Sun Aug 25 13:43:31 UTC 2019


Hello,
Le dim. 25 août 2019 à 13:44, Jan Kiszka <jan.kiszka at web.de> a écrit :
>
> On 01.05.19 15:08, Fabrice Fontaine wrote:
> > When CROSS_BUILD_TOOLS is set, set HOSTCFLAGS to CFLAGS otherwise CC
> > will be used with HOSTCFLAGS which seems wrong
> >
> > Signed-off-by: Fabrice Fontaine <fontaine.fabrice at gmail.com>
> > ---
> >   tools/Makefile | 1 +
> >   1 file changed, 1 insertion(+)
> >
> > diff --git a/tools/Makefile b/tools/Makefile
> > index 12a3027e23..eadeba417d 100644
> > --- a/tools/Makefile
> > +++ b/tools/Makefile
> > @@ -272,6 +272,7 @@ subdir- += env
> >
> >   ifneq ($(CROSS_BUILD_TOOLS),)
> >   override HOSTCC = $(CC)
> > +override HOSTCFLAGS = $(CFLAGS)
> >
> >   quiet_cmd_crosstools_strip = STRIP   $^
> >         cmd_crosstools_strip = $(STRIP) $^; touch $@
> >
>
> This eats - among other things - -O2, normally set in /Makefile. And that breaks
> CROSS_BUILD_TOOLS=y with CONFIG_FIT but without CONFIG_FIT_SIGNATURE because "if
> (!IMAGE_ENABLE_SIGN)" is no longer optimized. I tend to believe this should
> simply be reverted (which is what I'm doing locally in order to fix my builds).
I don't think this patch should be reverted, I sent it to fix a
cross-compilation build issue with host-openssl.

Indeed, without this patch, with CROSS_BUILD_TOOLS=y, tools/Makefile
sets HOSTCC=$(CC) but it forgets
to override HOSTCFLAGS, though, so the tools are built with target
compiler but host CFLAGS.

This raises a build failure if host-openssl is built before uboot-tools because
uboot-tools links with openssl headers from host which depends on pthread.h

More information can be found on buildroot's patchwork here:
- https://patchwork.ozlabs.org/patch/1092227
- https://patchwork.ozlabs.org/patch/1093385
>
> Jan

Best Regards,

Fabrice


More information about the U-Boot mailing list