# Copyright 2024-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # shellcheck shell=bash # shellcheck disable=SC2034 EAPI=8 CRATES=" addr2line@0.25.1 adler2@2.0.1 affinity@0.1.2 ahash@0.8.12 aho-corasick@1.1.5 alloca@0.4.0 allocator-api2@0.2.21 android_system_properties@0.1.6 anes@0.1.6 anstream@1.0.0 anstyle-parse@1.0.0 anstyle-query@1.1.5 anstyle-wincon@3.0.11 anstyle@1.0.14 anyhow@1.0.104 approx@0.5.1 arc-swap@1.9.2 arrayvec@0.7.8 ascii@1.1.0 async-broadcast@0.7.2 async-channel@2.5.0 async-executor@1.14.0 async-io@2.6.0 async-lock@3.4.2 async-process@2.5.0 async-recursion@1.1.1 async-signal@0.2.14 async-task@4.7.1 async-trait@0.1.92 atomic-polyfill@1.0.3 atomic-waker@1.1.2 atomic@0.6.1 autocfg@1.5.1 aws-lc-rs@1.18.1 aws-lc-sys@0.45.0 backtrace@0.3.76 base64@0.22.1 base64@0.23.1 below-common@0.9.0 bindgen@0.63.0 bindgen@0.72.1 bindgen@0.73.2 bit-set@0.5.3 bit-vec@0.6.3 bitflags@1.3.2 bitflags@2.13.2 bitvec@1.1.1 blazesym@0.2.6 block-buffer@0.10.4 block-buffer@0.12.1 block2@0.6.2 blocking@1.7.0 bstr@1.13.1 btf-rs-derive@2.0.0 btf-rs@2.0.0 buddy_system_allocator@0.13.0 bumpalo@3.20.3 by_address@1.2.1 bytemuck@1.25.2 byteorder@1.5.0 bytes@1.12.1 camino@1.2.6 cargo-platform@0.1.9 cargo-platform@0.3.3 cargo_metadata@0.19.2 cargo_metadata@0.23.1 cast@0.3.0 castaway@0.2.4 cc@1.4.6 cexpr@0.6.0 cfg-if@1.0.4 cfg_aliases@0.2.2 cgroupfs@0.9.0 chacha20@0.10.2 chrono@0.4.45 chunked_transfer@1.5.0 ciborium-io@0.2.2 ciborium-ll@0.2.2 ciborium@0.2.2 clang-sys@1.9.1 clap-num@1.2.0 clap@4.6.7 clap_builder@4.6.7 clap_complete@4.6.11 clap_derive@4.6.7 clap_lex@1.1.1 clap_main@0.2.9 clru@0.6.3 cmake@0.1.58 cobs@0.3.0 colorchoice@1.0.5 colored@3.1.1 combine@4.6.8 comfy-table@7.2.2 compact_str@0.9.1 concurrent-queue@2.5.0 console@0.16.6 const-oid@0.10.2 convert_case@0.10.0 convert_case@0.11.0 core-foundation-sys@0.8.7 core-foundation@0.10.1 core-foundation@0.9.4 core_detect@1.0.0 cpio@0.4.1 cpp_demangle@0.5.1 cpufeatures@0.2.17 cpufeatures@0.3.1 crc32fast@1.5.2 criterion-plot@0.8.2 criterion@0.8.2 critical-section@1.2.0 crossbeam-channel@0.5.17 crossbeam-deque@0.8.8 crossbeam-epoch@0.9.21 crossbeam-queue@0.3.14 crossbeam-utils@0.8.23 crossbeam@0.8.5 crossterm@0.25.0 crossterm@0.28.1 crossterm@0.29.0 crossterm_winapi@0.9.1 crunchy@0.2.4 crypto-common@0.1.7 crypto-common@0.2.2 csscolorparser@0.6.2 csv-core@0.1.13 csv@1.4.0 ctor@1.0.13 ctrlc@3.5.2 cursive@0.20.0 cursive_core@0.3.7 darling@0.20.11 darling@0.21.3 darling@0.24.1 darling_core@0.20.11 darling_core@0.21.3 darling_core@0.24.1 darling_macro@0.20.11 darling_macro@0.21.3 darling_macro@0.24.1 dashmap@6.2.1 defmt-macros@1.1.1 defmt-parser@1.0.0 defmt@1.1.1 deltae@0.3.2 deranged@0.5.8 derive_more-impl@2.1.1 derive_more@2.1.1 digest@0.10.7 digest@0.11.3 dispatch2@0.3.1 displaydoc@0.2.7 document-features@0.2.12 dunce@1.0.5 either@1.18.0 embedded-io@0.4.0 embedded-io@0.6.1 encode_unicode@1.0.0 encoding_rs@0.8.41 endi@1.1.1 enum-display-derive@0.1.1 enum-map-derive@0.17.0 enum-map@2.7.3 enumflags2@0.7.12 enumflags2_derive@0.7.12 enumset@1.1.14 enumset_derive@0.15.0 equivalent@1.0.2 erased-serde@0.3.31 errno@0.3.14 euclid@0.22.14 event-listener-strategy@0.5.4 event-listener@5.4.2 fallible-iterator@0.3.0 fancy-regex@0.11.0 faster-hex@0.10.0 fastrand@2.5.0 fb_procfs@0.9.0 filedescriptor@0.8.3 filetime@0.2.29 find-msvc-tools@0.1.12 find_cuda_helper@0.2.0 finl_unicode@1.4.0 fixedbitset@0.4.2 flate2@1.1.10 fnv@1.0.7 foldhash@0.2.0 foreign-types-shared@0.1.1 foreign-types@0.3.2 form_urlencoded@1.2.2 fs_extra@1.3.0 funty@2.0.0 futures-channel@0.3.34 futures-core@0.3.34 futures-executor@0.3.34 futures-io@0.3.34 futures-lite@2.6.1 futures-macro@0.3.34 futures-sink@0.3.34 futures-task@0.3.34 futures-util@0.3.34 futures@0.3.34 generic-array@0.14.7 getrandom@0.2.17 getrandom@0.3.4 getrandom@0.4.3 gimli@0.32.3 gimli@0.33.0 gix-actor@0.41.2 gix-archive@0.32.0 gix-attributes@0.33.2 gix-bitmap@0.3.3 gix-blame@0.13.0 gix-chunk@0.7.3 gix-command@0.9.2 gix-commitgraph@0.37.1 gix-config-value@0.18.1 gix-config@0.56.0 gix-credentials@0.38.2 gix-date@0.15.6 gix-diff@0.63.0 gix-dir@0.25.0 gix-discover@0.51.0 gix-error@0.2.5 gix-features@0.48.1 gix-filter@0.30.0 gix-fs@0.21.2 gix-glob@0.26.1 gix-hash@0.25.1 gix-hashtable@0.15.2 gix-ignore@0.21.1 gix-imara-diff@0.2.5 gix-index@0.51.0 gix-lock@23.0.1 gix-merge@0.16.0 gix-negotiate@0.31.0 gix-object@0.60.0 gix-odb@0.80.0 gix-pack@0.70.0 gix-packetline@0.21.5 gix-path@0.12.6 gix-pathspec@0.18.1 gix-prompt@0.15.1 gix-protocol@0.61.0 gix-quote@0.7.2 gix-ref@0.63.0 gix-refspec@0.41.0 gix-revision@0.45.0 gix-revwalk@0.31.0 gix-sec@0.14.2 gix-shallow@0.12.1 gix-status@0.30.0 gix-submodule@0.30.0 gix-tempfile@23.0.2 gix-trace@0.1.21 gix-transport@0.57.2 gix-traverse@0.57.0 gix-url@0.36.2 gix-utils@0.3.6 gix-validate@0.11.4 gix-worktree-state@0.30.0 gix-worktree-stream@0.32.0 gix-worktree@0.52.0 gix@0.83.0 glob@0.3.4 goblin@0.10.7 gpoint@0.3.0 h2@0.4.19 half@2.7.1 hash32@0.2.1 hash32@0.3.1 hashbrown@0.14.5 hashbrown@0.16.1 hashbrown@0.17.1 heapless@0.7.17 heapless@0.8.0 heck@0.5.0 hermit-abi@0.5.3 hex@0.4.3 home@0.5.12 http-body-util@0.1.5 http-body@1.1.0 http@1.5.0 httparse@1.10.1 httpdate@1.0.3 humantime@2.4.0 hybrid-array@0.4.15 hyper-rustls@0.27.9 hyper-tls@0.6.0 hyper-util@0.1.20 hyper@1.11.1 iana-time-zone-haiku@0.1.2 iana-time-zone@0.1.65 icu_collections@2.3.0 icu_locale_core@2.3.0 icu_normalizer@2.3.0 icu_normalizer_data@2.3.0 icu_properties@2.3.0 icu_properties_data@2.3.0 icu_provider@2.3.1 ident_case@1.0.1 idna@1.1.0 idna_adapter@1.2.2 include_dir@0.7.4 include_dir_macros@0.7.4 indexmap@2.14.2 indicatif@0.18.6 indoc@2.0.7 inotify-sys@0.1.8 inotify@0.11.5 instability@0.3.13 io-close@0.3.7 ipnet@2.12.2 is-terminal@0.4.17 is_terminal_polyfill@1.70.2 itertools@0.13.0 itertools@0.14.0 itoa@1.0.18 jiff-core@0.1.1 jiff-static@0.2.37 jiff-tzdb-platform@0.1.3 jiff-tzdb@0.1.8 jiff@0.2.37 jni-macros@0.22.4 jni-sys-macros@0.4.1 jni-sys@0.4.1 jni@0.22.4 jobserver@0.1.35 js-sys@0.3.105 kasuari@0.4.12 kstring@2.0.2 ktstr-macros@0.18.0 ktstr@0.18.0 kvm-bindings@0.14.1 kvm-ioctls@0.24.0 lab@0.11.0 lazy_static@1.5.0 lazycell@1.3.0 libbpf-cargo@0.26.2 libbpf-cargo@0.27.1 libbpf-rs@0.26.2 libbpf-rs@0.27.1 libbpf-sys@1.7.0+v1.7.0 libc@0.2.189 libloading@0.8.9 libm@0.2.16 line-clipping@0.3.8 link-section@0.19.3 linkme-impl@0.3.37 linkme@0.3.37 linktime-proc-macro@0.2.3 linux-loader@0.13.2 linux-raw-sys@0.12.1 linux-raw-sys@0.4.15 litemap@0.8.3 litrs@1.0.0 llama-cpp-2@0.1.156 llama-cpp-sys-2@0.1.156 lock_api@0.4.14 log-panics@2.1.0 log@0.4.34 lru-slab@0.1.3 lru@0.18.4 lz4_flex@0.13.1 lzma-sys@0.1.20 mac_address@1.1.8 maplit@1.0.2 matchers@0.2.0 maybe-async@0.2.11 memchr@2.8.3 memmap2@0.9.11 memmem@0.1.1 memoffset@0.9.1 mime@0.3.17 minimal-lexical@0.2.1 miniz_oxide@0.8.9 miniz_oxide@0.9.1 mio@0.8.11 mio@1.2.3 multiversion-macros@0.9.0 multiversion@0.9.0 multiversion_no_op@1.0.0 native-tls@0.2.18 netlink-packet-core@0.8.2 netlink-packet-generic@0.4.0 netlink-sys@0.8.8 nix@0.29.0 nix@0.31.3 nom@7.1.3 nonblock@0.2.0 nonempty@0.12.0 ntapi@0.4.3 nu-ansi-term@0.50.3 num-bigint@0.4.8 num-complex@0.4.6 num-conv@0.2.2 num-derive@0.4.2 num-format-windows@0.4.4 num-format@0.4.4 num-integer@0.1.47 num-iter@0.1.46 num-rational@0.4.2 num-traits@0.2.19 num@0.4.3 num_cpus@1.17.0 num_threads@0.1.7 numtoa@0.2.4 nvml-wrapper-sys@0.9.1 nvml-wrapper@0.12.1 objc2-core-foundation@0.3.2 objc2-encode@4.1.0 objc2-io-kit@0.3.2 objc2@0.6.4 object@0.37.3 object@0.39.1 once_cell@1.21.4 once_cell_polyfill@1.70.2 oorandom@11.1.5 openat@0.1.21 openssl-macros@0.1.1 openssl-probe@0.2.1 openssl-sys@0.9.117 openssl@0.10.81 ordered-float@4.6.0 ordered-float@5.5.0 ordered-stream@0.2.0 owning_ref@0.4.1 page_size@0.6.0 palette@0.7.7 palette_derive@0.7.7 palette_math@0.7.7 parking@2.2.1 parking_lot@0.12.5 parking_lot_core@0.9.12 paste@1.0.15 peeking_take_while@0.1.2 percent-encoding@2.3.2 perf-event-open-sys@6.0.0 perfetto_protos@0.51.1 pest@2.9.1 pest_derive@2.9.1 pest_generator@2.9.1 pest_meta@2.9.1 phf@0.11.3 phf_codegen@0.11.3 phf_generator@0.11.3 phf_macros@0.11.3 phf_shared@0.11.3 pin-project-lite@0.2.17 piper@0.2.5 pkg-config@0.3.34 plain@0.2.3 plotters-backend@0.3.7 plotters-svg@0.3.7 plotters@0.3.7 polling@3.11.0 portable-atomic-util@0.2.8 portable-atomic@1.15.0 postcard@1.1.3 potential_utf@0.1.6 powerfmt@0.2.0 prettyplease@0.2.37 prettyplease@0.3.0 proc-macro-crate@3.5.0 proc-macro2@1.0.107 procfs-core@0.18.0 procfs@0.18.0 prodash@31.0.0 protobuf-codegen@3.7.2 protobuf-parse@3.7.2 protobuf-support@3.7.2 protobuf@3.7.2 protoc-bin-vendored-linux-aarch_64@3.2.0 protoc-bin-vendored-linux-ppcle_64@3.2.0 protoc-bin-vendored-linux-s390_64@3.2.0 protoc-bin-vendored-linux-x86_32@3.2.0 protoc-bin-vendored-linux-x86_64@3.2.0 protoc-bin-vendored-macos-aarch_64@3.2.0 protoc-bin-vendored-macos-x86_64@3.2.0 protoc-bin-vendored-win32@3.2.0 protoc-bin-vendored@3.2.0 quinn-proto@0.11.18 quinn-udp@0.5.15 quinn@0.11.12 quote@1.0.47 r-efi@5.3.0 r-efi@6.0.0 radium@0.7.0 rand@0.10.2 rand@0.8.8 rand_core@0.10.1 rand_core@0.6.4 rand_pcg@0.10.2 ratatui-core@0.1.2 ratatui-crossterm@0.1.2 ratatui-macros@0.7.2 ratatui-termina@0.1.0 ratatui-termion@0.1.2 ratatui-termwiz@0.1.2 ratatui-widgets@0.3.2 ratatui@0.30.2 rayon-core@1.13.0 rayon@1.12.0 redox_syscall@0.5.18 regex-automata@0.4.18 regex-syntax@0.8.11 regex@1.13.1 reqwest@0.12.28 reqwest@0.13.5 ring@0.17.14 rlimit@0.11.0 rmesg@1.0.24 rustc-demangle@0.1.28 rustc-hash@1.1.0 rustc-hash@2.1.3 rustc_version@0.4.1 rustix@0.38.44 rustix@1.1.4 rustls-native-certs@0.8.4 rustls-pki-types@1.15.1 rustls-platform-verifier-android@0.1.1 rustls-platform-verifier@0.7.0 rustls-webpki@0.103.15 rustls@0.23.45 rustversion@1.0.23 ruzstd@0.8.3 ryu@1.0.23 same-file@1.0.6 schannel@0.1.29 scopeguard@1.2.0 scroll@0.13.0 scroll_derive@0.13.2 seccomp-sys@0.1.3 seccomp@0.1.2 security-framework-sys@2.17.0 security-framework@3.7.0 semver@1.0.28 serde@1.0.229 serde_core@1.0.229 serde_derive@1.0.229 serde_json@1.0.151 serde_path_to_error@0.1.20 serde_repr@0.1.21 serde_spanned@1.1.1 serde_urlencoded@0.7.1 sha1-checked@0.10.0 sha1@0.10.7 sha2@0.10.9 sha2@0.11.0 sharded-slab@0.1.7 shell-words@1.1.1 shlex@1.3.0 shlex@2.0.1 signal-hook-mio@0.2.5 signal-hook-registry@1.4.8 signal-hook@0.3.18 signal-hook@0.4.4 simd-adler32@0.3.10 simd_cesu8@1.2.0 simdutf8@0.1.5 simple_logger@5.2.0 simplelog@0.12.2 siphasher@1.0.3 slab@0.4.12 slog-term@2.9.2 slog@2.8.2 smallvec@1.16.1 smartstring@1.0.1 socket2@0.6.5 sorted-vec@0.8.11 spin@0.9.9 sscanf@0.5.0 sscanf_macro@0.5.0 stable_deref_trait@1.2.1 static_assertions@1.1.0 streaming-iterator@0.1.9 strsim@0.11.1 strum@0.27.2 strum@0.28.0 strum_macros@0.27.2 strum_macros@0.28.0 subtle@2.6.1 syn@1.0.109 syn@2.0.119 syn@3.0.5 sync_wrapper@1.0.2 synstructure@0.13.2 sysinfo@0.38.4 system-configuration-sys@0.6.0 system-configuration@0.7.0 tap@1.0.1 tar@0.4.46 tempfile@3.27.0 term@1.2.1 termcolor@1.4.1 termina@0.3.3 terminal_size@0.4.4 terminfo@0.9.0 termion@4.0.6 termios@0.3.3 termwiz@0.23.3 thiserror-impl@1.0.69 thiserror-impl@2.0.20 thiserror@1.0.69 thiserror@2.0.20 thread_local@1.1.10 threadpool@1.8.1 tikv-jemalloc-ctl@0.6.1 tikv-jemalloc-sys@0.6.1+5.3.0-1-ge13ca993e8ccb9ba9847cc330696e02839f328f7 tikv-jemallocator@0.6.1 time-core@0.1.9 time-macros@0.2.32 time@0.3.55 tiny_http@0.12.0 tinystr@0.8.4 tinytemplate@1.2.1 tinyvec@1.13.3 tokio-macros@2.7.2 tokio-native-tls@0.3.1 tokio-rustls@0.26.5 tokio-util@0.7.19 tokio@1.53.1 toml@1.1.6+spec-1.1.0 toml_datetime@1.1.1+spec-1.1.0 toml_edit@0.25.15+spec-1.1.0 toml_parser@1.1.3+spec-1.1.0 toml_writer@1.1.2+spec-1.1.0 tower-http@0.6.11 tower-layer@0.3.3 tower-service@0.3.3 tower@0.5.3 tracing-attributes@0.1.31 tracing-core@0.1.36 tracing-log@0.2.0 tracing-subscriber@0.3.23 tracing@0.1.44 tree-sitter-c@0.24.2 tree-sitter-language@0.1.8 tree-sitter@0.26.13 try-lock@0.2.5 twox-hash@2.1.4 typenum@1.20.1 ucd-trie@0.1.7 uds_windows@1.2.1 unicase@2.9.0 unicode-bom@2.0.3 unicode-ident@1.0.24 unicode-normalization@0.1.25 unicode-segmentation@1.13.3 unicode-truncate@2.0.1 unicode-width@0.1.14 unicode-width@0.2.2 unit-prefix@0.5.2 untrusted@0.9.0 url@2.5.8 utf8_iter@1.0.4 utf8parse@0.2.2 uuid@1.26.1 valuable@0.1.1 vcpkg@0.2.15 version-compare@0.2.1 version_check@0.9.5 virtio-bindings@0.2.7 virtio-queue@0.17.0 vm-fdt@0.3.0 vm-memory@0.17.1 vm-superio@0.8.2 vmm-sys-util@0.15.0 vsprintf@2.0.0 vtparse@0.6.2 walkdir@2.5.0 want@0.3.1 wasi@0.11.1+wasi-snapshot-preview1 wasip2@1.0.4+wasi-0.2.12 wasm-bindgen-futures@0.4.78 wasm-bindgen-macro-support@0.2.128 wasm-bindgen-macro@0.2.128 wasm-bindgen-shared@0.2.128 wasm-bindgen@0.2.128 web-sys@0.3.105 web-time@1.1.0 webpki-root-certs@1.0.9 wezterm-bidi@0.2.3 wezterm-blob-leases@0.1.1 wezterm-color-types@0.3.0 wezterm-dynamic-derive@0.1.1 wezterm-dynamic@0.2.1 wezterm-input-types@0.1.0 which@4.4.2 widestring@1.2.1 winapi-i686-pc-windows-gnu@0.4.0 winapi-util@0.1.11 winapi-x86_64-pc-windows-gnu@0.4.0 winapi@0.3.9 windows-collections@0.3.2 windows-core@0.62.2 windows-future@0.3.2 windows-implement@0.60.2 windows-interface@0.59.3 windows-link@0.2.1 windows-numerics@0.3.1 windows-registry@0.6.1 windows-result@0.4.1 windows-strings@0.5.1 windows-sys@0.48.0 windows-sys@0.52.0 windows-sys@0.59.0 windows-sys@0.61.2 windows-targets@0.48.5 windows-targets@0.52.6 windows-threading@0.2.1 windows@0.62.2 windows_aarch64_gnullvm@0.48.5 windows_aarch64_gnullvm@0.52.6 windows_aarch64_msvc@0.48.5 windows_aarch64_msvc@0.52.6 windows_i686_gnu@0.48.5 windows_i686_gnu@0.52.6 windows_i686_gnullvm@0.52.6 windows_i686_msvc@0.48.5 windows_i686_msvc@0.52.6 windows_x86_64_gnu@0.48.5 windows_x86_64_gnu@0.52.6 windows_x86_64_gnullvm@0.48.5 windows_x86_64_gnullvm@0.52.6 windows_x86_64_msvc@0.48.5 windows_x86_64_msvc@0.52.6 winnow@1.0.4 wit-bindgen@0.57.1 wrapcenum-derive@0.4.1 writeable@0.6.4 wyz@0.5.1 xattr@1.6.1 xdg@3.0.0 xi-unicode@0.3.0 xz2@0.1.7 yoke-derive@0.8.2 yoke@0.8.3 zbus@5.19.0 zbus_macros@5.19.0 zbus_names@4.3.4 zcheapstr@1.1.0 zerocopy-derive@0.8.57 zerocopy@0.8.57 zerofrom-derive@0.1.7 zerofrom@0.1.8 zeroize@1.9.0 zerotrie@0.2.5 zerovec-derive@0.11.6 zerovec@0.11.8 zlib-rs@0.6.8 zmij@1.0.23 zstd-safe@7.3.0 zstd-sys@2.1.0+zstd.1.5.7 zstd@0.13.3 zvariant@5.15.0 zvariant_derive@5.15.0 zvariant_utils@4.2.0 " COMMIT=00fec1e7a755028718e4b371df97360cf66b3a62 LLVM_COMPAT=( {16..22} ) RUST_MIN_VER="1.94.1" inherit cargo llvm-r2 linux-info DESCRIPTION="sched_ext schedulers and tools" HOMEPAGE="https://github.com/sched-ext/scx" if [[ "${PV}" == *_pre* ]]; then SRC_URI="https://github.com/sched-ext/scx/archive/${COMMIT}.tar.gz -> ${PN}-${COMMIT::8}.tar.gz" S="${WORKDIR}/${PN}-${COMMIT}" else SRC_URI="https://github.com/sched-ext/scx/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" KEYWORDS="~amd64" fi SRC_URI+=" ${CARGO_CRATE_URIS}" LICENSE="GPL-2" # Dependent crate licenses LICENSE+=" Apache-2.0 BSD BSD-2 CDLA-Permissive-2.0 GPL-2 GPL-3 ISC LGPL-2.1 LGPL-2.1+ MIT MPL-2.0 Unicode-3.0 Unicode-DFS-2016 WTFPL-2 ZLIB " SLOT="0" DEPEND=" >=dev-libs/libbpf-1.6:= sys-libs/libseccomp virtual/libelf:= virtual/zlib:= " RDEPEND=" ${DEPEND} " # shellcheck disable=SC2016 BDEPEND=" app-misc/jq dev-libs/protobuf[protoc(+)] >=dev-util/bpftool-7.5.0 $(llvm_gen_dep ' llvm-core/clang:${LLVM_SLOT}=[llvm_targets_BPF(-)] ') " PDEPEND="~sys-kernel/scx-loader-${PV}" CONFIG_CHECK=" ~BPF ~BPF_EVENTS ~BPF_JIT ~BPF_JIT_ALWAYS_ON ~BPF_JIT_DEFAULT_ON ~BPF_SYSCALL ~DEBUG_INFO_BTF ~FTRACE ~IKCONFIG ~IKCONFIG_PROC ~KALLSYMS_ALL ~SCHED_CLASS_EXT " QA_PREBUILT="/usr/bin/vmlinux_docify" pkg_setup() { linux-info_pkg_setup llvm-r2_pkg_setup rust_pkg_setup } src_compile() { local -x BPF_CLANG=clang-${LLVM_SLOT} cargo_src_compile } src_test() { # Skip broken tests in scx_mitosis and scx_utils # Upstream: https://github.com/sched-ext/scx/issues/3418 cargo_src_test -- \ --skip cell_manager::tests::test_borrowable_cpumasks_respects_cpuset \ --skip cell_manager::tests::test_cpuset_parsing_from_file \ --skip cell_manager::tests::test_deficit_all_cells_exceed_target \ --skip cell_manager::tests::test_symmetric_pairwise_overlap_produces_equal_cells \ --skip cpumask::tests::test_to_cpulist_roundtrip } src_install() { einfo "Installing schedulers" local sched for sched in scheds/rust/scx_*; do sched="${sched#scheds/rust/}" einfo "Installing ${sched}" dobin "$(cargo_target_dir)/${sched}" done einfo "Installing tools" dobin "$(cargo_target_dir)"/{scxtop,vmlinux_docify} dodoc README.md local readme readme_name for readme in scheds/rust/*/README.md ./rust/*/README.md; do [[ -e ${readme} ]] || continue readme_name="${readme#*/rust/}" readme_name="${readme_name%/README.md}" newdoc "${readme}" "${readme_name}.md" done }