diff options
| author | onur-ozkan <work@onurozkan.dev> | 2025-01-11 16:01:33 +0300 |
|---|---|---|
| committer | onur-ozkan <work@onurozkan.dev> | 2025-01-12 08:43:45 +0300 |
| commit | 99322a5158e274decf1552b3abc041b3abbacbd2 (patch) | |
| tree | 48e09774a8d9edcb640fb2825327cadba48520ff /src | |
| parent | 216969b8c2c454ccf3daf7de0df49846ffd501ef (diff) | |
| download | rust-99322a5158e274decf1552b3abc041b3abbacbd2.tar.gz rust-99322a5158e274decf1552b3abc041b3abbacbd2.zip | |
extend sanitizers stamp calculation
Signed-off-by: onur-ozkan <work@onurozkan.dev>
Diffstat (limited to 'src')
| -rw-r--r-- | src/bootstrap/src/core/build_steps/llvm.rs | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/src/bootstrap/src/core/build_steps/llvm.rs b/src/bootstrap/src/core/build_steps/llvm.rs index 1159ba71230..51df2eba6e9 100644 --- a/src/bootstrap/src/core/build_steps/llvm.rs +++ b/src/bootstrap/src/core/build_steps/llvm.rs @@ -1121,18 +1121,24 @@ impl Step for Sanitizers { let out_dir = builder.native_dir(self.target).join("sanitizers"); let runtimes = supported_sanitizers(&out_dir, self.target, &builder.config.channel); - if runtimes.is_empty() { + + if builder.config.dry_run() || runtimes.is_empty() { return runtimes; } let LlvmResult { llvm_config, .. } = builder.ensure(Llvm { target: builder.config.build }); - if builder.config.dry_run() { - return runtimes; - } - let stamp = BuildStamp::new(&out_dir) - .with_prefix("sanitizers") - .with_stamp(builder.in_tree_llvm_info.sha().map(String::from).unwrap_or_default()); + static STAMP_HASH_MEMO: OnceLock<String> = OnceLock::new(); + let smart_stamp_hash = STAMP_HASH_MEMO.get_or_init(|| { + generate_smart_stamp_hash( + builder, + &builder.config.src.join("src/llvm-project/compiler-rt"), + builder.in_tree_llvm_info.sha().unwrap_or_default(), + ) + }); + + let stamp = + BuildStamp::new(&out_dir).with_prefix("sanitizers").with_stamp(smart_stamp_hash); if stamp.is_up_to_date() { if stamp.stamp.is_empty() { |
