BinaryAnalysisPlatform / bap

Binary Analysis Platform
MIT License
2.05k stars 271 forks source link

Fedora 38 x86_64: `'opam install -vv bap' failed.` #1596

Closed rickhg12hs closed 7 months ago

rickhg12hs commented 9 months ago

Having issue with bap install. What step(s) do you recommend so I can complete bap install successfully?

It seems to be related to llvm.

$ compgen -c llvm-config
llvm-config
llvm-config-64
llvm-config-16-64
llvm-config-16

$ llvm-config --version
16.0.6

$ rpm -qa | grep -i llvm
llvm-libs-16.0.6-3.fc38.x86_64
llvm15-libs-15.0.7-4.fc38.x86_64
llvm12-libs-12.0.1-8.fc38.x86_64
llvm-libs-16.0.6-3.fc38.i686
llvm-16.0.6-3.fc38.x86_64
llvm-test-16.0.6-3.fc38.x86_64
llvm-static-16.0.6-3.fc38.x86_64
llvm-devel-16.0.6-3.fc38.x86_64

Here is the bap installation attempt.

N.B.: $ ocamlc -vnum reports 4.14.1. I don't know why /usr/bin/ocamlc is run below,

$ opam switch list
#  switch      compiler                    description
→  bap_switch  ocaml-base-compiler.4.14.1  bap_switch
   default     ocaml.4.14.0                default

$ opam install -vv bap
+ /usr/bin/ocamlc "-vnum"
- 4.14.0
The following actions will be performed:
  ∗ install conf-bap-llvm   1.8   [required by bap-llvm]
  ∗ install bap-llvm        2.5.0 [required by bap-core]
  ∗ install bap-x86         2.5.0 [required by bap-core, bap-primus-x86]
  ∗ install bap-relocatable 2.5.0 [required by bap-core]
  ∗ install bap-primus-x86  2.5.0 [required by bap]
  ∗ install bap-core        2.5.0 [required by bap]
  ∗ install bap             2.5.0
===== ∗ 7 =====
Do you want to continue? [Y/n] y

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
⬇ retrieved bap.2.5.0  (cached)
⬇ retrieved bap-core.2.5.0  (cached)
⬇ retrieved bap-llvm.2.5.0  (cached)
⬇ retrieved bap-primus-x86.2.5.0  (cached)
+ /usr/bin/tar "xfz" "/home/rick/.opam/repo/default.tar.gz" "-C" "/tmp/opam-225639-162a31"
[conf-bap-llvm: subst] expanding opam variables in find-llvm.ml.in, generating find-llvm.ml
⬇ retrieved bap-relocatable.2.5.0  (cached)
⬇ retrieved bap-x86.2.5.0  (cached)
+ /home/rick/.opam/opam-init/hooks/sandbox.sh "build" "ocaml" "unix.cma" "find-llvm.ml" (CWD=/home/rick/.opam/bap_switch/.opam-switch/build/conf-bap-llvm.1.8)
- File "./find-llvm.ml", line 46, characters 14-24:
- 46 |   | Some i -> String.sub ver 0 i
-                    ^^^^^^^^^^
- Warning 6 [labels-omitted]: labels pos, len were omitted in the application of this function.
- File "./find-llvm.ml", line 54, characters 17-28:
- 54 |   | Some ver' -> List.exists (versions_equal ver') versions
-                       ^^^^^^^^^^^
- Warning 6 [labels-omitted]: label f was omitted in the application of this function.
- File "./find-llvm.ml", line 81, characters 2-12:
- 81 |   String.sub str 0 len = pref
-        ^^^^^^^^^^
- Warning 6 [labels-omitted]: labels pos, len were omitted in the application of this function.
- File "./find-llvm.ml", line 136, characters 16-26:
- 136 |     | Some i -> String.sub ver 0 i ^ String.sub ver (i + 1) 1 in
-                       ^^^^^^^^^^
- Warning 6 [labels-omitted]: labels pos, len were omitted in the application of this function.
- File "./find-llvm.ml", line 136, characters 37-47:
- 136 |     | Some i -> String.sub ver 0 i ^ String.sub ver (i + 1) 1 in
-                                            ^^^^^^^^^^
- Warning 6 [labels-omitted]: labels pos, len were omitted in the application of this function.
- which: no llvm-config-14.0 in (/home/rick/.opam/bap_switch/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.cargo/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.luarocks/bin:/home/rick/.local/bin:/home/rick/bin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin)
- which: no llvm-config-140 in (/home/rick/.opam/bap_switch/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.cargo/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.luarocks/bin:/home/rick/.local/bin:/home/rick/bin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin)
- which: no llvm-config-14 in (/home/rick/.opam/bap_switch/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.cargo/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.luarocks/bin:/home/rick/.local/bin:/home/rick/bin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin)
- which: no llvm-config-13.0 in (/home/rick/.opam/bap_switch/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.cargo/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.luarocks/bin:/home/rick/.local/bin:/home/rick/bin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin)
- which: no llvm-config-130 in (/home/rick/.opam/bap_switch/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.cargo/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.luarocks/bin:/home/rick/.local/bin:/home/rick/bin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin)
- which: no llvm-config-13 in (/home/rick/.opam/bap_switch/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.cargo/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.luarocks/bin:/home/rick/.local/bin:/home/rick/bin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin)
- which: no llvm-config-12.0 in (/home/rick/.opam/bap_switch/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.cargo/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.luarocks/bin:/home/rick/.local/bin:/home/rick/bin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin)
- which: no llvm-config-120 in (/home/rick/.opam/bap_switch/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.cargo/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.luarocks/bin:/home/rick/.local/bin:/home/rick/bin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin)
- which: no llvm-config-12 in (/home/rick/.opam/bap_switch/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.cargo/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.luarocks/bin:/home/rick/.local/bin:/home/rick/bin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin)
- which: no llvm-config-11.0 in (/home/rick/.opam/bap_switch/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.cargo/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.luarocks/bin:/home/rick/.local/bin:/home/rick/bin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin)
- which: no llvm-config-110 in (/home/rick/.opam/bap_switch/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.cargo/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.luarocks/bin:/home/rick/.local/bin:/home/rick/bin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin)
- which: no llvm-config-11 in (/home/rick/.opam/bap_switch/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.cargo/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.luarocks/bin:/home/rick/.local/bin:/home/rick/bin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin)
- which: no llvm-config-10.0 in (/home/rick/.opam/bap_switch/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.cargo/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.luarocks/bin:/home/rick/.local/bin:/home/rick/bin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin)
- which: no llvm-config-100 in (/home/rick/.opam/bap_switch/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.cargo/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.luarocks/bin:/home/rick/.local/bin:/home/rick/bin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin)
- which: no llvm-config-10 in (/home/rick/.opam/bap_switch/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.cargo/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.luarocks/bin:/home/rick/.local/bin:/home/rick/bin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin)
- which: no llvm-config-9.0 in (/home/rick/.opam/bap_switch/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.cargo/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.luarocks/bin:/home/rick/.local/bin:/home/rick/bin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin)
- which: no llvm-config-90 in (/home/rick/.opam/bap_switch/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.cargo/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.luarocks/bin:/home/rick/.local/bin:/home/rick/bin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin)
- which: no llvm-config-9 in (/home/rick/.opam/bap_switch/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.cargo/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.luarocks/bin:/home/rick/.local/bin:/home/rick/bin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin)
- which: no llvm-config-8.0 in (/home/rick/.opam/bap_switch/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.cargo/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.luarocks/bin:/home/rick/.local/bin:/home/rick/bin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin)
- which: no llvm-config-80 in (/home/rick/.opam/bap_switch/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.cargo/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.luarocks/bin:/home/rick/.local/bin:/home/rick/bin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin)
- which: no llvm-config-8 in (/home/rick/.opam/bap_switch/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.cargo/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.luarocks/bin:/home/rick/.local/bin:/home/rick/bin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin)
- which: no llvm-config-7.0 in (/home/rick/.opam/bap_switch/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.cargo/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.luarocks/bin:/home/rick/.local/bin:/home/rick/bin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin)
- which: no llvm-config-70 in (/home/rick/.opam/bap_switch/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.cargo/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.luarocks/bin:/home/rick/.local/bin:/home/rick/bin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin)
- which: no llvm-config-7 in (/home/rick/.opam/bap_switch/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.cargo/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.luarocks/bin:/home/rick/.local/bin:/home/rick/bin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin)
- which: no llvm-config-6.0 in (/home/rick/.opam/bap_switch/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.cargo/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.luarocks/bin:/home/rick/.local/bin:/home/rick/bin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin)
- which: no llvm-config-60 in (/home/rick/.opam/bap_switch/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.cargo/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.luarocks/bin:/home/rick/.local/bin:/home/rick/bin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin)
- which: no llvm-config-6 in (/home/rick/.opam/bap_switch/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.cargo/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.luarocks/bin:/home/rick/.local/bin:/home/rick/bin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin)
- LLVM not found
[ERROR] The compilation of conf-bap-llvm.1.8 failed at "ocaml unix.cma find-llvm.ml".

#=== ERROR while compiling conf-bap-llvm.1.8 ==================================#
# context     2.1.3 | linux/x86_64 | ocaml-base-compiler.4.14.1 | https://opam.ocaml.org#18a778e7
# path        ~/.opam/bap_switch/.opam-switch/build/conf-bap-llvm.1.8
# command     ~/.opam/opam-init/hooks/sandbox.sh build ocaml unix.cma find-llvm.ml
# exit-code   1
# env-file    ~/.opam/log/conf-bap-llvm-225639-55867c.env
# output-file ~/.opam/log/conf-bap-llvm-225639-55867c.out
### output ###
# [...]
# which: no llvm-config-90 in (/home/rick/.opam/bap_switch/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.cargo/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.luarocks/bin:/home/rick/.local/bin:/home/rick/bin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin)
# which: no llvm-config-9 in (/home/rick/.opam/bap_switch/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.cargo/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.luarocks/bin:/home/rick/.local/bin:/home/rick/bin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin)
# which: no llvm-config-8.0 in (/home/rick/.opam/bap_switch/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.cargo/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.luarocks/bin:/home/rick/.local/bin:/home/rick/bin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin)
# which: no llvm-config-80 in (/home/rick/.opam/bap_switch/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.cargo/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.luarocks/bin:/home/rick/.local/bin:/home/rick/bin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin)
# which: no llvm-config-8 in (/home/rick/.opam/bap_switch/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.cargo/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.luarocks/bin:/home/rick/.local/bin:/home/rick/bin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin)
# which: no llvm-config-7.0 in (/home/rick/.opam/bap_switch/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.cargo/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.luarocks/bin:/home/rick/.local/bin:/home/rick/bin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin)
# which: no llvm-config-70 in (/home/rick/.opam/bap_switch/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.cargo/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.luarocks/bin:/home/rick/.local/bin:/home/rick/bin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin)
# which: no llvm-config-7 in (/home/rick/.opam/bap_switch/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.cargo/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.luarocks/bin:/home/rick/.local/bin:/home/rick/bin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin)
# which: no llvm-config-6.0 in (/home/rick/.opam/bap_switch/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.cargo/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.luarocks/bin:/home/rick/.local/bin:/home/rick/bin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin)
# which: no llvm-config-60 in (/home/rick/.opam/bap_switch/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.cargo/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.luarocks/bin:/home/rick/.local/bin:/home/rick/bin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin)
# which: no llvm-config-6 in (/home/rick/.opam/bap_switch/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.cargo/bin:/home/rick/texlive/2022/bin/x86_64-linux:/home/rick/.luarocks/bin:/home/rick/.local/bin:/home/rick/bin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin)
# LLVM not found

<><> Error report <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
┌─ The following actions were aborted
│ ∗ install bap             2.5.0
│ ∗ install bap-core        2.5.0
│ ∗ install bap-llvm        2.5.0
│ ∗ install bap-primus-x86  2.5.0
│ ∗ install bap-relocatable 2.5.0
│ ∗ install bap-x86         2.5.0
└─ 
┌─ The following actions failed
│ λ build conf-bap-llvm 1.8
└─ 
╶─ No changes have been performed
'opam install -vv bap' failed.
katrinafyi commented 7 months ago

The LLVM versions in the error are the only ones bap supports. Of these, you have LLVM 12 but not the -devel package which provides llvm-config-12. Installing llvm12-devel might just work.

rickhg12hs commented 7 months ago

I don't understand everything that happened, but after bap switch, then launching a new bash shell, and then opam update, opam upgrade ... bap seems to have been built properly.