From 1fa013b446fa6f5bd74b99d5fb970bcf0b1ec370 Mon Sep 17 00:00:00 2001 From: Luca Boccassi Date: Thu, 10 Aug 2017 19:42:50 +0100 Subject: [PATCH] Update reproducible builds patches New submission (new patchwork links) and cover one extra file in the last patch, lib/librte_eal/linuxapp/eal/Makefile Change-Id: I5f6406b3b4d8ec4c0f81b6937b825b1ddd5f3876 Signed-off-by: Luca Boccassi --- ...LAGS-so-that-ISCDIR-comes-before-IRTE_OUT.patch | 76 ++++++++++++++-------- ...mk-sort-headers-before-wildcard-inclusion.patch | 4 +- .../mk-sort-list-of-files-in-examples.dox.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 +- 6 files changed, 58 insertions(+), 38 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 5fd11607..f504f722 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,37 +8,38 @@ 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_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 ++++++++- + 23 files changed, 183 insertions(+), 32 deletions(-) diff --git a/lib/librte_acl/Makefile b/lib/librte_acl/Makefile -index e2dacd606..470ef6d21 100644 +index 59767920a..bce78813b 100644 --- a/lib/librte_acl/Makefile +++ b/lib/librte_acl/Makefile @@ -34,8 +34,14 @@ include $(RTE_SDK)/mk/rte.vars.mk @@ -99,7 +100,7 @@ index 644f68e47..9dd75f2d2 100644 EXPORT_MAP := rte_cmdline_version.map diff --git a/lib/librte_distributor/Makefile b/lib/librte_distributor/Makefile -index 3ffb911ce..87418f254 100644 +index b417ee7be..a51d7c8b2 100644 --- a/lib/librte_distributor/Makefile +++ b/lib/librte_distributor/Makefile @@ -34,8 +34,14 @@ include $(RTE_SDK)/mk/rte.vars.mk @@ -119,6 +120,25 @@ index 3ffb911ce..87418f254 100644 EXPORT_MAP := rte_distributor_version.map +diff --git a/lib/librte_eal/linuxapp/eal/Makefile b/lib/librte_eal/linuxapp/eal/Makefile +index 90bca4d68..f5eee1c6a 100644 +--- a/lib/librte_eal/linuxapp/eal/Makefile ++++ b/lib/librte_eal/linuxapp/eal/Makefile +@@ -41,7 +41,13 @@ LIBABIVER := 5 + + 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 diff --git a/lib/librte_efd/Makefile b/lib/librte_efd/Makefile index b9277bc5d..b169e3240 100644 --- a/lib/librte_efd/Makefile @@ -141,7 +161,7 @@ index b9277bc5d..b169e3240 100644 EXPORT_MAP := rte_efd_version.map diff --git a/lib/librte_hash/Makefile b/lib/librte_hash/Makefile -index d856aa26d..e408dcc46 100644 +index 9cf13a045..677d494e7 100644 --- 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 c412ce69..332a88e7 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-files-in-examples.dox.patch b/debian/patches/mk-sort-list-of-files-in-examples.dox.patch index 8db6d54a..17404ef4 100644 --- a/debian/patches/mk-sort-list-of-files-in-examples.dox.patch +++ b/debian/patches/mk-sort-list-of-files-in-examples.dox.patch @@ -5,10 +5,10 @@ conditions. Pipe it through LC_ALL=C sort to ensure reproducible results when generating examples.dox. -Origin: http://dpdk.org/dev/patchwork/patch/25862/ +Origin: http://dpdk.org/dev/patchwork/patch/27508/ Forwarded: yes Author: Luca Boccassi -Last-Update: 2017-06-24 +Last-Update: 2017-08-10 --- mk/rte.sdkdoc.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 2e7b60f0..1d3d8b86 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 6d4da0d5..02c95ae2 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