Remove do.sh

This commit is contained in:
Michael Vines 2020-10-21 17:32:51 -07:00
parent 07a853d6cc
commit 61be155413
28 changed files with 10 additions and 159 deletions

View File

@ -94,16 +94,16 @@ fn main() {
program
);
assert!(Command::new("bash")
.current_dir("rust")
.args(&["./do.sh", "build", program])
.current_dir(format!("rust/{}", program))
.args(&["../../../../cargo-build-bpf"])
.status()
.expect("Error calling do.sh from build.rs")
.expect("Error calling cargo-build-bpf from build.rs")
.success());
let src = format!(
"target/bpfel-unknown-unknown/release/solana_bpf_rust_{}.so",
"rust/{0}/solana_bpf_rust_{0}.so",
program,
);
assert!(Command::new("cp")
assert!(Command::new("mv")
.arg(&src)
.arg(&install_dir)
.status()

View File

@ -1,5 +1,4 @@
# Note: This crate must be built using do.sh
[package]
name = "solana-bpf-rust-128bit"

View File

@ -1,5 +1,4 @@
# Note: This crate must be built using do.sh
[package]
name = "solana-bpf-rust-128bit-dep"

View File

@ -1,5 +1,4 @@
# Note: This crate must be built using do.sh
[package]
name = "solana-bpf-rust-alloc"

View File

@ -1,5 +1,4 @@
# Note: This crate must be built using do.sh
[package]
name = "solana-bpf-rust-call-depth"

View File

@ -1,5 +1,4 @@
# Note: This crate must be built using do.sh
[package]
name = "solana-bpf-rust-custom-heap"

View File

@ -1,5 +1,4 @@
# Note: This crate must be built using do.sh
[package]
name = "solana-bpf-rust-dep-crate"

View File

@ -1,5 +1,4 @@
# Note: This crate must be built using do.sh
[package]
name = "solana-bpf-rust-deprecated_loader"

View File

@ -1,123 +0,0 @@
#!/usr/bin/env bash
cd "$(dirname "$0")"
usage() {
cat <<EOF
Usage: do.sh action <project>
If relative_project_path is ommitted then action will
be performed on all projects
Supported actions:
build
clean
test
clippy
fmt
EOF
}
sdkDir=../../../sdk
targetDir="$PWD"/../target
profile=bpfel-unknown-unknown/release
perform_action() {
set -e
case "$1" in
build)
"$sdkDir"/bpf/rust/build.sh "$2"
so_path="$targetDir/$profile/"
so_name="solana_bpf_rust_${3%/}"
if [ -f "$so_path/${so_name}.so" ]; then
cp "$so_path/${so_name}.so" "$so_path/${so_name}_debug.so"
"$sdkDir/bpf/dependencies/llvm-native/bin/llvm-objcopy" --strip-all "$so_path/${so_name}.so" "$so_path/$so_name.so"
fi
;;
clean)
"$sdkDir"/bpf/rust/clean.sh "$2"
;;
test)
(
cd "$2"
echo "test $2"
cargo +nightly test
)
;;
clippy)
(
cd "$2"
echo "clippy $2"
cargo +nightly clippy
)
;;
fmt)
(
cd "$2"
echo "formatting $2"
cargo fmt
)
;;
dump)
# Dump depends on tools that are not installed by default and must be installed manually
# - greadelf
# - rustfilt
(
pwd
"$0" build "$3"
cd "$3"
so="$targetDir/$profile/solana_bpf_rust_${3%/}_debug.so"
dump="$targetDir/${3%/}-dump"
if [ -f "$so" ]; then
ls \
-la \
"$so" \
>"${dump}-mangled.txt"
greadelf \
-aW \
"$so" \
>>"${dump}-mangled.txt"
../"$sdkDir/bpf/dependencies/llvm-native/bin/llvm-objdump" \
-print-imm-hex \
--source \
--disassemble \
"$so" \
>>"${dump}-mangled.txt"
sed \
s/://g \
< "${dump}-mangled.txt" \
| rustfilt \
> "${dump}.txt"
else
echo "Warning: No dump created, cannot find: $so"
fi
)
;;
help)
usage
exit
;;
*)
echo "Error: Unknown command"
usage
exit
;;
esac
}
set -e
if [ "$#" -ne 2 ]; then
# Build all projects
for project in */; do
perform_action "$1" "$PWD/$project" "$project"
done
else
# Build requested project
perform_action "$1" "$PWD/$2" "$2"
fi

View File

@ -1,5 +1,4 @@
# Note: This crate must be built using do.sh
[package]
name = "solana-bpf-rust-dup-accounts"

View File

@ -1,5 +1,4 @@
# Note: This crate must be built using do.sh
[package]
name = "solana-bpf-rust-error-handling"

View File

@ -1,5 +1,4 @@
# Note: This crate must be built using do.sh
[package]
name = "solana-bpf-rust-external-spend"

View File

@ -1,5 +1,4 @@
# Note: This crate must be built using do.sh
[package]
name = "solana-bpf-rust-instruction-introspection"

View File

@ -1,5 +1,4 @@
# Note: This crate must be built using do.sh
[package]
name = "solana-bpf-rust-invoke"

View File

@ -1,5 +1,4 @@
# Note: This crate must be built using do.sh
[package]
name = "solana-bpf-rust-invoked"

View File

@ -1,5 +1,4 @@
# Note: This crate must be built using do.sh
[package]
name = "solana-bpf-rust-iter"

View File

@ -1,5 +1,4 @@
# Note: This crate must be built using do.sh
[package]
name = "solana-bpf-rust-many-args"

View File

@ -1,5 +1,4 @@
# Note: This crate must be built using do.sh
[package]
name = "solana-bpf-rust-many-args-dep"

View File

@ -1,5 +1,4 @@
# Note: This crate must be built using do.sh
[package]
name = "solana-bpf-rust-noop"

View File

@ -1,5 +1,4 @@
# Note: This crate must be built using do.sh
[package]
name = "solana-bpf-rust-panic"

View File

@ -1,5 +1,4 @@
# Note: This crate must be built using do.sh
[package]
name = "solana-bpf-rust-param-passing"

View File

@ -1,5 +1,4 @@
# Note: This crate must be built using do.sh
[package]
name = "solana-bpf-rust-param-passing-dep"

View File

@ -1,5 +1,4 @@
# Note: This crate must be built using do.sh
[package]
name = "solana-bpf-rust-rand"

View File

@ -1,5 +1,4 @@
# Note: This crate must be built using do.sh
[package]
name = "solana-bpf-rust-ristretto"

View File

@ -1,5 +1,4 @@
# Note: This crate must be built using do.sh
[package]
name = "solana-bpf-rust-sanity"

View File

@ -1,5 +1,4 @@
# Note: This crate must be built using do.sh
[package]
name = "solana-bpf-rust-sha256"

View File

@ -1,5 +1,4 @@
# Note: This crate must be built using do.sh
[package]
name = "solana-bpf-rust-sysval"

View File

@ -1,14 +1,13 @@
#!/usr/bin/env python
#
#
# Prints a BPF program call trace with instruction counts for each call
#
# This script requires a dump file containing the instruction dump of the ELF
# and a trace file that contains the trace output of the BPF VM
#
# You can create the dump file with do.sh:
# $ do.sh dump <project>
# Or directly:
# You can create the dump file by passing the --dump flag to `cargo build-bpf`,
# or directly:
# $ llvm-objdump -print-imm-hex --source --disassemble <ELF file path>
#
# You can create the trace file by running the program and setting RUST_LOG:
@ -53,7 +52,7 @@ if __name__ == '__main__':
sys.exit(' Usage: ' + sys.argv[0] + ' dump_file trace_file')
dumppath = sys.argv[1]
tracepath = sys.argv[2]
# parse the dump file to create a map
# of instruction numbers to symbols
symbols = {}
@ -76,7 +75,7 @@ if __name__ == '__main__':
line = file_object.readline()
if len(symbols) == 0:
sys.exit("Error: No instruction dump in: " + dumppath)
# parse the trace file to build a call list
calls = [] # all the calls made
with open(tracepath, 'r') as file_object: