From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr0-f196.google.com (mail-wr0-f196.google.com [209.85.128.196]) by dpdk.org (Postfix) with ESMTP id 1AFA93772 for ; Thu, 10 Aug 2017 20:23:36 +0200 (CEST) Received: by mail-wr0-f196.google.com with SMTP id y43so1098323wrd.0 for ; Thu, 10 Aug 2017 11:23:36 -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=BQMDTyFjW9f0IVaW0/kCoC5v0yHDmO6F1+791b7JRxk=; b=S7zeIWoiZpLiEwMg12ysZgfr+FIO0UgULksUO1qhI1V+f3lnfOBetn6cuEtYJh+/yP bKhOQsQiEaLIKWOPdnUWUSh9f/AfBloxp9PWBB2bySVwYENZBM5FoJ6Uno06RzKUkpKQ 0L8qccIqwWKWWMI3ffrnUDH23BMjOZubjeosU+3qrcrXqt+6LjU8qx2IyT1xE1CqGyRm SdJd7EOCpGMWkjgOYy/M7EZ3qYL9HdzKLtIwEngyTxwxsZaYZWNefIEtcxy386A/S+Rs fV1xaXpR0MMbfGbIwwt1cZSBKjiEWPSdRMvHxvpL6RhiO5m3huAq7XvC/w/ycJbFXsNC zMfw== 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=BQMDTyFjW9f0IVaW0/kCoC5v0yHDmO6F1+791b7JRxk=; b=I5SJpKZtCgoBs/+gpbHeWbBgj7DophZtB9mybDRTZZ+nfX7Q4bml+z8kuyM1kNxG7H 5SUSetE1k3Ayf3PM/bS4iFuDNNAc2oTs6U9QqifdCvAGZTrW6g5pLlpZU1qV7i3xAuzd 1Ia0GEr/rgu/Ewk5VNvlqx9wHkGdBPmXjnXsgQkS+SVIUdpmbDMOIn8N2Jo1VeiENrPH uooJmcx9pTaJK8Wd3TLDA2Fj7M+y3FyJTZow1BuUrB+XDOQB2f63PmcfLDlqw3jChlU1 8n7fjssB10RbCLSD9kiwlWX8OviVtHjiXF0b+DvLPrYyT0ajBwmeDrB+cqhh9yegdcp/ vd8A== X-Gm-Message-State: AHYfb5gRBJ1J0ykoYjXUF/QA1lcM6KvijrhNuYlfEP8b/EifUH4kar5w HIDBF6l2Kz7tBHzK6t8= X-Received: by 10.223.158.139 with SMTP id a11mr8660557wrf.188.1502389415425; Thu, 10 Aug 2017 11:23:35 -0700 (PDT) Received: from localhost ([2a00:23c5:bef3:400:4a51:b7ff:fe0b:4749]) by smtp.gmail.com with ESMTPSA id 5sm5836751wre.5.2017.08.10.11.23.34 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 10 Aug 2017 11:23:34 -0700 (PDT) From: luca.boccassi@gmail.com To: dev@dpdk.org Cc: Luca Boccassi Date: Thu, 10 Aug 2017 19:23:19 +0100 Message-Id: <20170810182325.14058-1-luca.boccassi@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170628135702.18150-1-lboccass@brocade.com> References: <20170628135702.18150-1-lboccass@brocade.com> Subject: [dpdk-dev] [PATCH v5 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: Thu, 10 Aug 2017 18:23:36 -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. [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