On Mon, Dec 3, 2018 at 5:48 PM Neil Horman <nhor...@tuxdriver.com> wrote:
> On Mon, Dec 03, 2018 at 02:01:02PM +0100, David Marchand wrote: > > Hello Neil, > > > > Looking at > > > http://doc.dpdk.org/guides/contributing/versioning.html#experimental-apis, > > is there a real need to mark both the definition and the declaration of a > > symbol with the __rte_experimental marker ? > > > When I initially wrote the feature I marked both the function prototype > and its > definition with the macro to be consistent, as I like to make both > declaration > and definition look visually simmilar, just to ease readability, but I'm > not > bound to doing it that way per-se > > As to weather or not you can only mark the declaration as experimental, > I'm not > 100% sure. I think thats an artifact of the compiler. That is to say, the > macro expands to a compiler attribute that is applied at compile time, and > checked at link time, and I'm not sure what clang or gcc will do if there > is a > discrepancy between the attributes listed in the declaration and the > definition. > > I would say, give it a try, and if you can demonstrate that adding the > 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. -- David Marchand