CC'ing Dimitry Andric <dim at freebsd.org>
On 14.12.2016 14:27, Eugene Grosbein wrote:
> I've got legacy FreeBSD server running 8.4-STABLE and I'm trying to
upgrade it.
> Source upgrade for 8.4 to 9.3-STABLE r310015 went flawlessly.
> After reboot, I checked out stable/10 r310043 sources and ran buildworld
again.
> It fails:
>
> ===> lib/clang/libllvmanalysis (all)
> c++ -O2 -pipe
-I/usr/src/lib/clang/libllvmanalysis/../../../contrib/llvm/include
-I/usr/src/lib/clang/libllvmanalysis/../../../contrib/llvm/tools/clang/include
-I/usr/src/lib/clang/libllvmanalysis/../../../contrib/llvm/lib/Analysis -I.
-I/usr/src/lib/clang/libllvmanalysis/../../../contrib/llvm/../../lib/clang/include
-DLLVM_ON_UNIX -DLLVM_ON_FREEBSD -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS
-DNDEBUG -fno-strict-aliasing
-DLLVM_DEFAULT_TARGET_TRIPLE=\"x86_64-unknown-freebsd10.3\"
-DLLVM_HOST_TRIPLE=\"x86_64-unknown-freebsd10.3\"
-DDEFAULT_SYSROOT=\"/usr/obj/usr/src/tmp\"
-I/usr/obj/usr/src/tmp/legacy/usr/include -fno-exceptions -fno-rtti -c
/usr/src/lib/clang/libllvmanalysis/../../../contrib/llvm/lib/Analysis/LazyValueInfo.cpp
-o LazyValueInfo.o
>
/usr/src/lib/clang/libllvmanalysis/../../../contrib/llvm/lib/Analysis/LazyValueInfo.cpp:
In member function 'llvm::Constant*
llvm::LazyValueInfo::getConstant(llvm::Value*, llvm::BasicBlock*)':
>
/usr/src/lib/clang/libllvmanalysis/../../../contrib/llvm/lib/Analysis/LazyValueInfo.cpp:1054:
error: 'nullptr' was not declared in this scope
> *** Error code 1
>
> Does it mean that FreeBSD clang version 3.4.1 (tags/RELEASE_34/dot1-final
208032) 20140512
> is unable to build more recent clang version?
There was r309722:
> Pull in r281586 from upstream llvm trunk (by Wei Mi):
> Add some shortcuts in LazyValueInfo to reduce compile time of Correlated
Value Propagation.
And there was MFC for r309722 to stable/9,10,11 (r309857) that broke things.
And there was a fix r309860 committed to stable/9 but not to stable/10:
--- stable/9/contrib/llvm/lib/Analysis/LazyValueInfo.cpp 2016/12/11 23:36:11
309859
+++ stable/9/contrib/llvm/lib/Analysis/LazyValueInfo.cpp 2016/12/12 00:09:08
309860
@@ -1051,7 +1051,7 @@
Constant *LazyValueInfo::getConstant(Value *V, BasicBlock *BB) {
// Bail out early if V is known not to be a Constant.
if (isKnownNonConstant(V))
- return nullptr;
+ return 0;
LVILatticeVal Result = getCache(PImpl).getValueInBlock(V, BB);
Please unbreak source upgrade from 9.3-STABLE to 10.3-STABLE.