Skip to content

Conversation

@JakeHillion
Copy link
Contributor

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

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
```
@JakeHillion JakeHillion force-pushed the jakehillion/makefiles branch from 7960981 to 355203c Compare August 20, 2025 12:15
Copy link
Collaborator

@sirlucjan sirlucjan left a 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%

@likewhatevs
Copy link
Contributor

likewhatevs commented Aug 20, 2025

this is a lot of work but i love this direction (i.e. sed s/meson/make&&cargo/g)

@JakeHillion JakeHillion added this pull request to the merge queue Aug 21, 2025
Merged via the queue into main with commit 9b887ba Aug 21, 2025
42 checks passed
@JakeHillion JakeHillion deleted the jakehillion/makefiles branch August 21, 2025 09:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants