>>> On 16.12.16 at 14:38, <andrew.coop...@citrix.com> 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@lists.xen.org https://lists.xen.org/xen-devel