From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ua1-f52.google.com (mail-ua1-f52.google.com [209.85.222.52]) by dpdk.org (Postfix) with ESMTP id 1CBB51B141 for ; Tue, 4 Dec 2018 21:48:34 +0100 (CET) Received: by mail-ua1-f52.google.com with SMTP id e16so6283357uam.12 for ; Tue, 04 Dec 2018 12:48:34 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=i1YMhe769P1LFPgOfIFMFbXzm789+LTrBliP3mKsowI=; b=rsvzoFxGEBt/cVK7mCO7hE/hT4e77PdtyFILOYs/Un6OYRT+S+/9cC8b4lr0MNpvPG +6V0EH4CkdA/poZ4R8Dvbup1fyoi6AnLAL2bKdl/VbhyOPYGN8/WLapu0C0rRkjBiKN2 FkAKembK17pFkURhM+dePeNo7q4BSoFzIBFGTx+z8/3lEpr21J0pdQELKZ2F4plggRsT eikFZCKXCQ5sEl6f9gpmnODiqoqzpxOmeYC+wnZr/mZ65Tb0WS0i9KUb4nX7JkJ/NRhJ dBi6ODzU5OgzX2sQAx6cwZ3Ckr4+R7t29u796o4Og2Ce0AnNS+/y8h5tKGzSBpl/zuVF 9YkQ== X-Gm-Message-State: AA+aEWadbphTT/Hqnu45qLJSU9blTF6yDSX2WWAqk7w0a99KlBAo5gsg 95OTmcwdLMPhlgQotnabjDYM+b7tBcPorKmG63cspA== X-Google-Smtp-Source: AFSGD/WgqGSO+ZxgWLDr3M61cPx5GIbaxJcNokKrI6UHsdxCThilO3FEpJSbMNDqfXp6cHs/ep02oYMltt7DaUvLsHw= X-Received: by 2002:ab0:48cd:: with SMTP id y13mr9897333uac.49.1543956513401; Tue, 04 Dec 2018 12:48:33 -0800 (PST) MIME-Version: 1.0 References: <20181203164724.GA12316@hmswarspite.think-freely.org> <20181204151457.GA31778@hmswarspite.think-freely.org> In-Reply-To: <20181204151457.GA31778@hmswarspite.think-freely.org> From: David Marchand Date: Tue, 4 Dec 2018 21:48:22 +0100 Message-ID: To: nhorman@tuxdriver.com, ferruh.yigit@intel.com Cc: dev@dpdk.org, Timothy Redaelli , adrien.mazarguil@6wind.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Subject: Re: [dpdk-dev] Marking symbols as experimental in the headers only X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Dec 2018 20:48:34 -0000 On Tue, Dec 4, 2018 at 4:16 PM Neil Horman wrote: > On Tue, Dec 04, 2018 at 09:21:43AM +0100, David Marchand wrote: > > On Mon, Dec 3, 2018 at 5:48 PM Neil Horman > wrote: > > > On Mon, Dec 03, 2018 at 02:01:02PM +0100, David Marchand wrote: > > > I would say, give it a try, and if you can demonstrate that adding th= e > > > attribute > > > only to the declaration results in a link-time warning when external > code > > > attempts to call an experimental function, I would have no problem > > > handling it > > > that way. > > > > > > > Did not experiment yet, putting this in my todolist. > > Just, I can see that lib/librte_pipeline/ at least only marks the > > declarations. > > > I just tried it. If I turn off ALLOW_EXPERIMENTAL_APIS, the ip_pipeline > example > breaks with warnings about deprecated functions: > > /home/nhorman/git/dpdk/examples/ip_pipeline/action.c:60:4: error: > =E2=80=98rte_table_hash_crc_key8=E2=80=99 is deprecated: Symbol is not ye= t part of stable > ABI [-Werror=3Ddeprecated-declarations] > params->lb.f_hash =3D rte_table_hash_crc_key8; > ^~~~~~ > In file included from > /home/nhorman/git/dpdk/examples/ip_pipeline/action.c:10: > /home/nhorman/git/dpdk/x86_64-native-linuxapp-gcc/include/rte_table_hash_= func.h:56:1: > note: declared here > rte_table_hash_crc_key8(void *key, void *mask, __rte_unused uint32_t > key_size, > ^~~~~~~~~~~~~~~~~~~~~~~ > /home/nhorman/git/dpdk/examples/ip_pipeline/action.c:64:4: error: > =E2=80=98rte_table_hash_crc_key16=E2=80=99 is deprecated: Symbol is not y= et part of stable > ABI [-Werror=3Ddeprecated-declarations] > params->lb.f_hash =3D rte_table_hash_crc_key16; > ^~~~~~ > ... > > That is sufficient for me to conclude that __rte_experimental only needs > to be > set on the declaration, not the definiton as well. > Thanks for the test. I tried with clang and this works fine as well. Ferruh, could you do a little test with icc? > If you would like to make this adjustment, I'm fine with it, though be > aware, > you will likely need to make some adjustments to the > check-experimental-syms > script to account for this > I find it much easier to track and, while doing the patch, I have found another issue in the bbdev library header (another patch coming). Under the impression that this can go undetected for quite some while... If no one complains, yes, I am for this adjustment. I am not sure I see what you mean on check-experimental-syms.sh. I would only do a s/definition/declaration/ in the error message. Do you have something else in mind ? Btw, looking at the documentation, I can find no mention about meson and a quick grep on check-experimental-syms.sh only catches mk/internal/ rte.compile-pre.mk. Is there a trick ? or is meson simply not __rte_experimental aware ? --=20 David Marchand