From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm0-f67.google.com (mail-wm0-f67.google.com [74.125.82.67]) by dpdk.org (Postfix) with ESMTP id C4AE51C0B for ; Tue, 5 Sep 2017 22:52:30 +0200 (CEST) Received: by mail-wm0-f67.google.com with SMTP id e64so3866346wmi.2 for ; Tue, 05 Sep 2017 13:52:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=hesq97tnrZj6bPxqqbxqXPOFZIj2y0WoPRgYIKHLt8Q=; b=sgp5QWXknimM1wp2wcdqHdbH1j2TnQdAoGc9xnEdi1JchH60jZPVrUEonVQvfO0ds4 MG0dwsRQ3/NyVR3RDgzPq6NET3no5qih7iFaglGHGsI8sbTd0KFvtcnjktHgxemEeQn5 pX6whJ+sTeCczBqHyVLQt4c1iUitk76PCL6azF0Y/XpDmrEYxRIsvSVp0mOOVp05qAQa EV7gJRy99EORXSgKM4ECBQVSINNsoczD8EqnCJ3zKyLCvFd+r31r+aBCyhFrb8iRedG9 txuyHeOzVjq3kr7igBD/+7fTAKtLXmNKgr+IIhyadKsDcGZN4g9VrEkDlE+D55JWNA2f d2qQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=hesq97tnrZj6bPxqqbxqXPOFZIj2y0WoPRgYIKHLt8Q=; b=MdZAk0BlViKdl+kfbXv0SgC71B/r7AyoLzo55ZCoeAjj+PYT9WSld1cz2NnEpvR8Dp AQDbRWBKOV7uCG4z1Ir8tScqVKQeAzixwNrdBHnZXSZxA3EsFXRjo9kC7vx3RdERYNLY 8EzUv1FBYcKGQ3/2ZiexgAXgKgMPjVSAd7IlqvxTzGXE6k04/O9y6FLadizCeMM+Brph C0OPFUOQcCDIgK9zsib2qEggK/YrudBhhre7tmRvrG9rM9SGOvLWM3WIjZsTDlV8vS/Y yvu/o52p7yaSbUQG1ZPKrUf4Ndso7+yzVD3YsIldIb/KckMOHliizXVs5h8j4G8QFRiY GVSA== X-Gm-Message-State: AHPjjUiOCBRj2gPMRC4UeW8P35R4a0Jz3YhBW444mdYt17/v7pKSzOV7 y5K9+y2OFjbQPPdjzZA= X-Google-Smtp-Source: ADKCNb7jDEr56PSjcaPeeGpXun18f1onh6wrmb4sithh1h0roNOUy5RDDPnR51q156WRxbq/7Lw23w== X-Received: by 10.28.27.87 with SMTP id b84mr127350wmb.71.1504644750091; Tue, 05 Sep 2017 13:52:30 -0700 (PDT) Received: from localhost ([2a00:23c5:bef3:400:4a51:b7ff:fe0b:4749]) by smtp.gmail.com with ESMTPSA id f188sm1819113wme.21.2017.09.05.13.52.29 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 05 Sep 2017 13:52:29 -0700 (PDT) From: luca.boccassi@gmail.com To: dev@dpdk.org Cc: ferruh.yigit@intel.com, Luca Boccassi Date: Tue, 5 Sep 2017 21:51:53 +0100 Message-Id: <20170905205159.8606-1-luca.boccassi@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: References: Subject: [dpdk-dev] [PATCH v7 0/6] Reproducible build X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Sep 2017 20:52:30 -0000 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(-) -- 2.11.0