From 385147a64292cea867dbada33ac7c56ee26ee1cb Mon Sep 17 00:00:00 2001 From: Luca Boccassi Date: Wed, 30 Aug 2017 15:51:25 +0100 Subject: [PATCH] Sync reproducible builds patches with 17.05.x Change-Id: Iec0e9e3019580a329a6a0c87b0f614b94f178c46 Signed-off-by: Luca Boccassi --- ...LAGS-so-that-ISCDIR-comes-before-IRTE_OUT.patch | 67 ++++++++++++++-------- ...mk-sort-headers-before-wildcard-inclusion.patch | 4 +- ...t-list-of-shared-objects-in-linker-script.patch | 4 +- ...ort-object-files-when-building-deps-lists.patch | 4 +- ...rce-files-before-passing-them-to-the-comp.patch | 4 +- 5 files changed, 50 insertions(+), 33 deletions(-) diff --git a/debian/patches/mk-order-CFLAGS-so-that-ISCDIR-comes-before-IRTE_OUT.patch b/debian/patches/mk-order-CFLAGS-so-that-ISCDIR-comes-before-IRTE_OUT.patch index 4740637c..4312f384 100644 --- a/debian/patches/mk-order-CFLAGS-so-that-ISCDIR-comes-before-IRTE_OUT.patch +++ b/debian/patches/mk-order-CFLAGS-so-that-ISCDIR-comes-before-IRTE_OUT.patch @@ -8,34 +8,34 @@ unreproducible, as the full path is used for the expansion of __FILE__ and in the DWARF directory listing. Always pass -ISRCDIR first to CFLAGS so that it's deterministic. -Origin: http://dpdk.org/dev/patchwork/patch/25866/ +Origin: http://dpdk.org/dev/patchwork/patch/27512/ Forwarded: yes Author: Luca Boccassi -Last-Update: 2017-06-28 +Last-Update: 2017-08-10 --- - lib/librte_acl/Makefile | 10 ++++++++-- - lib/librte_bitratestats/Makefile | 9 ++++++++- - lib/librte_cmdline/Makefile | 9 ++++++++- - lib/librte_distributor/Makefile | 10 ++++++++-- - lib/librte_efd/Makefile | 10 ++++++++-- - 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 ++++++++- - 22 files changed, 176 insertions(+), 31 deletions(-) + lib/librte_acl/Makefile | 10 ++++++++-- + lib/librte_bitratestats/Makefile | 9 ++++++++- + lib/librte_cmdline/Makefile | 9 ++++++++- + lib/librte_distributor/Makefile | 10 ++++++++-- + lib/librte_eal/linuxapp/eal/Makefile | 8 +++++++- + 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 ++++++++- + 22 files changed, 173 insertions(+), 32 deletions(-) --- a/lib/librte_acl/Makefile +++ b/lib/librte_acl/Makefile @@ -93,6 +93,23 @@ Last-Update: 2017-06-28 EXPORT_MAP := rte_distributor_version.map +--- a/lib/librte_eal/linuxapp/eal/Makefile ++++ b/lib/librte_eal/linuxapp/eal/Makefile +@@ -41,7 +41,13 @@ LIBABIVER := 3 + + VPATH += $(RTE_SDK)/lib/librte_eal/common + +-CFLAGS += -I$(SRCDIR)/include ++# Include the source dir first, so that headers paths are always picked ++# from there. By including it last race conditions might happen during paralle ++# builds, and headers might be already installed in RTE_OUT/include when the ++# variable is recursively expanded, thus causing GCC to sometimes use the ++# SRCDIR path and sometimes the RTE_OUT/include, making the builds not ++# reproducible. ++CFLAGS := -I$(SRCDIR)/include $(CFLAGS) + CFLAGS += -I$(RTE_SDK)/lib/librte_eal/common + CFLAGS += -I$(RTE_SDK)/lib/librte_eal/common/include + CFLAGS += $(WERROR_FLAGS) -O3 --- a/lib/librte_hash/Makefile +++ b/lib/librte_hash/Makefile @@ -34,8 +34,14 @@ include $(RTE_SDK)/mk/rte.vars.mk diff --git a/debian/patches/mk-sort-headers-before-wildcard-inclusion.patch b/debian/patches/mk-sort-headers-before-wildcard-inclusion.patch index 40ec9873..076b1e2f 100644 --- a/debian/patches/mk-sort-headers-before-wildcard-inclusion.patch +++ b/debian/patches/mk-sort-headers-before-wildcard-inclusion.patch @@ -3,10 +3,10 @@ Description: mk: sort headers before wildcard inclusion In order to achieve fully reproducible builds, always use the same inclusion order for headers in the Makefiles. -Origin: http://dpdk.org/dev/patchwork/patch/25863/ +Origin: http://dpdk.org/dev/patchwork/patch/27509/ Forwarded: yes Author: Luca Boccassi -Last-Update: 2017-06-24 +Last-Update: 2017-08-10 --- examples/ip_pipeline/Makefile | 2 +- examples/multi_process/client_server_mp/mp_server/Makefile | 2 +- diff --git a/debian/patches/mk-sort-list-of-shared-objects-in-linker-script.patch b/debian/patches/mk-sort-list-of-shared-objects-in-linker-script.patch index 75a53187..d64a233c 100644 --- a/debian/patches/mk-sort-list-of-shared-objects-in-linker-script.patch +++ b/debian/patches/mk-sort-list-of-shared-objects-in-linker-script.patch @@ -6,10 +6,10 @@ This means the content libdpdk.so linker script might change between builds from the same sources. Run the list through sort to ensure reproducibility. -Origin: http://dpdk.org/dev/patchwork/patch/25861/ +Origin: http://dpdk.org/dev/patchwork/patch/27507/ Forwarded: yes Author: Luca Boccassi -Last-Update: 2017-06-24 +Last-Update: 2017-08-10 --- mk/rte.combinedlib.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/patches/mk-sort-object-files-when-building-deps-lists.patch b/debian/patches/mk-sort-object-files-when-building-deps-lists.patch index 278f0b86..aa592ddb 100644 --- a/debian/patches/mk-sort-object-files-when-building-deps-lists.patch +++ b/debian/patches/mk-sort-object-files-when-building-deps-lists.patch @@ -3,10 +3,10 @@ Description: mk: sort object files when building deps lists In order to achieve reproducible builds, always use the same order when listing object files to build dependencies lists. -Origin: http://dpdk.org/dev/patchwork/patch/25865/ +Origin: http://dpdk.org/dev/patchwork/patch/27511/ Forwarded: yes Author: Luca Boccassi -Last-Update: 2017-06-24 +Last-Update: 2017-08-10 --- mk/rte.app.mk | 4 ++-- mk/rte.hostapp.mk | 4 ++-- diff --git a/debian/patches/mk-sort-source-files-before-passing-them-to-the-comp.patch b/debian/patches/mk-sort-source-files-before-passing-them-to-the-comp.patch index 39f33171..220f6988 100644 --- a/debian/patches/mk-sort-source-files-before-passing-them-to-the-comp.patch +++ b/debian/patches/mk-sort-source-files-before-passing-them-to-the-comp.patch @@ -3,10 +3,10 @@ Description: mk: sort source files before passing them to the compiler In order to achieve reproducible builds, always use the same order when listing files for compilation. -Origin: http://dpdk.org/dev/patchwork/patch/25864/ +Origin: http://dpdk.org/dev/patchwork/patch/27510/ Forwarded: yes Author: Luca Boccassi -Last-Update: 2017-06-24 +Last-Update: 2017-08-10 --- drivers/net/cxgbe/Makefile | 2 +- drivers/net/e1000/Makefile | 2 +- -- 2.16.6