Re: linux-next: build failure in Linus' tree
From: Jakub Kicinski <kuba@kernel.org>
Date: 2021-07-20 12:11:31
Also in:
lkml, netdev
On Tue, 20 Jul 2021 16:45:31 +1000, Stephen Rothwell wrote:
Hi all, On Thu, 15 Jul 2021 09:50:32 +1000 Stephen Rothwell [off-list ref] wrote:quoted
While compiling Linus' tree, a powerpc-allmodconfig build (and others) with gcc 4.9 failed like this: drivers/net/ethernet/microchip/sparx5/sparx5_netdev.c: In function 'ifh_encode_bitfield': include/linux/compiler_types.h:328:38: error: call to '__compiletime_assert_431' declared with attribute error: Unsupported width, must be <= 40 _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) ^ include/linux/compiler_types.h:309:4: note: in definition of macro '__compiletime_assert' prefix ## suffix(); \ ^ include/linux/compiler_types.h:328:2: note: in expansion of macro '_compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) ^ drivers/net/ethernet/microchip/sparx5/sparx5_netdev.c:28:2: note: in expansion of macro 'compiletime_assert' compiletime_assert(width <= 40, "Unsupported width, must be <= 40"); ^ Caused by commit f3cad2611a77 ("net: sparx5: add hostmode with phylink support") I guess this is caused by the call to ifh_encode_bitfield() not being inlined.I am still getting these failures.
Bjarni, Steen, could you address this build failure ASAP? We can't have a compile time asserts in static functions, if the code is optimized for size chances are the function won't get inlined. clang is pretty bad at propagating constants to compile time asserts, too. Please remove this check, or refactor it to be done in a macro, or ..