Discussion:
Unable to build 12-current/amd64
(too old to reply)
Peter Jeremy
2017-12-23 09:56:33 UTC
Permalink
Since r326496, buildworld on my 12-current/amd64 system has consistently
died as follows. I have no problems building on i386 or building
12-current/amd64 on 11-stable.

...
stage 3: cross tools
--------------------------------------------------------------
cd /usr/src; INSTALL="sh /usr/src/tools/install.sh" TOOLS_PREFIX=/usr/obj/usr/src/amd64.amd64/tmp PATH=/usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/sbin:/usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/bin:/usr/obj/usr/src/amd64.amd64/tmp/legacy/bin:/sbin:/bin:/usr/sbin:/usr/bin WORLDTMP=/usr/obj/usr/src/amd64.amd64/tmp MAKEFLAGS="-m /usr/src/tools/build/mk -m /usr/src/share/mk" make -f Makefile.inc1 DESTDIR= OBJTOP='/usr/obj/usr/src/amd64.amd64/tmp/obj-tools' OBJROOT='${OBJTOP}/' MAKEOBJDIRPREFIX= BOOTSTRAPPING=1200054 BWPHASE=cross-tools 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_FULL=no MK_LLDB=no MK_TESTS=no MK_INCLUDES=yes TARGET=amd64 TARGET_ARCH=amd64 MK_GDB=no MK_LLD_IS_LD=no MK_TESTS=no cross-tools
...
===> lib/clang/libclang (all)
...
c++ -O2 -pipe -I/usr/obj/usr/src/amd64.amd64/tmp/obj-tools/lib/clang/libclang -I/usr/obj/usr/src/amd64.amd64/tmp/obj-tools/lib/clang/libllvm -I/usr/src/contrib/llvm/tools/clang/lib/Driver -I/usr/src/contrib/llvm/tools/clang/include -I/usr/src/lib/clang/include -I/usr/src/contrib/llvm/include -DLLVM_BUILD_GLOBAL_ISEL -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -DLLVM_DEFAULT_TARGET_TRIPLE=\"x86_64-unknown-freebsd12.0\" -DLLVM_HOST_TRIPLE=\"x86_64-unknown-freebsd12.0\" -DDEFAULT_SYSROOT=\"/usr/obj/usr/src/amd64.amd64/tmp\" -ffunction-sections -fdata-sections -gline-tables-only -MD -MF.depend.Basic_SourceLocation.o -MTBasic/SourceLocation.o -Qunused-arguments -I/usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/include -std=c++11 -fno-exceptions -fno-rtti -gline-tables-only -stdlib=libc++ -Wno-c++11-extensions -c /usr/src/contrib/llvm/tools/clang/lib/Basic/SourceLocation.cpp -o Basic/SourceLocation.o
c++ -O2 -pipe -I/usr/obj/usr/src/amd64.amd64/tmp/obj-tools/lib/clang/libclang -I/usr/obj/usr/src/amd64.amd64/tmp/obj-tools/lib/clang/libllvm -I/usr/src/contrib/llvm/tools/clang/lib/Driver -I/usr/src/contrib/llvm/tools/clang/include -I/usr/src/lib/clang/include -I/usr/src/contrib/llvm/include -DLLVM_BUILD_GLOBAL_ISEL -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -DLLVM_DEFAULT_TARGET_TRIPLE=\"x86_64-unknown-freebsd12.0\" -DLLVM_HOST_TRIPLE=\"x86_64-unknown-freebsd12.0\" -DDEFAULT_SYSROOT=\"/usr/obj/usr/src/amd64.amd64/tmp\" -ffunction-sections -fdata-sections -gline-tables-only -MD -MF.depend.Basic_SourceManager.o -MTBasic/SourceManager.o -Qunused-arguments -I/usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/include -std=c++11 -fno-exceptions -fno-rtti -gline-tables-only -stdlib=libc++ -Wno-c++11-extensions -c /usr/src/contrib/llvm/tools/clang/lib/Basic/SourceManager.cpp -o Basic/SourceManager.o
/usr/src/contrib/llvm/tools/clang/lib/Basic/SourceManager.cpp:1166:10: fatal error: 'emmintrin.h' file not found
#include <emmintrin.h>
^~~~~~~~~~~~~
1 error generated.
*** Error code 1

Stop.
make[4]: stopped in /usr/src/lib/clang/libclang

I'm building on a 12.0-CURRENT VirtualBox guest at r326430. I've checked
that my /usr/src is clean and deleted /usr/obj to no effect. I have dug
into SourceManager.cpp and the #include is protected by a #if __SSE2__,
which is relying on clang internal checks to define (and my CPU supports
SSE2). Does anyone have any ideas to explain what is going on?
--
Peter Jeremy
Dimitry Andric
2017-12-23 12:42:40 UTC
Permalink
Post by Peter Jeremy
Since r326496, buildworld on my 12-current/amd64 system has consistently
died as follows.
...
Post by Peter Jeremy
/usr/src/contrib/llvm/tools/clang/lib/Basic/SourceManager.cpp:1166:10: fatal error: 'emmintrin.h' file not found
#include <emmintrin.h>
^~~~~~~~~~~~~
1 error generated.
*** Error code 1
Stop.
make[4]: stopped in /usr/src/lib/clang/libclang
I'm building on a 12.0-CURRENT VirtualBox guest at r326430. I've checked
that my /usr/src is clean and deleted /usr/obj to no effect. I have dug
into SourceManager.cpp and the #include is protected by a #if __SSE2__,
which is relying on clang internal checks to define (and my CPU supports
SSE2). Does anyone have any ideas to explain what is going on?
First of all, does your host system have emmintrin.h? E.g. what is the
output of "find /usr/lib/clang -name emmintrin.h" ?

Second, I think this scenario might be possible if you force -march or
other CPU type flags into CFLAGS, instead of using CPUTYPE. What is the
contents of your make.conf, and other build environment variables?

-Dimitry

Continue reading on narkive:
Loading...