Skip to content

Commit aeafbdd

Browse files
committed
build-scx-scheds: collect BPF progs into $OUTPUT_DIR/bpf
Update scx build script to explicitly collect BPF programs in addition to copying raw build directories. Signed-off-by: Ihor Solodrai <ihor.solodrai@linux.dev>
1 parent 5b87a9b commit aeafbdd

1 file changed

Lines changed: 21 additions & 3 deletions

File tree

build-scx-scheds/build-scheds.sh

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,33 @@ fi
1515

1616
pushd $SCX_ROOT
1717

18-
rm -rf $OUTPUT_DIR && mkdir -p $OUTPUT_DIR
18+
rm -rf $OUTPUT_DIR && mkdir -p $OUTPUT_DIR/bpf
19+
20+
extract_bpf_progs() {
21+
build_dir=$1
22+
pattern=$2
23+
bpf_dir=$3
24+
find "${build_dir}" -type f -name "$pattern" -printf '%P\0' | \
25+
while IFS= read -r -d '' prog; do
26+
obj_name=$(echo "${prog}" | tr / _)
27+
cp -v "${build_dir}/${prog}" "${bpf_dir}/${obj_name}"
28+
done
29+
}
1930

2031
# build C scheds
32+
# .SECONDARY prevents make from deleting the intermediate .bpf.o files
33+
echo '.SECONDARY:' >> scheds/c/Makefile
2134
make all -j$(nproc)
22-
mv build $OUTPUT_DIR/c-scheds
35+
mv build $OUTPUT_DIR/c-build
36+
extract_bpf_progs $OUTPUT_DIR/c-build/scheds "*.bpf.o" $OUTPUT_DIR/bpf
37+
38+
# this is a lib object, remove
39+
find $OUTPUT_DIR/bpf -name "c_scx_sdt.bpf.o" -delete
2340

2441
# build Rust scheds
2542
. $HOME/.cargo/env
2643
cargo build --release
27-
mv target/release/build $OUTPUT_DIR/rust-scheds
44+
mv target/release/build $OUTPUT_DIR/rust-build
45+
extract_bpf_progs $OUTPUT_DIR/rust-build "bpf.bpf.o" $OUTPUT_DIR/bpf
2846

2947
popd

0 commit comments

Comments
 (0)