* Arnaldo Carvalho de Melo <a...@kernel.org> wrote:

> Hi Ingo,
> 
>       Here is a bunch of changes to allow buildint tools/perf/ with CC=clang,
> there are a few more to allow building the python code, but I already manage 
> to
> finish the build without it.
> 
>       Please consider pulling,
> 
> - Arnaldo
> 
> Test results at the end of this message, as usual.
> 
> The following changes since commit 277d6f1dcae09aed63cd4c7900a280b0e18cf2ca:
> 
>   Merge tag 'perf-core-for-mingo-4.11-20170213' of 
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core 
> (2017-02-14 07:29:38 +0100)
> 
> are available in the git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git 
> tags/perf-core-for-mingo-4.11-20170215
> 
> for you to fetch changes up to 34a0548f01626b01c9e98d9627812c3c9f6b6f7d:
> 
>   perf tools: Add missing parse_events_error() prototype (2017-02-15 11:20:49 
> -0300)
> 
> ----------------------------------------------------------------
> perf/core clang fixes:
> 
> Changes to make tools/{perf,lib/{bpf,traceevent,api}} build with
> CC=clang, to, for instance, take advantage of warnings (Arnaldo Carvalho de 
> Melo):
> 
> - Conditionally request some warning options not available on clang
> 
> - Set the maximum optimization level to -O3 when using CC=clang, leave
>   the previous setting of -O6 otherwise.
> 
> - Make it an error to pass a signed value to OPTION_UINTEGER, so that
>   we can remove abs(unsigned int) calls in 'perf bench futex'.
> 
> - Make sure dprintf() is not defined before using that name in 'perf bench 
> numa'
> 
> - Avoid using field after variable sized type, its a GNU extension, use
>   equivalent code.
> 
> - Fix some bugs where some variables could be used unitialized,
>   something not caught by gcc.
> 
> - Fix some spots where we were testing struct->array[] members against
>   NULL, it will always evaluate to 'true'.
> 
> - Add missing parse_events_error() prototype in the bison file.
> 
> There are still one problem when trying to build the python support, but
> this are the 'size' outputs for 'make -C tools/perf NO_LIBPYTHON' for
> gcc and clang builds:
> 
>   DW_AT_producer: clang version 4.0.0 (http://llvm.org/git/clang.git 
> f5be8ba13adc4ba1011a7ccd60c844bd60427c1c) (ht
> 
>   $ size ~/bin/perf
>      text    data     bss     dec     hex     filename
>   3447514  831320 23901696  28180530  1ae0032 /home/acme/bin/perf
> 
>   DW_AT_producer: 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
> 
>   $ size ~/bin/perf
>      text    data     bss     dec     hex     filename
>   3671662  836480 23902752  28410894  1b1840e /home/acme/bin/perf
> 
> Signed-off-by: Arnaldo Carvalho de Melo <a...@redhat.com>
> 
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (14):
>       tools: Suppress request for warning options not existent in clang
>       tools: Set the maximum optimization level according to the compiler 
> being used
>       tools lib subcmd: Make it an error to pass a signed value to 
> OPTION_UINTEGER
>       Revert "perf bench futex: Sanitize numeric parameters"
>       perf bench numa: Make sure dprintf() is not defined
>       perf tests: Synthesize struct instead of using field after variable 
> sized type
>       perf record: Do not put a variable sized type not at the end of a struct
>       perf tools: Do not put a variable sized type not at the end of a struct
>       perf probe: Avoid accessing uninitialized 'map' variable
>       perf evsel: Do not put a variable sized type not at the end of a struct
>       perf intel pt decoder: clang has no -Wno-override-init
>       perf tools: Be consistent on the type of map->symbols[] interator
>       perf pmu: Fix check for unset alias->unit array
>       perf tools: Add missing parse_events_error() prototype
> 
>  tools/lib/api/Makefile                    |  8 +++-
>  tools/lib/subcmd/Makefile                 |  8 +++-
>  tools/lib/subcmd/parse-options.c          |  4 ++
>  tools/perf/Makefile.config                |  4 ++
>  tools/perf/bench/futex-hash.c             |  4 --
>  tools/perf/bench/futex-lock-pi.c          |  3 --
>  tools/perf/bench/futex-requeue.c          |  2 -
>  tools/perf/bench/futex-wake-parallel.c    |  4 --
>  tools/perf/bench/futex-wake.c             |  3 --
>  tools/perf/bench/futex.h                  |  4 --
>  tools/perf/bench/numa.c                   |  1 +
>  tools/perf/builtin-record.c               | 17 +++++----
>  tools/perf/tests/parse-no-sample-id-all.c | 19 ++++------
>  tools/perf/util/evsel.c                   | 62 
> ++++++++++++++-----------------
>  tools/perf/util/intel-pt-decoder/Build    |  6 ++-
>  tools/perf/util/machine.c                 |  4 +-
>  tools/perf/util/parse-events.c            | 15 +++-----
>  tools/perf/util/parse-events.y            |  2 +
>  tools/perf/util/pmu.c                     |  4 +-
>  tools/perf/util/probe-event.c             |  2 +-
>  tools/perf/util/session.c                 |  2 +-
>  tools/scripts/Makefile.include            |  5 ++-
>  22 files changed, 91 insertions(+), 92 deletions(-)

Pulled, thanks a lot Arnaldo!

        Ingo

Reply via email to