GNU bug report logs - #39583
Error with cross-compiling where CCLD is Clang

Previous Next

Package: libtool;

Reported by: Jo Shields <directhex <at> apebox.org>

Date: Wed, 12 Feb 2020 22:03:02 UTC

Severity: normal

Full log


View this message in rfc822 format

From: Jo Shields <directhex <at> apebox.org>
To: 39583 <at> debbugs.gnu.org
Subject: bug#39583: Error with cross-compiling where CCLD is Clang
Date: Wed, 12 Feb 2020 16:46:37 -0500
[Message part 1 (text/plain, inline)]
Hi,

I've been working on a project where we cross-compile for aarch64, on an
x86_64 host. The compiler we're under orders to use (I have no say here)
is Clang.

The norm with GCC is for a `triplet-gcc` binary as CC. For Clang,
cross-compiling is achieved with a `--target=triplet` compiler flag - i.e.

`aarch64-linux-gnu-gcc foo.c`

vs

`clang --target=aarch64-linux-gnu foo.c`

Critically, this applies even for cases where CC is being used as the
linker (i.e. CCLD=clang). If no `--target` is specified, Clang will use
the native (x86_64) linker, not the linker specified in LD.

This can be worked around by throwing `-XCClinker --target=triplet` into
every linker invocation in every makefile, but it would be nice if
instead, ltmain preserved the `--target` parameter in func_mode_link
(e.g. the way it does for `--sysroot`)

[signature.asc (application/pgp-signature, attachment)]

This bug report was last modified 5 years and 191 days ago.

Previous Next


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