Subject: bug#48086: libtool refers to native bash instead of a cross-compiled bash

From: Maxime Devos <[email-masked]>
Date: Wed, 28 Apr 2021 23:42:26 +0200

severity: minor

To reproduce:

$ guix --version
> guix (GNU Guix) f97e220b45aba1c10f155e760667df7ef4cae382
> [...]

This is on a x86_64-linux-gnu, without transparant qemu emulation.

$ guix build libtool --target=aarch64-linux-gnu
> /gnu/store/yspdgc9wk8ap20729f6a7k0f640r6h7c-libtool-2.4.6
$ head -n 1 /gnu/store/yspdgc9wk8ap20729f6a7k0f640r6h7c-libtool-2.4.6/bin/libtool
> #! /gnu/store/pwcp239kjf7lnj5i4lkdzcfcxwcfyk72-bash-minimal-5.0.16/bin/bash
$ objdump -h /gnu/store/pwcp239kjf7lnj5i4lkdzcfcxwcfyk72-bash-minimal-5.0.16/bin/bash
> /gnu/store/pwcp239kjf7lnj5i4lkdzcfcxwcfyk72-bash-minimal-5.0.16/bin/bash: \
>     file format elf64-x86-64
> [...]

It seems the "libtool" script refers to a native bash, instead of the cross bash,
even though I used --target=aarch64-linux-gnu!

What I expected: a libtool package that I could run in a aarch64 VM.

Why? One possible use case, replacing "aarch64-linux-gnu" with "i586-pc-gnu":
(cross-compiled) childhurd images that have a (cross-compiled) GCC, binutils,
autoconf, automake, make, ... in the system profile, ready for Hurd hacking.

There are also some other problems when using libtool in as a cross-compiler,
but unless you're using libtool in a Canadian cross, these are separate issues,
so I'll leave those for a separate bug report.

Greetings,
Maxime.