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 for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Tue, 10 Mar 2015 11:01:34 -0300
From:	Arnaldo Carvalho de Melo <acme@...hat.com>
To:	Jiri Olsa <jolsa@...hat.com>
Cc:	Jiri Olsa <jolsa@...nel.org>, linux-kernel@...r.kernel.org,
	Sebastian Andrzej Siewior <bigeasy@...utronix.de>,
	David Ahern <dsahern@...il.com>,
	Frederic Weisbecker <fweisbec@...il.com>,
	Jeremie Galarneau <jgalar@...icios.com>,
	Namhyung Kim <namhyung@...il.com>,
	Paul Mackerras <paulus@...ba.org>,
	Peter Zijlstra <peterz@...radead.org>,
	Tom Zanussi <tzanussi@...il.com>,
	Wang Nan <wangnan0@...wei.com>
Subject: Re: [PATCH] perf build: Fix libbabeltrace detection

Em Tue, Mar 10, 2015 at 01:00:35PM +0100, Jiri Olsa escreveu:
> On Mon, Mar 09, 2015 at 08:28:45PM -0300, Arnaldo Carvalho de Melo wrote:
> > Em Mon, Mar 09, 2015 at 08:11:19PM -0300, Arnaldo Carvalho de Melo escreveu:
> > > Em Mon, Mar 09, 2015 at 06:51:21PM -0300, Arnaldo Carvalho de Melo escreveu:
> > [root@zoo ~]# find /opt/libbabeltrace/include/babeltrace/ -type f | xargs grep bt_ctf_stream_class_get_packet_context_type
> > /opt/libbabeltrace/include/babeltrace/ctf-ir/stream-class.h:extern struct bt_ctf_field_type *bt_ctf_stream_class_get_packet_context_type(

> > That seems to be included from the file included in the feature test code :-\
> > Really ran out of time now...
 
> ouch, thanks a lot for debugging.. the reason is indeed the -Werror added by:
>   b49f1a4be701 perf tools: Improve feature test debuggability
 
> following patch seems to fix this for me
> ---
> Following patch added -Werror for feature builds:
>   b49f1a4be701 perf tools: Improve feature test debuggability
 
> and broke libbabeltrace feature build, because it was including
> wrong header and gcc couldn't find the used symbol definition.
 
> Adding proper header and keeping the old one as it is needed
> also (libbabeltrace quirk).

> +++ b/tools/perf/config/feature-checks/test-libbabeltrace.c
>  #include <babeltrace/ctf-writer/writer.h>
> +#include <babeltrace/ctf-ir/stream-class.h>

Right, that was the fix I found as well, well, I was trying to include
_just_ babeltrace/ctf-ir/stream-class.h, but that is buggy in that it
doesn't include the header file with the uint32_t and int64_t types:

[acme@zoo linux]$ cat /tmp/build/perf/config/feature-checks/make-libbabeltrace 
make[1]: Entering directory `/home/git/linux/tools/perf/config/feature-checks'
gcc -MD -I/opt/libbabeltrace//include -Wall -Werror -o /tmp/build/perf/config/feature-checks/test-libbabeltrace.bin test-libbabeltrace.c -Wl,-z,noexecstack -L/opt/libbabeltrace//lib -lbabeltrace-ctf # -lbabeltrace provided by 
In file included from test-libbabeltrace.c:2:0:
/opt/libbabeltrace//include/babeltrace/ctf-ir/stream-class.h:118:1: error: unknown type name ‘int64_t’
 extern int64_t bt_ctf_stream_class_get_id(
 ^
/opt/libbabeltrace//include/babeltrace/ctf-ir/stream-class.h:134:45: error: unknown type name ‘uint32_t’
   struct bt_ctf_stream_class *stream_class, uint32_t id);
                                             ^
make[1]: *** [test-libbabeltrace.bin] Error 1
make[1]: Leaving directory `/home/git/linux/tools/perf/config/feature-checks'
[acme@zoo linux]$ 

>  
>  int main(void)
>  {
> -- 
> 1.9.3

Ah, I found the following patch useful in debugging this, if you're ok with it,
I'll put it in my tree with your Acked-by, ok?

- Arnaldo

[acme@zoo linux]$ git diff tools/perf/config/Makefile
diff --git a/tools/perf/config/Makefile b/tools/perf/config/Makefile
index e2350ada6ccd..4992c39652e6 100644
--- a/tools/perf/config/Makefile
+++ b/tools/perf/config/Makefile
@@ -184,7 +184,7 @@ endif
 
 feature_check = $(eval $(feature_check_code))
 define feature_check_code
-  feature-$(1) := $(shell $(MAKE) OUTPUT=$(OUTPUT_FEATURES) CFLAGS="$(EXTRA_CFLAGS) $(FEATURE_CHECK_CFLAGS-$(1))" LDFLAGS="$(LDFLAGS) $(FEATURE_CHECK_LDFLAGS-$(1))" -C config/feature-checks test-$1.bin >/dev/null 2>/dev/null && echo 1 ||
+  feature-$(1) := $(shell $(MAKE) OUTPUT=$(OUTPUT_FEATURES) CFLAGS="$(EXTRA_CFLAGS) $(FEATURE_CHECK_CFLAGS-$(1))" LDFLAGS="$(LDFLAGS) $(FEATURE_CHECK_LDFLAGS-$(1))" -C config/feature-checks test-$1.bin > $(OUTPUT_FEATURES)make-$(1) 2>&1 
 endef
 
 feature_set = $(eval $(feature_set_code))
[acme@zoo linux]$ 
--
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