Closed
Description
The time has come again, LLVM is releasing 5.0 soon and Rust wants to / needs to follow.
I have started work on the upgrade in these branches:
rust-lang/rust
: https://github.com/alexcrichton/rust/tree/llvm50rust-lang/llvm
: https://github.com/rust-lang/llvm/tree/rust-llvm-2017-07-20rust-lang/compiler-rt
: https://github.com/rust-lang/compiler-rt/tree/rust-2017-07-20rust-lang-nursery/compiler-builtins
: https://github.com/rust-lang-nursery/compiler-builtins/tree/llvm50
Open tasks
- get asm.js working again - reenable
JSBackend
as a target- add asm.js target to our fork - rust-lang/llvm@c9a2123
- update emscripten to LLVM 5.0
Completed tasks
Next steps:
- Get
rustllvm
to compile (error log)
Current issues:
- A lot changed around attributes (Update Rust LLVM bindings for LLVM 5.0 #43387)
-
SynchronizationScope
changed / was renamed? (Update Rust LLVM bindings for LLVM 5.0 #43387) -
LLVMMetadataRef
was added, this can / should likely replaceLLVMRustMetadataRef
(Update Rust LLVM bindings for LLVM 5.0 #43387) -
createPointerType
gained a new parameter (Update Rust LLVM bindings for LLVM 5.0 #43387) -
createNameSpace
lost some parameters (Update Rust LLVM bindings for LLVM 5.0 #43387) -
DebugLoc
was replaced byDiagnosticLocation
in LLVMDiagnosticInfo
(Update Rust LLVM bindings for LLVM 5.0 #43387) - compiler segfault when testing in stage2 - using
x86_64-gnu
image- sample backtrace
- upstream bug
- upstream fix (
temporary workaround) - commit1, commit2
- fix compilation of fuzzer on various platforms
- i686 freebsd
- x86_64 freebsd
- x86_64 netbsd
-
upstream buglocal fix/workaround -
upstream fix - rustbuild: Tweak how we cross-compile LLVM #43527
- fix compilation of LLVM on i686-unknown-linux-gnu
- logs
-
upstream buglocal workaround -
upstream fix
-
codegen/issue-37945.rs
- info below - FreeBSD failed to compile
std::to_string
references - fix
run-make/sanitizer-leak
- apparently hit a fatal error when run locally?-
--privileged
needed when running the docker container Flag docker invocations as --privileged on CI #43536
-
-
run-make/simd-ffi
- mips failed to compile cargo
- related
debuginfo-gdb
test failures - LLVM5: Update DW_OP_plus to DW_OP_plus_uconst #47610 - rustc with LLVM 5 reports invalid DIExpression (rustc with LLVM 5 reports invalid DIExpression #47464) - fixed in LLVM5: Update DW_OP_plus to DW_OP_plus_uconst #47610
- LLVM 5 fails debuginfo/by-value-self-argument-in-trait-impl.rs (LLVM 5 fails debuginfo/by-value-self-argument-in-trait-impl.rs #47611)
All but the first issues seem straight forward to fix, so I'll try to send PRs for those soon.