intel / intel-graphics-compiler

Other
594 stars 155 forks source link

vcb segfaults building with musl #332

Open zlice opened 2 months ago

zlice commented 2 months ago

Trying to build for musl segfaults when running vcb for VCBuiltins64_XeLPG. You need to set CXXFLAGS=-include cstdint or include it in ZEInfo.hpp for musl.

Using void linux and chrooting to the build environment to run the failed command shows the otherwise silent Segmentation fault.

[867/973] vc_generate_optimized_bif: compile optimized BiF for XeLPGPlus
FAILED: IGC/VectorCompiler/lib/BiF/CMakeFiles/VCBuiltins64-XeLPGPlus-BC IGC/VectorCompiler/lib/BiF/VCBuiltins64_XeLPGPlus.vccg.bc /builddir/intel-graphics-compiler-1.0.16695.4/build/IGC/VectorCompiler/lib/BiF/CMakeFiles/VCBuiltins64-XeLPGPlus-BC /builddir/intel-graphics-compiler-1.0.16695.4/build/IGC/VectorCompiler/lib/BiF/VCBuiltins64_XeLPGPlus.vccg.bc 
cd /builddir/intel-graphics-compiler-1.0.16695.4/build/IGC/VectorCompiler/lib/BiF && /builddir/intel-graphics-compiler-1.0.16695.4/build/IGC/Release/vcb -o VCBuiltins64_XeLPGPlus.vccg.bc -cpu XeLPGPlus VCBuiltins64.opt.bc
[868/973] vc_generate_optimized_bif: compile optimized BiF for XeLPG
FAILED: IGC/VectorCompiler/lib/BiF/CMakeFiles/VCBuiltins64-XeLPG-BC IGC/VectorCompiler/lib/BiF/VCBuiltins64_XeLPG.vccg.bc /builddir/intel-graphics-compiler-1.0.16695.4/build/IGC/VectorCompiler/lib/BiF/CMakeFiles/VCBuiltins64-XeLPG-BC /builddir/intel-graphics-compiler-1.0.16695.4/build/IGC/VectorCompiler/lib/BiF/VCBuiltins64_XeLPG.vccg.bc 
cd /builddir/intel-graphics-compiler-1.0.16695.4/build/IGC/VectorCompiler/lib/BiF && /builddir/intel-graphics-compiler-1.0.16695.4/build/IGC/Release/vcb -o VCBuiltins64_XeLPG.vccg.bc -cpu XeLPG VCBuiltins64.opt.bc
[869/973] vc_generate_optimized_bif: compile optimized BiF for Gen11
[870/973] vc_generate_optimized_bif: compile optimized BiF for XeLP
[871/973] vc_generate_optimized_bif: compile optimized BiF for XeHPG
ninja: build stopped: subcommand failed.
Thread 1 (process 5333 "vcb"):
#0  0x00007ffff165c100 in llvm::MetadataTracking::untrack(void*, llvm::Metadata&) () from /lib/libLLVM-15.so
#1  0x00007ffff1664320 in llvm::Instruction::setMetadata(llvm::StringRef, llvm::MDNode*) () from /lib/libLLVM-15.so
#2  0x000055555589b020 in (anonymous namespace)::GenXPromotePredicate::runOnFunction (this=<optimized out>, F=...) at /usr/include/llvm/ADT/StringRef.h:83
#3  0x00007ffff1652081 in llvm::FPPassManager::runOnFunction(llvm::Function&) () from /lib/libLLVM-15.so
#4  0x00007ffff165240c in llvm::FPPassManager::runOnModule(llvm::Module&) () from /lib/libLLVM-15.so
#5  0x00007ffff1652dae in llvm::legacy::PassManagerImpl::run(llvm::Module&) () from /lib/libLLVM-15.so
#6  0x000055555566e63a in vcbCompileModule (M=std::unique_ptr<llvm::Module> = {...}, Platform="") at /usr/include/c++/13.2/bits/unique_ptr.h:199
#7  0x000055555564f13e in main (Argc=<optimized out>, Argv=<optimized out>) at /builddir/intel-graphics-compiler-1.0.16695.4/IGC/VectorCompiler/utils/vcb/vcb.cpp:160
pszymich commented 2 months ago

Hi @zlice, LLVM 15 is not supported, please use LLVM 14.

zlice commented 2 months ago

Thanks, I guess from the LLVM16 issue I assumed 15 was current. The various opencl related packages having versions and references to newer llvm 17/18 and such was confusing. I guess 14 doesn't build on void, something swith swig? I will wait for 16 support I guess.