Really Thanks!
But the command you provided does not work properly. The following warning message appears.
bash: syntax error near unexpected token `newline'
I suspect that the problem occurs because of the <>. After modifying the command as follows and entering it, a bug occurred. The output sentence is as follows.
Failed to load passes from 'lib/LLVMHello.so'. Request ignored.
Expected<T> must be checked before access or destruction.
Unchecked Expected<T> contained error:
Plugin entry point not found in 'lib/LLVMHello.so'. Is this a legacy plugin?PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: opt -load-pass-plugin lib/LLVMHello.so -passes=hello hello.bc
#0 0x00006443107a83f6 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/ghjeon/llvm-project-llvmorg-17.0.6/llvm/lib/Support/Unix/Signals.inc:602:22
#1 0x00006443107a87d5 PrintStackTraceSignalHandler(void*) /home/ghjeon/llvm-project-llvmorg-17.0.6/llvm/lib/Support/Unix/Signals.inc:675:1
#2 0x00006443107a5e99 llvm::sys::RunSignalHandlers() /home/ghjeon/llvm-project-llvmorg-17.0.6/llvm/lib/Support/Signals.cpp:104:20
#3 0x00006443107a7d0e SignalHandler(int) /home/ghjeon/llvm-project-llvmorg-17.0.6/llvm/lib/Support/Unix/Signals.inc:413:1
#4 0x0000769d87042520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#5 0x0000769d870969fc __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
#6 0x0000769d870969fc __pthread_kill_internal ./nptl/pthread_kill.c:78:10
#7 0x0000769d870969fc pthread_kill ./nptl/pthread_kill.c:89:10
#8 0x0000769d87042476 gsignal ./signal/../sysdeps/posix/raise.c:27:6
#9 0x0000769d870287f3 abort ./stdlib/abort.c:81:7
#10 0x000064430cabe5f4 llvm::SmallVectorTemplateBase<llvm::PassPlugin, false>::mallocForGrow(unsigned long, unsigned long&) /home/ghjeon/llvm-project-llvmorg-17.0.6/llvm/include/llvm/ADT/SmallVector.h:444:4
#11 0x000064430cab93f7 llvm::Expected<llvm::PassPlugin>::assertIsChecked() const /home/ghjeon/llvm-project-llvmorg-17.0.6/llvm/include/llvm/Support/Error.h:714:3
#12 0x000064430cab3280 llvm::Expected<llvm::PassPlugin>::~Expected() /home/ghjeon/llvm-project-llvmorg-17.0.6/llvm/include/llvm/Support/Error.h:550:10
#13 0x000064430caa50e0 main::'lambda'(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)::operator()(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&) const /home/ghjeon/llvm-project-llvmorg-17.0.6/llvm/tools/opt/opt.cpp:469:3
#14 0x000064430caa827d void std::__invoke_impl<void, main::'lambda'(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&>(std::__invoke_other, main::'lambda'(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&) /usr/include/c++/11/bits/invoke.h:61:67
#15 0x000064430caa7fa1 std::enable_if<is_invocable_r_v<void, main::'lambda'(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&>, void>::type std::__invoke_r<void, main::'lambda'(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&>(main::'lambda'(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&) /usr/include/c++/11/bits/invoke.h:117:5
#16 0x000064430caa7cb9 std::_Function_handler<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&), main::'lambda'(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)>::_M_invoke(std::_Any_data const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&) /usr/include/c++/11/bits/std_function.h:291:44
#17 0x000064430cab9f99 std::function<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)>::operator()(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&) const /usr/include/c++/11/bits/std_function.h:590:66
#18 0x000064430cac6130 llvm::cl::list<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, bool, llvm::cl::parser<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>::handleOccurrence(unsigned int, llvm::StringRef, llvm::StringRef) /home/ghjeon/llvm-project-llvmorg-17.0.6/llvm/include/llvm/Support/CommandLine.h:1670:12
#19 0x00006443106b0ed2 llvm::cl::Option::addOccurrence(unsigned int, llvm::StringRef, llvm::StringRef, bool) /home/ghjeon/llvm-project-llvmorg-17.0.6/llvm/lib/Support/CommandLine.cpp:1854:1
#20 0x00006443106aa0d6 CommaSeparateAndAddOccurrence(llvm::cl::Option*, unsigned int, llvm::StringRef, llvm::StringRef, bool) /home/ghjeon/llvm-project-llvmorg-17.0.6/llvm/lib/Support/CommandLine.cpp:643:32
#21 0x00006443106aa4b4 ProvideOption(llvm::cl::Option*, llvm::StringRef, llvm::StringRef, int, char const* const*, int&) /home/ghjeon/llvm-project-llvmorg-17.0.6/llvm/lib/Support/CommandLine.cpp:683:41
#22 0x00006443106b0343 (anonymous namespace)::CommandLineParser::ParseCommandLineOptions(int, char const* const*, llvm::StringRef, llvm::raw_ostream*, bool) /home/ghjeon/llvm-project-llvmorg-17.0.6/llvm/lib/Support/CommandLine.cpp:1713:36
#23 0x00006443106aee2a llvm::cl::ParseCommandLineOptions(int, char const* const*, llvm::StringRef, llvm::raw_ostream*, char const*, bool) /home/ghjeon/llvm-project-llvmorg-17.0.6/llvm/lib/Support/CommandLine.cpp:1469:47
#24 0x000064430caa54a1 main /home/ghjeon/llvm-project-llvmorg-17.0.6/llvm/tools/opt/opt.cpp:474:30
#25 0x0000769d87029d90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#26 0x0000769d87029e40 call_init ./csu/../csu/libc-start.c:128:20
#27 0x0000769d87029e40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#28 0x000064430ca74ee5 _start (/usr/local/bin/opt+0xa33ee5)
Aborted (core dumped)
I am still using the LLVM documentation from the previous question. I am following all the steps identically, but only modifying the final ‘opt’ command. Also, I have confirmed that both the LLVM version and the Clang version are 17.0.6.
I entered ‘gmake’ in the build directory when compiling the pass, and I am wondering if there is any problem with this process as well.
Thanks for your help!