Skip to content

Commit b7ca0a0

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 985c6a4 commit b7ca0a0

1 file changed

Lines changed: 18 additions & 3 deletions

File tree

build-scx-scheds/build-scheds.sh

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,30 @@ 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
2337

2438
# build Rust scheds
2539
. $HOME/.cargo/env
2640
cargo build --release
27-
mv target/release/build $OUTPUT_DIR/rust-scheds
41+
mv target/release/build $OUTPUT_DIR/rust-build
42+
extract_bpf_progs $OUTPUT_DIR/rust-build "bpf.bpf.o" $OUTPUT_DIR/bpf
2843

2944
popd

0 commit comments

Comments
 (0)