All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH RESEND v2] boot/barebox: Fix building of internal scripts
@ 2023-08-01  5:08 Alexander Shiyan
  2023-08-01  7:18 ` Thomas Petazzoni via buildroot
  0 siblings, 1 reply; 3+ messages in thread
From: Alexander Shiyan @ 2023-08-01  5:08 UTC (permalink / raw)
  To: buildroot; +Cc: Alexander Shiyan

Some barebox targets need to use internal scripts, for example rockchip64
uses scripts/rkimage which requires the pkg-config package to look up the
openssl options. Because buildroot hides the host pkg-config tool, the
scripts cannot be built correctly.
To solve this problem, let's use the pkg-config host environment and add
BR2_TARGET_BAREBOX_NEEDS_OPENSSL and BR2_TARGET_BAREBOX_NEEDS_LIBUSB options
if barebox scripts should use the openssl or libusb host libraries.

  HOSTCC  scripts/rkimage
Package openssl was not found in the pkg-config search path.
Perhaps you should add the directory containing `openssl.pc'
to the PKG_CONFIG_PATH environment variable
Package 'openssl', required by 'virtual:world', not found
/usr/lib/gcc/x86_64-pc-linux-gnu/12/../../../../x86_64-pc-linux-gnu/bin/ld: /tmp/ccN8Xyaj.o: in function `main':
rkimage.c:(.text.startup+0x218): undefined reference to `SHA256_Init'
/usr/lib/gcc/x86_64-pc-linux-gnu/12/../../../../x86_64-pc-linux-gnu/bin/ld: rkimage.c:(.text.startup+0x22b): undefined reference to `SHA256_Update'
/usr/lib/gcc/x86_64-pc-linux-gnu/12/../../../../x86_64-pc-linux-gnu/bin/ld: rkimage.c:(.text.startup+0x23e): undefined reference to `SHA256_Final'
/usr/lib/gcc/x86_64-pc-linux-gnu/12/../../../../x86_64-pc-linux-gnu/bin/ld: rkimage.c:(.text.startup+0x253): undefined reference to `SHA256_Init'
/usr/lib/gcc/x86_64-pc-linux-gnu/12/../../../../x86_64-pc-linux-gnu/bin/ld: rkimage.c:(.text.startup+0x265): undefined reference to `SHA256_Update'
/usr/lib/gcc/x86_64-pc-linux-gnu/12/../../../../x86_64-pc-linux-gnu/bin/ld: rkimage.c:(.text.startup+0x275): undefined reference to `SHA256_Final'
collect2: error: ld returned 1 exit status
make[2]: *** [scripts/Makefile.host:107: scripts/rkimage] Error 1
make[1]: *** [Makefile:976: scripts] Error 2

Signed-off-by: Alexander Shiyan <eagle.alexander923@gmail.com>
---
 boot/barebox/Config.in  | 12 ++++++++++++
 boot/barebox/barebox.mk | 14 ++++++++++++++
 2 files changed, 26 insertions(+)

diff --git a/boot/barebox/Config.in b/boot/barebox/Config.in
index 3961c69c56..dba4a1a8d6 100644
--- a/boot/barebox/Config.in
+++ b/boot/barebox/Config.in
@@ -54,6 +54,18 @@ config BR2_TARGET_BAREBOX_CUSTOM_PATCH_DIR
 
 	  Most users may leave this empty
 
+config BR2_TARGET_BAREBOX_NEEDS_OPENSSL
+	bool "Barebox needs OpenSSL"
+	help
+	  Select this option if your Barebox board configuration
+	  requires OpenSSL to be available on the host.
+
+config BR2_TARGET_BAREBOX_NEEDS_LIBUSB
+	bool "Barebox needs LibUSB"
+	help
+	  Select this option if your Barebox board configuration
+	  requires libUSB to be available on the host.
+
 if BR2_TARGET_BAREBOX_CUSTOM_GIT
 
 config BR2_TARGET_BAREBOX_CUSTOM_GIT_REPO_URL
diff --git a/boot/barebox/barebox.mk b/boot/barebox/barebox.mk
index d7bcafe436..ead159a0f9 100644
--- a/boot/barebox/barebox.mk
+++ b/boot/barebox/barebox.mk
@@ -43,6 +43,14 @@ ifeq ($(BR2_TARGET_BAREBOX_LATEST_VERSION),y)
 $(1)_LICENSE_FILES = COPYING
 endif
 
+ifeq ($(BR2_TARGET_BAREBOX_NEEDS_OPENSSL),y)
+BAREBOX_DEPENDENCIES += host-openssl
+endif
+
+ifeq ($(BR2_TARGET_BAREBOX_NEEDS_LIBUSB),y)
+BAREBOX_DEPENDENCIES += host-libusb
+endif
+
 $(1)_CUSTOM_EMBEDDED_ENV_PATH = $$(call qstrip,$$(BR2_TARGET_$(1)_CUSTOM_EMBEDDED_ENV_PATH))
 
 ifneq ($$(call qstrip,$$(BR2_TARGET_BAREBOX_CUSTOM_PATCH_DIR)),)
@@ -73,6 +81,12 @@ endif
 
 $(1)_MAKE_FLAGS = ARCH=$$($(1)_ARCH) CROSS_COMPILE="$$(TARGET_CROSS)"
 $(1)_MAKE_ENV = $$(TARGET_MAKE_ENV)
+$(1)_MAKE_ENV += \
+	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"
 
 ifeq ($$(BR2_REPRODUCIBLE),y)
 $(1)_MAKE_ENV += \
-- 
2.39.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [Buildroot] [PATCH RESEND v2] boot/barebox: Fix building of internal scripts
  2023-08-01  5:08 [Buildroot] [PATCH RESEND v2] boot/barebox: Fix building of internal scripts Alexander Shiyan
@ 2023-08-01  7:18 ` Thomas Petazzoni via buildroot
  2023-08-01  7:23   ` Alexander Shiyan
  0 siblings, 1 reply; 3+ messages in thread
From: Thomas Petazzoni via buildroot @ 2023-08-01  7:18 UTC (permalink / raw)
  To: Alexander Shiyan; +Cc: buildroot

Hello Alexander,

Thanks for the resend, but why are you resending?

I have already applied your patch at
https://gitlab.com/buildroot.org/buildroot/-/commit/624d50b20cf4bf4a67ad6274263f85927660f8c4,
and I did reply to your PATCHv2 to say that it has been applied (mail
from July 28).

Is there something missing?

Best regards,

Thomas

On Tue,  1 Aug 2023 08:08:25 +0300
Alexander Shiyan <eagle.alexander923@gmail.com> wrote:

> Some barebox targets need to use internal scripts, for example rockchip64
> uses scripts/rkimage which requires the pkg-config package to look up the
> openssl options. Because buildroot hides the host pkg-config tool, the
> scripts cannot be built correctly.
> To solve this problem, let's use the pkg-config host environment and add
> BR2_TARGET_BAREBOX_NEEDS_OPENSSL and BR2_TARGET_BAREBOX_NEEDS_LIBUSB options
> if barebox scripts should use the openssl or libusb host libraries.
> 
>   HOSTCC  scripts/rkimage
> Package openssl was not found in the pkg-config search path.
> Perhaps you should add the directory containing `openssl.pc'
> to the PKG_CONFIG_PATH environment variable
> Package 'openssl', required by 'virtual:world', not found
> /usr/lib/gcc/x86_64-pc-linux-gnu/12/../../../../x86_64-pc-linux-gnu/bin/ld: /tmp/ccN8Xyaj.o: in function `main':
> rkimage.c:(.text.startup+0x218): undefined reference to `SHA256_Init'
> /usr/lib/gcc/x86_64-pc-linux-gnu/12/../../../../x86_64-pc-linux-gnu/bin/ld: rkimage.c:(.text.startup+0x22b): undefined reference to `SHA256_Update'
> /usr/lib/gcc/x86_64-pc-linux-gnu/12/../../../../x86_64-pc-linux-gnu/bin/ld: rkimage.c:(.text.startup+0x23e): undefined reference to `SHA256_Final'
> /usr/lib/gcc/x86_64-pc-linux-gnu/12/../../../../x86_64-pc-linux-gnu/bin/ld: rkimage.c:(.text.startup+0x253): undefined reference to `SHA256_Init'
> /usr/lib/gcc/x86_64-pc-linux-gnu/12/../../../../x86_64-pc-linux-gnu/bin/ld: rkimage.c:(.text.startup+0x265): undefined reference to `SHA256_Update'
> /usr/lib/gcc/x86_64-pc-linux-gnu/12/../../../../x86_64-pc-linux-gnu/bin/ld: rkimage.c:(.text.startup+0x275): undefined reference to `SHA256_Final'
> collect2: error: ld returned 1 exit status
> make[2]: *** [scripts/Makefile.host:107: scripts/rkimage] Error 1
> make[1]: *** [Makefile:976: scripts] Error 2
> 
> Signed-off-by: Alexander Shiyan <eagle.alexander923@gmail.com>
> ---
>  boot/barebox/Config.in  | 12 ++++++++++++
>  boot/barebox/barebox.mk | 14 ++++++++++++++
>  2 files changed, 26 insertions(+)
> 
> diff --git a/boot/barebox/Config.in b/boot/barebox/Config.in
> index 3961c69c56..dba4a1a8d6 100644
> --- a/boot/barebox/Config.in
> +++ b/boot/barebox/Config.in
> @@ -54,6 +54,18 @@ config BR2_TARGET_BAREBOX_CUSTOM_PATCH_DIR
>  
>  	  Most users may leave this empty
>  
> +config BR2_TARGET_BAREBOX_NEEDS_OPENSSL
> +	bool "Barebox needs OpenSSL"
> +	help
> +	  Select this option if your Barebox board configuration
> +	  requires OpenSSL to be available on the host.
> +
> +config BR2_TARGET_BAREBOX_NEEDS_LIBUSB
> +	bool "Barebox needs LibUSB"
> +	help
> +	  Select this option if your Barebox board configuration
> +	  requires libUSB to be available on the host.
> +
>  if BR2_TARGET_BAREBOX_CUSTOM_GIT
>  
>  config BR2_TARGET_BAREBOX_CUSTOM_GIT_REPO_URL
> diff --git a/boot/barebox/barebox.mk b/boot/barebox/barebox.mk
> index d7bcafe436..ead159a0f9 100644
> --- a/boot/barebox/barebox.mk
> +++ b/boot/barebox/barebox.mk
> @@ -43,6 +43,14 @@ ifeq ($(BR2_TARGET_BAREBOX_LATEST_VERSION),y)
>  $(1)_LICENSE_FILES = COPYING
>  endif
>  
> +ifeq ($(BR2_TARGET_BAREBOX_NEEDS_OPENSSL),y)
> +BAREBOX_DEPENDENCIES += host-openssl
> +endif
> +
> +ifeq ($(BR2_TARGET_BAREBOX_NEEDS_LIBUSB),y)
> +BAREBOX_DEPENDENCIES += host-libusb
> +endif
> +
>  $(1)_CUSTOM_EMBEDDED_ENV_PATH = $$(call qstrip,$$(BR2_TARGET_$(1)_CUSTOM_EMBEDDED_ENV_PATH))
>  
>  ifneq ($$(call qstrip,$$(BR2_TARGET_BAREBOX_CUSTOM_PATCH_DIR)),)
> @@ -73,6 +81,12 @@ endif
>  
>  $(1)_MAKE_FLAGS = ARCH=$$($(1)_ARCH) CROSS_COMPILE="$$(TARGET_CROSS)"
>  $(1)_MAKE_ENV = $$(TARGET_MAKE_ENV)
> +$(1)_MAKE_ENV += \
> +	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"
>  
>  ifeq ($$(BR2_REPRODUCIBLE),y)
>  $(1)_MAKE_ENV += \



-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Buildroot] [PATCH RESEND v2] boot/barebox: Fix building of internal scripts
  2023-08-01  7:18 ` Thomas Petazzoni via buildroot
@ 2023-08-01  7:23   ` Alexander Shiyan
  0 siblings, 0 replies; 3+ messages in thread
From: Alexander Shiyan @ 2023-08-01  7:23 UTC (permalink / raw)
  To: Thomas Petazzoni; +Cc: buildroot

Hello.

> Thanks for the resend, but why are you resending?
> I have already applied your patch at
> https://gitlab.com/buildroot.org/buildroot/-/commit/624d50b20cf4bf4a67ad6274263f85927660f8c4,
> and I did reply to your PATCHv2 to say that it has been applied (mail
> from July 28).
> Is there something missing?

Apparently I missed the letter.
Thank you!
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2023-08-01  7:24 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-08-01  5:08 [Buildroot] [PATCH RESEND v2] boot/barebox: Fix building of internal scripts Alexander Shiyan
2023-08-01  7:18 ` Thomas Petazzoni via buildroot
2023-08-01  7:23   ` Alexander Shiyan

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.