On Mon, 2014-07-28 at 16:52 +0100, Jan Beulich wrote:
This would also address the tool chain detection issue you described in the cover letter (without the addressing of which I can't see how things will ultimately work).
In the case where the toolchain doesn't EFI won't the unnecessary code built in xen/common/efi simply get discarded by the linker?
Not that I'm aware of - afaik no code or data inside a .o would ever get thrown away by the linker without it being specifically asked to do so.
Hrm perhaps I'm thinking of one of the whole programmer optimisation things then.
Even if not it looks like ~20K of mostly __init stuff, which doesn't seem like the end of the world, especially given that more and more toolstacks do support EFI with time.
Right now - with the runtime code not moved over yet - it's mostly __init. Plus (with the linker not being able to discard that code) it carries the risk of having references to symbols that don't exist in the non-EFI build.
Perhaps we can put the relevant code into efi specific sections and DTRT in xen.lds.S?
Ian.