[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] Re: [patch 1/5] add libelf: an ELF binary parser library.



Emmanuel Ackaouy wrote:
> Hi Gerd,
> 
> I have to say I'm not a big fan of sticking a 32bit and 64bit version
> of each structure in a union and then checking at all levels of the
> function call stack which one to reference (via elf_xval() for example).
> 
> Wouldn't it be cleaner to just have 2 different version of each elf
> data structure and function? elf32_xxx and elf64_xxx . And go down
> one path or the other at the start of your function call stack?

No.

> I'm not
> usually a fan of multiple compilation, but due to the layout of 32
> and 64bit elf structures, this is one case where it makes sense
> to me.

It doesn't.  I did it both ways.  Not compiling twice is better.

It is much more flexible and makes reusing the code much easier.  You
can simply add your own functions without hassle.

Look at the libelf-use-readnotes.diff patch and the print_numeric_note()
function it adds to readnotes.c as an simple example.  How do you do
that when compiling twice?  Your options are:

 (1) push that into the library which is compiled twice anyway.
 (2) split it out into a separate source which you can compile twice.
 (3) write two versions of the function, one for 32 and one for 64 bit.

None of these options looks good to me.

> Also, do we actually have a need to look at elf files with a different
> ELFDATA (byte ordering) ?

Yes.  I think it is very handy if readnotes works on ppc kernels too.
Also some IA64 guys seem to work on mixed-endian support (there where
some messages on the list some weeks ago), for this it is required too.

cheers,
  Gerd

-- 
Gerd Hoffmann <kraxel@xxxxxxx>

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.