llvm / llvm-project

The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
http://llvm.org
Other
29.01k stars 11.96k forks source link

In git/svn trunk, make for .../llvm fails building tools/extras #22007

Closed llvmbot closed 9 years ago

llvmbot commented 9 years ago
Bugzilla Link 21633
Resolution FIXED
Resolved on Nov 21, 2014 13:58
Version trunk
OS Linux
Reporter LLVM Bugzilla Contributor
CC @rnk

Extended Description

Did a git pull on llvm and clang on my Ubuntu 14.04 laptop with all current patches so I could do some work at a conference investigating a code generation (performance, not correctness) bug (that was present) in clang 3.4.2, i.e., to ensure that the bug was still present.

make failed after crunching for a couple of hours with complaints about not finding an iterator deep in the bowels of clang. (Sorry, the sysout from make s long gone) I then did "svn update" for both llvm and clang to (trunk 222399), did a vanilla reconfigure, make clean, and make. The process failed somewhere lse with complaints about not finding some directory related to gcc. (Sorry, that's gone too.) At that point I uninstalled and reinstalled gcc/g+ 4.8.2 binaries from the Ubuntu repository. I also decided to accelerate the process, so I cut back on the target set. In the penultimate iteration:


build$ ../llvm/configure --prefix=/home/xxx --enable-targets="nvptx x86_64"

build$ make

<< lots elided >>

llvm[5]: Compiling PreprocessorTracker.cpp for Debug+Asserts build /home/rjf/LLVM-clang/llvm/tools/clang/tools/extra/modularize/PreprocessorTracker.cpp: In member function ‘void Modularize::PreprocessorTrackerImpl::handleHeaderEntry(clang::Preprocessor&, llvm::StringRef)’: /home/rjf/LLVM-clang/llvm/tools/clang/tools/extra/modularize/PreprocessorTracker.cpp:960:24: error: no match for ‘operator!’ (operand type is ‘std::pair<llvm::NoneType, bool>’) InNestedHeader = !HeadersInThisCompile.insert(H); ^ /home/rjf/LLVM-clang/llvm/tools/clang/tools/extra/modularize/PreprocessorTracker.cpp:960:24: note: candidate is: /home/rjf/LLVM-clang/llvm/tools/clang/tools/extra/modularize/PreprocessorTracker.cpp:960:24: note: operator!(bool) /home/rjf/LLVM-clang/llvm/tools/clang/tools/extra/modularize/PreprocessorTracker.cpp:960:24: note: no known conversion for argument 1 from ‘std::pair<llvm::NoneType, bool>’ to ‘bool’

<< make continued past this point, but eventually bails from this error.>>

At that point I got rid of the extras directories in the distribution tree and all was copacetic regarding subsequent make and make install of the mainline clang, etc.

rnk commented 9 years ago

This API break in should've been fixed r222336. The clang-tools-extra repo is separate from clang, so you have to make sure to update it along with clang and llvm when you update them. Please reopen if you still have issues.