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 B26AA428D4; Wed, 5 Apr 2023 18:02:12 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4C5FB41156; Wed, 5 Apr 2023 18:02:12 +0200 (CEST) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 41A6B41153 for ; Wed, 5 Apr 2023 18:02:11 +0200 (CEST) Received: by linux.microsoft.com (Postfix, from userid 1086) id 67D93210DED5; Wed, 5 Apr 2023 09:02:10 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 67D93210DED5 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1680710530; bh=vkIrpXtW/owKr+rHyLtejDaUoGAcwaGLrfik515dqUo=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=YZiJwX91hzlmHtLyHp4XWjzmfLBlT+F80EOMN7Xpgja/IVfTZWfUmcQ9Hf+A21CAb fWcHbnE7eNn7R8LNcbxTSbVDq5IK4hCuBYXpmHB9K2WPwO5mhbj0C5tWQ7wuz4wDXf KXFQK8XlLFTPInt5RtWHw1mhmTH6Jwmm5fOG6P4Q= Date: Wed, 5 Apr 2023 09:02:10 -0700 From: Tyler Retzlaff To: Bruce Richardson Cc: dev@dpdk.org, david.marchand@redhat.com, thomas@monjalon.net, mb@smartsharesystems.com, konstantin.ananyev@huawei.com Subject: Re: [PATCH v2 9/9] telemetry: avoid expanding versioned symbol macros on msvc Message-ID: <20230405160210.GD31673@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net> References: <1680558751-17931-1-git-send-email-roretzla@linux.microsoft.com> <1680638847-26430-1-git-send-email-roretzla@linux.microsoft.com> <1680638847-26430-10-git-send-email-roretzla@linux.microsoft.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) 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 On Wed, Apr 05, 2023 at 11:56:05AM +0100, Bruce Richardson wrote: > On Tue, Apr 04, 2023 at 01:07:27PM -0700, Tyler Retzlaff wrote: > > Windows does not support versioned symbols. Fortunately Windows also > > doesn't have an exported stable ABI. > > > > Export rte_tel_data_add_array_int -> rte_tel_data_add_array_int_24 > > and rte_tel_data_add_dict_int -> rte_tel_data_add_dict_int_v24 > > functions. > > > > Windows does have a way to achieve similar versioning for symbols but it > > is not a simple #define so it will be done as a work package later. > > > > Signed-off-by: Tyler Retzlaff > > Does this require a change in telemetry itself? Can it be done via the > header file with the versioning macros in it, so it would apply to any > other versioned functions we have in DPDK? i didn't spend a lot of time thinking if the existing macros could be made to expand in the way needed. there is a way of doing versioning on windows but it is foreign to how this symbol versioning scheme works so i plan to investigate it separately after i get unit tests running. for now i know what i'm doing is ugly but i need to get protection of unit tests so i'm doing minimal changes to get to that point. if you're not comfortable with this going in on a temporary basis i can remove it from this series and we can work on it as a separated patch set. my bar is pretty low here, as long as it doesn't break any existing linux/gcc/clang etc ok, if msvc is not right i'll take a second pass and design each stop-gap properly. it already doesn't work so things aren't made worse. let me know if i need to carve this out of the series. ty > > /Bruce > > > --- > > lib/telemetry/telemetry_data.c | 16 ++++++++++++++++ > > 1 file changed, 16 insertions(+) > > > > diff --git a/lib/telemetry/telemetry_data.c b/lib/telemetry/telemetry_data.c > > index 2bac2de..284c16e 100644 > > --- a/lib/telemetry/telemetry_data.c > > +++ b/lib/telemetry/telemetry_data.c > > @@ -82,8 +82,16 @@ > > /* mark the v23 function as the older version, and v24 as the default version */ > > VERSION_SYMBOL(rte_tel_data_add_array_int, _v23, 23); > > BIND_DEFAULT_SYMBOL(rte_tel_data_add_array_int, _v24, 24); > > +#ifndef RTE_TOOLCHAIN_MSVC > > MAP_STATIC_SYMBOL(int rte_tel_data_add_array_int(struct rte_tel_data *d, > > int64_t x), rte_tel_data_add_array_int_v24); > > +#else > > +int > > +rte_tel_data_add_array_int(struct rte_tel_data *d, int64_t x) > > +{ > > + return rte_tel_data_add_array_int_v24(d, x); > > +} > > +#endif > > > > int > > rte_tel_data_add_array_uint(struct rte_tel_data *d, uint64_t x) > > @@ -220,8 +228,16 @@ > > /* mark the v23 function as the older version, and v24 as the default version */ > > VERSION_SYMBOL(rte_tel_data_add_dict_int, _v23, 23); > > BIND_DEFAULT_SYMBOL(rte_tel_data_add_dict_int, _v24, 24); > > +#ifndef RTE_TOOLCHAIN_MSVC > > MAP_STATIC_SYMBOL(int rte_tel_data_add_dict_int(struct rte_tel_data *d, > > const char *name, int64_t val), rte_tel_data_add_dict_int_v24); > > +#else > > +int > > +rte_tel_data_add_dict_int(struct rte_tel_data *d, const char *name, int64_t val) > > +{ > > + return rte_tel_data_add_dict_int_v24(d, name, val); > > +} > > +#endif > > > > int > > rte_tel_data_add_dict_uint(struct rte_tel_data *d, > > -- > > 1.8.3.1 > >