> -----Original Message----- > From: Jerin Jacob Kollanukkaran <jer...@marvell.com> > Sent: Monday, February 25, 2019 2:11 AM > To: tho...@monjalon.net > Cc: dev@dpdk.org; Phil Yang (Arm Technology China) <phil.y...@arm.com>; > bruce.richard...@intel.com; jer...@marvell.com; Pavan Nikhilesh > Bhagavatula <pbhagavat...@marvell.com> > Subject: [dpdk-dev] [PATCH v5 1/4] mk: introduce helper to check valid > compiler argument > > Introduce rte_cc_has_argument() Makefile helper to check a given argument is > support by the compiler. > > Example Usage: > > include $(RTE_SDK)/mk/rte.helper.mk > MACHINE_CFLAGS += $(call rte_cc_has_argument, -mcpu=octeontx2) > > This would allow adding -mcpu=octeontx2 in MACHINE_CFLAGS if it is only > supported by the compiler. The use case for such scheme is to enable the > mcpu optimization if the compiler supports else it needs to compile the > source code without any errors. > > This patch also moves inclusion of toolchain's rte.vars.mk to before the > machine's rte.vars.mk inclusion to make correct CC available for the cross > compile case. > > Signed-off-by: Jerin Jacob <jer...@marvell.com> > Signed-off-by: Pavan Nikhilesh <pbhagavat...@marvell.com> > --- > > Change history of this series: > > v2 Changes: > - Add meson build support. > > v3 Changes: > - Squash meson build support into config support for thunderx2/octeontx2. > > v4 Changes: > - Fix incorrect signoff marrvell -> marvell. > > v5 Changes: > - Fix incorrect meson flag parsing(Phil Yang) > - Squash meson cross build patch(5/5) into configuration update patches for > thunderx2(3/5) and octeontx2(4/5)(Thomas) > - Changed octeontx2's march as armv8-a and added the extension required > instead of armv8-2a(Phil Yang) > - Improved rte_cc_has_argument() implementaion by removing the temp > file(Thomas) > > --- > mk/rte.helper.mk | 10 ++++++++++ > mk/target/generic/rte.vars.mk | 22 +++++++++++----------- > 2 files changed, 21 insertions(+), 11 deletions(-) create mode 100644 > mk/rte.helper.mk > > diff --git a/mk/rte.helper.mk b/mk/rte.helper.mk new file mode 100644 index > 000000000..6e7fd03d7 > --- /dev/null > +++ b/mk/rte.helper.mk > @@ -0,0 +1,10 @@ > +# SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2018 Marvell > +International Ltd > + > +# rte_cc_has_argument > +# Usage: MACHINE_CFLAGS += $(call rte_cc_has_argument, -mno-avx512f) # > +Return the argument if the argument is supported by the compiler. > +# > +define rte_cc_has_argument > + $(shell $(CC) -E $(1) -xc /dev/null 1>/dev/null 2>/dev/null && echo > +$(1)) endef > diff --git a/mk/target/generic/rte.vars.mk b/mk/target/generic/rte.vars.mk > index dd149acc9..25a578ad7 100644 > --- a/mk/target/generic/rte.vars.mk > +++ b/mk/target/generic/rte.vars.mk > @@ -7,6 +7,17 @@ > # executive environment. > # > > +# > +# toolchain: > +# > +# - define CC, LD, AR, AS, ... > +# - define TOOLCHAIN_CFLAGS variable (overridden by cmdline value) > +# - define TOOLCHAIN_LDFLAGS variable (overridden by cmdline value) > +# - define TOOLCHAIN_ASFLAGS variable (overridden by cmdline value) > +# - may override any previously defined variable > +# > +include $(RTE_SDK)/mk/toolchain/$(RTE_TOOLCHAIN)/rte.vars.mk > + > # > # machine: > # > @@ -45,17 +56,6 @@ endif > # > include $(RTE_SDK)/mk/arch/$(RTE_ARCH)/rte.vars.mk > > -# > -# toolchain: > -# > -# - define CC, LD, AR, AS, ... > -# - define TOOLCHAIN_CFLAGS variable (overridden by cmdline value) > -# - define TOOLCHAIN_LDFLAGS variable (overridden by cmdline value) > -# - define TOOLCHAIN_ASFLAGS variable (overridden by cmdline value) > -# - may override any previously defined variable > -# > -include $(RTE_SDK)/mk/toolchain/$(RTE_TOOLCHAIN)/rte.vars.mk > - > # > # exec-env: > # > -- > 2.20.1
Reviewed-by: Phil Yang <phil.y...@arm.com> For this patch set. Thanks, Phil