WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] Re: [patch 2/5] libelf: use for x86 dom0 builder.

To: Emmanuel Ackaouy <ack@xxxxxxxxxxxxx>
Subject: [Xen-devel] Re: [patch 2/5] libelf: use for x86 dom0 builder.
From: Gerd Hoffmann <kraxel@xxxxxxx>
Date: Thu, 25 Jan 2007 08:59:56 +0100
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
Delivery-date: Thu, 25 Jan 2007 00:01:01 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <3dd0e279c6c66796d005d6634954af7d@xxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <20070123145344.754866428@xxxxxxx> <20070123145409.269613149@xxxxxxx> <6b41881e10b3a4b8a282b811b53684b3@xxxxxxxxxxxxx> <45B71BB3.8040806@xxxxxxx> <3dd0e279c6c66796d005d6634954af7d@xxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Thunderbird 1.5.0.9 (X11/20060911)
Emmanuel Ackaouy wrote:
>>>> +#obj-y += elf.o
>>>> +#obj-$(CONFIG_COMPAT) += elf32.o
>>>
>>> Can we just zap those lines?
>>
>> Once ia64 is tested and ppc dom0 builder is ported over to libelf we can.
> 
> Can you explain what ia64 or ppc have to do with lines that are commented
> out?

ia64 should work in theory, cross-compiling worked last time I tried,
didn't boot it though due to lack of hardware.

ppc(64) needs adaptions, simliar to the changes in
xen/arch/x86/domain_build.c and xen/arch/ia64/xen/domain.c

>>>> +    /* compatibility check */
>>>> +    compatible = 0;
>>>> +    compat32   = 0;
>>>> +    machine = elf_uval(&elf, elf.ehdr, e_machine);
>>>> +    switch (CONFIG_PAGING_LEVELS) {
>>>
>>> Can we make this a compile time check instead of run-time?
>>
>> CONFIG_PAGING_LEVELS is a constant, thus it actually is compile-time,
>> the gcc optimizer should throw away the unused code paths.  I prefer
>> this way over cluttering the source with #ifdefs.
> 
> I'm not sure I follow. Are you suggesting we replace ifdefs with run
> time checks because the compiler will deal with it?

Yes.

CONFIG_COMPAT is partly handled that way too:  with compat=n the
IS_COMPAT() macro is defined to 0, and gcc will optimize out the
conditional code which can run with compat=y only.

>>> Also, it
>>> would seem easier to do all the checks first and then do a printk
>>> specifying which kernel we found and, if it's not compatible with the
>>> hypervisor, why not.
>>
>> I intentionally print kernel and xen type unconditionally.  I think it
>> is useful to have that information in the log, even if the combination
>> is not incompatible.
> 
> I didn't suggest printing nothing when the combination is compatible.

I don't see the point in rearranging the code then.

cheers,
  Gerd

-- 
Gerd Hoffmann <kraxel@xxxxxxx>

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