• Arnaldo Carvalho de Melo's avatar
    perf coresight: Do not test for libopencsd by default · 1c3b28fd
    Arnaldo Carvalho de Melo authored
    Since it is not yet that generally available, avoid testing for the
    presence of libcoresight in the fast path test-all.bin feature test.
    
      # dnf search opencsd
      No matches found.
      # dnf search OpenCSD
      No matches found.
      # cat /etc/fedora-release
      Fedora release 29 (Twenty Nine)
      #
    
    I.e. right now, in my system test-all.bin is failing all the time since
    Fedora29 doesn't have libopencsd available:
    
      $ cat /tmp/build/perf/feature/test-all.make.output
      In file included from test-all.c:174:
      test-libopencsd.c:2:10: fatal error: opencsd/c_api/opencsd_c_api.h: No such file or directory
       #include <opencsd/c_api/opencsd_c_api.h>
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      compilation terminated.
    
    See:
    
      6ab2b762 ("perf build: Disable libbabeltrace check by default")
    
    For the rationale, as soon as libopencsd becomes more generally packaged
    and available, we do the same thing we did with babeltrace, enabling it
    by default, as done in:
    
      24787afb ("perf tools: Enable LIBBABELTRACE by default")
    
    For now, to explicitely ask for opencsd, make sure you have it installed
    and use:
    
       make -C tools/perf CORESIGHT=1
    
    The feature test output will be there as an empty file:
    
      $ ls -la /tmp/build/perf/feature/test-libopencsd.make.output
    
    Because the binary used for the feature check was successfully built:
    
      $ ls -la /tmp/build/perf/feature/test-libopencsd.bin
      -rwxrwxr-x. 1 acme acme 18336 Feb 12 14:49 /tmp/build/perf/feature/test-libopencsd.bin
      $ ldd /tmp/build/perf/feature/test-libopencsd.bin
    	linux-vdso.so.1 (0x00007fffe18cc000)
    	libopencsd_c_api.so.0 => /lib64/libopencsd_c_api.so.0 (0x00007fb8e67f6000)
    	libopencsd.so.0 => /lib64/libopencsd.so.0 (0x00007fb8e676f000)
    	libc.so.6 => /lib64/libc.so.6 (0x00007fb8e65a9000)
    	libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007fb8e6411000)
    	libm.so.6 => /lib64/libm.so.6 (0x00007fb8e628d000)
    	libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fb8e6272000)
    	/lib64/ld-linux-x86-64.so.2 (0x00007fb8e6828000)
      $
    
    And the resulting perf binary will be linked with it:
    
      -rw-rw-r--. 1 acme acme 0 Feb 12 14:49 /tmp/build/perf/feature/test-libopencsd.make.output
      $ ldd ~/bin/perf | grep opencsd
    	libopencsd_c_api.so.0 => /lib64/libopencsd_c_api.so.0 (0x00007fd43097f000)
    	libopencsd.so.0 => /lib64/libopencsd.so.0 (0x00007fd4308f8000)
      $
    
    To make sure this gets built before pushing things upstream I have a
    ubuntu:19.04-x-arm64 container that has:
    
      [root@quaco x-arm64]# grep CORESIGHT Dockerfile
      ENV EXTRA_MAKE_ARGS=CORESIGHT=1
      [root@quaco x-arm64]#
    
    So that I always build with libopencsd before pushing things upstream.
    
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Kim Phillips <kim.phillips@arm.com>
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
    Cc: Mike Leach <mike.leach@arm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Suzuki Poulouse <suzuki.poulose@arm.com>
    Link: https://lkml.kernel.org/n/tip-20vyy39jw9jgrijesi30fgox@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    1c3b28fd
Makefile.perf 33.3 KB