From e0d5fa1efe4e8fb41f67a43455fb3a296d04527f Mon Sep 17 00:00:00 2001 From: Kleis Auke Wolthuizen Date: Wed, 19 Feb 2025 13:24:36 +0100 Subject: [PATCH] Linux: ensure GLib's `g_print*()` functions wrap the system ones C99 `printf()` semantics are well-supported by these Linux cross-targets, avoids the need for gnulib compat functions. An alternative is setting up QEMU when cross-compiling, as this functionality is gated by `meson.can_run_host_binaries()`, but this is a bit simpler. --- platforms/linux-armv6/meson.ini | 6 ++++++ platforms/linux-ppc64le/meson.ini | 6 ++++++ platforms/linux-s390x/meson.ini | 6 ++++++ platforms/linuxmusl-arm64v8/meson.ini | 6 +++++- platforms/linuxmusl-x64/meson.ini | 2 +- 5 files changed, 24 insertions(+), 2 deletions(-) diff --git a/platforms/linux-armv6/meson.ini b/platforms/linux-armv6/meson.ini index d06f2638..1371dea5 100644 --- a/platforms/linux-armv6/meson.ini +++ b/platforms/linux-armv6/meson.ini @@ -13,6 +13,12 @@ ld = 'arm-rpi-linux-gnueabihf-gcc-ld' strip = 'arm-rpi-linux-gnueabihf-strip' ranlib = 'arm-rpi-linux-gnueabihf-gcc-ranlib' +[properties] +# https://docs.gtk.org/glib/cross-compiling.html#cross-properties +have_c99_vsnprintf = true +have_c99_snprintf = true +have_unix98_printf = true + [built-in options] libdir = 'lib' datadir = '/usr/share' diff --git a/platforms/linux-ppc64le/meson.ini b/platforms/linux-ppc64le/meson.ini index d8e648a6..fcb2c1a9 100644 --- a/platforms/linux-ppc64le/meson.ini +++ b/platforms/linux-ppc64le/meson.ini @@ -14,6 +14,12 @@ strip = 'powerpc64le-linux-gnu-strip' ranlib = 'powerpc64le-linux-gnu-gcc-ranlib' #exe_wrapper = 'qemu-ppc64le-static' +[properties] +# https://docs.gtk.org/glib/cross-compiling.html#cross-properties +have_c99_vsnprintf = true +have_c99_snprintf = true +have_unix98_printf = true + [built-in options] libdir = 'lib' datadir = '/usr/share' diff --git a/platforms/linux-s390x/meson.ini b/platforms/linux-s390x/meson.ini index 29cbf642..0b1cfb15 100644 --- a/platforms/linux-s390x/meson.ini +++ b/platforms/linux-s390x/meson.ini @@ -14,6 +14,12 @@ strip = 's390x-linux-gnu-strip' ranlib = 's390x-linux-gnu-gcc-ranlib' #exe_wrapper = 'qemu-s390x-static' +[properties] +# https://docs.gtk.org/glib/cross-compiling.html#cross-properties +have_c99_vsnprintf = true +have_c99_snprintf = true +have_unix98_printf = true + [built-in options] libdir = 'lib' datadir = '/usr/share' diff --git a/platforms/linuxmusl-arm64v8/meson.ini b/platforms/linuxmusl-arm64v8/meson.ini index 4f47b7d5..f291e68d 100644 --- a/platforms/linuxmusl-arm64v8/meson.ini +++ b/platforms/linuxmusl-arm64v8/meson.ini @@ -13,10 +13,14 @@ ld = 'aarch64-linux-musl-ld' strip = 'aarch64-linux-musl-strip' ranlib = 'aarch64-linux-musl-ranlib' +[properties] # Ensure we disable the inotify backend in GIO # See: https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2991#note_1592863 -[properties] has_function_inotify_init1 = false +# https://docs.gtk.org/glib/cross-compiling.html#cross-properties +have_c99_vsnprintf = true +have_c99_snprintf = true +have_unix98_printf = true [built-in options] libdir = 'lib' diff --git a/platforms/linuxmusl-x64/meson.ini b/platforms/linuxmusl-x64/meson.ini index 8496c9bb..86c70e82 100644 --- a/platforms/linuxmusl-x64/meson.ini +++ b/platforms/linuxmusl-x64/meson.ini @@ -1,9 +1,9 @@ [binaries] strip = 'strip' +[properties] # Ensure we disable the inotify backend in GIO # See: https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2991#note_1592863 -[properties] has_function_inotify_init1 = false [built-in options]