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