On 4/1/2019 9:09 AM, Thomas Monjalon wrote: > 01/04/2019 08:46, David Marchand: >> On Mon, Apr 1, 2019 at 4:16 AM Thomas Monjalon <tho...@monjalon.net> wrote: >> >>> 19/03/2019 19:04, Ferruh Yigit: >>>> On 3/19/2019 5:34 PM, Thomas Monjalon wrote: >>>>>>> +uint16_t __rte_experimental >>>>>> >>>>>> Do we need _rte_experimental on function definitions? I guess only in >>> .h file, >>>>>> function declaration is enough. >>>>> >>>>> Yes we need them both in .h and .c files. >>>> >>>> Why we need them in .c file? >>>> I think the compiler is interested in ones in .h file, because of the >>>> experimental checks. >>> >>> We need the tag in .c file because a check is done in the ELF object >>> by buildtools/check-experimental-syms.sh >>> >> >> ? >> The attribute should be inherited from the declaration in the header. >> If you have a case where it does not work, I'd like to look at it. > > I don't know such case, it was just a belief.
Putting the __rte_experimental tag into header files should be sufficient. - buildtools/check-experimental-syms.sh checks if symbols in .map file are marked with __rte_experimental, both putting the tag to the symbol in .c file or .h file is working. - tag should be in header file so that application using it can get the warning. Briefly, __rte_experimental needs to be in .h file, it is optional to have it in .c, I am for keeping it only in .h file function declaration. > > If we can confirm it works well with tag in headers only, > I suggest we remove all of them at once. > For this patch, I prefer being on the safe side for now. > >