On Aug 11, 2021, at 1:44 PM, Dimitry Andric <d...@freebsd.org> wrote:
> On 11 Aug 2021, at 05:13, Eugene Grosbein <eu...@grosbein.net> wrote: >> >> I'm in process of upgrading very old remote FreeBSD server running >> 9.3-STABLE/amd64. >> First, I used svn to fetch stable/10 sources and performed source upgrade to >> 10.4-STABLE r369650 >> and it went just fine. >> >> Now it has stock "FreeBSD clang version 3.4.1 (tags/RELEASE_34/dot1-final >> 208032) 20140512". >> I did checkout for stable/11 sources via svn but this time buildworld fails >> early: >> >> -------------------------------------------------------------- >>>>> stage 1.2: bootstrap tools >> -------------------------------------------------------------- >> cd /usr/local/src; MAKEOBJDIRPREFIX=/usr/obj/usr/local/src/tmp INSTALL="sh >> /usr/local/src/tools/install.sh" TOOLS_PREFIX=/usr/obj/usr/local/src/tmp >> PATH=/usr/obj/usr/local/src/tmp/legacy/usr/sbin:/usr/obj/usr/local/src/tmp/legacy/usr/bin:/usr/obj/usr/local/src/tmp/legacy/bin:/sbin:/bin:/usr/sbin:/usr/bin >> WORLDTMP=/usr/obj/usr/local/src/tmp MAKEFLAGS="-m >> /usr/local/src/tools/build/mk -m /usr/local/src/share/mk" make -f >> Makefile.inc1 DESTDIR= BOOTSTRAPPING=1004503 SSP_CFLAGS= MK_HTML=no >> NO_LINT=yes MK_MAN=no -DNO_PIC MK_PROFILE=no -DNO_SHARED -DNO_CPU_CFLAGS >> MK_WARNS=no MK_CTF=no MK_CLANG_EXTRAS=no MK_CLANG_FORMAT=no >> MK_CLANG_FULL=no MK_LLDB=no MK_TESTS=no MK_INCLUDES=yes bootstrap-tools >> ===> lib/clang/libllvmminimal (obj,all,install) >> /usr/obj/usr/local/src/tmp/usr/local/src/lib/clang/libllvmminimal created >> for /usr/local/src/lib/clang/libllvmminimal >> /usr/obj/usr/local/src/tmp/usr/local/src/lib/clang/libllvmminimal/Demangle >> created for /usr/local/src/lib/clang/libllvmminimal >> /usr/obj/usr/local/src/tmp/usr/local/src/lib/clang/libllvmminimal/Support >> created for /usr/local/src/lib/clang/libllvmminimal >> /usr/obj/usr/local/src/tmp/usr/local/src/lib/clang/libllvmminimal/TableGen >> created for /usr/local/src/lib/clang/libllvmminimal >> c++ -O2 -pipe -I/usr/local/src/lib/clang/include >> -I/usr/local/src/contrib/llvm-project/llvm/include -D__STDC_CONSTANT_MACROS >> -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -DHAVE_VCS_VERSION_INC -DNDEBUG >> -DLLVM_DEFAULT_TARGET_TRIPLE=\"x86_64-unknown-freebsd11.4\" >> -DLLVM_HOST_TRIPLE=\"x86_64-unknown-freebsd11.4\" >> -DDEFAULT_SYSROOT=\"/usr/obj/usr/local/src/tmp\" >> -DLLVM_TARGET_ENABLE_AARCH64 -DLLVM_TARGET_ENABLE_ARM >> -DLLVM_TARGET_ENABLE_MIPS -DLLVM_TARGET_ENABLE_POWERPC >> -DLLVM_TARGET_ENABLE_SPARC -DLLVM_TARGET_ENABLE_X86 >> -DLLVM_NATIVE_ASMPARSER=LLVMInitializeX86AsmParser >> -DLLVM_NATIVE_ASMPRINTER=LLVMInitializeX86AsmPrinter >> -DLLVM_NATIVE_DISASSEMBLER=LLVMInitializeX86Disassembler >> -DLLVM_NATIVE_TARGET=LLVMInitializeX86Target >> -DLLVM_NATIVE_TARGETINFO=LLVMInitializeX86TargetInfo >> -DLLVM_NATIVE_TARGETMC=LLVMInitializeX86TargetMC -ffunction-sections >> -fdata-sections -MD -MF.depend.Demangle_ItaniumDemangle.o >> -MTDemangle/ItaniumDemangle.o -Qunused-arguments >> -I/usr/obj/usr/local/src/tmp/legacy/usr/include -std=c++14 -fno-exceptions >> -fno-rtti -stdlib=libc++ -Wno-c++11-extensions -c >> /usr/local/src/contrib/llvm-project/llvm/lib/Demangle/ItaniumDemangle.cpp -o >> Demangle/ItaniumDemangle.o >> error: invalid value 'c++14' in '-std=c++14' >> *** Error code 1 >> >> Stop. >> make[3]: stopped in /usr/local/src/lib/clang/libllvmminimal >> *** Error code 1 >> >> How do I resolve this? > > It's going to be a little tricky, as clang 3.4.1 is too old to support > C++14 properly. I've tried using -std=c++1y since that was the old name > for -std=c++14, but it asserts quite early in the build. > > The best way forward is to attempt to buildworld (and buildkernel) with > a clean stable/11 checkout at r360783, which is just before clang 10.0.0 > got imported. You will also need to add: > > CXXFLAGS.clang=-Wno-out-of-line-declaration > > to your src.conf, otherwise it will get an unexpected error during the > build. > > After this has completed, install world and kernel and reboot, and then > you should have clang 9.0.0 and the corresponding libc++. This should > allow you to do a regular update to the latest stable/11. > > From there you should upgrade to stable/12, as 11 is going EOL in about > a month... :) As the OP is currently at 10-STABLE, would it also not work to upgrade from there to 11.0-RELEASE (releng/11.0) and then from there to do the recommended upgrade path to whatever is the desired endpoint? It might require more work, but it would be a known supported upgrade path. Just wondering... Cheers, Paul.