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

Re: [Xen-devel] [PATCH v11 07/13] x86: add multiboot2 protocol support for EFI platforms



>>> On 16.12.16 at 14:38, <andrew.cooper3@xxxxxxxxxx> wrote:
> On 05/12/16 22:25, Daniel Kiper wrote:
>> diff --git a/xen/arch/x86/efi/stub.c b/xen/arch/x86/efi/stub.c
>> index 4158124..6ea6aa1 100644
>> --- a/xen/arch/x86/efi/stub.c
>> +++ b/xen/arch/x86/efi/stub.c
>> @@ -3,6 +3,44 @@
>>  #include <xen/init.h>
>>  #include <xen/lib.h>
>>  #include <asm/page.h>
>> +#include <asm/efibind.h>
>> +#include <efi/efidef.h>
>> +#include <efi/eficapsule.h>
>> +#include <efi/eficon.h>
>> +#include <efi/efidevp.h>
>> +#include <efi/efiapi.h>
>> +
>> +/*
>> + * Here we are in EFI stub. EFI calls are not supported due to lack
>> + * of relevant functionality in compiler and/or linker.
>> + *
>> + * efi_multiboot2() is an exception. Please look below for more details.
>> + */
>> +
>> +paddr_t __init noreturn efi_multiboot2(EFI_HANDLE ImageHandle,
>> +                                       EFI_SYSTEM_TABLE *SystemTable)
>> +{
>> +    CHAR16 *err = L"Xen does not have EFI code build in!!!\r\nSystem 
>> halted!!!\r\n";
>> +    SIMPLE_TEXT_OUTPUT_INTERFACE *StdErr;
>> +
>> +    StdErr = SystemTable->StdErr ? SystemTable->StdErr : 
>> SystemTable->ConOut;
>> +
>> +    /*
>> +     * Print error message and halt the system.
>> +     *
>> +     * We have to open code MS x64 calling convention
>> +     * in assembly because here this convention may
>> +     * not be directly supported by C compiler.
>> +     */
>> +    asm volatile(
>> +    "    call %2                      \n"
> 
> This should be `call *%2`, because otherwise gcc complains with:
> 
> stub.c: Assembler messages:
> stub.c:35: Warning: indirect call without `*'
> 
> Interestingly, it isn't fatal to the build which is why I didn't spot it
> earlier.  I also can't work out why it isn't fatal to the build, because
> I'd have thought the -Werror should have been enough.

-Werror only affects compiler warnings. The compiler doesn't try
to interpret assembler diagnostics.

Jan


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

 


Rackspace

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