All of lore.kernel.org
 help / color / mirror / Atom feed
From: Luca Boccassi <bluca@debian.org>
To: Andy Green <andy@warmcat.com>, dev@dpdk.org
Subject: Re: [PATCH v3 00/40] Fix build on gcc8 and various bugs
Date: Thu, 10 May 2018 13:35:49 +0100	[thread overview]
Message-ID: <1525955749.23337.103.camel@debian.org> (raw)
In-Reply-To: <86b6bbc1-6ce8-cd51-7f55-6ec967cff647@warmcat.com>

On Thu, 2018-05-10 at 20:23 +0800, Andy Green wrote:
> 
> On 05/10/2018 06:21 PM, Luca Boccassi wrote:
> > On Thu, 2018-05-10 at 10:46 +0800, Andy Green wrote:
> > > 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
> > 
> > Hi,
> > 
> > I've built-tested this series on Debian Stretch (gcc 6.3) and
> > Debian
> > Sid (gcc 8.1).
> > 
> > The series builds fine with the default config, but the bnx2x and
> > mlx5
> > PMDs still have errors with gcc-8:
> 
> Yes I just built it with defconfig for x86_64 on Fedora 28 with
> default 
> tools and cleared out everything that came up.
> 
> > /tmp/dpdk/drivers/net/bnx2x/bnx2x.c: In function
> > 'bnx2x_alloc_hsi_mem':
> > /tmp/dpdk/drivers/net/bnx2x/bnx2x.c:176:29: error: '%s' directive
> > writing up to 31 bytes into a region of size between 15 and 25 [-
> > Werror=format-overflow=]
> >     sprintf(mz_name, "bnx2x%d_%s_%" PRIx64, sc->pcie_device, msg,
> >                               ^~
> > /tmp/dpdk/drivers/net/bnx2x/bnx2x.c:8874:7:
> >     if (bnx2x_dma_alloc(sc, sizeof(union
> > bnx2x_host_hc_status_block),
> >         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > ~~
> >         &fp->sb_dma, buf, RTE_CACHE_LINE_SIZE) != 0) {
> >         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > /tmp/dpdk/drivers/net/bnx2x/bnx2x.c:176:3: note: 'sprintf' output
> > between 10 and 66 bytes into a destination of size 32
> >     sprintf(mz_name, "bnx2x%d_%s_%" PRIx64, sc->pcie_device, msg,
> >     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >      rte_get_timer_cycles());
> >      ~~~~~~~~~~~~~~~~~~~~~~~
> > /tmp/dpdk/drivers/net/bnx2x/bnx2x.c:173:29: error: '%s' directive
> > writing up to 31 bytes into a region of size between 23 and 25 [-
> > Werror=format-overflow=]
> >     sprintf(mz_name, "bnx2x%d_%s_%" PRIx64, SC_ABS_FUNC(sc), msg,
> >                               ^~
> > /tmp/dpdk/drivers/net/bnx2x/bnx2x.c:8874:7:
> >     if (bnx2x_dma_alloc(sc, sizeof(union
> > bnx2x_host_hc_status_block),
> >         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > ~~
> >         &fp->sb_dma, buf, RTE_CACHE_LINE_SIZE) != 0) {
> >         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > /tmp/dpdk/drivers/net/bnx2x/bnx2x.c:173:3: note: 'sprintf' output
> > between 10 and 58 bytes into a destination of size 32
> >     sprintf(mz_name, "bnx2x%d_%s_%" PRIx64, SC_ABS_FUNC(sc), msg,
> >     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >      rte_get_timer_cycles());
> > 
> > 
> > /tmp/dpdk/drivers/net/mlx5/mlx5.c: In function 'mlx5_pci_probe':
> > /tmp/dpdk/drivers/net/mlx5/mlx5.c:920:13: error: 'vf' may be used
> > uninitialized in this function [-Werror=maybe-uninitialized]
> >     config.vf = vf;
> > 
> > Hope this can be useful.
> 
> I think gcc 8.0.1 is capable to show that and I am willing to look
> at 
> them.  But can you help me with exactly what changes you made so
> these 
> things built and made trouble, compared to the defconfig I have used 
> until now?

If you already have a build directory you are using, the simplest way
is to edit the .config file in there and change the following from =n
to =y:

CONFIG_RTE_LIBRTE_MLX4_PMD
CONFIG_RTE_LIBRTE_MLX5_PMD
CONFIG_RTE_LIBRTE_BNX2X_PMD

Then rebuild and you should see the errors.

-- 
Kind regards,
Luca Boccassi

  reply	other threads:[~2018-05-10 12:35 UTC|newest]

Thread overview: 70+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-10  2:46 [PATCH v3 00/40] Fix build on gcc8 and various bugs Andy Green
2018-05-10  2:46 ` [PATCH v3 01/40] drivers/bus/pci: fix strncpy dangerous code Andy Green
2018-05-10 12:55   ` De Lara Guarch, Pablo
2018-05-10  2:46 ` [PATCH v3 02/40] drivers/bus/dpaa: fix inconsistent struct alignment Andy Green
2018-05-10  2:46 ` [PATCH v3 03/40] drivers/net/axgbe: fix broken eeprom string comp Andy Green
2018-05-10  2:46 ` [PATCH v3 04/40] drivers/net/nfp/nfpcore: fix strncpy misuse Andy Green
2018-05-10  2:46 ` [PATCH v3 05/40] drivers/net/nfp/nfpcore: fix off-by-one and no NUL on strncpy use Andy Green
2018-05-10  2:46 ` [PATCH v3 06/40] drivers/net/nfp: don't memcpy out of source range Andy Green
2018-05-10  2:46 ` [PATCH v3 07/40] drivers/net/nfp: fix buffer overflow in fw_name Andy Green
2018-05-10  2:46 ` [PATCH v3 08/40] drivers/net/qede: fix strncpy constant and NUL Andy Green
2018-05-10  2:47 ` [PATCH v3 09/40] drivers/net/qede: fix broken strncpy Andy Green
2018-05-10  2:47 ` [PATCH v3 10/40] drivers/net/sfc: fix strncpy length Andy Green
2018-05-10  2:47 ` [PATCH v3 11/40] drivers/net/sfc: fix strncpy size and NUL Andy Green
2018-05-10  2:47 ` [PATCH v3 12/40] drivers/net/vdev: readlink inputs cannot be aliased Andy Green
2018-05-10  2:47 ` [PATCH v3 13/40] drivers/net/vdev: fix 3 x strncpy misuse Andy Green
2018-05-10  2:47 ` [PATCH v3 14/40] app/test-pmd: can't find include Andy Green
2018-05-10 13:50   ` De Lara Guarch, Pablo
2018-05-10  2:47 ` [PATCH v3 15/40] app/proc-info: fix sprintf overrun bug Andy Green
2018-05-10  2:47 ` [PATCH v3 16/40] app/test-bbdev: test-bbdev: strcpy ok for allocated string Andy Green
2018-05-10  2:47 ` [PATCH v3 17/40] app/test-bbdev: " Andy Green
2018-05-10  2:47 ` [PATCH v3 18/40] rte_common.h: cast gcc builtin result to avoid complaints Andy Green
2018-05-10  2:47 ` [PATCH v3 19/40] rte_memcpy.h: explicit tmp cast Andy Green
2018-05-10  2:47 ` [PATCH v3 20/40] lib/librte_eal/common/include/rte_lcore.h: explicit cast for signed change Andy Green
2018-05-10  2:48 ` [PATCH v3 21/40] /lib/librte_eal/common/include/rte_random.h: stage cast from uint64_t to long Andy Green
2018-05-10  2:48 ` [PATCH v3 22/40] rte_spinlock.h: stack declarations before code Andy Green
2018-05-10  2:48 ` [PATCH v3 23/40] rte_ring_generic.h: " Andy Green
2018-05-10  2:48 ` [PATCH v3 24/40] rte_ring.h: remove signed type flipflopping Andy Green
2018-05-10  2:48 ` [PATCH v3 25/40] rte_dev.h: stack declaration at top of own basic block Andy Green
2018-05-10  2:48 ` [PATCH v3 26/40] rte_mbuf.h: avoid truncation warnings from inadvertant int16_t to int promotion Andy Green
2018-05-10  2:48 ` [PATCH v3 27/40] rte_mbuf.h: explicit casts for flipping between int16_t and uint16_t Andy Green
2018-05-10  2:48 ` [PATCH v3 28/40] rte_mbuf.h: make sure RTE_MIN compares same types Andy Green
2018-05-10  2:48 ` [PATCH v3 29/40] rte_mbuf.h: explicit cast restricting ptrdiff to uint16_t Andy Green
2018-05-10  2:48 ` [PATCH v3 30/40] rte_mbuf.h: explicit cast for size_t to uint32_t Andy Green
2018-05-10  2:48 ` [PATCH v3 31/40] rte_mbuf.h: explicit casts to uint16_t to avoid truncation warnings Andy Green
2018-05-10  2:49 ` [PATCH v3 32/40] rte_byteorder.h: explicit cast for return promotion Andy Green
2018-05-10  2:49 ` [PATCH v3 33/40] rte_ether.h: explicit cast avoiding truncation warning Andy Green
2018-05-10  2:49 ` [PATCH v3 34/40] rte_ether.h: stack vars declared at top of function Andy Green
2018-05-10  2:49 ` [PATCH v3 35/40] rte_ethdev.h: fix sign and scope of temp var Andy Green
2018-05-10  2:49 ` [PATCH v3 36/40] rte_ethdev.h: explicit cast for return type Andy Green
2018-05-10 19:18   ` Stephen Hemminger
2018-05-10 23:48     ` Andy Green
2018-05-10  2:49 ` [PATCH v3 37/40] rte_ethdev.h: explicit cast for truncation Andy Green
2018-05-10  2:49 ` [PATCH v3 38/40] rte_hash_crc.h: stack vars declared at top of function Andy Green
2018-05-10  2:49 ` [PATCH v3 39/40] rte_hash_crc.h: explicit casts for truncation Andy Green
2018-05-10  2:49 ` [PATCH v3 40/40] rte_string_fns.h: explicit cast for int return to size_t Andy Green
2018-05-10 19:17   ` Stephen Hemminger
2018-05-11  0:13     ` Andy Green
2018-05-10  6:12 ` [PATCH v3 00/40] Fix build on gcc8 and various bugs Jerin Jacob
2018-05-10  7:11   ` Andy Green
2018-05-10  9:19     ` Jerin Jacob
2018-05-10  6:17 ` Jerin Jacob
2018-05-10  6:46   ` Andy Green
2018-05-10  9:11     ` Jerin Jacob
2018-05-10 11:44       ` Andy Green
2018-05-10 11:58         ` Jerin Jacob
2018-05-10 12:13           ` Andy Green
2018-05-10 15:01             ` Stephen Hemminger
2018-05-11  0:29               ` Andy Green
2018-05-11  1:37                 ` Andy Green
2018-05-13 13:58                 ` Thomas Monjalon
2018-05-10  9:52 ` De Lara Guarch, Pablo
2018-05-10 11:57   ` Andy Green
2018-05-10 10:21 ` Luca Boccassi
2018-05-10 12:23   ` Andy Green
2018-05-10 12:35     ` Luca Boccassi [this message]
2018-05-10 13:36       ` Bruce Richardson
2018-05-10 13:49         ` Luca Boccassi
2018-05-10 13:53           ` Andy Green
2018-05-10 14:20             ` Andy Green
2018-05-10 13:59         ` Andy Green

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1525955749.23337.103.camel@debian.org \
    --to=bluca@debian.org \
    --cc=andy@warmcat.com \
    --cc=dev@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.