about summary refs log tree commit diff
diff options
context:
space:
mode:
authorZalathar <Zalathar@users.noreply.github.com>2024-08-20 15:57:16 +1000
committerZalathar <Zalathar@users.noreply.github.com>2024-08-23 10:10:34 +1000
commit585804fceeeb0f95fc18fbd4a072dfc9c63bee14 (patch)
tree140bbf95ec9406e242d77b77acb06d5a2a44847e
parenteff09483c67e6fc96c8098ba46dce476162754c5 (diff)
downloadrust-585804fceeeb0f95fc18fbd4a072dfc9c63bee14.tar.gz
rust-585804fceeeb0f95fc18fbd4a072dfc9c63bee14.zip
Check that `library/profiler_builtins` actually found some source files
The current `build.rs` will automatically skip source files that don't exist.
An unfortunate side-effect is that if _no_ files could be found (e.g. because
the directory was wrong), the build fails with a mysterious linker error.

We can reduce the awkwardness of this by explicitly checking that at least one
source file was found.
-rw-r--r--library/profiler_builtins/build.rs4
1 files changed, 4 insertions, 0 deletions
diff --git a/library/profiler_builtins/build.rs b/library/profiler_builtins/build.rs
index 9d1c1ba305b..177b027e4f1 100644
--- a/library/profiler_builtins/build.rs
+++ b/library/profiler_builtins/build.rs
@@ -84,12 +84,16 @@ fn main() {
     let root = Path::new("../../src/llvm-project/compiler-rt");
 
     let src_root = root.join("lib").join("profile");
+    assert!(src_root.exists(), "profiler runtime source directory not found: {src_root:?}");
+    let mut n_sources_found = 0u32;
     for src in profile_sources {
         let path = src_root.join(src);
         if path.exists() {
             cfg.file(path);
+            n_sources_found += 1;
         }
     }
+    assert!(n_sources_found > 0, "couldn't find any profiler runtime source files in {src_root:?}");
 
     cfg.include(root.join("include"));
     cfg.warnings(false);