DPDK patches and discussions
 help / color / mirror / Atom feed
From: David Marchand <david.marchand@redhat.com>
To: dev@dpdk.org
Cc: roretzla@linux.microsoft.com,
	Bruce Richardson <bruce.richardson@intel.com>,
	Ruifeng Wang <ruifeng.wang@arm.com>,
	David Christensen <drc@linux.vnet.ibm.com>,
	Konstantin Ananyev <konstantin.v.ananyev@yandex.ru>,
	Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Subject: [PATCH v2] remove compatibility wrappers for GCC < 4.8
Date: Thu, 24 Aug 2023 11:33:56 +0200	[thread overview]
Message-ID: <20230824093356.1476716-1-david.marchand@redhat.com> (raw)
In-Reply-To: <20230824083034.806773-1-david.marchand@redhat.com>

As we made our move to C11, GCC requirements has been bumped.
Wrappers for old versions of GCC can be dropped.

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
Changes since v1:
- removed empty #else #endif block in x86 rte_byteorder.h,
- updated lib/table/rte_lru_x86.h (thanks Bruce),

---
 lib/eal/arm/include/rte_byteorder.h     | 19 -------------------
 lib/eal/arm/include/rte_vect.h          | 12 ------------
 lib/eal/include/generic/rte_byteorder.h |  2 --
 lib/eal/include/rte_debug.h             |  4 ----
 lib/eal/ppc/include/rte_byteorder.h     |  9 ---------
 lib/eal/x86/include/rte_byteorder.h     |  9 ---------
 lib/eal/x86/include/rte_vect.h          |  9 +--------
 lib/log/rte_log.h                       |  4 ----
 lib/table/rte_lru_x86.h                 |  4 ++--
 9 files changed, 3 insertions(+), 69 deletions(-)

diff --git a/lib/eal/arm/include/rte_byteorder.h b/lib/eal/arm/include/rte_byteorder.h
index df2f1d87ba..ff02052f2e 100644
--- a/lib/eal/arm/include/rte_byteorder.h
+++ b/lib/eal/arm/include/rte_byteorder.h
@@ -17,25 +17,6 @@ extern "C" {
 #include <rte_common.h>
 #include "generic/rte_byteorder.h"
 
-/* fix missing __builtin_bswap16 for gcc older then 4.8 */
-#if !(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8))
-
-static inline uint16_t rte_arch_bswap16(uint16_t _x)
-{
-	uint16_t x = _x;
-
-	asm volatile ("rev16 %w0,%w1"
-		      : "=r" (x)
-		      : "r" (x)
-		      );
-	return x;
-}
-
-#define rte_bswap16(x) ((uint16_t)(__builtin_constant_p(x) ? \
-				   rte_constant_bswap16(x) : \
-				   rte_arch_bswap16(x)))
-#endif
-
 /* ARM architecture is bi-endian (both big and little). */
 #if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN
 
diff --git a/lib/eal/arm/include/rte_vect.h b/lib/eal/arm/include/rte_vect.h
index 4b705bac5f..8cfe4bddc1 100644
--- a/lib/eal/arm/include/rte_vect.h
+++ b/lib/eal/arm/include/rte_vect.h
@@ -83,18 +83,6 @@ vcopyq_laneq_u32(uint32x4_t a, const int lane_a,
 #if defined(RTE_ARCH_ARM64)
 #if RTE_CC_IS_GNU && (GCC_VERSION < 70000)
 
-#if (GCC_VERSION < 40900)
-typedef uint64_t poly64_t;
-typedef uint64x2_t poly64x2_t;
-typedef uint8_t poly128_t __attribute__((vector_size(16), aligned(16)));
-
-static inline uint32x4_t
-vceqzq_u32(uint32x4_t a)
-{
-	return (a == 0);
-}
-#endif
-
 /* NEON intrinsic vreinterpretq_u64_p128() is supported since GCC version 7 */
 static inline uint64x2_t
 vreinterpretq_u64_p128(poly128_t x)
diff --git a/lib/eal/include/generic/rte_byteorder.h b/lib/eal/include/generic/rte_byteorder.h
index a67e1d70d9..03e9a24718 100644
--- a/lib/eal/include/generic/rte_byteorder.h
+++ b/lib/eal/include/generic/rte_byteorder.h
@@ -234,9 +234,7 @@ static uint64_t rte_be_to_cpu_64(rte_be64_t x);
 #endif /* __DOXYGEN__ */
 
 #ifdef RTE_FORCE_INTRINSICS
-#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)
 #define rte_bswap16(x) __builtin_bswap16(x)
-#endif
 
 #define rte_bswap32(x) __builtin_bswap32(x)
 
diff --git a/lib/eal/include/rte_debug.h b/lib/eal/include/rte_debug.h
index 2c4b94a7c9..74593cd4d4 100644
--- a/lib/eal/include/rte_debug.h
+++ b/lib/eal/include/rte_debug.h
@@ -60,11 +60,7 @@ void rte_dump_stack(void);
  * documentation.
  */
 void __rte_panic(const char *funcname , const char *format, ...)
-#ifdef __GNUC__
-#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 2))
 	__rte_cold
-#endif
-#endif
 	__rte_noreturn
 	__rte_format_printf(2, 3);
 
diff --git a/lib/eal/ppc/include/rte_byteorder.h b/lib/eal/ppc/include/rte_byteorder.h
index 49f369f1e7..de94e2ad32 100644
--- a/lib/eal/ppc/include/rte_byteorder.h
+++ b/lib/eal/ppc/include/rte_byteorder.h
@@ -62,15 +62,6 @@ static inline uint64_t rte_arch_bswap64(uint64_t _x)
 #define rte_bswap64(x) ((uint64_t)(__builtin_constant_p(x) ?		\
 				   rte_constant_bswap64(x) :		\
 				   rte_arch_bswap64(x)))
-#else
-/*
- * __builtin_bswap16 is only available gcc 4.8 and upwards
- */
-#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 8)
-#define rte_bswap16(x) ((uint16_t)(__builtin_constant_p(x) ?		\
-				   rte_constant_bswap16(x) :		\
-				   rte_arch_bswap16(x)))
-#endif
 #endif
 
 /* Power 8 have both little endian and big endian mode
diff --git a/lib/eal/x86/include/rte_byteorder.h b/lib/eal/x86/include/rte_byteorder.h
index a2dfecc1f5..1bab5f15fe 100644
--- a/lib/eal/x86/include/rte_byteorder.h
+++ b/lib/eal/x86/include/rte_byteorder.h
@@ -59,15 +59,6 @@ static inline uint32_t rte_arch_bswap32(uint32_t _x)
 #define rte_bswap64(x) ((uint64_t)(__builtin_constant_p(x) ?		\
 				   rte_constant_bswap64(x) :		\
 				   rte_arch_bswap64(x)))
-#else
-/*
- * __builtin_bswap16 is only available gcc 4.8 and upwards
- */
-#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 8)
-#define rte_bswap16(x) ((uint16_t)(__builtin_constant_p(x) ?		\
-				   rte_constant_bswap16(x) :		\
-				   rte_arch_bswap16(x)))
-#endif
 #endif
 
 #define rte_cpu_to_le_16(x) (x)
diff --git a/lib/eal/x86/include/rte_vect.h b/lib/eal/x86/include/rte_vect.h
index 2e40b77da9..560f9e4db3 100644
--- a/lib/eal/x86/include/rte_vect.h
+++ b/lib/eal/x86/include/rte_vect.h
@@ -16,20 +16,13 @@
 #include <rte_common.h>
 #include "generic/rte_vect.h"
 
-#if (defined(__ICC) || \
-	(defined(_WIN64)) || \
-	(__GNUC__ == 4 &&  __GNUC_MINOR__ < 4))
-
+#if defined(__ICC) || defined(_WIN64)
 #include <smmintrin.h> /* SSE4 */
-
 #if defined(__AVX__)
 #include <immintrin.h>
 #endif
-
 #else
-
 #include <x86intrin.h>
-
 #endif
 
 #ifdef __cplusplus
diff --git a/lib/log/rte_log.h b/lib/log/rte_log.h
index bdefff2a59..f7a8405de9 100644
--- a/lib/log/rte_log.h
+++ b/lib/log/rte_log.h
@@ -277,11 +277,7 @@ void rte_log_dump(FILE *f);
  *   - Negative on error.
  */
 int rte_log(uint32_t level, uint32_t logtype, const char *format, ...)
-#ifdef __GNUC__
-#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 2))
 	__rte_cold
-#endif
-#endif
 	__rte_format_printf(3, 4);
 
 /**
diff --git a/lib/table/rte_lru_x86.h b/lib/table/rte_lru_x86.h
index 38476d956e..ddfb8c1c8c 100644
--- a/lib/table/rte_lru_x86.h
+++ b/lib/table/rte_lru_x86.h
@@ -20,7 +20,7 @@ extern "C" {
 
 #if RTE_TABLE_HASH_LRU_STRATEGY == 2
 
-#if RTE_CC_IS_GNU && (GCC_VERSION > 40306)
+#if RTE_CC_IS_GNU
 #include <x86intrin.h>
 #else
 #include <emmintrin.h>
@@ -64,7 +64,7 @@ do {									\
 
 #elif RTE_TABLE_HASH_LRU_STRATEGY == 3
 
-#if RTE_CC_IS_GNU && (GCC_VERSION > 40306)
+#if RTE_CC_IS_GNU
 #include <x86intrin.h>
 #else
 #include <emmintrin.h>
-- 
2.41.0


  parent reply	other threads:[~2023-08-24  9:34 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-24  8:30 [PATCH] remove " David Marchand
2023-08-24  8:52 ` David Marchand
2023-08-25 16:14   ` Tyler Retzlaff
2023-08-26  8:33     ` David Marchand
2023-08-24  9:00 ` Bruce Richardson
2023-08-24  9:33 ` David Marchand [this message]
2023-08-25  8:37   ` [PATCH v2] remove compatibility " David Marchand

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=20230824093356.1476716-1-david.marchand@redhat.com \
    --to=david.marchand@redhat.com \
    --cc=bruce.richardson@intel.com \
    --cc=cristian.dumitrescu@intel.com \
    --cc=dev@dpdk.org \
    --cc=drc@linux.vnet.ibm.com \
    --cc=konstantin.v.ananyev@yandex.ru \
    --cc=roretzla@linux.microsoft.com \
    --cc=ruifeng.wang@arm.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 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).