<html><head></head><body><div class="yahoo-style-wrap" style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:13px;"><div dir="ltr" data-setdir="false">Hi,</div><div dir="ltr" data-setdir="false"><br></div><div dir="ltr" data-setdir="false"><b>I was trying to run a custom pass built as a shared library codeGen pass but it keeps giving me this error msg:</b></div><div dir="ltr" data-setdir="false"><br></div><div dir="ltr" data-setdir="false">```<br></div><div dir="ltr" data-setdir="false"><div>fatal error: error in backend: Trying to construct TargetPassConfig without a target machine. Scheduling a CodeGen pass without a target triple set?<br>PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace, preprocessed source, and associated run script.<br>Stack dump:<br>0.    Program arguments: clang-12 -target x86_64-unknown-linux-gnu -mcpu=x86_64 -O2 -fstack-protector-all -Xclang -load -Xclang ./libShadowStack.so -S test.c<br>1.    <eof> parser at end of file<br>Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):<br>/usr/lib/x86_64-linux-gnu/libLLVM-12.so.1(_ZN4llvm3sys15PrintStackTraceERNS_11raw_ostreamEi+0x23)[0x7fd8a6747303]<br>/usr/lib/x86_64-linux-gnu/libLLVM-12.so.1(_ZN4llvm3sys17RunSignalHandlersEv+0x50)[0x7fd8a6745640]<br>/usr/lib/x86_64-linux-gnu/libLLVM-12.so.1(_ZN4llvm3sys15CleanupOnSignalEm+0xdd)[0x7fd8a6746a5d]<br>/usr/lib/x86_64-linux-gnu/libLLVM-12.so.1(+0xa4b72a)[0x7fd8a669972a]<br>/usr/lib/x86_64-linux-gnu/libLLVM-12.so.1(+0xa4b6cb)[0x7fd8a66996cb]<br>/usr/lib/x86_64-linux-gnu/libLLVM-12.so.1(_ZN4llvm3sys7Process4ExitEib+0x27)[0x7fd8a67424d7]<br>clang-12[0x412bc0]<br>/usr/lib/x86_64-linux-gnu/libLLVM-12.so.1(_ZN4llvm18report_fatal_errorERKNS_5TwineEb+0x122)[0x7fd8a66a5102]<br>/usr/lib/x86_64-linux-gnu/libLLVM-12.so.1(+0xa56fd6)[0x7fd8a66a4fd6]<br>/usr/lib/x86_64-linux-gnu/libLLVM-12.so.1(+0xfbdd6e)[0x7fd8a6c0bd6e]<br>/usr/lib/x86_64-linux-gnu/libLLVM-12.so.1(+0xfc0bd3)[0x7fd8a6c0ebd3]<br>/usr/lib/x86_64-linux-gnu/libLLVM-12.so.1(_ZN4llvm17PMTopLevelManager12schedulePassEPNS_4PassE+0x17b)[0x7fd8a686ebdb]<br>/usr/lib/x86_64-linux-gnu/libLLVM-12.so.1(_ZN4llvm17PMTopLevelManager12schedulePassEPNS_4PassE+0x13d)[0x7fd8a686eb9d]<br>./libShadowStack.so(+0x11268)[0x7fd8a3ecf268]<br>./libShadowStack.so(_ZNSt17_Function_handlerIFvRKN4llvm18PassManagerBuilderERNS0_6legacy15PassManagerBaseEEPS7_E9_M_invokeERKSt9_Any_dataS3_S6_+0x49)[0x7fd8a3ed2b0e]<br>/usr/lib/x86_64-linux-gnu/libLLVM-12.so.1(_ZNK4llvm18PassManagerBuilder17addExtensionsToPMENS0_16ExtensionPointTyERNS_6legacy15PassManagerBaseE+0xdf)[0x7fd8a758225f]<br>/usr/lib/x86_64-linux-gnu/libLLVM-12.so.1(_ZN4llvm18PassManagerBuilder25populateModulePassManagerERNS_6legacy15PassManagerBaseE+0xa71)[0x7fd8a7583991]<br>/usr/lib/x86_64-linux-gnu/libclang-cpp.so.12(_ZN5clang17EmitBackendOutputERNS_17DiagnosticsEngineERKNS_19HeaderSearchOptionsERKNS_14CodeGenOptionsERKNS_13TargetOptionsERKNS_11LangOptionsERKN4llvm10DataLayoutEPNSE_6ModuleENS_13BackendActionESt10unique_ptrINSE_17raw_pwrite_streamESt14default_deleteISM_EE+0x260c)[0x7fd8ac54cc5c]<br>/usr/lib/x86_64-linux-gnu/libclang-cpp.so.12(+0x180b42f)[0x7fd8ac80e42f]<br>/usr/lib/x86_64-linux-gnu/libclang-cpp.so.12(_ZN5clang8ParseASTERNS_4SemaEbb+0x244)[0x7fd8ab931f14]<br>/usr/lib/x86_64-linux-gnu/libclang-cpp.so.12(_ZN5clang14FrontendAction7ExecuteEv+0x48)[0x7fd8acec88c8]<br>/usr/lib/x86_64-linux-gnu/libclang-cpp.so.12(_ZN5clang16CompilerInstance13ExecuteActionERNS_14FrontendActionE+0x841)[0x7fd8ace7bbc1]<br>/usr/lib/x86_64-linux-gnu/libclang-cpp.so.12(_ZN5clang25ExecuteCompilerInvocationEPNS_16CompilerInstanceE+0x582)[0x7fd8acf2c012]<br>clang-12(_Z8cc1_mainN4llvm8ArrayRefIPKcEES2_Pv+0x5fb)[0x41258b]<br>clang-12[0x410d3e]<br>/usr/lib/x86_64-linux-gnu/libclang-cpp.so.12(+0x1b96662)[0x7fd8acb99662]<br>/usr/lib/x86_64-linux-gnu/libLLVM-12.so.1(_ZN4llvm20CrashRecoveryContext9RunSafelyENS_12function_refIFvvEEE+0xdd)[0x7fd8a66996ad]<br>/usr/lib/x86_64-linux-gnu/libclang-cpp.so.12(_ZNK5clang6driver10CC1Command7ExecuteEN4llvm8ArrayRefINS2_8OptionalINS2_9StringRefEEEEEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPb+0x139)[0x7fd8acb98e49]<br>/usr/lib/x86_64-linux-gnu/libclang-cpp.so.12(_ZNK5clang6driver11Compilation14ExecuteCommandERKNS0_7CommandERPS3_+0x17f)[0x7fd8acb6edff]<br>/usr/lib/x86_64-linux-gnu/libclang-cpp.so.12(_ZNK5clang6driver11Compilation11ExecuteJobsERKNS0_7JobListERN4llvm15SmallVectorImplISt4pairIiPKNS0_7CommandEEEE+0x77)[0x7fd8acb6f1b7]<br>/usr/lib/x86_64-linux-gnu/libclang-cpp.so.12(_ZN5clang6driver6Driver18ExecuteCompilationERNS0_11CompilationERN4llvm15SmallVectorImplISt4pairIiPKNS0_7CommandEEEE+0xdc)[0x7fd8acb83bec]<br>clang-12(main+0x24cd)[0x4105fd]<br>/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7fd8a4fa0840]<br>clang-12(_start+0x29)[0x40de49]<br>clang: error: clang frontend command failed with exit code 70 (use -v to see invocation)<br>Ubuntu clang version 12.0.0-++20201209080817+199ec40e7bc-1~exp1~20201209191501.3386<br>Target: x86_64-unknown-linux-gnu<br>Thread model: posix<br>InstalledDir: /usr/bin<br>clang: note: diagnostic msg: <br><div>********************</div><div>```</div><div><br></div><div dir="ltr" data-setdir="false"><b>I register my pass with this code:</b></div><div dir="ltr" data-setdir="false"><br></div><div dir="ltr" data-setdir="false">```<br></div><div dir="ltr" data-setdir="false"><div>static void registerMyPass(const PassManagerBuilder &Builder, PassManagerBase &PM) {<br>    PM.add(new ShadowStack());<br>}<br>static RegisterStandardPasses RegisterMyPass(PassManagerBuilder::EP_OptimizerLast, registerMyPass);</div><div>```</div><div><br></div><div dir="ltr" data-setdir="false"><b>and I run my pass with this command line:</b></div><div dir="ltr" data-setdir="false"><br></div><div dir="ltr" data-setdir="false"><span>clang-12 -target x86_64-unknown-linux-gnu -mcpu=x86_64 -O2 -fstack-protector-all -Xclang -load -Xclang ./libShadowStack.so -S test.c</span></div><div dir="ltr" data-setdir="false"><span><br></span></div><div dir="ltr" data-setdir="false"><span><br></span></div><div dir="ltr" data-setdir="false"><b><span>I can't understand what is the problem here, So any help would be appreciated.</span></b></div><div dir="ltr" data-setdir="false"><b><span><br></span></b></div><div dir="ltr" data-setdir="false"><b><span>Thanks in advance</span></b></div><div dir="ltr" data-setdir="false"><b><span>Omar Ahmed</span></b><br></div><div><br></div><div><br></div></div></div></div></div></body></html>