From 77ea09a74fcb1650f61ab66c25207036b843b7a0 Mon Sep 17 00:00:00 2001 From: Kevin Heavey Date: Thu, 8 Aug 2024 20:18:12 +0400 Subject: [PATCH] Only run frozen-abi build script when needed (#2443) * add cfg(feature = "frozen-abi") to build.rs * only depend on rustc_version when frozen-abi feature is activated * remove extraneous dirs that snuck in from another branch * update perf/build.rs as it's different from the standard build script * use symlink for svm/build.rs * remove unused build dep rustc_version from wen-restart * fmt Cargo.toml --- Cargo.lock | 1 - accounts-db/Cargo.toml | 3 ++- bloom/Cargo.toml | 3 ++- builtins-default-costs/Cargo.toml | 3 ++- cargo-registry/Cargo.toml | 2 +- compute-budget/Cargo.toml | 3 ++- core/Cargo.toml | 3 ++- cost-model/Cargo.toml | 3 ++- curves/secp256k1-recover/Cargo.toml | 4 ++-- frozen-abi/Cargo.toml | 5 +++++ frozen-abi/build.rs | 3 +++ frozen-abi/macro/Cargo.toml | 5 +++++ gossip/Cargo.toml | 3 ++- ledger/Cargo.toml | 3 ++- perf/Cargo.toml | 3 ++- perf/build.rs | 3 +++ program-runtime/Cargo.toml | 3 ++- programs/address-lookup-table/Cargo.toml | 2 +- programs/sbf/Cargo.lock | 23 ----------------------- programs/stake-tests/Cargo.toml | 2 +- programs/stake/Cargo.toml | 2 +- programs/vote/Cargo.toml | 3 ++- runtime-transaction/Cargo.toml | 2 +- runtime/Cargo.toml | 3 ++- sdk/Cargo.toml | 3 ++- sdk/program/Cargo.toml | 13 +++++++++---- short-vec/Cargo.toml | 4 ++-- svm/Cargo.toml | 3 ++- svm/build.rs | 23 +---------------------- version/Cargo.toml | 3 ++- vote/Cargo.toml | 3 ++- wen-restart/Cargo.toml | 1 - wen-restart/build.rs | 2 -- 33 files changed, 67 insertions(+), 78 deletions(-) mode change 100644 => 120000 svm/build.rs diff --git a/Cargo.lock b/Cargo.lock index 0455ad9a1f632b..1f2780297b29fb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8047,7 +8047,6 @@ dependencies = [ "protobuf-src", "rand 0.8.5", "rayon", - "rustc_version 0.4.0", "serial_test", "solana-accounts-db", "solana-entry", diff --git a/accounts-db/Cargo.toml b/accounts-db/Cargo.toml index eada1ee5e3375e..8a6d7e4d32160a 100644 --- a/accounts-db/Cargo.toml +++ b/accounts-db/Cargo.toml @@ -80,7 +80,7 @@ test-case = { workspace = true } targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -rustc_version = { workspace = true } +rustc_version = { workspace = true, optional = true } [features] dev-context-only-utils = [ @@ -89,6 +89,7 @@ dev-context-only-utils = [ "dep:solana-vote-program", ] frozen-abi = [ + "dep:rustc_version", "dep:solana-frozen-abi", "dep:solana-frozen-abi-macro", "solana-sdk/frozen-abi", diff --git a/bloom/Cargo.toml b/bloom/Cargo.toml index 640dfbb644a173..5234fb506d90aa 100644 --- a/bloom/Cargo.toml +++ b/bloom/Cargo.toml @@ -32,10 +32,11 @@ name = "solana_bloom" targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -rustc_version = { workspace = true } +rustc_version = { workspace = true, optional = true } [features] frozen-abi = [ + "dep:rustc_version", "dep:solana-frozen-abi", "dep:solana-frozen-abi-macro", "solana-sdk/frozen-abi", diff --git a/builtins-default-costs/Cargo.toml b/builtins-default-costs/Cargo.toml index 4b2c5bad2f33e4..ddc5f06a6d68ee 100644 --- a/builtins-default-costs/Cargo.toml +++ b/builtins-default-costs/Cargo.toml @@ -36,10 +36,11 @@ rand = "0.8.5" targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -rustc_version = { workspace = true } +rustc_version = { workspace = true, optional = true } [features] frozen-abi = [ + "dep:rustc_version", "dep:solana-frozen-abi", "solana-vote-program/frozen-abi", ] diff --git a/cargo-registry/Cargo.toml b/cargo-registry/Cargo.toml index 4b9ca6c0c61881..3224845067a87a 100644 --- a/cargo-registry/Cargo.toml +++ b/cargo-registry/Cargo.toml @@ -40,7 +40,7 @@ toml = { workspace = true } targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -rustc_version = { workspace = true } +rustc_version = { workspace = true, optional = true } [features] dev-context-only-utils = [] diff --git a/compute-budget/Cargo.toml b/compute-budget/Cargo.toml index 211aa9394806b4..55229cf808b4f0 100644 --- a/compute-budget/Cargo.toml +++ b/compute-budget/Cargo.toml @@ -14,10 +14,11 @@ solana-frozen-abi = { workspace = true, optional = true } solana-sdk = { workspace = true } [build-dependencies] -rustc_version = { workspace = true } +rustc_version = { workspace = true, optional = true } [features] frozen-abi = [ + "dep:rustc_version", "dep:solana-frozen-abi", "solana-sdk/frozen-abi", ] diff --git a/core/Cargo.toml b/core/Cargo.toml index e3dd1bdf1f629f..8d96a2a1b0d1b8 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -117,11 +117,12 @@ test-case = { workspace = true } sysctl = { workspace = true } [build-dependencies] -rustc_version = { workspace = true } +rustc_version = { workspace = true, optional = true } [features] dev-context-only-utils = [] frozen-abi = [ + "dep:rustc_version", "dep:solana-frozen-abi", "dep:solana-frozen-abi-macro", "solana-accounts-db/frozen-abi", diff --git a/cost-model/Cargo.toml b/cost-model/Cargo.toml index 366a27cebe7575..c33ba7a5415963 100644 --- a/cost-model/Cargo.toml +++ b/cost-model/Cargo.toml @@ -39,10 +39,11 @@ test-case = { workspace = true } targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -rustc_version = { workspace = true } +rustc_version = { workspace = true, optional = true } [features] frozen-abi = [ + "dep:rustc_version", "dep:solana-frozen-abi", "dep:solana-frozen-abi-macro", "solana-compute-budget/frozen-abi", diff --git a/curves/secp256k1-recover/Cargo.toml b/curves/secp256k1-recover/Cargo.toml index 545fb073e9e6ae..90208106bb5475 100644 --- a/curves/secp256k1-recover/Cargo.toml +++ b/curves/secp256k1-recover/Cargo.toml @@ -29,11 +29,11 @@ borsh = { workspace = true } libsecp256k1 = { workspace = true, features = ["hmac"] } [build-dependencies] -rustc_version = { workspace = true } +rustc_version = { workspace = true, optional = true } [features] borsh = ["dep:borsh"] -frozen-abi = ["dep:solana-frozen-abi", "dep:solana-frozen-abi-macro"] +frozen-abi = ["dep:rustc_version", "dep:solana-frozen-abi", "dep:solana-frozen-abi-macro"] [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] diff --git a/frozen-abi/Cargo.toml b/frozen-abi/Cargo.toml index fa850652f84cec..5c71ec5c2b4596 100644 --- a/frozen-abi/Cargo.toml +++ b/frozen-abi/Cargo.toml @@ -31,3 +31,8 @@ solana-logger = { workspace = true } [build-dependencies] rustc_version = { workspace = true } + +[features] +default = ["frozen-abi"] +# no reason to deactivate this. It's needed because the build.rs is reused elsewhere +frozen-abi = [] diff --git a/frozen-abi/build.rs b/frozen-abi/build.rs index e17ca70cb4718b..a95ef31ad70f65 100644 --- a/frozen-abi/build.rs +++ b/frozen-abi/build.rs @@ -1,7 +1,10 @@ +#[cfg(feature = "frozen-abi")] extern crate rustc_version; +#[cfg(feature = "frozen-abi")] use rustc_version::{version_meta, Channel}; fn main() { + #[cfg(feature = "frozen-abi")] // Copied and adapted from // https://github.com/Kimundi/rustc-version-rs/blob/1d692a965f4e48a8cb72e82cda953107c0d22f47/README.md#example // Licensed under Apache-2.0 + MIT diff --git a/frozen-abi/macro/Cargo.toml b/frozen-abi/macro/Cargo.toml index eab2c15fe71bf1..fe3c79d4404cbe 100644 --- a/frozen-abi/macro/Cargo.toml +++ b/frozen-abi/macro/Cargo.toml @@ -19,3 +19,8 @@ syn = { workspace = true, features = ["full", "extra-traits"] } [build-dependencies] rustc_version = { workspace = true } + +[features] +default = ["frozen-abi"] +# no reason to deactivate this. It's needed because the build.rs is reused elsewhere +frozen-abi = [] diff --git a/gossip/Cargo.toml b/gossip/Cargo.toml index 7720073236bad1..96f54442e7c98d 100644 --- a/gossip/Cargo.toml +++ b/gossip/Cargo.toml @@ -61,10 +61,11 @@ solana-runtime = { workspace = true, features = ["dev-context-only-utils"] } test-case = { workspace = true } [build-dependencies] -rustc_version = { workspace = true } +rustc_version = { workspace = true, optional = true } [features] frozen-abi = [ + "dep:rustc_version", "dep:solana-frozen-abi", "dep:solana-frozen-abi-macro", "solana-bloom/frozen-abi", diff --git a/ledger/Cargo.toml b/ledger/Cargo.toml index 61ab02470b5f05..c21f8028bdf95e 100644 --- a/ledger/Cargo.toml +++ b/ledger/Cargo.toml @@ -89,11 +89,12 @@ spl-pod = { workspace = true } test-case = { workspace = true } [build-dependencies] -rustc_version = { workspace = true } +rustc_version = { workspace = true, optional = true } [features] dev-context-only-utils = [] frozen-abi = [ + "dep:rustc_version", "dep:solana-frozen-abi", "dep:solana-frozen-abi-macro", "solana-runtime/frozen-abi", diff --git a/perf/Cargo.toml b/perf/Cargo.toml index 71a213e7693d5c..4cf6e49d2f4f72 100644 --- a/perf/Cargo.toml +++ b/perf/Cargo.toml @@ -44,10 +44,11 @@ solana-logger = { workspace = true } test-case = { workspace = true } [build-dependencies] -rustc_version = { workspace = true } +rustc_version = { workspace = true, optional = true } [features] frozen-abi = [ + "dep:rustc_version", "dep:solana-frozen-abi", "dep:solana-frozen-abi-macro", "solana-sdk/frozen-abi", diff --git a/perf/build.rs b/perf/build.rs index eef20dd887bc42..a38f6c73307cd7 100644 --- a/perf/build.rs +++ b/perf/build.rs @@ -1,4 +1,6 @@ +#[cfg(feature = "frozen-abi")] extern crate rustc_version; +#[cfg(feature = "frozen-abi")] use rustc_version::{version_meta, Channel}; fn main() { @@ -15,6 +17,7 @@ fn main() { // Copied and adapted from // https://github.com/Kimundi/rustc-version-rs/blob/1d692a965f4e48a8cb72e82cda953107c0d22f47/README.md#example // Licensed under Apache-2.0 + MIT + #[cfg(feature = "frozen-abi")] match version_meta().unwrap().channel { Channel::Stable => { println!("cargo:rustc-cfg=RUSTC_WITHOUT_SPECIALIZATION"); diff --git a/program-runtime/Cargo.toml b/program-runtime/Cargo.toml index 0f9a22f7cd8d4a..1b6b914835c07f 100644 --- a/program-runtime/Cargo.toml +++ b/program-runtime/Cargo.toml @@ -48,10 +48,11 @@ name = "solana_program_runtime" targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -rustc_version = { workspace = true } +rustc_version = { workspace = true, optional = true } [features] frozen-abi = [ + "dep:rustc_version", "dep:solana-frozen-abi", "dep:solana-frozen-abi-macro", "solana-compute-budget/frozen-abi", diff --git a/programs/address-lookup-table/Cargo.toml b/programs/address-lookup-table/Cargo.toml index f721fcef11430d..1c61a6bdf466d2 100644 --- a/programs/address-lookup-table/Cargo.toml +++ b/programs/address-lookup-table/Cargo.toml @@ -24,7 +24,7 @@ solana-program-runtime = { workspace = true } solana-sdk = { workspace = true } [build-dependencies] -rustc_version = { workspace = true } +rustc_version = { workspace = true, optional = true } [lib] crate-type = ["lib"] diff --git a/programs/sbf/Cargo.lock b/programs/sbf/Cargo.lock index 91b3667d25e861..c447d919b6211b 100644 --- a/programs/sbf/Cargo.lock +++ b/programs/sbf/Cargo.lock @@ -4505,7 +4505,6 @@ dependencies = [ "num_enum", "rand 0.8.5", "rayon", - "rustc_version", "seqlock", "serde", "serde_derive", @@ -4534,7 +4533,6 @@ dependencies = [ "log", "num-derive", "num-traits", - "rustc_version", "solana-log-collector", "solana-program", "solana-program-runtime", @@ -4600,7 +4598,6 @@ dependencies = [ "fnv", "log", "rand 0.8.5", - "rustc_version", "serde", "serde_derive", "solana-sanitize", @@ -4668,7 +4665,6 @@ dependencies = [ "ahash 0.8.10", "lazy_static", "log", - "rustc_version", "solana-address-lookup-table-program", "solana-bpf-loader-program", "solana-compute-budget-program", @@ -4769,7 +4765,6 @@ dependencies = [ name = "solana-compute-budget" version = "2.1.0" dependencies = [ - "rustc_version", "solana-sdk", ] @@ -4844,7 +4839,6 @@ dependencies = [ "rand_chacha 0.3.1", "rayon", "rolling-file", - "rustc_version", "rustls", "serde", "serde_bytes", @@ -4904,7 +4898,6 @@ dependencies = [ "ahash 0.8.10", "lazy_static", "log", - "rustc_version", "solana-builtins-default-costs", "solana-compute-budget", "solana-metrics", @@ -5051,7 +5044,6 @@ dependencies = [ "rand 0.8.5", "rand_chacha 0.3.1", "rayon", - "rustc_version", "serde", "serde_bytes", "serde_derive", @@ -5129,7 +5121,6 @@ dependencies = [ "rayon", "reed-solomon-erasure", "rocksdb", - "rustc_version", "scopeguard", "serde", "serde_bytes", @@ -5272,7 +5263,6 @@ dependencies = [ "nix", "rand 0.8.5", "rayon", - "rustc_version", "serde", "solana-metrics", "solana-rayon-threadlimit", @@ -5334,7 +5324,6 @@ dependencies = [ "num-traits", "parking_lot 0.12.2", "rand 0.8.5", - "rustc_version", "serde", "serde_bytes", "serde_derive", @@ -5375,7 +5364,6 @@ dependencies = [ "num-traits", "percentage", "rand 0.8.5", - "rustc_version", "serde", "solana-compute-budget", "solana-log-collector", @@ -5643,7 +5631,6 @@ dependencies = [ "rand 0.8.5", "rayon", "regex", - "rustc_version", "serde", "serde_derive", "serde_json", @@ -5692,7 +5679,6 @@ name = "solana-runtime-transaction" version = "2.1.0" dependencies = [ "log", - "rustc_version", "solana-compute-budget", "solana-sdk", "thiserror", @@ -6206,7 +6192,6 @@ dependencies = [ "qualifier_attr", "rand 0.7.3", "rand 0.8.5", - "rustc_version", "serde", "serde_bytes", "serde_derive", @@ -6244,7 +6229,6 @@ version = "2.1.0" dependencies = [ "borsh 1.5.1", "libsecp256k1 0.6.0", - "rustc_version", "solana-define-syscall", "thiserror", ] @@ -6274,7 +6258,6 @@ dependencies = [ name = "solana-short-vec" version = "2.1.0" dependencies = [ - "rustc_version", "serde", ] @@ -6284,7 +6267,6 @@ version = "2.1.0" dependencies = [ "bincode", "log", - "rustc_version", "solana-config-program", "solana-log-collector", "solana-program-runtime", @@ -6382,7 +6364,6 @@ dependencies = [ "log", "percentage", "qualifier_attr", - "rustc_version", "serde", "serde_derive", "solana-bpf-loader-program", @@ -6626,7 +6607,6 @@ name = "solana-version" version = "2.1.0" dependencies = [ "log", - "rustc_version", "semver", "serde", "serde_derive", @@ -6640,7 +6620,6 @@ version = "2.1.0" dependencies = [ "itertools 0.12.1", "log", - "rustc_version", "serde", "serde_derive", "solana-sdk", @@ -6655,7 +6634,6 @@ dependencies = [ "log", "num-derive", "num-traits", - "rustc_version", "serde", "serde_derive", "solana-metrics", @@ -6676,7 +6654,6 @@ dependencies = [ "prost-types", "protobuf-src", "rayon", - "rustc_version", "solana-entry", "solana-gossip", "solana-ledger", diff --git a/programs/stake-tests/Cargo.toml b/programs/stake-tests/Cargo.toml index 4c89f4dd6d0fbf..7e3a461ba09e2b 100644 --- a/programs/stake-tests/Cargo.toml +++ b/programs/stake-tests/Cargo.toml @@ -20,7 +20,7 @@ solana-vote-program = { workspace = true } test-case = { workspace = true } [build-dependencies] -rustc_version = { workspace = true } +rustc_version = { workspace = true, optional = true } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] diff --git a/programs/stake/Cargo.toml b/programs/stake/Cargo.toml index 41eb6e6b43b9fb..e14fc532d34bca 100644 --- a/programs/stake/Cargo.toml +++ b/programs/stake/Cargo.toml @@ -27,7 +27,7 @@ solana-logger = { workspace = true } test-case = { workspace = true } [build-dependencies] -rustc_version = { workspace = true } +rustc_version = { workspace = true, optional = true } [lib] crate-type = ["lib"] diff --git a/programs/vote/Cargo.toml b/programs/vote/Cargo.toml index 220175951cac7b..58a21e6fd8443f 100644 --- a/programs/vote/Cargo.toml +++ b/programs/vote/Cargo.toml @@ -30,7 +30,7 @@ solana-logger = { workspace = true } test-case = { workspace = true } [build-dependencies] -rustc_version = { workspace = true } +rustc_version = { workspace = true, optional = true } [lib] crate-type = ["lib"] @@ -41,6 +41,7 @@ targets = ["x86_64-unknown-linux-gnu"] [features] frozen-abi = [ + "dep:rustc_version", "dep:solana-frozen-abi", "dep:solana-frozen-abi-macro", "solana-program/frozen-abi", diff --git a/runtime-transaction/Cargo.toml b/runtime-transaction/Cargo.toml index f6c89438c1ede3..22635d6c121159 100644 --- a/runtime-transaction/Cargo.toml +++ b/runtime-transaction/Cargo.toml @@ -28,4 +28,4 @@ solana-program ={ workspace = true } targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -rustc_version = { workspace = true } +rustc_version = { workspace = true, optional = true } diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 37beded4870b0e..b5df2c8bcded91 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -110,11 +110,12 @@ test-case = { workspace = true } targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -rustc_version = { workspace = true } +rustc_version = { workspace = true, optional = true } [features] dev-context-only-utils = ["solana-svm/dev-context-only-utils"] frozen-abi = [ + "dep:rustc_version", "dep:solana-frozen-abi", "dep:solana-frozen-abi-macro", "solana-accounts-db/frozen-abi", diff --git a/sdk/Cargo.toml b/sdk/Cargo.toml index 7db5d780c76b07..d19d16a5a3fc71 100644 --- a/sdk/Cargo.toml +++ b/sdk/Cargo.toml @@ -37,6 +37,7 @@ full = [ borsh = ["dep:borsh", "solana-program/borsh", "solana-secp256k1-recover/borsh"] dev-context-only-utils = ["qualifier_attr"] frozen-abi = [ + "dep:rustc_version", "dep:solana-frozen-abi", "dep:solana-frozen-abi-macro", "solana-program/frozen-abi", @@ -111,7 +112,7 @@ static_assertions = { workspace = true } tiny-bip39 = { workspace = true } [build-dependencies] -rustc_version = { workspace = true } +rustc_version = { workspace = true, optional = true } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] diff --git a/sdk/program/Cargo.toml b/sdk/program/Cargo.toml index 954c2fa6b6511e..cc220b1711db65 100644 --- a/sdk/program/Cargo.toml +++ b/sdk/program/Cargo.toml @@ -33,8 +33,8 @@ sha2 = { workspace = true } sha3 = { workspace = true } solana-atomic-u64 = { workspace = true } solana-decode-error = { workspace = true } -solana-frozen-abi = { workspace = true, optional = true } -solana-frozen-abi-macro = { workspace = true, optional = true } +solana-frozen-abi = { workspace = true, optional = true, features = ["frozen-abi"] } +solana-frozen-abi-macro = { workspace = true, optional = true, features = ["frozen-abi"] } solana-msg = { workspace = true } solana-program-memory = { workspace = true } solana-sanitize = { workspace = true } @@ -86,7 +86,7 @@ static_assertions = { workspace = true } test-case = { workspace = true } [build-dependencies] -rustc_version = { workspace = true } +rustc_version = { workspace = true, optional = true } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] @@ -98,4 +98,9 @@ crate-type = ["cdylib", "rlib"] default = ["borsh"] borsh = ["dep:borsh", "dep:borsh0-10"] dev-context-only-utils = ["dep:qualifier_attr"] -frozen-abi = ["dep:solana-frozen-abi", "dep:solana-frozen-abi-macro", "solana-short-vec/frozen-abi"] +frozen-abi = [ + "dep:rustc_version", + "dep:solana-frozen-abi", + "dep:solana-frozen-abi-macro", + "solana-short-vec/frozen-abi", +] diff --git a/short-vec/Cargo.toml b/short-vec/Cargo.toml index 32af444ac95e9c..2b0c7baf5f12ce 100644 --- a/short-vec/Cargo.toml +++ b/short-vec/Cargo.toml @@ -10,7 +10,7 @@ license = { workspace = true } edition = { workspace = true } [build-dependencies] -rustc_version = { workspace = true } +rustc_version = { workspace = true, optional = true } [dependencies] serde = { workspace = true } @@ -23,7 +23,7 @@ bincode = { workspace = true } serde_json = { workspace = true } [features] -frozen-abi = ["dep:solana-frozen-abi", "dep:solana-frozen-abi-macro"] +frozen-abi = ["dep:rustc_version", "dep:solana-frozen-abi", "dep:solana-frozen-abi-macro"] [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] diff --git a/svm/Cargo.toml b/svm/Cargo.toml index 5f1cbd544eed10..e387a21eeedf6c 100644 --- a/svm/Cargo.toml +++ b/svm/Cargo.toml @@ -58,11 +58,12 @@ solana-svm-conformance = { workspace = true } targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -rustc_version = { workspace = true } +rustc_version = { workspace = true, optional = true } [features] dev-context-only-utils = ["dep:qualifier_attr"] frozen-abi = [ + "dep:rustc_version", "dep:solana-frozen-abi", "dep:solana-frozen-abi-macro", "solana-compute-budget/frozen-abi", diff --git a/svm/build.rs b/svm/build.rs deleted file mode 100644 index e17ca70cb4718b..00000000000000 --- a/svm/build.rs +++ /dev/null @@ -1,22 +0,0 @@ -extern crate rustc_version; -use rustc_version::{version_meta, Channel}; - -fn main() { - // Copied and adapted from - // https://github.com/Kimundi/rustc-version-rs/blob/1d692a965f4e48a8cb72e82cda953107c0d22f47/README.md#example - // Licensed under Apache-2.0 + MIT - match version_meta().unwrap().channel { - Channel::Stable => { - println!("cargo:rustc-cfg=RUSTC_WITHOUT_SPECIALIZATION"); - } - Channel::Beta => { - println!("cargo:rustc-cfg=RUSTC_WITHOUT_SPECIALIZATION"); - } - Channel::Nightly => { - println!("cargo:rustc-cfg=RUSTC_WITH_SPECIALIZATION"); - } - Channel::Dev => { - println!("cargo:rustc-cfg=RUSTC_WITH_SPECIALIZATION"); - } - } -} diff --git a/svm/build.rs b/svm/build.rs new file mode 120000 index 00000000000000..ae66c237c5f4fd --- /dev/null +++ b/svm/build.rs @@ -0,0 +1 @@ +../frozen-abi/build.rs \ No newline at end of file diff --git a/version/Cargo.toml b/version/Cargo.toml index 427c05ca7a0019..7c8ae8f6820155 100644 --- a/version/Cargo.toml +++ b/version/Cargo.toml @@ -22,6 +22,7 @@ solana-sdk = { workspace = true } [features] dummy-for-ci-check = [] frozen-abi = [ + "dep:rustc_version", "dep:solana-frozen-abi", "dep:solana-frozen-abi-macro", "solana-sdk/frozen-abi", @@ -34,4 +35,4 @@ name = "solana_version" targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -rustc_version = { workspace = true } +rustc_version = { workspace = true, optional = true } diff --git a/vote/Cargo.toml b/vote/Cargo.toml index 0d85ccda55e02a..89c4808ede0ed7 100644 --- a/vote/Cargo.toml +++ b/vote/Cargo.toml @@ -31,11 +31,12 @@ rand = { workspace = true } targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -rustc_version = { workspace = true } +rustc_version = { workspace = true, optional = true } [features] dev-context-only-utils = [] frozen-abi = [ + "dep:rustc_version", "dep:solana-frozen-abi", "dep:solana-frozen-abi-macro", "solana-sdk/frozen-abi", diff --git a/wen-restart/Cargo.toml b/wen-restart/Cargo.toml index 25823c9d777855..f5fbf99a1e20c8 100644 --- a/wen-restart/Cargo.toml +++ b/wen-restart/Cargo.toml @@ -38,7 +38,6 @@ tempfile = { workspace = true } [build-dependencies] prost-build = { workspace = true } -rustc_version = { workspace = true } # windows users should install the protobuf compiler manually and set the PROTOC # envar to point to the installed binary diff --git a/wen-restart/build.rs b/wen-restart/build.rs index 30fdc64a9bcfe0..9b2f80c51de392 100644 --- a/wen-restart/build.rs +++ b/wen-restart/build.rs @@ -1,5 +1,3 @@ -extern crate rustc_version; - use std::io::Result; fn main() -> Result<()> {