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

Re: [Xen-devel] [PATCH] tools/libxc: Fix construction of HVM guests with non-default firmware



On 12/11/15 12:47, Ian Campbell wrote:
> On Thu, 2015-11-12 at 12:37 +0000, Andrew Cooper wrote:
>> On 12/11/15 09:41, Ian Campbell wrote:
>>> On Wed, 2015-11-11 at 20:18 +0000, Andrew Cooper wrote:
>>>> c/s 1ee15d7 "libxl: switch HVM domain building to use xc_dom_*
>>>> helpers"
>>>> introduced a regression building HVM domains in combination with the
>>>> libxl
>>>> "firmware_override=" option.
>>>>
>>>> The older HVM building code (now removed) had no 32bit ELF check, so
>>>> would
>>>> happily load ELF64 images which contained a stub to switch into long
>>>> mode.
>>> IOW a ELF64 with 32-bit code at its entry point? Is that entry point
>>> the
>>> ELF entry point or the special Xen entry point located via the notes?
>>>
>>> I think you likely mean the latter, in which case I'm ok with this
>>> change
>>> if that entry point is explicitly documented to be 32-bit irrespective
>>> of
>>> the containing ELF file (either the commit message should mention this
>>> is 
>>> already the case or the patch should update the docs to make it so).
>> I mean the former.  This has nothing to do with DMLite guests, so no
>> elfnotes are involved.
>>
>> I realise that strictly speaking the elf check should match.  However,
>> it always used to work, and is sufficiently convenient for development
>> purposes that I feel the check is more problematic than helpful. 
>> (Postprocessing the linked binary from 64bit to 32bit elf is an extra
>> step which also makes it harder to disassemble.)
> An ELF file which says it is class ELF32 but has 64bit code at the entry
> point is IMHO malformed.
>
> I think that the fact this used to work is a misfeature, however convenient
> you may have found it.
>
> Kernels which wish to do this should IMHO do as Xen does and have a
> mkelf32.c step. You can still run gdb or whatever using the original ELF
> file.

It turns out that

OUTPUT_FORMAT("elf32-x86-64")

is a thing for linker scripts.

I have updated the framework to use that for 64bit hvm tests, and
everything appears to be working.

~Andrew

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

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