From d208e1943bd94f0646dbb6fdc1a14d1973bf63a5 Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Mon, 1 Nov 2021 14:16:25 -0700 Subject: Fix a crash with wasm64 in LLVM This commit works around a crash in LLVM when the `-generate-arange-section` argument is passed to LLVM. An LLVM bug is opened for this and the code in question is also set to continue passing this flag with LLVM 14, assuming that this is fixed by the time LLVM 14 comes out. Otherwise this should work around debuginfo crashes on LLVM 13. --- compiler/rustc_codegen_llvm/src/llvm_util.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'compiler/rustc_codegen_llvm/src') diff --git a/compiler/rustc_codegen_llvm/src/llvm_util.rs b/compiler/rustc_codegen_llvm/src/llvm_util.rs index c3e7e7169a9..35a3d21036a 100644 --- a/compiler/rustc_codegen_llvm/src/llvm_util.rs +++ b/compiler/rustc_codegen_llvm/src/llvm_util.rs @@ -75,7 +75,15 @@ unsafe fn configure_llvm(sess: &Session) { if sess.print_llvm_passes() { add("-debug-pass=Structure", false); } - if !sess.opts.debugging_opts.no_generate_arange_section { + if !sess.opts.debugging_opts.no_generate_arange_section + // FIXME: An LLVM bug [1] means that if this option is enabled for + // wasm64 then LLVM will crash when generating debuginfo. Assuming + // that this gets fixed in LLVM 14 this condition here is a + // workaround to work with versions of LLVM 13 and prior. + // + // [1]: https://bugs.llvm.org/show_bug.cgi?id=52376 + && (sess.target.arch != "wasm64" || llvm_util::get_version() >= (14, 0, 0)) + { add("-generate-arange-section", false); } -- cgit 1.4.1-3-g733a5