lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20150826130103.GF22670@krava.redhat.com>
Date:	Wed, 26 Aug 2015 15:01:03 +0200
From:	Jiri Olsa <jolsa@...hat.com>
To:	Adrian Hunter <adrian.hunter@...el.com>
Cc:	Arnaldo Carvalho de Melo <acme@...nel.org>,
	linux-kernel@...r.kernel.org,
	Sukadev Bhattiprolu <sukadev@...ux.vnet.ibm.com>
Subject: [PATCH] tools build: Allow duplicate objects in the object list

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 <acme@...nel.org>
Link: http://lkml.kernel.org/n/tip-ia1jyo9ktbqyc78ccs809j8w@git.kernel.org
Signed-off-by: Jiri Olsa <jolsa@...nel.org>
---
 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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ