From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr0-f193.google.com (mail-wr0-f193.google.com [209.85.128.193]) by dpdk.org (Postfix) with ESMTP id A0CA47D6E for ; Fri, 18 Aug 2017 13:03:35 +0200 (CEST) Received: by mail-wr0-f193.google.com with SMTP id 49so6872711wrw.5 for ; Fri, 18 Aug 2017 04:03:35 -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=8KDgPx0ktNYgT+4lW2M6cirEKHygNIi4DUY5Q+lAMlI=; b=EWeBaFKQNYiy5XNk44UGHBfHmvvwl3eCyh9fu7uMIaggVGBnsZSZZL1b7hWJb9t1Ed P7n7FRWCIaTX77rqjIE08XZnvAkZc+QQuMpxYLd34s1vu8Y2ZEWP4/1McOljc0jKb4UB mVaRCiNkxd3+D9zMMS6K3gyp3icgnHKsIfa5OZkXwT2eoKVPi1dxO2QRhjrrwjwM3Lwq odFxNRNGUKCChd7wISvjOjiCG2Xhpsvhajax9+EDbZMCcpb00wJxpmGycnD9DeulZD4b 73B8T+3bIjr8ZEqY8VqctjfJvulhZVBxCIhNkfF/cXV43ad7PUlZ8mjbz9Yo5EOo04lA maqw== 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=8KDgPx0ktNYgT+4lW2M6cirEKHygNIi4DUY5Q+lAMlI=; b=aFVpb2k98e/RXaClNL5pnAUYfn3yz995KxnvaP4AMPIDULeS5ysS+sYGgCco1NedzH 0fyvaVgXOkh0iUspAz5lX0xnyYy1gVCtL8JfNzOL4rx4UIZQ9F45Buuu0Q1FuUGcu2xN eX99WnPGa8vzjT4VyEFJBMRz64sMCUcaxTW//CI4SwdEGwlof6Vf16bVnqmzKS7hf65o pLpSJUAHMoL1CHHHaq8DQOYrCt8UlfGzdBlTY+W/RVN+Z4PmArjYdAuCqzlbGhnHCLZL xG7WQWuiH6ZdrE9TqFcepDoiBP8WUQmqYA5NySQEbbQSIPSkpMWnkD6vlX3hpnxJ8YAX MM9g== X-Gm-Message-State: AHYfb5iP/li6n8DCvjpnRSSHyQvNdj0cLxYwOz5HogVCIIF+7eUM7pLe 2GQphGzS/Rdq77Kw4hw= X-Received: by 10.223.133.67 with SMTP id 61mr783871wrh.100.1503054214996; Fri, 18 Aug 2017 04:03:34 -0700 (PDT) Received: from localhost ([2a00:23c5:bef3:400:4a51:b7ff:fe0b:4749]) by smtp.gmail.com with ESMTPSA id m72sm1981991wmg.16.2017.08.18.04.03.33 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 18 Aug 2017 04:03:34 -0700 (PDT) From: luca.boccassi@gmail.com To: dev@dpdk.org Cc: Luca Boccassi Date: Fri, 18 Aug 2017 12:03:22 +0100 Message-Id: <20170818110328.7370-1-luca.boccassi@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170810182325.14058-1-luca.boccassi@gmail.com> References: <20170810182325.14058-1-luca.boccassi@gmail.com> Subject: [dpdk-dev] [PATCH v6 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: Fri, 18 Aug 2017 11:03:35 -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. [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: set -ISCDIR before -IRTE_OUT/include in CFLAGS 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_acl/Makefile | 10 ++++++++-- lib/librte_bitratestats/Makefile | 9 ++++++++- lib/librte_cmdline/Makefile | 9 ++++++++- lib/librte_distributor/Makefile | 10 ++++++++-- lib/librte_eal/common/Makefile | 2 +- lib/librte_eal/linuxapp/eal/Makefile | 8 +++++++- lib/librte_efd/Makefile | 10 ++++++++-- lib/librte_gro/Makefile | 9 ++++++++- lib/librte_hash/Makefile | 10 ++++++++-- lib/librte_ip_frag/Makefile | 10 ++++++++-- lib/librte_jobstats/Makefile | 10 ++++++++-- lib/librte_kni/Makefile | 9 ++++++++- lib/librte_kvargs/Makefile | 9 ++++++++- lib/librte_latencystats/Makefile | 9 ++++++++- lib/librte_lpm/Makefile | 10 ++++++++-- lib/librte_mbuf/Makefile | 9 ++++++++- lib/librte_mempool/Makefile | 9 ++++++++- lib/librte_metrics/Makefile | 9 ++++++++- lib/librte_net/Makefile | 9 ++++++++- lib/librte_pdump/Makefile | 10 ++++++++-- lib/librte_power/Makefile | 9 ++++++++- lib/librte_reorder/Makefile | 10 ++++++++-- lib/librte_ring/Makefile | 9 ++++++++- lib/librte_timer/Makefile | 9 ++++++++- lib/librte_vhost/Makefile | 9 ++++++++- mk/rte.app.mk | 4 ++-- mk/rte.combinedlib.mk | 2 +- mk/rte.hostapp.mk | 4 ++-- mk/rte.sdkdoc.mk | 2 +- mk/rte.shared.mk | 4 ++-- 41 files changed, 211 insertions(+), 53 deletions(-) -- 2.11.0