[dpdk-dev] [PATCH v4 6/6] mk: set -ISCDIR before -IRTE_OUT/include in CFLAGS

2017-06-28 Thread lboccass
From: Luca Boccassi A race condition can happen during parallel builds, where a header might be installed in RTE_OUT/include before CFLAGS is recursively expanded. This causes GCC to sometimes pick the header path as SRCDIR/... and sometimes as RTE_OUT/include/... making the build unreproducible,

[dpdk-dev] [PATCH v4 4/6] mk: sort source files before passing them to the compiler

2017-06-28 Thread lboccass
From: Luca Boccassi In order to achieve reproducible builds, always use the same order when listing files for compilation. Signed-off-by: Luca Boccassi --- drivers/net/cxgbe/Makefile| 2 +- drivers/net/e1000/Makefile| 2 +- drivers/net/fm10k/Makefile| 2 +- drivers/net/i40e/Makefil

[dpdk-dev] [PATCH v4 5/6] mk: sort object files when building deps lists

2017-06-28 Thread lboccass
From: Luca Boccassi In order to achieve reproducible builds, always use the same order when listing object files to build dependencies lists. Signed-off-by: Luca Boccassi --- mk/rte.app.mk | 4 ++-- mk/rte.hostapp.mk | 4 ++-- mk/rte.shared.mk | 4 ++-- 3 files changed, 6 insertions(+), 6

[dpdk-dev] [PATCH v4 3/6] mk: sort headers before wildcard inclusion

2017-06-28 Thread lboccass
From: Luca Boccassi In order to achieve fully reproducible builds, always use the same inclusion order for headers in the Makefiles. Signed-off-by: Luca Boccassi --- examples/ip_pipeline/Makefile | 2 +- examples/multi_process/client_server_mp/mp_server/Makefile |

[dpdk-dev] [PATCH v4 2/6] mk: sort list of files in examples.dox

2017-06-28 Thread lboccass
From: Luca Boccassi The result of find might not be stable depending on external conditions. Pipe it through LC_ALL=C sort to ensure reproducible results when generating examples.dox. Signed-off-by: Luca Boccassi --- mk/rte.sdkdoc.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff

[dpdk-dev] [PATCH v4 1/6] mk: sort list of shared objects in linker script

2017-06-28 Thread lboccass
From: Luca Boccassi The output of wildcard might not be stable and depend on the filesystem and other factors. This means the content libdpdk.so linker script might change between builds from the same sources. Run the list through sort to ensure reproducibility. Signed-off-by: Luca Boccassi ---

[dpdk-dev] [PATCH v4 0/6] Reproducible build

2017-06-28 Thread lboccass
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. v

[dpdk-dev] [PATCH v3 7/8] mk: sort object files when building deps lists

2017-06-23 Thread lboccass
From: Luca Boccassi In order to achieve reproducible builds, always use the same order when listing object files to build dependencies lists. Signed-off-by: Luca Boccassi --- mk/rte.app.mk | 4 ++-- mk/rte.hostapp.mk | 4 ++-- mk/rte.shared.mk | 4 ++-- 3 files changed, 6 insertions(+), 6

[dpdk-dev] [PATCH v3 8/8] mk: always rebuild in the same order

2017-06-23 Thread lboccass
From: Luca Boccassi In order to achieve reproducible builds, always check dependencies in the same order. Signed-off-by: Luca Boccassi --- mk/internal/rte.compile-pre.mk | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mk/internal/rte.compile-pre.mk b/mk/internal/rte

[dpdk-dev] [PATCH v3 6/8] mk: sort source files before passing them to the compiler

2017-06-23 Thread lboccass
From: Luca Boccassi In order to achieve reproducible builds, always use the same order when listing files for compilation. Signed-off-by: Luca Boccassi --- drivers/net/cxgbe/Makefile| 2 +- drivers/net/e1000/Makefile| 2 +- drivers/net/fm10k/Makefile| 2 +- drivers/net/i40e/Makefil

[dpdk-dev] [PATCH v3 5/8] mk: sort headers before wildcard inclusion

2017-06-23 Thread lboccass
From: Luca Boccassi In order to achieve fully reproducible builds, always use the same inclusion order for headers in the Makefiles. Signed-off-by: Luca Boccassi --- examples/ip_pipeline/Makefile | 2 +- examples/multi_process/client_server_mp/mp_server/Makefile |

[dpdk-dev] [PATCH v3 4/8] mk: sort list of files in examples.dox

2017-06-23 Thread lboccass
From: Luca Boccassi The result of find might not be stable depending on external conditions. Pipe it through LC_ALL=C sort to ensure reproducible results when generating examples.dox. Signed-off-by: Luca Boccassi --- mk/rte.sdkdoc.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff

[dpdk-dev] [PATCH v3 3/8] mk: sort list of shared objects in linker script

2017-06-23 Thread lboccass
From: Luca Boccassi The output of wildcard might not be stable and depend on the filesystem and other factors. This means the content libdpdk.so linker script might change between builds from the same sources. Run the list through sort to ensure reproducibility. Signed-off-by: Luca Boccassi ---

[dpdk-dev] [PATCH v3 2/8] mk: fix excluding .doctrees when installing docs

2017-06-23 Thread lboccass
From: Luca Boccassi The --exclude parameter must be passed before the input directory to tar, otherwise it's silently ignored and the .doctrees directory is installed by make install-doc. Signed-off-by: Luca Boccassi --- mk/rte.sdkinstall.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-

[dpdk-dev] [PATCH v3 1/8] mk: use make silent flag to print HTML doc version

2017-06-23 Thread lboccass
From: Luca Boccassi Depending on the environment, make might echo the command being ran. In mk/rte.sdkdoc.mk make is used to print the DPDK version to be piped to doxygen. This causes the following to be written: DPDK  /usr/bin/make-f/build/dpdk-jYjqnr/ dpdk-16.11.2/mk/rte.sdkconfig.mkshowversi

[dpdk-dev] [PATCH v3 0/8] Reproducible build

2017-06-23 Thread lboccass
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. v

[dpdk-dev] [PATCH v2 7/7] mk: always rebuild in the same order

2017-06-23 Thread lboccass
From: Luca Boccassi In order to achieve reproducible builds, always check dependencies in the same order. Signed-off-by: Luca Boccassi --- mk/internal/rte.compile-pre.mk | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mk/internal/rte.compile-pre.mk b/mk/internal/rte

[dpdk-dev] [PATCH v2 6/7] mk: sort object files when building deps lists

2017-06-23 Thread lboccass
From: Luca Boccassi In order to achieve reproducible builds, always use the same order when listing object files to build dependencies lists. Signed-off-by: Luca Boccassi --- mk/rte.app.mk | 4 ++-- mk/rte.hostapp.mk | 4 ++-- mk/rte.shared.mk | 4 ++-- 3 files changed, 6 insertions(+), 6

[dpdk-dev] [PATCH v2 5/7] mk: sort source files before passing them to the compiler

2017-06-23 Thread lboccass
From: Luca Boccassi In order to achieve reproducible builds, always use the same order when listing files for compilation. Signed-off-by: Luca Boccassi --- drivers/net/cxgbe/Makefile| 2 +- drivers/net/e1000/Makefile| 2 +- drivers/net/fm10k/Makefile| 2 +- drivers/net/i40e/Makefil

[dpdk-dev] [PATCH v2 1/7] mk: fix excluding .doctrees when installing docs

2017-06-23 Thread lboccass
From: Luca Boccassi The --exclude parameter must be passed before the input directory to tar, otherwise it's silently ignored and the .doctrees directory is installed by make install-doc. Signed-off-by: Luca Boccassi --- mk/rte.sdkinstall.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-

[dpdk-dev] [PATCH v2 3/7] mk: sort list of files in examples.dox

2017-06-23 Thread lboccass
From: Luca Boccassi The result of find might not be stable depending on external conditions. Pipe it through LC_ALL=C sort to ensure reproducible results when generating examples.dox. Signed-off-by: Luca Boccassi --- mk/rte.sdkdoc.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff

[dpdk-dev] [PATCH v2 4/7] mk: sort headers before wildcard inclusion

2017-06-23 Thread lboccass
From: Luca Boccassi In order to achieve fully reproducible builds, always use the same inclusion order for headers in the Makefiles. Signed-off-by: Luca Boccassi --- examples/ip_pipeline/Makefile | 2 +- examples/multi_process/client_server_mp/mp_server/Makefile |

[dpdk-dev] [PATCH v2 2/7] mk: sort list of shared objects in linker script

2017-06-23 Thread lboccass
From: Luca Boccassi The output of wildcard might not be stable and depend on the filesystem and other factors. This means the content libdpdk.so linker script might change between builds from the same sources. Run the list through sort to ensure reproducibility. Signed-off-by: Luca Boccassi ---

[dpdk-dev] [PATCH v2 0/7] Reproducible build

2017-06-23 Thread lboccass
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. v

[dpdk-dev] [PATCH 4/4] mk: sort list of files in examples.dox

2017-06-22 Thread lboccass
From: Luca Boccassi The result of find might not be stable depending on external conditions. Pipe it through LC_ALL=C sort to ensure reproducible results when generating examples.dox. Signed-off-by: Luca Boccassi --- mk/rte.sdkdoc.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff

[dpdk-dev] [PATCH 3/4] mk: sort list of shared objects in linker script

2017-06-22 Thread lboccass
From: Luca Boccassi The output of wildcard might not be stable and depend on the filesystem and other factors. This means the content libdpdk.so linker script might change between builds from the same sources. Run the list through sort to ensure reproducibility. Signed-off-by: Luca Boccassi ---

[dpdk-dev] [PATCH 2/4] mk: fix excluding .doctrees when installing docs

2017-06-22 Thread lboccass
From: Luca Boccassi The --exclude parameter must be passed before the input directory to tar, otherwise it's silently ignored and the .doctrees directory is installed by make install-doc. Signed-off-by: Luca Boccassi --- mk/rte.sdkinstall.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-

[dpdk-dev] [PATCH 0/4] reproducible builds - docs and linker script

2017-06-22 Thread lboccass
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] This first series fixes unreproducibility problems in DPDK with rega

[dpdk-dev] [PATCH 1/4] mk: use make silent flag to print HTML doc version

2017-06-22 Thread lboccass
From: Luca Boccassi Depending on the environment, make might echo the command being ran. In mk/rte.sdkdoc.mk make is used to print the DPDK version to be piped to doxygen. This causes the following to be written: DPDK  /usr/bin/make-f/build/dpdk-jYjqnr/dpdk-16.11.2/mk/rte.sdkconfig.mkshowversion

[dpdk-dev] [PATCH v2] map: add rte_eth_tx_done_cleanup to rte_ether_version.map

2017-06-22 Thread lboccass
From: Luca Boccassi Commit 44a718c457b5 added rte_eth_tx_done_cleanup but it wasn't added to the rte_ether_version.map so it cannot be used by applications linking to shared libraries. pktgen uses it since version 3.2.0. Added to the 17.05 list as requested by Ferruh in case backporting is needed

[dpdk-dev] [PATCH] map: add rte_eth_tx_done_cleanup to rte_ether_version.map

2017-06-22 Thread lboccass
From: Luca Boccassi Commit 44a718c457b added rte_eth_tx_done_cleanup but it wasn't added to the rte_ether_version.map so it cannot be used by applications linking to shared libraries. pktgen uses it since commit 44a718c457b Fixes: 44a718c457 ("ethdev: add API to free consumed buffers in Tx ring"