On Mon, Nov 22, 2010 at 01:46:54PM -0500, Arnaud Lacombe wrote: > On Mon, Nov 22, 2010 at 9:57 AM, wu zhangjin <wuzhangjin@xxxxxxxxx> wrote: > > Hi, > > > > The cause should be the endian problem, I guess you were cross-compiling it? > > > yes. > > > If we compile the kernel for (32bit + big endian) target on an x86 > > machine(little endian) or reversely, then, it will fail. > > > > Since the scripts/recordmcount is compiled with the local toolchain, > > the data structs will be explained according to the local > > configuration(endian...). > > > will it ? recordmcount.c does not switch endianness based on the host, > but based on format of the object file, see the switch > (ehdr->e_ident[EI_DATA]) { ... } in do_file(), the result does also > depend a runtime endianness check. > > > So, we may need to custom our own elf.h for recordmcount according to > > the target type(endian here) of the kernel image: > > > > At first, pass the target information to recordmcount(only a demo > > here, we may need to clear it carefully): Looks all right to me. Steven, can you merge it? Acked-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx> Ralf