* [Buildroot] [PATCH] boot/uboot: fix uboot build
@ 2021-02-04 17:04 Kory Maincent
2021-03-16 22:08 ` Thomas Petazzoni
0 siblings, 1 reply; 6+ messages in thread
From: Kory Maincent @ 2021-02-04 17:04 UTC (permalink / raw)
To: buildroot
The make all command run the tools/makefile on the process.
This makefile use "pkg-config" command to support static link.
The issue is the use of pkg-config configured for crosscompiling
to build binaries tools for host architecture.
To fix it, I copied the behavior of QtWebengine by using a pkg-config
executable preconfigured for host.
Signed-off-by: Kory Maincent <kory.maincent@bootlin.com>
---
boot/uboot/host-pkg-config.in | 6 ++++++
boot/uboot/uboot.mk | 10 +++++++++-
2 files changed, 15 insertions(+), 1 deletion(-)
create mode 100644 boot/uboot/host-pkg-config.in
diff --git a/boot/uboot/host-pkg-config.in b/boot/uboot/host-pkg-config.in
new file mode 100644
index 0000000000..86a980648b
--- /dev/null
+++ b/boot/uboot/host-pkg-config.in
@@ -0,0 +1,6 @@
+#!/bin/sh
+PKG_CONFIG_SYSROOT_DIR="/" \
+PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 \
+PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 \
+PKG_CONFIG_LIBDIR="@HOST_DIR@/lib/pkgconfig:@HOST_DIR@/share/pkgconfig" \
+exec @HOST_DIR@/bin/pkgconf "$@"
diff --git a/boot/uboot/uboot.mk b/boot/uboot/uboot.mk
index 2478a2a1e9..0bcc1ac9a9 100644
--- a/boot/uboot/uboot.mk
+++ b/boot/uboot/uboot.mk
@@ -302,11 +302,19 @@ endif # BR2_TARGET_UBOOT_BUILD_SYSTEM_LEGACY
UBOOT_CUSTOM_DTS_PATH = $(call qstrip,$(BR2_TARGET_UBOOT_CUSTOM_DTS_PATH))
+define UBOOT_CREATE_HOST_PKG_CONFIG
+ mkdir -p $(@D)/host-bin
+ sed s%@HOST_DIR@%$(HOST_DIR)%g $(UBOOT_PKGDIR)/host-pkg-config.in > $(@D)/host-bin/pkg-config
+ chmod +x $(@D)/host-bin/pkg-config
+endef
+UBOOT_PRE_CONFIGURE_HOOKS = UBOOT_CREATE_HOST_PKG_CONFIG
+UBOOT_ENV = PATH=$(@D)/host-bin:$(BR_PATH)
+
define UBOOT_BUILD_CMDS
$(if $(UBOOT_CUSTOM_DTS_PATH),
cp -f $(UBOOT_CUSTOM_DTS_PATH) $(@D)/arch/$(UBOOT_ARCH)/dts/
)
- $(TARGET_CONFIGURE_OPTS) \
+ $(TARGET_CONFIGURE_OPTS) $(UBOOT_ENV) \
$(UBOOT_MAKE) -C $(@D) $(UBOOT_MAKE_OPTS) \
$(UBOOT_MAKE_TARGET)
$(if $(BR2_TARGET_UBOOT_FORMAT_SD),
--
2.17.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH] boot/uboot: fix uboot build
2021-02-04 17:04 [Buildroot] [PATCH] boot/uboot: fix uboot build Kory Maincent
@ 2021-03-16 22:08 ` Thomas Petazzoni
2021-03-25 16:34 ` Köry Maincent
0 siblings, 1 reply; 6+ messages in thread
From: Thomas Petazzoni @ 2021-03-16 22:08 UTC (permalink / raw)
To: buildroot
Hello Kory,
On Thu, 4 Feb 2021 18:04:46 +0100
Kory Maincent <kory.maincent@bootlin.com> wrote:
> The make all command run the tools/makefile on the process.
> This makefile use "pkg-config" command to support static link.
> The issue is the use of pkg-config configured for crosscompiling
> to build binaries tools for host architecture.
> To fix it, I copied the behavior of QtWebengine by using a pkg-config
> executable preconfigured for host.
>
> Signed-off-by: Kory Maincent <kory.maincent@bootlin.com>
Thanks for the patch. It would require a better commit title though, as
"fix uboot build" is very vague.
> diff --git a/boot/uboot/host-pkg-config.in b/boot/uboot/host-pkg-config.in
> new file mode 100644
> index 0000000000..86a980648b
> --- /dev/null
> +++ b/boot/uboot/host-pkg-config.in
> @@ -0,0 +1,6 @@
> +#!/bin/sh
> +PKG_CONFIG_SYSROOT_DIR="/" \
> +PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 \
> +PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 \
> +PKG_CONFIG_LIBDIR="@HOST_DIR@/lib/pkgconfig:@HOST_DIR@/share/pkgconfig" \
> +exec @HOST_DIR@/bin/pkgconf "$@"
> diff --git a/boot/uboot/uboot.mk b/boot/uboot/uboot.mk
> index 2478a2a1e9..0bcc1ac9a9 100644
> --- a/boot/uboot/uboot.mk
> +++ b/boot/uboot/uboot.mk
> @@ -302,11 +302,19 @@ endif # BR2_TARGET_UBOOT_BUILD_SYSTEM_LEGACY
>
> UBOOT_CUSTOM_DTS_PATH = $(call qstrip,$(BR2_TARGET_UBOOT_CUSTOM_DTS_PATH))
>
> +define UBOOT_CREATE_HOST_PKG_CONFIG
> + mkdir -p $(@D)/host-bin
> + sed s%@HOST_DIR@%$(HOST_DIR)%g $(UBOOT_PKGDIR)/host-pkg-config.in > $(@D)/host-bin/pkg-config
> + chmod +x $(@D)/host-bin/pkg-config
> +endef
> +UBOOT_PRE_CONFIGURE_HOOKS = UBOOT_CREATE_HOST_PKG_CONFIG
> +UBOOT_ENV = PATH=$(@D)/host-bin:$(BR_PATH)
> +
> define UBOOT_BUILD_CMDS
> $(if $(UBOOT_CUSTOM_DTS_PATH),
> cp -f $(UBOOT_CUSTOM_DTS_PATH) $(@D)/arch/$(UBOOT_ARCH)/dts/
> )
> - $(TARGET_CONFIGURE_OPTS) \
> + $(TARGET_CONFIGURE_OPTS) $(UBOOT_ENV) \
After discussing with Yann E. Morin on IRC, could you try this change
instead:
$(TARGET_CONFIGURE_OPTS) \
PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \
PKG_CONFIG_SYSROOT_DIR="/" \
PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 \
PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 \
PKG_CONFIG_LIBDIR="$(HOST_DIR)/lib/pkgconfig:$(HOST_DIR)/share/pkgconfig"
The reasoning is that U-Boot anyway only uses pkg-config for host
tools, so we could just as well pass those environment variables when
building U-Boot.
Could you try this out?
Also, do you have a Buildroot .config to reproduce the issue? Perhaps
it would be nice to have a test case in our runtime test infrastructure.
Thanks!
Thomas
--
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH] boot/uboot: fix uboot build
2021-03-16 22:08 ` Thomas Petazzoni
@ 2021-03-25 16:34 ` Köry Maincent
2021-03-25 16:36 ` Thomas Petazzoni
2021-06-28 20:26 ` Yann E. MORIN
0 siblings, 2 replies; 6+ messages in thread
From: Köry Maincent @ 2021-03-25 16:34 UTC (permalink / raw)
To: buildroot
Hello Thomas,
On Tue, 16 Mar 2021 23:08:52 +0100
Thomas Petazzoni <thomas.petazzoni@bootlin.com> wrote:
> Hello Kory,
>
> On Thu, 4 Feb 2021 18:04:46 +0100
> Kory Maincent <kory.maincent@bootlin.com> wrote:
>
> > The make all command run the tools/makefile on the process.
> > This makefile use "pkg-config" command to support static link.
> > The issue is the use of pkg-config configured for crosscompiling
> > to build binaries tools for host architecture.
> > To fix it, I copied the behavior of QtWebengine by using a pkg-config
> > executable preconfigured for host.
> >
> > Signed-off-by: Kory Maincent <kory.maincent@bootlin.com>
>
> Thanks for the patch. It would require a better commit title though, as
> "fix uboot build" is very vague.
Ok I will change it for v2.
> After discussing with Yann E. Morin on IRC, could you try this change
> instead:
>
> $(TARGET_CONFIGURE_OPTS) \
> PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \
> PKG_CONFIG_SYSROOT_DIR="/" \
> PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 \
> PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 \
> PKG_CONFIG_LIBDIR="$(HOST_DIR)/lib/pkgconfig:$(HOST_DIR)/share/pkgconfig"
>
> The reasoning is that U-Boot anyway only uses pkg-config for host
> tools, so we could just as well pass those environment variables when
> building U-Boot.
>
> Could you try this out?
This change works well, the build of U-boot ends properly.
>
> Also, do you have a Buildroot .config to reproduce the issue? Perhaps
> it would be nice to have a test case in our runtime test infrastructure.
You can find the defconfig that break the U-boot build in attachment.
Regards,
K?ry
-------------- next part --------------
A non-text attachment was scrubbed...
Name: new_defconfig
Type: application/octet-stream
Size: 215 bytes
Desc: not available
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20210325/569035d6/attachment.obj>
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH] boot/uboot: fix uboot build
2021-03-25 16:34 ` Köry Maincent
@ 2021-03-25 16:36 ` Thomas Petazzoni
2021-06-28 20:26 ` Yann E. MORIN
1 sibling, 0 replies; 6+ messages in thread
From: Thomas Petazzoni @ 2021-03-25 16:36 UTC (permalink / raw)
To: buildroot
On Thu, 25 Mar 2021 17:34:59 +0100
K?ry Maincent <kory.maincent@bootlin.com> wrote:
> > After discussing with Yann E. Morin on IRC, could you try this change
> > instead:
> >
> > $(TARGET_CONFIGURE_OPTS) \
> > PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \
> > PKG_CONFIG_SYSROOT_DIR="/" \
> > PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 \
> > PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 \
> > PKG_CONFIG_LIBDIR="$(HOST_DIR)/lib/pkgconfig:$(HOST_DIR)/share/pkgconfig"
> >
> > The reasoning is that U-Boot anyway only uses pkg-config for host
> > tools, so we could just as well pass those environment variables when
> > building U-Boot.
> >
> > Could you try this out?
>
> This change works well, the build of U-boot ends properly.
Excellent, thanks!
> You can find the defconfig that break the U-boot build in attachment.
Perhaps it would be good to capture this defconfig as a test in
support/testing/, so we can make sure this doesn't regress?
Thomas
--
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH] boot/uboot: fix uboot build
2021-03-25 16:34 ` Köry Maincent
2021-03-25 16:36 ` Thomas Petazzoni
@ 2021-06-28 20:26 ` Yann E. MORIN
2021-06-29 12:47 ` Köry Maincent
1 sibling, 1 reply; 6+ messages in thread
From: Yann E. MORIN @ 2021-06-28 20:26 UTC (permalink / raw)
To: buildroot
K?ry, All,
On 2021-03-25 17:34 +0100, K?ry Maincent spake thusly:
> On Tue, 16 Mar 2021 23:08:52 +0100
> Thomas Petazzoni <thomas.petazzoni@bootlin.com> wrote:
> > On Thu, 4 Feb 2021 18:04:46 +0100
> > Kory Maincent <kory.maincent@bootlin.com> wrote:
> > > The make all command run the tools/makefile on the process.
> > > This makefile use "pkg-config" command to support static link.
> > > The issue is the use of pkg-config configured for crosscompiling
> > > to build binaries tools for host architecture.
> > > To fix it, I copied the behavior of QtWebengine by using a pkg-config
> > > executable preconfigured for host.
> > >
> > > Signed-off-by: Kory Maincent <kory.maincent@bootlin.com>
> > Thanks for the patch. It would require a better commit title though, as
> > "fix uboot build" is very vague.
> Ok I will change it for v2.
> > After discussing with Yann E. Morin on IRC, could you try this change
> > instead:
> >
> > $(TARGET_CONFIGURE_OPTS) \
> > PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \
> > PKG_CONFIG_SYSROOT_DIR="/" \
> > PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 \
> > PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 \
> > PKG_CONFIG_LIBDIR="$(HOST_DIR)/lib/pkgconfig:$(HOST_DIR)/share/pkgconfig"
> >
> > The reasoning is that U-Boot anyway only uses pkg-config for host
> > tools, so we could just as well pass those environment variables when
> > building U-Boot.
> >
> > Could you try this out?
>
> This change works well, the build of U-boot ends properly.
I don't seem to have seen a v2 of this patch. Do you plan on sending it
soonish? ;-)
Thanks!
Regards,
Yann E. MORIN.
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH] boot/uboot: fix uboot build
2021-06-28 20:26 ` Yann E. MORIN
@ 2021-06-29 12:47 ` Köry Maincent
0 siblings, 0 replies; 6+ messages in thread
From: Köry Maincent @ 2021-06-29 12:47 UTC (permalink / raw)
To: buildroot
Hello Yann,
On Mon, 28 Jun 2021 22:26:56 +0200
"Yann E. MORIN" <yann.morin.1998@free.fr> wrote:
> K?ry, All,
>
> On 2021-03-25 17:34 +0100, K?ry Maincent spake thusly:
> > On Tue, 16 Mar 2021 23:08:52 +0100
> > Thomas Petazzoni <thomas.petazzoni@bootlin.com> wrote:
> > > On Thu, 4 Feb 2021 18:04:46 +0100
> > > Kory Maincent <kory.maincent@bootlin.com> wrote:
> > > > The make all command run the tools/makefile on the process.
> > > > This makefile use "pkg-config" command to support static link.
> > > > The issue is the use of pkg-config configured for crosscompiling
> > > > to build binaries tools for host architecture.
> > > > To fix it, I copied the behavior of QtWebengine by using a pkg-config
> > > > executable preconfigured for host.
> > > >
> > > > Signed-off-by: Kory Maincent <kory.maincent@bootlin.com>
> > > Thanks for the patch. It would require a better commit title though, as
> > > "fix uboot build" is very vague.
> > Ok I will change it for v2.
>
> > > After discussing with Yann E. Morin on IRC, could you try this change
> > > instead:
> > >
> > > $(TARGET_CONFIGURE_OPTS) \
> > > PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \
> > > PKG_CONFIG_SYSROOT_DIR="/" \
> > > PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 \
> > > PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 \
> > > PKG_CONFIG_LIBDIR="$(HOST_DIR)/lib/pkgconfig:$(HOST_DIR)/share/pkgconfig"
> > >
> > > The reasoning is that U-Boot anyway only uses pkg-config for host
> > > tools, so we could just as well pass those environment variables when
> > > building U-Boot.
> > >
> > > Could you try this out?
> >
> > This change works well, the build of U-boot ends properly.
>
> I don't seem to have seen a v2 of this patch. Do you plan on sending it
> soonish? ;-)
Sorry, I put it aside for a time.
I need to finish the test case asked by Thomas, I will try to find time to do
it soon.
Regards
K?ry
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2021-06-29 12:47 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-04 17:04 [Buildroot] [PATCH] boot/uboot: fix uboot build Kory Maincent
2021-03-16 22:08 ` Thomas Petazzoni
2021-03-25 16:34 ` Köry Maincent
2021-03-25 16:36 ` Thomas Petazzoni
2021-06-28 20:26 ` Yann E. MORIN
2021-06-29 12:47 ` Köry Maincent
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.