Message ID | 20210630090247.1035893-1-kory.maincent@bootlin.com |
---|---|
State | Accepted |
Headers | show |
Series | [v2] boot/uboot: fix uboot building host tools on x86 architecture | expand |
Köry, All, On 2021-06-30 11:02 +0200, Kory Maincent spake thusly: > 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 add pkg-config environment variable to configure it for host. > > Add a test to avoid future regress on the build of U-boot. > > Signed-off-by: Kory Maincent <kory.maincent@bootlin.com> > --- > boot/uboot/uboot.mk | 5 +++++ > .../package/test_uboot_openssl_pkgconfig.py | 20 +++++++++++++++++++ > 2 files changed, 25 insertions(+) > create mode 100644 support/testing/tests/package/test_uboot_openssl_pkgconfig.py > > diff --git a/boot/uboot/uboot.mk b/boot/uboot/uboot.mk > index dbe82e65b1..5186e6071e 100644 > --- a/boot/uboot/uboot.mk > +++ b/boot/uboot/uboot.mk > @@ -307,6 +307,11 @@ define UBOOT_BUILD_CMDS > cp -f $(UBOOT_CUSTOM_DTS_PATH) $(@D)/arch/$(UBOOT_ARCH)/dts/ > ) > $(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" \ Mixed TABs-n-spaces indentation, I've fixed that when applying. Weird that 'make check-package' did not catch it... > $(UBOOT_MAKE) -C $(@D) $(UBOOT_MAKE_OPTS) \ > $(UBOOT_MAKE_TARGET) > $(if $(BR2_TARGET_UBOOT_FORMAT_SD), > diff --git a/support/testing/tests/package/test_uboot_openssl_pkgconfig.py b/support/testing/tests/package/test_uboot_openssl_pkgconfig.py > new file mode 100644 > index 0000000000..557b665b26 > --- /dev/null > +++ b/support/testing/tests/package/test_uboot_openssl_pkgconfig.py > @@ -0,0 +1,20 @@ > +import os > + > +import infra.basetest > + > + > +class TestUbootOpensslPkgConfig(infra.basetest.BRTest): > + config = infra.basetest.MINIMAL_CONFIG + \ > + """ > + BR2_x86_64=y > + BR2_x86_atom=y > + BR2_PACKAGE_OPENSSL=y > + BR2_TARGET_UBOOT=y > + BR2_TARGET_UBOOT_BOARD_DEFCONFIG="efi-x86_payload64" > + BR2_TARGET_UBOOT_NEEDS_OPENSSL=y > + BR2_PACKAGE_HOST_PKGCONF=y > + """ > + def test_run(self): > + img = os.path.join(self.builddir, "images", "u-boot.bin") > + self.assertTrue(os.path.exists(img)) > + $ make check-package support/testing/tests/package/test_uboot_openssl_pkgconfig.py:17:5: E301 expected 1 blank line, found 0 support/testing/tests/package/test_uboot_openssl_pkgconfig.py:20:1: W391 blank line at end of file 1 E301 expected 1 blank line, found 0 1 W391 blank line at end of file I've also fixed those, and applied to master, thanks. Regards, Yann E. MORIN. > -- > 2.25.1 > > _______________________________________________ > buildroot mailing list > buildroot@busybox.net > http://lists.busybox.net/mailman/listinfo/buildroot
>>>>> "Yann" == Yann E MORIN <yann.morin.1998@free.fr> writes: > Köry, All, > On 2021-06-30 11:02 +0200, Kory Maincent spake thusly: >> 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 add pkg-config environment variable to configure it for host. >> >> Add a test to avoid future regress on the build of U-boot. >> >> Signed-off-by: Kory Maincent <kory.maincent@bootlin.com> >> --- >> boot/uboot/uboot.mk | 5 +++++ >> .../package/test_uboot_openssl_pkgconfig.py | 20 +++++++++++++++++++ >> 2 files changed, 25 insertions(+) >> create mode 100644 support/testing/tests/package/test_uboot_openssl_pkgconfig.py >> >> diff --git a/boot/uboot/uboot.mk b/boot/uboot/uboot.mk >> index dbe82e65b1..5186e6071e 100644 >> --- a/boot/uboot/uboot.mk >> +++ b/boot/uboot/uboot.mk >> @@ -307,6 +307,11 @@ define UBOOT_BUILD_CMDS >> cp -f $(UBOOT_CUSTOM_DTS_PATH) $(@D)/arch/$(UBOOT_ARCH)/dts/ >> ) >> $(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" \ > Mixed TABs-n-spaces indentation, I've fixed that when applying. Hmm, shouldn't we then add host-pkgconf to UBOOT_DEPENDENCIES so things are not broken when it isn't available? >> +class TestUbootOpensslPkgConfig(infra.basetest.BRTest): >> + config = infra.basetest.MINIMAL_CONFIG + \ >> + """ >> + BR2_x86_64=y >> + BR2_x86_atom=y >> + BR2_PACKAGE_OPENSSL=y >> + BR2_TARGET_UBOOT=y >> + BR2_TARGET_UBOOT_BOARD_DEFCONFIG="efi-x86_payload64" >> + BR2_TARGET_UBOOT_NEEDS_OPENSSL=y >> + BR2_PACKAGE_HOST_PKGCONF=y And then drop it from here?
>>>>> "Kory" == Kory Maincent <kory.maincent@bootlin.com> writes: > 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 add pkg-config environment variable to configure it for host. > Add a test to avoid future regress on the build of U-boot. > Signed-off-by: Kory Maincent <kory.maincent@bootlin.com> Committed to 2021.02.x and 2021.05.x, thanks.
diff --git a/boot/uboot/uboot.mk b/boot/uboot/uboot.mk index dbe82e65b1..5186e6071e 100644 --- a/boot/uboot/uboot.mk +++ b/boot/uboot/uboot.mk @@ -307,6 +307,11 @@ define UBOOT_BUILD_CMDS cp -f $(UBOOT_CUSTOM_DTS_PATH) $(@D)/arch/$(UBOOT_ARCH)/dts/ ) $(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" \ $(UBOOT_MAKE) -C $(@D) $(UBOOT_MAKE_OPTS) \ $(UBOOT_MAKE_TARGET) $(if $(BR2_TARGET_UBOOT_FORMAT_SD), diff --git a/support/testing/tests/package/test_uboot_openssl_pkgconfig.py b/support/testing/tests/package/test_uboot_openssl_pkgconfig.py new file mode 100644 index 0000000000..557b665b26 --- /dev/null +++ b/support/testing/tests/package/test_uboot_openssl_pkgconfig.py @@ -0,0 +1,20 @@ +import os + +import infra.basetest + + +class TestUbootOpensslPkgConfig(infra.basetest.BRTest): + config = infra.basetest.MINIMAL_CONFIG + \ + """ + BR2_x86_64=y + BR2_x86_atom=y + BR2_PACKAGE_OPENSSL=y + BR2_TARGET_UBOOT=y + BR2_TARGET_UBOOT_BOARD_DEFCONFIG="efi-x86_payload64" + BR2_TARGET_UBOOT_NEEDS_OPENSSL=y + BR2_PACKAGE_HOST_PKGCONF=y + """ + def test_run(self): + img = os.path.join(self.builddir, "images", "u-boot.bin") + self.assertTrue(os.path.exists(img)) +
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 add pkg-config environment variable to configure it for host. Add a test to avoid future regress on the build of U-boot. Signed-off-by: Kory Maincent <kory.maincent@bootlin.com> --- boot/uboot/uboot.mk | 5 +++++ .../package/test_uboot_openssl_pkgconfig.py | 20 +++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 support/testing/tests/package/test_uboot_openssl_pkgconfig.py