llvm 3.42 build from source fails on ubuntu 17.04

前端 未结 2 1947
傲寒
傲寒 2020-12-22 11:29

I have a script that builds llvm/clang 3.42 from source (with configure+make). It runs smooth on ubuntu 14.04.5 LTS. When I upgraded to ubuntu 17.04

相关标签:
2条回答
  • 2020-12-22 12:15

    That seems to be an issue with LLVM 3.4.2tsan (Thread Sanitizer) failing to build with GCC 6.x, as previously reported here:

    https://aur.archlinux.org/packages/clang34-analyzer-split

    It seems the inclusion of stdlib.h and malloc.h is conflicting, since both define malloc and friends.

    It's possible that this issue only manifets in tsan, so if tsan is not instrumental to your LLVM build (which is very likely), and you wish to stick with the system gcc for building LLVM, you may consider disabling tsan completely.

    If you're running a CMake build (as in here), you can do so by commenting line 29 of llvm/projects/compiler-rt/lib/CMakeLists.txt:

    if (CMAKE_SYSTEM_NAME MATCHES "Linux" AND NOT ANDROID)  
      add_subdirectory(tsan) # comment out this line
    

    If you're forced to stick to the configure build, my best guess would be removing the tsan-x86_64 target in llvm/projects/compiler-rt/make/clang_linux.mk, line 63:

    Configs += full-x86_64 profile-x86_64 san-x86_64 asan-x86_64 --> tsan-x86_64 <-- 
    
    0 讨论(0)
  • 2020-12-22 12:32

    I faced the same problem on my Ubuntu 16.10. It has default gcc 6.2. You need to instruct LLVM build system to use gcc 4.9. Also, I suggest you remove GCC6 completely.

    $ sudo apt-get remove g++-6 gcc-6 cpp
    $ sudo apt-get install gcc-4.9 g++4.9
    $ export CC=/usr/bin/gcc-4.9
    $ export CXX=/usr/bin/g++-4.9
    $ export CPP=/usr/bin/cpp-4.9
    $ ./configure
    $ make
    

    And maybe you will need:

    $ sudo ln -s /usr/bin/cpp-4.9 /usr/bin/cpp
    
    0 讨论(0)
提交回复
热议问题