** Changed in: linux (Ubuntu Bionic) Status: New => In Progress ** Changed in: linux (Ubuntu Bionic) Importance: Undecided => Critical
-- You received this bug notification because you are a member of Kernel Packages, which is subscribed to linux in Ubuntu. https://bugs.launchpad.net/bugs/1877123 Title: 4.15.0-100.101 breaks userspace builds due to a bug in the headers /usr/include/linux/swab.h of linux-libc-dev Status in linux package in Ubuntu: Invalid Status in linux source package in Bionic: In Progress Bug description: This started as a debug session why qemu no more builds in https://bugs.launchpad.net/ubuntu/+source/qemu/+bug/1847361/comments/55 The summary of the kernel bug discovered is: $ diff -Naur swab.h.4.15.0-99.100.good swab.h.4.15.0-100.101.bad --- swab.h.4.15.0-99.100.good 2020-05-06 13:56:28.755885666 +0200 +++ swab.h.4.15.0-100.101.bad 2020-05-06 13:55:39.191681069 +0200 @@ -4,6 +4,7 @@ #include <linux/types.h> +#include <asm/bitsperlong.h> #include <asm/swab.h> /* @@ -132,6 +133,15 @@ __fswab64(x)) #endif +static __always_inline unsigned long __swab(const unsigned long y) +{ +#if BITS_PER_LONG == 64 + return __swab64(y); +#else /* BITS_PER_LONG == 32 */ + return __swab32(y); +#endif +} + /** * __swahw32 - return a word-swapped 32-bit value * @x: value to wordswap That means the linux-libc-dev package being part of the proposed new 4.15 kernel in Bionic will break at least qemu and maybe others. The problem is that it includes <asm/bitsperlong.h> which defines: # define __BITS_PER_LONG 64 But then uses BITS_PER_LONG (missing the leading underscores). Due to that it will in the qemu case use what qemu has defined and break. But even worse in other cases maybe use the wrong swab function. Broken by [1] commit 2385a55f64a65baf6594f37bfa018e2797dcb8c7 (sha from ubuntu kernel, upstream d5767057c9a) Author: Yury Norov <yury.no...@gmail.com> Date: Thu Jan 30 22:16:40 2020 -0800 uapi: rename ext2_swab() to swab() and share globally in swab.h Fixed by [2] (but missing in our proposed kernel) commit 467d12f5c7842896d2de3ced74e4147ee29e97c8 Author: Christian Borntraeger <borntrae...@de.ibm.com> Date: Thu Feb 20 20:04:03 2020 -0800 include/uapi/linux/swab.h: fix userspace breakage, use __BITS_PER_LONG for swap This fix also is in 4.14 stable kernel as ffd115f2dca955ce0782e801d488ecfaccde421f. That should be the closest for our kernel. @Kernel - Please consider NOT to release 4.15.0-100.101 as-is, it needs this fix. Getting this fixed effectively gates any qemu update in Bionic (and maybe other things as well). To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1877123/+subscriptions -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp