On Tue, 2017-09-05 at 21:51 +0100, luca.bocca...@gmail.com wrote: > From: Luca Boccassi <luca.bocca...@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/ExperimentalToolchain# > 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(-)
Sigh, made a copypasta in the reply-to (lol). Original thread: http://dpdk.org/ml/archives/dev/2017-August/073000.html -- Kind regards, Luca Boccassi