boot/uboot: fix uboot building host tools on x86 architecture
authorKory Maincent <kory.maincent@bootlin.com>
Wed, 30 Jun 2021 09:02:47 +0000 (11:02 +0200)
committerYann E. MORIN <yann.morin.1998@free.fr>
Wed, 30 Jun 2021 20:45:18 +0000 (22:45 +0200)
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>
[yann.morin.1998@free.fr:
  - fix mixed space-TAB indentation
  - fix check-package
]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
boot/uboot/uboot.mk
support/testing/tests/package/test_uboot_openssl_pkgconfig.py [new file with mode: 0644]

index dbe82e65b17e6c080c4d7ab61d3d67ebf49a09be..a7eaedb06ff6983c5e00f288c7921e3f873a9da9 100644 (file)
@@ -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 (file)
index 0000000..de2d83f
--- /dev/null
@@ -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))