buildMozillaMach: fix darwin build for 140.x (#524663)

This commit is contained in:
Martin Weinelt
2026-05-27 16:29:55 +00:00
committed by GitHub
2 changed files with 23 additions and 0 deletions
@@ -0,0 +1,15 @@
diff --git a/tools/profiler/rust-api/build.rs b/tools/profiler/rust-api/build.rs
index 9bb27eb83e5e..3f09f7f01bcb 100644
--- a/tools/profiler/rust-api/build.rs
+++ b/tools/profiler/rust-api/build.rs
@@ -88,6 +88,10 @@ fn generate_bindings() {
// successfully. Otherwise, it fails to build because MarkerSchema has
// some std::strings as its fields.
.opaque_type("std::string")
+ .blocklist_type(".*basic_string_view.*")
+ .opaque_type(".*basic_string_view.*")
+ .blocklist_type(".*basic_string___self_view.*")
+ .opaque_type(".*basic_string___self_view.*")
// std::vector needs to be converted to an opaque type because, if it's
// not an opaque type, bindgen can't find its size properly and
// MarkerSchema's total size reduces. That causes a heap buffer overflow.
@@ -332,6 +332,14 @@ buildStdenv.mkDerivation {
# https://hg-edge.mozilla.org/mozilla-central/rev/aa8a29bd1fb9
./139-wayland-drag-animation.patch
]
++ lib.optionals (lib.versionAtLeast version "140" && lib.versionOlder version "144") [
# Versions before 144 vendor bindgen 0.69. On Darwin, libc++ 21 changed
# basic_string::__self_view from a typedef to an attributed using alias;
# bindgen then emits it without its template parameter, producing invalid
# Rust. Vendored bindgen was updated in:
# https://bugzilla.mozilla.org/show_bug.cgi?id=1985509
./140-bindgen-string-view.patch
]
++ extraPatches;
postPatch = ''