intel / intel/intel-graphics-compiler

Fail to cross-compile using Synology toolchain (x86_64 -> x86_64) using prebuilds

Open
#334 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
718
Forks
191
PR merge metrics
No merged PRs in 30d

Description

I'm the ffmpeg maintainer for the SynoCommunity which aims at porting open source software on Synology NAS using the Synology toolchain for their various Linux DSM versions. We're using our https://github.com/SynoCommunity/spksrc framework to cross-compile to various arch (arm, ppc, x64).

I'm working on enabling `--opencl` to ffmpeg for compatible intel based NAS (apollolake and above). My [WIP] PR is https://github.com/SynoCommunity/spksrc/pull/6166.

I was finally able to fully build intel-opencl-clang `140` branch with all corresponding requirements. From there I've been trying to get IGC to build using:
- `-DIGC_OPTION__CLANG_MODE='Prebuilds'`
- `-DIGC_OPTION__LLVM_MODE='Prebuilds'`
- `-DIGC_OPTION__SPIRV_TOOLS_MODE='Prebuilds'`

Configure works ok (after needing to also include LLVM `lld`, `libunwind` and also `Mako` python wheel (all of which I couldn't find any trace of in the build documentation btw).

When invoking the build process I hit the following issue:
```
[84/986] Building CXX object IGC/VectorCompiler/CMCL/tools/Translator/CMakeFiles/CMCLTranslatorTool.dir/Main.cpp.o
[85/986] Building CXX object IGC/Compiler/CMakeFiles/Compiler.dir/compiler_caps.cpp.o
[86/986] Building CXX object IGC/VectorCompiler/CMCL/lib/Support/CMakeFiles/CMCLSupport.dir/BuiltinTranslator.cpp.o
[87/986] Linking CXX static library IGC/Release/libCMCLSupport.a
[88/986] Building CXX object IGC/VectorCompiler/lib/Utils/GenX/CMakeFiles/VCGenXUtils.dir/TransformArgCopy.cpp.o
[89/986] Linking CXX executable IGC/Release/CMCLTranslatorTool
FAILED: IGC/Release/CMCLTranslatorTool
: && /home/spksrc/ffmpeg-opencl-140/spksrc/toolchain/syno-x64-7.1/work/x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu-g++ -I/home/spksrc/ffmpeg-opencl-140/spksrc/toolchain/syno-x64-7.1/work/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/sys-root/usr/include -I/home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/install/usr/local/intel-graphics-compiler/include -I/home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/SPIRV-LLVM-Translator/include -Wno-error=restrict -Wno-error=deprecated-declarations -I/home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/SPIRV-LLVM-Translator/include -Wno-error=restrict -Wno-error=deprecated-declarations -fexceptions -fdata-sections -ffunction-sections -O2 -pipe -fmessage-length=0 -march=corei7 -mstackrealign -fms-extensions -Werror -Wno-unused-parameter -Wno-missing-field-initializers -Wwrite-strings -Wno-long-long -Wswitch -Wno-sign-compare -Wno-unused-result -Wno-enum-compare -Wno-type-limits -Wno-ignored-qualifiers -Wno-shadow -Wformat -Wformat-security -Wno-extra -Wno-write-strings -finline -fno-strict-aliasing -msse -msse2 -msse3 -mssse3 -msse4 -msse4.1 -msse4.2 -Wno-unknown-pragmas -fPIC -Bsymbolic -D_FORTIFY_SOURCE=2 -fstack-protector -finline-functions -funswitch-loops -Wno-maybe-uninitialized -lrt -fno-rtti -fvisibility=hidden -fvisibility-inlines-hidden -DNDEBUG -g -L/home/spksrc/ffmpeg-opencl-140/spksrc/toolchain/syno-x64-7.1/work/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/sys-root/lib -L/home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/install/usr/local/intel-graphics-compiler/lib -Wl,--rpath-link,/home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/install/usr/local/intel-graphics-compiler/lib -Wl,--rpath,/usr/local/intel-graphics-compiler/lib -g -Wl,--gc-sections IGC/VectorCompiler/CMCL/tools/Translator/CMakeFiles/CMCLTranslatorTool.dir/Main.cpp.o -o IGC/Release/CMCLTranslatorTool -Wl,-rpath,/usr/local/intel-graphics-compiler/lib IGC/Release/libCMCLSupport.a /home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/install/usr/local/intel-graphics-compiler/lib/libLLVMAnalysis.a /home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/install/usr/local/intel-graphics-compiler/lib/libLLVMAsmParser.a /home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/install/usr/local/intel-graphics-compiler/lib/libLLVMBinaryFormat.a /home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/install/usr/local/intel-graphics-compiler/lib/libLLVMBitReader.a /home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/install/usr/local/intel-graphics-compiler/lib/libLLVMBitstreamReader.a /home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/install/usr/local/intel-graphics-compiler/lib/libLLVMCodeGen.a /home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/install/usr/local/intel-graphics-compiler/lib/libLLVMCore.a /home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/install/usr/local/intel-graphics-compiler/lib/libLLVMIRReader.a /home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/install/usr/local/intel-graphics-compiler/lib/libLLVMMC.a /home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/install/usr/local/intel-graphics-compiler/lib/libLLVMMCParser.a /home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/install/usr/local/intel-graphics-compiler/lib/libLLVMObject.a /home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/install/usr/local/intel-graphics-compiler/lib/libLLVMProfileData.a /home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/install/usr/local/intel-graphics-compiler/lib/libLLVMRemarks.a /home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/install/usr/local/intel-graphics-compiler/lib/libLLVMSupport.a /home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/install/usr/local/intel-graphics-compiler/lib/libLLVMDemangle.a /home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/install/usr/local/intel-graphics-compiler/lib/libLLVMBitWriter.a IGC/Release/libLLVMGenXIntrinsics.so /home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/install/usr/local/intel-graphics-compiler/lib/libLLVMCodeGen.a /home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/install/usr/local/intel-graphics-compiler/lib/libLLVMBitWriter.a /home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/install/usr/local/intel-graphics-compiler/lib/libLLVMScalarOpts.a /home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/install/usr/local/intel-graphics-compiler/lib/libLLVMAggressiveInstCombine.a /home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/install/usr/local/intel-graphics-compiler/lib/libLLVMInstCombine.a /home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/install/usr/local/intel-graphics-compiler/lib/libLLVMTarget.a /home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/install/usr/local/intel-graphics-compiler/lib/libLLVMTransformUtils.a /home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/install/usr/local/intel-graphics-compiler/lib/libLLVMAnalysis.a /home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/install/usr/local/intel-graphics-compiler/lib/libLLVMProfileData.a /home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/install/usr/local/intel-graphics-compiler/lib/libLLVMDebugInfoDWARF.a /home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/install/usr/local/intel-graphics-compiler/lib/libLLVMObject.a /home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/install/usr/local/intel-graphics-compiler/lib/libLLVMMCParser.a /home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/install/usr/local/intel-graphics-compiler/lib/libLLVMMC.a /home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/install/usr/local/intel-graphics-compiler/lib/libLLVMDebugInfoCodeView.a /home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/install/usr/local/intel-graphics-compiler/lib/libLLVMTextAPI.a /home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/install/usr/local/intel-graphics-compiler/lib/libLLVMAsmParser.a /home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/install/usr/local/intel-graphics-compiler/lib/libLLVMBitReader.a /home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/install/usr/local/intel-graphics-compiler/lib/libLLVMCore.a /home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/install/usr/local/intel-graphics-compiler/lib/libLLVMBinaryFormat.a /home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/install/usr/local/intel-graphics-compiler/lib/libLLVMRemarks.a /home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/install/usr/local/intel-graphics-compiler/lib/libLLVMBitstreamReader.a /home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/install/usr/local/intel-graphics-compiler/lib/libLLVMSupport.a /home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/install/usr/local/intel-graphics-compiler/lib/libLLVMDemangle.a -lrt -ldl -lpthread -lm /home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/install/usr/local/intel-graphics-compiler/lib/libz.so /home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/install/usr/local/intel-graphics-compiler/lib/libncursesw.so && :
IGC/Release/libCMCLSupport.a(BuiltinTranslator.cpp.o): In function `llvm::Function* getGenXDeclarationForIdFromArgs >&>(llvm::Type&, std::vector >&, llvm::GenXIntrinsic::ID, llvm::Module&)':
/home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/intel-graphics-compiler-igc-1.0.16900.23/build/../IGC/VectorCompiler/CMCL/lib/Support/BuiltinTranslator.cpp:113: undefined reference to `llvm::GenXIntrinsic::isOverloadedRet(unsigned int)'
/home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/intel-graphics-compiler-igc-1.0.16900.23/build/../IGC/VectorCompiler/CMCL/lib/Support/BuiltinTranslator.cpp:120: undefined reference to `llvm::GenXIntrinsic::isOverloadedArg(unsigned int, unsigned int)'
/home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/intel-graphics-compiler-igc-1.0.16900.23/build/../IGC/VectorCompiler/CMCL/lib/Support/BuiltinTranslator.cpp:124: undefined reference to `llvm::GenXIntrinsic::getGenXDeclaration(llvm::Module*, llvm::GenXIntrinsic::ID, llvm::ArrayRef)'
IGC/Release/libCMCLSupport.a(BuiltinTranslator.cpp.o): In function `llvm::Function* getGenXDeclarationForIdFromArgs > const&>(llvm::Type&, std::vector > const&, llvm::GenXIntrinsic::ID, llvm::Module&)':
/home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/intel-graphics-compiler-igc-1.0.16900.23/build/../IGC/VectorCompiler/CMCL/lib/Support/BuiltinTranslator.cpp:113: undefined reference to `llvm::GenXIntrinsic::isOverloadedRet(unsigned int)'
/home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/intel-graphics-compiler-igc-1.0.16900.23/build/../IGC/VectorCompiler/CMCL/lib/Support/BuiltinTranslator.cpp:120: undefined reference to `llvm::GenXIntrinsic::isOverloadedArg(unsigned int, unsigned int)'
/home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler/work-x64-7.1/intel-graphics-compiler-igc-1.0.16900.23/build/../IGC/VectorCompiler/CMCL/lib/Support/BuiltinTranslator.cpp:124: undefined reference to `llvm::GenXIntrinsic::getGenXDeclaration(llvm::Module*, llvm::GenXIntrinsic::ID, llvm::ArrayRef)'
collect2: error: ld returned 1 exit status
[90/986] Building CXX object IGC/Compiler/CMakeFiles/Compiler.dir/UserAddrSpaceMD.cpp.o
[91/986] Building CXX object IGC/Compiler/CMakeFiles/Compiler.dir/CodeGenContextWrapper.cpp.o
[92/986] Building CXX object IGC/Compiler/CMakeFiles/Compiler.dir/BlendToDiscard.cpp.o
[93/986] Building CXX object IGC/Compiler/CMakeFiles/Compiler.dir/FixInvalidFuncNamePass.cpp.o
[94/986] Building CXX object IGC/Compiler/CMakeFiles/Compiler.dir/PromoteResourceToDirectAS.cpp.o
[95/986] Building CXX object IGC/Compiler/CMakeFiles/Compiler.dir/CodeGenContext.cpp.o
[96/986] Building CXX object IGC/GenISAIntrinsics/CMakeFiles/GenISAIntrinsics.dir/GenIntrinsicFunctions.cpp.o
[97/986] Building CXX object IGC/Compiler/CMakeFiles/Compiler.dir/CustomUnsafeOptPass.cpp.o
[98/986] Building CXX object IGC/Compiler/CMakeFiles/Compiler.dir/PromoteStatelessToBindless.cpp.o
[99/986] Building CXX object IGC/Compiler/CMakeFiles/Compiler.dir/GenTTI.cpp.o
[100/986] Building CXX object IGC/Compiler/CMakeFiles/Compiler.dir/CustomLoopOpt.cpp.o
[101/986] Building CXX object IGC/Compiler/CMakeFiles/Compiler.dir/FixResourcePtr.cpp.o
[102/986] Building CXX object IGC/Compiler/CMakeFiles/Compiler.dir/CustomSafeOptPass.cpp.o
ninja: build stopped: subcommand failed.
make[2]: *** [../../mk/spksrc.cross-ninja.mk:61: ninja_compile_target] Error 1
make[2]: Leaving directory '/home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler'
make[1]: *** [../../mk/spksrc.supported.mk:71: build-arch-x64-7.1] Error 1
make[1]: Leaving directory '/home/spksrc/ffmpeg-opencl-140/spksrc/cross/intel-graphics-compiler'
```

Full build log available here: [build-x64-7.1.log](https://github.com/user-attachments/files/16192766/build-x64-7.1.log)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.