Compiler-RT tests on x86_64

Hi folks,

So, after a clean install of compiler-rt on my x86_64 box, I managed to isolate the error I was getting, and it seems to be related to how Clang adds the default include paths.

This is the error:

… while compiling “allocator_test.cc”:
In file included from /home/rengolin/devel/llvm/src/compiler-rt/lib/sanitizer_common/tests/sanitizer_allocator_test.cc:21:

In file included from /home/rengolin/devel/llvm/src/llvm/utils/unittest/googletest/include/gtest/gtest.h:54:
/usr/lib/gcc/x86_64-linux-gnu/4.8/…/…/…/…/include/c++/4.8/limits:42:10: fatal error: ‘bits/c++config.h’ file not found
#include <bits/c++config.h>
^
1 error generated.

As it turns out, Linux Mint stores the c++config.h file at:

/usr/include/x86_64-linux-gnu/c++/4.8/bits/c++config.h

But the multilib logic in Clang (Linux::addLibStdCXXIncludePaths) uses the BiarchSuffix (which in my case it’s 32), but that’s not there at all.

When I added another line to that removing the BiarchSuffix, I got other errors:

/usr/lib/gcc/x86_64-linux-gnu/4.8/…/…/…/…/include/c++/4.8/limits:1410:59: error: __int128 is not supported on this target
/usr/lib/gcc/x86_64-linux-gnu/4.8/…/…/…/…/include/c++/4.8/limits:131:43: note: expanded from macro ‘__glibcxx_min’
(__glibcxx_signed (T) ? -__glibcxx_max (T) - 1 : (T)0)
^
/usr/lib/gcc/x86_64-linux-gnu/4.8/…/…/…/…/include/c++/4.8/limits:135:35: note: expanded from macro ‘__glibcxx_max’
(((((T)1 << (__glibcxx_digits (T) - 1)) - 1) << 1) + 1) : ~(T)0)
^
/usr/lib/gcc/x86_64-linux-gnu/4.8/…/…/…/…/include/c++/4.8/limits:138:49: note: expanded from macro ‘__glibcxx_digits’
(sizeof(T) * CHAR_BIT - __glibcxx_signed (T))
^
/usr/lib/gcc/x86_64-linux-gnu/4.8/…/…/…/…/include/c++/4.8/limits:128:31: note: expanded from macro ‘__glibcxx_signed’
#define __glibcxx_signed(T) ((T)(-1) < 0)

So, I’m not really sure how to proceed. Isn’t anyone seeing this? Did I mess up my compilation environment that badly? I do have a few versions of ARM gcc installed via the package management, but even after removing the x86-multilib GCC packages, I still have that error.

Ideas?

cheers,
–renato