From c808fbed98e8a81717b712d0e75c4a35e624c2ec Mon Sep 17 00:00:00 2001 From: Nicholas Nethercote Date: Thu, 21 Nov 2019 15:30:45 +1100 Subject: [PATCH] Add an option to omit LLVM bitcode from rlibs. Because it's only needed when doing LTO, so including it all the time wastes time and disk space. --- src/librustc/session/config.rs | 2 ++ src/librustc_codegen_ssa/back/write.rs | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/librustc/session/config.rs b/src/librustc/session/config.rs index 4474b008c7949..f323408230807 100644 --- a/src/librustc/session/config.rs +++ b/src/librustc/session/config.rs @@ -1222,6 +1222,8 @@ options! {CodegenOptions, CodegenSetter, basic_codegen_options, "compile the program with profiling instrumentation"), profile_use: Option = (None, parse_opt_pathbuf, [TRACKED], "use the given `.profdata` file for profile-guided optimization"), + no_rlib_bitcode: bool = (false, parse_bool, [TRACKED], + "don't put LLVM bitcode in rlib files"), } options! {DebuggingOptions, DebuggingSetter, basic_debugging_options, diff --git a/src/librustc_codegen_ssa/back/write.rs b/src/librustc_codegen_ssa/back/write.rs index f35a31d59fe62..7c479640380e6 100644 --- a/src/librustc_codegen_ssa/back/write.rs +++ b/src/librustc_codegen_ssa/back/write.rs @@ -383,9 +383,11 @@ pub fn start_async_codegen( // Emit compressed bitcode files for the crate if we're emitting an rlib. // Whenever an rlib is created, the bitcode is inserted into the archive in - // order to allow LTO against it. + // order to allow LTO against it (unless --no-rlib-bitcode is specified). if need_crate_bitcode_for_rlib(sess) { - modules_config.emit_bc_compressed = true; + if !sess.opts.cg.no_rlib_bitcode { + modules_config.emit_bc_compressed = true; + } allocator_config.emit_bc_compressed = true; }