Date: Wed, 9 Apr 2025 19:27:52 GMT From: Ed Maste <emaste@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: git: 22921f4b4aed - main - boot: Fall back to objcopy if usable for EFI components Message-ID: <202504091927.539JRqYm070456@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch main has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=22921f4b4aedb5017b727e62045130ab69c3dd1b commit 22921f4b4aedb5017b727e62045130ab69c3dd1b Author: Ed Maste <emaste@FreeBSD.org> AuthorDate: 2025-03-25 13:34:23 +0000 Commit: Ed Maste <emaste@FreeBSD.org> CommitDate: 2025-04-09 19:26:54 +0000 boot: Fall back to objcopy if usable for EFI components In commit b885643b63e4 ("boot: Always use ELF Tool Chain elfcopy for EFI builds") I switched to using elfcopy for EFI_OBJCOPY, as llvm-objcopy lacks support for translating ELF objects to PE32+. This broke building on older releases with WITHOUT_ELFTOOLCHAIN_BOOTSTRAP set, as the host did not provide elfcopy and it was not built as a bootstrap tool. Now, if we're not bootstrapping ELF Tool Chain we check the output of `${OBJCOPY} --version`, and will use that ${OBJCOPY} as long as it is not llvm-objcopy. Reviewed by: imp Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49722 --- stand/efi/Makefile.inc | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/stand/efi/Makefile.inc b/stand/efi/Makefile.inc index f91ac9102ca8..6bb0af1d84f3 100644 --- a/stand/efi/Makefile.inc +++ b/stand/efi/Makefile.inc @@ -1,3 +1,5 @@ +.include <src.opts.mk> + # Options used when building app-specific efi components # See conf/kern.mk for the correct set of these CFLAGS+= -Wformat @@ -26,7 +28,20 @@ EFI_TARGET= efi-app-x86_64 .else EFI_TARGET= binary .endif + +# GNU or ELF Tool Chain objcopy is usable for building EFI objects. +# LLVM objcopy is not. Use elfcopy if we've bootstrapped it (and thus +# known to be available) or objcopy is LLVM's. +.if ${MK_ELFTOOLCHAIN_BOOTSTRAP} != "no" EFI_OBJCOPY?= elfcopy +.else +_v!= ${OBJCOPY} --version +.if ${_v:Mllvm-objcopy*} == "" +EFI_OBJCOPY?= ${OBJCOPY} +.else +EFI_OBJCOPY?= elfcopy +.endif +.endif # Arbitrarily set the PE/COFF header timestamps to 1 Jan 2024 00:00:00 # for build reproducibility.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202504091927.539JRqYm070456>