• Arnaldo Carvalho de Melo's avatar
    perf python: Don't stop building if python setuptools isn't installed · 66dfc517
    Arnaldo Carvalho de Melo authored
    The python3-setuptools package is needed to build the python binding, so
    that one can use things like:
    
      # ~acme/git/perf/tools/perf/python/twatch.py
      cpu: 6, pid: 4573, tid: 2184618 { type: exit, pid: 4573, ppid: 4172, tid: 2184618, ptid: 4172, time: 12563190090107}
      cpu: 24, pid: 4573, tid: 4573 { type: fork, pid: 4573, ppid: 4573, tid: 2190991e, ptid: 4573, time: 12563415289331}
      cpu: 29, pid: 4573, tid: 2190991e { type: comm, pid: 4573, tid: 2190991e, comm: StreamT~ns #401 }
      cpu: 29, pid: 4573, tid: 2190991e { type: comm, pid: 4573, tid: 2190991e, comm: StreamT~ns #401 }
      ^CTraceback (most recent call last):
        File "/var/home/acme/git/perf/tools/perf/python/twatch.py", line 61, in <module>
          main()
        File "/var/home/acme/git/perf/tools/perf/python/twatch.py", line 33, in main
          evlist.poll(timeout = -1)
      KeyboardInterrupt
    
      #
    
    That have 'import perf;'.
    
    But distros don't always have that python3-setuptools (or equivalent)
    installed, which was breaking the build. Just check if it is installed
    and emit a warning that such binding isn't being built and continue the
    build without it:
    
    With it:
    
      $ rpm -q python3-setuptools
      python3-setuptools-59.6.0-3.fc36.noarch
      $ rm -rf /tmp/build/perf; mkdir -p /tmp/build/perf
      $ make O=/tmp/build/perf -C tools/perf install-bin
      make: Entering directory '/var/home/acme/git/perf/tools/perf'
      <SNIP>
      ...                               libpython: [ on  ]
      <SNIP>
        GEN     /tmp/build/perf/python/perf.cpython-310-x86_64-linux-gnu.so
      <SNIP>
      $ ls -la /tmp/build/perf/python/perf.cpython-310-x86_64-linux-gnu.so
      -rwxr-xr-x. 1 acme acme 1609112 Dec 17 11:39 /tmp/build/perf/python/perf.cpython-310-x86_64-linux-gnu.so
      $
    
    Without it:
    
      $ sudo rpm -e python3-setuptools
      $ rm -rf /tmp/build/perf ; mkdir -p /tmp/build/perf
      $ make O=/tmp/build/perf -C tools/perf install-bin
      make: Entering directory '/var/home/acme/git/perf/tools/perf'
      <SNIP>
      ...                               libpython: [ on  ]
      <SNIP>
      $ ls -la /tmp/build/perf/python/perf.cpython-310-x86_64-linux-gnu.so
      ls: cannot access '/tmp/build/perf/python/perf.cpython-310-x86_64-linux-gnu.so': No such file or directory
      $
    Reported-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Link: http://lore.kernel.org/lkml/Y53XHw3rlsaaUgOs@kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    66dfc517
Makefile.config 42.4 KB