-
Notifications
You must be signed in to change notification settings - Fork 201
build: switch c scheds to make #2647
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
+276
−205
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Currently we have two build systems: Cargo and Meson. Meson builds the C schedulers and is the only way, but can also drive Cargo providing a bunch of extra parameters. Meson also provides the framework for our current CI stress testing. Add a Makefile based system for building the C schedulers. We lose a lot of knobs in this migration, but that's deliberate - the very large matrix of Meson options was really confusing, and led to weird edge cases that we'd often miss in CI and with local testing. Also add the builds for the C schedulers to the CI for the first time. No real testing other than "it builds" yet. This change does not remove the Meson builds, but that is the direction. Letting them run in parallel for a while as the CI currently still relies on Meson and we should iron out any quirks with the build first. For example, we may need to vendor libbpf in Make like it was in Meson, but let's work that out in tree. All documentation is updated to remove references to Meson according to this plan. Implementation notes: - Only allows out of source builds. In source builds annoy me, and I'd rather we didn't maintain both types. Follows the `O=build` style of Linux but defaults to `build` if absent. - Uses `pkg-config` to find `libbpf`, making it easy to override the path if needed. We may still need to vendor libbpf after we find out how it does on distros. - Only supports calling `make` from the root. I tried to make it easier to call `cd scheds/c; make` but had a lot of trouble with `lib` not being nested under it. - Supports environment variables for the other tools, and these largely line up with our Cargo based build system. Aspirationally we should keep them matching wherever it makes sense. Test plan: - CI ``` jake@rooster:/data/users/jake/repos/scx/ > make install INSTALL_DIR=/tmp/nix-shell.lnmzMH/tmp.zBN35egECj make[2]: Nothing to be done for 'all'. make[2]: Nothing to be done for 'all'. make -C /data/users/jake/repos/scx/scheds/c install Installing schedulers to /tmp/nix-shell.lnmzMH/tmp.zBN35egECj Installing /data/users/jake/repos/scx/build/scheds/c/scx_simple Installing /data/users/jake/repos/scx/build/scheds/c/scx_qmap Installing /data/users/jake/repos/scx/build/scheds/c/scx_central Installing /data/users/jake/repos/scx/build/scheds/c/scx_userland Installing /data/users/jake/repos/scx/build/scheds/c/scx_nest Installing /data/users/jake/repos/scx/build/scheds/c/scx_flatcg Installing /data/users/jake/repos/scx/build/scheds/c/scx_pair Installing /data/users/jake/repos/scx/build/scheds/c/scx_prev Installing /data/users/jake/repos/scx/build/scheds/c/scx_sdt jake@rooster:/data/users/jake/repos/scx/ > ls /tmp/nix-shell.lnmzMH/tmp.zBN35egECj scx_central scx_flatcg scx_nest scx_pair scx_prev scx_qmap scx_sdt scx_simple scx_userland jake@rooster:/data/users/jake/repos/scx/ > sudo /tmp/nix-shell.lnmzMH/tmp.zBN35egECj/scx_central [SEQ 0] total : 19 local: 0 queued: 1 lost: 0 timer : 22 dispatch: 34 mismatch: 13 retry: 0 overflow: 0 [SEQ 1] total : 2285 local: 18 queued: 0 lost: 0 timer : 995 dispatch: 6908 mismatch: 25 retry: 0 overflow: 0 [SEQ 2] total : 2981 local: 61 queued: 0 lost: 0 timer : 1964 dispatch: 9048 mismatch: 29 retry: 0 overflow: 0 ^CEXIT: unregistered from user space ```
7960981 to
355203c
Compare
sirlucjan
approved these changes
Aug 20, 2025
Collaborator
sirlucjan
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
❯ makepkg -sr --sign
==> Making package: scx-scheds-git 1.0.15.r147.g5064b5f6-1 (śro, 20 sie 2025, 14:38:23)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
-> Cloning scx git repo...
Cloning into bare repository '/home/lucjan/Pobrane/scx'...
remote: Enumerating objects: 42437, done.
remote: Counting objects: 100% (685/685), done.
remote: Compressing objects: 100% (321/321), done.
remote: Total 42437 (delta 467), reused 370 (delta 364), pack-reused 41752 (from 3)
Receiving objects: 100% (42437/42437), 23.02 MiB | 35.56 MiB/s, done.
Resolving deltas: 100% (30346/30346), done.
==> Validating source files with sha256sums...
scx ... Skipped
==> Extracting sources...
-> Creating working copy of scx git repo...
Cloning into 'scx'...
done.
==> Starting prepare()...
355203c9 (origin/jakehillion/makefiles) build: switch c scheds to make
Auto-merging .github/include/flake.nix
==> Starting pkgver()...
==> Starting build()...
Compiling BPF: /home/lucjan/Pobrane/src/scx/lib/sdt_alloc.bpf.c -> /home/lucjan/Pobrane/src/scx/build/lib/sdt_alloc.bpf.o
Compiling BPF: /home/lucjan/Pobrane/src/scx/lib/sdt_task.bpf.c -> /home/lucjan/Pobrane/src/scx/build/lib/sdt_task.bpf.o
clang -g -O2 -Wall -Wno-compare-distinct-pointer-types -D__TARGET_ARCH_x86 -mcpu=v3 -mlittle-endian -target bpf -I/home/lucjan/Pobrane/src/scx/scheds/include -I/home/lucjan/Pobrane/src/scx/scheds/include/arch/x86 -I/home/lucjan/Pobrane/src/scx/scheds/include/bpf-compat -I/home/lucjan/Pobrane/src/scx/scheds/include/lib -DWITH_GZFILEOP -c /home/lucjan/Pobrane/src/scx/lib/sdt_alloc.bpf.c -o /home/lucjan/Pobrane/src/scx/build/lib/sdt_alloc.bpf.o
clang -g -O2 -Wall -Wno-compare-distinct-pointer-types -D__TARGET_ARCH_x86 -mcpu=v3 -mlittle-endian -target bpf -I/home/lucjan/Pobrane/src/scx/scheds/include -I/home/lucjan/Pobrane/src/scx/scheds/include/arch/x86 -I/home/lucjan/Pobrane/src/scx/scheds/include/bpf-compat -I/home/lucjan/Pobrane/src/scx/scheds/include/lib -DWITH_GZFILEOP -c /home/lucjan/Pobrane/src/scx/lib/sdt_task.bpf.c -o /home/lucjan/Pobrane/src/scx/build/lib/sdt_task.bpf.o
Building library object: /home/lucjan/Pobrane/src/scx/build/lib/lib.bpf.o
bpftool gen object /home/lucjan/Pobrane/src/scx/build/lib/lib.bpf.o /home/lucjan/Pobrane/src/scx/build/lib/sdt_alloc.bpf.o /home/lucjan/Pobrane/src/scx/build/lib/sdt_task.bpf.o
Compiling BPF: /home/lucjan/Pobrane/src/scx/scheds/c/scx_qmap.bpf.c -> /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_qmap.bpf.o
Compiling BPF: /home/lucjan/Pobrane/src/scx/scheds/c/scx_simple.bpf.c -> /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_simple.bpf.o
Compiling BPF: /home/lucjan/Pobrane/src/scx/scheds/c/scx_central.bpf.c -> /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_central.bpf.o
Compiling BPF: /home/lucjan/Pobrane/src/scx/scheds/c/scx_userland.bpf.c -> /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_userland.bpf.o
clang -g -O2 -Wall -Wno-compare-distinct-pointer-types -D__TARGET_ARCH_x86 -mcpu=v3 -mlittle-endian -target bpf -I/home/lucjan/Pobrane/src/scx/scheds/include -I/home/lucjan/Pobrane/src/scx/scheds/include/arch/x86 -I/home/lucjan/Pobrane/src/scx/scheds/include/bpf-compat -I/home/lucjan/Pobrane/src/scx/scheds/include/lib -DWITH_GZFILEOP -c /home/lucjan/Pobrane/src/scx/scheds/c/scx_simple.bpf.c -o /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_simple.bpf.o
clang -g -O2 -Wall -Wno-compare-distinct-pointer-types -D__TARGET_ARCH_x86 -mcpu=v3 -mlittle-endian -target bpf -I/home/lucjan/Pobrane/src/scx/scheds/include -I/home/lucjan/Pobrane/src/scx/scheds/include/arch/x86 -I/home/lucjan/Pobrane/src/scx/scheds/include/bpf-compat -I/home/lucjan/Pobrane/src/scx/scheds/include/lib -DWITH_GZFILEOP -c /home/lucjan/Pobrane/src/scx/scheds/c/scx_qmap.bpf.c -o /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_qmap.bpf.o
Compiling BPF: /home/lucjan/Pobrane/src/scx/scheds/c/scx_nest.bpf.c -> /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_nest.bpf.o
clang -g -O2 -Wall -Wno-compare-distinct-pointer-types -D__TARGET_ARCH_x86 -mcpu=v3 -mlittle-endian -target bpf -I/home/lucjan/Pobrane/src/scx/scheds/include -I/home/lucjan/Pobrane/src/scx/scheds/include/arch/x86 -I/home/lucjan/Pobrane/src/scx/scheds/include/bpf-compat -I/home/lucjan/Pobrane/src/scx/scheds/include/lib -DWITH_GZFILEOP -c /home/lucjan/Pobrane/src/scx/scheds/c/scx_central.bpf.c -o /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_central.bpf.o
clang -g -O2 -Wall -Wno-compare-distinct-pointer-types -D__TARGET_ARCH_x86 -mcpu=v3 -mlittle-endian -target bpf -I/home/lucjan/Pobrane/src/scx/scheds/include -I/home/lucjan/Pobrane/src/scx/scheds/include/arch/x86 -I/home/lucjan/Pobrane/src/scx/scheds/include/bpf-compat -I/home/lucjan/Pobrane/src/scx/scheds/include/lib -DWITH_GZFILEOP -c /home/lucjan/Pobrane/src/scx/scheds/c/scx_userland.bpf.c -o /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_userland.bpf.o
Compiling BPF: /home/lucjan/Pobrane/src/scx/scheds/c/scx_pair.bpf.c -> /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_pair.bpf.o
Compiling BPF: /home/lucjan/Pobrane/src/scx/scheds/c/scx_flatcg.bpf.c -> /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_flatcg.bpf.o
clang -g -O2 -Wall -Wno-compare-distinct-pointer-types -D__TARGET_ARCH_x86 -mcpu=v3 -mlittle-endian -target bpf -I/home/lucjan/Pobrane/src/scx/scheds/include -I/home/lucjan/Pobrane/src/scx/scheds/include/arch/x86 -I/home/lucjan/Pobrane/src/scx/scheds/include/bpf-compat -I/home/lucjan/Pobrane/src/scx/scheds/include/lib -DWITH_GZFILEOP -c /home/lucjan/Pobrane/src/scx/scheds/c/scx_nest.bpf.c -o /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_nest.bpf.o
Compiling BPF: /home/lucjan/Pobrane/src/scx/scheds/c/scx_prev.bpf.c -> /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_prev.bpf.o
clang -g -O2 -Wall -Wno-compare-distinct-pointer-types -D__TARGET_ARCH_x86 -mcpu=v3 -mlittle-endian -target bpf -I/home/lucjan/Pobrane/src/scx/scheds/include -I/home/lucjan/Pobrane/src/scx/scheds/include/arch/x86 -I/home/lucjan/Pobrane/src/scx/scheds/include/bpf-compat -I/home/lucjan/Pobrane/src/scx/scheds/include/lib -DWITH_GZFILEOP -c /home/lucjan/Pobrane/src/scx/scheds/c/scx_pair.bpf.c -o /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_pair.bpf.o
clang -g -O2 -Wall -Wno-compare-distinct-pointer-types -D__TARGET_ARCH_x86 -mcpu=v3 -mlittle-endian -target bpf -I/home/lucjan/Pobrane/src/scx/scheds/include -I/home/lucjan/Pobrane/src/scx/scheds/include/arch/x86 -I/home/lucjan/Pobrane/src/scx/scheds/include/bpf-compat -I/home/lucjan/Pobrane/src/scx/scheds/include/lib -DWITH_GZFILEOP -c /home/lucjan/Pobrane/src/scx/scheds/c/scx_flatcg.bpf.c -o /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_flatcg.bpf.o
clang -g -O2 -Wall -Wno-compare-distinct-pointer-types -D__TARGET_ARCH_x86 -mcpu=v3 -mlittle-endian -target bpf -I/home/lucjan/Pobrane/src/scx/scheds/include -I/home/lucjan/Pobrane/src/scx/scheds/include/arch/x86 -I/home/lucjan/Pobrane/src/scx/scheds/include/bpf-compat -I/home/lucjan/Pobrane/src/scx/scheds/include/lib -DWITH_GZFILEOP -c /home/lucjan/Pobrane/src/scx/scheds/c/scx_prev.bpf.c -o /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_prev.bpf.o
Compiling BPF: /home/lucjan/Pobrane/src/scx/scheds/c/scx_sdt.bpf.c -> /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_sdt.bpf.o
clang -g -O2 -Wall -Wno-compare-distinct-pointer-types -D__TARGET_ARCH_x86 -mcpu=v3 -mlittle-endian -target bpf -I/home/lucjan/Pobrane/src/scx/scheds/include -I/home/lucjan/Pobrane/src/scx/scheds/include/arch/x86 -I/home/lucjan/Pobrane/src/scx/scheds/include/bpf-compat -I/home/lucjan/Pobrane/src/scx/scheds/include/lib -DWITH_GZFILEOP -c /home/lucjan/Pobrane/src/scx/scheds/c/scx_sdt.bpf.c -o /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_sdt.bpf.o
Generating skeleton: /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_simple.bpf.skel.h
bpftool gen skeleton /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_simple.bpf.o name scx_simple > /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_simple.bpf.skel.h
Generating skeleton: /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_userland.bpf.skel.h
bpftool gen skeleton /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_userland.bpf.o name scx_userland > /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_userland.bpf.skel.h
Generating skeleton: /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_central.bpf.skel.h
bpftool gen skeleton /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_central.bpf.o name scx_central > /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_central.bpf.skel.h
Generating library skeleton: /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_sdt.bpf.skel.h
bpftool gen object /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_sdt.l1o /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_sdt.bpf.o /home/lucjan/Pobrane/src/scx/build/lib/lib.bpf.o
bpftool gen object /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_sdt.l2o /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_sdt.l1o
bpftool gen object /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_sdt.l3o /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_sdt.l2o
Generating skeleton: /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_nest.bpf.skel.h
bpftool gen skeleton /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_nest.bpf.o name scx_nest > /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_nest.bpf.skel.h
bpftool gen skeleton /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_sdt.l3o name scx_sdt > /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_sdt.bpf.skel.h
Building scheduler: /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_userland
cc -std=gnu11 -I/home/lucjan/Pobrane/src/scx/scheds/include -I/home/lucjan/Pobrane/src/scx/build/scheds/c -DWITH_GZFILEOP /home/lucjan/Pobrane/src/scx/scheds/c/scx_userland.c -o /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_userland -lbpf -lelf -lz -lzstd -lpthread
Generating skeleton: /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_flatcg.bpf.skel.h
bpftool gen skeleton /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_flatcg.bpf.o name scx_flatcg > /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_flatcg.bpf.skel.h
Generating skeleton: /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_qmap.bpf.skel.h
Building scheduler: /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_simple
bpftool gen skeleton /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_qmap.bpf.o name scx_qmap > /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_qmap.bpf.skel.h
cc -std=gnu11 -I/home/lucjan/Pobrane/src/scx/scheds/include -I/home/lucjan/Pobrane/src/scx/build/scheds/c -DWITH_GZFILEOP /home/lucjan/Pobrane/src/scx/scheds/c/scx_simple.c -o /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_simple -lbpf -lelf -lz -lzstd -lpthread
Generating skeleton: /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_prev.bpf.skel.h
Building scheduler: /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_central
bpftool gen skeleton /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_prev.bpf.o name scx_prev > /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_prev.bpf.skel.h
cc -std=gnu11 -I/home/lucjan/Pobrane/src/scx/scheds/include -I/home/lucjan/Pobrane/src/scx/build/scheds/c -DWITH_GZFILEOP /home/lucjan/Pobrane/src/scx/scheds/c/scx_central.c -o /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_central -lbpf -lelf -lz -lzstd -lpthread
Building scheduler: /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_nest
cc -std=gnu11 -I/home/lucjan/Pobrane/src/scx/scheds/include -I/home/lucjan/Pobrane/src/scx/build/scheds/c -DWITH_GZFILEOP /home/lucjan/Pobrane/src/scx/scheds/c/scx_nest.c -o /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_nest -lbpf -lelf -lz -lzstd -lpthread
Generating skeleton: /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_pair.bpf.skel.h
bpftool gen skeleton /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_pair.bpf.o name scx_pair > /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_pair.bpf.skel.h
Building scheduler: /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_flatcg
cc -std=gnu11 -I/home/lucjan/Pobrane/src/scx/scheds/include -I/home/lucjan/Pobrane/src/scx/build/scheds/c -DWITH_GZFILEOP /home/lucjan/Pobrane/src/scx/scheds/c/scx_flatcg.c -o /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_flatcg -lbpf -lelf -lz -lzstd -lpthread
Building scheduler: /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_prev
cc -std=gnu11 -I/home/lucjan/Pobrane/src/scx/scheds/include -I/home/lucjan/Pobrane/src/scx/build/scheds/c -DWITH_GZFILEOP /home/lucjan/Pobrane/src/scx/scheds/c/scx_prev.c -o /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_prev -lbpf -lelf -lz -lzstd -lpthread
Building scheduler: /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_qmap
cc -std=gnu11 -I/home/lucjan/Pobrane/src/scx/scheds/include -I/home/lucjan/Pobrane/src/scx/build/scheds/c -DWITH_GZFILEOP /home/lucjan/Pobrane/src/scx/scheds/c/scx_qmap.c -o /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_qmap -lbpf -lelf -lz -lzstd -lpthread
Building scheduler: /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_pair
cc -std=gnu11 -I/home/lucjan/Pobrane/src/scx/scheds/include -I/home/lucjan/Pobrane/src/scx/build/scheds/c -DWITH_GZFILEOP /home/lucjan/Pobrane/src/scx/scheds/c/scx_pair.c -o /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_pair -lbpf -lelf -lz -lzstd -lpthread
rm -f /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_sdt.l1o /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_sdt.l2o /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_sdt.l3o
Building library scheduler: /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_sdt
cc -std=gnu11 -I/home/lucjan/Pobrane/src/scx/scheds/include -I/home/lucjan/Pobrane/src/scx/build/scheds/c -DWITH_GZFILEOP /home/lucjan/Pobrane/src/scx/scheds/c/scx_sdt.c -o /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_sdt -lbpf -lelf -lz -lzstd -lpthread
rm /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_central.bpf.o /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_prev.bpf.o /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_nest.bpf.o /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_flatcg.bpf.o /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_simple.bpf.o /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_userland.bpf.o /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_pair.bpf.o /home/lucjan/Pobrane/src/scx/build/scheds/c/scx_qmap.bpf.o
==> Entering fakeroot environment...
==> Starting package()...
==> Tidying install...
-> Removing libtool files...
-> Purging unwanted files...
-> Removing static library files...
-> Stripping unneeded symbols from binaries and libraries...
-> Compressing man and info pages...
==> Checking for packaging issues...
==> WARNING: Package contains reference to $srcdir
usr/bin/scx_central
usr/bin/scx_flatcg
usr/bin/scx_nest
usr/bin/scx_pair
usr/bin/scx_prev
usr/bin/scx_qmap
usr/bin/scx_sdt
usr/bin/scx_sdt.bpf.o
usr/bin/scx_simple
usr/bin/scx_userland
==> WARNING: backup entry file not in package : etc/default/scx
==> Creating package "scx-scheds-git"...
-> Generating .PKGINFO file...
-> Generating .BUILDINFO file...
-> Generating .MTREE file...
-> Compressing package...
==> Leaving fakeroot environment.
==> Signing package(s)...
-> Created signature file scx-scheds-git-1.0.15.r147.g5064b5f6-1-x86_64_v4.pkg.tar.zst.sig.
==> Finished making: scx-scheds-git 1.0.15.r147.g5064b5f6-1 (śro, 20 sie 2025, 14:38:35)
'makepkg -sr --sign' time: 13,181s, cpu: 129%
Contributor
|
this is a lot of work but i love this direction (i.e. sed |
likewhatevs
approved these changes
Aug 20, 2025
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently we have two build systems: Cargo and Meson. Meson builds the C schedulers and is the only way, but can also drive Cargo providing a bunch of extra parameters. Meson also provides the framework for our current CI stress testing.
Add a Makefile based system for building the C schedulers. We lose a lot of knobs in this migration, but that's deliberate - the very large matrix of Meson options was really confusing, and led to weird edge cases that we'd often miss in CI and with local testing.
Also add the builds for the C schedulers to the CI for the first time. No real testing other than "it builds" yet.
This change does not remove the Meson builds, but that is the direction. Letting them run in parallel for a while as the CI currently still relies on Meson and we should iron out any quirks with the build first. For example, we may need to vendor libbpf in Make like it was in Meson, but let's work that out in tree. All documentation is updated to remove references to Meson according to this plan.
Implementation notes:
O=buildstyle of Linux but defaults tobuildif absent.pkg-configto findlibbpf, making it easy to override the path if needed. We may still need to vendor libbpf after we find out how it does on distros.makefrom the root. I tried to make it easier to callcd scheds/c; makebut had a lot of trouble withlibnot being nested under it.Test plan: