On Fri, Jun 21, 2019 at 6:28 PM Neil Horman <nhor...@tuxdriver.com> wrote:

> On Fri, Jun 21, 2019 at 02:45:45PM +0200, David Marchand wrote:
> > Ok, did a new pass on the tree.. found quite some sites where we have
> > issues (and other discrepancies... I started a new patchset).
> > Looked at gcc documentation [1], and to me the safer approach would be to
> > enforce that __rte_experimental is the first thing of a symbol
> declaration.
> >
> > Comments?
> >
> Yes, thats the only way it works, in fact I'm suprised gcc didn't throw an
> error
> about expecting an asm statement if you put it anywhere else
>

- I tried this, but then I hit issues with inlines.
Like for example:

static inline char * __rte_experimental
rte_mbuf_buf_addr(struct rte_mbuf *mb, struct rte_mempool *mp)
{
  return (char *)mb + sizeof(*mb) + rte_pktmbuf_priv_size(mp);
}

I did not find a way to move the __rte_experimental tag without getting
warnings.
If I try to compile some sources which includes rte_mbuf.h but without
-DALLOW_EXPERIMENTAL_API, then gcc errors at including the header,
complaining that rte_mbuf_buf_addr() is deprecated, even if this inline is
not called.

For now, I hid all those inlines under the ALLOW_EXPERIMENTAL_API flag.


- I have accumulated other fixes and I dropped all the marking in the .c
files.
This ended up with a huge series...

 118 files changed, 867 insertions(+), 646 deletions(-)

https://github.com/david-marchand/dpdk/commits/experimental

I will let the week end pass on this.


-- 
David Marchand

Reply via email to