mbox series

[00/10] fix global variable multiple definitions

Message ID 20190905145315.19395-1-ferruh.yigit@intel.com (mailing list archive)
Headers show
Series fix global variable multiple definitions | expand

Message

Ferruh Yigit Sept. 5, 2019, 2:53 p.m. UTC
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(-)

Comments

David Marchand Oct. 25, 2019, 12:53 p.m. UTC | #1
On Thu, Sep 5, 2019 at 4:53 PM Ferruh Yigit <ferruh.yigit@intel.com> wrote:
>
> 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

Dropped this patch, in favor of:
98c7b9c97e32 ("crypto/octeontx: fix global log variable definition")

>   crypto/dpaa2_sec: fix global variable multiple definitions

Hit a build issue (sent a separate mail), dropped this patch.

>   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

And as discussed, dropped this patch on test-pipeline as well.

>   test: fix global variable multiple definitions

My tests on master are ok, so going for it.


Applied, thanks.


--
David Marchand