From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752149AbdBONGR (ORCPT ); Wed, 15 Feb 2017 08:06:17 -0500 Received: from mail.kernel.org ([198.145.29.136]:48524 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752076AbdBONGN (ORCPT ); Wed, 15 Feb 2017 08:06:13 -0500 Date: Wed, 15 Feb 2017 10:06:05 -0300 From: Arnaldo Carvalho de Melo To: Jiri Olsa Cc: Jiri Olsa , Namhyung Kim , Wang Nan , Linux Kernel Mailing List Subject: perf build with clang, modulo libpython: Re: perf bison: clang points out: error: conflicting types for 'parse_events_error' always evaluate to 'true' Message-ID: <20170215130605.GC4020@kernel.org> References: <20170214182435.GD4458@kernel.org> <20170215105056.GB8207@krava> <20170215124102.GA4020@kernel.org> <20170215125223.GA12677@krava> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170215125223.GA12677@krava> X-Url: http://acmel.wordpress.com User-Agent: Mutt/1.7.1 (2016-10-04) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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>: Abbrev Number: 1 (DW_TAG_compile_unit) 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@jouet 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>: Abbrev Number: 1 (DW_TAG_compile_unit) 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@jouet linux]$ ls -la ~/bin/perf -rwxr-xr-x. 2 acme acme 16948144 Feb 15 10:02 /home/acme/bin/perf [acme@jouet linux]$ size ~/bin/perf text data bss dec hex filename 3671662 836480 23902752 28410894 1b1840e /home/acme/bin/perf [acme@jouet linux]$ strip ~/bin/perf [acme@jouet linux]$ ls -la ~/bin/perf -rwxr-xr-x. 2 acme acme 4515280 Feb 15 10:02 /home/acme/bin/perf [acme@jouet 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) \