[dpdk-dev] [PATCH v3 00/40] Fix build on gcc8 and various bugs

Andy Green andy at warmcat.com
Thu May 10 04:46:18 CEST 2018


The following series gets current master able to build
itself, and allow lagopus to build against it, on Fedora 28 +
x86_64 using gcc 8.0.1.

The first 17 patches have already been through two spins and
this time are corrected for all the comment (thanks to
everybody who commented) since v2, and have tested-by /
acked-bys applied.  The first workaround patch for the hash
function cast problem is dropped since something has already
been applied in master since yesterday to address it.

The additional 23 patches are fixes for problems found
actually trying to build lagopus using current master.
These are almost entirely related to signed / unsigned
or truncation without explicit casts inside dpdk
headers.

---

Andy Green (40):
      drivers/bus/pci: fix strncpy dangerous code
      drivers/bus/dpaa: fix inconsistent struct alignment
      drivers/net/axgbe: fix broken eeprom string comp
      drivers/net/nfp/nfpcore: fix strncpy misuse
      drivers/net/nfp/nfpcore: fix off-by-one and no NUL on strncpy use
      drivers/net/nfp: don't memcpy out of source range
      drivers/net/nfp: fix buffer overflow in fw_name
      drivers/net/qede: fix strncpy constant and NUL
      drivers/net/qede: fix broken strncpy
      drivers/net/sfc: fix strncpy length
      drivers/net/sfc: fix strncpy size and NUL
      drivers/net/vdev: readlink inputs cannot be aliased
      drivers/net/vdev: fix 3 x strncpy misuse
      app/test-pmd: can't find include
      app/proc-info: fix sprintf overrun bug
      app/test-bbdev: test-bbdev: strcpy ok for allocated string
      app/test-bbdev: strcpy ok for allocated string
      rte_common.h: cast gcc builtin result to avoid complaints
      rte_memcpy.h: explicit tmp cast
      lib/librte_eal/common/include/rte_lcore.h: explicit cast for signed change
      /lib/librte_eal/common/include/rte_random.h: stage cast from uint64_t to long
      rte_spinlock.h: stack declarations before code
      rte_ring_generic.h: stack declarations before code
      rte_ring.h: remove signed type flipflopping
      rte_dev.h: stack declaration at top of own basic block
      rte_mbuf.h: avoid truncation warnings from inadvertant int16_t to int promotion
      rte_mbuf.h: explicit casts for flipping between int16_t and uint16_t
      rte_mbuf.h: make sure RTE_MIN compares same types
      rte_mbuf.h: explicit cast restricting ptrdiff to uint16_t
      rte_mbuf.h: explicit cast for size_t to uint32_t
      rte_mbuf.h: explicit casts to uint16_t to avoid truncation warnings
      rte_byteorder.h: explicit cast for return promotion
      rte_ether.h: explicit cast avoiding truncation warning
      rte_ether.h: stack vars declared at top of function
      rte_ethdev.h: fix sign and scope of temp var
      rte_ethdev.h: explicit cast for return type
      rte_ethdev.h: explicit cast for truncation
      rte_hash_crc.h: stack vars declared at top of function
      rte_hash_crc.h: explicit casts for truncation
      rte_string_fns.h: explicit cast for int return to size_t


 app/proc-info/main.c                               |    9 ++++-
 app/test-bbdev/test_bbdev_vector.c                 |    5 ++-
 app/test-pmd/Makefile                              |    1 +
 drivers/bus/dpaa/base/qbman/qman.c                 |   14 ++++----
 drivers/bus/dpaa/include/fsl_qman.h                |   24 +++++++------
 drivers/bus/pci/linux/pci.c                        |    2 +
 drivers/net/axgbe/axgbe_phy_impl.c                 |    4 +-
 drivers/net/nfp/nfp_net.c                          |    6 ++-
 drivers/net/nfp/nfpcore/nfp_cpp_pcie_ops.c         |    4 ++
 drivers/net/nfp/nfpcore/nfp_resource.c             |   10 +++---
 drivers/net/qede/base/ecore_int.c                  |    8 +++-
 drivers/net/qede/qede_main.c                       |    7 ++--
 drivers/net/sfc/sfc_ethdev.c                       |    6 ++-
 drivers/net/vdev_netvsc/vdev_netvsc.c              |   15 +++++---
 .../common/include/arch/x86/rte_memcpy.h           |    8 ++--
 .../common/include/arch/x86/rte_spinlock.h         |    4 ++
 .../common/include/generic/rte_byteorder.h         |    2 +
 lib/librte_eal/common/include/rte_common.h         |    2 +
 lib/librte_eal/common/include/rte_dev.h            |   15 +++++---
 lib/librte_eal/common/include/rte_lcore.h          |    2 +
 lib/librte_eal/common/include/rte_random.h         |    6 ++-
 lib/librte_eal/common/include/rte_string_fns.h     |    2 +
 lib/librte_ethdev/rte_ethdev.h                     |   32 +++++++++++-------
 lib/librte_hash/rte_hash_crc.h                     |   11 +++---
 lib/librte_mbuf/rte_mbuf.h                         |   36 +++++++++++---------
 lib/librte_net/rte_ether.h                         |    5 ++-
 lib/librte_ring/rte_ring.h                         |    4 +-
 lib/librte_ring/rte_ring_c11_mem.h                 |    2 +
 lib/librte_ring/rte_ring_generic.h                 |   10 ++----
 29 files changed, 144 insertions(+), 112 deletions(-)

--
Signature


More information about the dev mailing list