]> git.droids-corp.org - dpdk.git/commitdiff
mk: add library version extension
authorNeil Horman <nhorman@tuxdriver.com>
Mon, 2 Feb 2015 17:40:21 +0000 (12:40 -0500)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Tue, 3 Feb 2015 15:56:58 +0000 (16:56 +0100)
To differentiate libraries that break ABI, we add a library version number
suffix to the library, which must be incremented when a given libraries ABI is
broken.  This patch enforces that addition, sets the initial abi soname
extension to 1 for each library and creates a symlink to the base SONAME so that
the test applications will link properly.

Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
Acked-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
38 files changed:
lib/librte_acl/Makefile
lib/librte_cfgfile/Makefile
lib/librte_cmdline/Makefile
lib/librte_compat/Makefile
lib/librte_distributor/Makefile
lib/librte_eal/bsdapp/eal/Makefile
lib/librte_eal/linuxapp/eal/Makefile
lib/librte_ether/Makefile
lib/librte_hash/Makefile
lib/librte_ip_frag/Makefile
lib/librte_ivshmem/Makefile
lib/librte_kni/Makefile
lib/librte_kvargs/Makefile
lib/librte_lpm/Makefile
lib/librte_malloc/Makefile
lib/librte_mbuf/Makefile
lib/librte_mempool/Makefile
lib/librte_meter/Makefile
lib/librte_pipeline/Makefile
lib/librte_pmd_af_packet/Makefile
lib/librte_pmd_bond/Makefile
lib/librte_pmd_e1000/Makefile
lib/librte_pmd_enic/Makefile
lib/librte_pmd_i40e/Makefile
lib/librte_pmd_ixgbe/Makefile
lib/librte_pmd_pcap/Makefile
lib/librte_pmd_ring/Makefile
lib/librte_pmd_virtio/Makefile
lib/librte_pmd_vmxnet3/Makefile
lib/librte_pmd_xenvirt/Makefile
lib/librte_port/Makefile
lib/librte_power/Makefile
lib/librte_ring/Makefile
lib/librte_sched/Makefile
lib/librte_table/Makefile
lib/librte_timer/Makefile
lib/librte_vhost/Makefile
mk/rte.lib.mk

index aba885b1c797484ed3f88535ccfc60bbde321c42..68dc248e779a9e53342dd26baf8b4d20fcb00b17 100644 (file)
@@ -39,6 +39,8 @@ CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
 
 EXPORT_MAP := rte_acl_version.map
 
+LIBABIVER := 1
+
 # all source are stored in SRCS-y
 SRCS-$(CONFIG_RTE_LIBRTE_ACL) += tb_mem.c
 
index a4f73ded549d6fb86072e62b6b6efa8d9f0b7ef4..032c240f5ea95daad33ac740014db98875a3ec9b 100644 (file)
@@ -41,6 +41,8 @@ CFLAGS += $(WERROR_FLAGS)
 
 EXPORT_MAP := rte_cfgfile_version.map
 
+LIBABIVER := 1
+
 #
 # all source are stored in SRCS-y
 #
index 3c71831d240b627e4ca14680be59bb680303ae7b..719dff6592f4d8e2ace24f9342008320496fdb08 100644 (file)
@@ -38,6 +38,8 @@ CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
 
 EXPORT_MAP := rte_cmdline_version.map
 
+LIBABIVER := 1
+
 # all source are stored in SRCS-y
 SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) := cmdline.c
 SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += cmdline_cirbuf.c
index 0bab870bb520009488d096f42f20f3a3d8257cf9..0c57533c10cddb9c614c2c46d88fa8a4a8a99147 100644 (file)
@@ -32,6 +32,8 @@
 include $(RTE_SDK)/mk/rte.vars.mk
 
 
+LIBABIVER := 1
+
 # install includes
 SYMLINK-y-include := rte_compat.h
 
index 3674a2c45f9a4cac96aa918075a20128d2b76dc1..4c9af172a05906e5e96e858083b3d13f717e07ca 100644 (file)
@@ -39,6 +39,8 @@ CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
 
 EXPORT_MAP := rte_distributor_version.map
 
+LIBABIVER := 1
+
 # all source are stored in SRCS-y
 SRCS-$(CONFIG_RTE_LIBRTE_DISTRIBUTOR) := rte_distributor.c
 
index 0b5f9d978da83efaea2564c1338cd5e405678339..ae214a4dbce9d38c23e0eb4cb79bc079fe62c0e2 100644 (file)
@@ -48,6 +48,8 @@ CFLAGS += $(WERROR_FLAGS) -O3
 
 EXPORT_MAP := rte_eal_version.map
 
+LIBABIVER := 1
+
 # specific to linuxapp exec-env
 SRCS-$(CONFIG_RTE_LIBRTE_EAL_BSDAPP) := eal.c
 SRCS-$(CONFIG_RTE_LIBRTE_EAL_BSDAPP) += eal_memory.c
index bae8af1d008c6da2a7be3bfcd522a4a9eefcdc2c..e117cecdd905e6f7ab2b5fd72b3aac91467938b0 100644 (file)
@@ -35,6 +35,8 @@ LIB = librte_eal.a
 
 EXPORT_MAP := rte_eal_version.map
 
+LIBABIVER := 1
+
 VPATH += $(RTE_SDK)/lib/librte_eal/common
 
 CFLAGS += -I$(SRCDIR)/include
index 80ad78de64e33fbedfda134fcf676221cdb52ecc..c0e576835ee7ddcfa63738de3eea7cd87310dde1 100644 (file)
@@ -41,6 +41,8 @@ CFLAGS += $(WERROR_FLAGS)
 
 EXPORT_MAP := rte_ether_version.map
 
+LIBABIVER := 1
+
 SRCS-y += rte_ethdev.c
 
 #
index bec61ab85e9576bdfa603625d1bbf1bc7efcdb25..3696cb1b5f2b6bf626eb0943a3cd116da38bbffa 100644 (file)
@@ -39,6 +39,8 @@ CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
 
 EXPORT_MAP := rte_hash_version.map
 
+LIBABIVER := 1
+
 # all source are stored in SRCS-y
 SRCS-$(CONFIG_RTE_LIBRTE_HASH) := rte_hash.c
 SRCS-$(CONFIG_RTE_LIBRTE_HASH) += rte_fbk_hash.c
index aa8857848236b2a4f7dcf6ae436d34f639a4552a..fe926f7ec0e54f55cbfb299d195f831185394550 100644 (file)
@@ -39,6 +39,8 @@ CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
 
 EXPORT_MAP := rte_ipfrag_version.map
 
+LIBABIVER := 1
+
 #source files
 ifeq ($(CONFIG_RTE_MBUF_REFCNT),y)
 SRCS-$(CONFIG_RTE_LIBRTE_IP_FRAG) += rte_ipv4_fragmentation.c
index 068ee10420fd2c136119bf9acdbb017da7f892ea..16defdbaacc7947b8e666fbb2a8b031750f9c266 100644 (file)
@@ -38,6 +38,8 @@ CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
 
 EXPORT_MAP := rte_ivshmem_version.map
 
+LIBABIVER := 1
+
 # all source are stored in SRCS-y
 SRCS-$(CONFIG_RTE_LIBRTE_IVSHMEM) := rte_ivshmem.c
 
index 93a516d2229365c64814f0e976f985f64e0af8c4..7107832f6f80452851dbe47167755fe0a4b17805 100644 (file)
@@ -38,6 +38,8 @@ CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3 -fno-strict-aliasing
 
 EXPORT_MAP := rte_kni_version.map
 
+LIBABIVER := 1
+
 # all source are stored in SRCS-y
 SRCS-$(CONFIG_RTE_LIBRTE_KNI) := rte_kni.c
 
index b1c34f3231093e40c91626a00296020f78a5abae..87b09f20484faa20ff9427ab040db50db7d2dfd2 100644 (file)
@@ -40,6 +40,8 @@ CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
 
 EXPORT_MAP := rte_kvargs_version.map
 
+LIBABIVER := 1
+
 # all source are stored in SRCS-y
 SRCS-$(CONFIG_RTE_LIBRTE_KVARGS) := rte_kvargs.c
 
index 821463025a4634756843ba6e05cbfa95c37f5849..35e6389d4ba00935d501f412e12c0f99fe192f29 100644 (file)
@@ -39,6 +39,8 @@ CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
 
 EXPORT_MAP := rte_lpm_version.map
 
+LIBABIVER := 1
+
 # all source are stored in SRCS-y
 SRCS-$(CONFIG_RTE_LIBRTE_LPM) := rte_lpm.c rte_lpm6.c
 
index 15b7eed64d65ed4a451cce1bd94b4c3aefee8b42..947e41c9d45dafc7d11398db669e6e3f2ea56161 100644 (file)
@@ -34,6 +34,8 @@ include $(RTE_SDK)/mk/rte.vars.mk
 # library name
 LIB = librte_malloc.a
 
+LIBABIVER := 1
+
 CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
 
 EXPORT_MAP := rte_malloc_version.map
index 03becae8349f25e54f7392b58f497c6647a87d96..080f3cf720361aa5cd0becde46e98c914d433a31 100644 (file)
@@ -38,6 +38,8 @@ CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
 
 EXPORT_MAP := rte_mbuf_version.map
 
+LIBABIVER := 1
+
 # all source are stored in SRCS-y
 SRCS-$(CONFIG_RTE_LIBRTE_MBUF) := rte_mbuf.c
 
index 31d1a712f3f9b5188713f289cd35b71c67bf2da0..940d1f77acd9749dd4089e9b50c064bc39bb1909 100644 (file)
@@ -38,6 +38,8 @@ CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
 
 EXPORT_MAP := rte_mempool_version.map
 
+LIBABIVER := 1
+
 # all source are stored in SRCS-y
 SRCS-$(CONFIG_RTE_LIBRTE_MEMPOOL) +=  rte_mempool.c
 ifeq ($(CONFIG_RTE_LIBRTE_XEN_DOM0),y)
index c4a7a3212430d772a1834417640cbb6c80061f83..8765881de162c4f4dbe934bf72be2535d390d5ac 100644 (file)
@@ -41,6 +41,8 @@ CFLAGS += $(WERROR_FLAGS)
 
 EXPORT_MAP := rte_meter_version.map
 
+LIBABIVER := 1
+
 #
 # all source are stored in SRCS-y
 #
index 15b58df5872a35b9212fc204cb580bb7600389d9..15e406be666d98652fd22e13481f9589004dffd2 100644 (file)
@@ -41,6 +41,8 @@ CFLAGS += $(WERROR_FLAGS)
 
 EXPORT_MAP := rte_pipeline_version.map
 
+LIBABIVER := 1
+
 #
 # all source are stored in SRCS-y
 #
index 85a78604f735143ffb853c1891c67651cc989d59..f0bf53716a689b33a10ac1601fdb753c6ebbabcb 100644 (file)
@@ -40,6 +40,8 @@ LIB = librte_pmd_af_packet.a
 
 EXPORT_MAP := rte_pmd_af_packet_version.map
 
+LIBABIVER := 1
+
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 
index 074110a0d7fccfcced653596d48dca7674df15df..d6c81a86a533a88f768899182efa84f99a0c0302 100644 (file)
@@ -41,6 +41,8 @@ CFLAGS += $(WERROR_FLAGS)
 
 EXPORT_MAP := rte_eth_bond_version.map
 
+LIBABIVER := 1
+
 #
 # all source are stored in SRCS-y
 #
index cd1444438a7c298e1194ef7ccef230b048be4007..8c8fed85fea1869c2fab3bdfe4e5a1dedd15dd24 100644 (file)
@@ -41,6 +41,8 @@ CFLAGS += $(WERROR_FLAGS)
 
 EXPORT_MAP := rte_pmd_e1000_version.map
 
+LIBABIVER := 1
+
 ifeq ($(CC), icc)
 #
 # CFLAGS for icc
index 697231c88803880f5e93f562d702b617774c1ab3..251a898cd78bef9b863e222f369ba991309772f3 100644 (file)
@@ -39,6 +39,8 @@ LIB = librte_pmd_enic.a
 
 EXPORT_MAP := rte_pmd_enic_version.map
 
+LIBABIVER := 1
+
 CFLAGS += -I$(RTE_SDK)/lib/librte_pmd_enic/vnic/
 CFLAGS += -I$(RTE_SDK)/lib/librte_pmd_enic/
 CFLAGS += -O3
index 73de373754ff71fbf402ff6d3e564483762159d4..9a0eec8808db8c10f8e009a4b598934f821344e8 100644 (file)
@@ -41,6 +41,8 @@ CFLAGS += $(WERROR_FLAGS)
 
 EXPORT_MAP := rte_pmd_i40e_version.map
 
+LIBABIVER := 1
+
 #
 # Add extra flags for base driver files (also known as shared code)
 # to disable warnings
index e0a17f621c20149be68574067323d2848c07bf91..d580f628ef5103b4522166b79acd1a2aba2aa357 100644 (file)
@@ -41,6 +41,8 @@ CFLAGS += $(WERROR_FLAGS)
 
 EXPORT_MAP := rte_pmd_ixgbe_version.map
 
+LIBABIVER := 1
+
 ifeq ($(CC), icc)
 #
 # CFLAGS for icc
index cb6678e3f806cf896a4089c89abf279511ebba81..0775dbc2940197819063fc268dde7c9c99172965 100644 (file)
@@ -42,6 +42,8 @@ CFLAGS += $(WERROR_FLAGS)
 
 EXPORT_MAP := rte_pmd_pcap_version.map
 
+LIBABIVER := 1
+
 #
 # all source are stored in SRCS-y
 #
index aa1b4616781c749c7d0dd4a9d28f0d8919e418cb..e442d0bb656c9c8a093ee96b01691673f45249c7 100644 (file)
@@ -41,6 +41,8 @@ CFLAGS += $(WERROR_FLAGS)
 
 EXPORT_MAP := rte_eth_ring_version.map
 
+LIBABIVER := 1
+
 #
 # all source are stored in SRCS-y
 #
index d979c59cc374edf5b4af27a4ef463914b11994e9..793067f7a2c75d6ce573e46073aa458ca2f8d794 100644 (file)
@@ -41,6 +41,8 @@ CFLAGS += $(WERROR_FLAGS)
 
 EXPORT_MAP := rte_pmd_virtio_version.map
 
+LIBABIVER := 1
+
 #
 # all source are stored in SRCS-y
 #
index f3ab178b65047d4ed497c0ff9d68e6e24f0fa688..93e55801d9998b678365b9e250e5a5d093065223 100644 (file)
@@ -68,6 +68,8 @@ VPATH += $(RTE_SDK)/lib/librte_pmd_vmxnet3/vmxnet3
 
 EXPORT_MAP := rte_pmd_vmxnet3_version.map
 
+LIBABIVER := 1
+
 #
 # all source are stored in SRCS-y
 #
index 4510603aaecf12b590c8e2d231596249e98945f2..f0c796cea6b3d0a6bd3ddca5e5b36007191d668b 100644 (file)
@@ -41,6 +41,8 @@ CFLAGS += $(WERROR_FLAGS)
 
 EXPORT_MAP := rte_eth_xenvirt_version.map
 
+LIBABIVER := 1
+
 #
 # all source are stored in SRCS-y
 #
index 266ed39f2cc94d6ced4f0c9963f5c78f138e13cd..0e38452e43715ef12214630d60e8f2b4924b076f 100644 (file)
@@ -41,6 +41,8 @@ CFLAGS += $(WERROR_FLAGS)
 
 EXPORT_MAP := rte_port_version.map
 
+LIBABIVER := 1
+
 #
 # all source are stored in SRCS-y
 #
index 0547dcdb3de147c23efad12154821792b7f8e1be..cee95cd841c4a069cd05341d1b9afefe1df875a7 100644 (file)
@@ -38,6 +38,8 @@ CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3 -fno-strict-aliasing
 
 EXPORT_MAP := rte_power_version.map
 
+LIBABIVER := 1
+
 # all source are stored in SRCS-y
 SRCS-$(CONFIG_RTE_LIBRTE_POWER) := rte_power.c rte_power_acpi_cpufreq.c
 SRCS-$(CONFIG_RTE_LIBRTE_POWER) += rte_power_kvm_vm.c guest_channel.c
index b437dc559d7be311a953f28105a0f791423e481f..84ad3d336daac5e95a95e91f5382459edbc603f6 100644 (file)
@@ -38,6 +38,8 @@ CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
 
 EXPORT_MAP := rte_ring_version.map
 
+LIBABIVER := 1
+
 # all source are stored in SRCS-y
 SRCS-$(CONFIG_RTE_LIBRTE_RING) := rte_ring.c
 
index 48f280a3da94c95e938a76147f61c4007213124a..b1cb2853344e77da76c51bab32e312c7bc6bf004 100644 (file)
@@ -43,6 +43,8 @@ CFLAGS_rte_red.o := -D_GNU_SOURCE
 
 EXPORT_MAP := rte_sched_version.map
 
+LIBABIVER := 1
+
 #
 # all source are stored in SRCS-y
 #
index 4e1a54aa03a9e30ee0665983834c8bc39defcc75..0d8394c7230f3ceae8fe03b540411aea6cbd308c 100644 (file)
@@ -41,6 +41,8 @@ CFLAGS += $(WERROR_FLAGS)
 
 EXPORT_MAP := rte_table_version.map
 
+LIBABIVER := 1
+
 #
 # all source are stored in SRCS-y
 #
index 9fb6079e45a7723b09380cb37470caf5ad0d1444..2aabef852f274875e3b009e906e13725692865a0 100644 (file)
@@ -38,6 +38,8 @@ CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
 
 EXPORT_MAP := rte_timer_version.map
 
+LIBABIVER := 1
+
 # all source are stored in SRCS-y
 SRCS-$(CONFIG_RTE_LIBRTE_TIMER) := rte_timer.c
 
index 96a7dd0d8dd08032e3823235c16b4dcdcb1d5b83..369c25a993b911c761b662fc2c7593afe58dc07b 100644 (file)
@@ -36,6 +36,8 @@ LIB = librte_vhost.a
 
 EXPORT_MAP := rte_vhost_version.map
 
+LIBABIVER := 1
+
 CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3 -D_FILE_OFFSET_BITS=64 -lfuse
 LDFLAGS += -lfuse
 # all source are stored in SRCS-y
index 1d3b64628b8bfe48a6b08dd8fc35dd2bf0ddfbc2..865a3077d5a349b9485123d4dd5d828b9c1e7f6b 100644 (file)
@@ -37,10 +37,9 @@ include $(RTE_SDK)/mk/internal/rte.depdirs-pre.mk
 
 # VPATH contains at least SRCDIR
 VPATH += $(SRCDIR)
-
 ifeq ($(RTE_BUILD_SHARED_LIB),y)
-LIB := $(patsubst %.a,%.so,$(LIB))
 
+LIB := $(patsubst %.a,%.so.$(LIBABIVER),$(LIB))
 CPU_LDFLAGS += --version-script=$(SRCDIR)/$(EXPORT_MAP)
 
 endif
@@ -113,6 +112,10 @@ lib_dir = [ -d $(RTE_OUTPUT)/lib ] || mkdir -p $(RTE_OUTPUT)/lib;
 #
 ifeq ($(RTE_BUILD_SHARED_LIB),y)
 $(LIB): $(OBJS-y) $(DEP_$(LIB)) FORCE
+ifeq ($(LIBABIVER),)
+       @echo "Must Specify a $(LIB) ABI version"
+       @false
+endif
        @[ -d $(dir $@) ] || mkdir -p $(dir $@)
        $(if $(D),\
                @echo -n "$< -> $@ " ; \
@@ -126,6 +129,7 @@ $(LIB): $(OBJS-y) $(DEP_$(LIB)) FORCE
                $(depfile_missing),\
                $(depfile_newer)),\
                $(O_TO_S_DO))
+
 ifeq ($(RTE_BUILD_COMBINE_LIBS),y)
        $(if $(or \
         $(file_missing),\
@@ -163,9 +167,13 @@ endif
 # install lib in $(RTE_OUTPUT)/lib
 #
 $(RTE_OUTPUT)/lib/$(LIB): $(LIB)
+       $(eval LIBSONAME := $(basename $(LIB)))
        @echo "  INSTALL-LIB $(LIB)"
        @[ -d $(RTE_OUTPUT)/lib ] || mkdir -p $(RTE_OUTPUT)/lib
        $(Q)cp -f $(LIB) $(RTE_OUTPUT)/lib
+ifeq ($(RTE_BUILD_SHARED_LIB),y)
+       $(Q)ln -s -f $< $(RTE_OUTPUT)/lib/$(LIBSONAME)
+endif
 
 #
 # Clean all generated files