Message ID | xm26bk4dlqnp.fsf@bsegall.svl.corp.google.com |
---|---|
State | Superseded |
Headers | show |
Series | x86/boot: Don't add the EFI stub to targets, again | expand |
On Thu, 6 Jun 2024 at 23:14, Benjamin Segall <bsegall@google.com> wrote: > > This is a re-commit of the commit da05b143a308 ("x86/boot: Don't add the > EFI stub to targets") after the tagged patch incorrectly reverted it. > > To summarize: vmlinux-objs-y is added to targets, with an assumption > that they are all relative to $(obj); adding a $(objtree)/drivers/... > path causes the build to incorrectly create a useless > arch/x86/boot/compressed/drivers/... directory tree. > > Fix this just by using a different make variable for the EFI stub. > > Fixes: cb8bda8ad443 ("x86/boot/compressed: Rename efi_thunk_64.S to efi-mixed.S") > Signed-off-by: Ben Segall <bsegall@google.com> Oops, my bad. Reviewed-by: Ard Biesheuvel <ardb@kernel.org> Please add Cc: <stable@vger.kernel.org> # v6.1+ One nit below. > --- > arch/x86/boot/compressed/Makefile | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/arch/x86/boot/compressed/Makefile b/arch/x86/boot/compressed/Makefile > index 243ee86cb1b1..5245c8fedc17 100644 > --- a/arch/x86/boot/compressed/Makefile > +++ b/arch/x86/boot/compressed/Makefile > @@ -103,13 +103,13 @@ vmlinux-objs-$(CONFIG_ACPI) += $(obj)/acpi.o > vmlinux-objs-$(CONFIG_INTEL_TDX_GUEST) += $(obj)/tdx.o $(obj)/tdcall.o $(obj)/tdx-shared.o > vmlinux-objs-$(CONFIG_UNACCEPTED_MEMORY) += $(obj)/mem.o > > vmlinux-objs-$(CONFIG_EFI) += $(obj)/efi.o > vmlinux-objs-$(CONFIG_EFI_MIXED) += $(obj)/efi_mixed.o > -vmlinux-objs-$(CONFIG_EFI_STUB) += $(objtree)/drivers/firmware/efi/libstub/lib.a > +efi-obj-$(CONFIG_EFI_STUB) += $(objtree)/drivers/firmware/efi/libstub/lib.a > I'd prefer to call this vmlinux-libs-y rather than efi-obj-y, because static libraries and locally built objects are being treated differently here. The other EFI related objects are added to vmlinux-objs-y, making it entirely unintuitive why this distinction exists. > -$(obj)/vmlinux: $(vmlinux-objs-y) FORCE > +$(obj)/vmlinux: $(vmlinux-objs-y) $(efi-obj-y) FORCE > $(call if_changed,ld) > > OBJCOPYFLAGS_vmlinux.bin := -R .comment -S > $(obj)/vmlinux.bin: vmlinux FORCE > $(call if_changed,objcopy) > -- > 2.45.2.505.gda0bf45e8d-goog >
diff --git a/arch/x86/boot/compressed/Makefile b/arch/x86/boot/compressed/Makefile index 243ee86cb1b1..5245c8fedc17 100644 --- a/arch/x86/boot/compressed/Makefile +++ b/arch/x86/boot/compressed/Makefile @@ -103,13 +103,13 @@ vmlinux-objs-$(CONFIG_ACPI) += $(obj)/acpi.o vmlinux-objs-$(CONFIG_INTEL_TDX_GUEST) += $(obj)/tdx.o $(obj)/tdcall.o $(obj)/tdx-shared.o vmlinux-objs-$(CONFIG_UNACCEPTED_MEMORY) += $(obj)/mem.o vmlinux-objs-$(CONFIG_EFI) += $(obj)/efi.o vmlinux-objs-$(CONFIG_EFI_MIXED) += $(obj)/efi_mixed.o -vmlinux-objs-$(CONFIG_EFI_STUB) += $(objtree)/drivers/firmware/efi/libstub/lib.a +efi-obj-$(CONFIG_EFI_STUB) += $(objtree)/drivers/firmware/efi/libstub/lib.a -$(obj)/vmlinux: $(vmlinux-objs-y) FORCE +$(obj)/vmlinux: $(vmlinux-objs-y) $(efi-obj-y) FORCE $(call if_changed,ld) OBJCOPYFLAGS_vmlinux.bin := -R .comment -S $(obj)/vmlinux.bin: vmlinux FORCE $(call if_changed,objcopy)
This is a re-commit of the commit da05b143a308 ("x86/boot: Don't add the EFI stub to targets") after the tagged patch incorrectly reverted it. To summarize: vmlinux-objs-y is added to targets, with an assumption that they are all relative to $(obj); adding a $(objtree)/drivers/... path causes the build to incorrectly create a useless arch/x86/boot/compressed/drivers/... directory tree. Fix this just by using a different make variable for the EFI stub. Fixes: cb8bda8ad443 ("x86/boot/compressed: Rename efi_thunk_64.S to efi-mixed.S") Signed-off-by: Ben Segall <bsegall@google.com> --- arch/x86/boot/compressed/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)