[cfe-dev] Clang triple canonicalization

Kal Conley kcconley at gmail.com
Mon Aug 5 06:44:58 PDT 2013


I figured out the normalization is done in
llvm::sys::getDefaultTargetTriple. Changing the implementation to simply
return LLVM_DEFAULT_TARGET_TRIPLE fixes the problem. I'm still not clear on
why this normalization is done. Would it make sense to add a configure
option to disable this normalization for cases where the target is known?


2013/8/2 Kal Conley <kcconley at gmail.com>

> Hi,
> I am trying to build clang as a cross compiler and I am having some
> trouble getting it working. I configured clang with cmake options:
>
> cmake ../llvm-3.3 -DCMAKE_BUILD_TYPE=Release
> -DLLVM_DEFAULT_TARGET_TRIPLE=i586-XXX-linux-gnu
> -DDEFAULT_SYSROOT=/usr/i586-XXX-linux-gnu/sys-root
> -DLLVM_TARGETS_TO_BUILD=X86
>
> But clang -v reports:
>
> Target: i386-XXX-linux-gnu
>
> So clang is canonicalizing the i586 into i386. This is causing clang to
> fail to find all the gnu cross tools with names
> /usr/bin/i586-XXX-linux-gnu-*
> Is there any good reason for this canonicalization? Does it make sense to
> disable it? What is the best way about solving this issue?
>
> Thanks!
> -Kal
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20130805/49de642b/attachment.html>


More information about the cfe-dev mailing list