Update to Rust 1.82.0
Resolves: RHEL-61966 Resolves: RHEL-61981
This commit is contained in:
		
							parent
							
								
									4a25b3b524
								
							
						
					
					
						commit
						0e84ccd3a7
					
				
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -30,3 +30,4 @@ SOURCES/wasi-libc-wasi-sdk-17.tar.gz | |||||||
| /wasi-libc-3f43ea9abb24ed8d24d760989e1d87ea385f8eaa.tar.gz | /wasi-libc-3f43ea9abb24ed8d24d760989e1d87ea385f8eaa.tar.gz | ||||||
| /rustc-1.81.0-src.tar.xz | /rustc-1.81.0-src.tar.xz | ||||||
| /wasi-libc-b9ef79d7dbd47c6c5bafdae760823467c2f60b70.tar.gz | /wasi-libc-b9ef79d7dbd47c6c5bafdae760823467c2f60b70.tar.gz | ||||||
|  | /rustc-1.82.0-src.tar.xz | ||||||
|  | |||||||
							
								
								
									
										147
									
								
								0001-Fix-enabling-wasm-component-ld-to-match-other-tools.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										147
									
								
								0001-Fix-enabling-wasm-component-ld-to-match-other-tools.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,147 @@ | |||||||
|  | From c15469a7fec811d1a4f69ff26e18c6f383df41d2 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Alex Crichton <alex@alexcrichton.com> | ||||||
|  | Date: Fri, 6 Sep 2024 09:21:33 -0700 | ||||||
|  | Subject: [PATCH] Fix enabling wasm-component-ld to match other tools | ||||||
|  | 
 | ||||||
|  | It was [pointed out recently][comment] that enabling `wasm-component-ld` | ||||||
|  | as a host tool is different from other host tools. This commit refactors | ||||||
|  | the logic to match by deduplicating selection of when to build other | ||||||
|  | tools and then using the same logic for `wasm-component-ld`. | ||||||
|  | 
 | ||||||
|  | [comment]: https://github.com/rust-lang/rust/pull/127866#issuecomment-2333434720 | ||||||
|  | ---
 | ||||||
|  |  src/bootstrap/src/core/build_steps/compile.rs |  2 +- | ||||||
|  |  src/bootstrap/src/core/build_steps/dist.rs    |  2 +- | ||||||
|  |  src/bootstrap/src/core/build_steps/tool.rs    | 38 +++---------------- | ||||||
|  |  src/bootstrap/src/lib.rs                      | 17 +++++---- | ||||||
|  |  4 files changed, 17 insertions(+), 42 deletions(-) | ||||||
|  | 
 | ||||||
|  | diff --git a/src/bootstrap/src/core/build_steps/compile.rs b/src/bootstrap/src/core/build_steps/compile.rs
 | ||||||
|  | index 1936c91ef83c..102c9fd25543 100644
 | ||||||
|  | --- a/src/bootstrap/src/core/build_steps/compile.rs
 | ||||||
|  | +++ b/src/bootstrap/src/core/build_steps/compile.rs
 | ||||||
|  | @@ -1912,7 +1912,7 @@ fn run(self, builder: &Builder<'_>) -> Compiler {
 | ||||||
|  |          // delegates to the `rust-lld` binary for linking and then runs | ||||||
|  |          // logic to create the final binary. This is used by the | ||||||
|  |          // `wasm32-wasip2` target of Rust. | ||||||
|  | -        if builder.build_wasm_component_ld() {
 | ||||||
|  | +        if builder.tool_enabled("wasm-component-ld") {
 | ||||||
|  |              let wasm_component_ld_exe = | ||||||
|  |                  builder.ensure(crate::core::build_steps::tool::WasmComponentLd { | ||||||
|  |                      compiler: build_compiler, | ||||||
|  | diff --git a/src/bootstrap/src/core/build_steps/dist.rs b/src/bootstrap/src/core/build_steps/dist.rs
 | ||||||
|  | index 4957de2e1b79..ccb5656d6716 100644
 | ||||||
|  | --- a/src/bootstrap/src/core/build_steps/dist.rs
 | ||||||
|  | +++ b/src/bootstrap/src/core/build_steps/dist.rs
 | ||||||
|  | @@ -473,7 +473,7 @@ fn prepare_image(builder: &Builder<'_>, compiler: Compiler, image: &Path) {
 | ||||||
|  |                      ); | ||||||
|  |                  } | ||||||
|  |              } | ||||||
|  | -            if builder.build_wasm_component_ld() {
 | ||||||
|  | +            if builder.tool_enabled("wasm-component-ld") {
 | ||||||
|  |                  let src_dir = builder.sysroot_libdir(compiler, host).parent().unwrap().join("bin"); | ||||||
|  |                  let ld = exe("wasm-component-ld", compiler.host); | ||||||
|  |                  builder.copy_link(&src_dir.join(&ld), &dst_dir.join(&ld)); | ||||||
|  | diff --git a/src/bootstrap/src/core/build_steps/tool.rs b/src/bootstrap/src/core/build_steps/tool.rs
 | ||||||
|  | index 3a1eb43b801f..3c2d791c2090 100644
 | ||||||
|  | --- a/src/bootstrap/src/core/build_steps/tool.rs
 | ||||||
|  | +++ b/src/bootstrap/src/core/build_steps/tool.rs
 | ||||||
|  | @@ -693,14 +693,7 @@ impl Step for Cargo {
 | ||||||
|  |   | ||||||
|  |      fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> { | ||||||
|  |          let builder = run.builder; | ||||||
|  | -        run.path("src/tools/cargo").default_condition(
 | ||||||
|  | -            builder.config.extended
 | ||||||
|  | -                && builder.config.tools.as_ref().map_or(
 | ||||||
|  | -                    true,
 | ||||||
|  | -                    // If `tools` is set, search list for this tool.
 | ||||||
|  | -                    |tools| tools.iter().any(|tool| tool == "cargo"),
 | ||||||
|  | -                ),
 | ||||||
|  | -        )
 | ||||||
|  | +        run.path("src/tools/cargo").default_condition(builder.tool_enabled("cargo"))
 | ||||||
|  |      } | ||||||
|  |   | ||||||
|  |      fn make_run(run: RunConfig<'_>) { | ||||||
|  | @@ -772,14 +765,7 @@ impl Step for RustAnalyzer {
 | ||||||
|  |   | ||||||
|  |      fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> { | ||||||
|  |          let builder = run.builder; | ||||||
|  | -        run.path("src/tools/rust-analyzer").default_condition(
 | ||||||
|  | -            builder.config.extended
 | ||||||
|  | -                && builder
 | ||||||
|  | -                    .config
 | ||||||
|  | -                    .tools
 | ||||||
|  | -                    .as_ref()
 | ||||||
|  | -                    .map_or(true, |tools| tools.iter().any(|tool| tool == "rust-analyzer")),
 | ||||||
|  | -        )
 | ||||||
|  | +        run.path("src/tools/rust-analyzer").default_condition(builder.tool_enabled("rust-analyzer"))
 | ||||||
|  |      } | ||||||
|  |   | ||||||
|  |      fn make_run(run: RunConfig<'_>) { | ||||||
|  | @@ -821,12 +807,8 @@ fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> {
 | ||||||
|  |          run.path("src/tools/rust-analyzer") | ||||||
|  |              .path("src/tools/rust-analyzer/crates/proc-macro-srv-cli") | ||||||
|  |              .default_condition( | ||||||
|  | -                builder.config.extended
 | ||||||
|  | -                    && builder.config.tools.as_ref().map_or(true, |tools| {
 | ||||||
|  | -                        tools.iter().any(|tool| {
 | ||||||
|  | -                            tool == "rust-analyzer" || tool == "rust-analyzer-proc-macro-srv"
 | ||||||
|  | -                        })
 | ||||||
|  | -                    }),
 | ||||||
|  | +                builder.tool_enabled("rust-analyzer")
 | ||||||
|  | +                    || builder.tool_enabled("rust-analyzer-proc-macro-srv"),
 | ||||||
|  |              ) | ||||||
|  |      } | ||||||
|  |   | ||||||
|  | @@ -874,16 +856,8 @@ impl Step for LlvmBitcodeLinker {
 | ||||||
|  |   | ||||||
|  |      fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> { | ||||||
|  |          let builder = run.builder; | ||||||
|  | -        run.path("src/tools/llvm-bitcode-linker").default_condition(
 | ||||||
|  | -            builder.config.extended
 | ||||||
|  | -                && builder
 | ||||||
|  | -                    .config
 | ||||||
|  | -                    .tools
 | ||||||
|  | -                    .as_ref()
 | ||||||
|  | -                    .map_or(builder.build.unstable_features(), |tools| {
 | ||||||
|  | -                        tools.iter().any(|tool| tool == "llvm-bitcode-linker")
 | ||||||
|  | -                    }),
 | ||||||
|  | -        )
 | ||||||
|  | +        run.path("src/tools/llvm-bitcode-linker")
 | ||||||
|  | +            .default_condition(builder.tool_enabled("llvm-bitcode-linker"))
 | ||||||
|  |      } | ||||||
|  |   | ||||||
|  |      fn make_run(run: RunConfig<'_>) { | ||||||
|  | diff --git a/src/bootstrap/src/lib.rs b/src/bootstrap/src/lib.rs
 | ||||||
|  | index c76ce3409562..780024e307ed 100644
 | ||||||
|  | --- a/src/bootstrap/src/lib.rs
 | ||||||
|  | +++ b/src/bootstrap/src/lib.rs
 | ||||||
|  | @@ -1407,16 +1407,17 @@ fn default_wasi_runner(&self) -> Option<String> {
 | ||||||
|  |          None | ||||||
|  |      } | ||||||
|  |   | ||||||
|  | -    /// Returns whether it's requested that `wasm-component-ld` is built as part
 | ||||||
|  | -    /// of the sysroot. This is done either with the `extended` key in
 | ||||||
|  | -    /// `config.toml` or with the `tools` set.
 | ||||||
|  | -    fn build_wasm_component_ld(&self) -> bool {
 | ||||||
|  | -        if self.config.extended {
 | ||||||
|  | -            return true;
 | ||||||
|  | +    /// Returns whether the specified tool is configured as part of this build.
 | ||||||
|  | +    ///
 | ||||||
|  | +    /// This requires that both the `extended` key is set and the `tools` key is
 | ||||||
|  | +    /// either unset or specifically contains the specified tool.
 | ||||||
|  | +    fn tool_enabled(&self, tool: &str) -> bool {
 | ||||||
|  | +        if !self.config.extended {
 | ||||||
|  | +            return false;
 | ||||||
|  |          } | ||||||
|  |          match &self.config.tools { | ||||||
|  | -            Some(set) => set.contains("wasm-component-ld"),
 | ||||||
|  | -            None => false,
 | ||||||
|  | +            Some(set) => set.contains(tool),
 | ||||||
|  | +            None => true,
 | ||||||
|  |          } | ||||||
|  |      } | ||||||
|  |   | ||||||
|  | -- 
 | ||||||
|  | 2.46.0 | ||||||
|  | 
 | ||||||
| @ -1,234 +0,0 @@ | |||||||
| From f46057bf1cc0dc24a0ecd7d87c9c93872e685253 Mon Sep 17 00:00:00 2001 |  | ||||||
| From: Josh Stone <jistone@redhat.com> |  | ||||||
| Date: Fri, 27 Sep 2024 15:53:26 -0700 |  | ||||||
| Subject: [PATCH] Only add an automatic SONAME for Rust dylibs |  | ||||||
| 
 |  | ||||||
| ---
 |  | ||||||
|  compiler/rustc_codegen_ssa/src/back/link.rs   |  2 +- |  | ||||||
|  compiler/rustc_codegen_ssa/src/back/linker.rs | 83 +++++++++++++++---- |  | ||||||
|  tests/run-make/dylib-soname/rmake.rs          | 16 ++-- |  | ||||||
|  3 files changed, 80 insertions(+), 21 deletions(-) |  | ||||||
| 
 |  | ||||||
| diff --git a/compiler/rustc_codegen_ssa/src/back/link.rs b/compiler/rustc_codegen_ssa/src/back/link.rs
 |  | ||||||
| index 80e8111516ee..a23cc5129261 100644
 |  | ||||||
| --- a/compiler/rustc_codegen_ssa/src/back/link.rs
 |  | ||||||
| +++ b/compiler/rustc_codegen_ssa/src/back/link.rs
 |  | ||||||
| @@ -2490,7 +2490,7 @@ fn add_order_independent_options(
 |  | ||||||
|          } |  | ||||||
|      } |  | ||||||
|   |  | ||||||
| -    cmd.set_output_kind(link_output_kind, out_filename);
 |  | ||||||
| +    cmd.set_output_kind(link_output_kind, crate_type, out_filename);
 |  | ||||||
|   |  | ||||||
|      add_relro_args(cmd, sess); |  | ||||||
|   |  | ||||||
| diff --git a/compiler/rustc_codegen_ssa/src/back/linker.rs b/compiler/rustc_codegen_ssa/src/back/linker.rs
 |  | ||||||
| index a73ec83ee62c..3f3d305da014 100644
 |  | ||||||
| --- a/compiler/rustc_codegen_ssa/src/back/linker.rs
 |  | ||||||
| +++ b/compiler/rustc_codegen_ssa/src/back/linker.rs
 |  | ||||||
| @@ -275,7 +275,12 @@ pub(crate) trait Linker {
 |  | ||||||
|      fn is_cc(&self) -> bool { |  | ||||||
|          false |  | ||||||
|      } |  | ||||||
| -    fn set_output_kind(&mut self, output_kind: LinkOutputKind, out_filename: &Path);
 |  | ||||||
| +    fn set_output_kind(
 |  | ||||||
| +        &mut self,
 |  | ||||||
| +        output_kind: LinkOutputKind,
 |  | ||||||
| +        crate_type: CrateType,
 |  | ||||||
| +        out_filename: &Path,
 |  | ||||||
| +    );
 |  | ||||||
|      fn link_dylib_by_name(&mut self, _name: &str, _verbatim: bool, _as_needed: bool) { |  | ||||||
|          bug!("dylib linked with unsupported linker") |  | ||||||
|      } |  | ||||||
| @@ -396,7 +401,7 @@ fn push_linker_plugin_lto_args(&mut self, plugin_path: Option<&OsStr>) {
 |  | ||||||
|          ]); |  | ||||||
|      } |  | ||||||
|   |  | ||||||
| -    fn build_dylib(&mut self, out_filename: &Path) {
 |  | ||||||
| +    fn build_dylib(&mut self, crate_type: CrateType, out_filename: &Path) {
 |  | ||||||
|          // On mac we need to tell the linker to let this library be rpathed |  | ||||||
|          if self.sess.target.is_like_osx { |  | ||||||
|              if !self.is_ld { |  | ||||||
| @@ -427,7 +432,7 @@ fn build_dylib(&mut self, out_filename: &Path) {
 |  | ||||||
|                      let mut out_implib = OsString::from("--out-implib="); |  | ||||||
|                      out_implib.push(out_filename.with_file_name(implib_name)); |  | ||||||
|                      self.link_arg(out_implib); |  | ||||||
| -                } else {
 |  | ||||||
| +                } else if crate_type == CrateType::Dylib {
 |  | ||||||
|                      // When dylibs are linked by a full path this value will get into `DT_NEEDED` |  | ||||||
|                      // instead of the full path, so the library can be later found in some other |  | ||||||
|                      // location than that specific path. |  | ||||||
| @@ -474,7 +479,12 @@ fn is_cc(&self) -> bool {
 |  | ||||||
|          !self.is_ld |  | ||||||
|      } |  | ||||||
|   |  | ||||||
| -    fn set_output_kind(&mut self, output_kind: LinkOutputKind, out_filename: &Path) {
 |  | ||||||
| +    fn set_output_kind(
 |  | ||||||
| +        &mut self,
 |  | ||||||
| +        output_kind: LinkOutputKind,
 |  | ||||||
| +        crate_type: CrateType,
 |  | ||||||
| +        out_filename: &Path,
 |  | ||||||
| +    ) {
 |  | ||||||
|          match output_kind { |  | ||||||
|              LinkOutputKind::DynamicNoPicExe => { |  | ||||||
|                  if !self.is_ld && self.is_gnu { |  | ||||||
| @@ -509,10 +519,10 @@ fn set_output_kind(&mut self, output_kind: LinkOutputKind, out_filename: &Path)
 |  | ||||||
|                      self.link_args(&["-static", "-pie", "--no-dynamic-linker", "-z", "text"]); |  | ||||||
|                  } |  | ||||||
|              } |  | ||||||
| -            LinkOutputKind::DynamicDylib => self.build_dylib(out_filename),
 |  | ||||||
| +            LinkOutputKind::DynamicDylib => self.build_dylib(crate_type, out_filename),
 |  | ||||||
|              LinkOutputKind::StaticDylib => { |  | ||||||
|                  self.link_or_cc_arg("-static"); |  | ||||||
| -                self.build_dylib(out_filename);
 |  | ||||||
| +                self.build_dylib(crate_type, out_filename);
 |  | ||||||
|              } |  | ||||||
|              LinkOutputKind::WasiReactorExe => { |  | ||||||
|                  self.link_args(&["--entry", "_initialize"]); |  | ||||||
| @@ -866,7 +876,12 @@ fn cmd(&mut self) -> &mut Command {
 |  | ||||||
|          &mut self.cmd |  | ||||||
|      } |  | ||||||
|   |  | ||||||
| -    fn set_output_kind(&mut self, output_kind: LinkOutputKind, out_filename: &Path) {
 |  | ||||||
| +    fn set_output_kind(
 |  | ||||||
| +        &mut self,
 |  | ||||||
| +        output_kind: LinkOutputKind,
 |  | ||||||
| +        _crate_type: CrateType,
 |  | ||||||
| +        out_filename: &Path,
 |  | ||||||
| +    ) {
 |  | ||||||
|          match output_kind { |  | ||||||
|              LinkOutputKind::DynamicNoPicExe |  | ||||||
|              | LinkOutputKind::DynamicPicExe |  | ||||||
| @@ -1124,7 +1139,13 @@ fn is_cc(&self) -> bool {
 |  | ||||||
|          true |  | ||||||
|      } |  | ||||||
|   |  | ||||||
| -    fn set_output_kind(&mut self, _output_kind: LinkOutputKind, _out_filename: &Path) {}
 |  | ||||||
| +    fn set_output_kind(
 |  | ||||||
| +        &mut self,
 |  | ||||||
| +        _output_kind: LinkOutputKind,
 |  | ||||||
| +        _crate_type: CrateType,
 |  | ||||||
| +        _out_filename: &Path,
 |  | ||||||
| +    ) {
 |  | ||||||
| +    }
 |  | ||||||
|   |  | ||||||
|      fn link_dylib_by_name(&mut self, name: &str, _verbatim: bool, _as_needed: bool) { |  | ||||||
|          // Emscripten always links statically |  | ||||||
| @@ -1273,7 +1294,12 @@ fn cmd(&mut self) -> &mut Command {
 |  | ||||||
|          &mut self.cmd |  | ||||||
|      } |  | ||||||
|   |  | ||||||
| -    fn set_output_kind(&mut self, output_kind: LinkOutputKind, _out_filename: &Path) {
 |  | ||||||
| +    fn set_output_kind(
 |  | ||||||
| +        &mut self,
 |  | ||||||
| +        output_kind: LinkOutputKind,
 |  | ||||||
| +        _crate_type: CrateType,
 |  | ||||||
| +        _out_filename: &Path,
 |  | ||||||
| +    ) {
 |  | ||||||
|          match output_kind { |  | ||||||
|              LinkOutputKind::DynamicNoPicExe |  | ||||||
|              | LinkOutputKind::DynamicPicExe |  | ||||||
| @@ -1422,7 +1448,13 @@ fn cmd(&mut self) -> &mut Command {
 |  | ||||||
|          &mut self.cmd |  | ||||||
|      } |  | ||||||
|   |  | ||||||
| -    fn set_output_kind(&mut self, _output_kind: LinkOutputKind, _out_filename: &Path) {}
 |  | ||||||
| +    fn set_output_kind(
 |  | ||||||
| +        &mut self,
 |  | ||||||
| +        _output_kind: LinkOutputKind,
 |  | ||||||
| +        _crate_type: CrateType,
 |  | ||||||
| +        _out_filename: &Path,
 |  | ||||||
| +    ) {
 |  | ||||||
| +    }
 |  | ||||||
|   |  | ||||||
|      fn link_staticlib_by_name(&mut self, name: &str, _verbatim: bool, whole_archive: bool) { |  | ||||||
|          self.hint_static(); |  | ||||||
| @@ -1568,7 +1600,12 @@ fn cmd(&mut self) -> &mut Command {
 |  | ||||||
|          &mut self.cmd |  | ||||||
|      } |  | ||||||
|   |  | ||||||
| -    fn set_output_kind(&mut self, output_kind: LinkOutputKind, out_filename: &Path) {
 |  | ||||||
| +    fn set_output_kind(
 |  | ||||||
| +        &mut self,
 |  | ||||||
| +        output_kind: LinkOutputKind,
 |  | ||||||
| +        _crate_type: CrateType,
 |  | ||||||
| +        out_filename: &Path,
 |  | ||||||
| +    ) {
 |  | ||||||
|          match output_kind { |  | ||||||
|              LinkOutputKind::DynamicDylib => { |  | ||||||
|                  self.hint_dynamic(); |  | ||||||
| @@ -1775,7 +1812,13 @@ fn cmd(&mut self) -> &mut Command {
 |  | ||||||
|          &mut self.cmd |  | ||||||
|      } |  | ||||||
|   |  | ||||||
| -    fn set_output_kind(&mut self, _output_kind: LinkOutputKind, _out_filename: &Path) {}
 |  | ||||||
| +    fn set_output_kind(
 |  | ||||||
| +        &mut self,
 |  | ||||||
| +        _output_kind: LinkOutputKind,
 |  | ||||||
| +        _crate_type: CrateType,
 |  | ||||||
| +        _out_filename: &Path,
 |  | ||||||
| +    ) {
 |  | ||||||
| +    }
 |  | ||||||
|   |  | ||||||
|      fn link_staticlib_by_name(&mut self, _name: &str, _verbatim: bool, _whole_archive: bool) { |  | ||||||
|          panic!("staticlibs not supported") |  | ||||||
| @@ -1841,7 +1884,13 @@ fn cmd(&mut self) -> &mut Command {
 |  | ||||||
|          &mut self.cmd |  | ||||||
|      } |  | ||||||
|   |  | ||||||
| -    fn set_output_kind(&mut self, _output_kind: LinkOutputKind, _out_filename: &Path) {}
 |  | ||||||
| +    fn set_output_kind(
 |  | ||||||
| +        &mut self,
 |  | ||||||
| +        _output_kind: LinkOutputKind,
 |  | ||||||
| +        _crate_type: CrateType,
 |  | ||||||
| +        _out_filename: &Path,
 |  | ||||||
| +    ) {
 |  | ||||||
| +    }
 |  | ||||||
|   |  | ||||||
|      fn link_staticlib_by_name(&mut self, _name: &str, _verbatim: bool, _whole_archive: bool) { |  | ||||||
|          panic!("staticlibs not supported") |  | ||||||
| @@ -1912,7 +1961,13 @@ fn cmd(&mut self) -> &mut Command {
 |  | ||||||
|          &mut self.cmd |  | ||||||
|      } |  | ||||||
|   |  | ||||||
| -    fn set_output_kind(&mut self, _output_kind: LinkOutputKind, _out_filename: &Path) {}
 |  | ||||||
| +    fn set_output_kind(
 |  | ||||||
| +        &mut self,
 |  | ||||||
| +        _output_kind: LinkOutputKind,
 |  | ||||||
| +        _crate_type: CrateType,
 |  | ||||||
| +        _out_filename: &Path,
 |  | ||||||
| +    ) {
 |  | ||||||
| +    }
 |  | ||||||
|   |  | ||||||
|      fn link_staticlib_by_name(&mut self, _name: &str, _verbatim: bool, _whole_archive: bool) { |  | ||||||
|          panic!("staticlibs not supported") |  | ||||||
| diff --git a/tests/run-make/dylib-soname/rmake.rs b/tests/run-make/dylib-soname/rmake.rs
 |  | ||||||
| index cec0d4638424..714997cbc1a1 100644
 |  | ||||||
| --- a/tests/run-make/dylib-soname/rmake.rs
 |  | ||||||
| +++ b/tests/run-make/dylib-soname/rmake.rs
 |  | ||||||
| @@ -7,12 +7,16 @@
 |  | ||||||
|  use run_make_support::{cmd, run_in_tmpdir, rustc}; |  | ||||||
|   |  | ||||||
|  fn main() { |  | ||||||
| +    let check = |ty: &str| {
 |  | ||||||
| +        rustc().crate_name("foo").crate_type(ty).input("foo.rs").run();
 |  | ||||||
| +        cmd("readelf").arg("-d").arg("libfoo.so").run()
 |  | ||||||
| +    };
 |  | ||||||
|      run_in_tmpdir(|| { |  | ||||||
| -        rustc().crate_name("foo").crate_type("dylib").input("foo.rs").run();
 |  | ||||||
| -        cmd("readelf")
 |  | ||||||
| -            .arg("-d")
 |  | ||||||
| -            .arg("libfoo.so")
 |  | ||||||
| -            .run()
 |  | ||||||
| -            .assert_stdout_contains("Library soname: [libfoo.so]");
 |  | ||||||
| +        // Rust dylibs should get a relative SONAME
 |  | ||||||
| +        check("dylib").assert_stdout_contains("Library soname: [libfoo.so]");
 |  | ||||||
| +    });
 |  | ||||||
| +    run_in_tmpdir(|| {
 |  | ||||||
| +        // C dylibs should not implicitly get any SONAME
 |  | ||||||
| +        check("cdylib").assert_stdout_not_contains("Library soname:");
 |  | ||||||
|      }); |  | ||||||
|  } |  | ||||||
| -- 
 |  | ||||||
| 2.46.1 |  | ||||||
| 
 |  | ||||||
| @ -1,4 +1,4 @@ | |||||||
| From 937b23ef51b1d2f3d12adc9bd90dfd27936326dd Mon Sep 17 00:00:00 2001 | From babdaf8354098399ec98c96eb3a3627664d6ba03 Mon Sep 17 00:00:00 2001 | ||||||
| From: Josh Stone <jistone@redhat.com> | From: Josh Stone <jistone@redhat.com> | ||||||
| Date: Thu, 28 Sep 2023 18:14:28 -0700 | Date: Thu, 28 Sep 2023 18:14:28 -0700 | ||||||
| Subject: [PATCH 1/2] bootstrap: allow disabling target self-contained | Subject: [PATCH 1/2] bootstrap: allow disabling target self-contained | ||||||
| @ -11,10 +11,10 @@ Subject: [PATCH 1/2] bootstrap: allow disabling target self-contained | |||||||
|  4 files changed, 22 insertions(+) |  4 files changed, 22 insertions(+) | ||||||
| 
 | 
 | ||||||
| diff --git a/config.example.toml b/config.example.toml
 | diff --git a/config.example.toml b/config.example.toml
 | ||||||
| index 26687bcfb370..381a23f9cead 100644
 | index f1dc32234ccf..82207f19d471 100644
 | ||||||
| --- a/config.example.toml
 | --- a/config.example.toml
 | ||||||
| +++ b/config.example.toml
 | +++ b/config.example.toml
 | ||||||
| @@ -872,6 +872,11 @@
 | @@ -880,6 +880,11 @@
 | ||||||
|  # argument as the test binary. |  # argument as the test binary. | ||||||
|  #runner = <none> (string) |  #runner = <none> (string) | ||||||
|   |   | ||||||
| @ -27,10 +27,10 @@ index 26687bcfb370..381a23f9cead 100644 | |||||||
|  # Distribution options |  # Distribution options | ||||||
|  # |  # | ||||||
| diff --git a/src/bootstrap/src/core/build_steps/compile.rs b/src/bootstrap/src/core/build_steps/compile.rs
 | diff --git a/src/bootstrap/src/core/build_steps/compile.rs b/src/bootstrap/src/core/build_steps/compile.rs
 | ||||||
| index 3e79acad1c4b..525b6e956405 100644
 | index edf18e2ebf33..d48d027f329c 100644
 | ||||||
| --- a/src/bootstrap/src/core/build_steps/compile.rs
 | --- a/src/bootstrap/src/core/build_steps/compile.rs
 | ||||||
| +++ b/src/bootstrap/src/core/build_steps/compile.rs
 | +++ b/src/bootstrap/src/core/build_steps/compile.rs
 | ||||||
| @@ -357,6 +357,10 @@ fn copy_self_contained_objects(
 | @@ -367,6 +367,10 @@ fn copy_self_contained_objects(
 | ||||||
|      compiler: &Compiler, |      compiler: &Compiler, | ||||||
|      target: TargetSelection, |      target: TargetSelection, | ||||||
|  ) -> Vec<(PathBuf, DependencyType)> { |  ) -> Vec<(PathBuf, DependencyType)> { | ||||||
| @ -42,10 +42,10 @@ index 3e79acad1c4b..525b6e956405 100644 | |||||||
|      t!(fs::create_dir_all(&libdir_self_contained)); |      t!(fs::create_dir_all(&libdir_self_contained)); | ||||||
|      let mut target_deps = vec![]; |      let mut target_deps = vec![]; | ||||||
| diff --git a/src/bootstrap/src/core/config/config.rs b/src/bootstrap/src/core/config/config.rs
 | diff --git a/src/bootstrap/src/core/config/config.rs b/src/bootstrap/src/core/config/config.rs
 | ||||||
| index 9d5aa795c6c0..720dc53514d3 100644
 | index bdfee55d8d18..47fcd50e7e03 100644
 | ||||||
| --- a/src/bootstrap/src/core/config/config.rs
 | --- a/src/bootstrap/src/core/config/config.rs
 | ||||||
| +++ b/src/bootstrap/src/core/config/config.rs
 | +++ b/src/bootstrap/src/core/config/config.rs
 | ||||||
| @@ -565,6 +565,7 @@ pub struct Target {
 | @@ -589,6 +589,7 @@ pub struct Target {
 | ||||||
|      pub runner: Option<String>, |      pub runner: Option<String>, | ||||||
|      pub no_std: bool, |      pub no_std: bool, | ||||||
|      pub codegen_backends: Option<Vec<String>>, |      pub codegen_backends: Option<Vec<String>>, | ||||||
| @ -53,7 +53,7 @@ index 9d5aa795c6c0..720dc53514d3 100644 | |||||||
|  } |  } | ||||||
|   |   | ||||||
|  impl Target { |  impl Target { | ||||||
| @@ -573,6 +574,9 @@ pub fn from_triple(triple: &str) -> Self {
 | @@ -597,6 +598,9 @@ pub fn from_triple(triple: &str) -> Self {
 | ||||||
|          if triple.contains("-none") || triple.contains("nvptx") || triple.contains("switch") { |          if triple.contains("-none") || triple.contains("nvptx") || triple.contains("switch") { | ||||||
|              target.no_std = true; |              target.no_std = true; | ||||||
|          } |          } | ||||||
| @ -63,7 +63,7 @@ index 9d5aa795c6c0..720dc53514d3 100644 | |||||||
|          target |          target | ||||||
|      } |      } | ||||||
|  } |  } | ||||||
| @@ -1140,6 +1144,7 @@ struct TomlTarget {
 | @@ -1165,6 +1169,7 @@ struct TomlTarget {
 | ||||||
|          no_std: Option<bool> = "no-std", |          no_std: Option<bool> = "no-std", | ||||||
|          codegen_backends: Option<Vec<String>> = "codegen-backends", |          codegen_backends: Option<Vec<String>> = "codegen-backends", | ||||||
|          runner: Option<String> = "runner", |          runner: Option<String> = "runner", | ||||||
| @ -71,7 +71,7 @@ index 9d5aa795c6c0..720dc53514d3 100644 | |||||||
|      } |      } | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -1900,6 +1905,9 @@ fn get_table(option: &str) -> Result<TomlConfig, toml::de::Error> {
 | @@ -1967,6 +1972,9 @@ fn get_table(option: &str) -> Result<TomlConfig, toml::de::Error> {
 | ||||||
|                  if let Some(s) = cfg.no_std { |                  if let Some(s) = cfg.no_std { | ||||||
|                      target.no_std = s; |                      target.no_std = s; | ||||||
|                  } |                  } | ||||||
| @ -82,10 +82,10 @@ index 9d5aa795c6c0..720dc53514d3 100644 | |||||||
|                  target.cxx = cfg.cxx.map(PathBuf::from); |                  target.cxx = cfg.cxx.map(PathBuf::from); | ||||||
|                  target.ar = cfg.ar.map(PathBuf::from); |                  target.ar = cfg.ar.map(PathBuf::from); | ||||||
| diff --git a/src/bootstrap/src/lib.rs b/src/bootstrap/src/lib.rs
 | diff --git a/src/bootstrap/src/lib.rs b/src/bootstrap/src/lib.rs
 | ||||||
| index a8555b2c3673..70c41b51eb96 100644
 | index 82b640f54234..f724aba50241 100644
 | ||||||
| --- a/src/bootstrap/src/lib.rs
 | --- a/src/bootstrap/src/lib.rs
 | ||||||
| +++ b/src/bootstrap/src/lib.rs
 | +++ b/src/bootstrap/src/lib.rs
 | ||||||
| @@ -1361,6 +1361,11 @@ fn no_std(&self, target: TargetSelection) -> Option<bool> {
 | @@ -1326,6 +1326,11 @@ fn no_std(&self, target: TargetSelection) -> Option<bool> {
 | ||||||
|          self.config.target_config.get(&target).map(|t| t.no_std) |          self.config.target_config.get(&target).map(|t| t.no_std) | ||||||
|      } |      } | ||||||
|   |   | ||||||
|  | |||||||
							
								
								
									
										163
									
								
								0001-bootstrap-allow-setting-jobs-in-config.toml.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										163
									
								
								0001-bootstrap-allow-setting-jobs-in-config.toml.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,163 @@ | |||||||
|  | From 5d3e8210feabae1d80a9f21c18c9173b1fdc43ca Mon Sep 17 00:00:00 2001 | ||||||
|  | From: =?UTF-8?q?=E8=AE=B8=E6=9D=B0=E5=8F=8B=20Jieyou=20Xu=20=28Joe=29?= | ||||||
|  |  <39484203+jieyouxu@users.noreply.github.com> | ||||||
|  | Date: Thu, 17 Oct 2024 22:58:45 +0800 | ||||||
|  | Subject: [PATCH] bootstrap: allow setting `--jobs` in config.toml | ||||||
|  | 
 | ||||||
|  | (cherry picked from commit 65458aed68fe6786068bab00e5a46d7ecdd2a072) | ||||||
|  | ---
 | ||||||
|  |  config.example.toml                       |  5 ++ | ||||||
|  |  src/bootstrap/src/core/config/config.rs   |  5 +- | ||||||
|  |  src/bootstrap/src/core/config/flags.rs    |  3 +- | ||||||
|  |  src/bootstrap/src/core/config/tests.rs    | 58 +++++++++++++++++++++++ | ||||||
|  |  src/bootstrap/src/utils/change_tracker.rs |  5 ++ | ||||||
|  |  5 files changed, 73 insertions(+), 3 deletions(-) | ||||||
|  | 
 | ||||||
|  | diff --git a/config.example.toml b/config.example.toml
 | ||||||
|  | index f1dc32234ccf..40c7ac9f5023 100644
 | ||||||
|  | --- a/config.example.toml
 | ||||||
|  | +++ b/config.example.toml
 | ||||||
|  | @@ -401,6 +401,11 @@
 | ||||||
|  |  # Specify the location of the Android NDK. Used when targeting Android. | ||||||
|  |  #android-ndk = "/path/to/android-ndk-r26d" | ||||||
|  |   | ||||||
|  | +# Number of parallel jobs to be used for building and testing. If set to `0` or
 | ||||||
|  | +# omitted, it will be automatically determined. This is the `-j`/`--jobs` flag
 | ||||||
|  | +# passed to cargo invocations.
 | ||||||
|  | +#jobs = 0
 | ||||||
|  | +
 | ||||||
|  |  # ============================================================================= | ||||||
|  |  # General install configuration options | ||||||
|  |  # ============================================================================= | ||||||
|  | diff --git a/src/bootstrap/src/core/config/config.rs b/src/bootstrap/src/core/config/config.rs
 | ||||||
|  | index bdfee55d8d18..c1e0f8c6b338 100644
 | ||||||
|  | --- a/src/bootstrap/src/core/config/config.rs
 | ||||||
|  | +++ b/src/bootstrap/src/core/config/config.rs
 | ||||||
|  | @@ -872,6 +872,7 @@ struct Build {
 | ||||||
|  |          metrics: Option<bool> = "metrics", | ||||||
|  |          android_ndk: Option<PathBuf> = "android-ndk", | ||||||
|  |          optimized_compiler_builtins: Option<bool> = "optimized-compiler-builtins", | ||||||
|  | +        jobs: Option<u32> = "jobs",
 | ||||||
|  |      } | ||||||
|  |  } | ||||||
|  |   | ||||||
|  | @@ -1256,7 +1257,6 @@ pub(crate) fn parse_inner(
 | ||||||
|  |          config.rustc_error_format = flags.rustc_error_format; | ||||||
|  |          config.json_output = flags.json_output; | ||||||
|  |          config.on_fail = flags.on_fail; | ||||||
|  | -        config.jobs = Some(threads_from_config(flags.jobs as u32));
 | ||||||
|  |          config.cmd = flags.cmd; | ||||||
|  |          config.incremental = flags.incremental; | ||||||
|  |          config.dry_run = if flags.dry_run { DryRun::UserSelected } else { DryRun::Disabled }; | ||||||
|  | @@ -1477,8 +1477,11 @@ fn get_table(option: &str) -> Result<TomlConfig, toml::de::Error> {
 | ||||||
|  |              metrics: _, | ||||||
|  |              android_ndk, | ||||||
|  |              optimized_compiler_builtins, | ||||||
|  | +            jobs,
 | ||||||
|  |          } = toml.build.unwrap_or_default(); | ||||||
|  |   | ||||||
|  | +        config.jobs = Some(threads_from_config(flags.jobs.unwrap_or(jobs.unwrap_or(0))));
 | ||||||
|  | +
 | ||||||
|  |          if let Some(file_build) = build { | ||||||
|  |              config.build = TargetSelection::from_user(&file_build); | ||||||
|  |          }; | ||||||
|  | diff --git a/src/bootstrap/src/core/config/flags.rs b/src/bootstrap/src/core/config/flags.rs
 | ||||||
|  | index c3f174028149..7fdd5f8b8cae 100644
 | ||||||
|  | --- a/src/bootstrap/src/core/config/flags.rs
 | ||||||
|  | +++ b/src/bootstrap/src/core/config/flags.rs
 | ||||||
|  | @@ -110,11 +110,10 @@ pub struct Flags {
 | ||||||
|  |          short, | ||||||
|  |          long, | ||||||
|  |          value_hint = clap::ValueHint::Other, | ||||||
|  | -        default_value_t = std::thread::available_parallelism().map_or(1, std::num::NonZeroUsize::get),
 | ||||||
|  |          value_name = "JOBS" | ||||||
|  |      )] | ||||||
|  |      /// number of jobs to run in parallel | ||||||
|  | -    pub jobs: usize,
 | ||||||
|  | +    pub jobs: Option<u32>,
 | ||||||
|  |      // This overrides the deny-warnings configuration option, | ||||||
|  |      // which passes -Dwarnings to the compiler invocations. | ||||||
|  |      #[arg(global = true, long)] | ||||||
|  | diff --git a/src/bootstrap/src/core/config/tests.rs b/src/bootstrap/src/core/config/tests.rs
 | ||||||
|  | index 219c5a6ec914..bc49074fa316 100644
 | ||||||
|  | --- a/src/bootstrap/src/core/config/tests.rs
 | ||||||
|  | +++ b/src/bootstrap/src/core/config/tests.rs
 | ||||||
|  | @@ -317,3 +317,61 @@ fn order_of_clippy_rules() {
 | ||||||
|  |   | ||||||
|  |      assert_eq!(expected, actual); | ||||||
|  |  } | ||||||
|  | +
 | ||||||
|  | +#[test]
 | ||||||
|  | +fn parse_jobs() {
 | ||||||
|  | +    assert_eq!(parse("build.jobs = 1").jobs, Some(1));
 | ||||||
|  | +}
 | ||||||
|  | +
 | ||||||
|  | +#[test]
 | ||||||
|  | +fn jobs_precedence() {
 | ||||||
|  | +    // `--jobs` should take precedence over using `--set build.jobs`.
 | ||||||
|  | +
 | ||||||
|  | +    let config = Config::parse_inner(
 | ||||||
|  | +        Flags::parse(&[
 | ||||||
|  | +            "check".to_owned(),
 | ||||||
|  | +            "--config=/does/not/exist".to_owned(),
 | ||||||
|  | +            "--jobs=67890".to_owned(),
 | ||||||
|  | +            "--set=build.jobs=12345".to_owned(),
 | ||||||
|  | +        ]),
 | ||||||
|  | +        |&_| toml::from_str(""),
 | ||||||
|  | +    );
 | ||||||
|  | +    assert_eq!(config.jobs, Some(67890));
 | ||||||
|  | +
 | ||||||
|  | +    // `--set build.jobs` should take precedence over `config.toml`.
 | ||||||
|  | +    let config = Config::parse_inner(
 | ||||||
|  | +        Flags::parse(&[
 | ||||||
|  | +            "check".to_owned(),
 | ||||||
|  | +            "--config=/does/not/exist".to_owned(),
 | ||||||
|  | +            "--set=build.jobs=12345".to_owned(),
 | ||||||
|  | +        ]),
 | ||||||
|  | +        |&_| {
 | ||||||
|  | +            toml::from_str(
 | ||||||
|  | +                r#"
 | ||||||
|  | +            [build]
 | ||||||
|  | +            jobs = 67890
 | ||||||
|  | +        "#,
 | ||||||
|  | +            )
 | ||||||
|  | +        },
 | ||||||
|  | +    );
 | ||||||
|  | +    assert_eq!(config.jobs, Some(12345));
 | ||||||
|  | +
 | ||||||
|  | +    // `--jobs` > `--set build.jobs` > `config.toml`
 | ||||||
|  | +    let config = Config::parse_inner(
 | ||||||
|  | +        Flags::parse(&[
 | ||||||
|  | +            "check".to_owned(),
 | ||||||
|  | +            "--jobs=123".to_owned(),
 | ||||||
|  | +            "--config=/does/not/exist".to_owned(),
 | ||||||
|  | +            "--set=build.jobs=456".to_owned(),
 | ||||||
|  | +        ]),
 | ||||||
|  | +        |&_| {
 | ||||||
|  | +            toml::from_str(
 | ||||||
|  | +                r#"
 | ||||||
|  | +            [build]
 | ||||||
|  | +            jobs = 789
 | ||||||
|  | +        "#,
 | ||||||
|  | +            )
 | ||||||
|  | +        },
 | ||||||
|  | +    );
 | ||||||
|  | +    assert_eq!(config.jobs, Some(123));
 | ||||||
|  | +}
 | ||||||
|  | diff --git a/src/bootstrap/src/utils/change_tracker.rs b/src/bootstrap/src/utils/change_tracker.rs
 | ||||||
|  | index 51a25104e4cf..1f6a1064a5dc 100644
 | ||||||
|  | --- a/src/bootstrap/src/utils/change_tracker.rs
 | ||||||
|  | +++ b/src/bootstrap/src/utils/change_tracker.rs
 | ||||||
|  | @@ -235,4 +235,9 @@ pub fn human_readable_changes(changes: &[ChangeInfo]) -> String {
 | ||||||
|  |          severity: ChangeSeverity::Info, | ||||||
|  |          summary: "The `build.profiler` option now tries to use source code from `download-ci-llvm` if possible, instead of checking out the `src/llvm-project` submodule.", | ||||||
|  |      }, | ||||||
|  | +    ChangeInfo {
 | ||||||
|  | +        change_id: 131838,
 | ||||||
|  | +        severity: ChangeSeverity::Info,
 | ||||||
|  | +        summary: "Allow setting `--jobs` in config.toml with `build.jobs`.",
 | ||||||
|  | +    },
 | ||||||
|  |  ]; | ||||||
|  | -- 
 | ||||||
|  | 2.47.0 | ||||||
|  | 
 | ||||||
| @ -1,103 +0,0 @@ | |||||||
| From c41f254ad192a4ab402b40f8bdad169a8163140a Mon Sep 17 00:00:00 2001 |  | ||||||
| From: onur-ozkan <work@onurozkan.dev> |  | ||||||
| Date: Thu, 25 Jul 2024 15:59:25 +0300 |  | ||||||
| Subject: [PATCH] handle no_std targets on std builds |  | ||||||
| 
 |  | ||||||
| This change unifies the `Step::run_make` logic and improves it by skipping |  | ||||||
| std specific crates for no_std targets. |  | ||||||
| 
 |  | ||||||
| Signed-off-by: onur-ozkan <work@onurozkan.dev> |  | ||||||
| (cherry picked from commit 6e247195c644aa924a10c98cc8eb3a28e1a87929) |  | ||||||
| ---
 |  | ||||||
|  src/bootstrap/src/core/build_steps/check.rs   |  4 ++-- |  | ||||||
|  src/bootstrap/src/core/build_steps/clippy.rs  |  3 ++- |  | ||||||
|  src/bootstrap/src/core/build_steps/compile.rs | 23 +++++++++++++++---- |  | ||||||
|  3 files changed, 22 insertions(+), 8 deletions(-) |  | ||||||
| 
 |  | ||||||
| diff --git a/src/bootstrap/src/core/build_steps/check.rs b/src/bootstrap/src/core/build_steps/check.rs
 |  | ||||||
| index 8235d4634b75..bbad3f179ac7 100644
 |  | ||||||
| --- a/src/bootstrap/src/core/build_steps/check.rs
 |  | ||||||
| +++ b/src/bootstrap/src/core/build_steps/check.rs
 |  | ||||||
| @@ -1,7 +1,7 @@
 |  | ||||||
|  //! Implementation of compiling the compiler and standard library, in "check"-based modes. |  | ||||||
|   |  | ||||||
|  use crate::core::build_steps::compile::{ |  | ||||||
| -    add_to_sysroot, run_cargo, rustc_cargo, rustc_cargo_env, std_cargo,
 |  | ||||||
| +    add_to_sysroot, run_cargo, rustc_cargo, rustc_cargo_env, std_cargo, std_crates_for_run_make,
 |  | ||||||
|  }; |  | ||||||
|  use crate::core::build_steps::tool::{prepare_tool_cargo, SourceType}; |  | ||||||
|  use crate::core::builder::{ |  | ||||||
| @@ -47,7 +47,7 @@ fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> {
 |  | ||||||
|      } |  | ||||||
|   |  | ||||||
|      fn make_run(run: RunConfig<'_>) { |  | ||||||
| -        let crates = run.make_run_crates(Alias::Library);
 |  | ||||||
| +        let crates = std_crates_for_run_make(&run);
 |  | ||||||
|          run.builder.ensure(Std { target: run.target, crates }); |  | ||||||
|      } |  | ||||||
|   |  | ||||||
| diff --git a/src/bootstrap/src/core/build_steps/clippy.rs b/src/bootstrap/src/core/build_steps/clippy.rs
 |  | ||||||
| index 40a2112b1925..a3ab094d799d 100644
 |  | ||||||
| --- a/src/bootstrap/src/core/build_steps/clippy.rs
 |  | ||||||
| +++ b/src/bootstrap/src/core/build_steps/clippy.rs
 |  | ||||||
| @@ -4,6 +4,7 @@
 |  | ||||||
|   |  | ||||||
|  use crate::builder::Builder; |  | ||||||
|  use crate::builder::ShouldRun; |  | ||||||
| +use crate::core::build_steps::compile::std_crates_for_run_make;
 |  | ||||||
|  use crate::core::builder; |  | ||||||
|  use crate::core::builder::crate_description; |  | ||||||
|  use crate::core::builder::Alias; |  | ||||||
| @@ -122,7 +123,7 @@ fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> {
 |  | ||||||
|      } |  | ||||||
|   |  | ||||||
|      fn make_run(run: RunConfig<'_>) { |  | ||||||
| -        let crates = run.make_run_crates(Alias::Library);
 |  | ||||||
| +        let crates = std_crates_for_run_make(&run);
 |  | ||||||
|          run.builder.ensure(Std { target: run.target, crates }); |  | ||||||
|      } |  | ||||||
|   |  | ||||||
| diff --git a/src/bootstrap/src/core/build_steps/compile.rs b/src/bootstrap/src/core/build_steps/compile.rs
 |  | ||||||
| index 525b6e956405..19c8cbc54080 100644
 |  | ||||||
| --- a/src/bootstrap/src/core/build_steps/compile.rs
 |  | ||||||
| +++ b/src/bootstrap/src/core/build_steps/compile.rs
 |  | ||||||
| @@ -127,11 +127,7 @@ fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> {
 |  | ||||||
|      } |  | ||||||
|   |  | ||||||
|      fn make_run(run: RunConfig<'_>) { |  | ||||||
| -        // If the paths include "library", build the entire standard library.
 |  | ||||||
| -        let has_alias =
 |  | ||||||
| -            run.paths.iter().any(|set| set.assert_single_path().path.ends_with("library"));
 |  | ||||||
| -        let crates = if has_alias { Default::default() } else { run.cargo_crates_in_set() };
 |  | ||||||
| -
 |  | ||||||
| +        let crates = std_crates_for_run_make(&run);
 |  | ||||||
|          run.builder.ensure(Std { |  | ||||||
|              compiler: run.builder.compiler(run.builder.top_stage, run.build_triple()), |  | ||||||
|              target: run.target, |  | ||||||
| @@ -428,6 +424,23 @@ fn copy_self_contained_objects(
 |  | ||||||
|      target_deps |  | ||||||
|  } |  | ||||||
|   |  | ||||||
| +/// Resolves standard library crates for `Std::run_make` for any build kind (like check, build, clippy, etc.).
 |  | ||||||
| +pub fn std_crates_for_run_make(run: &RunConfig<'_>) -> Vec<String> {
 |  | ||||||
| +    let has_alias = run.paths.iter().any(|set| set.assert_single_path().path.ends_with("library"));
 |  | ||||||
| +    let target_is_no_std = run.builder.no_std(run.target).unwrap_or(false);
 |  | ||||||
| +
 |  | ||||||
| +    // For no_std targets, do not add any additional crates to the compilation other than what `compile::std_cargo` already adds for no_std targets.
 |  | ||||||
| +    if target_is_no_std {
 |  | ||||||
| +        vec![]
 |  | ||||||
| +    }
 |  | ||||||
| +    // If the paths include "library", build the entire standard library.
 |  | ||||||
| +    else if has_alias {
 |  | ||||||
| +        run.make_run_crates(builder::Alias::Library)
 |  | ||||||
| +    } else {
 |  | ||||||
| +        run.cargo_crates_in_set()
 |  | ||||||
| +    }
 |  | ||||||
| +}
 |  | ||||||
| +
 |  | ||||||
|  /// Configure cargo to compile the standard library, adding appropriate env vars |  | ||||||
|  /// and such. |  | ||||||
|  pub fn std_cargo(builder: &Builder<'_>, target: TargetSelection, stage: u32, cargo: &mut Cargo) { |  | ||||||
| -- 
 |  | ||||||
| 2.46.0 |  | ||||||
| 
 |  | ||||||
| @ -1,19 +1,19 @@ | |||||||
| From 348b03695d916ab23a9d66c4ceed2ecbecfc68e7 Mon Sep 17 00:00:00 2001 | From 3fdce19416e80a48c5b2b77b2cdec697d0b5e225 Mon Sep 17 00:00:00 2001 | ||||||
| From: Josh Stone <jistone@redhat.com> | From: Josh Stone <jistone@redhat.com> | ||||||
| Date: Thu, 28 Sep 2023 18:18:16 -0700 | Date: Thu, 28 Sep 2023 18:18:16 -0700 | ||||||
| Subject: [PATCH 2/2] set an external library path for wasm32-wasi | Subject: [PATCH 2/2] set an external library path for wasm32-wasi | ||||||
| 
 | 
 | ||||||
| ---
 | ---
 | ||||||
|  compiler/rustc_codegen_ssa/src/back/link.rs             | 9 +++++++++ |  compiler/rustc_codegen_ssa/src/back/link.rs            | 10 ++++++++++ | ||||||
|  compiler/rustc_target/src/spec/mod.rs                   | 4 ++++ |  compiler/rustc_target/src/spec/mod.rs                  |  4 ++++ | ||||||
|  compiler/rustc_target/src/spec/targets/wasm32_wasip1.rs | 7 ++++--- |  .../rustc_target/src/spec/targets/wasm32_wasip1.rs     |  7 ++++--- | ||||||
|  3 files changed, 17 insertions(+), 3 deletions(-) |  3 files changed, 18 insertions(+), 3 deletions(-) | ||||||
| 
 | 
 | ||||||
| diff --git a/compiler/rustc_codegen_ssa/src/back/link.rs b/compiler/rustc_codegen_ssa/src/back/link.rs
 | diff --git a/compiler/rustc_codegen_ssa/src/back/link.rs b/compiler/rustc_codegen_ssa/src/back/link.rs
 | ||||||
| index 8c582fac0d82..169d86cd6224 100644
 | index e8143b9a5f38..5a928a18b3ea 100644
 | ||||||
| --- a/compiler/rustc_codegen_ssa/src/back/link.rs
 | --- a/compiler/rustc_codegen_ssa/src/back/link.rs
 | ||||||
| +++ b/compiler/rustc_codegen_ssa/src/back/link.rs
 | +++ b/compiler/rustc_codegen_ssa/src/back/link.rs
 | ||||||
| @@ -1586,6 +1586,12 @@ fn get_object_file_path(sess: &Session, name: &str, self_contained: bool) -> Pat
 | @@ -1621,6 +1621,12 @@ fn get_object_file_path(sess: &Session, name: &str, self_contained: bool) -> Pat
 | ||||||
|              return file_path; |              return file_path; | ||||||
|          } |          } | ||||||
|      } |      } | ||||||
| @ -23,13 +23,14 @@ index 8c582fac0d82..169d86cd6224 100644 | |||||||
| +            return file_path;
 | +            return file_path;
 | ||||||
| +        }
 | +        }
 | ||||||
| +    }
 | +    }
 | ||||||
|      for search_path in fs.search_paths() { |      for search_path in sess.target_filesearch(PathKind::Native).search_paths() { | ||||||
|          let file_path = search_path.dir.join(name); |          let file_path = search_path.dir.join(name); | ||||||
|          if file_path.exists() { |          if file_path.exists() { | ||||||
| @@ -2076,6 +2082,9 @@ fn add_library_search_dirs(cmd: &mut dyn Linker, sess: &Session, self_contained:
 | @@ -2123,6 +2129,10 @@ fn add_library_search_dirs(
 | ||||||
|          let lib_path = sess.target_filesearch(PathKind::All).get_self_contained_lib_path(); |              ControlFlow::<()>::Continue(()) | ||||||
|          cmd.include_path(&fix_windows_verbatim_for_gcc(&lib_path)); |          }, | ||||||
|      } |      ); | ||||||
|  | +
 | ||||||
| +    if let Some(lib_path) = &sess.target.options.external_lib_path {
 | +    if let Some(lib_path) = &sess.target.options.external_lib_path {
 | ||||||
| +        cmd.include_path(Path::new(lib_path.as_ref()));
 | +        cmd.include_path(Path::new(lib_path.as_ref()));
 | ||||||
| +    }
 | +    }
 | ||||||
| @ -37,10 +38,10 @@ index 8c582fac0d82..169d86cd6224 100644 | |||||||
|   |   | ||||||
|  /// Add options making relocation sections in the produced ELF files read-only |  /// Add options making relocation sections in the produced ELF files read-only | ||||||
| diff --git a/compiler/rustc_target/src/spec/mod.rs b/compiler/rustc_target/src/spec/mod.rs
 | diff --git a/compiler/rustc_target/src/spec/mod.rs b/compiler/rustc_target/src/spec/mod.rs
 | ||||||
| index 607eeac7ccdc..63070622502e 100644
 | index d5f227a84a4c..54c22c8ebed6 100644
 | ||||||
| --- a/compiler/rustc_target/src/spec/mod.rs
 | --- a/compiler/rustc_target/src/spec/mod.rs
 | ||||||
| +++ b/compiler/rustc_target/src/spec/mod.rs
 | +++ b/compiler/rustc_target/src/spec/mod.rs
 | ||||||
| @@ -2033,6 +2033,7 @@ pub struct TargetOptions {
 | @@ -2053,6 +2053,7 @@ pub struct TargetOptions {
 | ||||||
|      /// Objects to link before and after all other object code. |      /// Objects to link before and after all other object code. | ||||||
|      pub pre_link_objects: CrtObjects, |      pub pre_link_objects: CrtObjects, | ||||||
|      pub post_link_objects: CrtObjects, |      pub post_link_objects: CrtObjects, | ||||||
| @ -48,7 +49,7 @@ index 607eeac7ccdc..63070622502e 100644 | |||||||
|      /// Same as `(pre|post)_link_objects`, but when self-contained linking mode is enabled. |      /// Same as `(pre|post)_link_objects`, but when self-contained linking mode is enabled. | ||||||
|      pub pre_link_objects_self_contained: CrtObjects, |      pub pre_link_objects_self_contained: CrtObjects, | ||||||
|      pub post_link_objects_self_contained: CrtObjects, |      pub post_link_objects_self_contained: CrtObjects, | ||||||
| @@ -2520,6 +2521,7 @@ fn default() -> TargetOptions {
 | @@ -2540,6 +2541,7 @@ fn default() -> TargetOptions {
 | ||||||
|              relro_level: RelroLevel::None, |              relro_level: RelroLevel::None, | ||||||
|              pre_link_objects: Default::default(), |              pre_link_objects: Default::default(), | ||||||
|              post_link_objects: Default::default(), |              post_link_objects: Default::default(), | ||||||
| @ -56,7 +57,7 @@ index 607eeac7ccdc..63070622502e 100644 | |||||||
|              pre_link_objects_self_contained: Default::default(), |              pre_link_objects_self_contained: Default::default(), | ||||||
|              post_link_objects_self_contained: Default::default(), |              post_link_objects_self_contained: Default::default(), | ||||||
|              link_self_contained: LinkSelfContainedDefault::False, |              link_self_contained: LinkSelfContainedDefault::False, | ||||||
| @@ -3202,6 +3204,7 @@ macro_rules! key {
 | @@ -3221,6 +3223,7 @@ macro_rules! key {
 | ||||||
|          key!(linker_is_gnu_json = "linker-is-gnu", bool); |          key!(linker_is_gnu_json = "linker-is-gnu", bool); | ||||||
|          key!(pre_link_objects = "pre-link-objects", link_objects); |          key!(pre_link_objects = "pre-link-objects", link_objects); | ||||||
|          key!(post_link_objects = "post-link-objects", link_objects); |          key!(post_link_objects = "post-link-objects", link_objects); | ||||||
| @ -64,7 +65,7 @@ index 607eeac7ccdc..63070622502e 100644 | |||||||
|          key!(pre_link_objects_self_contained = "pre-link-objects-fallback", link_objects); |          key!(pre_link_objects_self_contained = "pre-link-objects-fallback", link_objects); | ||||||
|          key!(post_link_objects_self_contained = "post-link-objects-fallback", link_objects); |          key!(post_link_objects_self_contained = "post-link-objects-fallback", link_objects); | ||||||
|          // Deserializes the backwards-compatible variants of `-Clink-self-contained` |          // Deserializes the backwards-compatible variants of `-Clink-self-contained` | ||||||
| @@ -3464,6 +3467,7 @@ macro_rules! target_option_val {
 | @@ -3482,6 +3485,7 @@ macro_rules! target_option_val {
 | ||||||
|          target_option_val!(linker_is_gnu_json, "linker-is-gnu"); |          target_option_val!(linker_is_gnu_json, "linker-is-gnu"); | ||||||
|          target_option_val!(pre_link_objects); |          target_option_val!(pre_link_objects); | ||||||
|          target_option_val!(post_link_objects); |          target_option_val!(post_link_objects); | ||||||
| @ -73,10 +74,10 @@ index 607eeac7ccdc..63070622502e 100644 | |||||||
|          target_option_val!(post_link_objects_self_contained, "post-link-objects-fallback"); |          target_option_val!(post_link_objects_self_contained, "post-link-objects-fallback"); | ||||||
|          target_option_val!(link_args - pre_link_args_json, "pre-link-args"); |          target_option_val!(link_args - pre_link_args_json, "pre-link-args"); | ||||||
| diff --git a/compiler/rustc_target/src/spec/targets/wasm32_wasip1.rs b/compiler/rustc_target/src/spec/targets/wasm32_wasip1.rs
 | diff --git a/compiler/rustc_target/src/spec/targets/wasm32_wasip1.rs b/compiler/rustc_target/src/spec/targets/wasm32_wasip1.rs
 | ||||||
| index a8e7f22c0689..55949557d6bb 100644
 | index 29e6dff2068f..dbe021ef064c 100644
 | ||||||
| --- a/compiler/rustc_target/src/spec/targets/wasm32_wasip1.rs
 | --- a/compiler/rustc_target/src/spec/targets/wasm32_wasip1.rs
 | ||||||
| +++ b/compiler/rustc_target/src/spec/targets/wasm32_wasip1.rs
 | +++ b/compiler/rustc_target/src/spec/targets/wasm32_wasip1.rs
 | ||||||
| @@ -21,11 +21,12 @@ pub fn target() -> Target {
 | @@ -19,11 +19,12 @@ pub fn target() -> Target {
 | ||||||
|      options.env = "p1".into(); |      options.env = "p1".into(); | ||||||
|      options.add_pre_link_args(LinkerFlavor::WasmLld(Cc::Yes), &["--target=wasm32-wasi"]); |      options.add_pre_link_args(LinkerFlavor::WasmLld(Cc::Yes), &["--target=wasm32-wasi"]); | ||||||
|   |   | ||||||
|  | |||||||
							
								
								
									
										64
									
								
								rust.spec
									
									
									
									
									
								
							
							
						
						
									
										64
									
								
								rust.spec
									
									
									
									
									
								
							| @ -1,5 +1,5 @@ | |||||||
| Name:           rust | Name:           rust | ||||||
| Version:        1.81.0 | Version:        1.82.0 | ||||||
| Release:        1%{?dist} | Release:        1%{?dist} | ||||||
| Summary:        The Rust Programming Language | Summary:        The Rust Programming Language | ||||||
| License:        (Apache-2.0 OR MIT) AND (Artistic-2.0 AND BSD-3-Clause AND ISC AND MIT AND MPL-2.0 AND Unicode-DFS-2016) | License:        (Apache-2.0 OR MIT) AND (Artistic-2.0 AND BSD-3-Clause AND ISC AND MIT AND MPL-2.0 AND Unicode-DFS-2016) | ||||||
| @ -14,9 +14,9 @@ ExclusiveArch:  %{rust_arches} | |||||||
| # To bootstrap from scratch, set the channel and date from src/stage0.json | # To bootstrap from scratch, set the channel and date from src/stage0.json | ||||||
| # e.g. 1.59.0 wants rustc: 1.58.0-2022-01-13 | # e.g. 1.59.0 wants rustc: 1.58.0-2022-01-13 | ||||||
| # or nightly wants some beta-YYYY-MM-DD | # or nightly wants some beta-YYYY-MM-DD | ||||||
| %global bootstrap_version 1.80.1 | %global bootstrap_version 1.81.0 | ||||||
| %global bootstrap_channel 1.80.1 | %global bootstrap_channel 1.81.0 | ||||||
| %global bootstrap_date 2024-08-08 | %global bootstrap_date 2024-09-05 | ||||||
| 
 | 
 | ||||||
| # Only the specified arches will use bootstrap binaries. | # Only the specified arches will use bootstrap binaries. | ||||||
| # NOTE: Those binaries used to be uploaded with every new release, but that was | # NOTE: Those binaries used to be uploaded with every new release, but that was | ||||||
| @ -75,17 +75,17 @@ ExclusiveArch:  %{rust_arches} | |||||||
| # We can also choose to just use Rust's bundled LLVM, in case the system LLVM | # We can also choose to just use Rust's bundled LLVM, in case the system LLVM | ||||||
| # is insufficient.  Rust currently requires LLVM 17.0+. | # is insufficient.  Rust currently requires LLVM 17.0+. | ||||||
| %global min_llvm_version 17.0.0 | %global min_llvm_version 17.0.0 | ||||||
| %global bundled_llvm_version 18.1.7 | %global bundled_llvm_version 19.1.1 | ||||||
| #global llvm_compat_version 17 | #global llvm_compat_version 17 | ||||||
| %global llvm llvm%{?llvm_compat_version} | %global llvm llvm%{?llvm_compat_version} | ||||||
| %bcond_with bundled_llvm | %bcond_with bundled_llvm | ||||||
| 
 | 
 | ||||||
| # Requires stable libgit2 1.7, and not the next minor soname change. | # Requires stable libgit2 1.8, and not the next minor soname change. | ||||||
| # This needs to be consistent with the bindings in vendor/libgit2-sys. | # This needs to be consistent with the bindings in vendor/libgit2-sys. | ||||||
| %global min_libgit2_version 1.8.1 | %global min_libgit2_version 1.8.1 | ||||||
| %global next_libgit2_version 1.9.0~ | %global next_libgit2_version 1.9.0~ | ||||||
| %global bundled_libgit2_version 1.8.1 | %global bundled_libgit2_version 1.8.1 | ||||||
| %if 0%{?fedora} >= 42 | %if 0%{?fedora} >= 41 | ||||||
| %bcond_with bundled_libgit2 | %bcond_with bundled_libgit2 | ||||||
| %else | %else | ||||||
| %bcond_without bundled_libgit2 | %bcond_without bundled_libgit2 | ||||||
| @ -93,7 +93,7 @@ ExclusiveArch:  %{rust_arches} | |||||||
| 
 | 
 | ||||||
| # Cargo uses UPSERTs with omitted conflict targets | # Cargo uses UPSERTs with omitted conflict targets | ||||||
| %global min_sqlite3_version 3.35 | %global min_sqlite3_version 3.35 | ||||||
| %global bundled_sqlite3_version 3.45.0 | %global bundled_sqlite3_version 3.46.0 | ||||||
| %if 0%{?rhel} && 0%{?rhel} < 10 | %if 0%{?rhel} && 0%{?rhel} < 10 | ||||||
| %bcond_without bundled_sqlite3 | %bcond_without bundled_sqlite3 | ||||||
| %else | %else | ||||||
| @ -159,17 +159,13 @@ Patch4:         0001-bootstrap-allow-disabling-target-self-contained.patch | |||||||
| Patch5:         0002-set-an-external-library-path-for-wasm32-wasi.patch | Patch5:         0002-set-an-external-library-path-for-wasm32-wasi.patch | ||||||
| 
 | 
 | ||||||
| # We don't want to use the bundled library in libsqlite3-sys | # We don't want to use the bundled library in libsqlite3-sys | ||||||
| Patch6:         rustc-1.81.0-unbundle-sqlite.patch | Patch6:         rustc-1.82.0-unbundle-sqlite.patch | ||||||
| 
 | 
 | ||||||
| # handle no_std targets on std builds | # https://github.com/rust-lang/rust/pull/130034 | ||||||
| # https://github.com/rust-lang/rust/pull/128182 | Patch7:         0001-Fix-enabling-wasm-component-ld-to-match-other-tools.patch | ||||||
| Patch7:         0001-handle-no_std-targets-on-std-builds.patch |  | ||||||
| 
 | 
 | ||||||
| # https://github.com/rust-lang/rust/pull/130960 | # https://github.com/rust-lang/rust/pull/131838 | ||||||
| Patch8:         0001-Only-add-an-automatic-SONAME-for-Rust-dylibs.patch | Patch8:         0001-bootstrap-allow-setting-jobs-in-config.toml.patch | ||||||
| 
 |  | ||||||
| # https://github.com/rust-lang/rust/pull/127513 |  | ||||||
| Patch9:         rustc-1.81.0-Update-to-LLVM-19.patch |  | ||||||
| 
 | 
 | ||||||
| ### RHEL-specific patches below ### | ### RHEL-specific patches below ### | ||||||
| 
 | 
 | ||||||
| @ -179,7 +175,7 @@ Source101:      cargo_vendor.attr | |||||||
| Source102:      cargo_vendor.prov | Source102:      cargo_vendor.prov | ||||||
| 
 | 
 | ||||||
| # Disable cargo->libgit2->libssh2 on RHEL, as it's not approved for FIPS (rhbz1732949) | # Disable cargo->libgit2->libssh2 on RHEL, as it's not approved for FIPS (rhbz1732949) | ||||||
| Patch100:       rustc-1.81.0-disable-libssh2.patch | Patch100:       rustc-1.82.0-disable-libssh2.patch | ||||||
| 
 | 
 | ||||||
| # Get the Rust triple for any arch. | # Get the Rust triple for any arch. | ||||||
| %{lua: function rust_triple(arch) | %{lua: function rust_triple(arch) | ||||||
| @ -654,7 +650,6 @@ rm -rf %{wasi_libc_dir}/dlmalloc/ | |||||||
| %endif | %endif | ||||||
| %patch -P7 -p1 | %patch -P7 -p1 | ||||||
| %patch -P8 -p1 | %patch -P8 -p1 | ||||||
| %patch -P9 -p1 |  | ||||||
| 
 | 
 | ||||||
| %if %with disabled_libssh2 | %if %with disabled_libssh2 | ||||||
| %patch -P100 -p1 | %patch -P100 -p1 | ||||||
| @ -750,12 +745,23 @@ end} | |||||||
| %{export_rust_env} | %{export_rust_env} | ||||||
| 
 | 
 | ||||||
| # Some builders have relatively little memory for their CPU count. | # Some builders have relatively little memory for their CPU count. | ||||||
| # At least 2GB per CPU is a good rule of thumb for building rustc. | # At least 4GB per CPU is a good rule of thumb for building rustc. | ||||||
| ncpus=$(/usr/bin/getconf _NPROCESSORS_ONLN) | %if ! %defined constrain_build | ||||||
| max_cpus=$(( ($(free -g | awk '/^Mem:/{print $2}') + 1) / 2 )) | %define constrain_build(m:) %{lua: | ||||||
| if [ "$max_cpus" -ge 1 -a "$max_cpus" -lt "$ncpus" ]; then |   for l in io.lines('/proc/meminfo') do | ||||||
|   ncpus="$max_cpus" |     if l:sub(1, 9) == "MemTotal:" then | ||||||
| fi |       local opt_m = math.tointeger(rpm.expand("%{-m*}")) | ||||||
|  |       local mem_total = math.tointeger(string.match(l, "MemTotal:%s+(%d+)")) | ||||||
|  |       local cpu_limit = math.max(1, mem_total // (opt_m * 1024)) | ||||||
|  |       if cpu_limit < math.tointeger(rpm.expand("%_smp_build_ncpus")) then | ||||||
|  |         rpm.define("_smp_build_ncpus " .. cpu_limit) | ||||||
|  |       end | ||||||
|  |       break | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | } | ||||||
|  | %endif | ||||||
|  | %constrain_build -m 4096 | ||||||
| 
 | 
 | ||||||
| %if %defined mingw_targets | %if %defined mingw_targets | ||||||
| %define mingw_target_config %{shrink: | %define mingw_target_config %{shrink: | ||||||
| @ -829,6 +835,7 @@ test -r "%{profiler}" | |||||||
|   --disable-rpath \ |   --disable-rpath \ | ||||||
|   %{enable_debuginfo} \ |   %{enable_debuginfo} \ | ||||||
|   %{enable_rust_opts} \ |   %{enable_rust_opts} \ | ||||||
|  |   --set build.jobs=%_smp_build_ncpus \ | ||||||
|   --set build.build-stage=2 \ |   --set build.build-stage=2 \ | ||||||
|   --set build.doc-stage=2 \ |   --set build.doc-stage=2 \ | ||||||
|   --set build.install-stage=2 \ |   --set build.install-stage=2 \ | ||||||
| @ -848,7 +855,7 @@ test -r "%{profiler}" | |||||||
| %define profraw $PWD/build/profiles | %define profraw $PWD/build/profiles | ||||||
| %define profdata $PWD/build/rustc.profdata | %define profdata $PWD/build/rustc.profdata | ||||||
| mkdir -p "%{profraw}" | mkdir -p "%{profraw}" | ||||||
| %{__x} build -j "$ncpus" sysroot --rust-profile-generate="%{profraw}" | %{__x} build sysroot --rust-profile-generate="%{profraw}" | ||||||
| # Build cargo as a workload to generate compiler profiles | # Build cargo as a workload to generate compiler profiles | ||||||
| env LLVM_PROFILE_FILE="%{profraw}/default_%%m_%%p.profraw" \ | env LLVM_PROFILE_FILE="%{profraw}/default_%%m_%%p.profraw" \ | ||||||
|   %{__x} --keep-stage=0 --keep-stage=1 build cargo |   %{__x} --keep-stage=0 --keep-stage=1 build cargo | ||||||
| @ -860,7 +867,7 @@ rm -r "%{profraw}" build/%{rust_triple}/stage2*/ | |||||||
| %endif | %endif | ||||||
| 
 | 
 | ||||||
| # Build the compiler normally (with or without PGO) | # Build the compiler normally (with or without PGO) | ||||||
| %{__x} build -j "$ncpus" sysroot | %{__x} build sysroot | ||||||
| 
 | 
 | ||||||
| # Build everything else normally | # Build everything else normally | ||||||
| %{__x} build | %{__x} build | ||||||
| @ -1165,6 +1172,9 @@ timeout -v 30m %{__x} test --no-fail-fast rustfmt || : | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| %changelog | %changelog | ||||||
|  | * Tue Nov 05 2024 Josh Stone <jistone@redhat.com> - 1.82.0-1 | ||||||
|  | - Update to 1.82.0 | ||||||
|  | 
 | ||||||
| * Fri Oct 25 2024 Josh Stone <jistone@redhat.com> - 1.81.0-1 | * Fri Oct 25 2024 Josh Stone <jistone@redhat.com> - 1.81.0-1 | ||||||
| - Update to 1.81.0 | - Update to 1.81.0 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,560 +0,0 @@ | |||||||
| From 83f32e189ad59109a162a61d7844545c4eda48e7 Mon Sep 17 00:00:00 2001 |  | ||||||
| From: Nikita Popov <npopov@redhat.com> |  | ||||||
| Date: Tue, 9 Jul 2024 09:34:59 +0200 |  | ||||||
| Subject: [PATCH 1/4] Update to LLVM 19 |  | ||||||
| 
 |  | ||||||
| (cherry picked from commit 579ab05e76f1434f3074195c7291895f1257bc97) |  | ||||||
| ---
 |  | ||||||
|  .gitmodules      | 2 +- |  | ||||||
|  src/llvm-project | 2 +- |  | ||||||
|  2 files changed, 2 insertions(+), 2 deletions(-) |  | ||||||
| 
 |  | ||||||
| diff --git a/.gitmodules b/.gitmodules
 |  | ||||||
| index 9ad207a0d522..b5250d493864 100644
 |  | ||||||
| --- a/.gitmodules
 |  | ||||||
| +++ b/.gitmodules
 |  | ||||||
| @@ -33,7 +33,7 @@
 |  | ||||||
|  [submodule "src/llvm-project"] |  | ||||||
|  	path = src/llvm-project |  | ||||||
|  	url = https://github.com/rust-lang/llvm-project.git |  | ||||||
| -	branch = rustc/18.1-2024-05-19
 |  | ||||||
| +	branch = rustc/19.1-2024-07-30
 |  | ||||||
|  	shallow = true |  | ||||||
|  [submodule "src/doc/embedded-book"] |  | ||||||
|  	path = src/doc/embedded-book |  | ||||||
| -- 
 |  | ||||||
| 2.46.1 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| From 3bdb9f55ed61e1984e9b2ac23c328a4792e41b6e Mon Sep 17 00:00:00 2001 |  | ||||||
| From: Krasimir Georgiev <krasimir@google.com> |  | ||||||
| Date: Mon, 17 Jun 2024 09:35:38 +0000 |  | ||||||
| Subject: [PATCH 2/4] Disable MC/DC tests on LLVM 19 |  | ||||||
| 
 |  | ||||||
| Disable the tests and generate an error if MC/DC is used on LLVM 19. |  | ||||||
| The support will be ported separately, as it is substantially |  | ||||||
| different on LLVM 19, and there are no plans to support both
 |  | ||||||
| versions. |  | ||||||
| 
 |  | ||||||
| (cherry picked from commit 00bfd702dc8c3b760b4f965fd059a5f1db8bb2b1) |  | ||||||
| ---
 |  | ||||||
|  compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp | 2 +- |  | ||||||
|  tests/coverage/mcdc/condition-limit.rs           | 1 + |  | ||||||
|  tests/coverage/mcdc/if.rs                        | 1 + |  | ||||||
|  tests/coverage/mcdc/inlined_expressions.rs       | 1 + |  | ||||||
|  tests/coverage/mcdc/nested_if.rs                 | 1 + |  | ||||||
|  tests/coverage/mcdc/non_control_flow.rs          | 1 + |  | ||||||
|  6 files changed, 6 insertions(+), 1 deletion(-) |  | ||||||
| 
 |  | ||||||
| diff --git a/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp b/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp
 |  | ||||||
| index 14757b27a375..493cfbcec2cf 100644
 |  | ||||||
| --- a/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp
 |  | ||||||
| +++ b/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp
 |  | ||||||
| @@ -1557,7 +1557,7 @@ LLVMRustGetInstrProfMCDCTVBitmapUpdateIntrinsic(LLVMModuleRef M) {
 |  | ||||||
|   |  | ||||||
|  extern "C" LLVMValueRef |  | ||||||
|  LLVMRustGetInstrProfMCDCCondBitmapIntrinsic(LLVMModuleRef M) { |  | ||||||
| -#if LLVM_VERSION_GE(18, 0)
 |  | ||||||
| +#if LLVM_VERSION_GE(18, 0) && LLVM_VERSION_LT(19, 0)
 |  | ||||||
|    return wrap(llvm::Intrinsic::getDeclaration( |  | ||||||
|        unwrap(M), llvm::Intrinsic::instrprof_mcdc_condbitmap_update)); |  | ||||||
|  #else |  | ||||||
| diff --git a/tests/coverage/mcdc/condition-limit.rs b/tests/coverage/mcdc/condition-limit.rs
 |  | ||||||
| index 571c600ebd09..2ff46b11a168 100644
 |  | ||||||
| --- a/tests/coverage/mcdc/condition-limit.rs
 |  | ||||||
| +++ b/tests/coverage/mcdc/condition-limit.rs
 |  | ||||||
| @@ -1,6 +1,7 @@
 |  | ||||||
|  #![feature(coverage_attribute)] |  | ||||||
|  //@ edition: 2021 |  | ||||||
|  //@ min-llvm-version: 18 |  | ||||||
| +//@ ignore-llvm-version: 19 - 99
 |  | ||||||
|  //@ compile-flags: -Zcoverage-options=mcdc |  | ||||||
|  //@ llvm-cov-flags: --show-branches=count --show-mcdc |  | ||||||
|   |  | ||||||
| diff --git a/tests/coverage/mcdc/if.rs b/tests/coverage/mcdc/if.rs
 |  | ||||||
| index d8e6b61a9d59..6f589659a3d7 100644
 |  | ||||||
| --- a/tests/coverage/mcdc/if.rs
 |  | ||||||
| +++ b/tests/coverage/mcdc/if.rs
 |  | ||||||
| @@ -1,6 +1,7 @@
 |  | ||||||
|  #![feature(coverage_attribute)] |  | ||||||
|  //@ edition: 2021 |  | ||||||
|  //@ min-llvm-version: 18 |  | ||||||
| +//@ ignore-llvm-version: 19 - 99
 |  | ||||||
|  //@ compile-flags: -Zcoverage-options=mcdc |  | ||||||
|  //@ llvm-cov-flags: --show-branches=count --show-mcdc |  | ||||||
|   |  | ||||||
| diff --git a/tests/coverage/mcdc/inlined_expressions.rs b/tests/coverage/mcdc/inlined_expressions.rs
 |  | ||||||
| index 65f7ee66f399..fc1e4dae37c7 100644
 |  | ||||||
| --- a/tests/coverage/mcdc/inlined_expressions.rs
 |  | ||||||
| +++ b/tests/coverage/mcdc/inlined_expressions.rs
 |  | ||||||
| @@ -1,6 +1,7 @@
 |  | ||||||
|  #![feature(coverage_attribute)] |  | ||||||
|  //@ edition: 2021 |  | ||||||
|  //@ min-llvm-version: 18 |  | ||||||
| +//@ ignore-llvm-version: 19 - 99
 |  | ||||||
|  //@ compile-flags: -Zcoverage-options=mcdc -Copt-level=z -Cllvm-args=--inline-threshold=0 |  | ||||||
|  //@ llvm-cov-flags: --show-branches=count --show-mcdc |  | ||||||
|   |  | ||||||
| diff --git a/tests/coverage/mcdc/nested_if.rs b/tests/coverage/mcdc/nested_if.rs
 |  | ||||||
| index f5068b5dcc23..f9ce7a0bc254 100644
 |  | ||||||
| --- a/tests/coverage/mcdc/nested_if.rs
 |  | ||||||
| +++ b/tests/coverage/mcdc/nested_if.rs
 |  | ||||||
| @@ -1,6 +1,7 @@
 |  | ||||||
|  #![feature(coverage_attribute)] |  | ||||||
|  //@ edition: 2021 |  | ||||||
|  //@ min-llvm-version: 18 |  | ||||||
| +//@ ignore-llvm-version: 19 - 99
 |  | ||||||
|  //@ compile-flags: -Zcoverage-options=mcdc |  | ||||||
|  //@ llvm-cov-flags: --show-branches=count --show-mcdc |  | ||||||
|   |  | ||||||
| diff --git a/tests/coverage/mcdc/non_control_flow.rs b/tests/coverage/mcdc/non_control_flow.rs
 |  | ||||||
| index 77e64e6625b2..633d381a1aaf 100644
 |  | ||||||
| --- a/tests/coverage/mcdc/non_control_flow.rs
 |  | ||||||
| +++ b/tests/coverage/mcdc/non_control_flow.rs
 |  | ||||||
| @@ -1,6 +1,7 @@
 |  | ||||||
|  #![feature(coverage_attribute)] |  | ||||||
|  //@ edition: 2021 |  | ||||||
|  //@ min-llvm-version: 18 |  | ||||||
| +//@ ignore-llvm-version: 19 - 99
 |  | ||||||
|  //@ compile-flags: -Zcoverage-options=mcdc |  | ||||||
|  //@ llvm-cov-flags: --show-branches=count --show-mcdc |  | ||||||
|   |  | ||||||
| -- 
 |  | ||||||
| 2.46.1 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| From d9476247415418ec6cc3478636ada38cf28feb69 Mon Sep 17 00:00:00 2001 |  | ||||||
| From: Nikita Popov <npopov@redhat.com> |  | ||||||
| Date: Wed, 24 Jul 2024 16:03:36 +0200 |  | ||||||
| Subject: [PATCH 3/4] Crash test for issue 121444 has been fixed |  | ||||||
| 
 |  | ||||||
| (cherry picked from commit b960390548b373bd80b5d9fe590ae3b577e8e8f2) |  | ||||||
| ---
 |  | ||||||
|  tests/{crashes/121444.rs => ui/abi/large-byval-align.rs} | 6 ++++-- |  | ||||||
|  1 file changed, 4 insertions(+), 2 deletions(-) |  | ||||||
|  rename tests/{crashes/121444.rs => ui/abi/large-byval-align.rs} (68%) |  | ||||||
| 
 |  | ||||||
| diff --git a/tests/crashes/121444.rs b/tests/ui/abi/large-byval-align.rs
 |  | ||||||
| similarity index 68% |  | ||||||
| rename from tests/crashes/121444.rs |  | ||||||
| rename to tests/ui/abi/large-byval-align.rs |  | ||||||
| index a6373a58c426..e39170df72b4 100644
 |  | ||||||
| --- a/tests/crashes/121444.rs
 |  | ||||||
| +++ b/tests/ui/abi/large-byval-align.rs
 |  | ||||||
| @@ -1,11 +1,13 @@
 |  | ||||||
| -//@ known-bug: #121444
 |  | ||||||
|  //@ compile-flags: -Copt-level=0 |  | ||||||
| -//@ edition:2021
 |  | ||||||
|  //@ only-x86_64 |  | ||||||
|  //@ ignore-windows |  | ||||||
| +//@ min-llvm-version: 19
 |  | ||||||
| +//@ build-pass
 |  | ||||||
| +
 |  | ||||||
|  #[repr(align(536870912))] |  | ||||||
|  pub struct A(i64); |  | ||||||
|   |  | ||||||
| +#[allow(improper_ctypes_definitions)]
 |  | ||||||
|  pub extern "C" fn foo(x: A) {} |  | ||||||
|   |  | ||||||
|  fn main() { |  | ||||||
| -- 
 |  | ||||||
| 2.46.1 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| From 05f84c2aa8853263b650b21637f689255413b923 Mon Sep 17 00:00:00 2001 |  | ||||||
| From: Josh Stone <jistone@redhat.com> |  | ||||||
| Date: Tue, 30 Jul 2024 18:25:05 -0700 |  | ||||||
| Subject: [PATCH 4/4] Bless coverage/mcdc for line number changes |  | ||||||
| 
 |  | ||||||
| (cherry picked from commit 33a36ea43851a767d8182938161b0dad4f9ae68c) |  | ||||||
| ---
 |  | ||||||
|  tests/coverage/mcdc/condition-limit.cov-map   |  8 +++--- |  | ||||||
|  tests/coverage/mcdc/if.cov-map                | 28 +++++++++---------- |  | ||||||
|  .../coverage/mcdc/inlined_expressions.cov-map |  4 +-- |  | ||||||
|  tests/coverage/mcdc/nested_if.cov-map         | 16 +++++------ |  | ||||||
|  tests/coverage/mcdc/non_control_flow.cov-map  | 28 +++++++++---------- |  | ||||||
|  5 files changed, 42 insertions(+), 42 deletions(-) |  | ||||||
| 
 |  | ||||||
| diff --git a/tests/coverage/mcdc/condition-limit.cov-map b/tests/coverage/mcdc/condition-limit.cov-map
 |  | ||||||
| index b4447a33691a..b565353572a7 100644
 |  | ||||||
| --- a/tests/coverage/mcdc/condition-limit.cov-map
 |  | ||||||
| +++ b/tests/coverage/mcdc/condition-limit.cov-map
 |  | ||||||
| @@ -1,5 +1,5 @@
 |  | ||||||
|  Function name: condition_limit::bad |  | ||||||
| -Raw bytes (204): 0x[01, 01, 2c, 01, 05, 05, 1d, 05, 1d, 7a, 19, 05, 1d, 7a, 19, 05, 1d, 76, 15, 7a, 19, 05, 1d, 76, 15, 7a, 19, 05, 1d, 72, 11, 76, 15, 7a, 19, 05, 1d, 72, 11, 76, 15, 7a, 19, 05, 1d, 6e, 0d, 72, 11, 76, 15, 7a, 19, 05, 1d, 6e, 0d, 72, 11, 76, 15, 7a, 19, 05, 1d, 9f, 01, 02, a3, 01, 1d, a7, 01, 19, ab, 01, 15, af, 01, 11, 09, 0d, 21, 9b, 01, 9f, 01, 02, a3, 01, 1d, a7, 01, 19, ab, 01, 15, af, 01, 11, 09, 0d, 11, 01, 14, 01, 03, 09, 20, 05, 02, 03, 08, 00, 09, 05, 00, 0d, 00, 0e, 20, 7a, 1d, 00, 0d, 00, 0e, 7a, 00, 12, 00, 13, 20, 76, 19, 00, 12, 00, 13, 76, 00, 17, 00, 18, 20, 72, 15, 00, 17, 00, 18, 72, 00, 1c, 00, 1d, 20, 6e, 11, 00, 1c, 00, 1d, 6e, 00, 21, 00, 22, 20, 6a, 0d, 00, 21, 00, 22, 6a, 00, 26, 00, 27, 20, 21, 09, 00, 26, 00, 27, 21, 00, 28, 02, 06, 9b, 01, 02, 06, 00, 07, 97, 01, 01, 01, 00, 02]
 |  | ||||||
| +Raw bytes (204): 0x[01, 01, 2c, 01, 05, 05, 1d, 05, 1d, 7a, 19, 05, 1d, 7a, 19, 05, 1d, 76, 15, 7a, 19, 05, 1d, 76, 15, 7a, 19, 05, 1d, 72, 11, 76, 15, 7a, 19, 05, 1d, 72, 11, 76, 15, 7a, 19, 05, 1d, 6e, 0d, 72, 11, 76, 15, 7a, 19, 05, 1d, 6e, 0d, 72, 11, 76, 15, 7a, 19, 05, 1d, 9f, 01, 02, a3, 01, 1d, a7, 01, 19, ab, 01, 15, af, 01, 11, 09, 0d, 21, 9b, 01, 9f, 01, 02, a3, 01, 1d, a7, 01, 19, ab, 01, 15, af, 01, 11, 09, 0d, 11, 01, 15, 01, 03, 09, 20, 05, 02, 03, 08, 00, 09, 05, 00, 0d, 00, 0e, 20, 7a, 1d, 00, 0d, 00, 0e, 7a, 00, 12, 00, 13, 20, 76, 19, 00, 12, 00, 13, 76, 00, 17, 00, 18, 20, 72, 15, 00, 17, 00, 18, 72, 00, 1c, 00, 1d, 20, 6e, 11, 00, 1c, 00, 1d, 6e, 00, 21, 00, 22, 20, 6a, 0d, 00, 21, 00, 22, 6a, 00, 26, 00, 27, 20, 21, 09, 00, 26, 00, 27, 21, 00, 28, 02, 06, 9b, 01, 02, 06, 00, 07, 97, 01, 01, 01, 00, 02]
 |  | ||||||
|  Number of files: 1 |  | ||||||
|  - file 0 => global file 1 |  | ||||||
|  Number of expressions: 44 |  | ||||||
| @@ -48,7 +48,7 @@ Number of expressions: 44
 |  | ||||||
|  - expression 42 operands: lhs = Expression(43, Add), rhs = Counter(4) |  | ||||||
|  - expression 43 operands: lhs = Counter(2), rhs = Counter(3) |  | ||||||
|  Number of file 0 mappings: 17 |  | ||||||
| -- Code(Counter(0)) at (prev + 20, 1) to (start + 3, 9)
 |  | ||||||
| +- Code(Counter(0)) at (prev + 21, 1) to (start + 3, 9)
 |  | ||||||
|  - Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 3, 8) to (start + 0, 9) |  | ||||||
|      true  = c1 |  | ||||||
|      false = (c0 - c1) |  | ||||||
| @@ -88,7 +88,7 @@ Number of file 0 mappings: 17
 |  | ||||||
|      = (c8 + ((((((c2 + c3) + c4) + c5) + c6) + c7) + (c0 - c1))) |  | ||||||
|   |  | ||||||
|  Function name: condition_limit::good |  | ||||||
| -Raw bytes (180): 0x[01, 01, 20, 01, 05, 05, 19, 05, 19, 52, 15, 05, 19, 52, 15, 05, 19, 4e, 11, 52, 15, 05, 19, 4e, 11, 52, 15, 05, 19, 4a, 0d, 4e, 11, 52, 15, 05, 19, 4a, 0d, 4e, 11, 52, 15, 05, 19, 73, 02, 77, 19, 7b, 15, 7f, 11, 09, 0d, 1d, 6f, 73, 02, 77, 19, 7b, 15, 7f, 11, 09, 0d, 10, 01, 0c, 01, 03, 09, 28, 00, 06, 03, 08, 00, 22, 30, 05, 02, 01, 06, 00, 00, 08, 00, 09, 05, 00, 0d, 00, 0e, 30, 52, 19, 06, 05, 00, 00, 0d, 00, 0e, 52, 00, 12, 00, 13, 30, 4e, 15, 05, 04, 00, 00, 12, 00, 13, 4e, 00, 17, 00, 18, 30, 4a, 11, 04, 03, 00, 00, 17, 00, 18, 4a, 00, 1c, 00, 1d, 30, 46, 0d, 03, 02, 00, 00, 1c, 00, 1d, 46, 00, 21, 00, 22, 30, 1d, 09, 02, 00, 00, 00, 21, 00, 22, 1d, 00, 23, 02, 06, 6f, 02, 06, 00, 07, 6b, 01, 01, 00, 02]
 |  | ||||||
| +Raw bytes (180): 0x[01, 01, 20, 01, 05, 05, 19, 05, 19, 52, 15, 05, 19, 52, 15, 05, 19, 4e, 11, 52, 15, 05, 19, 4e, 11, 52, 15, 05, 19, 4a, 0d, 4e, 11, 52, 15, 05, 19, 4a, 0d, 4e, 11, 52, 15, 05, 19, 73, 02, 77, 19, 7b, 15, 7f, 11, 09, 0d, 1d, 6f, 73, 02, 77, 19, 7b, 15, 7f, 11, 09, 0d, 10, 01, 0d, 01, 03, 09, 28, 00, 06, 03, 08, 00, 22, 30, 05, 02, 01, 06, 00, 00, 08, 00, 09, 05, 00, 0d, 00, 0e, 30, 52, 19, 06, 05, 00, 00, 0d, 00, 0e, 52, 00, 12, 00, 13, 30, 4e, 15, 05, 04, 00, 00, 12, 00, 13, 4e, 00, 17, 00, 18, 30, 4a, 11, 04, 03, 00, 00, 17, 00, 18, 4a, 00, 1c, 00, 1d, 30, 46, 0d, 03, 02, 00, 00, 1c, 00, 1d, 46, 00, 21, 00, 22, 30, 1d, 09, 02, 00, 00, 00, 21, 00, 22, 1d, 00, 23, 02, 06, 6f, 02, 06, 00, 07, 6b, 01, 01, 00, 02]
 |  | ||||||
|  Number of files: 1 |  | ||||||
|  - file 0 => global file 1 |  | ||||||
|  Number of expressions: 32 |  | ||||||
| @@ -125,7 +125,7 @@ Number of expressions: 32
 |  | ||||||
|  - expression 30 operands: lhs = Expression(31, Add), rhs = Counter(4) |  | ||||||
|  - expression 31 operands: lhs = Counter(2), rhs = Counter(3) |  | ||||||
|  Number of file 0 mappings: 16 |  | ||||||
| -- Code(Counter(0)) at (prev + 12, 1) to (start + 3, 9)
 |  | ||||||
| +- Code(Counter(0)) at (prev + 13, 1) to (start + 3, 9)
 |  | ||||||
|  - MCDCDecision { bitmap_idx: 0, conditions_num: 6 } at (prev + 3, 8) to (start + 0, 34) |  | ||||||
|  - MCDCBranch { true: Counter(1), false: Expression(0, Sub), condition_id: 1, true_next_id: 6, false_next_id: 0 } at (prev + 0, 8) to (start + 0, 9) |  | ||||||
|      true  = c1 |  | ||||||
| diff --git a/tests/coverage/mcdc/if.cov-map b/tests/coverage/mcdc/if.cov-map
 |  | ||||||
| index 9a7d15f700df..ea8dedb0ac36 100644
 |  | ||||||
| --- a/tests/coverage/mcdc/if.cov-map
 |  | ||||||
| +++ b/tests/coverage/mcdc/if.cov-map
 |  | ||||||
| @@ -1,5 +1,5 @@
 |  | ||||||
|  Function name: if::mcdc_check_a |  | ||||||
| -Raw bytes (64): 0x[01, 01, 04, 01, 05, 09, 02, 0d, 0f, 09, 02, 08, 01, 0f, 01, 01, 09, 28, 00, 02, 01, 08, 00, 0e, 30, 05, 02, 01, 02, 00, 00, 08, 00, 09, 05, 00, 0d, 00, 0e, 30, 0d, 09, 02, 00, 00, 00, 0d, 00, 0e, 0d, 00, 0f, 02, 06, 0f, 02, 0c, 02, 06, 0b, 03, 01, 00, 02]
 |  | ||||||
| +Raw bytes (64): 0x[01, 01, 04, 01, 05, 09, 02, 0d, 0f, 09, 02, 08, 01, 10, 01, 01, 09, 28, 00, 02, 01, 08, 00, 0e, 30, 05, 02, 01, 02, 00, 00, 08, 00, 09, 05, 00, 0d, 00, 0e, 30, 0d, 09, 02, 00, 00, 00, 0d, 00, 0e, 0d, 00, 0f, 02, 06, 0f, 02, 0c, 02, 06, 0b, 03, 01, 00, 02]
 |  | ||||||
|  Number of files: 1 |  | ||||||
|  - file 0 => global file 1 |  | ||||||
|  Number of expressions: 4 |  | ||||||
| @@ -8,7 +8,7 @@ Number of expressions: 4
 |  | ||||||
|  - expression 2 operands: lhs = Counter(3), rhs = Expression(3, Add) |  | ||||||
|  - expression 3 operands: lhs = Counter(2), rhs = Expression(0, Sub) |  | ||||||
|  Number of file 0 mappings: 8 |  | ||||||
| -- Code(Counter(0)) at (prev + 15, 1) to (start + 1, 9)
 |  | ||||||
| +- Code(Counter(0)) at (prev + 16, 1) to (start + 1, 9)
 |  | ||||||
|  - MCDCDecision { bitmap_idx: 0, conditions_num: 2 } at (prev + 1, 8) to (start + 0, 14) |  | ||||||
|  - MCDCBranch { true: Counter(1), false: Expression(0, Sub), condition_id: 1, true_next_id: 2, false_next_id: 0 } at (prev + 0, 8) to (start + 0, 9) |  | ||||||
|      true  = c1 |  | ||||||
| @@ -24,7 +24,7 @@ Number of file 0 mappings: 8
 |  | ||||||
|      = (c3 + (c2 + (c0 - c1))) |  | ||||||
|   |  | ||||||
|  Function name: if::mcdc_check_b |  | ||||||
| -Raw bytes (64): 0x[01, 01, 04, 01, 05, 09, 02, 0d, 0f, 09, 02, 08, 01, 17, 01, 01, 09, 28, 00, 02, 01, 08, 00, 0e, 30, 05, 02, 01, 02, 00, 00, 08, 00, 09, 05, 00, 0d, 00, 0e, 30, 0d, 09, 02, 00, 00, 00, 0d, 00, 0e, 0d, 00, 0f, 02, 06, 0f, 02, 0c, 02, 06, 0b, 03, 01, 00, 02]
 |  | ||||||
| +Raw bytes (64): 0x[01, 01, 04, 01, 05, 09, 02, 0d, 0f, 09, 02, 08, 01, 18, 01, 01, 09, 28, 00, 02, 01, 08, 00, 0e, 30, 05, 02, 01, 02, 00, 00, 08, 00, 09, 05, 00, 0d, 00, 0e, 30, 0d, 09, 02, 00, 00, 00, 0d, 00, 0e, 0d, 00, 0f, 02, 06, 0f, 02, 0c, 02, 06, 0b, 03, 01, 00, 02]
 |  | ||||||
|  Number of files: 1 |  | ||||||
|  - file 0 => global file 1 |  | ||||||
|  Number of expressions: 4 |  | ||||||
| @@ -33,7 +33,7 @@ Number of expressions: 4
 |  | ||||||
|  - expression 2 operands: lhs = Counter(3), rhs = Expression(3, Add) |  | ||||||
|  - expression 3 operands: lhs = Counter(2), rhs = Expression(0, Sub) |  | ||||||
|  Number of file 0 mappings: 8 |  | ||||||
| -- Code(Counter(0)) at (prev + 23, 1) to (start + 1, 9)
 |  | ||||||
| +- Code(Counter(0)) at (prev + 24, 1) to (start + 1, 9)
 |  | ||||||
|  - MCDCDecision { bitmap_idx: 0, conditions_num: 2 } at (prev + 1, 8) to (start + 0, 14) |  | ||||||
|  - MCDCBranch { true: Counter(1), false: Expression(0, Sub), condition_id: 1, true_next_id: 2, false_next_id: 0 } at (prev + 0, 8) to (start + 0, 9) |  | ||||||
|      true  = c1 |  | ||||||
| @@ -49,7 +49,7 @@ Number of file 0 mappings: 8
 |  | ||||||
|      = (c3 + (c2 + (c0 - c1))) |  | ||||||
|   |  | ||||||
|  Function name: if::mcdc_check_both |  | ||||||
| -Raw bytes (64): 0x[01, 01, 04, 01, 05, 09, 02, 0d, 0f, 09, 02, 08, 01, 1f, 01, 01, 09, 28, 00, 02, 01, 08, 00, 0e, 30, 05, 02, 01, 02, 00, 00, 08, 00, 09, 05, 00, 0d, 00, 0e, 30, 0d, 09, 02, 00, 00, 00, 0d, 00, 0e, 0d, 00, 0f, 02, 06, 0f, 02, 0c, 02, 06, 0b, 03, 01, 00, 02]
 |  | ||||||
| +Raw bytes (64): 0x[01, 01, 04, 01, 05, 09, 02, 0d, 0f, 09, 02, 08, 01, 20, 01, 01, 09, 28, 00, 02, 01, 08, 00, 0e, 30, 05, 02, 01, 02, 00, 00, 08, 00, 09, 05, 00, 0d, 00, 0e, 30, 0d, 09, 02, 00, 00, 00, 0d, 00, 0e, 0d, 00, 0f, 02, 06, 0f, 02, 0c, 02, 06, 0b, 03, 01, 00, 02]
 |  | ||||||
|  Number of files: 1 |  | ||||||
|  - file 0 => global file 1 |  | ||||||
|  Number of expressions: 4 |  | ||||||
| @@ -58,7 +58,7 @@ Number of expressions: 4
 |  | ||||||
|  - expression 2 operands: lhs = Counter(3), rhs = Expression(3, Add) |  | ||||||
|  - expression 3 operands: lhs = Counter(2), rhs = Expression(0, Sub) |  | ||||||
|  Number of file 0 mappings: 8 |  | ||||||
| -- Code(Counter(0)) at (prev + 31, 1) to (start + 1, 9)
 |  | ||||||
| +- Code(Counter(0)) at (prev + 32, 1) to (start + 1, 9)
 |  | ||||||
|  - MCDCDecision { bitmap_idx: 0, conditions_num: 2 } at (prev + 1, 8) to (start + 0, 14) |  | ||||||
|  - MCDCBranch { true: Counter(1), false: Expression(0, Sub), condition_id: 1, true_next_id: 2, false_next_id: 0 } at (prev + 0, 8) to (start + 0, 9) |  | ||||||
|      true  = c1 |  | ||||||
| @@ -74,7 +74,7 @@ Number of file 0 mappings: 8
 |  | ||||||
|      = (c3 + (c2 + (c0 - c1))) |  | ||||||
|   |  | ||||||
|  Function name: if::mcdc_check_neither |  | ||||||
| -Raw bytes (64): 0x[01, 01, 04, 01, 05, 09, 02, 0d, 0f, 09, 02, 08, 01, 07, 01, 01, 09, 28, 00, 02, 01, 08, 00, 0e, 30, 05, 02, 01, 02, 00, 00, 08, 00, 09, 05, 00, 0d, 00, 0e, 30, 0d, 09, 02, 00, 00, 00, 0d, 00, 0e, 0d, 00, 0f, 02, 06, 0f, 02, 0c, 02, 06, 0b, 03, 01, 00, 02]
 |  | ||||||
| +Raw bytes (64): 0x[01, 01, 04, 01, 05, 09, 02, 0d, 0f, 09, 02, 08, 01, 08, 01, 01, 09, 28, 00, 02, 01, 08, 00, 0e, 30, 05, 02, 01, 02, 00, 00, 08, 00, 09, 05, 00, 0d, 00, 0e, 30, 0d, 09, 02, 00, 00, 00, 0d, 00, 0e, 0d, 00, 0f, 02, 06, 0f, 02, 0c, 02, 06, 0b, 03, 01, 00, 02]
 |  | ||||||
|  Number of files: 1 |  | ||||||
|  - file 0 => global file 1 |  | ||||||
|  Number of expressions: 4 |  | ||||||
| @@ -83,7 +83,7 @@ Number of expressions: 4
 |  | ||||||
|  - expression 2 operands: lhs = Counter(3), rhs = Expression(3, Add) |  | ||||||
|  - expression 3 operands: lhs = Counter(2), rhs = Expression(0, Sub) |  | ||||||
|  Number of file 0 mappings: 8 |  | ||||||
| -- Code(Counter(0)) at (prev + 7, 1) to (start + 1, 9)
 |  | ||||||
| +- Code(Counter(0)) at (prev + 8, 1) to (start + 1, 9)
 |  | ||||||
|  - MCDCDecision { bitmap_idx: 0, conditions_num: 2 } at (prev + 1, 8) to (start + 0, 14) |  | ||||||
|  - MCDCBranch { true: Counter(1), false: Expression(0, Sub), condition_id: 1, true_next_id: 2, false_next_id: 0 } at (prev + 0, 8) to (start + 0, 9) |  | ||||||
|      true  = c1 |  | ||||||
| @@ -99,7 +99,7 @@ Number of file 0 mappings: 8
 |  | ||||||
|      = (c3 + (c2 + (c0 - c1))) |  | ||||||
|   |  | ||||||
|  Function name: if::mcdc_check_not_tree_decision |  | ||||||
| -Raw bytes (87): 0x[01, 01, 08, 01, 05, 02, 09, 05, 09, 0d, 1e, 02, 09, 11, 1b, 0d, 1e, 02, 09, 0a, 01, 31, 01, 03, 0a, 28, 00, 03, 03, 08, 00, 15, 30, 05, 02, 01, 02, 03, 00, 09, 00, 0a, 02, 00, 0e, 00, 0f, 30, 09, 1e, 03, 02, 00, 00, 0e, 00, 0f, 0b, 00, 14, 00, 15, 30, 11, 0d, 02, 00, 00, 00, 14, 00, 15, 11, 00, 16, 02, 06, 1b, 02, 0c, 02, 06, 17, 03, 01, 00, 02]
 |  | ||||||
| +Raw bytes (87): 0x[01, 01, 08, 01, 05, 02, 09, 05, 09, 0d, 1e, 02, 09, 11, 1b, 0d, 1e, 02, 09, 0a, 01, 32, 01, 03, 0a, 28, 00, 03, 03, 08, 00, 15, 30, 05, 02, 01, 02, 03, 00, 09, 00, 0a, 02, 00, 0e, 00, 0f, 30, 09, 1e, 03, 02, 00, 00, 0e, 00, 0f, 0b, 00, 14, 00, 15, 30, 11, 0d, 02, 00, 00, 00, 14, 00, 15, 11, 00, 16, 02, 06, 1b, 02, 0c, 02, 06, 17, 03, 01, 00, 02]
 |  | ||||||
|  Number of files: 1 |  | ||||||
|  - file 0 => global file 1 |  | ||||||
|  Number of expressions: 8 |  | ||||||
| @@ -112,7 +112,7 @@ Number of expressions: 8
 |  | ||||||
|  - expression 6 operands: lhs = Counter(3), rhs = Expression(7, Sub) |  | ||||||
|  - expression 7 operands: lhs = Expression(0, Sub), rhs = Counter(2) |  | ||||||
|  Number of file 0 mappings: 10 |  | ||||||
| -- Code(Counter(0)) at (prev + 49, 1) to (start + 3, 10)
 |  | ||||||
| +- Code(Counter(0)) at (prev + 50, 1) to (start + 3, 10)
 |  | ||||||
|  - MCDCDecision { bitmap_idx: 0, conditions_num: 3 } at (prev + 3, 8) to (start + 0, 21) |  | ||||||
|  - MCDCBranch { true: Counter(1), false: Expression(0, Sub), condition_id: 1, true_next_id: 2, false_next_id: 3 } at (prev + 0, 9) to (start + 0, 10) |  | ||||||
|      true  = c1 |  | ||||||
| @@ -134,7 +134,7 @@ Number of file 0 mappings: 10
 |  | ||||||
|      = (c4 + (c3 + ((c0 - c1) - c2))) |  | ||||||
|   |  | ||||||
|  Function name: if::mcdc_check_tree_decision |  | ||||||
| -Raw bytes (87): 0x[01, 01, 08, 01, 05, 05, 0d, 05, 0d, 0d, 11, 09, 02, 1b, 1f, 0d, 11, 09, 02, 0a, 01, 27, 01, 03, 09, 28, 00, 03, 03, 08, 00, 15, 30, 05, 02, 01, 02, 00, 00, 08, 00, 09, 05, 00, 0e, 00, 0f, 30, 0d, 0a, 02, 00, 03, 00, 0e, 00, 0f, 0a, 00, 13, 00, 14, 30, 11, 09, 03, 00, 00, 00, 13, 00, 14, 1b, 00, 16, 02, 06, 1f, 02, 0c, 02, 06, 17, 03, 01, 00, 02]
 |  | ||||||
| +Raw bytes (87): 0x[01, 01, 08, 01, 05, 05, 0d, 05, 0d, 0d, 11, 09, 02, 1b, 1f, 0d, 11, 09, 02, 0a, 01, 28, 01, 03, 09, 28, 00, 03, 03, 08, 00, 15, 30, 05, 02, 01, 02, 00, 00, 08, 00, 09, 05, 00, 0e, 00, 0f, 30, 0d, 0a, 02, 00, 03, 00, 0e, 00, 0f, 0a, 00, 13, 00, 14, 30, 11, 09, 03, 00, 00, 00, 13, 00, 14, 1b, 00, 16, 02, 06, 1f, 02, 0c, 02, 06, 17, 03, 01, 00, 02]
 |  | ||||||
|  Number of files: 1 |  | ||||||
|  - file 0 => global file 1 |  | ||||||
|  Number of expressions: 8 |  | ||||||
| @@ -147,7 +147,7 @@ Number of expressions: 8
 |  | ||||||
|  - expression 6 operands: lhs = Counter(3), rhs = Counter(4) |  | ||||||
|  - expression 7 operands: lhs = Counter(2), rhs = Expression(0, Sub) |  | ||||||
|  Number of file 0 mappings: 10 |  | ||||||
| -- Code(Counter(0)) at (prev + 39, 1) to (start + 3, 9)
 |  | ||||||
| +- Code(Counter(0)) at (prev + 40, 1) to (start + 3, 9)
 |  | ||||||
|  - MCDCDecision { bitmap_idx: 0, conditions_num: 3 } at (prev + 3, 8) to (start + 0, 21) |  | ||||||
|  - MCDCBranch { true: Counter(1), false: Expression(0, Sub), condition_id: 1, true_next_id: 2, false_next_id: 0 } at (prev + 0, 8) to (start + 0, 9) |  | ||||||
|      true  = c1 |  | ||||||
| @@ -169,7 +169,7 @@ Number of file 0 mappings: 10
 |  | ||||||
|      = ((c3 + c4) + (c2 + (c0 - c1))) |  | ||||||
|   |  | ||||||
|  Function name: if::mcdc_nested_if |  | ||||||
| -Raw bytes (124): 0x[01, 01, 0d, 01, 05, 02, 09, 05, 09, 1b, 15, 05, 09, 1b, 15, 05, 09, 11, 15, 02, 09, 2b, 32, 0d, 2f, 11, 15, 02, 09, 0e, 01, 3b, 01, 01, 09, 28, 00, 02, 01, 08, 00, 0e, 30, 05, 02, 01, 00, 02, 00, 08, 00, 09, 02, 00, 0d, 00, 0e, 30, 09, 32, 02, 00, 00, 00, 0d, 00, 0e, 1b, 01, 09, 01, 0d, 28, 01, 02, 01, 0c, 00, 12, 30, 16, 15, 01, 02, 00, 00, 0c, 00, 0d, 16, 00, 11, 00, 12, 30, 0d, 11, 02, 00, 00, 00, 11, 00, 12, 0d, 00, 13, 02, 0a, 2f, 02, 0a, 00, 0b, 32, 01, 0c, 02, 06, 27, 03, 01, 00, 02]
 |  | ||||||
| +Raw bytes (124): 0x[01, 01, 0d, 01, 05, 02, 09, 05, 09, 1b, 15, 05, 09, 1b, 15, 05, 09, 11, 15, 02, 09, 2b, 32, 0d, 2f, 11, 15, 02, 09, 0e, 01, 3c, 01, 01, 09, 28, 00, 02, 01, 08, 00, 0e, 30, 05, 02, 01, 00, 02, 00, 08, 00, 09, 02, 00, 0d, 00, 0e, 30, 09, 32, 02, 00, 00, 00, 0d, 00, 0e, 1b, 01, 09, 01, 0d, 28, 01, 02, 01, 0c, 00, 12, 30, 16, 15, 01, 02, 00, 00, 0c, 00, 0d, 16, 00, 11, 00, 12, 30, 0d, 11, 02, 00, 00, 00, 11, 00, 12, 0d, 00, 13, 02, 0a, 2f, 02, 0a, 00, 0b, 32, 01, 0c, 02, 06, 27, 03, 01, 00, 02]
 |  | ||||||
|  Number of files: 1 |  | ||||||
|  - file 0 => global file 1 |  | ||||||
|  Number of expressions: 13 |  | ||||||
| @@ -187,7 +187,7 @@ Number of expressions: 13
 |  | ||||||
|  - expression 11 operands: lhs = Counter(4), rhs = Counter(5) |  | ||||||
|  - expression 12 operands: lhs = Expression(0, Sub), rhs = Counter(2) |  | ||||||
|  Number of file 0 mappings: 14 |  | ||||||
| -- Code(Counter(0)) at (prev + 59, 1) to (start + 1, 9)
 |  | ||||||
| +- Code(Counter(0)) at (prev + 60, 1) to (start + 1, 9)
 |  | ||||||
|  - MCDCDecision { bitmap_idx: 0, conditions_num: 2 } at (prev + 1, 8) to (start + 0, 14) |  | ||||||
|  - MCDCBranch { true: Counter(1), false: Expression(0, Sub), condition_id: 1, true_next_id: 0, false_next_id: 2 } at (prev + 0, 8) to (start + 0, 9) |  | ||||||
|      true  = c1 |  | ||||||
| diff --git a/tests/coverage/mcdc/inlined_expressions.cov-map b/tests/coverage/mcdc/inlined_expressions.cov-map
 |  | ||||||
| index 09b7291c9649..8bb488c0dc07 100644
 |  | ||||||
| --- a/tests/coverage/mcdc/inlined_expressions.cov-map
 |  | ||||||
| +++ b/tests/coverage/mcdc/inlined_expressions.cov-map
 |  | ||||||
| @@ -1,5 +1,5 @@
 |  | ||||||
|  Function name: inlined_expressions::inlined_instance |  | ||||||
| -Raw bytes (52): 0x[01, 01, 03, 01, 05, 0b, 02, 09, 0d, 06, 01, 08, 01, 01, 06, 28, 00, 02, 01, 05, 00, 0b, 30, 05, 02, 01, 02, 00, 00, 05, 00, 06, 05, 00, 0a, 00, 0b, 30, 09, 0d, 02, 00, 00, 00, 0a, 00, 0b, 07, 01, 01, 00, 02]
 |  | ||||||
| +Raw bytes (52): 0x[01, 01, 03, 01, 05, 0b, 02, 09, 0d, 06, 01, 09, 01, 01, 06, 28, 00, 02, 01, 05, 00, 0b, 30, 05, 02, 01, 02, 00, 00, 05, 00, 06, 05, 00, 0a, 00, 0b, 30, 09, 0d, 02, 00, 00, 00, 0a, 00, 0b, 07, 01, 01, 00, 02]
 |  | ||||||
|  Number of files: 1 |  | ||||||
|  - file 0 => global file 1 |  | ||||||
|  Number of expressions: 3 |  | ||||||
| @@ -7,7 +7,7 @@ Number of expressions: 3
 |  | ||||||
|  - expression 1 operands: lhs = Expression(2, Add), rhs = Expression(0, Sub) |  | ||||||
|  - expression 2 operands: lhs = Counter(2), rhs = Counter(3) |  | ||||||
|  Number of file 0 mappings: 6 |  | ||||||
| -- Code(Counter(0)) at (prev + 8, 1) to (start + 1, 6)
 |  | ||||||
| +- Code(Counter(0)) at (prev + 9, 1) to (start + 1, 6)
 |  | ||||||
|  - MCDCDecision { bitmap_idx: 0, conditions_num: 2 } at (prev + 1, 5) to (start + 0, 11) |  | ||||||
|  - MCDCBranch { true: Counter(1), false: Expression(0, Sub), condition_id: 1, true_next_id: 2, false_next_id: 0 } at (prev + 0, 5) to (start + 0, 6) |  | ||||||
|      true  = c1 |  | ||||||
| diff --git a/tests/coverage/mcdc/nested_if.cov-map b/tests/coverage/mcdc/nested_if.cov-map
 |  | ||||||
| index adeb6cbc1fb8..0bd2aef814c2 100644
 |  | ||||||
| --- a/tests/coverage/mcdc/nested_if.cov-map
 |  | ||||||
| +++ b/tests/coverage/mcdc/nested_if.cov-map
 |  | ||||||
| @@ -1,5 +1,5 @@
 |  | ||||||
|  Function name: nested_if::doubly_nested_if_in_condition |  | ||||||
| -Raw bytes (168): 0x[01, 01, 0e, 01, 05, 05, 11, 05, 11, 26, 19, 05, 11, 19, 1d, 19, 1d, 1d, 22, 26, 19, 05, 11, 11, 15, 09, 02, 0d, 37, 09, 02, 14, 01, 0f, 01, 01, 09, 28, 02, 02, 01, 08, 00, 4e, 30, 05, 02, 01, 02, 00, 00, 08, 00, 09, 30, 0d, 09, 02, 00, 00, 00, 0d, 00, 4e, 05, 00, 10, 00, 11, 28, 01, 02, 00, 10, 00, 36, 30, 11, 26, 01, 00, 02, 00, 10, 00, 11, 30, 15, 21, 02, 00, 00, 00, 15, 00, 36, 26, 00, 18, 00, 19, 28, 00, 02, 00, 18, 00, 1e, 30, 19, 22, 01, 02, 00, 00, 18, 00, 19, 19, 00, 1d, 00, 1e, 30, 1a, 1d, 02, 00, 00, 00, 1d, 00, 1e, 1a, 00, 21, 00, 25, 1f, 00, 2f, 00, 34, 2b, 00, 39, 00, 3e, 21, 00, 48, 00, 4c, 0d, 00, 4f, 02, 06, 37, 02, 0c, 02, 06, 33, 03, 01, 00, 02]
 |  | ||||||
| +Raw bytes (168): 0x[01, 01, 0e, 01, 05, 05, 11, 05, 11, 26, 19, 05, 11, 19, 1d, 19, 1d, 1d, 22, 26, 19, 05, 11, 11, 15, 09, 02, 0d, 37, 09, 02, 14, 01, 10, 01, 01, 09, 28, 02, 02, 01, 08, 00, 4e, 30, 05, 02, 01, 02, 00, 00, 08, 00, 09, 30, 0d, 09, 02, 00, 00, 00, 0d, 00, 4e, 05, 00, 10, 00, 11, 28, 01, 02, 00, 10, 00, 36, 30, 11, 26, 01, 00, 02, 00, 10, 00, 11, 30, 15, 21, 02, 00, 00, 00, 15, 00, 36, 26, 00, 18, 00, 19, 28, 00, 02, 00, 18, 00, 1e, 30, 19, 22, 01, 02, 00, 00, 18, 00, 19, 19, 00, 1d, 00, 1e, 30, 1a, 1d, 02, 00, 00, 00, 1d, 00, 1e, 1a, 00, 21, 00, 25, 1f, 00, 2f, 00, 34, 2b, 00, 39, 00, 3e, 21, 00, 48, 00, 4c, 0d, 00, 4f, 02, 06, 37, 02, 0c, 02, 06, 33, 03, 01, 00, 02]
 |  | ||||||
|  Number of files: 1 |  | ||||||
|  - file 0 => global file 1 |  | ||||||
|  Number of expressions: 14 |  | ||||||
| @@ -18,7 +18,7 @@ Number of expressions: 14
 |  | ||||||
|  - expression 12 operands: lhs = Counter(3), rhs = Expression(13, Add) |  | ||||||
|  - expression 13 operands: lhs = Counter(2), rhs = Expression(0, Sub) |  | ||||||
|  Number of file 0 mappings: 20 |  | ||||||
| -- Code(Counter(0)) at (prev + 15, 1) to (start + 1, 9)
 |  | ||||||
| +- Code(Counter(0)) at (prev + 16, 1) to (start + 1, 9)
 |  | ||||||
|  - MCDCDecision { bitmap_idx: 2, conditions_num: 2 } at (prev + 1, 8) to (start + 0, 78) |  | ||||||
|  - MCDCBranch { true: Counter(1), false: Expression(0, Sub), condition_id: 1, true_next_id: 2, false_next_id: 0 } at (prev + 0, 8) to (start + 0, 9) |  | ||||||
|      true  = c1 |  | ||||||
| @@ -58,7 +58,7 @@ Number of file 0 mappings: 20
 |  | ||||||
|      = (c3 + (c2 + (c0 - c1))) |  | ||||||
|   |  | ||||||
|  Function name: nested_if::nested_if_in_condition |  | ||||||
| -Raw bytes (120): 0x[01, 01, 0b, 01, 05, 05, 11, 05, 11, 1e, 15, 05, 11, 11, 15, 1e, 15, 05, 11, 09, 02, 0d, 2b, 09, 02, 0e, 01, 07, 01, 01, 09, 28, 01, 02, 01, 08, 00, 2e, 30, 05, 02, 01, 02, 00, 00, 08, 00, 09, 30, 0d, 09, 02, 00, 00, 00, 0d, 00, 2e, 05, 00, 10, 00, 11, 28, 00, 02, 00, 10, 00, 16, 30, 11, 1e, 01, 00, 02, 00, 10, 00, 11, 1e, 00, 15, 00, 16, 30, 15, 1a, 02, 00, 00, 00, 15, 00, 16, 17, 00, 19, 00, 1d, 1a, 00, 27, 00, 2c, 0d, 00, 2f, 02, 06, 2b, 02, 0c, 02, 06, 27, 03, 01, 00, 02]
 |  | ||||||
| +Raw bytes (120): 0x[01, 01, 0b, 01, 05, 05, 11, 05, 11, 1e, 15, 05, 11, 11, 15, 1e, 15, 05, 11, 09, 02, 0d, 2b, 09, 02, 0e, 01, 08, 01, 01, 09, 28, 01, 02, 01, 08, 00, 2e, 30, 05, 02, 01, 02, 00, 00, 08, 00, 09, 30, 0d, 09, 02, 00, 00, 00, 0d, 00, 2e, 05, 00, 10, 00, 11, 28, 00, 02, 00, 10, 00, 16, 30, 11, 1e, 01, 00, 02, 00, 10, 00, 11, 1e, 00, 15, 00, 16, 30, 15, 1a, 02, 00, 00, 00, 15, 00, 16, 17, 00, 19, 00, 1d, 1a, 00, 27, 00, 2c, 0d, 00, 2f, 02, 06, 2b, 02, 0c, 02, 06, 27, 03, 01, 00, 02]
 |  | ||||||
|  Number of files: 1 |  | ||||||
|  - file 0 => global file 1 |  | ||||||
|  Number of expressions: 11 |  | ||||||
| @@ -74,7 +74,7 @@ Number of expressions: 11
 |  | ||||||
|  - expression 9 operands: lhs = Counter(3), rhs = Expression(10, Add) |  | ||||||
|  - expression 10 operands: lhs = Counter(2), rhs = Expression(0, Sub) |  | ||||||
|  Number of file 0 mappings: 14 |  | ||||||
| -- Code(Counter(0)) at (prev + 7, 1) to (start + 1, 9)
 |  | ||||||
| +- Code(Counter(0)) at (prev + 8, 1) to (start + 1, 9)
 |  | ||||||
|  - MCDCDecision { bitmap_idx: 1, conditions_num: 2 } at (prev + 1, 8) to (start + 0, 46) |  | ||||||
|  - MCDCBranch { true: Counter(1), false: Expression(0, Sub), condition_id: 1, true_next_id: 2, false_next_id: 0 } at (prev + 0, 8) to (start + 0, 9) |  | ||||||
|      true  = c1 |  | ||||||
| @@ -103,7 +103,7 @@ Number of file 0 mappings: 14
 |  | ||||||
|      = (c3 + (c2 + (c0 - c1))) |  | ||||||
|   |  | ||||||
|  Function name: nested_if::nested_in_then_block_in_condition |  | ||||||
| -Raw bytes (176): 0x[01, 01, 12, 01, 05, 05, 11, 05, 11, 3a, 15, 05, 11, 11, 15, 33, 19, 11, 15, 19, 1d, 19, 1d, 1d, 2e, 33, 19, 11, 15, 3a, 15, 05, 11, 09, 02, 0d, 47, 09, 02, 14, 01, 22, 01, 01, 09, 28, 02, 02, 01, 08, 00, 4b, 30, 05, 02, 01, 02, 00, 00, 08, 00, 09, 30, 0d, 09, 02, 00, 00, 00, 0d, 00, 4b, 05, 00, 10, 00, 11, 28, 00, 02, 00, 10, 00, 16, 30, 11, 3a, 01, 00, 02, 00, 10, 00, 11, 3a, 00, 15, 00, 16, 30, 15, 36, 02, 00, 00, 00, 15, 00, 16, 33, 00, 1c, 00, 1d, 28, 01, 02, 00, 1c, 00, 22, 30, 19, 2e, 01, 02, 00, 00, 1c, 00, 1d, 19, 00, 21, 00, 22, 30, 26, 1d, 02, 00, 00, 00, 21, 00, 22, 26, 00, 25, 00, 29, 2b, 00, 33, 00, 38, 36, 00, 44, 00, 49, 0d, 00, 4c, 02, 06, 47, 02, 0c, 02, 06, 43, 03, 01, 00, 02]
 |  | ||||||
| +Raw bytes (176): 0x[01, 01, 12, 01, 05, 05, 11, 05, 11, 3a, 15, 05, 11, 11, 15, 33, 19, 11, 15, 19, 1d, 19, 1d, 1d, 2e, 33, 19, 11, 15, 3a, 15, 05, 11, 09, 02, 0d, 47, 09, 02, 14, 01, 23, 01, 01, 09, 28, 02, 02, 01, 08, 00, 4b, 30, 05, 02, 01, 02, 00, 00, 08, 00, 09, 30, 0d, 09, 02, 00, 00, 00, 0d, 00, 4b, 05, 00, 10, 00, 11, 28, 00, 02, 00, 10, 00, 16, 30, 11, 3a, 01, 00, 02, 00, 10, 00, 11, 3a, 00, 15, 00, 16, 30, 15, 36, 02, 00, 00, 00, 15, 00, 16, 33, 00, 1c, 00, 1d, 28, 01, 02, 00, 1c, 00, 22, 30, 19, 2e, 01, 02, 00, 00, 1c, 00, 1d, 19, 00, 21, 00, 22, 30, 26, 1d, 02, 00, 00, 00, 21, 00, 22, 26, 00, 25, 00, 29, 2b, 00, 33, 00, 38, 36, 00, 44, 00, 49, 0d, 00, 4c, 02, 06, 47, 02, 0c, 02, 06, 43, 03, 01, 00, 02]
 |  | ||||||
|  Number of files: 1 |  | ||||||
|  - file 0 => global file 1 |  | ||||||
|  Number of expressions: 18 |  | ||||||
| @@ -126,7 +126,7 @@ Number of expressions: 18
 |  | ||||||
|  - expression 16 operands: lhs = Counter(3), rhs = Expression(17, Add) |  | ||||||
|  - expression 17 operands: lhs = Counter(2), rhs = Expression(0, Sub) |  | ||||||
|  Number of file 0 mappings: 20 |  | ||||||
| -- Code(Counter(0)) at (prev + 34, 1) to (start + 1, 9)
 |  | ||||||
| +- Code(Counter(0)) at (prev + 35, 1) to (start + 1, 9)
 |  | ||||||
|  - MCDCDecision { bitmap_idx: 2, conditions_num: 2 } at (prev + 1, 8) to (start + 0, 75) |  | ||||||
|  - MCDCBranch { true: Counter(1), false: Expression(0, Sub), condition_id: 1, true_next_id: 2, false_next_id: 0 } at (prev + 0, 8) to (start + 0, 9) |  | ||||||
|      true  = c1 |  | ||||||
| @@ -167,7 +167,7 @@ Number of file 0 mappings: 20
 |  | ||||||
|      = (c3 + (c2 + (c0 - c1))) |  | ||||||
|   |  | ||||||
|  Function name: nested_if::nested_single_condition_decision |  | ||||||
| -Raw bytes (85): 0x[01, 01, 06, 01, 05, 05, 11, 05, 11, 09, 02, 0d, 17, 09, 02, 0b, 01, 17, 01, 04, 09, 28, 00, 02, 04, 08, 00, 29, 30, 05, 02, 01, 02, 00, 00, 08, 00, 09, 30, 0d, 09, 02, 00, 00, 00, 0d, 00, 29, 05, 00, 10, 00, 11, 20, 11, 0a, 00, 10, 00, 11, 11, 00, 14, 00, 19, 0a, 00, 23, 00, 27, 0d, 00, 2a, 02, 06, 17, 02, 0c, 02, 06, 13, 03, 01, 00, 02]
 |  | ||||||
| +Raw bytes (85): 0x[01, 01, 06, 01, 05, 05, 11, 05, 11, 09, 02, 0d, 17, 09, 02, 0b, 01, 18, 01, 04, 09, 28, 00, 02, 04, 08, 00, 29, 30, 05, 02, 01, 02, 00, 00, 08, 00, 09, 30, 0d, 09, 02, 00, 00, 00, 0d, 00, 29, 05, 00, 10, 00, 11, 20, 11, 0a, 00, 10, 00, 11, 11, 00, 14, 00, 19, 0a, 00, 23, 00, 27, 0d, 00, 2a, 02, 06, 17, 02, 0c, 02, 06, 13, 03, 01, 00, 02]
 |  | ||||||
|  Number of files: 1 |  | ||||||
|  - file 0 => global file 1 |  | ||||||
|  Number of expressions: 6 |  | ||||||
| @@ -178,7 +178,7 @@ Number of expressions: 6
 |  | ||||||
|  - expression 4 operands: lhs = Counter(3), rhs = Expression(5, Add) |  | ||||||
|  - expression 5 operands: lhs = Counter(2), rhs = Expression(0, Sub) |  | ||||||
|  Number of file 0 mappings: 11 |  | ||||||
| -- Code(Counter(0)) at (prev + 23, 1) to (start + 4, 9)
 |  | ||||||
| +- Code(Counter(0)) at (prev + 24, 1) to (start + 4, 9)
 |  | ||||||
|  - MCDCDecision { bitmap_idx: 0, conditions_num: 2 } at (prev + 4, 8) to (start + 0, 41) |  | ||||||
|  - MCDCBranch { true: Counter(1), false: Expression(0, Sub), condition_id: 1, true_next_id: 2, false_next_id: 0 } at (prev + 0, 8) to (start + 0, 9) |  | ||||||
|      true  = c1 |  | ||||||
| diff --git a/tests/coverage/mcdc/non_control_flow.cov-map b/tests/coverage/mcdc/non_control_flow.cov-map
 |  | ||||||
| index f8576831e75f..0c6928b684d6 100644
 |  | ||||||
| --- a/tests/coverage/mcdc/non_control_flow.cov-map
 |  | ||||||
| +++ b/tests/coverage/mcdc/non_control_flow.cov-map
 |  | ||||||
| @@ -1,5 +1,5 @@
 |  | ||||||
|  Function name: non_control_flow::assign_3 |  | ||||||
| -Raw bytes (89): 0x[01, 01, 09, 05, 07, 0b, 11, 09, 0d, 01, 05, 01, 05, 22, 11, 01, 05, 22, 11, 01, 05, 0a, 01, 16, 01, 00, 28, 03, 01, 09, 00, 0a, 01, 00, 0d, 00, 0e, 28, 00, 03, 00, 0d, 00, 18, 30, 05, 22, 01, 00, 02, 00, 0d, 00, 0e, 22, 00, 12, 00, 13, 30, 1e, 11, 02, 03, 00, 00, 12, 00, 13, 1e, 00, 17, 00, 18, 30, 09, 0d, 03, 00, 00, 00, 17, 00, 18, 03, 01, 05, 01, 02]
 |  | ||||||
| +Raw bytes (89): 0x[01, 01, 09, 05, 07, 0b, 11, 09, 0d, 01, 05, 01, 05, 22, 11, 01, 05, 22, 11, 01, 05, 0a, 01, 17, 01, 00, 28, 03, 01, 09, 00, 0a, 01, 00, 0d, 00, 0e, 28, 00, 03, 00, 0d, 00, 18, 30, 05, 22, 01, 00, 02, 00, 0d, 00, 0e, 22, 00, 12, 00, 13, 30, 1e, 11, 02, 03, 00, 00, 12, 00, 13, 1e, 00, 17, 00, 18, 30, 09, 0d, 03, 00, 00, 00, 17, 00, 18, 03, 01, 05, 01, 02]
 |  | ||||||
|  Number of files: 1 |  | ||||||
|  - file 0 => global file 1 |  | ||||||
|  Number of expressions: 9 |  | ||||||
| @@ -13,7 +13,7 @@ Number of expressions: 9
 |  | ||||||
|  - expression 7 operands: lhs = Expression(8, Sub), rhs = Counter(4) |  | ||||||
|  - expression 8 operands: lhs = Counter(0), rhs = Counter(1) |  | ||||||
|  Number of file 0 mappings: 10 |  | ||||||
| -- Code(Counter(0)) at (prev + 22, 1) to (start + 0, 40)
 |  | ||||||
| +- Code(Counter(0)) at (prev + 23, 1) to (start + 0, 40)
 |  | ||||||
|  - Code(Expression(0, Add)) at (prev + 1, 9) to (start + 0, 10) |  | ||||||
|      = (c1 + ((c2 + c3) + c4)) |  | ||||||
|  - Code(Counter(0)) at (prev + 0, 13) to (start + 0, 14) |  | ||||||
| @@ -35,7 +35,7 @@ Number of file 0 mappings: 10
 |  | ||||||
|      = (c1 + ((c2 + c3) + c4)) |  | ||||||
|   |  | ||||||
|  Function name: non_control_flow::assign_3_bis |  | ||||||
| -Raw bytes (85): 0x[01, 01, 07, 07, 11, 09, 0d, 01, 05, 05, 09, 16, 1a, 05, 09, 01, 05, 0a, 01, 1b, 01, 00, 2c, 03, 01, 09, 00, 0a, 01, 00, 0d, 00, 0e, 28, 00, 03, 00, 0d, 00, 18, 30, 05, 1a, 01, 03, 02, 00, 0d, 00, 0e, 05, 00, 12, 00, 13, 30, 09, 16, 03, 00, 02, 00, 12, 00, 13, 13, 00, 17, 00, 18, 30, 0d, 11, 02, 00, 00, 00, 17, 00, 18, 03, 01, 05, 01, 02]
 |  | ||||||
| +Raw bytes (85): 0x[01, 01, 07, 07, 11, 09, 0d, 01, 05, 05, 09, 16, 1a, 05, 09, 01, 05, 0a, 01, 1c, 01, 00, 2c, 03, 01, 09, 00, 0a, 01, 00, 0d, 00, 0e, 28, 00, 03, 00, 0d, 00, 18, 30, 05, 1a, 01, 03, 02, 00, 0d, 00, 0e, 05, 00, 12, 00, 13, 30, 09, 16, 03, 00, 02, 00, 12, 00, 13, 13, 00, 17, 00, 18, 30, 0d, 11, 02, 00, 00, 00, 17, 00, 18, 03, 01, 05, 01, 02]
 |  | ||||||
|  Number of files: 1 |  | ||||||
|  - file 0 => global file 1 |  | ||||||
|  Number of expressions: 7 |  | ||||||
| @@ -47,7 +47,7 @@ Number of expressions: 7
 |  | ||||||
|  - expression 5 operands: lhs = Counter(1), rhs = Counter(2) |  | ||||||
|  - expression 6 operands: lhs = Counter(0), rhs = Counter(1) |  | ||||||
|  Number of file 0 mappings: 10 |  | ||||||
| -- Code(Counter(0)) at (prev + 27, 1) to (start + 0, 44)
 |  | ||||||
| +- Code(Counter(0)) at (prev + 28, 1) to (start + 0, 44)
 |  | ||||||
|  - Code(Expression(0, Add)) at (prev + 1, 9) to (start + 0, 10) |  | ||||||
|      = ((c2 + c3) + c4) |  | ||||||
|  - Code(Counter(0)) at (prev + 0, 13) to (start + 0, 14) |  | ||||||
| @@ -68,7 +68,7 @@ Number of file 0 mappings: 10
 |  | ||||||
|      = ((c2 + c3) + c4) |  | ||||||
|   |  | ||||||
|  Function name: non_control_flow::assign_and |  | ||||||
| -Raw bytes (64): 0x[01, 01, 04, 07, 0e, 09, 0d, 01, 05, 01, 05, 08, 01, 0c, 01, 00, 21, 03, 01, 09, 00, 0a, 01, 00, 0d, 00, 0e, 28, 00, 02, 00, 0d, 00, 13, 30, 05, 0e, 01, 02, 00, 00, 0d, 00, 0e, 05, 00, 12, 00, 13, 30, 09, 0d, 02, 00, 00, 00, 12, 00, 13, 03, 01, 05, 01, 02]
 |  | ||||||
| +Raw bytes (64): 0x[01, 01, 04, 07, 0e, 09, 0d, 01, 05, 01, 05, 08, 01, 0d, 01, 00, 21, 03, 01, 09, 00, 0a, 01, 00, 0d, 00, 0e, 28, 00, 02, 00, 0d, 00, 13, 30, 05, 0e, 01, 02, 00, 00, 0d, 00, 0e, 05, 00, 12, 00, 13, 30, 09, 0d, 02, 00, 00, 00, 12, 00, 13, 03, 01, 05, 01, 02]
 |  | ||||||
|  Number of files: 1 |  | ||||||
|  - file 0 => global file 1 |  | ||||||
|  Number of expressions: 4 |  | ||||||
| @@ -77,7 +77,7 @@ Number of expressions: 4
 |  | ||||||
|  - expression 2 operands: lhs = Counter(0), rhs = Counter(1) |  | ||||||
|  - expression 3 operands: lhs = Counter(0), rhs = Counter(1) |  | ||||||
|  Number of file 0 mappings: 8 |  | ||||||
| -- Code(Counter(0)) at (prev + 12, 1) to (start + 0, 33)
 |  | ||||||
| +- Code(Counter(0)) at (prev + 13, 1) to (start + 0, 33)
 |  | ||||||
|  - Code(Expression(0, Add)) at (prev + 1, 9) to (start + 0, 10) |  | ||||||
|      = ((c2 + c3) + (c0 - c1)) |  | ||||||
|  - Code(Counter(0)) at (prev + 0, 13) to (start + 0, 14) |  | ||||||
| @@ -93,7 +93,7 @@ Number of file 0 mappings: 8
 |  | ||||||
|      = ((c2 + c3) + (c0 - c1)) |  | ||||||
|   |  | ||||||
|  Function name: non_control_flow::assign_or |  | ||||||
| -Raw bytes (64): 0x[01, 01, 04, 07, 0d, 05, 09, 01, 05, 01, 05, 08, 01, 11, 01, 00, 20, 03, 01, 09, 00, 0a, 01, 00, 0d, 00, 0e, 28, 00, 02, 00, 0d, 00, 13, 30, 05, 0e, 01, 00, 02, 00, 0d, 00, 0e, 0e, 00, 12, 00, 13, 30, 09, 0d, 02, 00, 00, 00, 12, 00, 13, 03, 01, 05, 01, 02]
 |  | ||||||
| +Raw bytes (64): 0x[01, 01, 04, 07, 0d, 05, 09, 01, 05, 01, 05, 08, 01, 12, 01, 00, 20, 03, 01, 09, 00, 0a, 01, 00, 0d, 00, 0e, 28, 00, 02, 00, 0d, 00, 13, 30, 05, 0e, 01, 00, 02, 00, 0d, 00, 0e, 0e, 00, 12, 00, 13, 30, 09, 0d, 02, 00, 00, 00, 12, 00, 13, 03, 01, 05, 01, 02]
 |  | ||||||
|  Number of files: 1 |  | ||||||
|  - file 0 => global file 1 |  | ||||||
|  Number of expressions: 4 |  | ||||||
| @@ -102,7 +102,7 @@ Number of expressions: 4
 |  | ||||||
|  - expression 2 operands: lhs = Counter(0), rhs = Counter(1) |  | ||||||
|  - expression 3 operands: lhs = Counter(0), rhs = Counter(1) |  | ||||||
|  Number of file 0 mappings: 8 |  | ||||||
| -- Code(Counter(0)) at (prev + 17, 1) to (start + 0, 32)
 |  | ||||||
| +- Code(Counter(0)) at (prev + 18, 1) to (start + 0, 32)
 |  | ||||||
|  - Code(Expression(0, Add)) at (prev + 1, 9) to (start + 0, 10) |  | ||||||
|      = ((c1 + c2) + c3) |  | ||||||
|  - Code(Counter(0)) at (prev + 0, 13) to (start + 0, 14) |  | ||||||
| @@ -119,15 +119,15 @@ Number of file 0 mappings: 8
 |  | ||||||
|      = ((c1 + c2) + c3) |  | ||||||
|   |  | ||||||
|  Function name: non_control_flow::foo |  | ||||||
| -Raw bytes (9): 0x[01, 01, 00, 01, 01, 25, 01, 02, 02]
 |  | ||||||
| +Raw bytes (9): 0x[01, 01, 00, 01, 01, 26, 01, 02, 02]
 |  | ||||||
|  Number of files: 1 |  | ||||||
|  - file 0 => global file 1 |  | ||||||
|  Number of expressions: 0 |  | ||||||
|  Number of file 0 mappings: 1 |  | ||||||
| -- Code(Counter(0)) at (prev + 37, 1) to (start + 2, 2)
 |  | ||||||
| +- Code(Counter(0)) at (prev + 38, 1) to (start + 2, 2)
 |  | ||||||
|   |  | ||||||
|  Function name: non_control_flow::func_call |  | ||||||
| -Raw bytes (52): 0x[01, 01, 03, 01, 05, 0b, 02, 09, 0d, 06, 01, 29, 01, 01, 0a, 28, 00, 02, 01, 09, 00, 0f, 30, 05, 02, 01, 02, 00, 00, 09, 00, 0a, 05, 00, 0e, 00, 0f, 30, 09, 0d, 02, 00, 00, 00, 0e, 00, 0f, 07, 01, 01, 00, 02]
 |  | ||||||
| +Raw bytes (52): 0x[01, 01, 03, 01, 05, 0b, 02, 09, 0d, 06, 01, 2a, 01, 01, 0a, 28, 00, 02, 01, 09, 00, 0f, 30, 05, 02, 01, 02, 00, 00, 09, 00, 0a, 05, 00, 0e, 00, 0f, 30, 09, 0d, 02, 00, 00, 00, 0e, 00, 0f, 07, 01, 01, 00, 02]
 |  | ||||||
|  Number of files: 1 |  | ||||||
|  - file 0 => global file 1 |  | ||||||
|  Number of expressions: 3 |  | ||||||
| @@ -135,7 +135,7 @@ Number of expressions: 3
 |  | ||||||
|  - expression 1 operands: lhs = Expression(2, Add), rhs = Expression(0, Sub) |  | ||||||
|  - expression 2 operands: lhs = Counter(2), rhs = Counter(3) |  | ||||||
|  Number of file 0 mappings: 6 |  | ||||||
| -- Code(Counter(0)) at (prev + 41, 1) to (start + 1, 10)
 |  | ||||||
| +- Code(Counter(0)) at (prev + 42, 1) to (start + 1, 10)
 |  | ||||||
|  - MCDCDecision { bitmap_idx: 0, conditions_num: 2 } at (prev + 1, 9) to (start + 0, 15) |  | ||||||
|  - MCDCBranch { true: Counter(1), false: Expression(0, Sub), condition_id: 1, true_next_id: 2, false_next_id: 0 } at (prev + 0, 9) to (start + 0, 10) |  | ||||||
|      true  = c1 |  | ||||||
| @@ -148,7 +148,7 @@ Number of file 0 mappings: 6
 |  | ||||||
|      = ((c2 + c3) + (c0 - c1)) |  | ||||||
|   |  | ||||||
|  Function name: non_control_flow::right_comb_tree |  | ||||||
| -Raw bytes (139): 0x[01, 01, 13, 07, 1a, 0b, 19, 0f, 15, 13, 11, 09, 0d, 01, 05, 01, 05, 05, 19, 05, 19, 4a, 15, 05, 19, 4a, 15, 05, 19, 46, 11, 4a, 15, 05, 19, 46, 11, 4a, 15, 05, 19, 0e, 01, 20, 01, 00, 41, 03, 01, 09, 00, 0a, 01, 00, 0d, 00, 0e, 28, 00, 05, 00, 0d, 00, 2a, 30, 05, 1a, 01, 02, 00, 00, 0d, 00, 0e, 05, 00, 13, 00, 14, 30, 4a, 19, 02, 03, 00, 00, 13, 00, 14, 4a, 00, 19, 00, 1a, 30, 46, 15, 03, 04, 00, 00, 19, 00, 1a, 46, 00, 1f, 00, 20, 30, 42, 11, 04, 05, 00, 00, 1f, 00, 20, 42, 00, 24, 00, 27, 30, 09, 0d, 05, 00, 00, 00, 24, 00, 27, 03, 01, 05, 01, 02]
 |  | ||||||
| +Raw bytes (139): 0x[01, 01, 13, 07, 1a, 0b, 19, 0f, 15, 13, 11, 09, 0d, 01, 05, 01, 05, 05, 19, 05, 19, 4a, 15, 05, 19, 4a, 15, 05, 19, 46, 11, 4a, 15, 05, 19, 46, 11, 4a, 15, 05, 19, 0e, 01, 21, 01, 00, 41, 03, 01, 09, 00, 0a, 01, 00, 0d, 00, 0e, 28, 00, 05, 00, 0d, 00, 2a, 30, 05, 1a, 01, 02, 00, 00, 0d, 00, 0e, 05, 00, 13, 00, 14, 30, 4a, 19, 02, 03, 00, 00, 13, 00, 14, 4a, 00, 19, 00, 1a, 30, 46, 15, 03, 04, 00, 00, 19, 00, 1a, 46, 00, 1f, 00, 20, 30, 42, 11, 04, 05, 00, 00, 1f, 00, 20, 42, 00, 24, 00, 27, 30, 09, 0d, 05, 00, 00, 00, 24, 00, 27, 03, 01, 05, 01, 02]
 |  | ||||||
|  Number of files: 1 |  | ||||||
|  - file 0 => global file 1 |  | ||||||
|  Number of expressions: 19 |  | ||||||
| @@ -172,7 +172,7 @@ Number of expressions: 19
 |  | ||||||
|  - expression 17 operands: lhs = Expression(18, Sub), rhs = Counter(5) |  | ||||||
|  - expression 18 operands: lhs = Counter(1), rhs = Counter(6) |  | ||||||
|  Number of file 0 mappings: 14 |  | ||||||
| -- Code(Counter(0)) at (prev + 32, 1) to (start + 0, 65)
 |  | ||||||
| +- Code(Counter(0)) at (prev + 33, 1) to (start + 0, 65)
 |  | ||||||
|  - Code(Expression(0, Add)) at (prev + 1, 9) to (start + 0, 10) |  | ||||||
|      = (((((c2 + c3) + c4) + c5) + c6) + (c0 - c1)) |  | ||||||
|  - Code(Counter(0)) at (prev + 0, 13) to (start + 0, 14) |  | ||||||
| -- 
 |  | ||||||
| 2.46.1 |  | ||||||
| 
 |  | ||||||
| @ -1,23 +0,0 @@ | |||||||
| diff -up rustc-beta-src/src/tools/cargo/Cargo.lock.orig rustc-beta-src/src/tools/cargo/Cargo.lock
 |  | ||||||
| --- rustc-beta-src/src/tools/cargo/Cargo.lock.orig	2024-08-15 09:53:53.000000000 -0700
 |  | ||||||
| +++ rustc-beta-src/src/tools/cargo/Cargo.lock	2024-08-16 10:20:52.394575295 -0700
 |  | ||||||
| @@ -2195,7 +2195,6 @@ version = "0.28.0"
 |  | ||||||
|  source = "registry+https://github.com/rust-lang/crates.io-index" |  | ||||||
|  checksum = "0c10584274047cb335c23d3e61bcef8e323adae7c5c8c760540f73610177fc3f" |  | ||||||
|  dependencies = [ |  | ||||||
| - "cc",
 |  | ||||||
|   "pkg-config", |  | ||||||
|   "vcpkg", |  | ||||||
|  ] |  | ||||||
| diff -up rustc-beta-src/src/tools/cargo/Cargo.toml.orig rustc-beta-src/src/tools/cargo/Cargo.toml
 |  | ||||||
| --- rustc-beta-src/src/tools/cargo/Cargo.toml.orig	2024-08-16 10:20:52.394575295 -0700
 |  | ||||||
| +++ rustc-beta-src/src/tools/cargo/Cargo.toml	2024-08-16 10:21:50.535122479 -0700
 |  | ||||||
| @@ -77,7 +77,7 @@ proptest = "1.4.0"
 |  | ||||||
|  pulldown-cmark = { version = "0.11.0", default-features = false, features = ["html"] } |  | ||||||
|  rand = "0.8.5" |  | ||||||
|  regex = "1.10.4" |  | ||||||
| -rusqlite = { version = "0.31.0", features = ["bundled"] }
 |  | ||||||
| +rusqlite = { version = "0.31.0", features = [] }
 |  | ||||||
|  rustfix = { version = "0.8.2", path = "crates/rustfix" } |  | ||||||
|  same-file = "1.0.6" |  | ||||||
|  security-framework = "2.10.0" |  | ||||||
| @ -1,7 +1,7 @@ | |||||||
| diff -up rustc-beta-src/src/tools/cargo/Cargo.lock.orig rustc-beta-src/src/tools/cargo/Cargo.lock
 | diff -up rustc-beta-src/src/tools/cargo/Cargo.lock.orig rustc-beta-src/src/tools/cargo/Cargo.lock
 | ||||||
| --- rustc-beta-src/src/tools/cargo/Cargo.lock.orig	2024-08-26 09:03:52.769956890 -0700
 | --- rustc-beta-src/src/tools/cargo/Cargo.lock.orig	2024-09-06 10:36:55.743405666 -0700
 | ||||||
| +++ rustc-beta-src/src/tools/cargo/Cargo.lock	2024-08-26 09:03:52.773956573 -0700
 | +++ rustc-beta-src/src/tools/cargo/Cargo.lock	2024-09-06 10:36:55.745405652 -0700
 | ||||||
| @@ -2155,7 +2155,6 @@ checksum = "10472326a8a6477c3c20a64547b0
 | @@ -2156,7 +2156,6 @@ checksum = "10472326a8a6477c3c20a64547b0
 | ||||||
|  dependencies = [ |  dependencies = [ | ||||||
|   "cc", |   "cc", | ||||||
|   "libc", |   "libc", | ||||||
| @ -9,7 +9,7 @@ diff -up rustc-beta-src/src/tools/cargo/Cargo.lock.orig rustc-beta-src/src/tools | |||||||
|   "libz-sys", |   "libz-sys", | ||||||
|   "openssl-sys", |   "openssl-sys", | ||||||
|   "pkg-config", |   "pkg-config", | ||||||
| @@ -2196,20 +2195,6 @@ dependencies = [
 | @@ -2197,20 +2196,6 @@ dependencies = [
 | ||||||
|   "pkg-config", |   "pkg-config", | ||||||
|   "vcpkg", |   "vcpkg", | ||||||
|  ] |  ] | ||||||
| @ -31,10 +31,10 @@ diff -up rustc-beta-src/src/tools/cargo/Cargo.lock.orig rustc-beta-src/src/tools | |||||||
|  [[package]] |  [[package]] | ||||||
|  name = "libz-sys" |  name = "libz-sys" | ||||||
| diff -up rustc-beta-src/src/tools/cargo/Cargo.toml.orig rustc-beta-src/src/tools/cargo/Cargo.toml
 | diff -up rustc-beta-src/src/tools/cargo/Cargo.toml.orig rustc-beta-src/src/tools/cargo/Cargo.toml
 | ||||||
| --- rustc-beta-src/src/tools/cargo/Cargo.toml.orig	2024-08-26 09:03:52.773956573 -0700
 | --- rustc-beta-src/src/tools/cargo/Cargo.toml.orig	2024-09-06 10:36:55.746405645 -0700
 | ||||||
| +++ rustc-beta-src/src/tools/cargo/Cargo.toml	2024-08-26 09:05:08.595934397 -0700
 | +++ rustc-beta-src/src/tools/cargo/Cargo.toml	2024-09-06 10:37:13.849280464 -0700
 | ||||||
| @@ -44,7 +44,7 @@ curl = "0.4.46"
 | @@ -44,7 +44,7 @@ curl = "0.4.46"
 | ||||||
|  curl-sys = "0.4.72" |  curl-sys = "0.4.73" | ||||||
|  filetime = "0.2.23" |  filetime = "0.2.23" | ||||||
|  flate2 = { version = "1.0.30", default-features = false, features = ["zlib"] } |  flate2 = { version = "1.0.30", default-features = false, features = ["zlib"] } | ||||||
| -git2 = "0.19.0"
 | -git2 = "0.19.0"
 | ||||||
							
								
								
									
										23
									
								
								rustc-1.82.0-unbundle-sqlite.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								rustc-1.82.0-unbundle-sqlite.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,23 @@ | |||||||
|  | diff -up rustc-beta-src/src/tools/cargo/Cargo.lock.orig rustc-beta-src/src/tools/cargo/Cargo.lock
 | ||||||
|  | --- rustc-beta-src/src/tools/cargo/Cargo.lock.orig	2024-09-06 10:30:29.435107742 -0700
 | ||||||
|  | +++ rustc-beta-src/src/tools/cargo/Cargo.lock	2024-09-06 10:31:57.168492758 -0700
 | ||||||
|  | @@ -2194,7 +2194,6 @@ version = "0.30.1"
 | ||||||
|  |  source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  |  checksum = "2e99fb7a497b1e3339bc746195567ed8d3e24945ecd636e3619d20b9de9e9149" | ||||||
|  |  dependencies = [ | ||||||
|  | - "cc",
 | ||||||
|  |   "pkg-config", | ||||||
|  |   "vcpkg", | ||||||
|  |  ] | ||||||
|  | diff -up rustc-beta-src/src/tools/cargo/Cargo.toml.orig rustc-beta-src/src/tools/cargo/Cargo.toml
 | ||||||
|  | --- rustc-beta-src/src/tools/cargo/Cargo.toml.orig	2024-09-06 10:30:29.435107742 -0700
 | ||||||
|  | +++ rustc-beta-src/src/tools/cargo/Cargo.toml	2024-09-06 10:31:27.942697616 -0700
 | ||||||
|  | @@ -77,7 +77,7 @@ proptest = "1.5.0"
 | ||||||
|  |  pulldown-cmark = { version = "0.11.0", default-features = false, features = ["html"] } | ||||||
|  |  rand = "0.8.5" | ||||||
|  |  regex = "1.10.5" | ||||||
|  | -rusqlite = { version = "0.32.0", features = ["bundled"] }
 | ||||||
|  | +rusqlite = { version = "0.32.0", features = [] }
 | ||||||
|  |  rustfix = { version = "0.8.2", path = "crates/rustfix" } | ||||||
|  |  same-file = "1.0.6" | ||||||
|  |  security-framework = "2.11.1" | ||||||
							
								
								
									
										2
									
								
								sources
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								sources
									
									
									
									
									
								
							| @ -1,2 +1,2 @@ | |||||||
| SHA512 (rustc-1.81.0-src.tar.xz) = b8a837ced521d2ca2c7f228a0640da591384519e4dbc1ae768524d50616da6abbd2f7bdae3777caebc0447dac91bf76481282ce5a2264d7f30e173caa6321a51 | SHA512 (rustc-1.82.0-src.tar.xz) = d158c7c71c1814bde2a3ec3cbeabe34949bd3201b730c0d7ec6baad4158bb28dd13696c430a6b99dc38b9d23ad7ddf8dde7d2487cbfbbbe9c3473016994210f0 | ||||||
| SHA512 (wasi-libc-b9ef79d7dbd47c6c5bafdae760823467c2f60b70.tar.gz) = 089ee1f9faeccae85697823d415e34aac56df28cd9db99952a148cb9f91532edbae4ea78f8cd9a223903caadeeb17cbc31d55ea65b020692e4841ddf3914821e | SHA512 (wasi-libc-b9ef79d7dbd47c6c5bafdae760823467c2f60b70.tar.gz) = 089ee1f9faeccae85697823d415e34aac56df28cd9db99952a148cb9f91532edbae4ea78f8cd9a223903caadeeb17cbc31d55ea65b020692e4841ddf3914821e | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user