From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= Date: Tue, 4 Oct 2022 10:32:05 +0100 Subject: meson: enforce a minimum Linux kernel headers version >= 4.18 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Git-commit: 0000000000000000000000000000000000000000 Refereces: bsc#1204001 Various areas of QEMU have a dependency on Linux kernel header definitions. This falls under the scope of our supported platforms matrix, but historically we've not checked for a minimum kernel headers version. This has made it unclear when we can drop support for older kernel headers. * Alpine 3.14: 5.10 * CentOS 8: 4.18 * CentOS 9: 5.14 * Debian 10: 4.19 * Debian 11: 5.10 * Fedora 35: 5.19 * Fedora 36: 5.19 * OpenSUSE 15.3: 5.3.0 * Ubuntu 20.04: 5.4 * Ubuntu 22.04: 5.15 The above ignores the 3rd version digit since distros update their packages periodically and such updates don't generally affect public APIs to the extent that it matters for our build time check. Overall, we can set the baseline to 4.18 currently. Signed-off-by: Daniel P. Berrangé Signed-off-by: Dario Faggioli --- meson.build | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/meson.build b/meson.build index 09145d35aa3e684e92da7895ac67..a923eedefd56bc1401a111d6d8f7 100644 --- a/meson.build +++ b/meson.build @@ -248,6 +248,18 @@ if targetos == 'linux' add_project_arguments('-isystem', meson.current_source_dir() / 'linux-headers', '-isystem', 'linux-headers', language: ['c', 'cpp']) + + if not cc.compiles(''' + #include + int main(void) { +#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 18, 0) +#error "QEMU requires Linux kernel headers version >= 4.18.0" +#endif + return 0; + }''') + error('QEMU requires Linux kernel headers version >= 4.18.0') +endif + endif add_project_arguments('-iquote', '.',