From patchwork Fri Nov 8 16:25:21 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Burakov, Anatoly" X-Patchwork-Id: 62782 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 0D5AAA04B4; Fri, 8 Nov 2019 17:25:38 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 3FA721C067; Fri, 8 Nov 2019 17:25:37 +0100 (CET) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by dpdk.org (Postfix) with ESMTP id 4C1911C065 for ; Fri, 8 Nov 2019 17:25:35 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga106.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 08 Nov 2019 08:25:34 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.68,282,1569308400"; d="scan'208";a="196947394" Received: from silpixa00399498.ir.intel.com (HELO silpixa00399498.ger.corp.intel.com) ([10.237.223.151]) by orsmga008.jf.intel.com with ESMTP; 08 Nov 2019 08:25:32 -0800 From: Anatoly Burakov To: dev@dpdk.org Cc: john.mcnamara@intel.com, ray.kinsella@intel.com, bruce.richardson@intel.com, thomas@monjalon.net, david.marchand@redhat.com Date: Fri, 8 Nov 2019 16:25:21 +0000 Message-Id: X-Mailer: git-send-email 2.17.1 In-Reply-To: References: Subject: [dpdk-dev] [PATCH v7 00/10] Implement the new ABI policy and add helper scripts X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" This patchset prepares the codebase for the new ABI policy and adds a few helper scripts. There are two new scripts for managing ABI versions added. The first one is a Python script that will read in a .map file, flatten it and update the ABI version to the ABI version specified on the command-line. The second one is a shell script that will run the above mentioned Python script recursively over the source tree and set the ABI version to either that which is defined in config/ABI_VERSION, or a user-specified one. Example of its usage: buildtools/update-abi.sh 20.0 This will recurse into lib/ and drivers/ directory and update whatever .map files it can find. The other shell script that's added is one that can take in a .so file and ensure that its declared public ABI matches either current ABI, next ABI, or EXPERIMENTAL. This was moved to the last commit because it made no sense to have it beforehand. The source tree was verified to follow the new ABI policy using the following command (assuming built binaries are in build/): find ./build/lib ./build/drivers -name \*.so \ -exec ./buildtools/check-abi-version.sh {} \; -print This returns 0. Changes since v6: - Rebase on top of latest master - Fixed map file generation to generate stable ABI if it was there, even if it was empty Changes since v5: - Addressed David's comments regarding libtool error messages - Fixed map file generation to not generate empty stable ABI if it wasn't there before Changes since v4: - Fixed shared library build issue for distributor Changes since v3: - Put distributor code back and cleaned it up - Rebased on latest master and regenerated commit 9 Changes since v2: - Addressed Bruce's review comments - Removed single distributor mode as per Dave's suggestion Changes since v1: - Reordered patchset to have removal of old ABI's before introducing the new one to avoid compile breakages between patches - Added a new patch fixing missing symbol in octeontx common - Split script commits into multiple commits and reordered them - Re-generated the ABI bump commit - Verified all scripts to work Anatoly Burakov (2): buildtools: add ABI update shell script drivers/octeontx: add missing public symbol Marcin Baran (6): config: change ABI versioning to global timer: remove deprecated code lpm: remove deprecated code distributor: remove deprecated code distributor: rename v2.0 ABI to _single suffix buildtools: add ABI versioning check script Pawel Modrak (2): buildtools: add script for updating symbols abi version build: change ABI version to 20.0 buildtools/check-abi-version.sh | 54 + buildtools/meson.build | 2 + buildtools/update-abi.sh | 42 + buildtools/update_version_map_abi.py | 173 +++ config/ABI_VERSION | 1 + config/meson.build | 4 +- .../rte_pmd_bbdev_fpga_lte_fec_version.map | 8 +- .../null/rte_pmd_bbdev_null_version.map | 2 +- .../rte_pmd_bbdev_turbo_sw_version.map | 2 +- drivers/bus/dpaa/rte_bus_dpaa_version.map | 113 +- drivers/bus/fslmc/rte_bus_fslmc_version.map | 154 +-- drivers/bus/ifpga/rte_bus_ifpga_version.map | 14 +- drivers/bus/pci/rte_bus_pci_version.map | 2 +- drivers/bus/vdev/rte_bus_vdev_version.map | 12 +- drivers/bus/vmbus/rte_bus_vmbus_version.map | 12 +- drivers/common/cpt/rte_common_cpt_version.map | 9 +- .../common/dpaax/rte_common_dpaax_version.map | 14 +- .../common/mvep/rte_common_mvep_version.map | 6 +- .../octeontx/rte_common_octeontx_version.map | 7 +- .../rte_common_octeontx2_version.map | 16 +- .../compress/isal/rte_pmd_isal_version.map | 2 +- .../rte_pmd_octeontx_compress_version.map | 2 +- drivers/compress/qat/rte_pmd_qat_version.map | 2 +- .../compress/zlib/rte_pmd_zlib_version.map | 2 +- .../aesni_gcm/rte_pmd_aesni_gcm_version.map | 2 +- .../aesni_mb/rte_pmd_aesni_mb_version.map | 2 +- .../crypto/armv8/rte_pmd_armv8_version.map | 2 +- .../caam_jr/rte_pmd_caam_jr_version.map | 3 +- drivers/crypto/ccp/rte_pmd_ccp_version.map | 3 +- .../dpaa2_sec/rte_pmd_dpaa2_sec_version.map | 10 +- .../dpaa_sec/rte_pmd_dpaa_sec_version.map | 10 +- .../crypto/kasumi/rte_pmd_kasumi_version.map | 2 +- .../crypto/mvsam/rte_pmd_mvsam_version.map | 2 +- .../crypto/nitrox/rte_pmd_nitrox_version.map | 2 +- .../null/rte_pmd_null_crypto_version.map | 2 +- .../rte_pmd_octeontx_crypto_version.map | 3 +- .../rte_pmd_octeontx2_crypto_version.map | 3 +- .../openssl/rte_pmd_openssl_version.map | 2 +- .../rte_pmd_crypto_scheduler_version.map | 19 +- .../crypto/snow3g/rte_pmd_snow3g_version.map | 2 +- .../virtio/rte_pmd_virtio_crypto_version.map | 2 +- drivers/crypto/zuc/rte_pmd_zuc_version.map | 2 +- .../event/dpaa/rte_pmd_dpaa_event_version.map | 3 +- .../dpaa2/rte_pmd_dpaa2_event_version.map | 2 +- .../event/dsw/rte_pmd_dsw_event_version.map | 2 +- .../rte_pmd_octeontx_event_version.map | 2 +- .../rte_pmd_octeontx2_event_version.map | 3 +- .../event/opdl/rte_pmd_opdl_event_version.map | 2 +- .../rte_pmd_skeleton_event_version.map | 3 +- drivers/event/sw/rte_pmd_sw_event_version.map | 2 +- .../bucket/rte_mempool_bucket_version.map | 3 +- .../mempool/dpaa/rte_mempool_dpaa_version.map | 2 +- .../dpaa2/rte_mempool_dpaa2_version.map | 12 +- .../octeontx/rte_mempool_octeontx_version.map | 2 +- .../rte_mempool_octeontx2_version.map | 4 +- .../mempool/ring/rte_mempool_ring_version.map | 3 +- .../stack/rte_mempool_stack_version.map | 3 +- drivers/meson.build | 20 +- .../af_packet/rte_pmd_af_packet_version.map | 3 +- drivers/net/af_xdp/rte_pmd_af_xdp_version.map | 2 +- drivers/net/ark/rte_pmd_ark_version.map | 5 +- .../net/atlantic/rte_pmd_atlantic_version.map | 4 +- drivers/net/avp/rte_pmd_avp_version.map | 2 +- drivers/net/axgbe/rte_pmd_axgbe_version.map | 2 +- drivers/net/bnx2x/rte_pmd_bnx2x_version.map | 3 +- drivers/net/bnxt/rte_pmd_bnxt_version.map | 4 +- drivers/net/bonding/rte_pmd_bond_version.map | 47 +- drivers/net/cxgbe/rte_pmd_cxgbe_version.map | 3 +- drivers/net/dpaa/rte_pmd_dpaa_version.map | 11 +- drivers/net/dpaa2/rte_pmd_dpaa2_version.map | 12 +- drivers/net/e1000/rte_pmd_e1000_version.map | 3 +- drivers/net/ena/rte_pmd_ena_version.map | 3 +- drivers/net/enetc/rte_pmd_enetc_version.map | 3 +- drivers/net/enic/rte_pmd_enic_version.map | 3 +- .../net/failsafe/rte_pmd_failsafe_version.map | 3 +- drivers/net/fm10k/rte_pmd_fm10k_version.map | 3 +- drivers/net/hinic/rte_pmd_hinic_version.map | 3 +- drivers/net/hns3/rte_pmd_hns3_version.map | 4 +- drivers/net/i40e/rte_pmd_i40e_version.map | 65 +- drivers/net/iavf/rte_pmd_iavf_version.map | 3 +- drivers/net/ice/rte_pmd_ice_version.map | 3 +- drivers/net/ifc/rte_pmd_ifc_version.map | 3 +- drivers/net/ipn3ke/rte_pmd_ipn3ke_version.map | 3 +- drivers/net/ixgbe/rte_pmd_ixgbe_version.map | 62 +- drivers/net/kni/rte_pmd_kni_version.map | 3 +- .../net/liquidio/rte_pmd_liquidio_version.map | 3 +- drivers/net/memif/rte_pmd_memif_version.map | 5 +- drivers/net/mlx4/rte_pmd_mlx4_version.map | 3 +- drivers/net/mlx5/rte_pmd_mlx5_version.map | 2 +- drivers/net/mvneta/rte_pmd_mvneta_version.map | 2 +- drivers/net/mvpp2/rte_pmd_mvpp2_version.map | 2 +- drivers/net/netvsc/rte_pmd_netvsc_version.map | 4 +- drivers/net/nfb/rte_pmd_nfb_version.map | 3 +- drivers/net/nfp/rte_pmd_nfp_version.map | 2 +- drivers/net/null/rte_pmd_null_version.map | 3 +- .../net/octeontx/rte_pmd_octeontx_version.map | 10 +- .../octeontx2/rte_pmd_octeontx2_version.map | 3 +- drivers/net/pcap/rte_pmd_pcap_version.map | 3 +- drivers/net/pfe/rte_pmd_pfe_version.map | 3 +- drivers/net/qede/rte_pmd_qede_version.map | 3 +- drivers/net/ring/rte_pmd_ring_version.map | 10 +- drivers/net/sfc/rte_pmd_sfc_version.map | 3 +- .../net/softnic/rte_pmd_softnic_version.map | 2 +- .../net/szedata2/rte_pmd_szedata2_version.map | 2 +- drivers/net/tap/rte_pmd_tap_version.map | 3 +- .../net/thunderx/rte_pmd_thunderx_version.map | 3 +- .../rte_pmd_vdev_netvsc_version.map | 3 +- drivers/net/vhost/rte_pmd_vhost_version.map | 11 +- drivers/net/virtio/rte_pmd_virtio_version.map | 3 +- .../net/vmxnet3/rte_pmd_vmxnet3_version.map | 3 +- .../rte_rawdev_dpaa2_cmdif_version.map | 3 +- .../rte_rawdev_dpaa2_qdma_version.map | 4 +- .../raw/ifpga/rte_rawdev_ifpga_version.map | 3 +- drivers/raw/ioat/rte_rawdev_ioat_version.map | 3 +- drivers/raw/ntb/rte_rawdev_ntb_version.map | 5 +- .../rte_rawdev_octeontx2_dma_version.map | 3 +- .../skeleton/rte_rawdev_skeleton_version.map | 3 +- lib/librte_acl/rte_acl_version.map | 2 +- .../rte_bitratestats_version.map | 2 +- lib/librte_cfgfile/rte_cfgfile_version.map | 34 +- lib/librte_cmdline/rte_cmdline_version.map | 10 +- .../rte_cryptodev_version.map | 102 +- lib/librte_distributor/Makefile | 2 +- lib/librte_distributor/distributor_private.h | 10 +- lib/librte_distributor/meson.build | 2 +- lib/librte_distributor/rte_distributor.c | 98 +- ...ributor_v20.c => rte_distributor_single.c} | 73 +- ...ributor_v20.h => rte_distributor_single.h} | 26 +- .../rte_distributor_v1705.h | 61 - .../rte_distributor_version.map | 16 +- lib/librte_eal/rte_eal_version.map | 324 ++---- lib/librte_efd/rte_efd_version.map | 2 +- lib/librte_ethdev/rte_ethdev_version.map | 160 +-- lib/librte_eventdev/rte_eventdev_version.map | 130 +-- lib/librte_gro/rte_gro_version.map | 2 +- lib/librte_gso/rte_gso_version.map | 2 +- lib/librte_hash/rte_hash_version.map | 43 +- lib/librte_ip_frag/rte_ip_frag_version.map | 10 +- lib/librte_jobstats/rte_jobstats_version.map | 10 +- lib/librte_kni/rte_kni_version.map | 2 +- lib/librte_kvargs/rte_kvargs_version.map | 4 +- .../rte_latencystats_version.map | 2 +- lib/librte_lpm/rte_lpm.c | 1010 +---------------- lib/librte_lpm/rte_lpm.h | 88 -- lib/librte_lpm/rte_lpm6.c | 140 +-- lib/librte_lpm/rte_lpm6.h | 25 - lib/librte_lpm/rte_lpm_version.map | 39 +- lib/librte_mbuf/rte_mbuf_version.map | 49 +- lib/librte_member/rte_member_version.map | 2 +- lib/librte_mempool/rte_mempool_version.map | 44 +- lib/librte_meter/rte_meter_version.map | 13 +- lib/librte_metrics/rte_metrics_version.map | 2 +- lib/librte_net/rte_net_version.map | 23 +- lib/librte_pci/rte_pci_version.map | 2 +- lib/librte_pdump/rte_pdump_version.map | 2 +- lib/librte_pipeline/rte_pipeline_version.map | 36 +- lib/librte_port/rte_port_version.map | 64 +- lib/librte_power/rte_power_version.map | 24 +- lib/librte_rawdev/rte_rawdev_version.map | 4 +- lib/librte_reorder/rte_reorder_version.map | 8 +- lib/librte_ring/rte_ring_version.map | 10 +- lib/librte_sched/rte_sched_version.map | 14 +- lib/librte_security/rte_security_version.map | 2 +- lib/librte_table/rte_table_version.map | 2 +- lib/librte_timer/rte_timer.c | 100 +- lib/librte_timer/rte_timer.h | 15 - lib/librte_timer/rte_timer_version.map | 12 +- lib/librte_vhost/rte_vhost_version.map | 52 +- lib/meson.build | 18 +- meson_options.txt | 2 - mk/rte.lib.mk | 13 +- 171 files changed, 1152 insertions(+), 2971 deletions(-) create mode 100755 buildtools/check-abi-version.sh create mode 100755 buildtools/update-abi.sh create mode 100755 buildtools/update_version_map_abi.py create mode 100644 config/ABI_VERSION rename lib/librte_distributor/{rte_distributor_v20.c => rte_distributor_single.c} (84%) rename lib/librte_distributor/{rte_distributor_v20.h => rte_distributor_single.h} (89%) delete mode 100644 lib/librte_distributor/rte_distributor_v1705.h