diff options
-rw-r--r-- | .SRCINFO | 4 | ||||
-rw-r--r-- | PKGBUILD | 9 | ||||
-rw-r--r-- | qemu-7.0.0-glibc-2.36.patch | 43 |
3 files changed, 52 insertions, 4 deletions
@@ -1,6 +1,6 @@ pkgbase = qemu-git pkgdesc = A generic and open source machine emulator and virtualizer. Git version. - pkgver = 7.1.0.rc0.r0.g7b17a1a841 + pkgver = 7.1.0.rc1.r4.g2480f3bbd0 pkgrel = 1 epoch = 16 url = https://wiki.qemu.org/ @@ -70,9 +70,11 @@ pkgbase = qemu-git source = git://git.qemu.org/qemu.git source = qemu-guest-agent.service source = 65-kvm.rules + source = qemu-7.0.0-glibc-2.36.patch sha256sums = SKIP sha256sums = c39bcde4a09165e64419fd2033b3532378bba84d509d39e2d51694d44c1f8d88 sha256sums = a66f0e791b16b03b91049aac61a25950d93e962e1b2ba64a38c6ad7f609b532c + sha256sums = 1eee1b5d839fdfc5cd5a18f0c769b01228c14781de1368670e2c589cd6903a6e pkgname = qemu-git pkgdesc = QEMU Git version. @@ -16,7 +16,7 @@ pkgname=( qemu-guest-agent-git ) pkgdesc="A generic and open source machine emulator and virtualizer. Git version." -pkgver=7.1.0.rc0.r0.g7b17a1a841 +pkgver=7.1.0.rc1.r4.g2480f3bbd0 pkgrel=1 epoch=16 arch=(i686 x86_64) @@ -86,10 +86,12 @@ makedepends=( ) source=(git://git.qemu.org/qemu.git qemu-guest-agent.service - 65-kvm.rules) + 65-kvm.rules + qemu-7.0.0-glibc-2.36.patch) sha256sums=('SKIP' 'c39bcde4a09165e64419fd2033b3532378bba84d509d39e2d51694d44c1f8d88' - 'a66f0e791b16b03b91049aac61a25950d93e962e1b2ba64a38c6ad7f609b532c') + 'a66f0e791b16b03b91049aac61a25950d93e962e1b2ba64a38c6ad7f609b532c' + '1eee1b5d839fdfc5cd5a18f0c769b01228c14781de1368670e2c589cd6903a6e') case $CARCH in i?86) _corearch=i386 ;; @@ -103,6 +105,7 @@ pkgver() { prepare() { cd "${srcdir}/${_gitname}" + patch -Np1 < ../qemu-7.0.0-glibc-2.36.patch mkdir build-{full,headless} mkdir -p extra-arch-{full,headless}/usr/{bin,share/qemu} } diff --git a/qemu-7.0.0-glibc-2.36.patch b/qemu-7.0.0-glibc-2.36.patch new file mode 100644 index 000000000000..21b09da92cf2 --- /dev/null +++ b/qemu-7.0.0-glibc-2.36.patch @@ -0,0 +1,43 @@ +diff --git a/linux-user/syscall.c b/linux-user/syscall.c +index b27a6552aa..52d178afe7 100644 +--- a/linux-user/syscall.c ++++ b/linux-user/syscall.c +@@ -95,7 +95,25 @@ + #include <linux/soundcard.h> + #include <linux/kd.h> + #include <linux/mtio.h> ++ ++#ifdef HAVE_SYS_MOUNT_FSCONFIG ++/* ++ * glibc >= 2.36 linux/mount.h conflicts with sys/mount.h, ++ * which in turn prevents use of linux/fs.h. So we have to ++ * define the constants ourselves for now. ++ */ ++#define FS_IOC_GETFLAGS _IOR('f', 1, long) ++#define FS_IOC_SETFLAGS _IOW('f', 2, long) ++#define FS_IOC_GETVERSION _IOR('v', 1, long) ++#define FS_IOC_SETVERSION _IOW('v', 2, long) ++#define FS_IOC_FIEMAP _IOWR('f', 11, struct fiemap) ++#define FS_IOC32_GETFLAGS _IOR('f', 1, int) ++#define FS_IOC32_SETFLAGS _IOW('f', 2, int) ++#define FS_IOC32_GETVERSION _IOR('v', 1, int) ++#define FS_IOC32_SETVERSION _IOW('v', 2, int) ++#else + #include <linux/fs.h> ++#endif + #include <linux/fd.h> + #if defined(CONFIG_FIEMAP) + #include <linux/fiemap.h> +diff --git a/meson.build b/meson.build +index 294e9a8f32..30a380752c 100644 +--- a/meson.build ++++ b/meson.build +@@ -1963,6 +1963,8 @@ config_host_data.set('HAVE_OPTRESET', + cc.has_header_symbol('getopt.h', 'optreset')) + config_host_data.set('HAVE_IPPROTO_MPTCP', + cc.has_header_symbol('netinet/in.h', 'IPPROTO_MPTCP')) ++config_host_data.set('HAVE_SYS_MOUNT_FSCONFIG', ++ cc.has_header_symbol('sys/mount.h', 'FSCONFIG_SET_FLAG')) + + # has_member + config_host_data.set('HAVE_SIGEV_NOTIFY_THREAD_ID', |