Skip to content

Conversation

@JakeHillion
Copy link
Contributor

Now we've had the warning about Meson for a while and everyone we know about has migrated to pure Cargo, increase the level of the deprecation. The next step is to hard error the build unless a flag is specified to override this. This new flag to hide this error is documented and will force anyone who was taking updates automatically to notice the change.

Test plan:

  • CI
  • CI with the first version of this commit (no flag). It failed with the expected error.

Now we've had the warning about Meson for a while and everyone we know
about has migrated to pure Cargo, increase the level of the deprecation.
The next step is to hard error the build unless a flag is specified to
override this. This new flag to hide this error is documented and will
force anyone who was taking updates automatically to notice the change.

Test plan:
- CI
- CI with the first version of this commit (no flag). It failed with the
  expected error.
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.

- without new flag:

==> Starting prepare()...
58e6680c (origin/meson-haters-club) meson: deprecate harder
==> Starting pkgver()...
==> Updated version: scx-scheds-git 1.0.17.r144.g737b9b13-1
==> Starting build()...
+ exec meson setup --prefix /usr --libexecdir lib --sbindir bin --buildtype plain --auto-features enabled --wrap-mode nodownload -D b_pie=true -D python.bytecompile=1 . build -D openrc=disabled -D libbpf_a=disabled -D bpftool=disabled -D b_lto=true -D b_lto_mode=thin -D cargo_home=/home/lucjan/Pobrane/scx-scheds-git2/src/scx
The Meson build system
Version: 1.9.1
Source dir: /home/lucjan/Pobrane/scx-scheds-git2/src/scx
Build dir: /home/lucjan/Pobrane/scx-scheds-git2/src/scx/build
Build type: native build
Project name: sched_ext schedulers
Project version: 1.0.17
C compiler for the host machine: cc (gcc 15.2.1 "cc (GCC) 15.2.1 20250813")
C linker for the host machine: cc ld.bfd 2.45.0
Host machine cpu family: x86_64
Host machine cpu: x86_64

meson.build:9:2: ERROR: Problem encountered: Meson builds are deprecated. Please switch to `cargo build` for Rust schedulers and `make` for C schedulers. Meson will be removed in an upcoming release. Please report any issues packaging for distributions at https://github.com/sched-ext/scx/discussions/2731. If you need Meson to unblock yourself temporarily, add `-Dforce_meson=true` when configuring.

A full log can be found at /home/lucjan/Pobrane/scx-scheds-git2/src/scx/build/meson-logs/meson-log.txt
==> ERROR: A failure occurred in build().
    Aborting...

- with new flag

+ exec meson setup --prefix /usr --libexecdir lib --sbindir bin --buildtype plain --auto-features enabled --wrap-mode nodownload -D b_pie=true -D python.bytecompile=1 . build -D openrc=disabled -D libbpf_a=disabled -D bpftool=disabled -D b_lto=true -D b_lto_mode=thin -D force_meson=true -D cargo_home=/home/lucjan/Pobrane/scx-scheds-git/src/scx
The Meson build system
Version: 1.9.1
Source dir: /home/lucjan/Pobrane/scx-scheds-git/src/scx
Build dir: /home/lucjan/Pobrane/scx-scheds-git/src/scx/build
Build type: native build
Project name: sched_ext schedulers
Project version: 1.0.17
C compiler for the host machine: cc (gcc 15.2.1 "cc (GCC) 15.2.1 20250813")
C linker for the host machine: cc ld.bfd 2.45.0
Host machine cpu family: x86_64
Host machine cpu: x86_64
Program clang found: YES (/usr/bin/clang)
Program /home/lucjan/Pobrane/scx-scheds-git/src/scx/meson-scripts/veristat found: YES (/home/lucjan/Pobrane/scx-scheds-git/src/scx/meson-scripts/veristat)
Program /home/lucjan/Pobrane/scx-scheds-git/src/scx/meson-scripts/veristat_diff found: YES (/home/lucjan/Pobrane/scx-scheds-git/src/scx/meson-scripts/veristat_diff)
Program /home/lucjan/Pobrane/scx-scheds-git/src/scx/meson-scripts/run_stress_tests found: YES (/home/lucjan/Pobrane/scx-scheds-git/src/scx/meson-scripts/run_stress_tests)
Program /home/lucjan/Pobrane/scx-scheds-git/src/scx/meson-scripts/get_clang_ver found: YES (/home/lucjan/Pobrane/scx-scheds-git/src/scx/meson-scripts/get_clang_ver)
Program /home/lucjan/Pobrane/scx-scheds-git/src/scx/meson-scripts/get_bpftool_ver found: YES (/home/lucjan/Pobrane/scx-scheds-git/src/scx/meson-scripts/get_bpftool_ver)
Program /home/lucjan/Pobrane/scx-scheds-git/src/scx/meson-scripts/bpftool_build_skel found: YES (/home/lucjan/Pobrane/scx-scheds-git/src/scx/meson-scripts/bpftool_build_skel)
Program /home/lucjan/Pobrane/scx-scheds-git/src/scx/meson-scripts/bpftool_build_skel_lib found: YES (/home/lucjan/Pobrane/scx-scheds-git/src/scx/meson-scripts/bpftool_build_skel_lib)
Program /home/lucjan/Pobrane/scx-scheds-git/src/scx/meson-scripts/get_sys_incls found: YES (/home/lucjan/Pobrane/scx-scheds-git/src/scx/meson-scripts/get_sys_incls)
Program /home/lucjan/Pobrane/scx-scheds-git/src/scx/meson-scripts/test_sched found: YES (/home/lucjan/Pobrane/scx-scheds-git/src/scx/meson-scripts/test_sched)
Program /home/lucjan/Pobrane/scx-scheds-git/src/scx/meson-scripts/fetch_libbpf found: YES (/bin/bash /home/lucjan/Pobrane/scx-scheds-git/src/scx/meson-scripts/fetch_libbpf)
Program /home/lucjan/Pobrane/scx-scheds-git/src/scx/meson-scripts/build_libbpf found: YES (/home/lucjan/Pobrane/scx-scheds-git/src/scx/meson-scripts/build_libbpf)
Program /home/lucjan/Pobrane/scx-scheds-git/src/scx/meson-scripts/fetch_bpftool found: YES (/bin/bash /home/lucjan/Pobrane/scx-scheds-git/src/scx/meson-scripts/fetch_bpftool)
Program /home/lucjan/Pobrane/scx-scheds-git/src/scx/meson-scripts/build_bpftool found: YES (/bin/bash /home/lucjan/Pobrane/scx-scheds-git/src/scx/meson-scripts/build_bpftool)
Program /home/lucjan/Pobrane/scx-scheds-git/src/scx/meson-scripts/compile_scx_lib found: YES (/home/lucjan/Pobrane/scx-scheds-git/src/scx/meson-scripts/compile_scx_lib)
Program jq found: YES (/usr/bin/jq)
Program make found: YES (/usr/bin/make)
Program nproc found: YES (/usr/bin/nproc)
Program protoc found: YES (/usr/bin/protoc)
Program llvm-strip found: YES (/usr/bin/llvm-strip)
Found pkg-config: YES (/usr/bin/pkg-config) 2.5.1
Run-time dependency libseccomp found: YES 2.5.6
Run-time dependency libbpf found: YES 1.5.1
Program bpftool found: YES (/usr/bin/bpftool)
Message: cpu=x86_64 bpf_base_cflags=['-g', '-O2', '-Wall', '-Wno-compare-distinct-pointer-types', '-D__TARGET_ARCH_x86', '-mcpu=v3', '-mlittle-endian', '-idirafter /usr/lib/clang/21/include', '-idirafter /usr/local/include', '-idirafter /usr/include']
Program cargo found: YES (/usr/bin/cargo)
Program /home/lucjan/Pobrane/scx-scheds-git/src/scx/meson-scripts/cargo_fetch found: YES (/home/lucjan/Pobrane/scx-scheds-git/src/scx/meson-scripts/cargo_fetch)
Run-time dependency threads found: YES
Dependency threads found: YES unknown (cached)
Run-time dependency systemd found: YES 258
Dependency openrc skipped: feature openrc disabled
Build targets in project: 76

sched_ext schedulers 1.0.17

  User defined options
    auto_features     : enabled
    b_lto             : true
    b_lto_mode        : thin
    b_pie             : true
    bpftool           : disabled
    buildtype         : plain
    cargo_home        : /home/lucjan/Pobrane/scx-scheds-git/src/scx
    force_meson       : true
    libbpf_a          : disabled
    libexecdir        : lib
    openrc            : disabled
    prefix            : /usr
    python.bytecompile: 1
    sbindir           : bin
    wrap_mode         : nodownload

Found ninja-1.13.1 at /usr/bin/ninja

Generating targets:   0%|          | 0/76 eta ?
                                               

Writing build.ninja:   0%|          | 0/177 eta ?
                                                 
ninja: Entering directory `/home/lucjan/Pobrane/scx-scheds-git/src/scx/build'
[1/47] Generating libbpf with a custom command

[2/47] Generating bpftool_target with a custom command

[3/47] Generating copy dsq_lat with a custom command
[4/47] Generating copy runq_lat with a custom command
[5/47] Generating copy stress wrapper with a custom command
[6/47] Compiling C object cc_cflags_probe.p/meson-scripts_cc_cflags_probe.c.o
[7/47] Linking target cc_cflags_probe
[8/47] Generating 'scheds/c/scx_prev.p/scx_prev.bpf.o'
[9/47] Generating 'scheds/c/scx_pair.p/scx_pair.bpf.o'
[10/47] Generating from 'scx_prev.bpf.o'
[11/47] Generating 'scheds/c/scx_nest.p/scx_nest.bpf.o'
[12/47] Generating 'scheds/c/scx_qmap.p/scx_qmap.bpf.o'
[13/47] Generating from 'scx_pair.bpf.o'
[14/47] Generating 'scheds/c/scx_simple.p/scx_simple.bpf.o'
[15/47] Generating 'scheds/c/scx_flatcg.p/scx_flatcg.bpf.o'
[16/47] Generating lib/sdt_task with a custom command
[17/47] Generating from 'scx_nest.bpf.o'
[18/47] Generating 'scheds/c/scx_central.p/scx_central.bpf.o'
[19/47] Generating 'scheds/c/scx_userland.p/scx_userland.bpf.o'
[20/47] Generating from 'scx_simple.bpf.o'
[21/47] Generating 'scheds/c/scx_sdt.p/scx_sdt.bpf.o'
[22/47] Generating from 'scx_qmap.bpf.o'
[23/47] Compiling C object scheds/c/scx_pair.p/scx_pair.c.o
[24/47] Compiling C object scheds/c/scx_prev.p/scx_prev.c.o
[25/47] Generating from 'scx_flatcg.bpf.o'
[26/47] Generating from 'scx_central.bpf.o'
[27/47] Generating from 'scx_userland.bpf.o'
[28/47] Compiling C object scheds/c/scx_simple.p/scx_simple.c.o
[29/47] Generating lib/sdt_alloc with a custom command
[30/47] Compiling C object scheds/c/scx_qmap.p/scx_qmap.c.o
[31/47] Compiling C object scheds/c/scx_nest.p/scx_nest.c.o
[32/47] Generating lib/lib with a custom command
[33/47] Compiling C object scheds/c/scx_central.p/scx_central.c.o
[34/47] Compiling C object scheds/c/scx_userland.p/scx_userland.c.o
[35/47] Compiling C object scheds/c/scx_flatcg.p/scx_flatcg.c.o
[36/47] Linking target scheds/c/scx_prev
[37/47] Linking target scheds/c/scx_simple
[38/47] Linking target scheds/c/scx_pair
[39/47] Linking target scheds/c/scx_qmap
[40/47] Linking target scheds/c/scx_central
[41/47] Linking target scheds/c/scx_nest
[42/47] Linking target scheds/c/scx_flatcg
[43/47] Generating from 'scx_sdt.bpf.o'
[44/47] Linking target scheds/c/scx_userland
[45/47] Compiling C object scheds/c/scx_sdt.p/scx_sdt.c.o
[46/47] Linking target scheds/c/scx_sdt
[47/47] Generating rust_all with a custom command (wrapped by meson to set env)
INFO: autodetecting backend as ninja
INFO: calculating backend command to run: /usr/bin/ninja -C /home/lucjan/Pobrane/scx-scheds-git/src/scx/build

@JakeHillion JakeHillion added this pull request to the merge queue Oct 22, 2025
Merged via the queue into main with commit e47bf90 Oct 22, 2025
42 checks passed
@JakeHillion JakeHillion deleted the meson-haters-club branch October 22, 2025 16:34
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.

3 participants