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