Upgrade to LLVM 20.1
This commit is contained in:
		
							parent
							
								
									92f12e90eb
								
							
						
					
					
						commit
						9749a29680
					
				
							
								
								
									
										52
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										52
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							| @ -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", | ||||
| ] | ||||
|  | ||||
							
								
								
									
										50
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										50
									
								
								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 | ||||
|  | ||||
| @ -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" | ||||
| @ -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" } | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user