mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 01:49:46 +00:00
Move symbolization and srcline libbfd dependencies to a separate libbfd.c. This mirrors moving llvm and capstone code. While this code is deprecated as it is part of BUILD_NONDISTRO license incompatible code, moving the code to its own file minimizes disruption in the main files. disasm_bpf.c is moved to libbfd.c also except for symbol__disassemble_bpf_image which is currently more of a placeholder function rather than something that provides disassembly support. demangle-cxx.cpp code isn't migrated as it is very limited. Signed-off-by: Ian Rogers <irogers@google.com> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Alexandre Ghiti <alexghiti@rivosinc.com> Cc: Andi Kleen <ak@linux.intel.com> Cc: Athira Rajeev <atrajeev@linux.ibm.com> Cc: Bill Wendling <morbo@google.com> Cc: Charlie Jenkins <charlie@rivosinc.com> Cc: Collin Funk <collin.funk1@gmail.com> Cc: Dmitriy Vyukov <dvyukov@google.com> Cc: Dr. David Alan Gilbert <linux@treblig.org> Cc: Eric Biggers <ebiggers@kernel.org> Cc: Haibo Xu <haibo1.xu@intel.com> Cc: Ingo Molnar <mingo@redhat.com> Cc: James Clark <james.clark@linaro.org> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Justin Stitt <justinstitt@google.com> Cc: Li Huafei <lihuafei1@huawei.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Masami Hiramatsu <mhiramat@kernel.org> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Nathan Chancellor <nathan@kernel.org> Cc: Nick Desaulniers <nick.desaulniers+lkml@gmail.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Song Liu <song@kernel.org> Cc: Stephen Brennan <stephen.s.brennan@oracle.com> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
84 lines
2.1 KiB
C
84 lines
2.1 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef __PERF_LIBBFD_H
|
|
#define __PERF_LIBBFD_H
|
|
|
|
#include <linux/compiler.h>
|
|
#include <linux/types.h>
|
|
#include <stdbool.h>
|
|
#include <stddef.h>
|
|
|
|
struct annotate_args;
|
|
struct build_id;
|
|
struct dso;
|
|
struct inline_node;
|
|
struct symbol;
|
|
|
|
#ifdef HAVE_LIBBFD_SUPPORT
|
|
int libbfd__addr2line(const char *dso_name, u64 addr,
|
|
char **file, unsigned int *line, struct dso *dso,
|
|
bool unwind_inlines, struct inline_node *node,
|
|
struct symbol *sym);
|
|
|
|
|
|
void dso__free_a2l_libbfd(struct dso *dso);
|
|
|
|
int symbol__disassemble_libbfd(const char *filename, struct symbol *sym,
|
|
struct annotate_args *args);
|
|
|
|
int libbfd__read_build_id(const char *filename, struct build_id *bid, bool block);
|
|
|
|
int libbfd_filename__read_debuglink(const char *filename, char *debuglink, size_t size);
|
|
|
|
int symbol__disassemble_bpf(struct symbol *sym, struct annotate_args *args);
|
|
|
|
#else // !defined(HAVE_LIBBFD_SUPPORT)
|
|
#include "annotate.h"
|
|
|
|
static inline int libbfd__addr2line(const char *dso_name __always_unused,
|
|
u64 addr __always_unused,
|
|
char **file __always_unused,
|
|
unsigned int *line __always_unused,
|
|
struct dso *dso __always_unused,
|
|
bool unwind_inlines __always_unused,
|
|
struct inline_node *node __always_unused,
|
|
struct symbol *sym __always_unused)
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
|
|
static inline void dso__free_a2l_libbfd(struct dso *dso __always_unused)
|
|
{
|
|
}
|
|
|
|
static inline int symbol__disassemble_libbfd(const char *filename __always_unused,
|
|
struct symbol *sym __always_unused,
|
|
struct annotate_args *args __always_unused)
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
static inline int libbfd__read_build_id(const char *filename __always_unused,
|
|
struct build_id *bid __always_unused,
|
|
bool block __always_unused)
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
static inline int libbfd_filename__read_debuglink(const char *filename __always_unused,
|
|
char *debuglink __always_unused,
|
|
size_t size __always_unused)
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
static inline int symbol__disassemble_bpf(struct symbol *sym __always_unused,
|
|
struct annotate_args *args __always_unused)
|
|
{
|
|
return SYMBOL_ANNOTATE_ERRNO__NO_LIBOPCODES_FOR_BPF;
|
|
}
|
|
|
|
#endif // defined(HAVE_LIBBFD_SUPPORT)
|
|
|
|
#endif /* __PERF_LIBBFD_H */
|