[dpdk-dev] [PATCH v2 00/10] Implement the new ABI policy and add helper scripts

Anatoly Burakov anatoly.burakov at intel.com
Wed Oct 16 14:43:15 CEST 2019


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 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 for global
  timer: remove deprecated code
  lpm: remove deprecated code
  distributor: remove deprecated code
  lib: change function suffix in distributor
  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                      |  36 +
 buildtools/update_version_map_abi.py          | 148 +++
 config/ABI_VERSION                            |   1 +
 config/meson.build                            |   3 +-
 .../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} |  48 +-
 ...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          |  41 +-
 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                                 |  19 +-
 177 files changed, 1122 insertions(+), 2891 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} (87%)
 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


More information about the dev mailing list