[dpdk-dev] [PATCH 00/10] fix global variable multiple definitions

Ferruh Yigit ferruh.yigit at intel.com
Thu Sep 5 16:53:05 CEST 2019


Issue has been detected by '-fno-common' gcc flag. By default compiler
still can figure out that multiple definition are the same variable and
use same storage for all definitions but this is implementation specific
behaviour and better to fix it.

Many of the cases below it is nice to have to use 'extern' keyword but
there are some defects in 'virtio, ''dpaa2_sec' & 'test' that multiple
components share same global variable unintentionally.

Ferruh Yigit (10):
  bus/fslmc: fix global variable multiple definitions
  net/igb: fix global variable multiple definitions
  crypto/null: fix global variable multiple definitions
  crypto/octeontx: fix global variable multiple definitions
  crypto/dpaa2_sec: fix global variable multiple definitions
  crypto/virtio: fix global variable multiple definitions
  compress/octeontx: fix global variable multiple definitions
  app/testpmd: fix global variable multiple definitions
  app/test-pipeline: fix global variable multiple definitions
  test: fix global variable multiple definitions

 app/test-pipeline/config.c                    |  2 +-
 app/test-pmd/cmdline_flow.c                   | 77 +++++++++++++++----
 app/test-pmd/testpmd.c                        | 35 ---------
 app/test-pmd/testpmd.h                        | 18 +++--
 app/test/test_bitratestats.c                  |  6 +-
 app/test/test_distributor_perf.c              |  2 +-
 app/test/test_efd.c                           |  2 +-
 app/test/test_efd_perf.c                      |  6 +-
 app/test/test_hash_perf.c                     | 12 +--
 app/test/test_hash_readwrite_lf.c             |  8 +-
 app/test/test_latencystats.c                  |  6 +-
 app/test/test_member_perf.c                   | 16 ++--
 app/test/test_rcu_qsbr.c                      | 10 +--
 drivers/bus/fslmc/qbman/qbman_portal.c        |  2 +
 drivers/bus/fslmc/qbman/qbman_portal.h        |  2 +-
 drivers/common/cpt/cpt_pmd_logs.h             |  2 +-
 drivers/compress/octeontx/otx_zip.h           |  2 +-
 drivers/compress/octeontx/otx_zip_pmd.c       |  2 +
 drivers/crypto/caam_jr/caam_jr.c              |  5 +-
 drivers/crypto/caam_jr/caam_jr_hw.c           |  3 +
 drivers/crypto/caam_jr/caam_jr_uio.c          |  3 +
 drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c   |  5 +-
 drivers/crypto/dpaa2_sec/hw/rta.h             |  1 -
 .../dpaa2_sec/hw/rta/fifo_load_store_cmd.h    |  2 -
 drivers/crypto/dpaa2_sec/hw/rta/header_cmd.h  |  2 -
 drivers/crypto/dpaa2_sec/hw/rta/jump_cmd.h    |  2 -
 drivers/crypto/dpaa2_sec/hw/rta/key_cmd.h     |  2 -
 drivers/crypto/dpaa2_sec/hw/rta/load_cmd.h    |  2 -
 drivers/crypto/dpaa2_sec/hw/rta/math_cmd.h    |  2 -
 drivers/crypto/dpaa2_sec/hw/rta/move_cmd.h    |  2 -
 drivers/crypto/dpaa2_sec/hw/rta/nfifo_cmd.h   |  2 -
 .../crypto/dpaa2_sec/hw/rta/operation_cmd.h   |  2 -
 .../crypto/dpaa2_sec/hw/rta/protocol_cmd.h    |  2 -
 .../dpaa2_sec/hw/rta/seq_in_out_ptr_cmd.h     |  2 -
 drivers/crypto/dpaa2_sec/hw/rta/store_cmd.h   |  2 -
 drivers/crypto/dpaa_sec/dpaa_sec.c            |  5 +-
 drivers/crypto/null/null_crypto_pmd.c         |  1 +
 drivers/crypto/null/null_crypto_pmd_private.h |  2 +-
 drivers/crypto/octeontx/otx_cryptodev.c       |  2 +
 drivers/crypto/octeontx/otx_cryptodev.h       |  2 +-
 drivers/crypto/virtio/virtio_pci.c            |  4 +-
 drivers/crypto/virtio/virtio_pci.h            |  6 +-
 drivers/net/e1000/e1000_ethdev.h              | 12 +--
 drivers/net/e1000/igb_flow.c                  |  7 ++
 44 files changed, 151 insertions(+), 141 deletions(-)

-- 
2.21.0



More information about the dev mailing list