Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Carlos Santos <casantos@datacom.ind.br>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH] uboot: fix build with old U-Boot versions
Date: Sun, 3 Jul 2016 13:30:15 -0300 (BRT)	[thread overview]
Message-ID: <301880781.7742692.1467563415744.JavaMail.zimbra@datacom.ind.br> (raw)
In-Reply-To: <1467451543-28926-1-git-send-email-thomas.petazzoni@free-electrons.com>

> From: "Thomas Petazzoni" <thomas.petazzoni@free-electrons.com>
> To: buildroot at uclibc.org
> Cc: "Thomas Petazzoni" <thomas.petazzoni@free-electrons.com>, "Carlos Santos" <casantos@datacom.ind.br>
> Sent: Saturday, July 2, 2016 6:25:43 AM
> Subject: [PATCH] uboot: fix build with old U-Boot versions

> Since commit 0dca644e443c8f28bfe5aa1c98201dc3b49e1165 ("boot/uboot: fix
> missing host-openssl for i.MX28 target"), we pass HOSTCFLAGS/HOSTLDFLAGS
> in the environment of U-Boot when building. This is needed to allow
> U-Boot to find the OpenSSL headers/libraries when they are
> needed. Unfortunately, this breaks the build with old U-Boot versions as
> the U-Boot Makefiles were not designed to have HOSTCFLAGS/HOSTLDFLAGS
> passed in, which causes some important CFLAGS from the U-Boot build
> system to be ignored.
> 
> To address this, we only pass HOSTCFLAGS/HOSTLDFLAGS when OpenSSL
> support is needed. We make the assumption that the OpenSSL requirement
> only exists in sufficiently recent U-Boot versions, for which passing
> HOSTCFLAGS/HOSTLDFLAGS work fine.
> 
> Reported-by: Carlos Santos <casantos@datacom.ind.br>
> Cc: Carlos Santos <casantos@datacom.ind.br>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> ---
> boot/uboot/uboot.mk | 14 +++++++++++++-
> 1 file changed, 13 insertions(+), 1 deletion(-)
> 
> diff --git a/boot/uboot/uboot.mk b/boot/uboot/uboot.mk
> index a2274ee..50d7045 100644
> --- a/boot/uboot/uboot.mk
> +++ b/boot/uboot/uboot.mk
> @@ -64,15 +64,18 @@ UBOOT_BIN = u-boot.sb
> UBOOT_MAKE_TARGET = $(UBOOT_BIN)
> # mxsimage needs OpenSSL
> UBOOT_DEPENDENCIES += host-elftosb host-openssl
> +UBOOT_NEEDS_OPENSSL = y

What about "UBOOT_NEEDS_HOST_OPENSSL", instead?

> else ifeq ($(BR2_TARGET_UBOOT_FORMAT_SD),y)
> # BootStream (.sb) is generated by U-Boot, we convert it to SD format
> UBOOT_BIN = u-boot.sd
> UBOOT_MAKE_TARGET = u-boot.sb
> UBOOT_DEPENDENCIES += host-elftosb host-openssl
> +UBOOT_NEEDS_OPENSSL = y
> else ifeq ($(BR2_TARGET_UBOOT_FORMAT_NAND),y)
> UBOOT_BIN = u-boot.nand
> UBOOT_MAKE_TARGET = u-boot.sb
> UBOOT_DEPENDENCIES += host-elftosb host-openssl
> +UBOOT_NEEDS_OPENSSL = y
> else ifeq ($(BR2_TARGET_UBOOT_FORMAT_CUSTOM),y)
> UBOOT_BIN = $(call qstrip,$(BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME))
> else
> @@ -92,9 +95,18 @@ endif
> 
> UBOOT_MAKE_OPTS += \
> CROSS_COMPILE="$(TARGET_CROSS)" \
> -	ARCH=$(UBOOT_ARCH) \
> +	ARCH=$(UBOOT_ARCH)

I'd still pass HOSTCC="$(HOSTCC)" here, too, to prevent future problems. It is detected as just "gcc" by U-Boot 2012.10 and as "cc" by U-Boot 2015.01.

> +
> +# Passing HOST_CFLAGS and HOST_LDFLAGS is only needed when we have
> +# host-openssl as a dependency. We could pass them unconditionally,
> +# but this causes build issues with old U-Boot versions. We assume
> +# that old U-Boot versions didn't had support for generating images
> +# that required OpenSSL.
> +ifeq ($(UBOOT_NEEDS_OPENSSL),y)
> +UBOOT_MAKE_OPTS += \
> 	HOSTCFLAGS="$(HOST_CFLAGS)" \
> 	HOSTLDFLAGS="$(HOST_LDFLAGS)"
> +endif
> 
> ifeq ($(BR2_TARGET_UBOOT_NEEDS_DTC),y)
> UBOOT_DEPENDENCIES += host-dtc
> --
> 2.7.4

Carlos Santos (Casantos)
DATACOM, P&D

  reply	other threads:[~2016-07-03 16:30 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-02  9:25 [Buildroot] [PATCH] uboot: fix build with old U-Boot versions Thomas Petazzoni
2016-07-03 16:30 ` Carlos Santos [this message]
2016-07-05 10:15 ` Thomas Petazzoni

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=301880781.7742692.1467563415744.JavaMail.zimbra@datacom.ind.br \
    --to=casantos@datacom.ind.br \
    --cc=buildroot@busybox.net \
    /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