build issue

Hi,

I'm trying to build llvm 3.4 on one of our Cray systems, note: 3.2 builds fine. The following error occurs, it looks like a system header, intended for C only judging by the fact that there's a variable named "new", is being used in one of llvm's C++ source files. Can anyone suggest a workaround? I do not have root on this system nor is it likely that I can convince anyone to update system packages.

Burlen

make[5]: Entering directory `/global/common/hopper2/graphics/llvm/builds/llvm-3.4.src/projects/compiler-rt'
   ARCHIVE: clang_linux/full-x86_64/x86_64: /global/common/hopper2/graphics/llvm/builds/3.4-static-build/tools/clang/runtime/compiler-rt/clang_linux/full-x86_64/x86_64/libcompiler_rt.a
   FINAL-ARCHIVE: clang_linux/full-x86_64: /global/common/hopper2/graphics/llvm/builds/3.4-static-build/tools/clang/runtime/compiler-rt/clang_linux/full-x86_64/libcompiler_rt.a
   ARCHIVE: clang_linux/profile-x86_64/x86_64: /global/common/hopper2/graphics/llvm/builds/3.4-static-build/tools/clang/runtime/compiler-rt/clang_linux/profile-x86_64/x86_64/libcompiler_rt.a
   FINAL-ARCHIVE: clang_linux/profile-x86_64: /global/common/hopper2/graphics/llvm/builds/3.4-static-build/tools/clang/runtime/compiler-rt/clang_linux/profile-x86_64/libcompiler_rt.a
   COMPILE: clang_linux/san-x86_64/x86_64: /global/common/hopper2/graphics/llvm/builds/llvm-3.4.src/projects/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
In file included from /global/common/hopper2/graphics/llvm/builds/llvm-3.4.src/projects/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc:54:
In file included from /usr/include/sys/vt.h:1:
/usr/include/linux/vt.h:74:15: error: expected member name or ';' after declaration specifiers
         unsigned int new; /* New console (if changing) */
         ~~~~~~~~~~~~ ^
1 error generated.

I understand that you are looking for a workaround in llvm, but it’s not really an llvm issue. There is a patch available for this issue:

http://gcc.gnu.org/ml/gcc-patches/2013-12/msg00479.html

This means that you would have to update your kernel headers.

Someone else has posted another hack for libsanitizer here:

http://comments.gmane.org/gmane.comp.gcc.devel/133181

#define new renamed_new
#include <sys/vt.h>
#undef new

thx
Vikas.

Thanks!