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
next prev parent 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.