[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