diff --git a/Cargo.lock b/Cargo.lock index 553344e..b7af70d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3,13 +3,10 @@ version = 4 [[package]] -name = "aho-corasick" -version = "1.1.3" +name = "anyhow" +version = "1.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" -dependencies = [ - "memchr", -] +checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" [[package]] name = "cc" @@ -43,23 +40,18 @@ checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" [[package]] name = "llvm-sys" -version = "160.2.1" +version = "201.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e73861901245d32e1c3d8b35b639cf100859b4cd0c9da56fe0273040acbb3ea4" +checksum = "9bb947e8b79254ca10d496d0798a9ba1287dcf68e50a92b016fec1cc45bef447" dependencies = [ + "anyhow", "cc", "lazy_static", "libc", - "regex", + "regex-lite", "semver", ] -[[package]] -name = "memchr" -version = "2.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" - [[package]] name = "proc-macro2" version = "1.0.95" @@ -79,40 +71,16 @@ dependencies = [ ] [[package]] -name = "regex" -version = "1.11.1" +name = "regex-lite" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" -dependencies = [ - "aho-corasick", - "memchr", - "regex-automata", - "regex-syntax", -] - -[[package]] -name = "regex-automata" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -] - -[[package]] -name = "regex-syntax" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" +checksum = "53a49587ad06b26609c52e423de037e7f57f20d53535d66e08c695f347df952a" [[package]] name = "reid" version = "0.1.0" dependencies = [ "colored", - "llvm-sys", "reid-lib", "thiserror", ] diff --git a/README.md b/README.md index 4e0b1d6..5510e95 100644 --- a/README.md +++ b/README.md @@ -77,42 +77,42 @@ change erratically. This is what worked for me, might not (probably) work for you, depending on various versions of various libraries. -### Compiling LLVM 16.0.0 +### Compiling LLVM 20.1.8 #### Context Context for my computer. I am on ArchLinux, and here are some libraries and their current versions that I have installed as of compiling, I'm not sure what of them are relevant, if any, but saving them here still feels like a good idea for the future: -- `cmake 3.27.0-1` -- `lib32-llvm-libs 15.0.7-1` -- `llvm 15.0.7-3` -- `llvm-libs 15.0.7-3` -- `gcc 13.1.1-2` -- `gcc-libs 13.1.1-2` -- `lib32-gcc-libs 13.1.1-2` -- `lld 15.0.7-2` -- `lldb 15.0.7-3` -- `clang 15.0.7-9` +- `clang 19.1.7-2` +- `cmake 4.0.2-1` +- `extra-cmake-modules 6.14.0-1` +- `gcc 15.1.1+r7+gf36ec88aa85a-1` +- `gcc-libs 15.1.1+r7+gf36ec88aa85a-1` +- `lib32-gcc-libs 15.1.1+r7+gf36ec88aa85a-1` +- `lib32-llvm-libs 1:19.1.7-2` +- `libgccjit 15.1.1+r7+gf36ec88aa85a-1` +- `lld 19.1.7-1` +- `lldb 19.1.7-2` +- `llvm 19.1.7-2` +- `llvm-libs 19.1.7-2` +- `llvm14 14.0.6-5` +- `llvm14-libs 14.0.6-5` +- `llvm15 15.0.7-3` +- `llvm15-libs 15.0.7-3` - `make 4.4.1-2` -- `automake 1.16.5-2` + #### Commands ```sh -wget https://github.com/llvm/llvm-project/releases/download/llvmorg-16.0.0/llvm-16.0.0.src.tar.xz -wget https://github.com/llvm/llvm-project/releases/download/llvmorg-16.0.0/cmake-16.0.0.src.tar.xz +git clone https://github.com/llvm/llvm-project.git --depth=1 --branch=llvmorg-20.1.8 -tar xvf llvm-16.0.0.src.tar.xz -tar xvf cmake-16.0.0.src.tar.xz +cd llvm_project -mv cmake-16.0.0.src cmake +cmake llvm -B build -DCMAKE_BUILD_TYPE=MinSizeRel -DCMAKE_BUILD_TYPE=Debug -DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_INCLUDE_TESTS=OFF -DLLVM_BUILD_BENCHMARKS=OFF -cd llvm-16.0.0.src - -cmake -B build -DCMAKE_INSTALL_PREFIX=$HOME/llvm-16 -DCMAKE_BUILD_TYPE=MinSizeRel -DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_INCLUDE_TESTS=OFF - -make -j8 +make -j23 ``` *Also Note:* Building LLVM with `Ninja` was not successful for me, but this @@ -121,11 +121,11 @@ method was. Ninja may be successful with you, to try it, add `-G Ninja` to the ### Building this crate itself -Assuming `llvm-16.0.0.src` from the previous step was at -`/path/llvm-16.0.0.src`, building this crate can be done via the following command: +Assuming `llvm-project` from the previous step was at +`/path/llvm-project`, building this crate can be done via the following command: ```sh -LLVM_SYS_160_PREFIX=/path/llvm-16.0.0.src/build cargo build +LLVM_SYS_201_PREFIX=/path/llvm-project/build cargo build ``` ## In conclusion diff --git a/reid-llvm-lib/Cargo.toml b/reid-llvm-lib/Cargo.toml index f2bd395..2e22a76 100644 --- a/reid-llvm-lib/Cargo.toml +++ b/reid-llvm-lib/Cargo.toml @@ -7,6 +7,6 @@ edition = "2024" [dependencies] ## LLVM Bindings -llvm-sys = "160" +llvm-sys = {version ="201.0.1", features=["force-static"] } ## Make it easier to generate errors thiserror = "1.0.44" \ No newline at end of file diff --git a/reid/Cargo.toml b/reid/Cargo.toml index afa4fde..f78147a 100644 --- a/reid/Cargo.toml +++ b/reid/Cargo.toml @@ -12,8 +12,6 @@ default = ["color"] color = ["colored"] [dependencies] -## LLVM Bindings -llvm-sys = "160" ## Make it easier to generate errors thiserror = "1.0.44" reid-lib = { path = "../reid-llvm-lib" }