Skip to content

Commit b50f839

Browse files
committed
Bug 1985509 - Update bindgen to fix overaligned types on x86. r=nika,supply-chain-reviewers,profiler-reviewers,canaltinova
Bindgen historically represented 8-byte aligned types with u64. That's borked in x86 where u64 is 4-byte aligned. I fixed this in upstream bindgen (rust-lang/rust-bindgen#3280), so update it. There are a few changes needed: * mozilla/neqo#2913 to deal with the now properly aligned type. * Similar change (less fun because transmute, but still sound) in the macos crash reporter. I could try to generate a bit easier to use bindings for 8-byte 8-byte-aligned blobs, but this would do. * Some opaque additions in layout/style/ServoBindings.toml and the profiler bindings. This is unrelated to the opaque change, but fallout from other bindgen improvements. In particular, layout tests now run at compile time, so this uncovered some layout mismatches on platforms where we don't run rusttests on CI. Differential Revision: https://phabricator.services.mozilla.com/D262840
1 parent 07e57e1 commit b50f839

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

75 files changed

+5028
-4060
lines changed

.cargo/config.toml.in

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,11 @@ git = "https://github.com/mozilla/neqo"
100100
tag = "v0.15.0"
101101
replace-with = "vendored-sources"
102102

103+
[source."git+https://github.com/rust-lang/rust-bindgen?rev=9366e0af8da529c958b4cd4fcbe492d951c86f5c"]
104+
git = "https://github.com/rust-lang/rust-bindgen"
105+
rev = "9366e0af8da529c958b4cd4fcbe492d951c86f5c"
106+
replace-with = "vendored-sources"
107+
103108
[source."git+https://github.com/servo/rust-cssparser?rev=958a3f098acb92ddacdce18a7ef2c4a87ac3326f"]
104109
git = "https://github.com/servo/rust-cssparser"
105110
rev = "958a3f098acb92ddacdce18a7ef2c4a87ac3326f"

Cargo.lock

Lines changed: 26 additions & 28 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -156,9 +156,11 @@ wasi_0_11 = { package = "wasi", path = "build/rust/wasi" }
156156
# else we do use requires backtrace, so dummy it out for now.
157157
backtrace = { path = "build/rust/backtrace" }
158158

159-
# Locally patch bindgen for https://github.com/rust-lang/rust-bindgen/pull/2824
160-
# and for bug 1945218
161-
bindgen = { path = "third_party/rust/bindgen" }
159+
# Locally patch bindgen to a yet-unreleased version.
160+
bindgen_0_72 = { package = "bindgen", git = "https://github.com/rust-lang/rust-bindgen", rev = "9366e0af8da529c958b4cd4fcbe492d951c86f5c" }
161+
162+
# Patch bindgen 0.69 to 0.72
163+
bindgen = { path = "build/rust/bindgen" }
162164

163165
# Patch nix 0.29 to 0.30+
164166
nix = { path = "build/rust/nix" }
@@ -267,3 +269,9 @@ allocator-api2 = { path = "third_party/rust/allocator-api2" }
267269

268270
# Patched version of zip 2.4.2 to allow for reading omnijars.
269271
zip = { path = "third_party/rust/zip" }
272+
273+
# Patch neqo-crypto (and neqo-common to avoid duplicating it) to cherry-pick
274+
# https://github.com/mozilla/neqo/pull/2913
275+
[patch."https://github.com/mozilla/neqo"]
276+
neqo-crypto = { path = "third_party/rust/neqo-crypto" }
277+
neqo-common = { path = "third_party/rust/neqo-common" }

build/rust/bindgen/Cargo.toml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
[package]
2+
name = "bindgen"
3+
version = "0.69.999"
4+
edition = "2018"
5+
license = "MPL-2.0"
6+
7+
[lib]
8+
path = "lib.rs"
9+
10+
[dependencies.bindgen]
11+
version = "0.72.0"
12+
default-features = false
13+
14+
[features]
15+
logging = ["bindgen/logging"]
16+
runtime = ["bindgen/runtime"]
17+
static = ["bindgen/static"]
18+
which-rustfmt = ["bindgen/which-rustfmt"]

build/rust/bindgen/lib.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
/* This Source Code Form is subject to the terms of the Mozilla Public
2+
* License, v. 2.0. If a copy of the MPL was not distributed with this
3+
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4+
5+
pub use bindgen::*;

layout/style/ServoBindings.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -302,10 +302,12 @@ opaque-types = [
302302
"std::atomic",
303303
"std::.*::atomic",
304304
"std::atomic___base",
305+
"std::function",
305306
"std::tuple.*", # Causes "Cannot find type _Pred in this scope" error on mac, like rust-skia#571
306307
"std::.*::tuple.*",
307308
"std::unique_ptr.*",
308309
"std::.*::unique_ptr.*",
310+
"mozilla::dom::FrameRequestManager",
309311

310312
"mozilla::dom::Touch",
311313
"mozilla::dom::Sequence",

servo/components/style/gecko/snapshot_helpers.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ unsafe fn get_class_or_part_from_attr(attr: &structs::nsAttrValue) -> Class {
5858
.mAtomArray
5959
.as_ref();
6060
let array =
61-
(*attr_array).mArray.as_ptr() as *const structs::nsTArray<structs::RefPtr<nsAtom>>;
61+
(*attr_array).mArray.0.as_ptr() as *const structs::nsTArray<structs::RefPtr<nsAtom>>;
6262
return Class::More(&**array);
6363
}
6464
debug_assert_eq!(base_type, structs::nsAttrValue_ValueBaseType_eStringBase);

supply-chain/audits.toml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1047,6 +1047,19 @@ who = "Emilio Cobos Álvarez <emilio@crisal.io>"
10471047
criteria = "safe-to-deploy"
10481048
delta = "0.69.2 -> 0.69.4"
10491049

1050+
[[audits.bindgen]]
1051+
who = "Emilio Cobos Álvarez <emilio@crisal.io>"
1052+
criteria = "safe-to-deploy"
1053+
delta = "0.69.4 -> 0.72.0"
1054+
notes = "I'm the primary maintainer of this crate."
1055+
1056+
[[audits.bindgen]]
1057+
who = "Emilio Cobos Álvarez <emilio@crisal.io>"
1058+
criteria = "safe-to-deploy"
1059+
delta = "0.72.0 -> 0.72.0@git:9366e0af8da529c958b4cd4fcbe492d951c86f5c"
1060+
importable = false
1061+
notes = "Authored or reviewed all relevant changes upstream."
1062+
10501063
[[audits.bit-set]]
10511064
who = "Aria Beingessner <a.beingessner@gmail.com>"
10521065
criteria = "safe-to-deploy"

supply-chain/config.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@ notes = "This is the upstream code plus the ARM intrinsics workaround from qcms,
3131
audit-as-crates-io = true
3232
notes = "This is the upstream code plus a few local fixes, see bug 1685697."
3333

34-
[policy."bindgen:0.69.4"]
34+
[policy."bindgen:0.72.0@git:9366e0af8da529c958b4cd4fcbe492d951c86f5c"]
3535
audit-as-crates-io = true
36-
notes = "This is the upstream code plus a fix for clang trunk. See bug 1894093."
36+
notes = "This is the upstream code not yet released"
3737

3838
[policy.chardetng]
3939
audit-as-crates-io = true
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"files":{"Cargo.toml":"bebb685bfd8df63474c92bfb7f787573ef78eb70920aceb38a8a746968380f96","LICENSE":"c23953d9deb0a3312dbeaf6c128a657f3591acee45067612fa68405eaa4525db","README.md":"b2334e4077a9bc329516e3e0c7f89887c4f073647d95fb71b6917edf4c310ba3","build.rs":"4a9c4ac3759572e17de312a9d3f4ced3b6fd3c71811729e5a8d06bfbd1ac8f82","callbacks.rs":"cd5a1b0fc665b034d97615d0b6817cbef299dbf5276254c7e63f1c29674993ad","clang.rs":"278ca0d89251df8a6b40bdccd27827e310d16872ff86fa23b60d581615607630","codegen/bitfield_unit.rs":"fddeaeab5859f4e82081865595b7705f5c0774d997df95fa5c655b81b9cae125","codegen/bitfield_unit_tests.rs":"9df86490de5e9d66ccea583dcb686dd440375dc1a3c3cf89a89d5de3883bf28a","codegen/dyngen.rs":"6d8bed53c6de66bc658b3186041c2b75549f49b0f0363ff18b87c8dcf2f5a05b","codegen/error.rs":"0c3d198f4866ccbbcd8b1136fc5cfd2507a9eca5ab85934af29a7e2a7d8d8c2a","codegen/helpers.rs":"443a2c3495185ced2a9d68c02204bebfa8c4186f4275bf9ed3af90c3a3e159d7","codegen/impl_debug.rs":"80df6136327b1ca8c7d1c2961290b5ab00b85b49b22c02f26a590bc68fb230af","codegen/impl_partialeq.rs":"db739d7ba6f5ba4033d6bf62c276f35217c20eab27230cf07dadf59e8b2f71bb","codegen/mod.rs":"206e4e2c14cec17c13d11e568557332b51ce1e41ce8128182de44dab69221662","codegen/postprocessing/merge_extern_blocks.rs":"284457a3c75e945217bab4e5a4280fef0fcc03c31e12cc5010aab87f34c0b6c7","codegen/postprocessing/mod.rs":"160a6d6701cabf2514e23570df1bd1b648c909cc27b7c583f21d98fe0c16722e","codegen/postprocessing/sort_semantically.rs":"f465d1e8cc119082eb79c164b5cd780a370821e8bf56585b287dd3b51fc4a542","codegen/serialize.rs":"1f1eb8b04fec9655dc302442451f9622ad6365eb37bf588a119a60e79f37002c","codegen/struct_layout.rs":"922cc71fb309716879aeea4775bbc29751ca5d431083ca83d7beb0a90862a302","deps.rs":"af3dd24a7808b5abf0c4ed4b10bbceb8eef32be980ff085b8a766d8f089af1a4","diagnostics.rs":"dc40cd5e9710922422c5c9420e2351f5d976e7a1d7275e4f4ce742cad9eb53f8","extra_assertions.rs":"fb4484c0e9fcbea9ec7265f5fbd01e2b33ac022b2b17e060dce7886819d57e40","features.rs":"b27adc6bb50e9aae50fd75568a7576382c6409f585b6be0047d7a9314c98d569","ir/analysis/derive.rs":"cba290e9c4ba271e90524149ad3b874f37843bfdfab12d513cc85d2665447fd5","ir/analysis/has_destructor.rs":"e7e95c3b0989b6375cd3eabaac85a36ecc2915a1fd3700c7d26fe04e8dc83ba3","ir/analysis/has_float.rs":"a56b97bf913f132c2c63dc202b45c692c416a8c9fdc6b2baeee30362fb0d4405","ir/analysis/has_type_param_in_array.rs":"788ebb4ba2cf46a22f1e4ff3005d51f38d414b72e95355f7ff4125521e2d9525","ir/analysis/has_vtable.rs":"83efa40ae89147170eabdff1387e60aba574ca4cd4cdef22692753594f09d6c6","ir/analysis/mod.rs":"9d949c27451da4ed72994b31c04ddeb89eeb342fd23ea572d3962d4ccf774841","ir/analysis/sizedness.rs":"f0a9302f3c6ad694d76cfab11dbaf5392ecaf7f04bc7b211a5a003776b963896","ir/analysis/template_params.rs":"3ff27e2198e292a348876aa1faba39cc4b1870a24a7e173feac0b3c592001e13","ir/annotations.rs":"5ed03d025862d0d21852a76c86a993772624e123fdc3752415d588a0b4e643ab","ir/comment.rs":"4c9c20b5a3da086211e92adec0822831dbc0b7ebee98fee313edcae9ae8d55ec","ir/comp.rs":"c048866353695ac8190ab03511123be82d34ca73fb865a2578cb5a2e04390431","ir/context.rs":"03175218512c42792aae7b56a764c0237a447664dda5f1a8269a42bed46d3be2","ir/derive.rs":"c21e470bb0091f20bfa366110880d48984fc3cf7071fdf36eccfa64f3eca231c","ir/dot.rs":"75bdfd83d9e754ba726f6a5529ba1d9ff46f5bf49bf237452985eb008fed0854","ir/enum_ty.rs":"f4bfa6d18ba4977fb66f5d5e4a7674eded93b761404d91cdd6fdd50029db455a","ir/function.rs":"0ecee923382b0a49265bc970ac90a73740ec5ba3c33466b2cfe8aa462df59bd5","ir/int.rs":"601736f0ad0949e40684a9ce89bafbfefa71743df6ee6c342e44888a0f141ae0","ir/item.rs":"65f2351dd3971d8a76470a78f5b6b1ebdda067ab5bae4641246aa986d9579e29","ir/item_kind.rs":"33e21104b0bb824a696a52cd520567ae56158010a1df14777e68ac5f8ad7e8fa","ir/layout.rs":"8fbafc0eeee17abb703a18613be1066e38838d4b67f5916f714bf545e545bc1a","ir/mod.rs":"a3b98b1732111a980a795c72eaf1e09101e842ef2de76b4f2d4a7857f8d4cee4","ir/module.rs":"b2961ffa4acb0c19f084c5db084b8a17bda7158066782a73b80ee7d838789bf9","ir/objc.rs":"8f57a9180d57a690449f20ed1be80209db5f8a410bb067ae8bf5e0ecab16a5e4","ir/template.rs":"3f59efa9670ca90215d4374be869c9dbecb98a8d1041e7c6e4ab69a62bb982c2","ir/traversal.rs":"a4ec73d3533d4b93386153baf6a2ca846ee51228c76ed51105229d3ddcd74466","ir/ty.rs":"fd71d11e89e085921317349e1912ab56e7335d870c2d25df9e13a8ffbd6430c9","ir/var.rs":"40d18226706de0ee5f002d0b5617dbcba35de0605edd531c75e3a76d000f0f4f","lib.rs":"7496f72a177b5965ed56a2ab9af0f64e70abbc53cc6c196a15e6760dd6235adf","log_stubs.rs":"9f974e041e35c8c7e29985d27ae5cd0858d68f8676d1dc005c6388d7d011707f","options/as_args.rs":"76efa4e662cc7f89ef1c1fe089d03a3c1c019ffe2aa0a30a4d49ed41e987d1c7","options/helpers.rs":"f4a7681e29b2dcc3be9249478c499d685b9e29d4f4ca4ae8bff7a91668cd8f15","options/mod.rs":"1805cec86c563633b29b57292287c9efd3b5c724132ec1c13acee57858942e74","parse.rs":"fce3616e0464aa7414888e5d00d4df18c83bb3034a1c807d36a07a3c586e475a","regex_set.rs":"b411d64bc803947a3f69dcedcd7d03716aacbc7b1c5148b82de1cc469d9336d9","time.rs":"8efe317e7c6b5ba8e0865ce7b49ca775ee8a02590f4241ef62f647fa3c22b68e"},"package":"a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0"}
1+
{"files":{"Cargo.toml":"a07e277ca0e2a5c37caed762a150075a651ed56a7c0a32b38f32669d2ac7c5d3","LICENSE":"c23953d9deb0a3312dbeaf6c128a657f3591acee45067612fa68405eaa4525db","build.rs":"f7a10af0a21662e104e0058da7e3471a20be328eef6c7c41988525be90fdfe92","callbacks.rs":"3f0ed344a4d27fc8f893f21b1f9cd742d85ccbc23441d745e8a147b6072469bd","clang.rs":"e991300ce9b1f0b9fb4a0b4bd32e899b6cfa546f034858f08bf57678b3d7044c","codegen/bitfield_unit.rs":"1d598b042a9ce6c2f8a2c6eb44c9ee6e2d41865f25fe34ce747a0376c4d9b951","codegen/bitfield_unit_tests.rs":"9915cb19bf37fc1013fc72753bae153f7c249280daec94b25fb461f9936dffa4","codegen/dyngen.rs":"1b42f7fa9fb65ff2fa898b289a3b934d7b21c5ba6c1b3e37aa97f0faa87769a0","codegen/error.rs":"67680c4d171d63848d9eb4ddd5f100be7463564e8c1c9203fefc0e61a19dfdec","codegen/helpers.rs":"9bcec3163826edc9b22256c9bf33dd2964809349b801fc6fa5e9158da4eb0458","codegen/impl_debug.rs":"3e55b361aa56d9b6ef2bdb96ede983385a3b1030aa0f46235cb4d218ad66b2a1","codegen/impl_partialeq.rs":"d4fb2ef354086c3dd5a4c4b69d5deab652fdef225725e28dc694e791c1573d0c","codegen/mod.rs":"b106576fce6df7a3933eaa112d805d42653c2d1287953a002a3bb70b38715f87","codegen/postprocessing/merge_extern_blocks.rs":"3e244fe62abcadcb6dae069c37d21220f5351dc7b8c33c5576a5193731933c4c","codegen/postprocessing/mod.rs":"160a6d6701cabf2514e23570df1bd1b648c909cc27b7c583f21d98fe0c16722e","codegen/postprocessing/sort_semantically.rs":"5099e8fc134a92cb72b585bd95854a52ff81e2f5307c3b83617d83e7408302ee","codegen/serialize.rs":"d57eb31ba0fda825241f886336279573050b396e52badf3886e0bc76a15110ad","codegen/struct_layout.rs":"b5f4a010d60586e5079284f7f02af53d961f02a8e6a2cf09dfab2127f20c3734","deps.rs":"297dcc2be53af1a3ea4f77e16902a641f3e6f0baad09c06a6ea26050a0281c18","diagnostics.rs":"9c80043ac9fa8f683019577f311853a0d5929e41a95b3255736f80105914cdfa","extra_assertions.rs":"1596b7e7f031714dc699ebda135e795f1ecfc971ce9de6861a3c00e77fcef011","features.rs":"cde8d530d03c2793cbbb257db3d64e345af26731b73f45b4b60a618d062443c3","ir/analysis/derive.rs":"42ef56b1adda1b4d2797c7845b909fde8c87e2bf51920b490b7129936d5c494c","ir/analysis/has_destructor.rs":"d75be0d349e744ef198d89f04274cc024e36eb255fe7fb7b660ce805c8977bae","ir/analysis/has_float.rs":"9fb88d05c5920e9000e5cb6e87775c0d1042a6b11205577e281ba281e6e6acdb","ir/analysis/has_type_param_in_array.rs":"0975d1ce43bcba97eb303635118e74d494d46ac67cf5ee53faf6f6584a556cef","ir/analysis/has_vtable.rs":"dcaf36d4d0148db3b5690166e32853a58eda7721c9ea5217723a5dba7d5295b8","ir/analysis/mod.rs":"93edca96d765dfa19ac231198027b0ba48c623502a8be1dbf799a241cd6b304b","ir/analysis/sizedness.rs":"0b78e70737e038ebdee2c3d195194a060c9287000b9059ded0686728a89b4ff2","ir/analysis/template_params.rs":"a8dfd3e02b1745a5b7c6faa16309bd0b8a88d76b7fedca27c322782cc9e77177","ir/annotations.rs":"8397ced62808fe99dfdde35792cd8b2389e7828d752a6c8aa3a70c1e14595e11","ir/comment.rs":"57863204d329ae82872ecc4829cc299969ff07da3a32a4a13d7d84429f55b84d","ir/comp.rs":"8df9d537b17994f85b3d506658c20b080d18b805ca8b73cc7af15f4d5397e8ef","ir/context.rs":"e9e1ed78f2258ff2556688d658ebf422308732924683c7860853f1c38a607066","ir/derive.rs":"09860cffec0ebecce31da0c6c9ea0cf9a0d4784262ff4eb16ea459c0d0782ac9","ir/dot.rs":"8b8f6dd13e662fcb4114949025cb43467b34fa4998a3371c101db5dd82688f44","ir/enum_ty.rs":"5d7ae2e3de172d9812425e8cc6e30d559b0743620b3b09f7d72f3b05a7e1ce98","ir/function.rs":"94bdc59bc39e043825d6cbbf5a461329462f0eb74c4c216002e1da86bf93e46b","ir/int.rs":"1bf1e4d87eca13ee2fc38ff4d56c266f303f188796f5c0d290f53162798d2d01","ir/item.rs":"6983232b2362f4d23261754f0ef242162ce66bbe9398a7707a88cb7bcee0f0fd","ir/item_kind.rs":"799fab994b5ed35045786a68003c2c12b6601cf3b07e8ccc0b9acd6f921217e0","ir/layout.rs":"7a7173efde2a9daed8562d657bad563922f798e44055e35899dd47badd46c52d","ir/mod.rs":"a3b98b1732111a980a795c72eaf1e09101e842ef2de76b4f2d4a7857f8d4cee4","ir/module.rs":"617867617ebd7e56157a9ba057441ce11a33c25138a1da64646f44ccaae7c762","ir/objc.rs":"092c7f32cec4191aa6235e4554420ab2053e0c7fec5ece016a7ed303763e8547","ir/template.rs":"1114c0924323f8b30bb32dbb3f6730dd7f5bc1f0771ad5099738e8e57111c07d","ir/traversal.rs":"3ebde94ead0fe69d51541ab61d700c7c1f6382574e4c110b8c7fe3e2c6218f19","ir/ty.rs":"6965a7678927a51c76c590aeb1d780412ad9f8cd4d11ea37e56e0a9669e5b06a","ir/var.rs":"2a94decd3adfdccd3bd0015b460d180838e3c92b122b632eed44032b80cad120","lib.rs":"805f7d4547f4e9e3ab024e98e39c6c3c2b74f2fd6cdd657915a5d0bbd7655dab","log_stubs.rs":"a636d59af2fd3745c2e416e1ab8a1e1a3888ea84cd4657a321ce22f15e0c5a87","options/as_args.rs":"a1a5e7f0dde82590371fc1a9ea5fde7f3e2252530ca74d98bb49a8ce06cc864f","options/cli.rs":"7712b6d4d3f8f4dc9a07e5e0fe21687b05c118e70e9c1952a2eebc34da20c2c4","options/helpers.rs":"f4a7681e29b2dcc3be9249478c499d685b9e29d4f4ca4ae8bff7a91668cd8f15","options/mod.rs":"2bedfdd6aa9817bdc8155ca8290e0d6055ef6d7a90353d6cb99ddc6121609693","parse.rs":"fce3616e0464aa7414888e5d00d4df18c83bb3034a1c807d36a07a3c586e475a","regex_set.rs":"d8995adb9e5cecc2d738e662a62d5081150bf967cb67e1206070e22b7265578a","time.rs":"1429af446b2b38c70ceec82c4202d4822c618cad47ba502dce72dbdc4cbb425e"},"package":null}

0 commit comments

Comments
 (0)