User created Passes

I created new pass and trying to build and run in llvm -16 I am getting the following error . I have searched on google but did not get an effective solution. Could anyone guide me please .

opt -load /volatile/zephyr/Soma/build_llvm_16/llvm-project-llvmorg-16.0.0/build/lib/LLVMMyHello.so -myhello input.ll

Error opening ‘/volatile/zephyr/Soma/build_llvm_16/llvm-project-llvmorg-16.0.0/build/lib/LLVMMyHello.so’: /volatile/zephyr/Soma/build_llvm_16/llvm-project-llvmorg-16.0.0/build/lib/LLVMMyHello.so: undefined symbol: _ZN4llvm23EnableABIBreakingChecksE

-load request ignored.

opt: Unknown command line argument ‘-myhello’. Try: ‘opt --help’

opt: Did you mean ‘–help’?

Did you build LLVM with exactly the same options as your pass? This kind of symbol mismatch error can happen if you didn’t. What is your target platform? You may also have problems with missing -rdynamic or similar not allowing the run-time linker to find symbols exported from the binary. Is opt dynamically linked? If not, can you run nm and see if that symbols is exported? If so, can you run nm on the libraries it links and check that it’s defined in one of them and also make sure that your .so links to the one that provides it.