2023-01-12 21:37 (UTC+0100), Thomas Monjalon: > The vector Rx functions are conditionally compiled. > Some stub functions were also always compiled with weak attribute. > If there is no vector support, the weak functions were linked. > > These weak functions are moved in a specific file > which is compiled only if there is no vector support. > This way it is simpler to understand, > and the weak attributes can be removed. > > This change helps to compile with MinGW GCC > which has no support for weak functions. > > Signed-off-by: Thomas Monjalon <tho...@monjalon.net> > --- > drivers/net/mlx5/meson.build | 13 +++++---- > drivers/net/mlx5/mlx5_rx.c | 35 ------------------------ > drivers/net/mlx5/mlx5_rxtx_vec_null.c | 38 +++++++++++++++++++++++++++ > 3 files changed, 46 insertions(+), 40 deletions(-) > create mode 100644 drivers/net/mlx5/mlx5_rxtx_vec_null.c > > diff --git a/drivers/net/mlx5/meson.build b/drivers/net/mlx5/meson.build > index abd507bd88..dba911693e 100644 > --- a/drivers/net/mlx5/meson.build > +++ b/drivers/net/mlx5/meson.build > @@ -49,11 +49,14 @@ if is_linux > 'mlx5_hws_cnt.c', > 'mlx5_flow_verbs.c', > ) > - if (dpdk_conf.has('RTE_ARCH_X86_64') > - or dpdk_conf.has('RTE_ARCH_ARM64') > - or dpdk_conf.has('RTE_ARCH_PPC_64')) > - sources += files('mlx5_rxtx_vec.c') > - endif > +endif > + > +if is_linux and (dpdk_conf.has('RTE_ARCH_X86_64') > + or dpdk_conf.has('RTE_ARCH_ARM64') > + or dpdk_conf.has('RTE_ARCH_PPC_64')) > + sources += files('mlx5_rxtx_vec.c') > +else > + sources += files('mlx5_rxtx_vec_null.c') > endif
Can "is_linux" be dropped now? I suspect that vector routines were compiled only for Linux to prevent linker errors from both weak and non-weak symbols present, not because vector code is somehow Linux-specific.