GNU bug report logs - #48088
libtool hardcodes native (cross-)compiler, incorrect when using libtool as cross-compiler

Previous Next

Package: guix;

Reported by: Maxime Devos <maximedevos <at> telenet.be>

Date: Wed, 28 Apr 2021 22:04:01 UTC

Severity: normal

To reply to this bug, email your comments to 48088 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guix <at> gnu.org:
bug#48088; Package guix. (Wed, 28 Apr 2021 22:04:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Maxime Devos <maximedevos <at> telenet.be>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Wed, 28 Apr 2021 22:04:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Maxime Devos <maximedevos <at> telenet.be>
To: bug-guix <at> gnu.org
Cc: libtool <at> gnu.org
Subject: libtool hardcodes native (cross-)compiler, incorrect when using
 libtool as cross-compiler
Date: Thu, 29 Apr 2021 00:03:33 +0200
[Message part 1 (text/plain, inline)]
Hi,

[CC'ing to libtool mailing list, maybe they can shed some light on the matter
of how libtool can be used as a cross-compiler.  This concerns the definition
of the libtool package in guix.]

$ cat $(guix build libtool)/bin/libtool
Some relevant output:

> # A C compiler.
> LTCC="gcc"
> # Compile-time system search path for libraries.
> sys_lib_search_path_spec="/gnu/store/8zvc5mvk0xm3ygrxsgpyy5ilxb5rzjry-perl-5.30.2/lib /gnu/store/i5a9qb07y9xjh9ry8hp6km43kji16nmd-libltdl-2.4.6/lib /gnu/store/i8h2pcxqdq07ijm3ibkka8f4smn1w48v-bzip2-
1.0.8/lib /gnu/store/9860f1abqj8wjjnwl8a9v54pdcc3bhgf-xz-5.2.4/lib /gnu/store/60g7r3l01fd7c58yjbm6krgcwj1jkpwg-file-5.38/lib /gnu/store/swqdvwri9dbv6zssg6v0by7l05hd6wxp-gawk-5.0.1/lib
/gnu/store/m1z7cdbqsqyp9xnjw5cvlb4a7gkcg3m4-binutils-2.34/lib /gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/lib /gnu/store/s3dcqzwqaakv1yx37by9chksdbkgih17-glibc-2.31-static/lib
/gnu/store/hwcky7446s952w0mwchhmm211ll07zrq-glibc-utf8-locales-2.31/lib /gnu/store/01b4w3m6mp55y531kyi1g8shh722kwqm-gcc-7.5.0-lib/lib/gcc/x86_64-unknown-linux-gnu/7.5.0
/gnu/store/01b4w3m6mp55y531kyi1g8shh722kwqm-gcc-7.5.0-lib/lib "

Usually, libtool uses the compiler it was passed.
However, during linking, (at least during the compilation of libtomsmath IIRC),
libtool uses LTCC instead.  Thus, when a package X has libtool in native-inputs,
and it is being cross-compiled, it should really use a variant of libtool that has
been configured to set LTCC=TARGET-gcc (or LTCC=TARGET-clang).

There do not seem to exist any such variants currently.  (For a relatively clean
method for automatically using a cross-compiling variant, see the "pkg-config"
macro.) Thus, I thought it would ‘simply’ be a matter of passing an appropriate
"--target=TARGET" option to libtool's configure script when libtool is being used
as cross-compiler.  But alas, libtool configure only supports --build and --host,
no --target in sight!

Any ideas?
Maxime.
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#48088; Package guix. (Thu, 29 Apr 2021 11:53:01 GMT) Full text and rfc822 format available.

Message #8 received at 48088 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Maxime Devos <maximedevos <at> telenet.be>
Cc: 48088 <at> debbugs.gnu.org, libtool <at> gnu.org
Subject: Re: bug#48088: libtool hardcodes native (cross-)compiler, incorrect
 when using libtool as cross-compiler
Date: Thu, 29 Apr 2021 13:52:34 +0200
Hi Maxime,

Maxime Devos <maximedevos <at> telenet.be> skribis:

> $ cat $(guix build libtool)/bin/libtool
> Some relevant output:

[...]

> However, during linking, (at least during the compilation of libtomsmath IIRC),
> libtool uses LTCC instead.  Thus, when a package X has libtool in native-inputs,

The ‘libtool’ script provided by the ‘libtool’ package is usually
unused.  The modus operandi for Libtool is that packages generate their
own ‘libtool’ script at configure time, tailored for the given
configuration options, based on a template installed by ‘libtoolize’
(itself invoked by ‘autoreconf’).

Perhaps the ‘libtomsmath’ package is doing something unusual?

HTH,
Ludo’.




Information forwarded to bug-guix <at> gnu.org:
bug#48088; Package guix. (Thu, 29 Apr 2021 17:20:02 GMT) Full text and rfc822 format available.

Message #11 received at 48088 <at> debbugs.gnu.org (full text, mbox):

From: Maxime Devos <maximedevos <at> telenet.be>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 48088 <at> debbugs.gnu.org, libtool <at> gnu.org
Subject: Re: bug#48088: libtool hardcodes native (cross-)compiler, incorrect
 when using libtool as cross-compiler
Date: Thu, 29 Apr 2021 19:18:56 +0200
[Message part 1 (text/plain, inline)]
Severity: minor

Hi Ludo,

Ludovic Courtès schreef op do 29-04-2021 om 13:52 [+0200]:
> [...]
> The ‘libtool’ script provided by the ‘libtool’ package is usually
> unused.  The modus operandi for Libtool is that packages generate their
> own ‘libtool’ script at configure time, tailored for the given
> configuration options, based on a template installed by ‘libtoolize’
> (itself invoked by ‘autoreconf’).
> 
> Perhaps the ‘libtomsmath’ package is doing something unusual?

Yes, it does not have a configure script, and invokes "libtool" directly from
the makefile.  It seems like ‘we’ will have to patch libtomsmath appropriately.
I might eventually look into the issue, but probably not in the near future.

Let's stop CC'ing libtool <at> gnu.org; this issue isn't really a bug in libtool.

Greetings,
Maxime.
[signature.asc (application/pgp-signature, inline)]

This bug report was last modified 2 years and 334 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.