All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>,
	"Wei Liu" <wl@xen.org>, "Roger Pau Monné" <roger.pau@citrix.com>
Subject: [PATCH 2/8] x86: don't build with EFI support in shim-exclusive mode
Date: Wed, 15 Jul 2020 12:37:43 +0200	[thread overview]
Message-ID: <3354347f-b931-2a33-48b8-51eabf654ca2@suse.com> (raw)
In-Reply-To: <3375cacd-d3b7-9f06-44a7-4b684b6a77d6@suse.com>

There's no need for xen.efi at all, and there's also no need for EFI
support in xen.gz since the shim runs in PVH mode, i.e. without any
firmware (and hence by implication also without EFI one).

The slightly odd looking use of $(space) is to ensure the new ifneq()
evaluates consistently between "build" and "install" invocations of
make.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
There are further anomalies associated with the need to use $(space)
here:
- xen.efi rebuilding gets suppressed when installing (typically as
  root) from a non-root-owned tree. I think we should similarly suppress
  re-building of xen.gz as well in this case, as tool chains available
  may vary (and hence a partial or full re-build may mistakenly occur).
- xen.lds (re-)generation has a dependency issue: The value of
  XEN_BUILD_EFI changing between builds (like would happen on a pre-
  built tree with a shim-exclusive config, on which then this patch
  would be applied) does not cause it to be re-built. Anthony's
  switching to Linux'es build system will address this afaict, so I
  didn't see a need to supply a separate patch.

--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -80,7 +80,9 @@ x86_emulate.o: x86_emulate/x86_emulate.c
 
 efi-y := $(shell if [ ! -r $(BASEDIR)/include/xen/compile.h -o \
                       -O $(BASEDIR)/include/xen/compile.h ]; then \
-                         echo '$(TARGET).efi'; fi)
+                         echo '$(TARGET).efi'; fi) \
+         $(space)
+efi-$(CONFIG_PV_SHIM_EXCLUSIVE) :=
 
 ifneq ($(build_id_linker),)
 notes_phdrs = --notes
@@ -113,11 +115,13 @@ $(TARGET): $(TARGET)-syms $(efi-y) boot/
 		{ echo "No Multiboot2 header found" >&2; false; }
 	mv $(TMP) $(TARGET)
 
+ifneq ($(efi-y),)
 # Check if the compiler supports the MS ABI.
 export XEN_BUILD_EFI := $(shell $(CC) $(XEN_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
+endif
 
 ALL_OBJS := $(BASEDIR)/arch/x86/boot/built_in.o $(BASEDIR)/arch/x86/efi/built_in.o $(ALL_OBJS)
 EFI_OBJS-$(XEN_BUILD_EFI) := efi/relocs-dummy.o



  parent reply	other threads:[~2020-07-15 10:37 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-15 10:29 [PATCH 0/8] x86: build adjustments Jan Beulich
2020-07-15 10:37 ` [PATCH 1/8] x86/EFI: sanitize build logic Jan Beulich
2020-07-15 10:37 ` Jan Beulich [this message]
2020-07-15 10:38 ` [PATCH 3/8] x86: shrink struct arch_{vcpu,domain} when !HVM Jan Beulich
2020-07-15 10:39 ` [PATCH 4/8] Arm: prune #include-s needed by domain.h Jan Beulich
2020-07-15 16:54   ` Stefano Stabellini
2020-07-17 14:44   ` Julien Grall
2020-07-20  8:17     ` Jan Beulich
2020-07-20  9:09       ` Julien Grall
2020-07-20 11:28         ` Jan Beulich
2020-07-20 15:15           ` Julien Grall
2020-07-20 16:17             ` Julien Grall
2020-07-15 10:40 ` [PATCH 5/8] bitmap: move to/from xenctl_bitmap conversion helpers Jan Beulich
2020-07-20 16:20   ` Julien Grall
2020-07-21  7:31     ` Jan Beulich
2020-07-15 10:40 ` [PATCH 6/8] x86: move domain_cpu_policy_changed() Jan Beulich
2020-07-15 10:41 ` [PATCH 7/8] x86: move cpu_{up,down}_helper() Jan Beulich
2020-07-15 10:41 ` [PATCH 8/8] x86: don't include domctl and alike in shim-exclusive builds Jan Beulich

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3354347f-b931-2a33-48b8-51eabf654ca2@suse.com \
    --to=jbeulich@suse.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=roger.pau@citrix.com \
    --cc=wl@xen.org \
    --cc=xen-devel@lists.xenproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.