Fix up upgradeable bpf loader activation
This commit is contained in:
parent
3a154e8056
commit
501fd83afd
|
@ -66,10 +66,7 @@ pub fn load(
|
||||||
compression,
|
compression,
|
||||||
genesis_config,
|
genesis_config,
|
||||||
process_options.debug_keys.clone(),
|
process_options.debug_keys.clone(),
|
||||||
Some(&crate::builtins::get(
|
Some(&crate::builtins::get(process_options.bpf_jit)),
|
||||||
genesis_config.cluster_type,
|
|
||||||
process_options.bpf_jit,
|
|
||||||
)),
|
|
||||||
)
|
)
|
||||||
.expect("Load from snapshot failed");
|
.expect("Load from snapshot failed");
|
||||||
|
|
||||||
|
|
|
@ -367,10 +367,7 @@ pub fn process_blockstore(
|
||||||
account_paths,
|
account_paths,
|
||||||
&opts.frozen_accounts,
|
&opts.frozen_accounts,
|
||||||
opts.debug_keys.clone(),
|
opts.debug_keys.clone(),
|
||||||
Some(&crate::builtins::get(
|
Some(&crate::builtins::get(opts.bpf_jit)),
|
||||||
genesis_config.cluster_type,
|
|
||||||
opts.bpf_jit,
|
|
||||||
)),
|
|
||||||
);
|
);
|
||||||
let bank0 = Arc::new(bank0);
|
let bank0 = Arc::new(bank0);
|
||||||
info!("processing ledger for slot 0...");
|
info!("processing ledger for slot 0...");
|
||||||
|
|
|
@ -2,7 +2,7 @@ use solana_runtime::{
|
||||||
bank::{Builtin, Builtins},
|
bank::{Builtin, Builtins},
|
||||||
builtins::ActivationType,
|
builtins::ActivationType,
|
||||||
};
|
};
|
||||||
use solana_sdk::{feature_set, genesis_config::ClusterType, pubkey::Pubkey};
|
use solana_sdk::{feature_set, pubkey::Pubkey};
|
||||||
|
|
||||||
macro_rules! to_builtin {
|
macro_rules! to_builtin {
|
||||||
($b:expr) => {
|
($b:expr) => {
|
||||||
|
@ -11,37 +11,33 @@ macro_rules! to_builtin {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Builtin programs that are always available
|
/// Builtin programs that are always available
|
||||||
fn genesis_builtins(cluster_type: ClusterType, bpf_jit: bool) -> Vec<Builtin> {
|
fn genesis_builtins(bpf_jit: bool) -> Vec<Builtin> {
|
||||||
let mut builtins = vec![
|
vec![
|
||||||
to_builtin!(solana_bpf_loader_deprecated_program!()),
|
to_builtin!(solana_bpf_loader_deprecated_program!()),
|
||||||
if bpf_jit {
|
if bpf_jit {
|
||||||
to_builtin!(solana_bpf_loader_program_with_jit!())
|
to_builtin!(solana_bpf_loader_program_with_jit!())
|
||||||
} else {
|
} else {
|
||||||
to_builtin!(solana_bpf_loader_program!())
|
to_builtin!(solana_bpf_loader_program!())
|
||||||
},
|
},
|
||||||
];
|
]
|
||||||
if cluster_type != ClusterType::MainnetBeta {
|
|
||||||
builtins.push(if bpf_jit {
|
|
||||||
to_builtin!(solana_bpf_loader_upgradeable_program_with_jit!())
|
|
||||||
} else {
|
|
||||||
to_builtin!(solana_bpf_loader_upgradeable_program!())
|
|
||||||
});
|
|
||||||
}
|
|
||||||
builtins
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Builtin programs activated dynamically by feature
|
/// Builtin programs activated dynamically by feature
|
||||||
fn feature_builtins() -> Vec<(Builtin, Pubkey, ActivationType)> {
|
fn feature_builtins(bpf_jit: bool) -> Vec<(Builtin, Pubkey, ActivationType)> {
|
||||||
vec![(
|
vec![(
|
||||||
to_builtin!(solana_bpf_loader_upgradeable_program!()),
|
if bpf_jit {
|
||||||
|
to_builtin!(solana_bpf_loader_upgradeable_program_with_jit!())
|
||||||
|
} else {
|
||||||
|
to_builtin!(solana_bpf_loader_upgradeable_program!())
|
||||||
|
},
|
||||||
feature_set::bpf_loader_upgradeable_program::id(),
|
feature_set::bpf_loader_upgradeable_program::id(),
|
||||||
ActivationType::NewProgram,
|
ActivationType::NewProgram,
|
||||||
)]
|
)]
|
||||||
}
|
}
|
||||||
|
|
||||||
pub(crate) fn get(cluster_type: ClusterType, bpf_jit: bool) -> Builtins {
|
pub(crate) fn get(bpf_jit: bool) -> Builtins {
|
||||||
Builtins {
|
Builtins {
|
||||||
genesis_builtins: genesis_builtins(cluster_type, bpf_jit),
|
genesis_builtins: genesis_builtins(bpf_jit),
|
||||||
feature_builtins: feature_builtins(),
|
feature_builtins: feature_builtins(bpf_jit),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue