yrnkrn / zapcc

zapcc is a caching C++ compiler based on clang, designed to perform faster compilations
Other
1.25k stars 61 forks source link

Compiler crash when building WebKit #27

Open ghost opened 5 years ago

ghost commented 5 years ago

I get an assertion error when trying to build a fresh Git checkout of WebKit (specifically c92004b) + a few local changes to the CMake files.

Output from CMake:

19:18:20: Running steps for project WebKit...
19:18:20: Starting: "/usr/local/bin/cmake" --build . --target all
[  1%] Built target bmalloc
[ 11%] Built target WTFForwardingHeaders
[ 11%] Building CXX object Source/WTF/wtf/CMakeFiles/WTF.dir/text/cocoa/StringImplCocoa.mm.o
[ 11%] Building CXX object Source/WTF/wtf/CMakeFiles/WTF.dir/text/cocoa/StringViewCocoa.mm.o
Assertion failed: (isTemporary() && "Expected temporary node"), function replaceAllUsesWith, file /Users/tobias/src/zapcc/include/llvm/IR/Metadata.h, line 948.
0  zapccs                   0x0000000103cbaf8c llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 60
1  zapccs                   0x0000000103cbb589 PrintStackTraceSignalHandler(void*) + 25
2  zapccs                   0x0000000103cb6bf9 llvm::sys::RunSignalHandlers() + 425
3  zapccs                   0x0000000103cbb9a2 SignalHandler(int) + 354
4  libsystem_platform.dylib 0x00007fff78934b3d _sigtramp + 29
5  libsystem_platform.dylib 000000000000000000 _sigtramp + 2272048352
6  libsystem_c.dylib        0x00007fff787f31c9 abort + 127
7  libsystem_c.dylib        0x00007fff787bb868 basename_r + 0
8  zapccs                   0x00000001039f682f llvm::MDNode::replaceAllUsesWith(llvm::Metadata*) + 111
9  zapccs                   0x00000001046af186 llvm::DIType* llvm::DIBuilder::replaceTemporary<llvm::DIType>(std::__1::unique_ptr<llvm::MDNode, llvm::TempMDNodeDeleter>&&, llvm::DIType*) + 758
10 zapccs                   0x00000001046ad2d3 clang::CodeGen::CGDebugInfo::finalize() + 1139
11 zapccs                   0x0000000104957964 clang::CodeGen::CodeGenModule::Release() + 7620
12 zapccs                   0x0000000101175f51 llvm::CachingPassManager::Implementation::resurrect() + 2401
13 zapccs                   0x000000010117a18a llvm::CachingPassManager::Implementation::emitObj(clang::BackendAction, llvm::raw_pwrite_stream*) + 314
14 zapccs                   0x000000010117bd1e llvm::CachingPassManager::emitObj(clang::BackendAction, llvm::raw_pwrite_stream*) + 62
15 zapccs                   0x000000010116a058 void std::__1::__invoke_void_return_wrapper<void>::__call<std::__1::__bind<void (llvm::CachingPassManager::*)(clang::BackendAction, llvm::raw_pwrite_stream*), llvm::CachingPassManager*, std::__1::placeholders::__ph<1> const&, std::__1::placeholders::__ph<2> const&>&, clang::BackendAction, llvm::raw_pwrite_stream*>(std::__1::__bind<void (llvm::CachingPassManager::*)(clang::BackendAction, llvm::raw_pwrite_stream*), llvm::CachingPassManager*, std::__1::placeholders::__ph<1> const&, std::__1::placeholders::__ph<2> const&>&&&, clang::BackendAction&&, llvm::raw_pwrite_stream*&&) + 1032
16 zapccs                   0x0000000101169c09 std::__1::__function::__func<std::__1::__bind<void (llvm::CachingPassManager::*)(clang::BackendAction, llvm::raw_pwrite_stream*), llvm::CachingPassManager*, std::__1::placeholders::__ph<1> const&, std::__1::placeholders::__ph<2> const&>, std::__1::allocator<std::__1::__bind<void (llvm::CachingPassManager::*)(clang::BackendAction, llvm::raw_pwrite_stream*), llvm::CachingPassManager*, std::__1::placeholders::__ph<1> const&, std::__1::placeholders::__ph<2> const&> >, void (clang::BackendAction, llvm::raw_pwrite_stream*)>::operator()(clang::BackendAction&&, llvm::raw_pwrite_stream*&&) + 73
17 zapccs                   0x000000010492b1f2 std::__1::function<void (clang::BackendAction, llvm::raw_pwrite_stream*)>::operator()(clang::BackendAction, llvm::raw_pwrite_stream*) const + 98
18 zapccs                   0x00000001049264c5 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) + 5013
19 zapccs                   0x0000000105067747 clang::MultiplexConsumer::HandleTranslationUnit(clang::ASTContext&) + 455
20 zapccs                   0x00000001051fee47 clang::ParseAST(clang::Sema&, bool, bool) + 1239
21 zapccs                   0x0000000104fff469 clang::ASTFrontendAction::ExecuteAction() + 489
22 zapccs                   0x000000010492432f clang::CodeGenAction::ExecuteAction() + 5663
23 zapccs                   0x0000000104ffe200 clang::FrontendAction::Execute() + 112
24 zapccs                   0x0000000104f1cfae clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 2430
25 zapccs                   0x00000001050c9485 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 5893
26 zapccs                   0x000000010115e4e5 clang::CachingCompiler::compile(llvm::StringRef, llvm::MutableArrayRef<char const*>) + 4805
27 zapccs                   0x000000010126fc18 performCompile((anonymous namespace)::ArgsHistory&, clang::CachingCompiler&) + 9016
28 zapccs                   0x000000010126d529 runServerMode(Server&, clang::CachingCompiler&, char const*) + 185
29 zapccs                   0x000000010126d0fa main + 858
30 libdyld.dylib            0x00007fff7874b08d start + 1
31 libdyld.dylib            0x0000000000000004 start + 2274054008
Stack dump:
0.  Program arguments: /Users/tobias/src/zapcc/build/bin/zapccs 1 13 14 
1.  <eof> parser at end of file
make[2]: *** [Source/WTF/wtf/CMakeFiles/WTF.dir/text/cocoa/StringViewCocoa.mm.o] Error 1
make[1]: *** [Source/WTF/wtf/CMakeFiles/WTF.dir/all] Error 2
make: *** [all] Error 2
19:18:45: The process "/usr/local/bin/cmake" exited with code 2.
Error while building/deploying project WebKit (kit: Desktop Qt 5.10.1 clang 64bit)
When executing step "CMake Build"
19:18:45: Elapsed time: 00:25.
yrnkrn commented 5 years ago

zapcc does not support caching Objective-C (.mm) files, this should fallback to clang. I'll try to fix this but very busy now.