mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
From: Alexander Dahl <ada@thorsis.com>
To: ptxdist@pengutronix.de
Cc: Alexander Dahl <post@lespocky.de>
Subject: Re: [ptxdist] Build U-Boot against host-openssl fails
Date: Tue, 26 Jul 2022 09:43:09 +0200	[thread overview]
Message-ID: <4722212.1oGcgTFBSJ@ada> (raw)
In-Reply-To: <Yt7qb9h78tS+Kx7n@falbala.internal.home.lespocky.de>

Good morning,

Am Montag, 25. Juli 2022, 21:09:35 CEST schrieb Alexander Dahl:
> Hello Michael,
> 
> Am Mon, Jul 25, 2022 at 05:36:57PM +0200 schrieb Michael Olbrich:
> > On Mon, Jul 25, 2022 at 04:41:45PM +0200, Alexander Dahl wrote:
> > > Hei hei,
> > > 
> > > although claiming it's optional latest U-Boot versions require OpenSSL
> > > on the host.¹  I added an option to build host-openssl with commit
> > > 0c779a60e50c40d522b1e9c20b5c75b2e57fde5a ("u-boot: Add option to depend
> > > on
> > > host-openssl") but ptxdist u-boot package still fails to link to host
> > > openssl package, message is always missing some openssl symbols.
> > > 
> > > I tried the same thing as barebox now in rules/u-boot.make like this:
> > > 
> > > +# use host pkg-config for host tools
> > > +U_BOOT_PATH        := PATH=$(HOST_PATH)
> > > 
> > > This does not help.
> > > 
> > > I'm somehow suspecting the wrong pkg-config is called.  Affected is not
> > > the
> > > target image, but the host tools (like mkimage) built alongside with the
> > > target stuff (which you 1) can not disable to build and 2) need for
> > > certain
> > > parts of the ptxdist package anyways, so not building those is no
> > > option).
> > > 
> > > I tried each combination of PTXCONF_U_BOOT_NEEDS_HOST_OPENSSL and
> > > CONFIG_TOOLS_LIBCRYPTO in U-Boot kconfig, all fail.
> > > 
> > > buildroot has a fix for building against host-openssl, but I don't
> > > understand it, and I'm not sure if the same approach would work in
> > > ptxdist.
> > > 
> > > Any ideas?
> > > 
> > > (Disclaimer: this only happens on a quite recent U-Boot, e.g. from
> > > 2022.)
> > > (More disclaimer: it does not happen if libssl-dev is installed on the
> > > build host.)
> > 
> > This sounds like u-boot is calling /usr/bin/pkg-config instead of
> > .../sysroot-host/bin/pkg-config (and not the cross pkg-config either).
> > 
> > Maybe /usr/bin/pkg-config is called explicitly with the whole path
> > somewhere? That could be a "feature" to avoid the cross pkg-config when
> > cross-compiling.
> 
> Sorry, I wanted to paste the actual part from tools/Makefile (u-boot
> source) and this is it:
> 
> 174 # MXSImage needs LibSSL
> 175 ifneq
> ($(CONFIG_MX23)$(CONFIG_MX28)$(CONFIG_ARMADA_38X)$(CONFIG_TOOLS_LIBCRYPTO),
> ) 176 HOSTCFLAGS_kwbimage.o += \
> 177     $(shell pkg-config --cflags libssl libcrypto 2> /dev/null || echo
> "") 178 HOSTLDLIBS_mkimage += \
> 179     $(shell pkg-config --libs libssl libcrypto 2> /dev/null || echo
> "-lssl -lcrypto") 180
> 181 # OS X deprecate openssl in favour of CommonCrypto, supress deprecation
> 182 # warnings on those systems
> 183 ifeq ($(HOSTOS),darwin)
> 184 HOSTCFLAGS_mxsimage.o += -Wno-deprecated-declarations
> 185 HOSTCFLAGS_image-sig.o += -Wno-deprecated-declarations
> 186 HOSTCFLAGS_rsa-sign.o += -Wno-deprecated-declarations
> 187 endif
> 188 endif
> 
> I'm not sure how I can verify what's actually called here?

Added this line in U-Boot source tools/Makefile to see what's going on: 

  $(info HOSTLDLIBS_mkimage is $(HOSTLDLIBS_mkimage))

(directly after that is assigned)

Output is:

  HOSTLDLIBS_mkimage is -lssl -lcrypto 

> Just had another look at what buildroot does.  Seems like
> host-pkg-config is required, IIRC that was not used by ptxdist.  Not
> sure how I can let ptxdist use host pkg-config, but I hope I'll find
> out tomorrow.

Yeah well, it was late yesterday, what the barebox package does is setting 
<PKG>_PATH and I tried that already (as written before). So I tried calling 
pkg-config with that path the same way the U-Boot Makefile does (redacted):


% p print U_BOOT_PATH
PATH=/home/adahl/Work/bsp/***/***/platform-***/sysroot-host/bin:/home/adahl/
Work/bsp/***/***/platform-***/sysroot-host/sbin:/opt/
OSELAS.Toolchain-2018.02.0/arm-v7a-linux-gnueabihf/gcc-7.3.1-glibc-2.27-
binutils-2.30-kernel-4.15-sanitized/bin:/usr/local/lib/ptxdist-2018.05.0/bin:/
home/adahl/Work/bsp/***/***/platform-***/sysroot-host/bin:/home/adahl/Work/
bsp/***/***/platform-***/sysroot-host/sbin:/opt/OSELAS.Toolchain-2018.02.0/
arm-v7a-linux-gnueabihf/gcc-7.3.1-glibc-2.27-binutils-2.30-kernel-4.15-
sanitized/bin:/usr/local/lib/ptxdist-2022.05.0/bin:/home/adahl/bin:/home/
adahl/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

% PATH=/home/adahl/Work/bsp/***/***/platform-***/sysroot-host/bin:/home/adahl/
Work/bsp/***/***/platform-***/sysroot-host/sbin:/opt/
OSELAS.Toolchain-2018.02.0/arm-v7a-linux-gnueabihf/gcc-7.3.1-glibc-2.27-
binutils-2.30-kernel-4.15-sanitized/bin:/usr/local/lib/ptxdist-2018.05.0/bin:/
home/adahl/Work/bsp/***/***/platform-***/sysroot-host/bin:/home/adahl/Work/
bsp/***/***/platform-***/sysroot-host/sbin:/opt/OSELAS.Toolchain-2018.02.0/
arm-v7a-linux-gnueabihf/gcc-7.3.1-glibc-2.27-binutils-2.30-kernel-4.15-
sanitized/bin:/usr/local/lib/ptxdist-2022.05.0/bin:/home/adahl/bin:/home/
adahl/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games pkg-
config --libs libssl libcrypto
-L/home/adahl/Work/bsp/***/***/platform-***/sysroot-host/lib/pkgconfig/../..//
lib -lssl -lcrypto 


Okay this seems to call some pkg-config which gives the right path (see the -L 
output) but U-Boot does not produce that output as you can see above. 

When calling ptxdist (verbose) the path seems to be slightly different 
however:

% p -v -j1 compile u-boot

----------------------
target: u-boot.compile
----------------------

ptxdist: executing: PATH=\/home/adahl/Work/bsp/***/***/platform-***/sysroot-
host/lib/wrapper:/home/adahl/Work/bsp/***/***/platform-***/sysroot-host/bin:/
home/adahl/Work/bsp/***/***/platform-***/sysroot-host/sbin:/opt/
OSELAS.Toolchain-2018.02.0/arm-v7a-linux-gnueabihf/gcc-7.3.1-glibc-2.27-
binutils-2.30-kernel-4.15-sanitized/bin:/usr/local/lib/ptxdist-2018.05.0/bin:/
home/adahl/Work/bsp/***/***/platform-***/sysroot-host/bin:/home/adahl/Work/
bsp/***/***/platform-***/sysroot-host/sbin:/opt/OSELAS.Toolchain-2018.02.0/
arm-v7a-linux-gnueabihf/gcc-7.3.1-glibc-2.27-binutils-2.30-kernel-4.15-
sanitized/bin:/usr/local/lib/ptxdist-2022.05.0/bin:/home/adahl/bin:/home/
adahl/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games 
PKGCONFIG_WHITELIST='' PKGCONFIG_WHITELIST_SRC='u-boot' PKG_CONFIG_PATH='' 
PKG_CONFIG_LIBDIR='/home/adahl/Work/bsp/***/***/platform-***/sysroot-target/
lib/pkgconfig:/home/adahl/Work/bsp/***/***/platform-***/sysroot-target/usr/
lib/pkgconfig:/home/adahl/Work/bsp/***/***/platform-***/sysroot-target/share/
pkgconfig:/home/adahl/Work/bsp/***/***/platform-***/sysroot-target/usr/share/
pkgconfig' PKG_CONFIG_SYSTEM_LIBRARY_PATH='/home/adahl/Work/bsp/***/***/
platform-***/sysroot-target/lib/pkgconfig/../../lib:/home/adahl/Work/bsp/***/
***/platform-***/sysroot-target/usr/lib/pkgconfig/../../lib:/home/adahl/Work/
bsp/***/***/platform-***/sysroot-target/share/pkgconfig/../../lib:/home/adahl/
Work/bsp/***/***/platform-***/sysroot-target/usr/share/pkgconfig/../../lib:/
home/adahl/Work/bsp/***/***/platform-***/sysroot-target/lib/pkgconfig/../lib:/
home/adahl/Work/bsp/***/***/platform-***/sysroot-target/usr/lib/pkgconfig/../
lib:/home/adahl/Work/bsp/***/***/platform-***/sysroot-target/share/
pkgconfig/../lib:/home/adahl/Work/bsp/***/***/platform-***/sysroot-target/usr/
share/pkgconfig/../lib:/usr/lib:/lib' PKG_CONFIG_SYSTEM_INCLUDE_PATH='/home/
adahl/Work/bsp/***/***/platform-***/sysroot-target/lib/pkgconfig/../../
include:/home/adahl/Work/bsp/***/***/platform-***/sysroot-target/usr/lib/
pkgconfig/../../include:/home/adahl/Work/bsp/***/***/platform-***/sysroot-
target/share/pkgconfig/../../include:/home/adahl/Work/bsp/***/***/platform-
***/sysroot-target/usr/share/pkgconfig/../../include:/home/adahl/Work/bsp/***/
***/platform-***/sysroot-target/lib/pkgconfig/../include:/home/adahl/Work/bsp/
***/***/platform-***/sysroot-target/usr/lib/pkgconfig/../include:/home/adahl/
Work/bsp/***/***/platform-***/sysroot-target/share/pkgconfig/../include:/home/
adahl/Work/bsp/***/***/platform-***/sysroot-target/usr/share/pkgconfig/../
include:/usr/include:/include' PKG_CONFIG='/home/adahl/Work/bsp/***/***/
platform-***/sysroot-cross/bin/arm-v7a-linux-gnueabihf-pkg-config' SYSROOT='/
home/adahl/Work/bsp/***/***/platform-***/sysroot-target' V=1 VERBOSE=1 
CROSS_COMPILE=arm-v7a-linux-gnueabihf- HOSTCC=gcc make -C /home/adahl/Work/
bsp/***/***/platform-***/build-target/u-boot-2022.04-build -C /home/adahl/
Work/bsp/***/***/platform-***/build-target/u-boot-2022.04 O=/home/adahl/Work/
bsp/***/***/platform-***/build-target/u-boot-2022.04-build V=1 -j1 


This adds an additional piece to the path (/home/adahl/Work/bsp/***/***/
platform-***/sysroot-host/lib/wrapper), but even if I call pkg-config with 
this, the output seems correct:


% PATH=/home/adahl/Work/bsp/***/***/platform-***/sysroot-host/lib/wrapper:/
home/adahl/Work/bsp/***/***/platform-***/sysroot-host/bin:/home/adahl/Work/
bsp/***/***/platform-***/sysroot-host/sbin:/opt/OSELAS.Toolchain-2018.02.0/
arm-v7a-linux-gnueabihf/gcc-7.3.1-glibc-2.27-binutils-2.30-kernel-4.15-
sanitized/bin:/usr/local/lib/ptxdist-2018.05.0/bin:/home/adahl/Work/bsp/***/
***/platform-***/sysroot-host/bin:/home/adahl/Work/bsp/***/***/platform-***/
sysroot-host/sbin:/opt/OSELAS.Toolchain-2018.02.0/arm-v7a-linux-gnueabihf/
gcc-7.3.1-glibc-2.27-binutils-2.30-kernel-4.15-sanitized/bin:/usr/local/lib/
ptxdist-2022.05.0/bin:/home/adahl/bin:/home/adahl/.local/bin:/usr/local/bin:/
usr/bin:/bin:/usr/local/games:/usr/games pkg-config --libs libssl libcrypto
-L/home/adahl/Work/bsp/***/***/platform-***/sysroot-host/lib/pkgconfig/../..//
lib -lssl -lcrypto 


I don't understand it.

This is still ptxdist-2018.05.0 … can that be a problem here?

Greets
Alex






  reply	other threads:[~2022-07-26  7:43 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-25 14:41 Alexander Dahl
2022-07-25 15:36 ` Michael Olbrich
2022-07-25 19:09   ` Alexander Dahl
2022-07-26  7:43     ` Alexander Dahl [this message]
2022-07-29  6:40       ` Michael Olbrich
2022-08-03 11:20         ` Alexander Dahl

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=4722212.1oGcgTFBSJ@ada \
    --to=ada@thorsis.com \
    --cc=post@lespocky.de \
    --cc=ptxdist@pengutronix.de \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox