AkarinVS / vapoursynth-plugin

My experimental VapourSynth plugin: (1) an enhanced LLVM-based std.Expr (aka lexpr), Select, PropExpr, Text and Tmpl. (2) DLISR. (3) DLVFX (4) CAMBI.
GNU Lesser General Public License v3.0
37 stars 8 forks source link

Linux build error #6

Closed NSQY closed 2 years ago

NSQY commented 2 years ago

Hi, I am facing some errors and I do not know how to proceed. I see LLVM 10-12 is suggested, but I am using 13.0.0. Previous commits compile (6190674), but with a runtime error: symbol lookup error: /usr/lib/vapoursynth/libakarin.so: undefined symbol: _Z13ngxInitializePFvPKcS0_S0_iiP8VSPluginEPFvS0_S0_PFvPK5VSMapPS5_PvP6VSCorePK5VSAPIES9_S2_ES2_ I have placed the build log for this at the bottom.

Current master:

❯ meson build
ninja -C build install

The Meson build system
Version: 0.60.1
Source dir: /home/nsqy/Documents/bin/encoding/plugins/cpu/vapoursynth-plugin
Build dir: /home/nsqy/Documents/bin/encoding/plugins/cpu/vapoursynth-plugin/build
Build type: native build
Project name: Plugin
Project version: 8
C compiler for the host machine: cc (gcc 11.1.0 "cc (GCC) 11.1.0")
C linker for the host machine: cc ld.bfd 2.36.1
C++ compiler for the host machine: c++ (gcc 11.1.0 "c++ (GCC) 11.1.0")
C++ linker for the host machine: c++ ld.bfd 2.36.1
Host machine cpu family: x86_64
Host machine cpu: x86_64
Program /usr/bin/meson found: YES (/usr/bin/meson)
llvm-config found: YES (/usr/bin/llvm-config) 13.0.0
Run-time dependency LLVM (modules: asmprinter, executionengine, native, orcjit, target) found: YES 13.0.0
Found pkg-config: /usr/bin/pkg-config (1.8.0)
Run-time dependency vapoursynth found: YES 57
Build targets in project: 2

Found ninja-1.10.2 at /usr/bin/ninja
ninja: Entering directory `build'                                                                   
[10/21] Compiling C object libakarin.so.p/banding_cambifilter.c.o
../banding/cambifilter.c: In function ‘cambiGetFrame’:
../banding/cambifilter.c:48:13: warning: variable ‘err’ set but not used [-Wunused-but-set-variable]
   48 |         int err = cambi_init(&s, pic.w[0], pic.h[0]);
      |             ^~~
[16/21] Compiling C++ object libakarin.so.p/expr2_reactor_Reactor.cpp.o
../expr2/reactor/Reactor.cpp: In instantiation of ‘rr::RValue<FloatT> rr::DoRcp(rr::RValue<FloatT>, rr::Precision, bool, bool) [with T = rr::Float4]’:
../expr2/reactor/Reactor.cpp:5310:14:   required from here
../expr2/reactor/Reactor.cpp:5301:43: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
 5301 |                 rcp = Min(rcp, T((float &)big));
      |                                           ^~~
../expr2/reactor/Reactor.cpp: In instantiation of ‘rr::RValue<FloatT> rr::DoRcp(rr::RValue<FloatT>, rr::Precision, bool, bool) [with T = rr::Float]’:
../expr2/reactor/Reactor.cpp:5316:14:   required from here
../expr2/reactor/Reactor.cpp:5301:43: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
[17/21] Compiling C++ object libakarin.so.p/expr2_reactor_LLVMJIT.cpp.o
FAILED: libakarin.so.p/expr2_reactor_LLVMJIT.cpp.o 
c++ -Ilibakarin.so.p -I. -I.. -I../expr2/reactor -I/usr/include -I/usr/include/vapoursynth -fvisibility=hidden -fdiagnostics-color=always -DNDEBUG -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -std=c++17 -O3 -fPIC -pthread -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -MD -MQ libakarin.so.p/expr2_reactor_LLVMJIT.cpp.o -MF libakarin.so.p/expr2_reactor_LLVMJIT.cpp.o.d -o libakarin.so.p/expr2_reactor_LLVMJIT.cpp.o -c ../expr2/reactor/LLVMJIT.cpp
../expr2/reactor/LLVMJIT.cpp: In constructor ‘{anonymous}::JITRoutine::JITRoutine(std::unique_ptr<llvm::Module>, std::unique_ptr<llvm::LLVMContext>, const char*, llvm::Function**, size_t, const rr::Config&)’:
../expr2/reactor/LLVMJIT.cpp:719:30: error: no matching function for call to ‘llvm::orc::ExecutionSession::ExecutionSession()’
  719 |             , addresses(count)
      |                              ^
In file included from /usr/include/llvm/ExecutionEngine/Orc/Layer.h:16,
                 from /usr/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h:18,
                 from /usr/include/llvm/ExecutionEngine/Orc/CompileUtils.h:16,
                 from ../expr2/reactor/LLVMJIT.cpp:28:
/usr/include/llvm/ExecutionEngine/Orc/Core.h:1304:3: note: candidate: ‘llvm::orc::ExecutionSession::ExecutionSession(std::unique_ptr<llvm::orc::ExecutorProcessControl>)’
 1304 |   ExecutionSession(std::unique_ptr<ExecutorProcessControl> EPC);
      |   ^~~~~~~~~~~~~~~~
/usr/include/llvm/ExecutionEngine/Orc/Core.h:1304:3: note:   candidate expects 1 argument, 0 provided
[18/21] Compiling C++ object libakarin.so.p/expr2_reactor_LLVMReactor.cpp.o
../expr2/reactor/LLVMReactor.cpp: In static member function ‘static rr::Value* rr::Nucleus::createLoad(rr::Value*, rr::Type*, bool, unsigned int, bool, std::memory_order)’:
../expr2/reactor/LLVMReactor.cpp:927:73: warning: ‘llvm::LoadInst* llvm::IRBuilderBase::CreateAlignedLoad(llvm::Value*, llvm::MaybeAlign, bool, const llvm::Twine&)’ is deprecated: Use the version that explicitly specifies the loaded type instead [-Wdeprecated-declarations]
  927 |                                 return V(jit->builder->CreateAlignedLoad(V(ptr), llvm::MaybeAlign(alignment), isVolatile));
      |                                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/llvm/Support/ErrorHandling.h:17,
                 from /usr/include/llvm/ADT/Hashing.h:48,
                 from /usr/include/llvm/ADT/ArrayRef.h:12,
                 from /usr/include/llvm/IR/IRBuilder.h:18,
                 from ../expr2/reactor/LLVMReactor.hpp:29,
                 from ../expr2/reactor/LLVMReactor.cpp:15:
/usr/include/llvm/IR/IRBuilder.h:1737:3: note: declared here
 1737 |   LLVM_ATTRIBUTE_DEPRECATED(LoadInst *CreateAlignedLoad(Value *Ptr,
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~
../expr2/reactor/LLVMReactor.cpp:933:76: warning: ‘llvm::LoadInst* llvm::IRBuilderBase::CreateAlignedLoad(llvm::Value*, llvm::MaybeAlign, bool, const llvm::Twine&)’ is deprecated: Use the version that explicitly specifies the loaded type instead [-Wdeprecated-declarations]
  933 |                                 auto load = jit->builder->CreateAlignedLoad(V(ptr), llvm::MaybeAlign(alignment), isVolatile);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/llvm/Support/ErrorHandling.h:17,
                 from /usr/include/llvm/ADT/Hashing.h:48,
                 from /usr/include/llvm/ADT/ArrayRef.h:12,
                 from /usr/include/llvm/IR/IRBuilder.h:18,
                 from ../expr2/reactor/LLVMReactor.hpp:29,
                 from ../expr2/reactor/LLVMReactor.cpp:15:
/usr/include/llvm/IR/IRBuilder.h:1737:3: note: declared here
 1737 |   LLVM_ATTRIBUTE_DEPRECATED(LoadInst *CreateAlignedLoad(Value *Ptr,
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~
../expr2/reactor/LLVMReactor.cpp:945:76: warning: ‘llvm::LoadInst* llvm::IRBuilderBase::CreateAlignedLoad(llvm::Value*, llvm::MaybeAlign, bool, const llvm::Twine&)’ is deprecated: Use the version that explicitly specifies the loaded type instead [-Wdeprecated-declarations]
  945 |                                 auto load = jit->builder->CreateAlignedLoad(ptrCast, llvm::MaybeAlign(alignment), isVolatile);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/llvm/Support/ErrorHandling.h:17,
                 from /usr/include/llvm/ADT/Hashing.h:48,
                 from /usr/include/llvm/ADT/ArrayRef.h:12,
                 from /usr/include/llvm/IR/IRBuilder.h:18,
                 from ../expr2/reactor/LLVMReactor.hpp:29,
                 from ../expr2/reactor/LLVMReactor.cpp:15:
/usr/include/llvm/IR/IRBuilder.h:1737:3: note: declared here
 1737 |   LLVM_ATTRIBUTE_DEPRECATED(LoadInst *CreateAlignedLoad(Value *Ptr,
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~
../expr2/reactor/LLVMReactor.cpp:969:66: warning: ‘llvm::LoadInst* llvm::IRBuilderBase::CreateLoad(llvm::Value*, const llvm::Twine&)’ is deprecated: Use the version that explicitly specifies the loaded type instead [-Wdeprecated-declarations]
  969 |                                 return V(jit->builder->CreateLoad(V(out)));
      |                                          ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
In file included from /usr/include/llvm/Support/ErrorHandling.h:17,
                 from /usr/include/llvm/ADT/Hashing.h:48,
                 from /usr/include/llvm/ADT/ArrayRef.h:12,
                 from /usr/include/llvm/IR/IRBuilder.h:18,
                 from ../expr2/reactor/LLVMReactor.hpp:29,
                 from ../expr2/reactor/LLVMReactor.cpp:15:
/usr/include/llvm/IR/IRBuilder.h:1678:3: note: declared here
 1678 |   LLVM_ATTRIBUTE_DEPRECATED(LoadInst *CreateLoad(Value *Ptr,
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~
../expr2/reactor/LLVMReactor.cpp: In static member function ‘static void rr::Nucleus::createMaskedStore(rr::Value*, rr::Value*, rr::Value*, unsigned int)’:
../expr2/reactor/LLVMReactor.cpp:1136:61: warning: ‘llvm::Value* llvm::IRBuilderBase::CreateGEP(llvm::Value*, llvm::ArrayRef<llvm::Value*>, const llvm::Twine&)’ is deprecated: Use the version with explicit element type instead [-Wdeprecated-declarations]
 1136 |                         auto elPtr = jit->builder->CreateGEP(V(ptr), idx);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
In file included from /usr/include/llvm/Support/ErrorHandling.h:17,
                 from /usr/include/llvm/ADT/Hashing.h:48,
                 from /usr/include/llvm/ADT/ArrayRef.h:12,
                 from /usr/include/llvm/IR/IRBuilder.h:18,
                 from ../expr2/reactor/LLVMReactor.hpp:29,
                 from ../expr2/reactor/LLVMReactor.cpp:15:
/usr/include/llvm/IR/IRBuilder.h:1787:3: note: declared here
 1787 |   LLVM_ATTRIBUTE_DEPRECATED(
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~
../expr2/reactor/LLVMReactor.cpp: In function ‘llvm::Value* rr::createGather(llvm::Value*, llvm::Type*, llvm::Value*, llvm::Value*, unsigned int, bool)’:
../expr2/reactor/LLVMReactor.cpp:1161:46: warning: ‘llvm::Value* llvm::IRBuilderBase::CreateGEP(llvm::Value*, llvm::ArrayRef<llvm::Value*>, const llvm::Twine&)’ is deprecated: Use the version with explicit element type instead [-Wdeprecated-declarations]
 1161 |         auto i8Ptrs = jit->builder->CreateGEP(i8Base, offsets);
      |                       ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
In file included from /usr/include/llvm/Support/ErrorHandling.h:17,
                 from /usr/include/llvm/ADT/Hashing.h:48,
                 from /usr/include/llvm/ADT/ArrayRef.h:12,
                 from /usr/include/llvm/IR/IRBuilder.h:18,
                 from ../expr2/reactor/LLVMReactor.hpp:29,
                 from ../expr2/reactor/LLVMReactor.cpp:15:
/usr/include/llvm/IR/IRBuilder.h:1787:3: note: declared here
 1787 |   LLVM_ATTRIBUTE_DEPRECATED(
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~
../expr2/reactor/LLVMReactor.cpp: In function ‘void rr::createScatter(llvm::Value*, llvm::Value*, llvm::Value*, llvm::Value*, unsigned int)’:
../expr2/reactor/LLVMReactor.cpp:1242:46: warning: ‘llvm::Value* llvm::IRBuilderBase::CreateGEP(llvm::Value*, llvm::ArrayRef<llvm::Value*>, const llvm::Twine&)’ is deprecated: Use the version with explicit element type instead [-Wdeprecated-declarations]
 1242 |         auto i8Ptrs = jit->builder->CreateGEP(i8Base, offsets);
      |                       ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
In file included from /usr/include/llvm/Support/ErrorHandling.h:17,
                 from /usr/include/llvm/ADT/Hashing.h:48,
                 from /usr/include/llvm/ADT/ArrayRef.h:12,
                 from /usr/include/llvm/IR/IRBuilder.h:18,
                 from ../expr2/reactor/LLVMReactor.hpp:29,
                 from ../expr2/reactor/LLVMReactor.cpp:15:
/usr/include/llvm/IR/IRBuilder.h:1787:3: note: declared here
 1787 |   LLVM_ATTRIBUTE_DEPRECATED(
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~
../expr2/reactor/LLVMReactor.cpp: In static member function ‘static rr::Value* rr::Nucleus::createGEP(rr::Value*, rr::Type*, rr::Value*, bool)’:
../expr2/reactor/LLVMReactor.cpp:1319:49: warning: ‘llvm::Value* llvm::IRBuilderBase::CreateGEP(llvm::Value*, llvm::ArrayRef<llvm::Value*>, const llvm::Twine&)’ is deprecated: Use the version with explicit element type instead [-Wdeprecated-declarations]
 1319 |                 return V(jit->builder->CreateGEP(V(ptr), V(index)));
      |                          ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from /usr/include/llvm/Support/ErrorHandling.h:17,
                 from /usr/include/llvm/ADT/Hashing.h:48,
                 from /usr/include/llvm/ADT/ArrayRef.h:12,
                 from /usr/include/llvm/IR/IRBuilder.h:18,
                 from ../expr2/reactor/LLVMReactor.hpp:29,
                 from ../expr2/reactor/LLVMReactor.cpp:15:
/usr/include/llvm/IR/IRBuilder.h:1787:3: note: declared here
 1787 |   LLVM_ATTRIBUTE_DEPRECATED(
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~
../expr2/reactor/LLVMReactor.cpp:1329:38: warning: ‘llvm::Value* llvm::IRBuilderBase::CreateGEP(llvm::Value*, llvm::ArrayRef<llvm::Value*>, const llvm::Twine&)’ is deprecated: Use the version with explicit element type instead [-Wdeprecated-declarations]
 1329 |             V(jit->builder->CreateGEP(V(createBitCast(ptr, T(llvm::PointerType::get(T(Byte::type()), 0)))), V(index))),
      |               ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/llvm/Support/ErrorHandling.h:17,
                 from /usr/include/llvm/ADT/Hashing.h:48,
                 from /usr/include/llvm/ADT/ArrayRef.h:12,
                 from /usr/include/llvm/IR/IRBuilder.h:18,
                 from ../expr2/reactor/LLVMReactor.hpp:29,
                 from ../expr2/reactor/LLVMReactor.cpp:15:
/usr/include/llvm/IR/IRBuilder.h:1787:3: note: declared here
 1787 |   LLVM_ATTRIBUTE_DEPRECATED(
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~
../expr2/reactor/LLVMReactor.cpp: In function ‘void {anonymous}::promoteFunctionToCoroutine()’:
../expr2/reactor/LLVMReactor.cpp:4636:56: warning: ‘llvm::LoadInst* llvm::IRBuilderBase::CreateLoad(llvm::Value*, const llvm::Twine&)’ is deprecated: Use the version that explicitly specifies the loaded type instead [-Wdeprecated-declarations]
 4636 |                 auto promise = jit->builder->CreateLoad(jit->builder->CreatePointerCast(promisePtr, promisePtrTy));
      |                                ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/llvm/Support/ErrorHandling.h:17,
                 from /usr/include/llvm/ADT/Hashing.h:48,
                 from /usr/include/llvm/ADT/ArrayRef.h:12,
                 from /usr/include/llvm/IR/IRBuilder.h:18,
                 from ../expr2/reactor/LLVMReactor.hpp:29,
                 from ../expr2/reactor/LLVMReactor.cpp:15:
/usr/include/llvm/IR/IRBuilder.h:1678:3: note: declared here
 1678 |   LLVM_ATTRIBUTE_DEPRECATED(LoadInst *CreateLoad(Value *Ptr,
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../expr2/reactor/OptimalIntrinsics.hpp:22,
                 from ../expr2/reactor/LLVMReactor.cpp:20:
../expr2/reactor/OptimalIntrinsics.cpp: In instantiation of ‘FloatT rr::{anonymous}::Reciprocal(rr::RValue<FloatT>, bool, bool, bool) [with FloatT = rr::Float4]’:
../expr2/reactor/OptimalIntrinsics.cpp:73:23:   required from ‘FloatT rr::{anonymous}::SinOrCos(rr::RValue<FloatT>, bool) [with FloatT = rr::Float4]’
../expr2/reactor/OptimalIntrinsics.cpp:108:17:   required from ‘FloatT rr::optimal::Sin(rr::RValue<FloatT>) [with FloatT = rr::Float4]’
../expr2/reactor/LLVMReactor.cpp:3561:21:   required from ‘rr::RValue<FloatT> rr::Sin(rr::RValue<FloatT>) [with FloatT = rr::Float4]’
../expr2/reactor/Reactor.hpp:2615:72:   required from here
../expr2/reactor/OptimalIntrinsics.cpp:50:48: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
   50 |                 rcp = Min(rcp, FloatT((float &)big));
      |                                                ^~~
../expr2/reactor/OptimalIntrinsics.cpp: In instantiation of ‘FloatT rr::{anonymous}::Reciprocal(rr::RValue<FloatT>, bool, bool, bool) [with FloatT = rr::Float8]’:
../expr2/reactor/OptimalIntrinsics.cpp:73:23:   required from ‘FloatT rr::{anonymous}::SinOrCos(rr::RValue<FloatT>, bool) [with FloatT = rr::Float8]’
../expr2/reactor/OptimalIntrinsics.cpp:108:17:   required from ‘FloatT rr::optimal::Sin(rr::RValue<FloatT>) [with FloatT = rr::Float8]’
../expr2/reactor/LLVMReactor.cpp:3561:21:   required from ‘rr::RValue<FloatT> rr::Sin(rr::RValue<FloatT>) [with FloatT = rr::Float8]’
../expr2/reactor/Reactor.hpp:2773:72:   required from here
../expr2/reactor/OptimalIntrinsics.cpp:50:48: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
[19/21] Compiling C++ object libakarin.so.p/expr2_exprfilter.cpp.o
../expr2/exprfilter.cpp:149:6: warning: ‘bool {anonymous}::operator!=(const {anonymous}::ExprOp&, const {anonymous}::ExprOp&)’ defined but not used [-Wunused-function]
  149 | bool operator!=(const ExprOp &lhs, const ExprOp &rhs) { return !(lhs == rhs); }
      |      ^~~~~~~~
ninja: build stopped: subcommand failed.

6190674:

[6/8] Compiling C++ object libakarin.so.p/expr_exprfilter.cpp.o
In file included from ../expr/exprfilter.cpp:48:
../expr/jitasm.h:8222:59: warning: ignoring attributes on template argument ‘__m64’ [-Wignored-attributes]
 8222 |         template<int N> struct ArgTraits_cdecl<N, __m64, 8> {enum {stack_size = 0, flag = ARG_IN_MMX | ARG_TYPE_VALUE, reg_id = MM0};};
      |                                                           ^
../expr/jitasm.h:8227:61: warning: ignoring attributes on template argument ‘__m128’ [-Wignored-attributes]
 8227 |         template<int N> struct ArgTraits_cdecl<N, __m128, 16> {enum {stack_size = 0, flag = ARG_IN_XMM_SP | ARG_TYPE_VALUE, reg_id = XMM0};};
      |                                                             ^
../expr/jitasm.h:8232:62: warning: ignoring attributes on template argument ‘__m128d’ [-Wignored-attributes]
 8232 |         template<int N> struct ArgTraits_cdecl<N, __m128d, 16> {enum {stack_size = 0, flag = ARG_IN_XMM_DP | ARG_TYPE_VALUE, reg_id = XMM0};};
      |                                                              ^
../expr/jitasm.h:8235:62: warning: ignoring attributes on template argument ‘__m128i’ [-Wignored-attributes]
 8235 |         template<int N> struct ArgTraits_cdecl<N, __m128i, 16> {enum {stack_size = 0, flag = ARG_IN_XMM_INT | ARG_TYPE_VALUE, reg_id = XMM0};};
      |                                                              ^
../expr/jitasm.h:8292:54: warning: ignoring attributes on template argument ‘__m64’ [-Wignored-attributes]
 8292 |         template<> struct ArgTraits_win64<0, __m64, 8> : ArgTraits_win64_reg<RCX, ARG_IN_REG | ARG_TYPE_VALUE> {};
      |                                                      ^
../expr/jitasm.h:8293:54: warning: ignoring attributes on template argument ‘__m64’ [-Wignored-attributes]
 8293 |         template<> struct ArgTraits_win64<1, __m64, 8> : ArgTraits_win64_reg<RDX, ARG_IN_REG | ARG_TYPE_VALUE> {};
      |                                                      ^
../expr/jitasm.h:8294:54: warning: ignoring attributes on template argument ‘__m64’ [-Wignored-attributes]
 8294 |         template<> struct ArgTraits_win64<2, __m64, 8> : ArgTraits_win64_reg<R8, ARG_IN_REG | ARG_TYPE_VALUE> {};
      |                                                      ^
../expr/jitasm.h:8295:54: warning: ignoring attributes on template argument ‘__m64’ [-Wignored-attributes]
 8295 |         template<> struct ArgTraits_win64<3, __m64, 8> : ArgTraits_win64_reg<R9, ARG_IN_REG | ARG_TYPE_VALUE> {};
      |                                                      ^
../expr/jitasm.h:8355:79: warning: ignoring attributes on template argument ‘__m64’ [-Wignored-attributes]
 8355 |         template<int N> struct ArgTraits_linux64<N, __m64,       sizeof(__m64)>   : ArgTraits_linux64_sse<ARG_IN_XMM_INT | ARG_TYPE_VALUE> {};
      |                                                                               ^
../expr/jitasm.h:8358:80: warning: ignoring attributes on template argument ‘__m128’ [-Wignored-attributes]
 8358 |         template<int N> struct ArgTraits_linux64<N, __m128,      sizeof(__m128)>  : ArgTraits_linux64_sse<ARG_IN_XMM_SP | ARG_TYPE_VALUE> {};
      |                                                                                ^
../expr/jitasm.h:8361:77: warning: ignoring attributes on template argument ‘__m128d’ [-Wignored-attributes]
 8361 |         template<int N> struct ArgTraits_linux64<N, __m128d, sizeof(__m128d)> : ArgTraits_linux64_sse<ARG_IN_XMM_DP | ARG_TYPE_VALUE> {};
      |                                                                             ^
../expr/jitasm.h:8362:77: warning: ignoring attributes on template argument ‘__m128i’ [-Wignored-attributes]
 8362 |         template<int N> struct ArgTraits_linux64<N, __m128i, sizeof(__m128i)> : ArgTraits_linux64_sse<ARG_IN_XMM_INT | ARG_TYPE_VALUE> {};
      |                                                                             ^
../expr/jitasm.h: In constructor ‘jitasm::detail::ResultT<float, 4>::ResultT(float)’:
../expr/jitasm.h:8634:56: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
 8634 |                 ResultT(const float imm) : val_(Imm32(*(uint32*)&imm)) {}
      |                                                        ^~~~~~~~~~~~~
../expr/jitasm.h: In member function ‘void jitasm::detail::ResultT<double, 8>::StoreResult(jitasm::Frontend&, const jitasm::detail::ResultDest&)’:
../expr/jitasm.h:8709:64: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
 8709 |                                 f.mov(f.dword_ptr[f.rsp - 8], *reinterpret_cast<uint32*>(&imm_));
      |                                                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../expr/jitasm.h: At global scope:
../expr/jitasm.h:8740:32: warning: ignoring attributes on template argument ‘__m64’ [-Wignored-attributes]
 8740 |         struct ResultT<__m64, 8> {
      |                                ^
../expr/jitasm.h:8772:34: warning: ignoring attributes on template argument ‘__m128’ [-Wignored-attributes]
 8772 |         struct ResultT<__m128, 16> {
      |                                  ^
../expr/jitasm.h:8796:35: warning: ignoring attributes on template argument ‘__m128d’ [-Wignored-attributes]
 8796 |         struct ResultT<__m128d, 16> {
      |                                   ^
../expr/jitasm.h:8818:35: warning: ignoring attributes on template argument ‘__m128i’ [-Wignored-attributes]
 8818 |         struct ResultT<__m128i, 16> {
      |                                   ^
../expr/jitasm.h:9079:36: warning: ignoring attributes on template argument ‘__m64’ [-Wignored-attributes]
 9079 |                 struct Arg<__m64, 8>
      |                                    ^
../expr/jitasm.h:9147:38: warning: ignoring attributes on template argument ‘__m128’ [-Wignored-attributes]
 9147 |                 struct Arg<__m128, 16>
      |                                      ^
../expr/jitasm.h:9197:50: warning: ignoring attributes on template argument ‘__m128d’ [-Wignored-attributes]
 9197 |                 template<> struct Arg<__m128d, 16> : Arg<__m128, 16> {
      |                                                  ^
../expr/jitasm.h:9197:68: warning: ignoring attributes on template argument ‘__m128’ [-Wignored-attributes]
 9197 |                 template<> struct Arg<__m128d, 16> : Arg<__m128, 16> {
      |                                                                    ^
../expr/jitasm.h: In constructor ‘jitasm::detail::calling_convention_cdecl::Arg<__vector(2) double, 16>::Arg(jitasm::Frontend&, const jitasm::detail::ArgInfo&)’:
../expr/jitasm.h:9198:83: warning: ignoring attributes on template argument ‘__m128’ [-Wignored-attributes]
 9198 |                         Arg(Frontend& f, const ArgInfo& arg_info) : Arg<__m128, 16>(f, arg_info) {}
      |                                                                                   ^
../expr/jitasm.h: At global scope:
../expr/jitasm.h:9201:50: warning: ignoring attributes on template argument ‘__m128i’ [-Wignored-attributes]
 9201 |                 template<> struct Arg<__m128i, 16> : Arg<__m128, 16> {
      |                                                  ^
../expr/jitasm.h:9201:68: warning: ignoring attributes on template argument ‘__m128’ [-Wignored-attributes]
 9201 |                 template<> struct Arg<__m128i, 16> : Arg<__m128, 16> {
      |                                                                    ^
../expr/jitasm.h: In constructor ‘jitasm::detail::calling_convention_cdecl::Arg<__vector(2) long long int, 16>::Arg(jitasm::Frontend&, const jitasm::detail::ArgInfo&)’:
../expr/jitasm.h:9202:83: warning: ignoring attributes on template argument ‘__m128’ [-Wignored-attributes]
 9202 |                         Arg(Frontend& f, const ArgInfo& arg_info) : Arg<__m128, 16>(f, arg_info) {}
      |                                                                                   ^
../expr/exprfilter.cpp: At global scope:
../expr/exprfilter.cpp:2361:37: warning: ‘std::unique_ptr<{anonymous}::ExpressionTreeNode> {anonymous}::makeTreeNode({anonymous}::ExprOp)’ defined but not used [-Wunused-function]
 2361 | std::unique_ptr<ExpressionTreeNode> makeTreeNode(ExprOp data)
      |                                     ^~~~~~~~~~~~
../expr/exprfilter.cpp:168:6: warning: ‘bool {anonymous}::operator!=(const {anonymous}::Token&, const {anonymous}::Token&)’ defined but not used [-Wunused-function]
  168 | bool operator!=(const Token &lhs, const Token &rhs) { return !(lhs == rhs); }
      |      ^~~~~~~~
../expr/exprfilter.cpp:153:6: warning: ‘bool {anonymous}::operator!=(const {anonymous}::PropAccess&, const {anonymous}::PropAccess&)’ defined but not used [-Wunused-function]
  153 | bool operator!=(const PropAccess &lhs, const PropAccess &rhs) { return !(lhs == rhs); }
      |      ^~~~~~~~
AkarinVS commented 2 years ago

yeah, LLVM 13 is not yet supported. Please use LLVM 10 - 12.

NSQY commented 2 years ago

Thank you. I have downgraded to LLVM and the plugin compiles without issue :).

Dear time travelers, for whatever reason some of the llvm-12 versions in the arch archive do not work. Successfully compiled with: llvm(lib) 12.0.1 5