DPDK patches and discussions
 help / color / mirror / Atom feed
From: Bruce Richardson <bruce.richardson@intel.com>
To: Luca Boccassi <luca.boccassi@gmail.com>
Cc: Stephen Hemminger <stephen@networkplumber.org>,
	dev@dpdk.org, ferruh.yigit@intel.com
Subject: Re: [dpdk-dev] [PATCH v7 0/6] Reproducible build
Date: Wed, 6 Sep 2017 11:45:07 +0100	[thread overview]
Message-ID: <20170906104507.GA27220@bricha3-MOBL3.ger.corp.intel.com> (raw)
In-Reply-To: <1504689034.2725.0.camel@gmail.com>

On Wed, Sep 06, 2017 at 10:10:34AM +0100, Luca Boccassi wrote:
> On Wed, 2017-09-06 at 09:46 +0100, Bruce Richardson wrote:
> > On Tue, Sep 05, 2017 at 10:15:29PM +0100, Luca Boccassi wrote:
> > > On Tue, 2017-09-05 at 14:00 -0700, Stephen Hemminger wrote:
> > > > On Tue,  5 Sep 2017 21:51:53 +0100
> > > > luca.boccassi@gmail.com wrote:
> > > > 
> > > > > From: Luca Boccassi <luca.boccassi@gmail.com>
> > > > > 
> > > > > In the past couple of years a concerted effort among almost all
> > > > > Linux
> > > > > distros has been striving toward achieving reproducible builds.
> > > > > [1]
> > > > > This involves changes to the toolchain, new tools and CI
> > > > > systems.
> > > > > [2]
> > > > > 
> > > > > v1 fixed the documentation, examples and linker script
> > > > > generation.
> > > > > v2 fixes all problems, which were caused by unstable order of
> > > > > headers
> > > > > inclusion, source files listing and object file listing when
> > > > > passing
> > > > > them to the compiler.
> > > > > DPDK's build, at least with the default configuration, is fully
> > > > > reproducible with this patch series as tested by the
> > > > > Reproducible
> > > > > Builds developers experimental toolchain. [3]
> > > > > 
> > > > > v3 restores the first patch, which was eaten by git send-email.
> > > > > 
> > > > > v4 drops the patch that reorders rebuilds, and adds a patch to
> > > > > make
> > > > > the inclusion of headers deterministic with regards to GCC
> > > > > embedding
> > > > > the full file path when expading __FILE__ and when writing the
> > > > > directory listing in the DWARF objects.
> > > > > It also drops the first 2 patches which have already been
> > > > > merged.
> > > > > 
> > > > > v5 adds the -I$(SRCDIR) workaround to librte_eal linuxapp's and
> > > > > librte_gro's Makefiles.
> > > > > 
> > > > > v6 fixes copypasta added in v5 - librte-gro's Makefile should
> > > > > have
> > > > > used
> > > > > $(SRCDIR) rather than $(SRCDIR)/include.
> > > > > 
> > > > > v7 dropped the big patch to change the CFLAGS in all libraries
> > > > > Makefiles
> > > > > and instead uses a much simpler approach suggested by Ferruh
> > > > > (thanks!),
> > > > > which consists in installing the library public headers
> > > > > symlinks
> > > > > before
> > > > > building. Although the drawback is that the DWARF directory
> > > > > listing
> > > > > will always include the user configured build output directory,
> > > > > it
> > > > > is
> > > > > a much smaller patch that will be rendered obsolete by the move
> > > > > to
> > > > > Meson
> > > > > anyway.
> > > > > 
> > > > > [1] https://reproducible-builds.org/
> > > > > [2] https://reproducible-builds.org/tools/
> > > > > [3] https://wiki.debian.org/ReproducibleBuilds/ExperimentalTool
> > > > > chai
> > > > > n#Us
> > > > > 
> > > > > Luca Boccassi (6):
> > > > >   mk: sort list of shared objects in linker script
> > > > >   mk: sort list of files in examples.dox
> > > > >   mk: sort headers before wildcard inclusion
> > > > >   mk: sort source files before passing them to the compiler
> > > > >   mk: sort object files when building deps lists
> > > > >   mk: install symlinks before build step
> > > > > 
> > > > >  drivers/net/cxgbe/Makefile                                 | 2
> > > > > +-
> > > > >  drivers/net/e1000/Makefile                                 | 2
> > > > > +-
> > > > >  drivers/net/fm10k/Makefile                                 | 2
> > > > > +-
> > > > >  drivers/net/i40e/Makefile                                  | 2
> > > > > +-
> > > > >  drivers/net/ixgbe/Makefile                                 | 2
> > > > > +-
> > > > >  drivers/net/qede/Makefile                                  | 2
> > > > > +-
> > > > >  drivers/net/sfc/Makefile                                   | 2
> > > > > +-
> > > > >  drivers/net/thunderx/Makefile                              | 2
> > > > > +-
> > > > >  examples/ip_pipeline/Makefile                              | 2
> > > > > +-
> > > > >  examples/multi_process/client_server_mp/mp_server/Makefile | 2
> > > > > +-
> > > > >  examples/server_node_efd/server/Makefile                   | 2
> > > > > +-
> > > > >  lib/librte_eal/common/Makefile                             | 2
> > > > > +-
> > > > >  mk/rte.app.mk                                              | 4
> > > > > ++-
> > > > > -
> > > > >  mk/rte.combinedlib.mk                                      | 2
> > > > > +-
> > > > >  mk/rte.hostapp.mk                                          | 4
> > > > > ++-
> > > > > -
> > > > >  mk/rte.lib.mk                                              | 7
> > > > > ++++++-
> > > > >  mk/rte.sdkdoc.mk                                           | 2
> > > > > +-
> > > > >  mk/rte.shared.mk                                           | 4
> > > > > ++-
> > > > > -
> > > > >  18 files changed, 26 insertions(+), 21 deletions(-)
> > > > > 
> > > > 
> > > > How does this interact with propose new build process.
> > > > Hate to have do everything twice.
> > > 
> > > Most of these patches, mainly for the custom bits that discover the
> > > source/headers files on the system (all the wildcards, etc) will
> > > not be
> > > necessary any longer.
> > > 
> > > The documentation build is not there yet in the patchset, so I'll
> > > check
> > > once that's available.
> > > 
> > > But I'm still testing the Meson patches, I had issues integrating
> > > it in
> > > the package builds as Meson support is still quite new in
> > > debhelper, I
> > > hope to finish that up next week and give feedback to Bruce.
> > > 
> > > The reproducible build testing infra I've got is picky and eats
> > > only
> > > deb packages so until I get that up and running I cannot test the
> > > reproducibility using Meson unfortunately.
> > > 
> > > -- 
> > 
> > It's also safer to assume that any replacement build system is going
> > to
> > take a while longer to complete, so it's as well to consider these
> > changes for integration, since they are not that large of patches.
> 
> I agree :-)
> 
> > Also, looking forward to your feedback on the meson build patches. I
> > was
> > going to do a v2 with minor updates, but I'll hold off until next
> > week
> > when I get your comments.
> > 
> > /Bruce
> 
> Ok, but please bear in mind that I'll be travelling from today to
> Monday, so it will probably be end of the week. So if needed feel free
> to send v2 already. Sorry for the delay!
> 
Ok, thanks for the info. I'll see how it goes and how many other changes
I might have to make. The only major issue right now is the one that you
already flagged about removing the check for a Kconfig file in the kernel.

/Bruce

  reply	other threads:[~2017-09-06 10:45 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <drivers/net/vmxnet3/vmxnet3_rxtx.c.rej>
2017-09-05 20:51 ` luca.boccassi
2017-09-05 20:51   ` [dpdk-dev] [PATCH v7 1/6] mk: sort list of shared objects in linker script luca.boccassi
2017-09-05 20:51   ` [dpdk-dev] [PATCH v7 2/6] mk: sort list of files in examples.dox luca.boccassi
2017-09-05 20:51   ` [dpdk-dev] [PATCH v7 3/6] mk: sort headers before wildcard inclusion luca.boccassi
2017-09-05 20:51   ` [dpdk-dev] [PATCH v7 4/6] mk: sort source files before passing them to the compiler luca.boccassi
2017-09-05 20:51   ` [dpdk-dev] [PATCH v7 5/6] mk: sort object files when building deps lists luca.boccassi
2017-09-05 20:51   ` [dpdk-dev] [PATCH v7 6/6] mk: install symlinks before build step luca.boccassi
2017-10-12  2:58     ` Thomas Monjalon
2017-10-12 12:19       ` Luca Boccassi
2017-09-05 20:56   ` [dpdk-dev] [PATCH v7 0/6] Reproducible build Luca Boccassi
2017-09-05 21:00   ` Stephen Hemminger
2017-09-05 21:15     ` Luca Boccassi
2017-09-06  8:46       ` Bruce Richardson
2017-09-06  9:10         ` Luca Boccassi
2017-09-06 10:45           ` Bruce Richardson [this message]
2017-10-12 13:15   ` [dpdk-dev] [PATCH v8 " luca.boccassi
2017-10-12 13:15     ` [dpdk-dev] [PATCH v8 1/6] mk: sort list of shared objects in linker script luca.boccassi
2017-10-12 13:15     ` [dpdk-dev] [PATCH v8 2/6] mk: sort list of files in examples.dox luca.boccassi
2017-10-12 13:15     ` [dpdk-dev] [PATCH v8 3/6] mk: sort headers before wildcard inclusion luca.boccassi
2017-10-12 13:15     ` [dpdk-dev] [PATCH v8 4/6] mk: sort source files before passing them to the compiler luca.boccassi
2017-10-12 13:15     ` [dpdk-dev] [PATCH v8 5/6] mk: sort object files when building deps lists luca.boccassi
2017-10-12 13:15     ` [dpdk-dev] [PATCH v8 6/6] mk: install symlinks before build step luca.boccassi
2017-10-12 20:31     ` [dpdk-dev] [PATCH v8 0/6] Reproducible build Thomas Monjalon

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=20170906104507.GA27220@bricha3-MOBL3.ger.corp.intel.com \
    --to=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@intel.com \
    --cc=luca.boccassi@gmail.com \
    --cc=stephen@networkplumber.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).