From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 6C5C343B10; Tue, 13 Feb 2024 20:12:19 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B74A742E6E; Tue, 13 Feb 2024 20:12:11 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 6781B42E5A for ; Tue, 13 Feb 2024 20:12:09 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id DA9B620B2002; Tue, 13 Feb 2024 11:12:04 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com DA9B620B2002 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1707851524; bh=Iz5HRFyCTR3CEETW+aHgYtbhBrH0QX2kGZlsc2waMfA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PlzNcAo6AmTFY1rwNzvg6es3KXEJVBMUSMWqlzo4TAVPYh/N3OVpjgATiGOjyLFNY rcjXA4EQZlOhwQwT9XmtnFIVrsNc45mtw/fhfqYJzn2KOJfezdNI5NjYRUVcONxGol aWf6rUoCVtssTRks6shqfi246bkkPugncaCsUETI= From: Tyler Retzlaff To: dev@dpdk.org Cc: Kai Ji , Pablo de Lara , bruce.richardson@intel.com, david.marchand@redhat.com, Tyler Retzlaff Subject: [PATCH v3 3/3] eal: remove typeof from per lcore macros Date: Tue, 13 Feb 2024 11:12:03 -0800 Message-Id: <1707851523-27998-4-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1707851523-27998-1-git-send-email-roretzla@linux.microsoft.com> References: <1703006864-27378-1-git-send-email-roretzla@linux.microsoft.com> <1707851523-27998-1-git-send-email-roretzla@linux.microsoft.com> X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org The design of the macros requires a type to be provided to the macro. By expanding the type parameter inside of typeof it also inadvertently allows an expression to be used which appears not to have been intended after evaluating the parameter name and existing macro use. Technically this is an API break but only for applications that were using these macros outside of the original design intent. Signed-off-by: Tyler Retzlaff Acked-by: Bruce Richardson --- doc/guides/rel_notes/release_24_03.rst | 5 +++++ lib/eal/include/rte_per_lcore.h | 8 ++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/doc/guides/rel_notes/release_24_03.rst b/doc/guides/rel_notes/release_24_03.rst index 6741947..39088da 100644 --- a/doc/guides/rel_notes/release_24_03.rst +++ b/doc/guides/rel_notes/release_24_03.rst @@ -89,6 +89,11 @@ API Changes Also, make sure to start the actual text at the margin. ======================================================= +* eal: Removed ``typeof(type)`` from the expansion of ``RTE_DEFINE_PER_LCORE`` + and ``RTE_DECLARE_PER_LCORE`` macros aligning them with their intended design. + If use with an expression is desired applications can adapt by supplying + ``typeof(e)`` as an argument. + * gso: ``rte_gso_segment`` now returns -ENOTSUP for unknown protocols. diff --git a/lib/eal/include/rte_per_lcore.h b/lib/eal/include/rte_per_lcore.h index 41fe1f0..529995e 100644 --- a/lib/eal/include/rte_per_lcore.h +++ b/lib/eal/include/rte_per_lcore.h @@ -24,10 +24,10 @@ #ifdef RTE_TOOLCHAIN_MSVC #define RTE_DEFINE_PER_LCORE(type, name) \ - __declspec(thread) typeof(type) per_lcore_##name + __declspec(thread) type per_lcore_##name #define RTE_DECLARE_PER_LCORE(type, name) \ - extern __declspec(thread) typeof(type) per_lcore_##name + extern __declspec(thread) type per_lcore_##name #else /** * Macro to define a per lcore variable "var" of type "type", don't @@ -35,13 +35,13 @@ * whole macro. */ #define RTE_DEFINE_PER_LCORE(type, name) \ - __thread __typeof__(type) per_lcore_##name + __thread type per_lcore_##name /** * Macro to declare an extern per lcore variable "var" of type "type" */ #define RTE_DECLARE_PER_LCORE(type, name) \ - extern __thread __typeof__(type) per_lcore_##name + extern __thread type per_lcore_##name #endif /** -- 1.8.3.1