On Thu, May 20, 2021 at 07:40:12PM +0800, Chengwen Feng wrote: > If the target machine has SVE feature (e.g. "-march=armv8.2-a+sve'), > and the compiler is gcc8.3, it will compile error: > In file included from ../dpdk-next-net/lib/eal/common/ > eal_common_options.c:38: > ../dpdk-next-net/lib/eal/arm/include/rte_vect.h:13:10: fatal > error: arm_sve.h: No such file or directory > #include <arm_sve.h> > ^~~~~~~~~~~ > compilation terminated. > > The root cause is that gcc8.3 support SVE (the macro __ARM_FEATURE_SVE > was 1), but it doesn't support SVE ACLE [1]. > > The solution: > a) Detect compiler whether support SVE ACLE, if support then define > CC_SVE_ACLE_SUPPORT macro. > b) Use the CC_SVE_ACLE_SUPPORT macro to include SVE header file. > > [1] ACLE: Arm C Language Extensions, the SVE ACLE header file is > <arm_sve.h>, user should include it when writing ACLE SVE code. > > Fixes: 67b68824a82d ("lpm/arm: support SVE") > > Signed-off-by: Chengwen Feng <fengcheng...@huawei.com> > --- > v2: > * modify title start with 'build' >
One minor comment inline below. /Bruce > --- > config/arm/meson.build | 5 +++++ > lib/eal/arm/include/rte_vect.h | 2 +- > lib/lpm/rte_lpm.h | 2 +- > 3 files changed, 7 insertions(+), 2 deletions(-) > > diff --git a/config/arm/meson.build b/config/arm/meson.build > index e83a56e..bff70e4 100644 > --- a/config/arm/meson.build > +++ b/config/arm/meson.build > @@ -480,6 +480,11 @@ if (cc.get_define('__ARM_NEON', args: machine_args) != > '' or > compile_time_cpuflags += ['RTE_CPUFLAG_NEON'] > endif > > +if (cc.get_define('__ARM_FEATURE_SVE', args: machine_args) != '' and > + cc.check_header('arm_sve.h')) Please double-indent this line. It looks like part of the condition body as-is.