On 08/12/2021 13:55, German Gomez wrote: > Hi John, > > On 08/12/2021 11:51, John Garry wrote: >> On 07/12/2021 18:06, German Gomez wrote: >>> tools/perf/arch/arm/include/perf_regs.h | 42 -- >>> tools/perf/arch/arm64/include/perf_regs.h | 76 -- >>> tools/perf/arch/csky/include/perf_regs.h | 82 --- >>> tools/perf/arch/mips/include/perf_regs.h | 69 -- >>> tools/perf/arch/powerpc/include/perf_regs.h | 66 -- >>> tools/perf/arch/riscv/include/perf_regs.h | 74 -- >>> tools/perf/arch/s390/include/perf_regs.h | 78 -- >>> tools/perf/arch/x86/include/perf_regs.h | 82 --- >>> tools/perf/builtin-script.c | 18 +- >>> tools/perf/util/perf_regs.c | 666 ++++++++++++++++++ >>> tools/perf/util/perf_regs.h | 10 +- >>> .../scripting-engines/trace-event-python.c | 10 +- >>> tools/perf/util/session.c | 25 +- >>> 13 files changed, 697 insertions(+), 601 deletions(-) >> Did you consider leaving the register structures where they are while >> renaming to include the arch name and then having as externs or similar? I see an example of that idea for arm64_unwind_libunwind_ops. >> > If by register structures you are referring to "__perf_reg_name(int)", I > can't leave them where they are. Only one of them would be included in > the build. I think I need to elaborate a bit more on this since some of the files involved share the same name but are serving different purposes and it could lead to confusion. The linux repo has "perf_regs.h" for each architecture enumerating the registers from each architecture. These are the files I #include'd in "/tools/perf/util/perf_regs.c". The other "perf_regs.h" affected by this patch are local only to perf. Likewise there is one file for each architecture, but contrary to the linux ones, they are mutually exclusive, so I can't #include them all: #ifndef ARCH_PERF_REGS_H #define ARCH_PERF_REGS_H //... #undef ARCH_PERF_REGS_H Before the patch, the functions "__perf_reg_name" were declared & implemented in these headers, so I had to take them out. Thanks, German