HomePhabricator

[Driver] Fix architecture triplets and search paths for Linux x32

Authored by hvdijk on Apr 1 2021, 1:47 AM.

Description

[Driver] Fix architecture triplets and search paths for Linux x32

Currently, support for the x32 ABI is handled as a multilib to the
x86_64 target only. However, full self-hosting x32 systems treating it
as a separate architecture with its own architecture triplets as well as
search paths exist as well, in Debian's x32 port and elsewhere.

This adds the missing architecture triplets and search paths so that
clang can work as a native compiler on x32, and updates the tests so
that they pass when using an x32 libdir suffix.

Additionally, we would previously also assume that objects from any
x86_64-linux-gnu GCC installation could be used to target x32. This
changes the logic so that only GCC installations that include x32
support are used when targetting x32, meaning x86_64-linux-gnux32 GCC
installations, and x86_64-linux-gnu and i686-linux-gnu GCC installations
that include x32 multilib support.

Reviewed By: MaskRay

Differential Revision: https://reviews.llvm.org/D52050

Details

Committed
hvdijkApr 1 2021, 1:47 AM
Reviewer
MaskRay
Differential Revision
D52050: [Driver] Fix architecture triplets and search paths for Linux x32
Parents
rG92e777148359: [WebAssembly] Invert branch condition on xor input
Branches
Unknown
Tags
Unknown