DPDK patches and discussions
 help / color / mirror / Atom feed
From: Jerin Jacob Kollanukkaran <jerinj@marvell.com>
To: Thomas Monjalon <thomas@monjalon.net>
Cc: "dev@dpdk.org" <dev@dpdk.org>,
	"gavin.hu@arm.com" <gavin.hu@arm.com>,
	Jerin Jacob Kollanukkaran <jerinj@marvell.com>,
	Pavan Nikhilesh Bhagavatula <pbhagavatula@marvell.com>
Subject: [dpdk-dev] [PATCH v6 1/4] mk: introduce helper to check valid compiler argument
Date: Mon, 18 Mar 2019 16:50:10 +0000	[thread overview]
Message-ID: <20190318164949.2357-1-jerinj@marvell.com> (raw)
Message-ID: <20190318165010.cbzJkzANU3d2EhqfkOw0afEOP3NPOKUfKZiMNgD50Pk@z> (raw)
In-Reply-To: <20190224181041.27127-1-jerinj@marvell.com>

From: Jerin Jacob <jerinj@marvell.com>

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 <jerinj@marvell.com>
Signed-off-by: Pavan Nikhilesh <pbhagavatula@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)

v6 Changes:
 - Rework to change the config files to sync with "mk: use linux and freebsd in config names"
 - Fix the following error with latest gcc by fixing the mcpu type
   cc1: error: switch -mcpu=armv8.2-a conflicts with -march=armv8-a switch 

---
 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.21.0


  parent reply	other threads:[~2019-03-18 16:56 UTC|newest]

Thread overview: 154+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-06 13:20 [dpdk-dev] [PATCH 1/3] " Jerin Jacob Kollanukkaran
2019-01-06 13:20 ` [dpdk-dev] [PATCH 2/3] config: add thunderx2 machine config Jerin Jacob Kollanukkaran
2019-01-06 20:56   ` Thomas Monjalon
2019-01-07  5:27     ` [dpdk-dev] [EXT] " Jerin Jacob Kollanukkaran
2019-01-07  0:21   ` [dpdk-dev] " Gavin Hu (Arm Technology China)
2019-01-07  5:29     ` [dpdk-dev] [EXT] " Jerin Jacob Kollanukkaran
2019-01-06 13:20 ` [dpdk-dev] [PATCH 3/3] config: add octeontx2 " Jerin Jacob Kollanukkaran
2019-01-07 15:42 ` [dpdk-dev] [PATCH v2 1/6] mk: introduce helper to check valid compiler argument Pavan Nikhilesh Bhagavatula
2019-01-07 15:42   ` [dpdk-dev] [PATCH v2 2/6] config: add thunderx2 machine config Pavan Nikhilesh Bhagavatula
2019-01-07 15:42   ` [dpdk-dev] [PATCH v2 3/6] config: add octeontx2 " Pavan Nikhilesh Bhagavatula
2019-01-07 15:42   ` [dpdk-dev] [PATCH v2 4/6] meson: add infra to support machine specific flags Pavan Nikhilesh Bhagavatula
2019-01-07 15:42   ` [dpdk-dev] [PATCH v2 5/6] meson: add thunderx2 machine config Pavan Nikhilesh Bhagavatula
2019-01-07 16:57     ` Thomas Monjalon
2019-01-07 15:42   ` [dpdk-dev] [PATCH v2 6/6] meson: add octeontx2 " Pavan Nikhilesh Bhagavatula
2019-01-09 10:19 ` [dpdk-dev] [PATCH v3 1/4] mk: introduce helper to check valid compiler argument Pavan Nikhilesh Bhagavatula
2019-01-09 10:19   ` [dpdk-dev] [PATCH v3 2/4] meson: add infra to support machine specific flags Pavan Nikhilesh Bhagavatula
2019-01-09 10:19   ` [dpdk-dev] [PATCH v3 3/4] config: add thunderx2 machine config Pavan Nikhilesh Bhagavatula
2019-01-09 10:19   ` [dpdk-dev] [PATCH v3 4/4] config: add octeontx2 " Pavan Nikhilesh Bhagavatula
2019-01-09 10:19   ` [dpdk-dev] [PATCH v3 5/5] meson: add cross build targets for thunderx2 and octeontx2 Pavan Nikhilesh Bhagavatula
2019-01-09 10:39 ` [dpdk-dev] [PATCH v4 1/5] mk: introduce helper to check valid compiler argument Pavan Nikhilesh Bhagavatula
2019-01-09 10:39   ` [dpdk-dev] [PATCH v4 2/5] meson: add infra to support machine specific flags Pavan Nikhilesh Bhagavatula
2019-01-14 11:32     ` Thomas Monjalon
2019-02-12  8:06     ` Phil Yang (Arm Technology China)
2019-02-12  8:35       ` [dpdk-dev] [EXT] " Pavan Nikhilesh Bhagavatula
2019-01-09 10:39   ` [dpdk-dev] [PATCH v4 3/5] config: add thunderx2 machine config Pavan Nikhilesh Bhagavatula
2019-01-09 10:39   ` [dpdk-dev] [PATCH v4 4/5] config: add octeontx2 " Pavan Nikhilesh Bhagavatula
2019-02-12  8:50     ` Phil Yang (Arm Technology China)
2019-01-09 10:39   ` [dpdk-dev] [PATCH v4 5/5] meson: add cross build targets for thunderx2 and octeontx2 Pavan Nikhilesh Bhagavatula
2019-01-14 11:28     ` Thomas Monjalon
2019-01-14 11:35   ` [dpdk-dev] [PATCH v4 1/5] mk: introduce helper to check valid compiler argument Thomas Monjalon
2019-01-14 11:56     ` [dpdk-dev] [EXT] " Jerin Jacob Kollanukkaran
2019-01-14 12:08       ` Thomas Monjalon
2019-02-24 18:11   ` [dpdk-dev] [PATCH v5 1/4] " Jerin Jacob Kollanukkaran
2019-02-24 18:11     ` [dpdk-dev] [PATCH v5 2/4] meson: add infra to support machine specific flags Jerin Jacob Kollanukkaran
2019-02-24 18:11     ` [dpdk-dev] [PATCH v5 3/4] config: add thunderx2 machine config Jerin Jacob Kollanukkaran
2019-02-24 18:11     ` [dpdk-dev] [PATCH v5 4/4] config: add octeontx2 " Jerin Jacob Kollanukkaran
2019-03-18 16:50     ` Jerin Jacob Kollanukkaran [this message]
2019-03-18 16:50       ` [dpdk-dev] [PATCH v6 1/4] mk: introduce helper to check valid compiler argument Jerin Jacob Kollanukkaran
2019-03-18 16:50       ` [dpdk-dev] [PATCH v6 2/4] meson: add infra to support machine specific flags Jerin Jacob Kollanukkaran
2019-03-18 16:50         ` Jerin Jacob Kollanukkaran
2019-03-19  9:40         ` Bruce Richardson
2019-03-19  9:40           ` Bruce Richardson
2019-03-29 13:57           ` Thomas Monjalon
2019-03-29 13:57             ` Thomas Monjalon
2019-03-18 16:50       ` [dpdk-dev] [PATCH v6 3/4] config: add thunderx2 machine config Jerin Jacob Kollanukkaran
2019-03-18 16:50         ` Jerin Jacob Kollanukkaran
2019-04-02  8:52         ` Gavin Hu (Arm Technology China)
2019-04-02  8:52           ` Gavin Hu (Arm Technology China)
2019-04-05 18:13         ` Thomas Monjalon
2019-04-05 18:13           ` Thomas Monjalon
2019-04-05 18:47           ` Jerin Jacob Kollanukkaran
2019-04-05 18:47             ` Jerin Jacob Kollanukkaran
2019-04-05 19:09             ` Thomas Monjalon
2019-04-05 19:09               ` Thomas Monjalon
2019-04-06 11:40               ` Jerin Jacob Kollanukkaran
2019-04-06 11:40                 ` Jerin Jacob Kollanukkaran
2019-03-18 16:50       ` [dpdk-dev] [PATCH v6 4/4] config: add octeontx2 " Jerin Jacob Kollanukkaran
2019-03-18 16:50         ` Jerin Jacob Kollanukkaran
2019-04-02  8:54         ` Gavin Hu (Arm Technology China)
2019-04-02  8:54           ` Gavin Hu (Arm Technology China)
2019-04-06 14:27       ` [dpdk-dev] [PATCH v7 1/4] mk: introduce helper to check valid compiler argument jerinjacobk
2019-04-06 14:27         ` jerinjacobk
2019-04-06 14:27         ` [dpdk-dev] [PATCH v7 2/4] meson: add infra to support machine specific flags jerinjacobk
2019-04-06 14:27           ` jerinjacobk
2019-04-10  0:40           ` Yongseok Koh
2019-04-10  0:40             ` Yongseok Koh
2019-04-10  2:15             ` Yongseok Koh
2019-04-10  2:15               ` Yongseok Koh
2019-04-10 14:22               ` Pavan Nikhilesh Bhagavatula
2019-04-10 14:22                 ` Pavan Nikhilesh Bhagavatula
2019-04-06 14:27         ` [dpdk-dev] [PATCH v7 3/4] config: add thunderx2 machine config jerinjacobk
2019-04-06 14:27           ` jerinjacobk
2019-04-08 10:32           ` Thomas Monjalon
2019-04-08 10:32             ` Thomas Monjalon
2019-04-08 12:05             ` Thomas Monjalon
2019-04-08 12:05               ` Thomas Monjalon
2019-04-08 12:11               ` Bruce Richardson
2019-04-08 12:11                 ` Bruce Richardson
2019-04-06 14:27         ` [dpdk-dev] [PATCH v7 4/4] config: add octeontx2 " jerinjacobk
2019-04-06 14:27           ` jerinjacobk
2019-04-10 12:48           ` Thomas Monjalon
2019-04-10 12:48             ` Thomas Monjalon
2019-04-10 12:59             ` Jerin Jacob Kollanukkaran
2019-04-10 12:59               ` Jerin Jacob Kollanukkaran
2019-04-10 16:13         ` [dpdk-dev] [PATCH v8 1/4] mk: introduce helper to check valid compiler argument jerinjacobk
2019-04-10 16:13           ` jerinjacobk
2019-04-10 16:13           ` [dpdk-dev] [PATCH v8 2/4] meson: add infra to support machine specific flags jerinjacobk
2019-04-10 16:13             ` jerinjacobk
2019-04-10 17:37             ` Yongseok Koh
2019-04-10 17:37               ` Yongseok Koh
2019-04-11  6:07               ` Pavan Nikhilesh Bhagavatula
2019-04-11  6:07                 ` Pavan Nikhilesh Bhagavatula
2019-04-11 20:12                 ` Yongseok Koh
2019-04-11 20:12                   ` Yongseok Koh
2019-04-12  2:04                   ` Yongseok Koh
2019-04-12  2:04                     ` Yongseok Koh
2019-04-12  6:07                     ` Jerin Jacob Kollanukkaran
2019-04-12  6:07                       ` Jerin Jacob Kollanukkaran
2019-04-12  6:43                       ` Yongseok Koh
2019-04-12  6:43                         ` Yongseok Koh
2019-04-12  7:00                         ` Jerin Jacob Kollanukkaran
2019-04-12  7:00                           ` Jerin Jacob Kollanukkaran
2019-04-12  7:34                           ` Yongseok Koh
2019-04-12  7:34                             ` Yongseok Koh
2019-04-12  7:09                         ` Yongseok Koh
2019-04-12  7:09                           ` Yongseok Koh
2019-04-12  7:35                           ` Jerin Jacob Kollanukkaran
2019-04-12  7:35                             ` Jerin Jacob Kollanukkaran
2019-04-12  7:47                             ` Yongseok Koh
2019-04-12  7:47                               ` Yongseok Koh
2019-04-11 23:37             ` Thomas Monjalon
2019-04-11 23:37               ` Thomas Monjalon
2019-04-12  1:59               ` Yongseok Koh
2019-04-12  1:59                 ` Yongseok Koh
2019-04-12  7:12               ` Jerin Jacob Kollanukkaran
2019-04-12  7:12                 ` Jerin Jacob Kollanukkaran
2019-04-12  8:45                 ` Thomas Monjalon
2019-04-12  8:45                   ` Thomas Monjalon
2019-04-13  6:24                   ` Jerin Jacob Kollanukkaran
2019-04-13  6:24                     ` Jerin Jacob Kollanukkaran
2019-04-13 20:42                     ` Thomas Monjalon
2019-04-13 20:42                       ` Thomas Monjalon
2019-04-14 14:40                       ` Pavan Nikhilesh Bhagavatula
2019-04-14 14:40                         ` Pavan Nikhilesh Bhagavatula
2019-04-14 17:44                         ` Thomas Monjalon
2019-04-14 17:44                           ` Thomas Monjalon
2019-04-14 18:19                           ` Jerin Jacob Kollanukkaran
2019-04-14 18:19                             ` Jerin Jacob Kollanukkaran
2019-04-14 18:29                             ` Thomas Monjalon
2019-04-14 18:29                               ` Thomas Monjalon
2019-04-10 16:13           ` [dpdk-dev] [PATCH v8 3/4] config: add thunderx2 machine config jerinjacobk
2019-04-10 16:13             ` jerinjacobk
2019-04-10 16:14           ` [dpdk-dev] [PATCH v8 4/4] config: add octeontx2 " jerinjacobk
2019-04-10 16:14             ` jerinjacobk
2019-04-13 19:01           ` [dpdk-dev] [PATCH v9 1/4] mk: introduce helper to check valid compiler argument jerinj
2019-04-13 19:01             ` jerinj
2019-04-13 19:01             ` [dpdk-dev] [PATCH v9 2/4] meson: add infra to support machine specific flags jerinj
2019-04-13 19:01               ` jerinj
2019-04-13 19:01             ` [dpdk-dev] [PATCH v9 3/4] config: add thunderx2 machine config jerinj
2019-04-13 19:01               ` jerinj
2019-04-13 19:01             ` [dpdk-dev] [PATCH v9 4/4] config: add octeontx2 " jerinj
2019-04-13 19:01               ` jerinj
2019-04-13 20:19             ` [dpdk-dev] [PATCH v10 1/4] mk: introduce helper to check valid compiler argument jerinj
2019-04-13 20:19               ` jerinj
2019-04-13 20:19               ` [dpdk-dev] [PATCH v10 2/4] meson: add infra to support machine specific flags jerinj
2019-04-13 20:19                 ` jerinj
2019-04-13 20:19               ` [dpdk-dev] [PATCH v10 3/4] config: add thunderx2 machine config jerinj
2019-04-13 20:19                 ` jerinj
2019-04-13 20:19               ` [dpdk-dev] [PATCH v10 4/4] config: add octeontx2 " jerinj
2019-04-13 20:19                 ` jerinj
2019-04-15 21:00               ` [dpdk-dev] [PATCH v10 1/4] mk: introduce helper to check valid compiler argument Thomas Monjalon
2019-04-15 21:00                 ` Thomas Monjalon
2019-03-21 10:13     ` [dpdk-dev] [PATCH v5 " Phil Yang (Arm Technology China)
2019-03-21 10:13       ` Phil Yang (Arm Technology China)

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190318164949.2357-1-jerinj@marvell.com \
    --to=jerinj@marvell.com \
    --cc=dev@dpdk.org \
    --cc=gavin.hu@arm.com \
    --cc=pbhagavatula@marvell.com \
    --cc=thomas@monjalon.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).