tools build: Allow duplicate objects in the object list

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 <acme@kernel.org>
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
Link: http://lkml.kernel.org/r/20150826130103.GF22670@krava.redhat.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
Jiri Olsa 2015-08-26 15:01:03 +02:00 коммит произвёл Arnaldo Carvalho de Melo
Родитель 18b9a05868
Коммит 0bdede8a3e
3 изменённых файлов: 3 добавлений и 1 удалений

Просмотреть файл

@ -66,6 +66,7 @@ To follow the above example, the user provides following 'Build' files:
ex/Build: ex/Build:
ex-y += a.o ex-y += a.o
ex-y += b.o ex-y += b.o
ex-y += b.o # duplicates in the lists are allowed
libex-y += c.o libex-y += c.o
libex-y += d.o libex-y += d.o

Просмотреть файл

@ -63,7 +63,7 @@ quiet_cmd_gen = GEN $@
# If there's nothing to link, create empty $@ object. # If there's nothing to link, create empty $@ object.
quiet_cmd_ld_multi = LD $@ quiet_cmd_ld_multi = LD $@
cmd_ld_multi = $(if $(strip $(obj-y)),\ 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 # Build rules
$(OUTPUT)%.o: %.c FORCE $(OUTPUT)%.o: %.c FORCE

Просмотреть файл

@ -1,6 +1,7 @@
ex-y += ex.o ex-y += ex.o
ex-y += a.o ex-y += a.o
ex-y += b.o ex-y += b.o
ex-y += b.o
ex-y += empty/ ex-y += empty/
ex-y += empty2/ ex-y += empty2/