diff --git a/Cargo.lock b/Cargo.lock index 6c856239e802..d212c6a64319 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -432,14 +432,14 @@ dependencies = [ name = "bindgen" version = "0.66.999" dependencies = [ - "bindgen 0.68.1", + "bindgen 0.69.1", ] [[package]] name = "bindgen" -version = "0.68.1" +version = "0.69.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "726e4313eb6ec35d2730258ad4e15b547ee75d6afaa1361a922e78e59b7d8078" +checksum = "9ffcebc3849946a7170a05992aac39da343a90676ab392c51a4280981d6379c2" dependencies = [ "bitflags 2.4.0", "cexpr", @@ -584,7 +584,7 @@ dependencies = [ name = "builtins-static" version = "0.1.0" dependencies = [ - "bindgen 0.68.1", + "bindgen 0.69.1", "mozilla-central-workspace-hack", "nom", "pkcs11-bindings", @@ -885,11 +885,11 @@ dependencies = [ [[package]] name = "coreaudio-sys" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8478e5bdad14dce236b9898ea002eabfa87cbe14f0aa538dbe3b6a4bec4332d" +checksum = "f3120ebb80a9de008e638ad833d4127d50ea3d3a960ea23ea69bc66d9358a028" dependencies = [ - "bindgen 0.68.1", + "bindgen 0.69.1", ] [[package]] @@ -2020,7 +2020,7 @@ name = "gecko-profiler" version = "0.1.0" dependencies = [ "bincode", - "bindgen 0.68.1", + "bindgen 0.69.1", "lazy_static", "mozbuild", "profiler-macros", @@ -2562,7 +2562,7 @@ name = "http3server" version = "0.1.1" dependencies = [ "base64 0.21.3", - "bindgen 0.68.1", + "bindgen 0.69.1", "cfg-if 1.0.0", "http", "hyper", @@ -3632,7 +3632,7 @@ name = "mozilla-central-workspace-hack" version = "0.1.0" dependencies = [ "arrayvec", - "bindgen 0.68.1", + "bindgen 0.69.1", "bitflags 2.4.0", "bytes", "chrono", @@ -5234,7 +5234,7 @@ dependencies = [ "app_units", "arrayvec", "atomic_refcell", - "bindgen 0.68.1", + "bindgen 0.69.1", "bitflags 2.4.0", "byteorder", "cssparser", diff --git a/Cargo.toml b/Cargo.toml index 27886bd8ff1e..ad343862ebf1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -137,7 +137,7 @@ wasi = { path = "build/rust/wasi" } # else we do use requires backtrace, so dummy it out for now. backtrace = { path = "build/rust/backtrace" } -# Patch bindgen 0.63, 0.64 and 0.66 to 0.68 +# Patch bindgen 0.63, 0.64 and 0.66 to 0.69 bindgen_0_63 = { package = "bindgen", path = "build/rust/bindgen-0.63" } bindgen_0_64 = { package = "bindgen", path = "build/rust/bindgen-0.64" } bindgen = { path = "build/rust/bindgen" } diff --git a/build/rust/bindgen/Cargo.toml b/build/rust/bindgen/Cargo.toml index 83d1951c76d9..12cce0af3feb 100644 --- a/build/rust/bindgen/Cargo.toml +++ b/build/rust/bindgen/Cargo.toml @@ -8,7 +8,7 @@ license = "BSD-3-Clause" path = "lib.rs" [dependencies.bindgen] -version = "0.68.0" +version = "0.69.0" default-features = false [features] diff --git a/build/workspace-hack/Cargo.toml b/build/workspace-hack/Cargo.toml index 5c8d488fb057..9d23dd6d4bdc 100644 --- a/build/workspace-hack/Cargo.toml +++ b/build/workspace-hack/Cargo.toml @@ -52,7 +52,7 @@ uuid = { version = "1", features = ["serde", "v4"], optional = true } scopeguard = { version = "1", optional = true } [build-dependencies] -bindgen = { version = "0.68", default-features = false, features = ["runtime"], optional = true } +bindgen = { version = "0.69", default-features = false, features = ["runtime"], optional = true } libc = "0.2" memchr = { version = "2", optional = true } nom = { version = "7", optional = true } diff --git a/netwerk/test/http3server/Cargo.toml b/netwerk/test/http3server/Cargo.toml index 1010d5f14c08..fe436ad15c85 100644 --- a/netwerk/test/http3server/Cargo.toml +++ b/netwerk/test/http3server/Cargo.toml @@ -28,7 +28,7 @@ features = ["gecko"] # Make sure to use bindgen's runtime-loading of libclang, as it allows for a wider range of clang versions to be used [build-dependencies] -bindgen = {version = "0.68", default-features = false, features = ["runtime"] } +bindgen = {version = "0.69", default-features = false, features = ["runtime"] } [[bin]] name = "http3server" diff --git a/security/manager/ssl/builtins/Cargo.toml b/security/manager/ssl/builtins/Cargo.toml index 7065147cc92e..b3f2e9c7b8cb 100644 --- a/security/manager/ssl/builtins/Cargo.toml +++ b/security/manager/ssl/builtins/Cargo.toml @@ -11,7 +11,7 @@ smallvec = { version = "1.9.0", features = ["const_new"] } mozilla-central-workspace-hack = { version = "0.1", features = ["builtins-static"], optional = true } [build-dependencies] -bindgen = { default-features = false, features = ["runtime"], version = "0.68" } +bindgen = { default-features = false, features = ["runtime"], version = "0.69" } nom = "7.1.1" [lib] diff --git a/servo/components/style/Cargo.toml b/servo/components/style/Cargo.toml index 51a0b5147596..058ec115933b 100644 --- a/servo/components/style/Cargo.toml +++ b/servo/components/style/Cargo.toml @@ -84,7 +84,7 @@ gecko-profiler = { path = "../../../tools/profiler/rust-api" } [build-dependencies] lazy_static = "1" log = { version = "0.4", features = ["std"] } -bindgen = {version = "0.68", optional = true, default-features = false} +bindgen = {version = "0.69", optional = true, default-features = false} regex = {version = "1.0", optional = true, default-features = false, features = ["perf", "std"]} walkdir = "2.1.4" toml = {version = "0.5", optional = true, default-features = false} diff --git a/supply-chain/audits.toml b/supply-chain/audits.toml index 0980710b197c..bfd8d4032afc 100644 --- a/supply-chain/audits.toml +++ b/supply-chain/audits.toml @@ -681,6 +681,11 @@ who = "Mike Hommey " criteria = "safe-to-deploy" delta = "0.66.1 -> 0.68.1" +[[audits.bindgen]] +who = "Andreas Pehrson " +criteria = "safe-to-deploy" +delta = "0.68.1 -> 0.69.1" + [[audits.bit-set]] who = "Aria Beingessner " criteria = "safe-to-deploy" @@ -881,6 +886,11 @@ who = "Mike Hommey " criteria = "safe-to-deploy" delta = "0.2.12 -> 0.2.13" +[[audits.coreaudio-sys]] +who = "Andreas Pehrson " +criteria = "safe-to-deploy" +delta = "0.2.13 -> 0.2.14" + [[audits.cose]] who = "Mathew Hodson " criteria = "safe-to-deploy" diff --git a/third_party/rust/bindgen/.cargo-checksum.json b/third_party/rust/bindgen/.cargo-checksum.json index f5ef6db69d28..7c2b890889ea 100644 --- a/third_party/rust/bindgen/.cargo-checksum.json +++ b/third_party/rust/bindgen/.cargo-checksum.json @@ -1 +1 @@ -{"files":{"Cargo.toml":"112e4ba01bb44e00e6ecc4a7408954b040424eeae34ad701030ef1b11cab0d36","LICENSE":"c23953d9deb0a3312dbeaf6c128a657f3591acee45067612fa68405eaa4525db","README.md":"b2334e4077a9bc329516e3e0c7f89887c4f073647d95fb71b6917edf4c310ba3","build.rs":"4a9c4ac3759572e17de312a9d3f4ced3b6fd3c71811729e5a8d06bfbd1ac8f82","callbacks.rs":"52211e15fa94fd0c8c5bab822dbf3e6a1e5500c6cd8c5b45c6c3b35627e2a416","clang.rs":"f7dc9c6eed9138075c0c26567e40269183192f9d04ff1701046ed3ac73d10b69","codegen/bitfield_unit.rs":"fddeaeab5859f4e82081865595b7705f5c0774d997df95fa5c655b81b9cae125","codegen/bitfield_unit_tests.rs":"9df86490de5e9d66ccea583dcb686dd440375dc1a3c3cf89a89d5de3883bf28a","codegen/dyngen.rs":"6d8bed53c6de66bc658b3186041c2b75549f49b0f0363ff18b87c8dcf2f5a05b","codegen/error.rs":"38fce9b4a06c6cd4b4b0a074417d2c9f31dac584b023b19b696cd00265a57930","codegen/helpers.rs":"0c28751565c90b4ab385ae2113cde02afa34225d85ae48fd296817aac36c5940","codegen/impl_debug.rs":"80df6136327b1ca8c7d1c2961290b5ab00b85b49b22c02f26a590bc68fb230af","codegen/impl_partialeq.rs":"db739d7ba6f5ba4033d6bf62c276f35217c20eab27230cf07dadf59e8b2f71bb","codegen/mod.rs":"61d3a0c226fba211dd3ef36bfa066f6963bff23406ef7961bfa5b79080f444d0","codegen/postprocessing/merge_extern_blocks.rs":"284457a3c75e945217bab4e5a4280fef0fcc03c31e12cc5010aab87f34c0b6c7","codegen/postprocessing/mod.rs":"160a6d6701cabf2514e23570df1bd1b648c909cc27b7c583f21d98fe0c16722e","codegen/postprocessing/sort_semantically.rs":"f465d1e8cc119082eb79c164b5cd780a370821e8bf56585b287dd3b51fc4a542","codegen/serialize.rs":"5cc71bcad2379df538cd179d1f8027c757f29e66a1cc130b222004adb698fa90","codegen/struct_layout.rs":"07007251c91e0d4eb1e46535068d8c22881d248baa2e38cab96d72691927c2e4","deps.rs":"af3dd24a7808b5abf0c4ed4b10bbceb8eef32be980ff085b8a766d8f089af1a4","diagnostics.rs":"dc40cd5e9710922422c5c9420e2351f5d976e7a1d7275e4f4ce742cad9eb53f8","extra_assertions.rs":"fb4484c0e9fcbea9ec7265f5fbd01e2b33ac022b2b17e060dce7886819d57e40","features.rs":"29f2df89716a47a7d9dbd33b1ff4da61645e729a92772530bed3a04163afc08f","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":"ed161d9f60306ad42af2ae70ff0eb686a36e2fb30eb94918b5e5f19af80e1db7","ir/analysis/sizedness.rs":"f0a9302f3c6ad694d76cfab11dbaf5392ecaf7f04bc7b211a5a003776b963896","ir/analysis/template_params.rs":"3ff27e2198e292a348876aa1faba39cc4b1870a24a7e173feac0b3c592001e13","ir/annotations.rs":"5ed03d025862d0d21852a76c86a993772624e123fdc3752415d588a0b4e643ab","ir/comment.rs":"4c9c20b5a3da086211e92adec0822831dbc0b7ebee98fee313edcae9ae8d55ec","ir/comp.rs":"fb32715ed8fc14bee51c344a41c1f7a8a802d4a6dceb2775034ea33a88670df7","ir/context.rs":"a1c591532b44bc532c18f8e5afa0ba4aa94934db2de23f2c71dbdfcb384fd333","ir/derive.rs":"c21e470bb0091f20bfa366110880d48984fc3cf7071fdf36eccfa64f3eca231c","ir/dot.rs":"75bdfd83d9e754ba726f6a5529ba1d9ff46f5bf49bf237452985eb008fed0854","ir/enum_ty.rs":"f4bfa6d18ba4977fb66f5d5e4a7674eded93b761404d91cdd6fdd50029db455a","ir/function.rs":"8acde871c277069d94c96cf4dea68497b2d6253e66014db9655dd825906b19cc","ir/int.rs":"601736f0ad0949e40684a9ce89bafbfefa71743df6ee6c342e44888a0f141ae0","ir/item.rs":"2d3d25c9877d3b969cba5d49696ccabdd382f38c1ab28ac32b79021008a66b19","ir/item_kind.rs":"33e21104b0bb824a696a52cd520567ae56158010a1df14777e68ac5f8ad7e8fa","ir/layout.rs":"8fbafc0eeee17abb703a18613be1066e38838d4b67f5916f714bf545e545bc1a","ir/mod.rs":"a3b98b1732111a980a795c72eaf1e09101e842ef2de76b4f2d4a7857f8d4cee4","ir/module.rs":"b2961ffa4acb0c19f084c5db084b8a17bda7158066782a73b80ee7d838789bf9","ir/objc.rs":"126c688946a7157eff8fd3a22125c6250d0a2c63ee766662b50ea241f7cd3493","ir/template.rs":"3f59efa9670ca90215d4374be869c9dbecb98a8d1041e7c6e4ab69a62bb982c2","ir/traversal.rs":"a4ec73d3533d4b93386153baf6a2ca846ee51228c76ed51105229d3ddcd74466","ir/ty.rs":"69300e7f8255627da1a3fe641ffe7215f7889d4b3c0fcbf7c366b78e3849d5cb","ir/var.rs":"40d18226706de0ee5f002d0b5617dbcba35de0605edd531c75e3a76d000f0f4f","lib.rs":"c3aff945fe2e3d498682e605a9abdd748fee71b78885d3699f4e6397b082ca87","log_stubs.rs":"9f974e041e35c8c7e29985d27ae5cd0858d68f8676d1dc005c6388d7d011707f","options/as_args.rs":"76efa4e662cc7f89ef1c1fe089d03a3c1c019ffe2aa0a30a4d49ed41e987d1c7","options/helpers.rs":"f4a7681e29b2dcc3be9249478c499d685b9e29d4f4ca4ae8bff7a91668cd8f15","options/mod.rs":"9f3e982fe8e3723bfceda5905a144d6717210bc872c4350bd9d8873496eba2a2","parse.rs":"fce3616e0464aa7414888e5d00d4df18c83bb3034a1c807d36a07a3c586e475a","regex_set.rs":"b411d64bc803947a3f69dcedcd7d03716aacbc7b1c5148b82de1cc469d9336d9","time.rs":"8efe317e7c6b5ba8e0865ce7b49ca775ee8a02590f4241ef62f647fa3c22b68e"},"package":"726e4313eb6ec35d2730258ad4e15b547ee75d6afaa1361a922e78e59b7d8078"} \ No newline at end of file +{"files":{"Cargo.toml":"e42a53f0727990f7c85c9faa0ba1934e51ce0f42ead43729cf25431b681a6e76","LICENSE":"c23953d9deb0a3312dbeaf6c128a657f3591acee45067612fa68405eaa4525db","README.md":"b2334e4077a9bc329516e3e0c7f89887c4f073647d95fb71b6917edf4c310ba3","build.rs":"4a9c4ac3759572e17de312a9d3f4ced3b6fd3c71811729e5a8d06bfbd1ac8f82","callbacks.rs":"cd5a1b0fc665b034d97615d0b6817cbef299dbf5276254c7e63f1c29674993ad","clang.rs":"5865e207df0c182c7433a08515cf1049d7885eb1273911cb2ea6155638b469a7","codegen/bitfield_unit.rs":"fddeaeab5859f4e82081865595b7705f5c0774d997df95fa5c655b81b9cae125","codegen/bitfield_unit_tests.rs":"9df86490de5e9d66ccea583dcb686dd440375dc1a3c3cf89a89d5de3883bf28a","codegen/dyngen.rs":"6d8bed53c6de66bc658b3186041c2b75549f49b0f0363ff18b87c8dcf2f5a05b","codegen/error.rs":"0c3d198f4866ccbbcd8b1136fc5cfd2507a9eca5ab85934af29a7e2a7d8d8c2a","codegen/helpers.rs":"0c28751565c90b4ab385ae2113cde02afa34225d85ae48fd296817aac36c5940","codegen/impl_debug.rs":"80df6136327b1ca8c7d1c2961290b5ab00b85b49b22c02f26a590bc68fb230af","codegen/impl_partialeq.rs":"db739d7ba6f5ba4033d6bf62c276f35217c20eab27230cf07dadf59e8b2f71bb","codegen/mod.rs":"d7f28d62feba79278ec2196c2fd23a9fbf28f28fcce55d209c5d8d6ea88e9673","codegen/postprocessing/merge_extern_blocks.rs":"284457a3c75e945217bab4e5a4280fef0fcc03c31e12cc5010aab87f34c0b6c7","codegen/postprocessing/mod.rs":"160a6d6701cabf2514e23570df1bd1b648c909cc27b7c583f21d98fe0c16722e","codegen/postprocessing/sort_semantically.rs":"f465d1e8cc119082eb79c164b5cd780a370821e8bf56585b287dd3b51fc4a542","codegen/serialize.rs":"c39112e01686f741eca4a89dca83a10e66c611b3d21d7c9548ba76f8c2d43a2b","codegen/struct_layout.rs":"07007251c91e0d4eb1e46535068d8c22881d248baa2e38cab96d72691927c2e4","deps.rs":"af3dd24a7808b5abf0c4ed4b10bbceb8eef32be980ff085b8a766d8f089af1a4","diagnostics.rs":"dc40cd5e9710922422c5c9420e2351f5d976e7a1d7275e4f4ce742cad9eb53f8","extra_assertions.rs":"fb4484c0e9fcbea9ec7265f5fbd01e2b33ac022b2b17e060dce7886819d57e40","features.rs":"29f2df89716a47a7d9dbd33b1ff4da61645e729a92772530bed3a04163afc08f","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":"fb32715ed8fc14bee51c344a41c1f7a8a802d4a6dceb2775034ea33a88670df7","ir/context.rs":"a1c591532b44bc532c18f8e5afa0ba4aa94934db2de23f2c71dbdfcb384fd333","ir/derive.rs":"c21e470bb0091f20bfa366110880d48984fc3cf7071fdf36eccfa64f3eca231c","ir/dot.rs":"75bdfd83d9e754ba726f6a5529ba1d9ff46f5bf49bf237452985eb008fed0854","ir/enum_ty.rs":"f4bfa6d18ba4977fb66f5d5e4a7674eded93b761404d91cdd6fdd50029db455a","ir/function.rs":"8acde871c277069d94c96cf4dea68497b2d6253e66014db9655dd825906b19cc","ir/int.rs":"601736f0ad0949e40684a9ce89bafbfefa71743df6ee6c342e44888a0f141ae0","ir/item.rs":"0a58e318959266630e7e3b94d631c8a64b9a0eeaeae5a510c345fb6c3f6b088b","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":"69300e7f8255627da1a3fe641ffe7215f7889d4b3c0fcbf7c366b78e3849d5cb","ir/var.rs":"40d18226706de0ee5f002d0b5617dbcba35de0605edd531c75e3a76d000f0f4f","lib.rs":"1c5b0c2f6e71895059a0c0bf3b9bc0d6ff1c32cf296c8547e1b63d58fe589319","log_stubs.rs":"9f974e041e35c8c7e29985d27ae5cd0858d68f8676d1dc005c6388d7d011707f","options/as_args.rs":"76efa4e662cc7f89ef1c1fe089d03a3c1c019ffe2aa0a30a4d49ed41e987d1c7","options/helpers.rs":"f4a7681e29b2dcc3be9249478c499d685b9e29d4f4ca4ae8bff7a91668cd8f15","options/mod.rs":"2df5cd073da0f5fc68707551f6c86a9795225195da8e630a7670e49d205dc05d","parse.rs":"fce3616e0464aa7414888e5d00d4df18c83bb3034a1c807d36a07a3c586e475a","regex_set.rs":"b411d64bc803947a3f69dcedcd7d03716aacbc7b1c5148b82de1cc469d9336d9","time.rs":"8efe317e7c6b5ba8e0865ce7b49ca775ee8a02590f4241ef62f647fa3c22b68e"},"package":"9ffcebc3849946a7170a05992aac39da343a90676ab392c51a4280981d6379c2"} \ No newline at end of file diff --git a/third_party/rust/bindgen/Cargo.toml b/third_party/rust/bindgen/Cargo.toml index bff6eee2d3ce..24132d62d6d0 100644 --- a/third_party/rust/bindgen/Cargo.toml +++ b/third_party/rust/bindgen/Cargo.toml @@ -13,7 +13,7 @@ edition = "2018" rust-version = "1.60.0" name = "bindgen" -version = "0.68.1" +version = "0.69.1" authors = [ "Jyun-Yan You ", "Emilio Cobos Álvarez ", @@ -41,8 +41,25 @@ repository = "https://github.com/rust-lang/rust-bindgen" features = ["experimental"] [package.metadata.release] +pre-release-hook = [ + "../node_modules/doctoc/doctoc.js", + "../CHANGELOG.md", +] release = true +[[package.metadata.release.pre-release-replacements]] +file = "../CHANGELOG.md" +replace = """ +# Unreleased +## Added +## Changed +## Removed +## Fixed +## Security + +# {{version}} ({{date}})""" +search = "# Unreleased" + [lib] name = "bindgen" path = "lib.rs" diff --git a/third_party/rust/bindgen/callbacks.rs b/third_party/rust/bindgen/callbacks.rs index a9d315dca79e..c22ba975dd31 100644 --- a/third_party/rust/bindgen/callbacks.rs +++ b/third_party/rust/bindgen/callbacks.rs @@ -99,6 +99,9 @@ pub trait ParseCallbacks: fmt::Debug { None } + /// This will be called on every header filename passed to (`Builder::header`)[`crate::Builder::header`]. + fn header_file(&self, _filename: &str) {} + /// This will be called on every file inclusion, with the full path of the included file. fn include_file(&self, _filename: &str) {} diff --git a/third_party/rust/bindgen/clang.rs b/third_party/rust/bindgen/clang.rs index db239ebc770e..3438bfa2c4af 100644 --- a/third_party/rust/bindgen/clang.rs +++ b/third_party/rust/bindgen/clang.rs @@ -1820,7 +1820,7 @@ impl TranslationUnit { let fname = CString::new(file).unwrap(); let _c_args: Vec = cmd_args .iter() - .map(|s| CString::new(s.clone().into_boxed_bytes()).unwrap()) + .map(|s| CString::new(s.as_bytes()).unwrap()) .collect(); let c_args: Vec<*const c_char> = _c_args.iter().map(|s| s.as_ptr()).collect(); diff --git a/third_party/rust/bindgen/codegen/error.rs b/third_party/rust/bindgen/codegen/error.rs index 2c9bf9768047..82e921d771c5 100644 --- a/third_party/rust/bindgen/codegen/error.rs +++ b/third_party/rust/bindgen/codegen/error.rs @@ -14,25 +14,36 @@ pub(crate) enum Error { /// Function ABI is not supported. UnsupportedAbi(&'static str), + + /// The pointer type size does not match the target's pointer size. + InvalidPointerSize { + ty_name: String, + ty_size: usize, + ptr_size: usize, + }, } impl fmt::Display for Error { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.write_str(match *self { + match self { Error::NoLayoutForOpaqueBlob => { - "Tried to generate an opaque blob, but had no layout." + "Tried to generate an opaque blob, but had no layout.".fmt(f) } Error::InstantiationOfOpaqueType => { "Instantiation of opaque template type or partial template specialization." + .fmt(f) } Error::UnsupportedAbi(abi) => { - return write!( + write!( f, "{} ABI is not supported by the configured Rust target.", abi ) } - }) + Error::InvalidPointerSize { ty_name, ty_size, ptr_size } => { + write!(f, "The {} pointer type has size {} but the current target's pointer size is {}.", ty_name, ty_size, ptr_size) + } + } } } diff --git a/third_party/rust/bindgen/codegen/mod.rs b/third_party/rust/bindgen/codegen/mod.rs index bc8e3ec7113a..8e1360634547 100644 --- a/third_party/rust/bindgen/codegen/mod.rs +++ b/third_party/rust/bindgen/codegen/mod.rs @@ -21,6 +21,7 @@ use self::struct_layout::StructLayoutTracker; use super::BindgenOptions; use crate::callbacks::{DeriveInfo, FieldInfo, TypeKind as DeriveTypeKind}; +use crate::codegen::error::Error; use crate::ir::analysis::{HasVtable, Sizedness}; use crate::ir::annotations::{ Annotations, FieldAccessorKind, FieldVisibilityKind, @@ -3923,6 +3924,16 @@ impl TryToRustTy for Type { } TypeKind::Opaque => self.try_to_opaque(ctx, item), TypeKind::Pointer(inner) | TypeKind::Reference(inner) => { + // Check that this type has the same size as the target's pointer type. + let size = self.get_layout(ctx, item).size; + if size != ctx.target_pointer_size() { + return Err(Error::InvalidPointerSize { + ty_name: self.name().unwrap_or("unknown").into(), + ty_size: size, + ptr_size: ctx.target_pointer_size(), + }); + } + let is_const = ctx.resolve_type(inner).is_const(); let inner = diff --git a/third_party/rust/bindgen/codegen/serialize.rs b/third_party/rust/bindgen/codegen/serialize.rs index 58e0882fafd7..02c46802632b 100644 --- a/third_party/rust/bindgen/codegen/serialize.rs +++ b/third_party/rust/bindgen/codegen/serialize.rs @@ -322,21 +322,26 @@ impl<'a> CSerialize<'a> for Type { } write!(writer, ")")?; - write!(writer, " (")?; - serialize_sep( - ", ", - signature.argument_types().iter(), - ctx, - writer, - |(name, type_id), ctx, buf| { - let mut stack = vec![]; - if let Some(name) = name { - stack.push(name.clone()); - } - type_id.serialize(ctx, (), &mut stack, buf) - }, - )?; - write!(writer, ")")? + let args = signature.argument_types(); + if args.is_empty() { + write!(writer, " (void)")?; + } else { + write!(writer, " (")?; + serialize_sep( + ", ", + args.iter(), + ctx, + writer, + |(name, type_id), ctx, buf| { + let mut stack = vec![]; + if let Some(name) = name { + stack.push(name.clone()); + } + type_id.serialize(ctx, (), &mut stack, buf) + }, + )?; + write!(writer, ")")? + } } TypeKind::ResolvedTypeRef(type_id) => { if self.is_const() { diff --git a/third_party/rust/bindgen/ir/analysis/mod.rs b/third_party/rust/bindgen/ir/analysis/mod.rs index 0263088a99b0..443384a48777 100644 --- a/third_party/rust/bindgen/ir/analysis/mod.rs +++ b/third_party/rust/bindgen/ir/analysis/mod.rs @@ -334,20 +334,13 @@ mod tests { // Yes, what follows is a **terribly** inefficient set union // implementation. Don't copy this code outside of this test! - let original_size = self - .reachable - .entry(node) - .or_insert_with(HashSet::default) - .len(); + let original_size = self.reachable.entry(node).or_default().len(); for sub_node in self.graph.0[&node].iter() { self.reachable.get_mut(&node).unwrap().insert(*sub_node); - let sub_reachable = self - .reachable - .entry(*sub_node) - .or_insert_with(HashSet::default) - .clone(); + let sub_reachable = + self.reachable.entry(*sub_node).or_default().clone(); for transitive in sub_reachable { self.reachable.get_mut(&node).unwrap().insert(transitive); diff --git a/third_party/rust/bindgen/ir/item.rs b/third_party/rust/bindgen/ir/item.rs index 4abca5c49bb6..0556452bfae1 100644 --- a/third_party/rust/bindgen/ir/item.rs +++ b/third_party/rust/bindgen/ir/item.rs @@ -98,13 +98,13 @@ pub(crate) trait ItemAncestors { fn ancestors<'a>(&self, ctx: &'a BindgenContext) -> ItemAncestorsIter<'a>; } -#[cfg(__testing_only_extra_assertions)] +#[cfg(feature = "__testing_only_extra_assertions")] type DebugOnlyItemSet = ItemSet; -#[cfg(not(__testing_only_extra_assertions))] +#[cfg(not(feature = "__testing_only_extra_assertions"))] struct DebugOnlyItemSet; -#[cfg(not(__testing_only_extra_assertions))] +#[cfg(not(feature = "__testing_only_extra_assertions"))] impl DebugOnlyItemSet { fn new() -> Self { DebugOnlyItemSet diff --git a/third_party/rust/bindgen/ir/objc.rs b/third_party/rust/bindgen/ir/objc.rs index 2ebf38b8ca52..93d8b3bfdf44 100644 --- a/third_party/rust/bindgen/ir/objc.rs +++ b/third_party/rust/bindgen/ir/objc.rs @@ -253,11 +253,24 @@ impl ObjCMethod { let split_name: Vec> = self .name .split(':') - .map(|name| { + .enumerate() + .map(|(idx, name)| { if name.is_empty() { None + } else if idx == 0 { + // Try to parse the method name as an identifier. Having a keyword is ok + // unless it is `crate`, `self`, `super` or `Self`, so we try to add the `_` + // suffix to it and parse it. + if ["crate", "self", "super", "Self"].contains(&name) { + Some(Ident::new( + &format!("{}_", name), + Span::call_site(), + )) + } else { + Some(Ident::new(name, Span::call_site())) + } } else { - // Try to parse the current name as an identifier. This might fail if the name + // Try to parse the current joining name as an identifier. This might fail if the name // is a keyword, so we try to "r#" to it and parse again, this could also fail // if the name is `crate`, `self`, `super` or `Self`, so we try to add the `_` // suffix to it and parse again. If this also fails, we panic with the first diff --git a/third_party/rust/bindgen/lib.rs b/third_party/rust/bindgen/lib.rs index 05f95bf8f5f1..54348e223259 100644 --- a/third_party/rust/bindgen/lib.rs +++ b/third_party/rust/bindgen/lib.rs @@ -325,6 +325,11 @@ impl Builder { .map(String::into_boxed_str), ); + for header in &self.options.input_headers { + self.options + .for_each_callback(|cb| cb.header_file(header.as_ref())); + } + // Transform input headers to arguments on the clang command line. self.options.clang_args.extend( self.options.input_headers @@ -566,6 +571,10 @@ impl BindgenOptions { .collect() } + fn for_each_callback(&self, f: impl Fn(&dyn callbacks::ParseCallbacks)) { + self.parse_callbacks.iter().for_each(|cb| f(cb.as_ref())); + } + fn process_comment(&self, comment: &str) -> String { let comment = comment::preprocess(comment); self.parse_callbacks @@ -1232,9 +1241,50 @@ fn get_target_dependent_env_var( /// .generate(); /// ``` #[derive(Debug)] -pub struct CargoCallbacks; +pub struct CargoCallbacks { + rerun_on_header_files: bool, +} + +/// Create a new `CargoCallbacks` value with [`CargoCallbacks::rerun_on_header_files`] disabled. +/// +/// This constructor has been deprecated in favor of [`CargoCallbacks::new`] where +/// [`CargoCallbacks::rerun_on_header_files`] is enabled by default. +#[deprecated = "Use `CargoCallbacks::new()` instead. Please, check the documentation for further information."] +pub const CargoCallbacks: CargoCallbacks = CargoCallbacks { + rerun_on_header_files: false, +}; + +impl CargoCallbacks { + /// Create a new `CargoCallbacks` value. + pub fn new() -> Self { + Self { + rerun_on_header_files: true, + } + } + + /// Whether Cargo should re-run the build script if any of the input header files has changed. + /// + /// This option is enabled by default unless the deprecated [`const@CargoCallbacks`] + /// constructor is used. + pub fn rerun_on_header_files(mut self, doit: bool) -> Self { + self.rerun_on_header_files = doit; + self + } +} + +impl Default for CargoCallbacks { + fn default() -> Self { + Self::new() + } +} impl callbacks::ParseCallbacks for CargoCallbacks { + fn header_file(&self, filename: &str) { + if self.rerun_on_header_files { + println!("cargo:rerun-if-changed={}", filename); + } + } + fn include_file(&self, filename: &str) { println!("cargo:rerun-if-changed={}", filename); } diff --git a/third_party/rust/bindgen/options/mod.rs b/third_party/rust/bindgen/options/mod.rs index 558f5343a291..3a82bcf397c8 100644 --- a/third_party/rust/bindgen/options/mod.rs +++ b/third_party/rust/bindgen/options/mod.rs @@ -1374,7 +1374,7 @@ options! { /// or `-fno-inline-functions` if you are responsible of compiling the library to make /// them callable. #[cfg_attr( - features = "experimental", + feature = "experimental", doc = "\nCheck the [`Builder::wrap_static_fns`] method for an alternative." )] pub fn generate_inline_functions(mut self, doit: bool) -> Self { diff --git a/third_party/rust/coreaudio-sys/.cargo-checksum.json b/third_party/rust/coreaudio-sys/.cargo-checksum.json index 692409faaf34..51eec39c9652 100644 --- a/third_party/rust/coreaudio-sys/.cargo-checksum.json +++ b/third_party/rust/coreaudio-sys/.cargo-checksum.json @@ -1 +1 @@ -{"files":{"Cargo.toml":"17c9796d79b692e07056a6f6b45fcb8160c98385d9dd46c3a3d67a02865b3d33","LICENSE":"7576269ea71f767b99297934c0b2367532690f8c4badc695edf8e04ab6a1e545","README.md":"a8adeaf1947035175b890109b36604ac3676f887911b5b8debd216689c0b65bd","build.rs":"e3d45b1a17b655996a09b1d8f5f4dabb8c574e5b803814a13494f56dfce32f4e","src/lib.rs":"22c9dbbb1dc38d6f77b9362e806a7ee59a8ca1aa9b2c9344d1a487a91287ed59"},"package":"d8478e5bdad14dce236b9898ea002eabfa87cbe14f0aa538dbe3b6a4bec4332d"} \ No newline at end of file +{"files":{"Cargo.toml":"21b0b00002a9b66a31357ddc5ac4c0f2a1702c85f6303cc7309e9dc7ffcaefd8","LICENSE":"7576269ea71f767b99297934c0b2367532690f8c4badc695edf8e04ab6a1e545","README.md":"a8adeaf1947035175b890109b36604ac3676f887911b5b8debd216689c0b65bd","build.rs":"d109f0a043b4f62bee52674888a52595f9b0dc37345815905a12ad0723ab8de5","src/lib.rs":"22c9dbbb1dc38d6f77b9362e806a7ee59a8ca1aa9b2c9344d1a487a91287ed59"},"package":"f3120ebb80a9de008e638ad833d4127d50ea3d3a960ea23ea69bc66d9358a028"} \ No newline at end of file diff --git a/third_party/rust/coreaudio-sys/Cargo.toml b/third_party/rust/coreaudio-sys/Cargo.toml index 7b830353c193..ee12ab1abbae 100644 --- a/third_party/rust/coreaudio-sys/Cargo.toml +++ b/third_party/rust/coreaudio-sys/Cargo.toml @@ -11,7 +11,7 @@ [package] name = "coreaudio-sys" -version = "0.2.13" +version = "0.2.14" authors = ["Mitchell Nordine "] build = "build.rs" description = "Bindings for Apple's CoreAudio frameworks generated via rust-bindgen" @@ -36,7 +36,7 @@ targets = [ ] [build-dependencies.bindgen] -version = "0.68" +version = "0.69" features = ["runtime"] default-features = false @@ -52,4 +52,5 @@ default = [ "open_al", "core_midi", ] +io_kit_audio = [] open_al = [] diff --git a/third_party/rust/coreaudio-sys/build.rs b/third_party/rust/coreaudio-sys/build.rs index 81cfbcc855a2..7083f9c318fb 100644 --- a/third_party/rust/coreaudio-sys/build.rs +++ b/third_party/rust/coreaudio-sys/build.rs @@ -86,6 +86,13 @@ fn build(sdk_path: Option<&str>, target: &str) { } } + #[cfg(feature = "io_kit_audio")] + { + assert!(target.contains("apple-darwin")); + println!("cargo:rustc-link-lib=framework=IOKit"); + headers.push("IOKit/audio/IOAudioTypes.h"); + } + #[cfg(feature = "open_al")] { println!("cargo:rustc-link-lib=framework=OpenAL"); diff --git a/tools/profiler/rust-api/Cargo.toml b/tools/profiler/rust-api/Cargo.toml index 7931b6eef5a6..7efc739c7814 100644 --- a/tools/profiler/rust-api/Cargo.toml +++ b/tools/profiler/rust-api/Cargo.toml @@ -14,7 +14,7 @@ mozbuild = "0.1" [build-dependencies] lazy_static = "1" -bindgen = {version = "0.68", default-features = false} +bindgen = {version = "0.69", default-features = false} mozbuild = "0.1" [features]