[llvm-dev] Adding minimal target support to build clang
Friedman, Eli via llvm-dev
llvm-dev at lists.llvm.org
Mon Aug 20 12:17:57 PDT 2018
On 8/19/2018 7:29 AM, John Paul Adrian Glaubitz via llvm-dev wrote:
> Hi!
>
> In Debian, we have recently run into the situation that the package
> qttools-opensource-src has added LLVM's clang parser as a build dependency
> with the effect that the package can no longer be built for a couple of
> architectures like alpha or ia64 [1].
>
> From my current understanding, qttools-opensource-src is merely using the
> parser part in clang to parse C/C++ code for code analysis which is not
> necessarily an architecture-specific task.
clang needs to support a target to some extent to parse C code for that
target. Among other things, it needs to define target-specific macros,
it needs to know the correct sizes for a bunch of different types, and
it needs to parse target-specific intrinsics. See clang/lib/Basic/Targets/.
And depending on what you're doing, you might need support for parsing
target-specific options and finding the correct include paths; this code
is part of clang/lib/Driver/.
If there's some specific use-case for adding this support for a target
which doesn't have a corresponding LLVM backend, we could consider it;
the maintenance burden is relatively small.
> Now, does anyone know whether it would be possible to enable this feature
> on any given architecture without having to add a full target backend to
> LLVM? Maybe we could just build an LLVM variant on unsupported targets
> with the x86 backend enabled (in case it's mandatory to have at least
> one backend enabled).
LLVM is always a cross-compiler: you can build it any number of targets
enabled, and it should build on any machine with a supported C++
compiler. See https://llvm.org/docs/GettingStarted.html .
-Eli
--
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project
More information about the llvm-dev
mailing list