• Igor Lubashev's avatar
    tools build: Add capability-related feature detection · 74d5f3d0
    Igor Lubashev authored
    Add utilities to help checking capabilities of the running procss.  Make
    perf link with libcap, if it is available. If no libcap-dev[el], assume
    no capabilities.
    
    Committer testing:
    
      $ make O=/tmp/build/perf -C tools/perf install-bin
      make: Entering directory '/home/acme/git/perf/tools/perf'
        BUILD:   Doing 'make -j8' parallel build
    
      Auto-detecting system features:
      <SNIP>
      ...                        libbfd: [ on  ]
      ...                        libcap: [ OFF ]
      ...                        libelf: [ on  ]
      <SNIP>
      Makefile.config:833: No libcap found, disables capability support, please install libcap-devel/libcap-dev
      <SNIP>
      $ grep libcap /tmp/build/perf/FEATURE-DUMP
      feature-libcap=0
      $ cat /tmp/build/perf/feature/test-libcap.make.output
      test-libcap.c:2:10: fatal error: sys/capability.h: No such file or directory
          2 | #include <sys/capability.h>
            |          ^~~~~~~~~~~~~~~~~~
      compilation terminated.
      $
    
    Now install libcap-devel and try again:
    
      $ make O=/tmp/build/perf -C tools/perf install-bin
      make: Entering directory '/home/acme/git/perf/tools/perf'
        BUILD:   Doing 'make -j8' parallel build
      Warning: Kernel ABI header at 'tools/include/linux/bits.h' differs from latest version at 'include/linux/bits.h'
      diff -u tools/include/linux/bits.h include/linux/bits.h
      Warning: Kernel ABI header at 'tools/arch/x86/include/asm/cpufeatures.h' differs from latest version at 'arch/x86/include/asm/cpufeatures.h'
      diff -u tools/arch/x86/include/asm/cpufeatures.h arch/x86/include/asm/cpufeatures.h
    
      Auto-detecting system features:
      <SNIP>
      ...                        libbfd: [ on  ]
      ...                        libcap: [ on  ]
      ...                        libelf: [ on  ]
      <SNIP>>
        CC       /tmp/build/perf/jvmti/libjvmti.o
      <SNIP>>
      $ grep libcap /tmp/build/perf/FEATURE-DUMP
      feature-libcap=1
      $ cat /tmp/build/perf/feature/test-libcap.make.output
      $ ldd /tmp/build/perf/feature/test-libcap.make.bin
      ldd: /tmp/build/perf/feature/test-libcap.make.bin: No such file or directory
      $ ldd /tmp/build/perf/feature/test-libcap.bin
      	linux-vdso.so.1 (0x00007ffc35bfe000)
      	libcap.so.2 => /lib64/libcap.so.2 (0x00007ff9c62ff000)
      	libc.so.6 => /lib64/libc.so.6 (0x00007ff9c6139000)
      	/lib64/ld-linux-x86-64.so.2 (0x00007ff9c6326000)
      $
    Signed-off-by: default avatarIgor Lubashev <ilubashe@akamai.com>
    Acked-by: default avatarJiri Olsa <jolsa@kernel.org>
    Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Alexey Budankov <alexey.budankov@linux.intel.com>
    Cc: James Morris <jmorris@namei.org>
    Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Suzuki Poulouse <suzuki.poulose@arm.com>
    [ split from a larger patch ]
    Link: http://lkml.kernel.org/r/8a1e76cf5c7c9796d0d4d240fbaa85305298aafa.1565188228.git.ilubashe@akamai.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    74d5f3d0
Makefile.config 32 KB