Fix sparse checks processing
authorChristophe Leroy <christophe.leroy@csgroup.eu>
Fri, 5 May 2023 08:39:39 +0000 (10:39 +0200)
committerTom Rini <trini@konsulko.com>
Mon, 15 May 2023 18:08:45 +0000 (14:08 -0400)
commit6ab7c3d6bab1584e43f0c0a7e92134811b78bc61
tree2d08c0a256f50eb3c22bfbb84b2fc9cc3eb0e980
parenta0f9a77912b21adf5dbde5d5d47943c5d881d1c1
Fix sparse checks processing

A lot of errors are encountered when building with sparse checking
activated (make C=1 or make C=2).

Many of them are fixed in Linux.

Resynchronise Makefile and include/linux/build_bug.h with Linux
kernel sources by porting the following Linux commits into u-boot:
6c49f359ca14 ("kbuild: disable sparse warnings about unknown attributes")
80591e61a0f7 ("kbuild: tell sparse about the $ARCH")
8788994376d8 ("linux/build_bug.h: change type to int")
527edbc18a70 ("build_bug.h: remove most of dummy BUILD_BUG_ON stubs for Sparse")
c60d3b79423a ("build_bug.h: remove negative-array fallback for BUILD_BUG_ON()")
14e83077d55f ("include: drop pointless __compiler_offsetof indirection")

Also revert commit aa9e891c63 ("include/linux/stddef.h: avoid
'warning: preprocessor token offsetof redefined'") because the
error it creates is worse than the warning it is trying to fix.

Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Makefile
include/linux/build_bug.h
include/linux/stddef.h