I rebuilt what was formerly broken due to the kernel in proposed.
It now used 4.15.0-101.102 and worked.

** Tags removed: verification-needed-bionic
** Tags added: verification-done-bionic

-- 
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:
  Fix Committed

Bug description:
  [Impact]
  The build of qemu and other userspace broke because of the following patch 
applied to bionic as part of one of the upstream stable updates:

  commit 2385a55f64a65baf6594f37bfa018e2797dcb8c7
  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

      BugLink: https://bugs.launchpad.net/bugs/1874502

      [ Upstream commit d5767057c9a76a29f073dad66b7fa12a90e8c748 ]

  The affected header file is shipped by the linux-libc-dev package.

  [Fix]
  The fix has already been applied on mainline and the stable trees and can be 
cherry-picked to bionic/linux.

  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

  [Testcase]
  Install linux-libc-dev and build qemu.

  [Regression Potential]
  Low. The fix is simple and has already landed on upstream stable, with no 
follow-up so far on mainline.

  ----

  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

Reply via email to