From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Monjalon Subject: Re: [PATCH v3 7/8] mk: sort object files when building deps lists Date: Tue, 27 Jun 2017 15:52:24 +0200 Message-ID: <2009930.OQrImQK4oz@xps> References: <20170623181616.16981-1-lboccass@brocade.com> <2558671.pWjLEmoHCY@xps> <1498560192.14026.11.camel@brocade.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7Bit Cc: dev@dpdk.org To: Luca Boccassi Return-path: Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) by dpdk.org (Postfix) with ESMTP id 116112C6A for ; Tue, 27 Jun 2017 15:52:25 +0200 (CEST) In-Reply-To: <1498560192.14026.11.camel@brocade.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 27/06/2017 12:43, Luca Boccassi: > On Tue, 2017-06-27 at 01:20 +0200, Thomas Monjalon wrote: > > 23/06/2017 20:41, lboccass@brocade.com: > > > 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 deletions(-) > > > > > > --- a/mk/rte.app.mk > > > +++ b/mk/rte.app.mk > > > @@ -263,8 +263,8 @@ LDLIBS_NAMES += $(patsubst -Wl$(comma)- > > > l%,lib%.a,$(filter -Wl$(comma)-l%,$(LDLIB > > > > > > # list of found libraries files (useful for deps). If not found, > > > the > > > # library is silently ignored and dep won't be checked > > > -LDLIBS_FILES := $(wildcard $(foreach dir,$(LDLIBS_PATH),\ > > > - $(addprefix $(dir)/,$(LDLIBS_NAMES)))) > > > +LDLIBS_FILES := $(sort $(wildcard $(foreach dir,$(LDLIBS_PATH),\ > > > + $(addprefix $(dir)/,$(LDLIBS_NAMES))))) > > > > You cannot sort libraries. > > Check - for instance - this comment above in this file: > > # Eliminate duplicates without sorting, only keep the last > > occurrence > > filter-libs = \ > > Not sure I follow - what's the reason for avoiding to sort the list of > libs to link against? Sorry, the ordering issue is with LDLIBS not LDLIBS_FILES. > > Why sorting them? > > What is random in libraries list? > > The issue is that the output of wildcard is not fully deterministic. It > can depend on the filesystem, and even on the locale settings [1]. > Before GNU Make 3.82 (2009) it used to automatically sort the output, > but that was removed (to make it faster... sigh). [2] It is not a true wildcard here. It is just filtering files which do not exist. I think you do not need this patch for deterministic build.