On 11 Apr 2006, at 14:14, Mathieu Ropert wrote:
> I found a difference between Xen''s domain kernel symbol table
> alignement and alignement found in some other OS, like BSD.
>
> On Xen (looking at loadelfsymtab() in common/elf.c), symtable length
> is stored on an ELFROUND rounded address (4 bytes on 32bits, 8 bytes
> on 64 bits) followed by the ELF header. As length is an int, header
> isn''t 8 bytes aligned on 64 bits (no problem on 32 bit as sizeof
(int)
> == ELFROUND), whereas OS like BSD expects the header to be aligned on
> a long boundary.
>
> I''d like to know whichever is right (if there is any standard
about
> that), because this may cause some incompatibilty problems with future
> ports attempts.
> Was also wondering if we could just fix it be moving all this 4 bytes
> forward in the guest OS code (may break pointer references, if any?).
That code is used *only* by BSD ports. So I guess it does work for them
and, since the build of the OS will be targetted at Xen they can always
do whatever is needed to get their symtab to be accepted by the
loadelfsymtab() code. If there is a problem, it''ll be up to them to
submit a patch to fix it.
-- Keir
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel