You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It's happening because the llvm14-libs package in Arch extra repo only has the mono-library instead of all the individual libraries that failed to load:
This is the exact issue we encountered earlier, except this time invoked by make instead of cmake, so i couldn't just set -DLLVM_CONFIG_EXECUTABLE=/usr/bin/llvm-config-14, so instead, i used export LLVM_CONFIG_EXECUTABLE=/usr/bin/llvm-config-14.
After that, running make resulted in successful compilation.
I'll look into the issues later, I think they should all be simple to fix. Unfortunately I'm not too familiar with C++, and especially make & cmake, so i'm not certain what kind of fixes are acceptable.
The root cause of this issue is that when mutliple llvm versions are installed in parrarell, the program names are: llvm-[something] for the latest version of llvm, and llvm-[something]-[version] for any other version. (e.g. llvm-config-14 instead of llvm-config).
llvm-config-14 in particular is used to determine library include dirs and cmake dirs, which also differ from regular llvm installation if multiple versions are installed in pararell.
On my machine, version 18, 15 and 14 of llvm are installed in parrarell, but due to the bug i described, only version 18 was considered, which resulted in the LLVM 14 is required error.
The text was updated successfully, but these errors were encountered:
latekvo
changed the title
Fails on Arch Linux.
Fails on Arch LinuxDec 31, 2024
Steps to get
ikos 3.4
working onArch
llvm14
&llvm14-libs
cd ikos
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=. -DIKOS_LINK_LLVM_DYLIB=ON ..
export LLVM_CONFIG_EXECUTABLE=/usr/bin/llvm-config-14
make
Issue details
upon running:
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=. ..
I encountered the following error:
Outdated details, reproduction and explanation
Outdated reproduction
llvm14
&llvm14-libs
cd ikos
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=. -DLLVM_CONFIG_EXECUTABLE=/usr/bin/llvm-config-14 ..
cd frontend/llvm
CMakeLists.txt:126
fromOFF
toON
popd
export LLVM_CONFIG_EXECUTABLE=/usr/bin/llvm-config-14
make
Outdated details
Please note, that it found the 18.1.8 version only after manually setting some env vars, before that no version was found.
Fixed this issue by explicitly setting the
llvm
directory:cmake -DCMAKE_INSTALL_PREFIX=. -DLLVM_CONFIG_EXECUTABLE=/usr/bin/llvm-config-14 ..
Continuing with installation:
make
Resulted in the following error:
It's happening because the
llvm14-libs
package in Archextra
repo only has the mono-library instead of all the individual libraries that failed to load:$ ls /usr/lib/llvm14/* 2 /usr/lib/llvm14/bin: bugpoint dsymutil llvm-cxxdump llvm-libtool-darwin llvm-PerfectShuffle llvm-tapi-diff c-index-test FileCheck llvm-cxxfilt llvm-link llvm-profdata llvm-tblgen clang llc llvm-cxxmap llvm-lipo llvm-profgen llvm-tli-checker clang++ lli llvm-debuginfod-find llvm-lto llvm-ranlib llvm-undname clang-14 lli-child-target llvm-diff llvm-lto2 llvm-rc llvm-windres clang-check llvm-addr2line llvm-dis llvm-mc llvm-readelf llvm-xray clang-cl llvm-ar llvm-dlltool llvm-mca llvm-readobj not clang-cpp llvm-as llvm-dwarfdump llvm-ml llvm-reduce obj2yaml clang-extdef-mapping llvm-bcanalyzer llvm-dwp llvm-modextract llvm-rtdyld opt clang-offload-bundler llvm-bitcode-strip llvm-extract llvm-mt llvm-sim sancov clang-offload-wrapper llvm-cat llvm-gsymutil llvm-nm llvm-size sanstats clang-refactor llvm-cfi-verify llvm-ifs llvm-objcopy llvm-split split-file clang-repl llvm-config llvm-install-name-tool llvm-objdump llvm-stress verify-uselistorder clang-scan-deps llvm-cov llvm-jitlink llvm-opt-report llvm-strings yaml2obj count llvm-c-test llvm-jitlink-executor llvm-otool llvm-strip yaml-bench diagtool llvm-cvtres llvm-lib llvm-pdbutil llvm-symbolizer /usr/lib/llvm14/include: clang clang-c llvm llvm-c /usr/lib/llvm14/lib: clang libclang-cpp.so.14 libclang.so.14.0.6 libLLVMDemangle.a libLLVMTableGen.a libRemarks.so cmake libclang.so libLLVM-14.0.6.so libLLVM.so libLTO.so libRemarks.so.14 libclang-cpp.so libclang.so.13 libLLVM-14.so libLLVMSupport.a libLTO.so.14 LLVMgold.so /usr/lib/llvm14/share: opt-viewer
This issue can be fixed by changing
ikos/frontend/llvm/CMakeLists.txt
line126
fromOFF
toON
.Then, after running
make
again, i encountered the following error:This is the exact issue we encountered earlier, except this time invoked by
make
instead ofcmake
, so i couldn't just set-DLLVM_CONFIG_EXECUTABLE=/usr/bin/llvm-config-14
, so instead, i usedexport LLVM_CONFIG_EXECUTABLE=/usr/bin/llvm-config-14
.After that, running
make
resulted in successful compilation.I'll look into the issues later, I think they should all be simple to fix. Unfortunately I'm not too familiar with C++, and especially make & cmake, so i'm not certain what kind of fixes are acceptable.
The root cause of this issue is that when mutliple
llvm
versions are installed in parrarell, the program names are:llvm-[something]
for thelatest
version ofllvm
, andllvm-[something]-[version]
for any other version. (e.g.llvm-config-14
instead ofllvm-config
).llvm-config-14
in particular is used to determine library include dirs and cmake dirs, which also differ from regularllvm
installation if multiple versions are installed in pararell.On my machine, version
18
,15
and14
ofllvm
are installed in parrarell, but due to the bug i described, only version18
was considered, which resulted in theLLVM 14 is required
error.The text was updated successfully, but these errors were encountered: