• Adrian Hunter's avatar
    perf tests lib: Add perf_has_symbol.sh · 96ba5999
    Adrian Hunter authored
    Some shell tests depend on finding symbols for perf itself, and fail if
    perf has been stripped and no debug object is available. Add helper
    functions to check if perf has a needed symbol. This is preparation for
    amending the tests themselves to be skipped if a needed symbol is not
    found.
    
    The functions make use of the "Symbols" test which reads and checks symbols
    from a dso, perf itself by default. Note the "Symbols" test will find
    symbols using the same method as other perf tests, including, for example,
    looking in the buildid cache.
    
    An alternative would be to prevent the needed symbols from being stripped,
    which seems to work with gcc's externally_visible attribute, but that
    attribute is not supported by clang.
    
    Another alternative would be to use option -Wl,-E (which is already used
    when perf is built with perl support) which causes the linker to add all
    (global) symbols to the dynamic symbol table. Then the required symbols
    need only be made global in scope to avoid being strippable. However that
    goes beyond what is needed.
    Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
    Acked-by: default avatarIan Rogers <irogers@google.com>
    Cc: German Gomez <german.gomez@arm.com>
    Cc: James Clark <james.clark@arm.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Leo Yan <leo.yan@linaro.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Link: https://lore.kernel.org/r/20231123075848.9652-3-adrian.hunter@intel.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    96ba5999
perf_has_symbol.sh 369 Bytes