Re: include/linux/build_bug.h:78:41: error: static assertion failed: "offsetof(struct page, compound_head) == offsetof(struct folio, lru)"

From: Matthew Wilcox
Date: Sun Feb 13 2022 - 07:19:54 EST


On Sun, Feb 13, 2022 at 07:00:16PM +0800, kernel test robot wrote:
> config: parisc-randconfig-r004-20220213 (https://download.01.org/0day-ci/archive/20220213/202202131828.VxAopBqR-lkp@xxxxxxxxx/config)
> compiler: hppa64-linux-gcc (GCC) 11.2.0
> reproduce (this is a W=1 build):
> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7b230db3b8d373219f88a3d25c8fbbf12cc7f233
> git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
> git fetch --no-tags linus master
> git checkout 7b230db3b8d373219f88a3d25c8fbbf12cc7f233
> # save the config file to linux build tree
> mkdir build_dir
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=parisc prepare

There's something weird going on here.

If I just download & install gcc-11-hppa64-linux-gnu from Debian, this
config file builds just fine.

If I invoke make.cross as you have it here, I see the same error you
report.

Adding 'V=1' to this, shows:
sh ../scripts/atomic/check-atomics.sh
/home/willy/0day/gcc-9.3.0-nolibc/hppa-linux/bin/hppa-linux-gcc [...]

which is weird, right? It's not hppa64, and it's not gcc-11.2. So my
suspicion here is that there's some bug in your tooling which is reporting
a bogus error. You're probably better situated to debug this further
than I am.

Oh, and I checked, in case the filename was confusing me:
$ /home/willy/0day/gcc-9.3.0-nolibc/hppa-linux/bin/hppa-linux-gcc -v
Using built-in specs.
COLLECT_GCC=/home/willy/0day/gcc-9.3.0-nolibc/hppa-linux/bin/hppa-linux-gcc
COLLECT_LTO_WRAPPER=/home/willy/0day/gcc-9.3.0-nolibc/hppa-linux/bin/../libexec/gcc/hppa-linux/9.3.0/lto-wrapper
Target: hppa-linux
Configured with: /tmp/build-crosstools-xh/gcc/gcc-9.3.0/configure --target=hppa-linux --enable-targets=all --prefix=/tmp/build-crosstools-xh/cross --enable-languages=c --without-headers --disable-bootstrap --disable-nls --disable-threads --disable-shared --disable-libmudflap --disable-libssp --disable-libgomp --disable-decimal-float --disable-libquadmath --disable-libatomic --disable-libcc1 --disable-libmpx --enable-checking=release
Thread model: single
gcc version 9.3.0 (GCC)

So it really is a 32-bit hppa build, and it really is gcc 9.3, not 11.2.