From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id CA2C4CA9EAF for ; Thu, 24 Oct 2019 09:46:53 +0000 (UTC) Received: from dpdk.org (dpdk.org [92.243.14.124]) by mail.kernel.org (Postfix) with ESMTP id 460A220856 for ; Thu, 24 Oct 2019 09:46:53 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 460A220856 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=dev-bounces@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 94B8F1E8C2; Thu, 24 Oct 2019 11:46:52 +0200 (CEST) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by dpdk.org (Postfix) with ESMTP id 51AF31E8BF for ; Thu, 24 Oct 2019 11:46:50 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 24 Oct 2019 02:46:49 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.68,224,1569308400"; d="scan'208";a="197686494" Received: from silpixa00399498.ir.intel.com (HELO silpixa00399498.ger.corp.intel.com) ([10.237.223.151]) by fmsmga007.fm.intel.com with ESMTP; 24 Oct 2019 02:46:47 -0700 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: Thu, 24 Oct 2019 10:46:37 +0100 Message-Id: X-Mailer: git-send-email 2.17.1 In-Reply-To: References: Subject: [dpdk-dev] [PATCH v5 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 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 | 170 +++ 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 | 115 +- 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 | 4 +- .../common/dpaax/rte_common_dpaax_version.map | 4 +- .../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 +- .../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/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 +- lib/librte_bbdev/rte_bbdev_version.map | 4 + .../rte_bitratestats_version.map | 2 +- lib/librte_bpf/rte_bpf_version.map | 4 + lib/librte_cfgfile/rte_cfgfile_version.map | 34 +- lib/librte_cmdline/rte_cmdline_version.map | 10 +- .../rte_compressdev_version.map | 4 + .../rte_cryptodev_version.map | 102 +- lib/librte_distributor/Makefile | 2 +- lib/librte_distributor/meson.build | 2 +- lib/librte_distributor/rte_distributor.c | 80 +- .../rte_distributor_private.h | 10 +- ...ributor_v20.c => rte_distributor_single.c} | 57 +- ...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 | 310 ++---- lib/librte_efd/rte_efd_version.map | 2 +- lib/librte_ethdev/rte_ethdev_version.map | 160 +-- lib/librte_eventdev/rte_eventdev_version.map | 130 +-- .../rte_flow_classify_version.map | 4 + 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_ipsec/rte_ipsec_version.map | 4 + 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 | 996 +----------------- lib/librte_lpm/rte_lpm.h | 88 -- lib/librte_lpm/rte_lpm6.c | 132 +-- 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_rcu/rte_rcu_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_stack/rte_stack_version.map | 4 + lib/librte_table/rte_table_version.map | 2 +- .../rte_telemetry_version.map | 4 + lib/librte_timer/rte_timer.c | 90 +- 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 +- 177 files changed, 1141 insertions(+), 2912 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 -- 2.17.1