lkml.org 
[lkml]   [2015]   [Feb]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH] perf tools: Improve feature test debuggability

    Certain feature tests fail with link errors:

    triton:~/tip/tools/perf/config/feature-checks> make test-libbabeltrace.bin
    gcc -MD -o test-libbabeltrace.bin test-libbabeltrace.c # -lbabeltrace provided by
    /tmp/cc6dRSqd.o: In function `main':
    test-libbabeltrace.c:(.text+0xf): undefined reference to `bt_ctf_stream_class_get_packet_context_type'

    although they should already fail with a build error due to lack of a proper
    prototype for the function. Due to this I first tried to find which library
    was missing - while it was the whole feature that was missing from the
    .h file already.

    To solve this, propagate -Wall -Werror to all testcases and remove
    them from testcase Makefile rules that used them explicitly.

    A missing feature now outputs:

    triton:~/tip/tools/perf/config/feature-checks> make test-libbabeltrace.bin
    gcc -MD -Wall -Werror -o test-libbabeltrace.bin test-libbabeltrace.c # -lbabeltrace provided by
    test-libbabeltrace.c: In function ‘main’:
    test-libbabeltrace.c:6:2: error: implicit declaration of function ‘bt_ctf_stream_class_get_packet_context_type’ [-Werror=implicit-function-declaration]

    Signed-off-by: Ingo Molnar <mingo@kernel.org>

    diff --git a/tools/perf/config/feature-checks/Makefile b/tools/perf/config/feature-checks/Makefile
    index 70c9aebe9da3..8fe067864957 100644
    --- a/tools/perf/config/feature-checks/Makefile
    +++ b/tools/perf/config/feature-checks/Makefile
    @@ -39,24 +39,24 @@ PKG_CONFIG := $(CROSS_COMPILE)pkg-config

    all: $(FILES)

    -BUILD = $(CC) $(CFLAGS) -o $(OUTPUT)$@ $(patsubst %.bin,%.c,$@) $(LDFLAGS)
    +BUILD = $(CC) $(CFLAGS) -Wall -Werror -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 -lbabeltrace
    + $(BUILD) -fstack-protector-all -O2 -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)

    test-pthread-attr-setaffinity-np.bin:
    - $(BUILD) -D_GNU_SOURCE -Werror -lpthread
    + $(BUILD) -D_GNU_SOURCE -lpthread

    test-stackprotector-all.bin:
    - $(BUILD) -Werror -fstack-protector-all
    + $(BUILD) -fstack-protector-all

    test-fortify-source.bin:
    - $(BUILD) -O2 -Werror -D_FORTIFY_SOURCE=2
    + $(BUILD) -O2 -D_FORTIFY_SOURCE=2

    test-bionic.bin:
    $(BUILD)
    @@ -119,10 +119,10 @@ FLAGS_PERL_EMBED=$(PERL_EMBED_CCOPTS) $(PERL_EMBED_LDOPTS)
    $(BUILD) -DPACKAGE='"perf"' -lbfd -lz -liberty -ldl

    test-liberty.bin:
    - $(CC) -o $(OUTPUT)$@ test-libbfd.c -DPACKAGE='"perf"' -lbfd -ldl -liberty
    + $(CC) -Wall -Werror -o $(OUTPUT)$@ test-libbfd.c -DPACKAGE='"perf"' -lbfd -ldl -liberty

    test-liberty-z.bin:
    - $(CC) -o $(OUTPUT)$@ test-libbfd.c -DPACKAGE='"perf"' -lbfd -ldl -liberty -lz
    + $(CC) -Wall -Werror -o $(OUTPUT)$@ test-libbfd.c -DPACKAGE='"perf"' -lbfd -ldl -liberty -lz

    test-cplus-demangle.bin:
    $(BUILD) -liberty
    @@ -140,7 +140,7 @@ FLAGS_PERL_EMBED=$(PERL_EMBED_CCOPTS) $(PERL_EMBED_LDOPTS)
    $(BUILD) # -lbabeltrace provided by $(FEATURE_CHECK_LDFLAGS-libbabeltrace)

    test-sync-compare-and-swap.bin:
    - $(BUILD) -Werror
    + $(BUILD)

    test-compile-32.bin:
    $(CC) -m32 -o $(OUTPUT)$@ test-compile.c


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