From d583c3edcb939b4008dde9438e347d054fe9de65 Mon Sep 17 00:00:00 2001 From: Bill Nguyen Date: Wed, 11 Mar 2026 12:42:05 +1100 Subject: [PATCH 1/3] example/rust: fix bitrot Signed-off-by: Bill Nguyen --- Cargo.toml | 3 + example/rust/Cargo.lock | 327 +++++++----------- example/rust/Cargo.toml | 2 +- example/rust/Makefile | 5 +- example/rust/rust-toolchain.toml | 2 +- .../aarch64-sel4-microkit-minimal.json | 2 +- .../riscv64gc-sel4-microkit-minimal.json | 2 +- .../targets/x86_64-sel4-microkit-minimal.json | 33 ++ 8 files changed, 163 insertions(+), 213 deletions(-) create mode 100644 example/rust/support/targets/x86_64-sel4-microkit-minimal.json diff --git a/Cargo.toml b/Cargo.toml index 4d1a48a2a..a9eb05f98 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,6 +10,9 @@ members = [ "tool/microkit", "initialiser", ] +exclude = [ + "example/rust" +] [workspace.dependencies.sel4-capdl-initializer] git = "https://github.com/au-ts/rust-seL4" diff --git a/example/rust/Cargo.lock b/example/rust/Cargo.lock index 3469eabed..e75ba2704 100644 --- a/example/rust/Cargo.lock +++ b/example/rust/Cargo.lock @@ -1,27 +1,21 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "aho-corasick" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" dependencies = [ "memchr", ] -[[package]] -name = "autocfg" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" - [[package]] name = "bindgen" -version = "0.70.1" +version = "0.72.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f" +checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" dependencies = [ "bitflags", "cexpr", @@ -39,9 +33,9 @@ dependencies = [ [[package]] name = "bitflags" -version = "2.9.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" +checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" [[package]] name = "block-buffer" @@ -63,9 +57,9 @@ dependencies = [ [[package]] name = "cfg-if" -version = "1.0.0" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "clang-sys" @@ -89,9 +83,9 @@ dependencies = [ [[package]] name = "crypto-common" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" dependencies = [ "generic-array", "typenum", @@ -109,9 +103,9 @@ dependencies = [ [[package]] name = "dlmalloc" -version = "0.2.8" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cff88b751e7a276c4ab0e222c3f355190adc6dde9ce39c851db39da34990df7" +checksum = "6738d2e996274e499bc7b0d693c858b7720b9cd2543a0643a3087e6cb0a4fa16" dependencies = [ "cfg-if", "libc", @@ -142,15 +136,15 @@ dependencies = [ [[package]] name = "gimli" -version = "0.31.1" +version = "0.32.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" +checksum = "e629b9b98ef3dd8afe6ca2bd0f89306cec16d43d907889945bc5d6687f2f13c7" [[package]] name = "glob" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" +checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" [[package]] name = "hello" @@ -170,53 +164,46 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.15" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" - -[[package]] -name = "lazy_static" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" +checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" [[package]] name = "libc" -version = "0.2.171" +version = "0.2.183" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" +checksum = "b5b646652bf6661599e1da8901b3b9522896f01e736bad5f723fe7a3a27f899d" [[package]] name = "libloading" -version = "0.8.6" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" +checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" dependencies = [ "cfg-if", - "windows-targets", + "windows-link", ] [[package]] name = "lock_api" -version = "0.4.12" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" dependencies = [ - "autocfg", "scopeguard", ] [[package]] name = "log" -version = "0.4.27" +version = "0.4.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" +checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" [[package]] name = "memchr" -version = "2.7.4" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" +checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" [[package]] name = "minimal-lexical" @@ -234,12 +221,6 @@ dependencies = [ "minimal-lexical", ] -[[package]] -name = "once_cell" -version = "1.21.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2806eaa3524762875e21c3dcd057bc4b7bfa01ce4da8d46be1cd43649e1cc6b" - [[package]] name = "one-shot-mutex" version = "0.2.1" @@ -251,20 +232,19 @@ dependencies = [ [[package]] name = "pest" -version = "2.8.0" +version = "2.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "198db74531d58c70a361c42201efde7e2591e976d518caf7662a47dc5720e7b6" +checksum = "e0848c601009d37dfa3430c4666e147e49cdcf1b92ecd3e63657d8a5f19da662" dependencies = [ "memchr", - "thiserror", "ucd-trie", ] [[package]] name = "pest_derive" -version = "2.8.0" +version = "2.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d725d9cfd79e87dccc9341a2ef39d1b6f6353d68c4b33c177febbe1a402c97c5" +checksum = "11f486f1ea21e6c10ed15d5a7c77165d0ee443402f0780849d1768e7d9d6fe77" dependencies = [ "pest", "pest_generator", @@ -272,9 +252,9 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.8.0" +version = "2.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db7d01726be8ab66ab32f9df467ae8b1148906685bbe75c82d1e65d7f5b3f841" +checksum = "8040c4647b13b210a963c1ed407c1ff4fdfa01c31d6d2a098218702e6664f94f" dependencies = [ "pest", "pest_meta", @@ -285,20 +265,19 @@ dependencies = [ [[package]] name = "pest_meta" -version = "2.8.0" +version = "2.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f9f832470494906d1fca5329f8ab5791cc60beb230c74815dff541cbd2b5ca0" +checksum = "89815c69d36021a140146f26659a81d6c2afa33d216d736dd4be5381a7362220" dependencies = [ - "once_cell", "pest", "sha2", ] [[package]] name = "prettyplease" -version = "0.2.31" +version = "0.2.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5316f57387668042f561aae71480de936257848f9c43ce528e311d89a07cadeb" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2", "syn", @@ -306,27 +285,27 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.94" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.40" +version = "1.0.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" dependencies = [ "proc-macro2", ] [[package]] name = "regex" -version = "1.11.1" +version = "1.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" dependencies = [ "aho-corasick", "memchr", @@ -336,9 +315,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.9" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" dependencies = [ "aho-corasick", "memchr", @@ -347,27 +326,21 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.5" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" +checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" [[package]] name = "rustc-hash" -version = "1.1.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" +checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" [[package]] name = "rustversion" -version = "1.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" - -[[package]] -name = "ryu" -version = "1.0.20" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "scopeguard" @@ -378,7 +351,7 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "sel4" version = "0.1.0" -source = "git+https://github.com/seL4/rust-sel4#ac5627ba7a67e71f33a8eb1c5d05de09bf94ef5e" +source = "git+https://github.com/seL4/rust-sel4?rev=3059c2d236bf56b066936dd48d8966255e172c3b#3059c2d236bf56b066936dd48d8966255e172c3b" dependencies = [ "cfg-if", "sel4-config", @@ -388,7 +361,7 @@ dependencies = [ [[package]] name = "sel4-alloca" version = "0.1.0" -source = "git+https://github.com/seL4/rust-sel4#ac5627ba7a67e71f33a8eb1c5d05de09bf94ef5e" +source = "git+https://github.com/seL4/rust-sel4?rev=3059c2d236bf56b066936dd48d8966255e172c3b#3059c2d236bf56b066936dd48d8966255e172c3b" dependencies = [ "cfg-if", ] @@ -396,7 +369,7 @@ dependencies = [ [[package]] name = "sel4-bitfield-ops" version = "0.1.0" -source = "git+https://github.com/seL4/rust-sel4#ac5627ba7a67e71f33a8eb1c5d05de09bf94ef5e" +source = "git+https://github.com/seL4/rust-sel4?rev=3059c2d236bf56b066936dd48d8966255e172c3b#3059c2d236bf56b066936dd48d8966255e172c3b" dependencies = [ "rustversion", ] @@ -404,12 +377,12 @@ dependencies = [ [[package]] name = "sel4-build-env" version = "0.1.0" -source = "git+https://github.com/seL4/rust-sel4#ac5627ba7a67e71f33a8eb1c5d05de09bf94ef5e" +source = "git+https://github.com/seL4/rust-sel4?rev=3059c2d236bf56b066936dd48d8966255e172c3b#3059c2d236bf56b066936dd48d8966255e172c3b" [[package]] name = "sel4-config" version = "0.1.0" -source = "git+https://github.com/seL4/rust-sel4#ac5627ba7a67e71f33a8eb1c5d05de09bf94ef5e" +source = "git+https://github.com/seL4/rust-sel4?rev=3059c2d236bf56b066936dd48d8966255e172c3b#3059c2d236bf56b066936dd48d8966255e172c3b" dependencies = [ "prettyplease", "proc-macro2", @@ -423,9 +396,8 @@ dependencies = [ [[package]] name = "sel4-config-data" version = "0.1.0" -source = "git+https://github.com/seL4/rust-sel4#ac5627ba7a67e71f33a8eb1c5d05de09bf94ef5e" +source = "git+https://github.com/seL4/rust-sel4?rev=3059c2d236bf56b066936dd48d8966255e172c3b#3059c2d236bf56b066936dd48d8966255e172c3b" dependencies = [ - "lazy_static", "sel4-build-env", "sel4-config-types", "serde_json", @@ -434,7 +406,7 @@ dependencies = [ [[package]] name = "sel4-config-macros" version = "0.1.0" -source = "git+https://github.com/seL4/rust-sel4#ac5627ba7a67e71f33a8eb1c5d05de09bf94ef5e" +source = "git+https://github.com/seL4/rust-sel4?rev=3059c2d236bf56b066936dd48d8966255e172c3b#3059c2d236bf56b066936dd48d8966255e172c3b" dependencies = [ "fallible-iterator", "proc-macro2", @@ -447,7 +419,7 @@ dependencies = [ [[package]] name = "sel4-config-types" version = "0.1.0" -source = "git+https://github.com/seL4/rust-sel4#ac5627ba7a67e71f33a8eb1c5d05de09bf94ef5e" +source = "git+https://github.com/seL4/rust-sel4?rev=3059c2d236bf56b066936dd48d8966255e172c3b#3059c2d236bf56b066936dd48d8966255e172c3b" dependencies = [ "serde", ] @@ -455,12 +427,12 @@ dependencies = [ [[package]] name = "sel4-ctors-dtors" version = "0.1.0" -source = "git+https://github.com/seL4/rust-sel4#ac5627ba7a67e71f33a8eb1c5d05de09bf94ef5e" +source = "git+https://github.com/seL4/rust-sel4?rev=3059c2d236bf56b066936dd48d8966255e172c3b#3059c2d236bf56b066936dd48d8966255e172c3b" [[package]] name = "sel4-dlmalloc" version = "0.1.0" -source = "git+https://github.com/seL4/rust-sel4#ac5627ba7a67e71f33a8eb1c5d05de09bf94ef5e" +source = "git+https://github.com/seL4/rust-sel4?rev=3059c2d236bf56b066936dd48d8966255e172c3b#3059c2d236bf56b066936dd48d8966255e172c3b" dependencies = [ "dlmalloc", "lock_api", @@ -469,22 +441,22 @@ dependencies = [ [[package]] name = "sel4-elf-header" version = "0.1.0" -source = "git+https://github.com/seL4/rust-sel4#ac5627ba7a67e71f33a8eb1c5d05de09bf94ef5e" +source = "git+https://github.com/seL4/rust-sel4?rev=3059c2d236bf56b066936dd48d8966255e172c3b#3059c2d236bf56b066936dd48d8966255e172c3b" [[package]] name = "sel4-immediate-sync-once-cell" version = "0.1.0" -source = "git+https://github.com/seL4/rust-sel4#ac5627ba7a67e71f33a8eb1c5d05de09bf94ef5e" +source = "git+https://github.com/seL4/rust-sel4?rev=3059c2d236bf56b066936dd48d8966255e172c3b#3059c2d236bf56b066936dd48d8966255e172c3b" [[package]] name = "sel4-immutable-cell" version = "0.1.0" -source = "git+https://github.com/seL4/rust-sel4#ac5627ba7a67e71f33a8eb1c5d05de09bf94ef5e" +source = "git+https://github.com/seL4/rust-sel4?rev=3059c2d236bf56b066936dd48d8966255e172c3b#3059c2d236bf56b066936dd48d8966255e172c3b" [[package]] name = "sel4-initialize-tls" version = "0.1.0" -source = "git+https://github.com/seL4/rust-sel4#ac5627ba7a67e71f33a8eb1c5d05de09bf94ef5e" +source = "git+https://github.com/seL4/rust-sel4?rev=3059c2d236bf56b066936dd48d8966255e172c3b#3059c2d236bf56b066936dd48d8966255e172c3b" dependencies = [ "cfg-if", "sel4-alloca", @@ -493,7 +465,7 @@ dependencies = [ [[package]] name = "sel4-microkit" version = "0.1.0" -source = "git+https://github.com/seL4/rust-sel4#ac5627ba7a67e71f33a8eb1c5d05de09bf94ef5e" +source = "git+https://github.com/seL4/rust-sel4?rev=3059c2d236bf56b066936dd48d8966255e172c3b#3059c2d236bf56b066936dd48d8966255e172c3b" dependencies = [ "cfg-if", "one-shot-mutex", @@ -510,7 +482,7 @@ dependencies = [ [[package]] name = "sel4-microkit-base" version = "0.1.0" -source = "git+https://github.com/seL4/rust-sel4#ac5627ba7a67e71f33a8eb1c5d05de09bf94ef5e" +source = "git+https://github.com/seL4/rust-sel4?rev=3059c2d236bf56b066936dd48d8966255e172c3b#3059c2d236bf56b066936dd48d8966255e172c3b" dependencies = [ "sel4", "sel4-immutable-cell", @@ -519,7 +491,7 @@ dependencies = [ [[package]] name = "sel4-microkit-macros" version = "0.1.0" -source = "git+https://github.com/seL4/rust-sel4#ac5627ba7a67e71f33a8eb1c5d05de09bf94ef5e" +source = "git+https://github.com/seL4/rust-sel4?rev=3059c2d236bf56b066936dd48d8966255e172c3b#3059c2d236bf56b066936dd48d8966255e172c3b" dependencies = [ "proc-macro2", "quote", @@ -529,7 +501,7 @@ dependencies = [ [[package]] name = "sel4-panicking" version = "0.1.0" -source = "git+https://github.com/seL4/rust-sel4#ac5627ba7a67e71f33a8eb1c5d05de09bf94ef5e" +source = "git+https://github.com/seL4/rust-sel4?rev=3059c2d236bf56b066936dd48d8966255e172c3b#3059c2d236bf56b066936dd48d8966255e172c3b" dependencies = [ "cfg-if", "sel4-immediate-sync-once-cell", @@ -540,12 +512,12 @@ dependencies = [ [[package]] name = "sel4-panicking-env" version = "0.1.0" -source = "git+https://github.com/seL4/rust-sel4#ac5627ba7a67e71f33a8eb1c5d05de09bf94ef5e" +source = "git+https://github.com/seL4/rust-sel4?rev=3059c2d236bf56b066936dd48d8966255e172c3b#3059c2d236bf56b066936dd48d8966255e172c3b" [[package]] name = "sel4-runtime-common" version = "0.1.0" -source = "git+https://github.com/seL4/rust-sel4#ac5627ba7a67e71f33a8eb1c5d05de09bf94ef5e" +source = "git+https://github.com/seL4/rust-sel4?rev=3059c2d236bf56b066936dd48d8966255e172c3b#3059c2d236bf56b066936dd48d8966255e172c3b" dependencies = [ "cfg-if", "sel4", @@ -560,12 +532,12 @@ dependencies = [ [[package]] name = "sel4-stack" version = "0.1.0" -source = "git+https://github.com/seL4/rust-sel4#ac5627ba7a67e71f33a8eb1c5d05de09bf94ef5e" +source = "git+https://github.com/seL4/rust-sel4?rev=3059c2d236bf56b066936dd48d8966255e172c3b#3059c2d236bf56b066936dd48d8966255e172c3b" [[package]] name = "sel4-sys" version = "0.1.0" -source = "git+https://github.com/seL4/rust-sel4#ac5627ba7a67e71f33a8eb1c5d05de09bf94ef5e" +source = "git+https://github.com/seL4/rust-sel4?rev=3059c2d236bf56b066936dd48d8966255e172c3b#3059c2d236bf56b066936dd48d8966255e172c3b" dependencies = [ "bindgen", "glob", @@ -586,18 +558,28 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.219" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.219" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", @@ -606,21 +588,22 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.140" +version = "1.0.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" +checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" dependencies = [ "itoa", "memchr", - "ryu", "serde", + "serde_core", + "zmij", ] [[package]] name = "sha2" -version = "0.10.8" +version = "0.10.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", "cpufeatures", @@ -635,40 +618,20 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "syn" -version = "2.0.100" +version = "2.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] -[[package]] -name = "thiserror" -version = "2.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "2.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "typenum" -version = "1.18.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" +checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" [[package]] name = "ucd-trie" @@ -678,15 +641,15 @@ checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" [[package]] name = "unicode-ident" -version = "1.0.18" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" [[package]] name = "unwinding" -version = "0.2.5" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51f06a05848f650946acef3bf525fe96612226b61f74ae23ffa4e98bfbb8ab3c" +checksum = "60612c845ef41699f39dc8c5391f252942c0a88b7d15da672eff0d14101bbd6d" dependencies = [ "gimli", ] @@ -698,83 +661,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] -name = "windows-sys" -version = "0.59.0" +name = "windows-link" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets", -] +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" [[package]] -name = "windows-targets" -version = "0.52.6" +name = "windows-sys" +version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_gnullvm", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "windows-link", ] -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - [[package]] name = "xml-rs" -version = "0.8.25" +version = "0.8.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5b940ebc25896e71dd073bad2dbaa2abfe97b0a391415e22ad1326d9c54e3c4" +checksum = "3ae8337f8a065cfc972643663ea4279e04e7256de865aa66fe25cec5fb912d3f" [[package]] name = "xmltree" @@ -784,3 +689,9 @@ checksum = "b619f8c85654798007fb10afa5125590b43b088c225a25fc2fec100a9fad0fc6" dependencies = [ "xml-rs", ] + +[[package]] +name = "zmij" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" diff --git a/example/rust/Cargo.toml b/example/rust/Cargo.toml index ffb760ac5..5acd33fe7 100644 --- a/example/rust/Cargo.toml +++ b/example/rust/Cargo.toml @@ -15,4 +15,4 @@ name = "hello" path = "hello.rs" [dependencies] -sel4-microkit = { git = "https://github.com/seL4/rust-sel4" } +sel4-microkit = { git = "https://github.com/seL4/rust-sel4", rev = "3059c2d236bf56b066936dd48d8966255e172c3b" } diff --git a/example/rust/Makefile b/example/rust/Makefile index 8bbf47290..c6887d14d 100644 --- a/example/rust/Makefile +++ b/example/rust/Makefile @@ -42,6 +42,8 @@ ifeq ($(ARCH),aarch64) RUST_TARGET := aarch64-sel4-microkit-minimal else ifeq ($(ARCH),riscv64) RUST_TARGET := riscv64gc-sel4-microkit-minimal +else ifeq ($(ARCH),x86_64) + RUST_TARGET := x86_64-sel4-microkit-minimal else $(error Unsupported ARCH) endif @@ -54,12 +56,13 @@ $(crate): $(crate).intermediate .INTERMDIATE: $(crate).intermediate $(crate).intermediate: + RUSTFLAGS=-Zunstable-options \ SEL4_INCLUDE_DIRS=$(abspath $(SEL4_INCLUDE_DIRS)) \ cargo build \ -Z build-std=core,alloc,compiler_builtins \ -Z build-std-features=compiler-builtins-mem \ --target-dir $(BUILD_DIR)/target \ - --out-dir $(BUILD_DIR) \ + --artifact-dir $(BUILD_DIR) \ --target $(RUST_TARGET) \ --release \ -p $(1) diff --git a/example/rust/rust-toolchain.toml b/example/rust/rust-toolchain.toml index 7a0e2ad14..e0b00f8b8 100644 --- a/example/rust/rust-toolchain.toml +++ b/example/rust/rust-toolchain.toml @@ -5,5 +5,5 @@ # [toolchain] -channel = "nightly-2025-02-26" +channel = "nightly-2026-03-05" components = [ "rustfmt", "rust-src", "rustc-dev", "llvm-tools-preview" ] diff --git a/example/rust/support/targets/aarch64-sel4-microkit-minimal.json b/example/rust/support/targets/aarch64-sel4-microkit-minimal.json index 322a1359d..1cc21d2d5 100644 --- a/example/rust/support/targets/aarch64-sel4-microkit-minimal.json +++ b/example/rust/support/targets/aarch64-sel4-microkit-minimal.json @@ -31,5 +31,5 @@ "kcfi", "kernel-address" ], - "target-pointer-width": "64" + "target-pointer-width": 64 } diff --git a/example/rust/support/targets/riscv64gc-sel4-microkit-minimal.json b/example/rust/support/targets/riscv64gc-sel4-microkit-minimal.json index 0e0e9ddeb..cd077a5c2 100644 --- a/example/rust/support/targets/riscv64gc-sel4-microkit-minimal.json +++ b/example/rust/support/targets/riscv64gc-sel4-microkit-minimal.json @@ -25,5 +25,5 @@ "shadow-call-stack", "kernel-address" ], - "target-pointer-width": "64" + "target-pointer-width": 64 } diff --git a/example/rust/support/targets/x86_64-sel4-microkit-minimal.json b/example/rust/support/targets/x86_64-sel4-microkit-minimal.json new file mode 100644 index 000000000..fc898473e --- /dev/null +++ b/example/rust/support/targets/x86_64-sel4-microkit-minimal.json @@ -0,0 +1,33 @@ +{ + "arch": "x86_64", + "code-model": "small", + "cpu": "x86-64", + "crt-objects-fallback": "false", + "data-layout": "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", + "disable-redzone": true, + "exe-suffix": ".elf", + "features": "-mmx,-sse,-sse2,-sse3,-ssse3,-sse4.1,-sse4.2,-avx,-avx2,+soft-float", + "link-script": "__sel4_ipc_buffer_obj = (__ehdr_start & ~(4096 - 1)) - 4096;", + "linker": "rust-lld", + "linker-flavor": "gnu-lld", + "llvm-target": "x86_64-unknown-none-elf", + "max-atomic-width": 64, + "metadata": { + "description": null, + "host_tools": null, + "std": null, + "tier": null + }, + "panic-strategy": "abort", + "plt-by-default": false, + "relro-level": "full", + "rustc-abi": "x86-softfloat", + "stack-probes": { + "kind": "inline" + }, + "supported-sanitizers": [ + "kcfi", + "kernel-address" + ], + "target-pointer-width": 64 +} From 9d88ae79421d79a46e51898fd3e094db85300012 Mon Sep 17 00:00:00 2001 From: Bill Nguyen Date: Wed, 11 Mar 2026 12:42:17 +1100 Subject: [PATCH 2/3] example/hierarchy: add x86_64 support Signed-off-by: Bill Nguyen --- example/hierarchy/Makefile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/example/hierarchy/Makefile b/example/hierarchy/Makefile index b117946b3..c20c9037f 100644 --- a/example/hierarchy/Makefile +++ b/example/hierarchy/Makefile @@ -29,6 +29,9 @@ ifeq ($(ARCH),aarch64) else ifeq ($(ARCH),riscv64) TARGET_TRIPLE := riscv64-unknown-elf CFLAGS_ARCH := -march=rv64imafdc_zicsr_zifencei -mabi=lp64d +else ifeq ($(ARCH),x86_64) + TARGET_TRIPLE := x86_64-linux-gnu + CFLAGS_ARCH := -march=x86-64 -mtune=generic else $(error Unsupported ARCH) endif From ba2fc81e621ee2039751be2d749d768a713988b1 Mon Sep 17 00:00:00 2001 From: Bill Nguyen Date: Wed, 11 Mar 2026 12:42:33 +1100 Subject: [PATCH 3/3] example/passive_server: add x86_64 support Signed-off-by: Bill Nguyen --- example/passive_server/Makefile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/example/passive_server/Makefile b/example/passive_server/Makefile index 6f8a3d024..1be6b9be2 100644 --- a/example/passive_server/Makefile +++ b/example/passive_server/Makefile @@ -29,6 +29,9 @@ ifeq ($(ARCH),aarch64) else ifeq ($(ARCH),riscv64) TARGET_TRIPLE := riscv64-unknown-elf CFLAGS_ARCH := -march=rv64imafdc_zicsr_zifencei -mabi=lp64d +else ifeq ($(ARCH),x86_64) + TARGET_TRIPLE := x86_64-linux-gnu + CFLAGS_ARCH := -march=x86-64 -mtune=generic else $(error Unsupported ARCH) endif