From: Michael Tokarev Date: Sat, 24 Aug 2024 08:00:35 +0300 Updated: Mon, 02 Dec 2024 17:14:04 +0300 Subject: Add OS detection and support for GNU/Hurd Forwarded: not-needed Adds minimal (just OS detection) "support" for GNU/Hurd. Just a test for now. diff --git a/configure b/configure index 0aea9b113b..0648634636 100755 --- a/configure +++ b/configure @@ -353,2 +353,4 @@ elif check_define __NetBSD__; then host_os=netbsd +elif check_define __GNU__; then + host_os=hurd elif check_define __APPLE__; then diff --git a/meson.build b/meson.build index 91a0aa64c6..12246a588d 100644 --- a/meson.build +++ b/meson.build @@ -46,3 +46,3 @@ qapi_trace_events = [] bsd_oses = ['gnu/kfreebsd', 'freebsd', 'netbsd', 'openbsd', 'dragonfly', 'darwin'] -supported_oses = ['windows', 'freebsd', 'netbsd', 'openbsd', 'darwin', 'sunos', 'linux'] +supported_oses = ['windows', 'freebsd', 'netbsd', 'openbsd', 'darwin', 'sunos', 'linux', 'hurd'] supported_cpus = ['ppc', 'ppc64', 's390x', 'riscv32', 'riscv64', 'x86', 'x86_64', diff --git a/include/qemu/osdep.h b/include/qemu/osdep.h index c7053cdc2b..560ed59ac0 100644 --- a/include/qemu/osdep.h +++ b/include/qemu/osdep.h @@ -135,4 +135,11 @@ QEMU_EXTERN_C int daemon(int, int); +#if defined(__GNU__) && !defined(PATH_MAX) /* GNU Hurd */ +# define PATH_MAX 4096 +#endif + #ifdef CONFIG_IOVEC #include +# if defined(__GNU__) && !defined(IOV_MAX) /* GNU Hurd */ +# define IOV_MAX 1024 +# endif #endif diff --git a/block/file-posix.c b/block/file-posix.c index ff928b5e85..bf165a5a71 100644 --- a/block/file-posix.c +++ b/block/file-posix.c @@ -85,4 +85,7 @@ #endif #endif +#ifdef __GNU__ +#include +#endif #if defined(CONFIG_FALLOCATE_PUNCH_HOLE) || defined(CONFIG_FALLOCATE_ZERO_RANGE) #include @@ -2004,4 +2007,5 @@ static int handle_aiocb_write_zeroes_unmap(void *opaque) #ifndef HAVE_COPY_FILE_RANGE +#define copy_file_range qemu_copy_file_range static off_t copy_file_range(int in_fd, off_t *in_off, int out_fd, off_t *out_off, size_t len, unsigned int flags)