On Wed, 14 Dec 2016 08:27:13 +0100, Eugene Grosbein <egrosbein at rdtc.ru>
wrote:
> Hi!
>
> 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?
Check /usr/src/UPDATING:
20141231:
Clang, llvm and lldb have been upgraded to 3.5.0 release.
As of this release, a prerequisite for building clang, llvm and
lldb is
a C++11 capable compiler and C++11 standard library. This means
that to
be able to successfully build the cross-tools stage of buildworld,
with
clang as the bootstrap compiler, your system compiler or cross
compiler
should either be clang 3.3 or later, or gcc 4.8 or later, and your
system C++ library should be libc++, or libdstdc++ from gcc 4.8 or
later.
On any standard FreeBSD 10.x or 11.x installation, where clang and
libc++ are on by default (that is, on x86 or arm), this should
work out
of the box.
On 9.x installations where clang is enabled by default, e.g. on
x86 and
powerpc, libc++ will not be enabled by default, so libc++ should be
built (with clang) and installed first. If both clang and libc++
are
missing, build clang first, then use it to build libc++.
On 8.x and earlier installations, upgrade to 9.x first, and then
follow
the instructions for 9.x above.
Regards,
Ronald.