Bug#960271: PATCH
This patch adds Christian Borntraeger's patch (467d12f5c784) to the
package build. It seemed to build OK following these steps:
wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.19.118.tar.xz
./debian/bin/genorig.py linux-4.19.118.tar.xz
make -f debian/rules orig
make -f debian/rules source
dpkg-buildpackage
Once I install the package I can build QEMU again.
>From eb53234b3feb45f26e0a8ff36779d49ca8965fbe Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>
Date: Tue, 12 May 2020 11:36:37 +0100
Subject: [PATCH] uabi: fix breakage for compiling userspace (#960271)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
debian/changelog | 6 ++
...ux-swab.h-fix-userspace-breakage-use.patch | 71 +++++++++++++++++++
debian/patches/series | 1 +
3 files changed, 78 insertions(+)
create mode 100644 debian/patches/bugfix/all/include-uapi-linux-swab.h-fix-userspace-breakage-use.patch
diff --git a/debian/changelog b/debian/changelog
index 6cac52587efea..0d6d0d05f819e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+linux (4.19.118-3) unstable; urgency=medium
+
+ * Fix uabi breakage (#960271)
+
+ -- Alex Bennée <alex.bennee@linaro.org> Mon, 11 May 2020 20:03:06 +0100
+
linux (4.19.118-2) buster; urgency=medium
* Merge changes from 4.19.67-2+deb10u2 to include all security fixes from
diff --git a/debian/patches/bugfix/all/include-uapi-linux-swab.h-fix-userspace-breakage-use.patch b/debian/patches/bugfix/all/include-uapi-linux-swab.h-fix-userspace-breakage-use.patch
new file mode 100644
index 0000000000000..f78e55ce99a63
--- /dev/null
+++ b/debian/patches/bugfix/all/include-uapi-linux-swab.h-fix-userspace-breakage-use.patch
@@ -0,0 +1,71 @@
+From cb93a89a6b400dbb7a5e2e1106616c93745f734d Mon Sep 17 00:00:00 2001
+From: Christian Borntraeger <borntraeger@de.ibm.com>
+Date: Thu, 20 Feb 2020 20:04:03 -0800
+Subject: [PATCH] include/uapi/linux/swab.h: fix userspace breakage, use
+ __BITS_PER_LONG for swap
+
+QEMU has a funny new build error message when I use the upstream kernel
+headers:
+
+ CC block/file-posix.o
+ In file included from /home/cborntra/REPOS/qemu/include/qemu/timer.h:4,
+ from /home/cborntra/REPOS/qemu/include/qemu/timed-average.h:29,
+ from /home/cborntra/REPOS/qemu/include/block/accounting.h:28,
+ from /home/cborntra/REPOS/qemu/include/block/block_int.h:27,
+ from /home/cborntra/REPOS/qemu/block/file-posix.c:30:
+ /usr/include/linux/swab.h: In function `__swab':
+ /home/cborntra/REPOS/qemu/include/qemu/bitops.h:20:34: error: "sizeof" is not defined, evaluates to 0 [-Werror=undef]
+ 20 | #define BITS_PER_LONG (sizeof (unsigned long) * BITS_PER_BYTE)
+ | ^~~~~~
+ /home/cborntra/REPOS/qemu/include/qemu/bitops.h:20:41: error: missing binary operator before token "("
+ 20 | #define BITS_PER_LONG (sizeof (unsigned long) * BITS_PER_BYTE)
+ | ^
+ cc1: all warnings being treated as errors
+ make: *** [/home/cborntra/REPOS/qemu/rules.mak:69: block/file-posix.o] Error 1
+ rm tests/qemu-iotests/socket_scm_helper.o
+
+This was triggered by commit d5767057c9a ("uapi: rename ext2_swab() to
+swab() and share globally in swab.h"). That patch is doing
+
+ #include <asm/bitsperlong.h>
+
+but it uses BITS_PER_LONG.
+
+The kernel file asm/bitsperlong.h provide only __BITS_PER_LONG.
+
+Let us use the __ variant in swap.h
+
+Link: http://lkml.kernel.org/r/20200213142147.17604-1-borntraeger@de.ibm.com
+Fixes: d5767057c9a ("uapi: rename ext2_swab() to swab() and share globally in swab.h")
+Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
+Cc: Yury Norov <yury.norov@gmail.com>
+Cc: Allison Randal <allison@lohutok.net>
+Cc: Joe Perches <joe@perches.com>
+Cc: Thomas Gleixner <tglx@linutronix.de>
+Cc: William Breathitt Gray <vilhelm.gray@gmail.com>
+Cc: Torsten Hilbrich <torsten.hilbrich@secunet.com>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+---
+ include/uapi/linux/swab.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/include/uapi/linux/swab.h b/include/uapi/linux/swab.h
+index fa7f97da5b768..7272f85d6d6ab 100644
+--- a/include/uapi/linux/swab.h
++++ b/include/uapi/linux/swab.h
+@@ -135,9 +135,9 @@ static inline __attribute_const__ __u32 __fswahb32(__u32 val)
+
+ static __always_inline unsigned long __swab(const unsigned long y)
+ {
+-#if BITS_PER_LONG == 64
++#if __BITS_PER_LONG == 64
+ return __swab64(y);
+-#else /* BITS_PER_LONG == 32 */
++#else /* __BITS_PER_LONG == 32 */
+ return __swab32(y);
+ #endif
+ }
+--
+2.20.1
+
diff --git a/debian/patches/series b/debian/patches/series
index c4eedde94a350..0b32d63827c04 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -302,3 +302,4 @@ bugfix/all/blktrace-fix-dereference-after-null-check.patch
bugfix/s390x/s390-mm-fix-page-table-upgrade-vs-2ndary-address-mod.patch
# ABI maintenance
+bugfix/all/include-uapi-linux-swab.h-fix-userspace-breakage-use.patch
--
2.20.1
--
Alex Bennée
Reply to: