numam-dpdk/lib/librte_eventdev
David Marchand 18218713bf enforce experimental tag at beginning of declarations
Putting a '__attribute__((deprecated))' in the middle of a function
prototype does not result in the expected result with gcc (while clang
is fine with this syntax).

$ cat deprecated.c
void * __attribute__((deprecated)) incorrect() { return 0; }
__attribute__((deprecated)) void *correct(void) { return 0; }
int main(int argc, char *argv[]) { incorrect(); correct(); return 0; }
$ gcc -o deprecated.o -c deprecated.c
deprecated.c: In function ‘main’:
deprecated.c:3:1: warning: ‘correct’ is deprecated (declared at
deprecated.c:2) [-Wdeprecated-declarations]
 int main(int argc, char *argv[]) { incorrect(); correct(); return 0; }
 ^

Move the tag on a separate line and make it the first thing of function
prototypes.
This is not perfect but we will trust reviewers to catch the other not
so easy to detect patterns.

sed -i \
     -e '/^\([^#].*\)\?__rte_experimental */{' \
     -e 's//\1/; s/ *$//; i\' \
     -e __rte_experimental \
     -e '/^$/d}' \
     $(git grep -l __rte_experimental -- '*.h')

Special mention for rte_mbuf_data_addr_default():

There is either a bug or a (not yet understood) issue with gcc.
gcc won't drop this inline when unused and rte_mbuf_data_addr_default()
calls rte_mbuf_buf_addr() which itself is experimental.
This results in a build warning when not accepting experimental apis
from sources just including rte_mbuf.h.

For this specific case, we hide the call to rte_mbuf_buf_addr() under
the ALLOW_EXPERIMENTAL_API flag.

Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Signed-off-by: David Marchand <david.marchand@redhat.com>
2019-06-29 19:04:48 +02:00
..
Makefile build/linux: rename macro from LINUXAPP to LINUX 2019-03-12 17:31:22 +01:00
meson.build build: increase readability via shortcut variables 2019-04-17 18:09:52 +02:00
rte_event_crypto_adapter.c eventdev: fix crypto adapter 2019-05-01 23:08:34 +02:00
rte_event_crypto_adapter.h doc: fix spelling reported by aspell in comments 2019-05-03 00:38:14 +02:00
rte_event_eth_rx_adapter.c remove experimental tags from all symbol definitions 2019-06-29 19:04:43 +02:00
rte_event_eth_rx_adapter.h enforce experimental tag at beginning of declarations 2019-06-29 19:04:48 +02:00
rte_event_eth_tx_adapter.c eventdev: promote adapter functions as stable 2019-04-22 13:20:33 +02:00
rte_event_eth_tx_adapter.h eventdev: update references to removed function 2019-05-04 23:19:08 +02:00
rte_event_ring.c event: fix ring init failure handling 2018-08-05 14:52:19 +02:00
rte_event_ring.h eventdev: fix MP/MC tail updates in event ring 2018-04-16 10:10:27 +02:00
rte_event_timer_adapter_pmd.h eventdev: add timer adapter common code 2018-04-16 11:04:46 +02:00
rte_event_timer_adapter.c eventdev: promote adapter functions as stable 2019-04-22 13:20:33 +02:00
rte_event_timer_adapter.h eventdev: promote adapter functions as stable 2019-04-22 13:20:33 +02:00
rte_eventdev_pmd_pci.h lib: fix missing includes in exported headers 2018-01-17 00:31:05 +01:00
rte_eventdev_pmd_vdev.h lib: fix missing includes in exported headers 2018-01-17 00:31:05 +01:00
rte_eventdev_pmd.h doc: fix spelling reported by aspell in comments 2019-05-03 00:38:14 +02:00
rte_eventdev_version.map eventdev: add experimental tag back for Rx adapter 2019-05-01 23:24:49 +02:00
rte_eventdev.c eventdev: promote adapter functions as stable 2019-04-22 13:20:33 +02:00
rte_eventdev.h eventdev: update references to removed function 2019-05-04 23:19:08 +02:00