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