lkml.org 
[lkml]   [2015]   [Feb]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 01/11] perf tools: Add feature check for libbabeltrace
    Date
    Adding feature check for babeltrace library [1], which will be
    used for perf data file CTF [2] conversion in following patches.

    The babeltrace library is now automatically detected as standard
    feature. It's possible to specify LIBBABELTRACE_DIR make variable
    to specify location of installed libbabeltrace, like:

    $ make LIBBABELTRACE_DIR=/opt/libbabeltrace/
    BUILD: Doing 'make -j4' parallel build

    Auto-detecting system features:
    ... dwarf: [ on ]
    ... glibc: [ on ]
    ... gtk2: [ on ]
    ... libaudit: [ on ]
    ... libbfd: [ on ]
    ... libelf: [ on ]
    ... libnuma: [ on ]
    ... libperl: [ on ]
    ... libpython: [ on ]
    ... libslang: [ on ]
    ... libunwind: [ on ]
    ... libbabeltrace: [ on ]
    ... libdw-dwarf-unwind: [ on ]
    ... zlib: [ on ]
    ... DWARF post unwind library: libunwind

    NOTE The installation of the [1] to to used by above make:
    $ ./configure --prefix=/opt/libbabeltrace
    $ make prefix=/opt/libbabeltrace
    $ sudo make install prefix=/opt/libbabeltrace

    [1] babeltrace - http://www.efficios.com/babeltrace
    [2] Common Trace Format - http://www.efficios.com/ctf

    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Jeremie Galarneau <jgalar@efficios.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@gmail.com>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Cc: Tom Zanussi <tzanussi@gmail.com>
    Cc: Wang Nan <wangnan0@huawei.com>
    Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Signed-off-by: Jiri Olsa <jolsa@kernel.org>
    ---
    tools/perf/Makefile.perf | 4 +++-
    tools/perf/config/Makefile | 24 ++++++++++++++++++++++
    tools/perf/config/feature-checks/Makefile | 8 ++++++--
    tools/perf/config/feature-checks/test-all.c | 5 +++++
    .../config/feature-checks/test-libbabeltrace.c | 8 ++++++++
    5 files changed, 46 insertions(+), 3 deletions(-)
    create mode 100644 tools/perf/config/feature-checks/test-libbabeltrace.c

    diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf
    index efc5158738f4..ec4c063ed9f3 100644
    --- a/tools/perf/Makefile.perf
    +++ b/tools/perf/Makefile.perf
    @@ -68,7 +68,9 @@ include config/utilities.mak
    # for reading the x32 mode 32-bit compatibility VDSO in 64-bit mode
    #
    # Define NO_ZLIB if you do not want to support compressed kernel modules
    -
    +#
    +# Define NO_LIBBABELTRACE if you do not want libbabeltrace support
    +# for CTF data format.

    ifeq ($(srctree),)
    srctree := $(patsubst %/,%,$(dir $(shell pwd)))
    diff --git a/tools/perf/config/Makefile b/tools/perf/config/Makefile
    index b97a7b903a23..6f129b0a9c64 100644
    --- a/tools/perf/config/Makefile
    +++ b/tools/perf/config/Makefile
    @@ -96,6 +96,17 @@ ifndef NO_LIBELF
    FEATURE_CHECK_LDFLAGS-libdw-dwarf-unwind := $(LIBDW_LDFLAGS) -ldw
    endif

    +ifndef NO_LIBBABELTRACE
    + # for linking with debug library, run like:
    + # make DEBUG=1 LIBBABELTRACE_DIR=/opt/libbabeltrace/
    + ifdef LIBBABELTRACE_DIR
    + LIBBABELTRACE_CFLAGS := -I$(LIBBABELTRACE_DIR)/include
    + LIBBABELTRACE_LDFLAGS := -L$(LIBBABELTRACE_DIR)/lib
    + endif
    + FEATURE_CHECK_CFLAGS-libbabeltrace := $(LIBBABELTRACE_CFLAGS)
    + FEATURE_CHECK_LDFLAGS-libbabeltrace := $(LIBBABELTRACE_LDFLAGS) -lbabeltrace-ctf
    +endif
    +
    # include ARCH specific config
    -include $(src-perf)/arch/$(ARCH)/Makefile

    @@ -216,6 +227,7 @@ CORE_FEATURE_TESTS = \
    stackprotector-all \
    timerfd \
    libdw-dwarf-unwind \
    + libbabeltrace \
    zlib

    LIB_FEATURE_TESTS = \
    @@ -231,6 +243,7 @@ LIB_FEATURE_TESTS = \
    libslang \
    libunwind \
    libdw-dwarf-unwind \
    + libbabeltrace \
    zlib

    VF_FEATURE_TESTS = \
    @@ -692,6 +705,17 @@ else
    NO_PERF_READ_VDSOX32 := 1
    endif

    +ifndef NO_LIBBABELTRACE
    + ifeq ($(feature-libbabeltrace), 0)
    + msg := $(warning No libbabeltrace found, disables 'perf data' CTF format support, please install libbabeltrace-devel/libbabeltrace-ctf-dev);
    + NO_LIBBABELTRACE := 1
    + else
    + CFLAGS += -DHAVE_LIBBABELTRACE_SUPPORT $(LIBBABELTRACE_CFLAGS)
    + LDFLAGS += $(LIBBABELTRACE_LDFLAGS)
    + EXTLIBS += -lbabeltrace-ctf
    + endif
    +endif
    +
    # Among the variables below, these:
    # perfexecdir
    # template_dir
    diff --git a/tools/perf/config/feature-checks/Makefile b/tools/perf/config/feature-checks/Makefile
    index b32ff3372514..70c9aebe9da3 100644
    --- a/tools/perf/config/feature-checks/Makefile
    +++ b/tools/perf/config/feature-checks/Makefile
    @@ -29,6 +29,7 @@ FILES= \
    test-stackprotector-all.bin \
    test-timerfd.bin \
    test-libdw-dwarf-unwind.bin \
    + test-libbabeltrace.bin \
    test-compile-32.bin \
    test-compile-x32.bin \
    test-zlib.bin
    @@ -43,7 +44,7 @@ BUILD = $(CC) $(CFLAGS) -o $(OUTPUT)$@ $(patsubst %.bin,%.c,$@) $(LDFLAGS)
    ###############################

    test-all.bin:
    - $(BUILD) -Werror -fstack-protector-all -O2 -Werror -D_FORTIFY_SOURCE=2 -ldw -lelf -lnuma -lelf -laudit -I/usr/include/slang -lslang $(shell $(PKG_CONFIG) --libs --cflags gtk+-2.0 2>/dev/null) $(FLAGS_PERL_EMBED) $(FLAGS_PYTHON_EMBED) -DPACKAGE='"perf"' -lbfd -ldl -lz
    + $(BUILD) -Werror -fstack-protector-all -O2 -Werror -D_FORTIFY_SOURCE=2 -ldw -lelf -lnuma -lelf -laudit -I/usr/include/slang -lslang $(shell $(PKG_CONFIG) --libs --cflags gtk+-2.0 2>/dev/null) $(FLAGS_PERL_EMBED) $(FLAGS_PYTHON_EMBED) -DPACKAGE='"perf"' -lbfd -ldl -lz -lbabeltrace

    test-hello.bin:
    $(BUILD)
    @@ -133,7 +134,10 @@ test-timerfd.bin:
    $(BUILD)

    test-libdw-dwarf-unwind.bin:
    - $(BUILD)
    + $(BUILD) # -ldw provided by $(FEATURE_CHECK_LDFLAGS-libdw-dwarf-unwind)
    +
    +test-libbabeltrace.bin:
    + $(BUILD) # -lbabeltrace provided by $(FEATURE_CHECK_LDFLAGS-libbabeltrace)

    test-sync-compare-and-swap.bin:
    $(BUILD) -Werror
    diff --git a/tools/perf/config/feature-checks/test-all.c b/tools/perf/config/feature-checks/test-all.c
    index 6d4d09323922..1ffc3da5ca10 100644
    --- a/tools/perf/config/feature-checks/test-all.c
    +++ b/tools/perf/config/feature-checks/test-all.c
    @@ -101,6 +101,10 @@
    # include "test-pthread_attr_setaffinity_np.c"
    #undef main

    +#define main main_test_libbabeltrace
    +# include "test-libbabeltrace.c"
    +#undef main
    +
    int main(int argc, char *argv[])
    {
    main_test_libpython();
    @@ -126,6 +130,7 @@ int main(int argc, char *argv[])
    main_test_sync_compare_and_swap(argc, argv);
    main_test_zlib();
    main_test_pthread_attr_setaffinity_np();
    + main_test_libbabeltrace();

    return 0;
    }
    diff --git a/tools/perf/config/feature-checks/test-libbabeltrace.c b/tools/perf/config/feature-checks/test-libbabeltrace.c
    new file mode 100644
    index 000000000000..3b7dd68a4d52
    --- /dev/null
    +++ b/tools/perf/config/feature-checks/test-libbabeltrace.c
    @@ -0,0 +1,8 @@
    +
    +#include <babeltrace/ctf-writer/writer.h>
    +
    +int main(void)
    +{
    + bt_ctf_stream_class_get_packet_context_type((void *) 0);
    + return 0;
    +}
    --
    1.9.3


    \
     
     \ /
      Last update: 2015-02-20 23:41    [W:4.059 / U:0.500 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site