From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756301AbbHZNBH (ORCPT ); Wed, 26 Aug 2015 09:01:07 -0400 Received: from mx1.redhat.com ([209.132.183.28]:36570 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756099AbbHZNBF (ORCPT ); Wed, 26 Aug 2015 09:01:05 -0400 Date: Wed, 26 Aug 2015 15:01:03 +0200 From: Jiri Olsa To: Adrian Hunter Cc: Arnaldo Carvalho de Melo , linux-kernel@vger.kernel.org, Sukadev Bhattiprolu Subject: [PATCH] tools build: Allow duplicate objects in the object list Message-ID: <20150826130103.GF22670@krava.redhat.com> References: <1440499348-15629-1-git-send-email-adrian.hunter@intel.com> <20150825153010.GJ19203@kernel.org> <55DD6349.7040505@intel.com> <20150826072548.GC22670@krava.redhat.com> <55DD6A4D.8060008@intel.com> <20150826080750.GD22670@krava.redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20150826080750.GD22670@krava.redhat.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Aug 26, 2015 at 10:07:50AM +0200, Jiri Olsa wrote: SNIP > > >> util/tsc.o:/mnt/ssd/ahunter/git/linux-perf/tools/perf/util/tsc.c:18: first defined here > > >> make[3]: *** [util/libperf-in.o] Error 1 > > >> make[2]: *** [util] Error 2 > > >> make[1]: *** [libperf-in.o] Error 2 > > >> make: *** [all] Error 2 > > >> > > >> I will have a look at why, unless Jiri knows? > > >> > > > > > > I'm now testing attached patch, does it fix it for you? > > > > Yup! Thanks Jiri! :-) > > > > cool, I'll send it out soon.. --- It's sometimes useful to specify the object affiliation to multiple config options like: libperf-$(CONFIG_X86) += tsc.o libperf-$(CONFIG_AUXTRACE) += tsc.o while the object itself is linked only once. Adding the support for this and ignoring duplicate objects in the object list. Suggested-by: Arnaldo Carvalho de Melo Link: http://lkml.kernel.org/n/tip-ia1jyo9ktbqyc78ccs809j8w@git.kernel.org Signed-off-by: Jiri Olsa --- tools/build/Documentation/Build.txt | 1 + tools/build/Makefile.build | 2 +- tools/build/tests/ex/Build | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/build/Documentation/Build.txt b/tools/build/Documentation/Build.txt index 00ad2d608727..aa5e092c4352 100644 --- a/tools/build/Documentation/Build.txt +++ b/tools/build/Documentation/Build.txt @@ -66,6 +66,7 @@ To follow the above example, the user provides following 'Build' files: ex/Build: ex-y += a.o ex-y += b.o + ex-y += b.o # duplicates in the lists are allowed libex-y += c.o libex-y += d.o diff --git a/tools/build/Makefile.build b/tools/build/Makefile.build index 8120af9c0341..0c5f485521d6 100644 --- a/tools/build/Makefile.build +++ b/tools/build/Makefile.build @@ -63,7 +63,7 @@ quiet_cmd_gen = GEN $@ # If there's nothing to link, create empty $@ object. quiet_cmd_ld_multi = LD $@ cmd_ld_multi = $(if $(strip $(obj-y)),\ - $(LD) -r -o $@ $(obj-y),rm -f $@; $(AR) rcs $@) + $(LD) -r -o $@ $(filter $(obj-y),$^),rm -f $@; $(AR) rcs $@) # Build rules $(OUTPUT)%.o: %.c FORCE diff --git a/tools/build/tests/ex/Build b/tools/build/tests/ex/Build index 70d876237c57..429c7d452101 100644 --- a/tools/build/tests/ex/Build +++ b/tools/build/tests/ex/Build @@ -1,6 +1,7 @@ ex-y += ex.o ex-y += a.o ex-y += b.o +ex-y += b.o ex-y += empty/ ex-y += empty2/ -- 2.4.3