All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ferruh Yigit <ferruh.yigit@intel.com>
To: Jerin Jacob <jerin.jacob@caviumnetworks.com>,
	Bruce Richardson <bruce.richardson@intel.com>,
	Harry van Haaren <harry.van.haaren@intel.com>,
	Thomas Monjalon <thomas.monjalon@6wind.com>
Cc: dev@dpdk.org, Ferruh Yigit <ferruh.yigit@intel.com>
Subject: [PATCH v2 1/3] net/thunderx: disable pmd for older compilers
Date: Thu,  6 Apr 2017 14:46:35 +0100	[thread overview]
Message-ID: <20170406134637.4484-1-ferruh.yigit@intel.com> (raw)
In-Reply-To: <20170406121428.16883-1-ferruh.yigit@intel.com>

Disable for gcc < 4.7 and icc <= 14.0

PMD uses some compiler builtins and new compiler options. Tested with
gcc 4.5.1 and following were not supported:

option:
-Ofast

macros:
_Static_assert

__ORDER_LITTLE_ENDIAN__
__ORDER_BIG_ENDIAN__
__BYTE_ORDER__

__atomic_fetch_add
__ATOMIC_ACQUIRE
__atomic_load_n
__ATOMIC_RELAXED
__atomic_store_n
__ATOMIC_RELEASE

It is not easy to fix all in PMD, disabling PMD for older compilers.

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
 drivers/net/thunderx/Makefile            | 15 +++++++++++++++
 mk/toolchain/gcc/rte.toolchain-compat.mk |  4 ++++
 mk/toolchain/icc/rte.toolchain-compat.mk |  4 ++++
 3 files changed, 23 insertions(+)

diff --git a/drivers/net/thunderx/Makefile b/drivers/net/thunderx/Makefile
index 706250b..f2acfcb 100644
--- a/drivers/net/thunderx/Makefile
+++ b/drivers/net/thunderx/Makefile
@@ -60,8 +60,23 @@ SRCS-$(CONFIG_RTE_LIBRTE_THUNDERX_NICVF_PMD) += nicvf_ethdev.c
 SRCS-$(CONFIG_RTE_LIBRTE_THUNDERX_NICVF_PMD) += nicvf_bsvf.c
 SRCS-$(CONFIG_RTE_LIBRTE_THUNDERX_NICVF_PMD) += nicvf_svf.c
 
+# GCC
 ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)
 CFLAGS_nicvf_rxtx.o += -fno-prefetch-loop-arrays
+
+# Disable PMD for gcc < 4.7 in  mk/toolchain/gcc/rte.toolchain-compat.mk
+ifeq ($(shell test $(GCC_VERSION) -lt 47 && echo 1), 1)
+$(warning thunderx pmd not supported by gcc < 4.7)
+endif
+
+# ICC
+else ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
+
+# Disable PMD for icc <= 14.0 in  mk/toolchain/gcc/rte.toolchain-compat.mk
+ifeq ($(shell test $(ICC_MAJOR_VERSION) -le 14 && echo 1), 1)
+$(warning thunderx pmd not supported by icc <= 14.0)
+endif
+
 endif
 CFLAGS_nicvf_rxtx.o += -Ofast
 
diff --git a/mk/toolchain/gcc/rte.toolchain-compat.mk b/mk/toolchain/gcc/rte.toolchain-compat.mk
index 6eed20c..fff14e1 100644
--- a/mk/toolchain/gcc/rte.toolchain-compat.mk
+++ b/mk/toolchain/gcc/rte.toolchain-compat.mk
@@ -89,4 +89,8 @@ else
 	ifeq ($(shell test $(GCC_VERSION) -lt 42 && echo 1), 1)
 		MACHINE_CFLAGS := $(filter-out -march% -mtune% -msse%,$(MACHINE_CFLAGS))
 	endif
+
+	ifeq ($(shell test $(GCC_VERSION) -lt 47 && echo 1), 1)
+		CONFIG_RTE_LIBRTE_THUNDERX_NICVF_PMD=n
+	endif
 endif
diff --git a/mk/toolchain/icc/rte.toolchain-compat.mk b/mk/toolchain/icc/rte.toolchain-compat.mk
index 4134466..2d0e54b 100644
--- a/mk/toolchain/icc/rte.toolchain-compat.mk
+++ b/mk/toolchain/icc/rte.toolchain-compat.mk
@@ -64,6 +64,10 @@ else
 		MACHINE_CFLAGS := $(patsubst -march=core-avx2,-xCORE-AVX2,$(MACHINE_CFLAGS))
 		# remove westmere flags
 		MACHINE_CFLAGS := $(filter-out -mpclmul -maes,$(MACHINE_CFLAGS))
+
+		ifeq ($(shell test $(ICC_MAJOR_VERSION) -le 14 && echo 1), 1)
+			CONFIG_RTE_LIBRTE_THUNDERX_NICVF_PMD=n
+		endif
 	endif
 	# if icc version == 12.0
 	ifeq ($(shell test $(ICC_MAJOR_VERSION) -eq 12 && test $(ICC_MINOR_VERSION) -eq 0 && echo 1), 1)
-- 
2.9.3

  parent reply	other threads:[~2017-04-06 13:47 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-06 12:14 [PATCH 1/3] net/thunderx: disable pmd for gcc < 4.7 Ferruh Yigit
2017-04-06 12:14 ` [PATCH 2/3] event/octeontx: fix compilation for gcc < 4.6 Ferruh Yigit
2017-04-06 12:26   ` Jerin Jacob
2017-04-06 12:14 ` [PATCH 3/3] event/sw: fix build error for gcc 4.5.1 Ferruh Yigit
2017-04-06 12:21   ` Van Haaren, Harry
2017-04-06 12:33 ` [PATCH 1/3] net/thunderx: disable pmd for gcc < 4.7 Jerin Jacob
2017-04-06 13:05 ` Ferruh Yigit
2017-04-06 13:46 ` Ferruh Yigit [this message]
2017-04-06 13:46   ` [PATCH v2 2/3] event/octeontx: fix build error for gcc < 4.6 Ferruh Yigit
2017-04-06 13:46   ` [PATCH v2 3/3] event/sw: fix build error for gcc 4.5.1 Ferruh Yigit
2017-04-06 13:59   ` [PATCH v2 1/3] net/thunderx: disable pmd for older compilers Thomas Monjalon
2017-04-06 14:05     ` Ferruh Yigit
2017-04-06 14:09       ` Thomas Monjalon
2017-04-06 14:46         ` Ferruh Yigit
2017-04-06 17:05   ` [PATCH v3 1/3] net/thunderx: disable PMD " Ferruh Yigit
2017-04-06 17:05     ` [PATCH v3 2/3] event/octeontx: fix build error for gcc < 4.6 Ferruh Yigit
2017-04-06 17:05     ` [PATCH v3 3/3] event/sw: fix build error for gcc 4.5.1 Ferruh Yigit
2017-04-06 18:40     ` [PATCH v3 1/3] net/thunderx: disable PMD for older compilers Thomas Monjalon
2017-04-06 13:52 ` [PATCH 1/3] net/thunderx: disable pmd for gcc < 4.7 Thomas Monjalon
2017-04-06 14:00   ` Jerin Jacob

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=20170406134637.4484-1-ferruh.yigit@intel.com \
    --to=ferruh.yigit@intel.com \
    --cc=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    --cc=harry.van.haaren@intel.com \
    --cc=jerin.jacob@caviumnetworks.com \
    --cc=thomas.monjalon@6wind.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.