Subject: Re: [bug#54595] [PATCH 2/2] gnu: libfido2: Fix cross-compilation.

From: Maxime Devos <[email-masked]>
Date: Sun, 27 Mar 2022 17:43:35 +0200

Pierre Langlois schreef op zo 27-03-2022 om 15:04 [+0100]:
> I'm also not entirely sure if it's
> #+pkg-config or #$pkg-config, both seem to work

#+pkg-config, given that it is a thing that needs to be run during
compilation.  I'm wondering, do you have transparant QEMU emulation
enabled?  If so, both seeming to work is expected since QEMU will
emulate the cross-compiled cross-compiling (IIUC a canadian cross, in
GCC terminology) pkg-config.  If not, I would expect some kind of error
...

Or, to allow for package transformations:

  #+(file-append (this-package-native-input (pkg-config-for-target))
                 "/bin/" (pkg-config-for-target))

though maybe package transformations should just transform the G-exp as
well, dunno.  ('file-append' is not strictly required here.)  Maybe we can
have a macro (pkg-config-binary) that expands to that thing, and
use it in other packages?

Possibly interesting or irrelevant: the following will produce an
x86_64-linux-gnu-pkg-config that can be run on a aarch64-linux-gnu
computer to find libraries for x86_64-linux-gnu.

$ guix build -e '(parameterize (((@ (guix utils) %current-target-system) "x86_64-linux-gnu")) (@ (gnu packages pkg-config) pkg-config))' --target=aarch64-linux-gnu

Greetings,
Maxime.