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]
Date:   Wed, 15 Feb 2017 10:06:05 -0300
From:   Arnaldo Carvalho de Melo <acme@...nel.org>
To:     Jiri Olsa <jolsa@...nel.org>
Cc:     Jiri Olsa <jolsa@...hat.com>, Namhyung Kim <namhyung@...nel.org>,
        Wang Nan <wangnan0@...wei.com>,
        Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: perf build with clang, modulo libpython: Re: perf bison: clang
 points out: error: conflicting types for 'parse_events_error' always
 evaluate to 'true'

Em Wed, Feb 15, 2017 at 01:52:23PM +0100, Jiri Olsa escreveu:
> On Wed, Feb 15, 2017 at 09:41:02AM -0300, Arnaldo Carvalho de Melo wrote:
> > Em Wed, Feb 15, 2017 at 11:50:56AM +0100, Jiri Olsa escreveu:
> > > On Tue, Feb 14, 2017 at 03:24:35PM -0300, Arnaldo Carvalho de Melo wrote:
> > > > So, is this test about having something on that alias->unit array? I.e.
> > > > should this suffice?

> > > yep, that seems right.. good catch

> > Thanks, adding your Acked-by then, ok?
> 
> yes
 
Thanks!

> > How about this other one:

> > util/parse-events.y:699:6: error: conflicting types for 'parse_events_error'
> > void parse_events_error(YYLTYPE *loc, void *data,
> >      ^
> > /tmp/build/perf/util/parse-events-bison.c:2224:7: note: previous implicit declaration is here
> >       yyerror (&yylloc, _data, scanner, YY_("syntax error"));
> >       ^
> > /tmp/build/perf/util/parse-events-bison.c:65:25: note: expanded from macro 'yyerror'
> > #define yyerror         parse_events_error

> > 1 error generated.

> hum, thats generated code.. I guess we need appropriate -Wno-... option ;-)

That would be too easy, don't shot the messenger :-)

Fix at the end of this message, please ack, with it I managed to build tools/perf using
clang, albeit still with NO_LIBPYTHON=1:

$ readelf -wi ~/bin/perf  | head
Contents of the .debug_info section:

  Compilation Unit @ offset 0x0:
   Length:        0x828 (32-bit)
   Version:       4
   Abbrev Offset: 0x0
   Pointer Size:  8
 <0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
    <c>   DW_AT_producer    : (indirect string, offset: 0x0): clang version 4.0.0 (http://llvm.org/git/clang.git f5be8ba13adc4ba1011a7ccd60c844bd60427c1c) (http://llvm.org/git/llvm.git efca1a37676f4cd276d947658cf90b0fb625abfd)
    <10>   DW_AT_language    : 12	(ANSI C99)
$ 

$ ls -la ~/bin/perf
-rwxr-xr-x. 2 acme acme 10029688 Feb 15 09:57 /home/acme/bin/perf
$ size ~/bin/perf
   text	   data	    bss	    dec	    hex	filename
3447514	 831320	23901696	28180530	1ae0032	/home/acme/bin/perf
$ strip ~/bin/perf
$ ls -la ~/bin/perf
-rwxr-xr-x. 2 acme acme 4284968 Feb 15 10:00 /home/acme/bin/perf
$

Compare with with gcc, also with NO_LIBPYTHON=1:

[acme@...et linux]$ readelf -wi ~/bin/perf  | head
Contents of the .debug_info section:

  Compilation Unit @ offset 0x0:
   Length:        0x1d43 (32-bit)
   Version:       4
   Abbrev Offset: 0x0
   Pointer Size:  8
 <0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
    <c>   DW_AT_producer    : (indirect string, offset: 0x1b27c): GNU C99 6.3.1 20161221 (Red Hat 6.3.1-1) -mtune=generic -march=x86-64 -ggdb3 -O6 -std=gnu99 -fno-omit-frame-pointer -funwind-tables -fstack-protector-all
    <10>   DW_AT_language    : 12	(ANSI C99)
[acme@...et linux]$ ls -la ~/bin/perf
-rwxr-xr-x. 2 acme acme 16948144 Feb 15 10:02 /home/acme/bin/perf
[acme@...et linux]$ size ~/bin/perf
   text	   data	    bss	    dec	    hex	filename
3671662	 836480	23902752	28410894	1b1840e	/home/acme/bin/perf
[acme@...et linux]$ strip ~/bin/perf
[acme@...et linux]$ ls -la ~/bin/perf
-rwxr-xr-x. 2 acme acme 4515280 Feb 15 10:02 /home/acme/bin/perf
[acme@...et linux]$

to build with libpython I need to filter out the -spec=bla/bla/bla/bla
option generated automatically somewhere:

clang-4.0: error: argument unused during compilation: '-specs=/usr/lib/rpm/redhat/redhat-hardened-cc1' [-Werror,-Wunused-command-line-argument]
clang-4.0: error: argument unused during compilation: '-specs=/usr/lib/rpm/redhat/redhat-hardened-cc1' [-Werror,-Wunused-command-line-argument]
error: command 'clang' failed with exit status 1
cp: cannot stat '/tmp/build/perf/python_ext_build/lib/perf.so': No such file or directory
Makefile.perf:381: recipe for target '/tmp/build/perf/python/perf.so' failed
make[2]: *** [/tmp/build/perf/python/perf.so] Error 1
make[2]: *** Waiting for unfinished jobs....

---------------------------------------------------


diff --git a/tools/perf/util/parse-events.y b/tools/perf/util/parse-events.y
index 3a5196380609..a14b47ab3879 100644
--- a/tools/perf/util/parse-events.y
+++ b/tools/perf/util/parse-events.y
@@ -17,6 +17,8 @@
 #include "parse-events.h"
 #include "parse-events-bison.h"
 
+void parse_events_error(YYLTYPE *loc, void *data, void *scanner, char const *msg);
+
 #define ABORT_ON(val) \
 do { \
 	if (val) \

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ