Messages in this thread | | | Date | Wed, 30 Mar 2016 18:15:22 -0300 | From | Arnaldo Carvalho de Melo <> | Subject | Re: [PATCH] perf jit: genelf makes assumptions about endian |
| |
Em Wed, Mar 30, 2016 at 01:38:20PM +1100, Michael Ellerman escreveu: > On Tue, 2016-03-29 at 17:59 +1100, Anton Blanchard wrote: > > > Commit 9b07e27f88b9 ("perf inject: Add jitdump mmap injection support") > > incorrectly assumed that PowerPC is big endian only. > > > > Simplify things by consolidating the define of GEN_ELF_ENDIAN and checking > > for __BYTE_ORDER == __BIG_ENDIAN. > > > > The PowerPC checks were also incorrect, they do not match what gcc > > emits. We should first look for __powerpc64__, then __powerpc__. > > > > Fixes: 9b07e27f88b9 ("perf inject: Add jitdump mmap injection support") > > Signed-off-by: Anton Blanchard <anton@samba.org> > > The diff's a little hard to read because you're pulling the endian logic out, > if I remove that I get something like:
Yeah, I'm taking this patch, but would be better next time to break it down in two, one doing the reorg, the other doing the actual fix...
Thanks,
- Arnaldo
> > #elif defined(__i386__) > > #define GEN_ELF_ARCH EM_386 > > #define GEN_ELF_CLASS ELFCLASS32 > > -#elif defined(__ppcle__) > > -#define GEN_ELF_ARCH EM_PPC > > -#define GEN_ELF_CLASS ELFCLASS64 > > -#elif defined(__powerpc__) > > -#define GEN_ELF_ARCH EM_PPC64 > > -#define GEN_ELF_CLASS ELFCLASS64 > > -#elif defined(__powerpcle__) > > +#elif defined(__powerpc64__) > > #define GEN_ELF_ARCH EM_PPC64 > > #define GEN_ELF_CLASS ELFCLASS64 > > +#elif defined(__powerpc__) > > +#define GEN_ELF_ARCH EM_PPC > > +#define GEN_ELF_CLASS ELFCLASS32 > > #else > > #error "unsupported architecture" > > #endif > > Which looks correct to me. > > And the consolidation of the endian logic is "obviously correct", so: > > Acked-by: Michael Ellerman <mpe@ellerman.id.au> > > cheers
| |