mk: add experimental tag check
authorNeil Horman <nhorman@tuxdriver.com>
Mon, 22 Jan 2018 01:48:05 +0000 (20:48 -0500)
committerThomas Monjalon <thomas@monjalon.net>
Mon, 29 Jan 2018 22:35:29 +0000 (23:35 +0100)
Add checks during build to ensure that all symbols in the EXPERIMENTAL
version map section have __experimental tags on their definitions, and
enable the warnings needed to announce their use.  Also add an
ALLOW_EXPERIMENTAL_APIS define to allow individual libraries and files
to declare the acceptability of experimental api usage

Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
38 files changed:
app/pdump/Makefile
app/proc_info/Makefile
app/test-bbdev/Makefile
app/test-eventdev/Makefile
app/test-pmd/Makefile
drivers/bbdev/null/Makefile
drivers/bbdev/turbo_sw/Makefile
drivers/bus/dpaa/Makefile
drivers/bus/fslmc/Makefile
drivers/crypto/dpaa2_sec/Makefile
drivers/crypto/dpaa_sec/Makefile
drivers/event/dpaa/Makefile
drivers/event/sw/Makefile
drivers/net/failsafe/Makefile
drivers/net/ixgbe/Makefile
drivers/net/sfc/Makefile
drivers/net/vdev_netvsc/Makefile
drivers/net/virtio/Makefile
examples/bbdev_app/Makefile
examples/eventdev_pipeline/Makefile
examples/flow_classify/Makefile
examples/ipsec-secgw/Makefile
examples/service_cores/Makefile
lib/librte_bbdev/Makefile
lib/librte_eal/bsdapp/eal/Makefile
lib/librte_eal/linuxapp/Makefile
lib/librte_eal/linuxapp/eal/Makefile
lib/librte_ether/Makefile
lib/librte_eventdev/Makefile
lib/librte_flow_classify/Makefile
lib/librte_mbuf/Makefile
lib/librte_security/Makefile
lib/librte_vhost/Makefile
mk/internal/rte.compile-pre.mk
mk/toolchain/clang/rte.vars.mk
mk/toolchain/gcc/rte.vars.mk
mk/toolchain/icc/rte.vars.mk
test/test/Makefile

index e6b9eea..bd3c208 100644 (file)
@@ -7,6 +7,7 @@ ifeq ($(CONFIG_RTE_LIBRTE_PDUMP),y)
 
 APP = dpdk-pdump
 
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += $(WERROR_FLAGS)
 
 # all source are stored in SRCS-y
index 214f3f5..9e87f52 100644 (file)
@@ -5,6 +5,7 @@ include $(RTE_SDK)/mk/rte.vars.mk
 
 APP = dpdk-procinfo
 
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += $(WERROR_FLAGS)
 
 # all source are stored in SRCS-y
index 5a6e36a..9aedd77 100644 (file)
@@ -8,6 +8,7 @@ include $(RTE_SDK)/mk/rte.vars.mk
 #
 APP = testbbdev
 
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 
index e600e21..cb65911 100644 (file)
@@ -6,6 +6,7 @@ include $(RTE_SDK)/mk/rte.vars.mk
 
 APP = dpdk-test-eventdev
 
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 
index 34125e5..ed588ab 100644 (file)
@@ -10,6 +10,7 @@ ifeq ($(CONFIG_RTE_TEST_PMD),y)
 #
 APP = testpmd
 
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 
index 6d8469d..f885a97 100644 (file)
@@ -6,6 +6,7 @@ include $(RTE_SDK)/mk/rte.vars.mk
 LIB = librte_pmd_bbdev_null.a
 
 # build flags
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring -lrte_kvargs
index 08f24b0..79eb554 100644 (file)
@@ -11,6 +11,7 @@ endif
 LIB = librte_pmd_bbdev_turbo_sw.a
 
 # build flags
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring -lrte_kvargs
index 4eec0ef..bffaa9d 100644 (file)
@@ -9,6 +9,7 @@ RTE_BUS_DPAA=$(RTE_SDK)/drivers/bus/dpaa
 #
 LIB = librte_bus_dpaa.a
 
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS := -I$(SRCDIR) $(CFLAGS)
 CFLAGS += -O3 $(WERROR_FLAGS)
 CFLAGS += -Wno-pointer-arith
index 45f76d4..de237f0 100644 (file)
@@ -13,6 +13,7 @@ ifeq ($(CONFIG_RTE_LIBRTE_DPAA2_PMD),y)
 CONFIG_RTE_LIBRTE_FSLMC_BUS = $(CONFIG_RTE_LIBRTE_DPAA2_PMD)
 endif
 
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 ifeq ($(CONFIG_RTE_LIBRTE_DPAA2_DEBUG_INIT),y)
 CFLAGS += -O0 -g
 CFLAGS += "-Wno-error"
index 564840e..cb6c63e 100644 (file)
@@ -17,6 +17,7 @@ endif
 LIB = librte_pmd_dpaa2_sec.a
 
 # build flags
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 ifeq ($(CONFIG_RTE_LIBRTE_DPAA2_SEC_DEBUG_INIT),y)
 CFLAGS += -O0 -g
 CFLAGS += "-Wno-error"
index c0b02ed..fe2c593 100644 (file)
@@ -10,6 +10,7 @@ include $(RTE_SDK)/mk/rte.vars.mk
 LIB = librte_pmd_dpaa_sec.a
 
 # build flags
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -D _GNU_SOURCE
 ifeq ($(CONFIG_RTE_LIBRTE_DPAA_SEC_DEBUG_INIT),y)
 CFLAGS += -O0 -g
index bd0b6c9..ddd8552 100644 (file)
@@ -10,6 +10,7 @@ RTE_SDK_DPAA=$(RTE_SDK)/drivers/net/dpaa
 #
 LIB = librte_pmd_dpaa_event.a
 
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS := -I$(SRCDIR) $(CFLAGS)
 CFLAGS += -O3 $(WERROR_FLAGS)
 CFLAGS += -Wno-pointer-arith
index c6600e8..81236a3 100644 (file)
@@ -7,6 +7,7 @@ include $(RTE_SDK)/mk/rte.vars.mk
 LIB = librte_pmd_sw_event.a
 
 # build flags
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 # for older GCC versions, allow us to initialize an event using
index ea2a8fe..a3b8173 100644 (file)
@@ -50,6 +50,7 @@ SRCS-$(CONFIG_RTE_LIBRTE_PMD_FAILSAFE) += failsafe_flow.c
 # No exported include files
 
 # Basic CFLAGS:
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -std=gnu99 -Wextra
 CFLAGS += -O3
 CFLAGS += -I.
index 9efa5a4..d0804fc 100644 (file)
@@ -8,6 +8,7 @@ include $(RTE_SDK)/mk/rte.vars.mk
 #
 LIB = librte_pmd_ixgbe.a
 
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 
index 2b17e3b..cc4e4e5 100644 (file)
@@ -13,6 +13,7 @@ include $(RTE_SDK)/mk/rte.vars.mk
 #
 LIB = librte_pmd_sfc_efx.a
 
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -I$(SRCDIR)/base/
 CFLAGS += -I$(SRCDIR)
 CFLAGS += -O3
index 45351b8..7be1713 100644 (file)
@@ -10,6 +10,7 @@ LIBABIVER := 1
 EXPORT_MAP := rte_pmd_vdev_netvsc_version.map
 
 # Additional compilation flags.
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 CFLAGS += -g
 CFLAGS += -Wall -Wextra
index b215ada..6c2c996 100644 (file)
@@ -8,6 +8,7 @@ include $(RTE_SDK)/mk/rte.vars.mk
 #
 LIB = librte_pmd_virtio.a
 
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
index 1b7ec63..cdd4a12 100644 (file)
@@ -16,6 +16,7 @@ APP = bbdev
 # all source are stored in SRCS-y
 SRCS-y := main.c
 
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 
index 94b4c86..5cdb076 100644 (file)
@@ -18,6 +18,7 @@ SRCS-y := main.c
 SRCS-y += pipeline_worker_generic.c
 SRCS-y += pipeline_worker_tx.c
 
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 
index 5606248..a00b75e 100644 (file)
@@ -17,6 +17,7 @@ APP = flow_classify
 # all source are stored in SRCS-y
 SRCS-y := flow_classify.c
 
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 
index 9b7bacb..c4d07cc 100644 (file)
@@ -18,6 +18,7 @@ endif
 
 APP = ipsec-secgw
 
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3 -gdwarf-2
 CFLAGS += $(WERROR_FLAGS)
 ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
index 2dc3613..4f79c97 100644 (file)
@@ -16,6 +16,7 @@ APP = service_cores
 # all source are stored in SRCS-y
 SRCS-y := main.c
 
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += $(WERROR_FLAGS)
 
 # workaround for a gcc bug with noreturn attribute
index f9bf960..1451adb 100644 (file)
@@ -10,6 +10,7 @@ LIB = librte_bbdev.a
 LIBABIVER := 1
 
 # build flags
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 LDLIBS += -lrte_eal -lrte_mempool -lrte_mbuf
index 028e81d..dd455e6 100644 (file)
@@ -9,6 +9,7 @@ ARCH_DIR ?= $(RTE_ARCH)
 VPATH += $(RTE_SDK)/lib/librte_eal/common
 VPATH += $(RTE_SDK)/lib/librte_eal/common/arch/$(ARCH_DIR)
 
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -I$(SRCDIR)/include
 CFLAGS += -I$(RTE_SDK)/lib/librte_eal/common
 CFLAGS += -I$(RTE_SDK)/lib/librte_eal/common/include
index 7e94e91..aa52a01 100644 (file)
@@ -8,4 +8,6 @@ DIRS-$(CONFIG_RTE_EAL_IGB_UIO) += igb_uio
 DIRS-$(CONFIG_RTE_KNI_KMOD) += kni
 DEPDIRS-kni := eal
 
+CFLAGS += -DALLOW_EXPERIMENTAL_API
+
 include $(RTE_SDK)/mk/rte.subdir.mk
index e50b73a..7e5bbe8 100644 (file)
@@ -6,6 +6,7 @@ include $(RTE_SDK)/mk/rte.vars.mk
 LIB = librte_eal.a
 
 ARCH_DIR ?= $(RTE_ARCH)
+
 EXPORT_MAP := ../../rte_eal_version.map
 VPATH += $(RTE_SDK)/lib/librte_eal/common/arch/$(ARCH_DIR)
 
@@ -13,6 +14,7 @@ LIBABIVER := 6
 
 VPATH += $(RTE_SDK)/lib/librte_eal/common
 
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -I$(SRCDIR)/include
 CFLAGS += -I$(RTE_SDK)/lib/librte_eal/common
 CFLAGS += -I$(RTE_SDK)/lib/librte_eal/common/include
index 34d014e..3ca5782 100644 (file)
@@ -8,6 +8,7 @@ include $(RTE_SDK)/mk/rte.vars.mk
 #
 LIB = librte_ethdev.a
 
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 LDLIBS += -lrte_net -lrte_eal -lrte_mempool -lrte_ring
index 7fd78c7..d27dd07 100644 (file)
@@ -11,6 +11,7 @@ LIB = librte_eventdev.a
 LIBABIVER := 3
 
 # build flags
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 LDLIBS += -lrte_eal -lrte_ring -lrte_ethdev -lrte_hash
index 086afe5..fe9fc47 100644 (file)
@@ -6,6 +6,7 @@ include $(RTE_SDK)/mk/rte.vars.mk
 # library name
 LIB = librte_flow_classify.a
 
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
 
index e2e3ec6..367568a 100644 (file)
@@ -6,6 +6,7 @@ include $(RTE_SDK)/mk/rte.vars.mk
 # library name
 LIB = librte_mbuf.a
 
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
 LDLIBS += -lrte_eal -lrte_mempool
 
index bd92343..8daebea 100644 (file)
@@ -10,6 +10,7 @@ LIB = librte_security.a
 LIBABIVER := 1
 
 # build flags
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 LDLIBS += -lrte_eal -lrte_mempool
index 065d5c4..5d6c6ab 100644 (file)
@@ -10,6 +10,7 @@ EXPORT_MAP := rte_vhost_version.map
 
 LIBABIVER := 4
 
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3 -D_FILE_OFFSET_BITS=64
 CFLAGS += -I vhost_user
 LDLIBS += -lpthread
index d1dd6df..a734cbb 100644 (file)
@@ -56,6 +56,9 @@ C_TO_O = $(CC) -Wp,-MD,$(call obj2dep,$(@)).tmp $(CPPFLAGS) $(CFLAGS) \
 C_TO_O_STR = $(subst ','\'',$(C_TO_O)) #'# fix syntax highlight
 C_TO_O_DISP = $(if $(V),"$(C_TO_O_STR)","  CC $(@)")
 endif
+EXPERIMENTAL_CHECK = $(RTE_SDK)/buildtools/check-experimental-syms.sh
+CHECK_EXPERIMENTAL = $(EXPERIMENTAL_CHECK) $(SRCDIR)/$(EXPORT_MAP) $@
+
 PMDINFO_GEN = $(RTE_SDK_BIN)/app/dpdk-pmdinfogen $@ $@.pmd.c
 PMDINFO_CC = $(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@.pmd.o $@.pmd.c
 PMDINFO_LD = $(CROSS)ld $(LDFLAGS) -r -o $@.o $@.pmd.o $@
@@ -72,6 +75,7 @@ C_TO_O_DO = @set -e; \
        echo $(C_TO_O_DISP); \
        $(C_TO_O) && \
        $(PMDINFO_TO_O) && \
+       $(CHECK_EXPERIMENTAL) && \
        echo $(C_TO_O_CMD) > $(call obj2cmd,$(@)) && \
        sed 's,'$@':,dep_'$@' =,' $(call obj2dep,$(@)).tmp > $(call obj2dep,$(@)) && \
        rm -f $(call obj2dep,$(@)).tmp
index 52ca9fc..3c49dc5 100644 (file)
@@ -39,7 +39,7 @@ WERROR_FLAGS := -W -Wall -Wstrict-prototypes -Wmissing-prototypes
 WERROR_FLAGS += -Wmissing-declarations -Wold-style-definition -Wpointer-arith
 WERROR_FLAGS += -Wnested-externs -Wcast-qual
 WERROR_FLAGS += -Wformat-nonliteral -Wformat-security
-WERROR_FLAGS += -Wundef -Wwrite-strings
+WERROR_FLAGS += -Wundef -Wwrite-strings -Wdeprecated
 
 ifeq ($(RTE_DEVEL_BUILD),y)
 WERROR_FLAGS += -Werror
index 7763ba7..7e4531b 100644 (file)
@@ -47,7 +47,7 @@ WERROR_FLAGS := -W -Wall -Wstrict-prototypes -Wmissing-prototypes
 WERROR_FLAGS += -Wmissing-declarations -Wold-style-definition -Wpointer-arith
 WERROR_FLAGS += -Wcast-align -Wnested-externs -Wcast-qual
 WERROR_FLAGS += -Wformat-nonliteral -Wformat-security
-WERROR_FLAGS += -Wundef -Wwrite-strings
+WERROR_FLAGS += -Wundef -Wwrite-strings -Wdeprecated
 
 ifeq ($(RTE_DEVEL_BUILD),y)
 WERROR_FLAGS += -Werror
index ff338d6..aa1422b 100644 (file)
@@ -45,7 +45,7 @@ TOOLCHAIN_ASFLAGS =
 WERROR_FLAGS := -Wall -w2 -diag-disable 271 -diag-warning 1478
 WERROR_FLAGS += -diag-disable 13368 -diag-disable 15527
 WERROR_FLAGS += -diag-disable 188
-WERROR_FLAGS += -diag-disable 11074 -diag-disable 11076
+WERROR_FLAGS += -diag-disable 11074 -diag-disable 11076 -Wdeprecated
 
 ifeq ($(RTE_DEVEL_BUILD),y)
 WERROR_FLAGS += -Werror-all
index 89eecad..cb3884a 100644 (file)
@@ -189,6 +189,8 @@ endif
 
 SRCS-$(CONFIG_RTE_LIBRTE_KVARGS) += test_kvargs.c
 
+CFLAGS += -DALLOW_EXPERIMENTAL_API
+
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)