From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stephen Hemminger Subject: Re: [PATCH v7 0/6] Reproducible build Date: Tue, 5 Sep 2017 14:00:55 -0700 Message-ID: <20170905140055.0ae224f1@xeon-e3> References: <20170905205159.8606-1-luca.boccassi@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: dev@dpdk.org, ferruh.yigit@intel.com To: luca.boccassi@gmail.com Return-path: Received: from mail-pg0-f47.google.com (mail-pg0-f47.google.com [74.125.83.47]) by dpdk.org (Postfix) with ESMTP id DEDD511D4 for ; Tue, 5 Sep 2017 23:01:51 +0200 (CEST) Received: by mail-pg0-f47.google.com with SMTP id 188so8288176pgb.2 for ; Tue, 05 Sep 2017 14:01:51 -0700 (PDT) In-Reply-To: <20170905205159.8606-1-luca.boccassi@gmail.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On Tue, 5 Sep 2017 21:51:53 +0100 luca.boccassi@gmail.com wrote: > From: Luca Boccassi > > 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(-) > How does this interact with propose new build process. Hate to have do everything twice.