On Mon, Nov 13, 2023 at 06:13:30PM +0000, Ferruh Yigit wrote:
> On 11/13/2023 5:06 PM, Stephen Hemminger wrote:
> > This series fixes a couple places where expressions that could not
> > be evaluated as constant early in compiler passes were used. And then
> > converts RTE_BUILD_BUG_ON() with static_assert.
> > 
> > Stephen Hemminger (3):
> >   event/opdl: fix non-constant compile time assertion
> >   net/sfc: fix non-constant expression inr RTE_BUILD_BUG_ON()
> >   eal: replace out of bounds VLA with static_assert
> > 
> 
> Acked-by: Ferruh Yigit <ferruh.yi...@amd.com>
> 
> 
> I am getting more build errors [1], [2].
> 
> 
> 
> [1] `meson --buildtype=debug build`
> 
> In file included from ../lib/eal/include/dev_driver.h:12,
>                  from ../lib/ethdev/ethdev_driver.h:23,
>                  from ../drivers/net/i40e/i40e_rxtx_vec_sse.c:6:
> ../drivers/net/i40e/i40e_rxtx_vec_sse.c: In function ‘descs_to_fdir_32b’:
> ../lib/eal/include/rte_common.h:499:51: error: expression in static
> assertion is not constant
>   499 | #define RTE_BUILD_BUG_ON(condition) static_assert(!(condition),
> #condition)
>       |                                                   ^~~~~~~~~~~~
> ../drivers/net/i40e/i40e_rxtx_vec_sse.c:147:9: note: in expansion of
> macro ‘RTE_BUILD_BUG_ON’
>   147 |         RTE_BUILD_BUG_ON(RTE_MBUF_F_RX_FDIR_ID != (1 <<
> FDIR_ID_BIT_SHIFT));

this one is fixable by just making it a constant expression instead of a
const variable.

- i40e_rxtx_vec_sse.c:  const uint32_t FDIR_ID_BIT_SHIFT = 13;
+ i40e_rxtx_vec_sse.c:  #define FDIR_ID_BIT_SHIFT (13u)

... whatever ...

+ i40e_rxtx_vec_sse.c:  #undef FDIR_ID_BIT_SHIFT

ty

Reply via email to