Add detection for `ftruncate` function in Meson, so that it can be used when possible instead of fallback version `qemu_ftruncate64`.
Signed-off-by: Tianlan Zhou <[email protected]> Resolves: https://gitlab.com/qemu-project/qemu/-/issues/3234 --- include/system/os-win32.h | 2 +- meson.build | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/include/system/os-win32.h b/include/system/os-win32.h index 22d72babdf..9832b7589a 100644 --- a/include/system/os-win32.h +++ b/include/system/os-win32.h @@ -140,7 +140,7 @@ static inline void os_setup_limits(void) int qemu_ftruncate64(int, int64_t); -#if !defined(ftruncate) +#ifndef CONFIG_FTRUNCATE # define ftruncate qemu_ftruncate64 #endif diff --git a/meson.build b/meson.build index db87358d62..0b41952a0b 100644 --- a/meson.build +++ b/meson.build @@ -3253,6 +3253,17 @@ if host_os == 'windows' config_host_data.set('CONFIG_CONVERT_STRING_TO_BSTR', has_convert_string_to_bstr) endif +# Detect if ftruncate exist +if host_os == 'windows' + has_ftruncate = cxx.links(''' + #include <unistd.h> + int main() { + return ftruncate(0, 0); + } + ''') + config_host_data.set('CONFIG_FTRUNCATE', has_ftruncate) +endif + ######################## # Target configuration # ######################## -- 2.52.0
