Re: [PATCH] perf: Set PLT entry/header sizes properly on Sparc.
Em Wed, Oct 17, 2018 at 12:08:59PM -0700, David Miller escreveu: > > Using the sh_entsize for both values isn't correct. It happens > to be correct on x86... > > For both 32-bit and 64-bit sparc, there are four PLT entries in the > PLT section. Thanks, applied. - Arnaldo
Re: [PATCH] perf: Set PLT entry/header sizes properly on Sparc.
Em Wed, Oct 17, 2018 at 12:08:59PM -0700, David Miller escreveu: > > Using the sh_entsize for both values isn't correct. It happens > to be correct on x86... > > For both 32-bit and 64-bit sparc, there are four PLT entries in the > PLT section. Thanks, applied. - Arnaldo
[PATCH] perf: Set PLT entry/header sizes properly on Sparc.
Using the sh_entsize for both values isn't correct. It happens to be correct on x86... For both 32-bit and 64-bit sparc, there are four PLT entries in the PLT section. Signed-off-by: David S. Miller --- tools/perf/util/symbol-elf.c | 12 +++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/tools/perf/util/symbol-elf.c b/tools/perf/util/symbol-elf.c index 29770ea61768..6e70cc00c161 100644 --- a/tools/perf/util/symbol-elf.c +++ b/tools/perf/util/symbol-elf.c @@ -324,7 +324,17 @@ int dso__synthesize_plt_symbols(struct dso *dso, struct symsrc *ss) plt_entry_size = 16; break; - default: /* FIXME: s390/alpha/mips/parisc/poperpc/sh/sparc/xtensa need to be checked */ + case EM_SPARC: + plt_header_size = 48; + plt_entry_size = 12; + break; + + case EM_SPARCV9: + plt_header_size = 128; + plt_entry_size = 32; + break; + + default: /* FIXME: s390/alpha/mips/parisc/poperpc/sh/xtensa need to be checked */ plt_header_size = shdr_plt.sh_entsize; plt_entry_size = shdr_plt.sh_entsize; break; -- 2.19.1.328.g5a0cc8aca
[PATCH] perf: Set PLT entry/header sizes properly on Sparc.
Using the sh_entsize for both values isn't correct. It happens to be correct on x86... For both 32-bit and 64-bit sparc, there are four PLT entries in the PLT section. Signed-off-by: David S. Miller --- tools/perf/util/symbol-elf.c | 12 +++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/tools/perf/util/symbol-elf.c b/tools/perf/util/symbol-elf.c index 29770ea61768..6e70cc00c161 100644 --- a/tools/perf/util/symbol-elf.c +++ b/tools/perf/util/symbol-elf.c @@ -324,7 +324,17 @@ int dso__synthesize_plt_symbols(struct dso *dso, struct symsrc *ss) plt_entry_size = 16; break; - default: /* FIXME: s390/alpha/mips/parisc/poperpc/sh/sparc/xtensa need to be checked */ + case EM_SPARC: + plt_header_size = 48; + plt_entry_size = 12; + break; + + case EM_SPARCV9: + plt_header_size = 128; + plt_entry_size = 32; + break; + + default: /* FIXME: s390/alpha/mips/parisc/poperpc/sh/xtensa need to be checked */ plt_header_size = shdr_plt.sh_entsize; plt_entry_size = shdr_plt.sh_entsize; break; -- 2.19.1.328.g5a0cc8aca