gpt4 book ai didi

ubuntu - 在 ubuntu 17.04 上从源代码构建 llvm 3.42 失败

转载 作者:行者123 更新时间:2023-12-04 19:13:00 24 4
gpt4 key购买 nike

我有一个从源代码构建 llvm/clang 3.42 的脚本
(配置+制作)。
它在 ubuntu 14.04.5 LTS 上运行流畅.
当我升级到 Ubuntu 17.04 ,构建失败。

这是构建脚本:

svn co https://llvm.org/svn/llvm-project/llvm/tags/RELEASE_342/final llvm
svn co https://llvm.org/svn/llvm-project/cfe/tags/RELEASE_342/final llvm/tools/clang
svn co https://llvm.org/svn/llvm-project/compiler-rt/tags/RELEASE_342/final llvm/projects/compiler-rt
svn co https://llvm.org/svn/llvm-project/libcxx/tags/RELEASE_342/final llvm/projects/libcxx

rm -rf llvm/.svn
rm -rf llvm/tools/clang/.svn
rm -rf llvm/projects/compiler-rt/.svn
rm -rf llvm/projects/libcxx/.svn

cd llvm
./configure \
--enable-optimized \
--disable-assertions \
--enable-targets=host \
--with-python="/usr/bin/python2"

make -j `nproc`

以下是我得到的错误(TLDR: malloc calloc realloc 免费 的定义存在问题)
/usr/include/malloc.h:38:14: error: declaration conflicts with target of using declaration already in scope
extern void *malloc (size_t __size) __THROW __attribute_malloc__ __wur;
^
/usr/include/stdlib.h:427:14: note: target of using declaration
extern void *malloc (size_t __size) __THROW __attribute_malloc__ __wur;
^
/usr/lib/gcc/x86_64-linux-gnu/6.3.0/../../../../include/c++/6.3./stdlib.h:65:12: note: using declaration
using std::malloc;
^
In file included from /home/oren/GIT/LatestKlee/llvm/projects/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cc:47:
/usr/include/malloc.h:41:14: error: declaration conflicts with target of using declaration already in
scope
extern void *calloc (size_t __nmemb, size_t __size)
^
/usr/include/stdlib.h:429:14: note: target of using declaration
extern void *calloc (size_t __nmemb, size_t __size)
^
/usr/lib/gcc/x86_64-linux-gnu/6.3.0/../../../../include/c++/6.3.0/stdlib.h:59:12: note: using declaration
using std::calloc;
^
In file included from /home/oren/GIT/LatestKlee/llvm/projects/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cc:47:
/usr/include/malloc.h:49:14: error: declaration conflicts with target of using declaration already in
scope
extern void *realloc (void *__ptr, size_t __size)
^
/usr/include/stdlib.h:441:14: note: target of using declaration
extern void *realloc (void *__ptr, size_t __size)
^
/usr/lib/gcc/x86_64-linux-gnu/6.3.0/../../../../include/c++/6.3.0/stdlib.h:73:12: note: using declaration
using std::realloc;
^
In file included from /home/oren/GIT/LatestKlee/llvm/projects/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cc:47:
/usr/include/malloc.h:53:13: error: declaration conflicts with target of using declaration already in
scope
extern void free (void *__ptr) __THROW;
^
/usr/include/stdlib.h:444:13: note: target of using declaration
extern void free (void *__ptr) __THROW;
^
/usr/lib/gcc/x86_64-linux-gnu/6.3.0/../../../../include/c++/6.3.0/stdlib.h:61:12: note: using declaration
using std::free;
^
COMPILE: clang_linux/tsan-x86_64/x86_64: /home/oren/GIT/LatestKlee/llvm/projects/compiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cc
4 errors generated.
Makefile:267: recipe for target '/home/oren/GIT/LatestKlee/llvm/tools/clang/runtime/compiler-rt/clang_linux/tsan-x86_64/x86_64/SubDir.lib__tsan__rtl/tsan_platform_linux.o' failed
make[5]: *** [/home/oren/GIT/LatestKlee/llvm/tools/clang/runtime/compiler-rt/clang_linux/tsan-x86_64/x86_64/SubDir.lib__tsan__rtl/tsan_platform_linux.o] Error 1

ubuntu 17.04 附带的默认 gcc 版本是 6.3。
也许这是 gcc 6.3 使用的默认 C++ 方言的问题?
非常感谢任何帮助,谢谢!

最佳答案

这似乎是 LLVM 3.4.2 tsan 的问题。 (Thread Sanitizer) 无法使用 GCC 6.x 构建,如先前在此处报告的:

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

似乎包含 stdlib.hmalloc.h是冲突的,因为两者都定义了 malloc和 friend 。

此问题可能仅在 tsan 中出现。 , 所以如果 tsan对您的 LLVM 构建没有帮助(这很可能),并且您希望坚持使用系统 gcc 来构建 LLVM,您可以考虑禁用 tsan完全地。

如果您正在运行 CMake 构建(如 here 中),您可以通过注释 llvm/projects/compiler-rt/lib/CMakeLists.txt 的第 29 行来执行此操作。 :

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

如果你被迫坚持 configure构建,我最好的猜测是删除 tsan-x86_64目标在 llvm/projects/compiler-rt/make/clang_linux.mk ,第 63 行:
Configs += full-x86_64 profile-x86_64 san-x86_64 asan-x86_64 --> tsan-x86_64 <-- 

关于ubuntu - 在 ubuntu 17.04 上从源代码构建 llvm 3.42 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48146921/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com