| 5 |
5 |
|
| 6 |
6 |
LLVM_COMPAT=( {16..21} )
|
| 7 |
7 |
|
| 8 |
|
RUST_MIN_VER="1.86.0"
|
|
8 |
RUST_MIN_VER="1.88.0"
|
| 9 |
9 |
|
| 10 |
10 |
inherit cargo llvm-r2 linux-info
|
| 11 |
11 |
|
| ... | ... | |
| 52 |
52 |
~BPF
|
| 53 |
53 |
~BPF_EVENTS
|
| 54 |
54 |
~BPF_JIT
|
|
55 |
~BPF_JIT_ALWAYS_ON
|
|
56 |
~BPF_JIT_DEFAULT_ON
|
| 55 |
57 |
~BPF_SYSCALL
|
| 56 |
58 |
~DEBUG_INFO_BTF
|
| 57 |
59 |
~FTRACE
|
| ... | ... | |
| 61 |
63 |
|
| 62 |
64 |
QA_PREBUILT="/usr/bin/vmlinux_docify"
|
| 63 |
65 |
|
|
66 |
PATCHES=(
|
|
67 |
# Made obsolete by rebasing upstream, can be dropped in 1.1.1
|
|
68 |
"${FILESDIR}/${P}-scx_cake-musl-fix.patch"
|
|
69 |
)
|
|
70 |
|
| 64 |
71 |
pkg_setup() {
|
| 65 |
72 |
linux-info_pkg_setup
|
| 66 |
73 |
llvm-r2_pkg_setup
|
| ... | ... | |
| 68 |
75 |
}
|
| 69 |
76 |
|
| 70 |
77 |
src_compile() {
|
| 71 |
|
einfo "Building rust schedulers"
|
|
78 |
local -x BPF_CLANG=clang-${LLVM_SLOT}
|
| 72 |
79 |
cargo_src_compile
|
|
80 |
}
|
| 73 |
81 |
|
| 74 |
|
einfo "Building C schedulers"
|
| 75 |
|
emake BPF_CLANG="$(get_llvm_prefix)/bin/clang"
|
|
82 |
src_test() {
|
|
83 |
# Skip broken tests in scx_mitosis and scx_utils
|
|
84 |
# Upstream: https://github.com/sched-ext/scx/issues/3418
|
|
85 |
cargo_src_test -- \
|
|
86 |
--skip cell_manager::tests::test_borrowable_cpumasks_respects_cpuset \
|
|
87 |
--skip cell_manager::tests::test_cpuset_parsing_from_file \
|
|
88 |
--skip cell_manager::tests::test_deficit_all_cells_exceed_target \
|
|
89 |
--skip cell_manager::tests::test_symmetric_pairwise_overlap_produces_equal_cells \
|
|
90 |
--skip cpumask::tests::test_to_cpulist_roundtrip
|
| 76 |
91 |
}
|
| 77 |
92 |
|
| 78 |
93 |
src_install() {
|
| 79 |
|
einfo "Installing rust schedulers"
|
|
94 |
einfo "Installing schedulers"
|
| 80 |
95 |
local sched
|
| 81 |
96 |
for sched in scheds/rust/scx_*; do
|
| 82 |
97 |
einfo "Installing ${sched#scheds/rust/}"
|
| 83 |
98 |
dobin "target/$(usex debug debug release)/${sched#scheds/rust}"
|
| 84 |
99 |
done
|
| 85 |
100 |
|
| 86 |
|
einfo "Installing C schedulers"
|
| 87 |
|
emake INSTALL_DIR="${ED}/usr/bin" install
|
| 88 |
|
|
| 89 |
101 |
einfo "Installing tools"
|
| 90 |
102 |
dobin target/$(usex debug debug release)/{scx{cash,top},vmlinux_docify}
|
| 91 |
103 |
|
| 92 |
104 |
dodoc README.md
|
| 93 |
105 |
|
| 94 |
106 |
local readme readme_name
|
| 95 |
|
for readme in scheds/{rust,c}/*/README.md ./rust/*/README.md; do
|
|
107 |
for readme in scheds/rust/*/README.md ./rust/*/README.md; do
|
| 96 |
108 |
[[ -e ${readme} ]] || continue
|
| 97 |
109 |
readme_name="${readme#*/rust/}"
|
| 98 |
|
readme_name="${readme_name#*/c/}"
|
| 99 |
110 |
readme_name="${readme_name%/README.md}"
|
| 100 |
111 |
newdoc "${readme}" "${readme_name}.md"
|
| 101 |
112 |
done
|