next: arm64: build/gcc-12-lkftconfig-64k_page_size - error: call to '__compiletime_assert_494' declared with attribute error: BUILD_BUG_ON failed: (((16 - 3) * (4 - (2)) + 3)-16) > 10

From: Naresh Kamboju
Date: Wed May 17 2023 - 09:27:11 EST


Following arm64 builds failed on Linux next-20230517.

- build/gcc-12-lkftconfig-64k_page_size
- build/gcc-11-lkftconfig-64k_page_size

Reported-by: Linux Kernel Functional Testing <lkft@xxxxxxxxxx>

Build log:
======
include/asm-generic/div64.h:46:27: warning: conversion from 'long
unsigned int' to 'uint32_t' {aka 'unsigned int'} changes value from
'4398046511104' to '0' [-Woverflow]
46 | uint32_t __base = (base); \
| ^
include/linux/math.h:40:44: note: in expansion of macro 'do_div'
40 | ({ unsigned long long _tmp = (ll); do_div(_tmp, d); _tmp; })
| ^~~~~~
include/linux/math.h:43:9: note: in expansion of macro 'DIV_ROUND_DOWN_ULL'
43 | DIV_ROUND_DOWN_ULL((unsigned long long)(ll) + (d) - 1, (d))
| ^~~~~~~~~~~~~~~~~~
arch/arm64/kvm/mmu.c:95:22: note: in expansion of macro 'DIV_ROUND_UP_ULL'
95 | n += DIV_ROUND_UP_ULL(range, PUD_SIZE);
| ^~~~~~~~~~~~~~~~
In file included from <command-line>:
mm/huge_memory.c: In function 'hugepage_init':
include/linux/compiler_types.h:397:45: error: call to
'__compiletime_assert_494' declared with attribute error: BUILD_BUG_ON
failed: (((16 - 3) * (4 - (2)) + 3)-16) > 10
397 | _compiletime_assert(condition, msg,
__compiletime_assert_, __COUNTER__)
| ^
include/linux/compiler_types.h:378:25: note: in definition of macro
'__compiletime_assert'
378 | prefix ## suffix();
\
| ^~~~~~
include/linux/compiler_types.h:397:9: note: in expansion of macro
'_compiletime_assert'
397 | _compiletime_assert(condition, msg,
__compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro
'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:50:9: note: in expansion of macro 'BUILD_BUG_ON_MSG'
50 | BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
| ^~~~~~~~~~~~~~~~
include/linux/bug.h:24:25: note: in expansion of macro 'BUILD_BUG_ON'
24 | BUILD_BUG_ON(cond); \
| ^~~~~~~~~~~~
mm/huge_memory.c:470:9: note: in expansion of macro 'MAYBE_BUILD_BUG_ON'
470 | MAYBE_BUILD_BUG_ON(HPAGE_PMD_ORDER > MAX_ORDER);
| ^~~~~~~~~~~~~~~~~~
make[3]: *** [scripts/Makefile.build:252: mm/huge_memory.o] Error 1


logs:
=====
- https://qa-reports.linaro.org/lkft/linux-next-master/build/next-20230517/testrun/17031010/suite/build/test/gcc-12-lkftconfig-64k_page_size/log
- https://qa-reports.linaro.org/lkft/linux-next-master/build/next-20230517/testrun/17031010/suite/build/test/gcc-12-lkftconfig-64k_page_size/history/
- https://qa-reports.linaro.org/lkft/linux-next-master/build/next-20230517/testrun/17031010/suite/build/test/gcc-12-lkftconfig-64k_page_size/details/


Steps to reproduce:
====
# To install tuxmake on your system globally:
# sudo pip3 install -U tuxmake
#
# See https://docs.tuxmake.org/ for complete documentation.
# Original tuxmake command with fragments listed below.
# tuxmake \
--runtime podman \
--target-arch arm64 \
--toolchain gcc-12 \
--kconfig defconfig \
--kconfig-add https://raw.githubusercontent.com/Linaro/meta-lkft/kirkstone/meta/recipes-kernel/linux/files/lkft.config
\
--kconfig-add https://raw.githubusercontent.com/Linaro/meta-lkft/kirkstone/meta/recipes-kernel/linux/files/lkft-crypto.config
\
--kconfig-add https://raw.githubusercontent.com/Linaro/meta-lkft/kirkstone/meta/recipes-kernel/linux/files/distro-overrides.config
\
--kconfig-add https://raw.githubusercontent.com/Linaro/meta-lkft/kirkstone/meta/recipes-kernel/linux/files/systemd.config
\
--kconfig-add https://raw.githubusercontent.com/Linaro/meta-lkft/kirkstone/meta/recipes-kernel/linux/files/virtio.config
\
--kconfig-add CONFIG_ARM64_MODULE_PLTS=y \
--kconfig-add CONFIG_SYN_COOKIES=y \
--kconfig-add CONFIG_SCHEDSTATS=y \
--kconfig-add CONFIG_ARM64_64K_PAGES=y

OR

tuxmake \
--runtime podman \
--target-arch arm64 \
--toolchain gcc-12 \
--kconfig https://storage.tuxsuite.com/public/linaro/lkft/builds/2PtylMMZpP2yGvgCnhE5SZngOYJ/config


--
Linaro LKFT
https://lkft.linaro.org