bug-libtool
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#39583: Error with cross-compiling where CCLD is Clang


From: Bob Friesenhahn
Subject: bug#39583: Error with cross-compiling where CCLD is Clang
Date: Wed, 12 Feb 2020 16:19:26 -0600 (CST)
User-agent: Alpine 2.20 (GSO 67 2015-01-07)

On Wed, 12 Feb 2020, Jo Shields wrote:

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`)

It is not necessary for Autotools to conform and adapt to this clang option. Instead, developers/users of clang-based cross-compilation configurations should arrange so that program files like 'aarch64-linux-gnu-clang' exist. This tool naming strategy is for the benefit of Autotools and other build scripts and not for the compiler's benefit. It is important to maintain the common conventions which have worked sucessfully for many years.

If clang does not have a default cross-compilation target so the paths can be created using symbolic links, then trivial wrapper scripts/programs can be created so that clang is automatically provided with the correct arguments.

Bob
--
Bob Friesenhahn
address@hidden, http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer,    http://www.GraphicsMagick.org/
Public Key,     http://www.simplesystems.org/users/bfriesen/public-key.txt





reply via email to

[Prev in Thread] Current Thread [Next in Thread]