For the record, this is what's causing the config differences between
the gcc versions:

With gcc 10.3.0, CC_HAS_KASAN_GENERIC is not available as it depends on
the following compiler flag:

config CC_HAS_KASAN_GENERIC
         def_bool $(cc-option, -fsanitize=kernel-address)

'cc-option' will do something similar to the following, which with gcc
10.2.0 riscv64 cross compiler would return success:

$ /usr/bin/riscv64-linux-gnu-gcc-10 -Werror -fsanitize=kernel-address -c -x c 
/dev/null
$ echo $?
0

But with 10.3.0 this doesn't seem to be supported anymore as a
standalone flag, depending now on '-fasan-shadow-offset=':

$ /usr/bin/riscv64-linux-gnu-gcc-10 -Werror -fsanitize=kernel-address -c -x c 
/dev/null
cc1: error: ‘-fsanitize=kernel-address’ with stack protection is not supported 
without ‘-fasan-shadow-offset=’ for this target [-Werror]

And all KASAN options get removed altogether.

This doesn't cause any real config change, as we disable CONFIG_KASAN
anyway. But for our annotations '-' != 'n', failing the config checks.

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux-riscv-5.8 in Ubuntu.
https://bugs.launchpad.net/bugs/1933856

Title:
  gcc version used for kernel configs doesn't match the one used for
  builds

Status in linux-riscv-5.8 package in Ubuntu:
  Invalid
Status in linux-riscv-5.8 source package in Focal:
  Fix Committed

Bug description:
  [Impact]
  linux-riscv-5.8 needs to be built with gcc-10 in Focal otherwise it won't 
boot. This was fixed by commit "UBUNTU: [Packaging] Use gcc-10 for riscv 5.8 
kernel build", which adds gcc-10 as "Build-Depends-Arch" and sets a variable 
"gcc" in 'debian/rules', which is passed down to make by 
'debian/rules.d/2-binary-arch.mk'.

  The other gcc version dependency is when we generate locally the
  kernel configs by running 'make syncconfig', which is called by
  'debian/scripts/misc/kernelconfig'. Currently, the syncconfig is
  called using the chroot default compiler, which in Focal is gcc-9. So
  far there hasn't been any major differences, however with the update
  of gcc-10 in Groovy and Focal from 10.2.0 to 10.3.0 some KASAN related
  config options are not available anymore, causing some changes on the
  configs generated. The problem with non-matching gcc versions being
  used, is that there will be a mismatch between the configs being
  generated during the preparation of the kernel and the ones during the
  build.

  [Fix]
  The proposed fix is to use the same variable defined for the build, passing 
it down to 'debian/scripts/misc/kernelconfig' and using it to define the 
correct cross-compiler to be used.

  [Where problems could occur]
  If the environment variables are not set correctly the build can break in 
some environment which was not tested.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux-riscv-5.8/+bug/1933856/+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