• Song Liu's avatar
    perf build: Check what binutils's 'disassembler()' signature to use · 8a1b1718
    Song Liu authored
    Commit 003ca0fd2286 ("Refactor disassembler selection") in the binutils
    repo, which changed the disassembler() function signature, so we must
    use the feature test introduced in fb982666 ("tools/bpftool: fix
    bpftool build with bintutils >= 2.9") to deal with that.
    
    Committer testing:
    
    After adding the missing function call to test-all.c, and:
    
      FEATURE_CHECK_LDFLAGS-disassembler-four-args = -bfd -lopcodes
    
    And the fallbacks for cases where we need -liberty and sometimes -lz to
    tools/perf/Makefile.config, we get:
    
      $ make -C tools/perf O=/tmp/build/perf install-bin
      make: Entering directory '/home/acme/git/perf/tools/perf'
        BUILD:   Doing 'make -j8' parallel build
    
      Auto-detecting system features:
      ...                         dwarf: [ on  ]
      ...            dwarf_getlocations: [ on  ]
      ...                         glibc: [ on  ]
      ...                          gtk2: [ on  ]
      ...                      libaudit: [ on  ]
      ...                        libbfd: [ on  ]
      ...                        libelf: [ on  ]
      ...                       libnuma: [ on  ]
      ...        numa_num_possible_cpus: [ on  ]
      ...                       libperl: [ on  ]
      ...                     libpython: [ on  ]
      ...                      libslang: [ on  ]
      ...                     libcrypto: [ on  ]
      ...                     libunwind: [ on  ]
      ...            libdw-dwarf-unwind: [ on  ]
      ...                          zlib: [ on  ]
      ...                          lzma: [ on  ]
      ...                     get_cpuid: [ on  ]
      ...                           bpf: [ on  ]
      ...                        libaio: [ on  ]
      ...        disassembler-four-args: [ on  ]
        CC       /tmp/build/perf/jvmti/libjvmti.o
        CC       /tmp/build/perf/builtin-bench.o
      <SNIP>
      $
      $
    
    The feature detection test-all.bin gets successfully built and linked:
    
      $ ls -la /tmp/build/perf/feature/test-all.bin
      -rwxrwxr-x. 1 acme acme 2680352 Mar 19 11:07 /tmp/build/perf/feature/test-all.bin
      $ nm /tmp/build/perf/feature/test-all.bin  | grep -w disassembler
      0000000000061f90 T disassembler
      $
    
    Time to move on to the patches that make use of this disassembler()
    routine in binutils's libopcodes.
    Signed-off-by: default avatarSong Liu <songliubraving@fb.com>
    Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Alexei Starovoitov <ast@kernel.org>
    Cc: Daniel Borkmann <daniel@iogearbox.net>
    Cc: Jakub Kicinski <jakub.kicinski@netronome.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Roman Gushchin <guro@fb.com>
    Cc: Stanislav Fomichev <sdf@google.com>
    Link: http://lkml.kernel.org/r/20190312053051.2690567-13-songliubraving@fb.com
    [ split from a larger patch, added missing FEATURE_CHECK_LDFLAGS-disassembler-four-args ]
    Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    8a1b1718
Makefile.config 30.7 KB