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

Re: [Xen-devel] [PATCH v3 2/2] x86/efi: split compiler vs linker support



On Wed, Jul 18, 2018 at 08:41:30AM -0600, Jan Beulich wrote:
> >>> On 18.07.18 at 12:27, <roger.pau@xxxxxxxxxx> wrote:
> > So that an ELF binary with support for EFI services will be built when
> > the compiler supports the MS ABI, regardless of the linker support for
> > PE.
> > 
> > Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx>
> > Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>
> > ---
> > Cc: Jan Beulich <jbeulich@xxxxxxxx>
> > Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
> > Cc: Daniel Kiper <daniel.kiper@xxxxxxxxxx>
> > ---
> > Changes since v1:
> >  - New in this version.
> > ---
> >  xen/arch/x86/Makefile     | 7 ++++---
> >  xen/arch/x86/efi/Makefile | 6 +++---
> >  xen/arch/x86/xen.lds.S    | 2 +-
> >  3 files changed, 8 insertions(+), 7 deletions(-)
> > 
> > diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
> > index 172685fb41..1301f52c3b 100644
> > --- a/xen/arch/x86/Makefile
> > +++ b/xen/arch/x86/Makefile
> > @@ -163,9 +163,10 @@ EFI_LDFLAGS += --minor-image-version=$(XEN_SUBVERSION)
> >  EFI_LDFLAGS += --major-os-version=2 --minor-os-version=0
> >  EFI_LDFLAGS += --major-subsystem-version=2 --minor-subsystem-version=0
> >  
> > -# Check if the build system supports PE.
> > -XEN_BUILD_PE := $(shell $(CC) $(filter-out $(CFLAGS-y) .%.d,$(CFLAGS)) -c 
> > efi/check.c -o efi/check.o 2>/dev/null && echo y)
> > -export XEN_BUILD_PE := $(if $(XEN_BUILD_PE),$(shell $(LD) -mi386pep 
> > --subsystem=10 -o efi/check.efi efi/check.o 2>/dev/null && echo y))
> > +# Check if the compiler supports the MS ABI.
> > +export XEN_BUILD_EFI := $(shell $(CC) $(filter-out $(CFLAGS-y) 
> > .%.d,$(CFLAGS)) -c efi/check.c -o efi/check.o 2>/dev/null && echo y)
> > +# Check if the linker supports PE.
> > +XEN_BUILD_PE := $(if $(XEN_BUILD_EFI),$(shell $(LD) -mi386pep 
> > --subsystem=10 -o efi/check.efi efi/check.o 2>/dev/null && echo y))
> >  CFLAGS-$(XEN_BUILD_PE) += -DXEN_BUILD_PE
> 
> Rebasing (over patch 1) mistake? I think this wants to be
> 
> CFLAGS-$(XEN_BUILD_EFI) += -DXEN_BUILD_EFI

Indeed, sorry. I've pushed a new branch:

git://xenbits.xen.org/people/royger/xen.git efi.v4

And updated the patch appended below.

---8<---
From 820fc00d1f1c7c691794f88f5b818fab81ac7127 Mon Sep 17 00:00:00 2001
From: Roger Pau Monne <roger.pau@xxxxxxxxxx>
Date: Wed, 18 Jul 2018 11:59:03 +0200
Subject: [PATCH v4 2/2] x86/efi: split compiler vs linker support
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

So that an ELF binary with support for EFI services will be built when
the compiler supports the MS ABI, regardless of the linker support for
PE.

Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx>
Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>
---
Cc: Jan Beulich <jbeulich@xxxxxxxx>
Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
Cc: Daniel Kiper <daniel.kiper@xxxxxxxxxx>
---
Changes since v1:
 - New in this version.
---
 xen/arch/x86/Makefile     | 9 +++++----
 xen/arch/x86/efi/Makefile | 6 +++---
 xen/arch/x86/xen.lds.S    | 2 +-
 3 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 172685fb41..17e7d3fa34 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -163,10 +163,11 @@ EFI_LDFLAGS += --minor-image-version=$(XEN_SUBVERSION)
 EFI_LDFLAGS += --major-os-version=2 --minor-os-version=0
 EFI_LDFLAGS += --major-subsystem-version=2 --minor-subsystem-version=0
 
-# Check if the build system supports PE.
-XEN_BUILD_PE := $(shell $(CC) $(filter-out $(CFLAGS-y) .%.d,$(CFLAGS)) -c 
efi/check.c -o efi/check.o 2>/dev/null && echo y)
-export XEN_BUILD_PE := $(if $(XEN_BUILD_PE),$(shell $(LD) -mi386pep 
--subsystem=10 -o efi/check.efi efi/check.o 2>/dev/null && echo y))
-CFLAGS-$(XEN_BUILD_PE) += -DXEN_BUILD_PE
+# Check if the compiler supports the MS ABI.
+export XEN_BUILD_EFI := $(shell $(CC) $(filter-out $(CFLAGS-y) .%.d,$(CFLAGS)) 
-c efi/check.c -o efi/check.o 2>/dev/null && echo y)
+# Check if the linker supports PE.
+XEN_BUILD_PE := $(if $(XEN_BUILD_EFI),$(shell $(LD) -mi386pep --subsystem=10 
-o efi/check.efi efi/check.o 2>/dev/null && echo y))
+CFLAGS-$(XEN_BUILD_EFI) += -DXEN_BUILD_EFI
 
 $(TARGET).efi: VIRT_BASE = 0x$(shell $(NM) efi/relocs-dummy.o | sed -n 's, A 
VIRT_START$$,,p')
 $(TARGET).efi: ALT_BASE = 0x$(shell $(NM) efi/relocs-dummy.o | sed -n 's, A 
ALT_START$$,,p')
diff --git a/xen/arch/x86/efi/Makefile b/xen/arch/x86/efi/Makefile
index 918383b325..3816de2738 100644
--- a/xen/arch/x86/efi/Makefile
+++ b/xen/arch/x86/efi/Makefile
@@ -6,6 +6,6 @@ CFLAGS += -fshort-wchar
 boot.init.o: buildid.o
 
 obj-y := stub.o
-obj-$(XEN_BUILD_PE) := boot.init.o compat.o relocs-dummy.o runtime.o
-extra-$(XEN_BUILD_PE) += buildid.o
-nocov-$(XEN_BUILD_PE) += stub.o
+obj-$(XEN_BUILD_EFI) := boot.init.o compat.o relocs-dummy.o runtime.o
+extra-$(XEN_BUILD_EFI) += buildid.o
+nocov-$(XEN_BUILD_EFI) += stub.o
diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
index 4a59467986..6e9bda5109 100644
--- a/xen/arch/x86/xen.lds.S
+++ b/xen/arch/x86/xen.lds.S
@@ -304,7 +304,7 @@ SECTIONS
   } :text
 #endif
 
-#ifndef XEN_BUILD_PE
+#ifndef XEN_BUILD_EFI
   efi = .;
 #endif
 
-- 
2.18.0



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

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