Skip to content

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

Open
@th0ma7

Description

@th0ma7

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 SynoCommunity/spksrc#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<std::vector<llvm::Value*, std::allocator<llvm::Value*> >&>(llvm::Type&, std::vector<llvm::Value*, std::allocator<llvm::Value*> >&, 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<llvm::Type*>)'
IGC/Release/libCMCLSupport.a(BuiltinTranslator.cpp.o): In function `llvm::Function* getGenXDeclarationForIdFromArgs<std::vector<llvm::Value*, std::allocator<llvm::Value*> > const&>(llvm::Type&, std::vector<llvm::Value*, std::allocator<llvm::Value*> > 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<llvm::Type*>)'
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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions