Skip to content

Commit

Permalink
Only run frozen-abi build script when needed (#2443)
Browse files Browse the repository at this point in the history
* 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
kevinheavey authored Aug 8, 2024
1 parent c99095d commit 77ea09a
Showing 33 changed files with 67 additions and 78 deletions.
1 change: 0 additions & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion accounts-db/Cargo.toml
Original file line number Diff line number Diff line change
@@ -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",
3 changes: 2 additions & 1 deletion bloom/Cargo.toml
Original file line number Diff line number Diff line change
@@ -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",
3 changes: 2 additions & 1 deletion builtins-default-costs/Cargo.toml
Original file line number Diff line number Diff line change
@@ -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",
]
2 changes: 1 addition & 1 deletion cargo-registry/Cargo.toml
Original file line number Diff line number Diff line change
@@ -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 = []
3 changes: 2 additions & 1 deletion compute-budget/Cargo.toml
Original file line number Diff line number Diff line change
@@ -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",
]
3 changes: 2 additions & 1 deletion core/Cargo.toml
Original file line number Diff line number Diff line change
@@ -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",
3 changes: 2 additions & 1 deletion cost-model/Cargo.toml
Original file line number Diff line number Diff line change
@@ -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",
4 changes: 2 additions & 2 deletions curves/secp256k1-recover/Cargo.toml
Original file line number Diff line number Diff line change
@@ -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"]
5 changes: 5 additions & 0 deletions frozen-abi/Cargo.toml
Original file line number Diff line number Diff line change
@@ -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 = []
3 changes: 3 additions & 0 deletions frozen-abi/build.rs
Original file line number Diff line number Diff line change
@@ -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
5 changes: 5 additions & 0 deletions frozen-abi/macro/Cargo.toml
Original file line number Diff line number Diff line change
@@ -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 = []
3 changes: 2 additions & 1 deletion gossip/Cargo.toml
Original file line number Diff line number Diff line change
@@ -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",
3 changes: 2 additions & 1 deletion ledger/Cargo.toml
Original file line number Diff line number Diff line change
@@ -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",
3 changes: 2 additions & 1 deletion perf/Cargo.toml
Original file line number Diff line number Diff line change
@@ -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",
3 changes: 3 additions & 0 deletions perf/build.rs
Original file line number Diff line number Diff line change
@@ -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");
3 changes: 2 additions & 1 deletion program-runtime/Cargo.toml
Original file line number Diff line number Diff line change
@@ -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",
2 changes: 1 addition & 1 deletion programs/address-lookup-table/Cargo.toml
Original file line number Diff line number Diff line change
@@ -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"]
23 changes: 0 additions & 23 deletions programs/sbf/Cargo.lock
2 changes: 1 addition & 1 deletion programs/stake-tests/Cargo.toml
Original file line number Diff line number Diff line change
@@ -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"]
2 changes: 1 addition & 1 deletion programs/stake/Cargo.toml
Original file line number Diff line number Diff line change
@@ -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"]
3 changes: 2 additions & 1 deletion programs/vote/Cargo.toml
Original file line number Diff line number Diff line change
@@ -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",
2 changes: 1 addition & 1 deletion runtime-transaction/Cargo.toml
Original file line number Diff line number Diff line change
@@ -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 }
3 changes: 2 additions & 1 deletion runtime/Cargo.toml
Original file line number Diff line number Diff line change
@@ -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",
3 changes: 2 additions & 1 deletion sdk/Cargo.toml
Original file line number Diff line number Diff line change
@@ -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"]
13 changes: 9 additions & 4 deletions sdk/program/Cargo.toml
Original file line number Diff line number Diff line change
@@ -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",
]
4 changes: 2 additions & 2 deletions short-vec/Cargo.toml
Original file line number Diff line number Diff line change
@@ -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"]
3 changes: 2 additions & 1 deletion svm/Cargo.toml
Original file line number Diff line number Diff line change
@@ -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",
22 changes: 0 additions & 22 deletions svm/build.rs

This file was deleted.

1 change: 1 addition & 0 deletions svm/build.rs
3 changes: 2 additions & 1 deletion version/Cargo.toml
Original file line number Diff line number Diff line change
@@ -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 }
3 changes: 2 additions & 1 deletion vote/Cargo.toml
Original file line number Diff line number Diff line change
@@ -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",
1 change: 0 additions & 1 deletion wen-restart/Cargo.toml
Original file line number Diff line number Diff line change
@@ -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
2 changes: 0 additions & 2 deletions wen-restart/build.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
extern crate rustc_version;

use std::io::Result;

fn main() -> Result<()> {

0 comments on commit 77ea09a

Please sign in to comment.