diff options
author | Chandler Carruth <chandlerc@gmail.com> | 2014-08-27 08:41:41 +0000 |
---|---|---|
committer | Chandler Carruth <chandlerc@gmail.com> | 2014-08-27 08:41:41 +0000 |
commit | c44f4d44e613c2bb765bd89eb8413dbc05b14875 (patch) | |
tree | 17e02362c21ccb5fb533252ca6d6d73e03ce4399 /clang/unittests/Basic/SourceManagerTest.cpp | |
parent | ff620edd3cc3a16f26dcb6ffd3ce47e70010b23a (diff) | |
download | llvm-c44f4d44e613c2bb765bd89eb8413dbc05b14875.zip llvm-c44f4d44e613c2bb765bd89eb8413dbc05b14875.tar.gz llvm-c44f4d44e613c2bb765bd89eb8413dbc05b14875.tar.bz2 |
Significantly fix Clang's header search for Ubuntu (and possibly other
modern Debian-based distributions) due to on-going multiarch madness.
It appears that when the multiarch heeader search support went into the
clang driver, it went in in a quite bad state. The order of includes
completely failed to match the order exhibited by GCC, and in a specific
case -- when the GCC triple and the multiarch triple don't match as with
i686-linux-gnu and i386-linux-gnu -- we would absolutely fail to find
the libstdc++ target-specific header files.
I assume that folks who have been using Clang on Ubuntu 32-bit systems
have been applying weird patches to hack around this. I can't imagine
how else it could have worked. This was originally reported by a 64-bit
operating system user who had a 32-bit crosscompiler installed. We tried
to use that rather than the bi-arch support of the 64-bit compiler, but
failed due to the triple differences.
I've corrected all the wrong orderings in the existing tests and added
a specific test for the multiarch triple strings that are different in
a significant way. This should significantly improve the usability of
Clang when checked out vanilla from upstream onto Ubuntu machines with
an i686 GCC installation for whatever reason.
llvm-svn: 216531
Diffstat (limited to 'clang/unittests/Basic/SourceManagerTest.cpp')
0 files changed, 0 insertions, 0 deletions