From nobody Sun Mar 23 22:17:36 2025 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZLVt91XdLz5rtPd; Sun, 23 Mar 2025 22:17:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZLVt84QP0z3NP2; Sun, 23 Mar 2025 22:17:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1742768256; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=E+B2Vjv0p/kmif1z6yruJdgSRRUG5ZpGRZXRwWzcJJ0=; b=mpGRUdyvlXMIFNHE58K5Kfg5xWclr4IGJhcJrKJxrF6p4wh9Pd0/+zmtnTDaL4Jsf8qRc1 EJ1t4KCInFy8JFY4+rMX8X147WoOiCmoyrSo/Qvp3oZWFR5Zl7laIt8xiZ0Nyx2JcXZqZL odlo0RcMyuv8NbiCTMzWhhftRlabZ9ceufKf/jAN3QIU1Xh6Fr7EaGIV1jbg4mFkchTRtC 0WQn+zZ+kTArmjN4LzvORsQj0KmWrK7EGaNzvlsRN18IEeN65KUZ2yvixTEh4bnua4kuDr owKkXHT2E5Vvq+IjRO2fm2PZMgf+pFdILcs7d3TbR8JMBN4BFGtAFW1uatLRFA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1742768256; a=rsa-sha256; cv=none; b=tTiGX8rBtelf6hzo+tp91vOp6dzyr9zxF02Qt1JwAByM1BlU4382QCQaS8ysbZtn2mz5su whX8cCIsiOGXwcV1YOdtoBO/z9octkd17qJez/yXpyZgNmJqgfQy7qj60YqjBmNJI0gCn8 D2qlgGopEvwG3QS0/tpSsVLT/hjcQcfn+WFH8GXTvi8DC6bIcY7lyYhUoybRbiLNTrSU9y 0TXW0f3UoOSPiQ3eJai/uBJwtmrOJFKWPZgcQ58Jjc4n36A9z+hN3C4L1gj50H7FL45/77 8mJUyNnu8RjyA+xBB0Gj/t4Hki1PAosHTHARJXjl3zSeGmu+yLONIp0xOPGY6g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1742768256; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=E+B2Vjv0p/kmif1z6yruJdgSRRUG5ZpGRZXRwWzcJJ0=; b=KUpmOQ1WKvoPTLkFar6AmHnxUAeKqD78Ed3oRUhA1rKddYNXGAdDpk/hhkx+oZWIrkDUrv flOeU7T6yfwXvqXAzI0gBejSUM9KzTcPgTceQM7C4S0345q/eo5RZ2FrD6q+glpefsNw3b a6yiekY2CIw9aVN12J+y8VVtYmjFDCOv1GwsZ2KK72AJujCHBZqaIYOLDlN/C5tCG+VSW/ aGSgC0tZn0fjtlKfvjTcaeKFBWsBw6r6V2x4ihViNKX9qyHH3/P7N0uDeo9ZdvEjCMJJKt xDxypPe8PnSCmQBeRe7cn0IMmY/1iGdkROTl5dtdoJUdoA+4lGy1uKTGNlJvHA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZLVt82hRPzBQL; Sun, 23 Mar 2025 22:17:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 52NMHa01003332; Sun, 23 Mar 2025 22:17:36 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 52NMHaYA003329; Sun, 23 Mar 2025 22:17:36 GMT (envelope-from git) Date: Sun, 23 Mar 2025 22:17:36 GMT Message-Id: <202503232217.52NMHaYA003329@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Ed Maste Subject: git: b885643b63e4 - main - boot: Always use ELF Tool Chain elfcopy for EFI builds List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: emaste X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: b885643b63e4df51cc6c74c4ddd4d0b640075678 Auto-Submitted: auto-generated The branch main has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=b885643b63e4df51cc6c74c4ddd4d0b640075678 commit b885643b63e4df51cc6c74c4ddd4d0b640075678 Author: Ed Maste AuthorDate: 2025-03-14 16:42:15 +0000 Commit: Ed Maste CommitDate: 2025-03-23 22:17:03 +0000 boot: Always use ELF Tool Chain elfcopy for EFI builds We now use llvm-objcopy by default (as of commit 1cae7121c667), but it does not support efi-app-x86_64 and similar ouptut formats (for more detail see LLVM issue 108609[1]). Go back to installing ELF Tool Chain's version of objcopy as elfcopy (the standard upstream name) and use it for EFI builds. [1] https://github.com/llvm/llvm-project/issues/108609). PR: 280771 Reviewed by: andrew Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49362 --- ObsoleteFiles.inc | 3 --- stand/efi/Makefile.inc | 1 + stand/efi/boot1/Makefile | 2 +- stand/efi/loader/Makefile | 2 +- tools/build/mk/OptionalObsoleteFiles.inc | 2 ++ usr.bin/Makefile | 3 ++- usr.bin/objcopy/Makefile | 14 +++++++++++--- 7 files changed, 18 insertions(+), 9 deletions(-) diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc index f56ad74294f9..850133db608a 100644 --- a/ObsoleteFiles.inc +++ b/ObsoleteFiles.inc @@ -13587,9 +13587,6 @@ OLD_FILES+=usr/share/man/man1/rlog.1.gz OLD_FILES+=usr/share/man/man5/rcsfile.5.gz # 20161010: remove link to removed m_getclr(9) macro OLD_FILES+=usr/share/man/man9/m_getclr.9.gz -# 20161003: MK_ELFCOPY_AS_OBJCOPY option retired -OLD_FILES+=usr/bin/elfcopy -OLD_FILES+=usr/share/man/man1/elfcopy.1.gz # 20160906: libkqueue tests moved to /usr/tests/sys/kqueue/libkqueue OLD_FILES+=usr/tests/sys/kqueue/kqtest OLD_FILES+=usr/tests/sys/kqueue/kqueue_test diff --git a/stand/efi/Makefile.inc b/stand/efi/Makefile.inc index b5bd341d1b78..f91ac9102ca8 100644 --- a/stand/efi/Makefile.inc +++ b/stand/efi/Makefile.inc @@ -26,6 +26,7 @@ EFI_TARGET= efi-app-x86_64 .else EFI_TARGET= binary .endif +EFI_OBJCOPY?= elfcopy # Arbitrarily set the PE/COFF header timestamps to 1 Jan 2024 00:00:00 # for build reproducibility. diff --git a/stand/efi/boot1/Makefile b/stand/efi/boot1/Makefile index 8641ecf457ab..e2966e813504 100644 --- a/stand/efi/boot1/Makefile +++ b/stand/efi/boot1/Makefile @@ -96,7 +96,7 @@ ${BOOT1}.efi: ${PROG} exit 1; \ fi SOURCE_DATE_EPOCH=${SOURCE_DATE_EPOCH} \ - ${OBJCOPY} -j .peheader -j .text -j .sdata -j .data \ + ${EFI_OBJCOPY} -j .peheader -j .text -j .sdata -j .data \ -j .dynamic -j .dynsym -j .rel.dyn \ -j .rela.dyn -j .reloc -j .eh_frame \ --output-target=${EFI_TARGET} ${.ALLSRC} ${.TARGET} diff --git a/stand/efi/loader/Makefile b/stand/efi/loader/Makefile index e9d29e5a219e..2dae035f04a8 100644 --- a/stand/efi/loader/Makefile +++ b/stand/efi/loader/Makefile @@ -128,7 +128,7 @@ ${LOADER}.efi: ${PROG} exit 1; \ fi SOURCE_DATE_EPOCH=${SOURCE_DATE_EPOCH} \ - ${OBJCOPY} -j .peheader -j .text -j .sdata -j .data \ + ${EFI_OBJCOPY} -j .peheader -j .text -j .sdata -j .data \ -j .dynamic -j .dynsym -j .rel.dyn \ -j .rela.dyn -j .reloc -j .eh_frame -j set_Xcommand_set \ -j set_X${LOADER_INTERP}_compile_set \ diff --git a/tools/build/mk/OptionalObsoleteFiles.inc b/tools/build/mk/OptionalObsoleteFiles.inc index 864057692566..b25f551d069b 100644 --- a/tools/build/mk/OptionalObsoleteFiles.inc +++ b/tools/build/mk/OptionalObsoleteFiles.inc @@ -8125,6 +8125,7 @@ OLD_FILES+=usr/bin/cc OLD_FILES+=usr/bin/c88 OLD_FILES+=usr/bin/c++ OLD_FILES+=usr/bin/c++filt +OLD_FILES+=usr/bin/elfcopy OLD_FILES+=usr/bin/ld OLD_FILES+=usr/bin/ld.bfd OLD_FILES+=usr/bin/nm @@ -8135,6 +8136,7 @@ OLD_FILES+=usr/bin/strip OLD_FILES+=usr/bin/yacc OLD_FILES+=usr/share/man/man1/addr2line.1.gz OLD_FILES+=usr/share/man/man1/c++filt.1.gz +OLD_FILES+=usr/share/man/man1/elfcopy.1.gz OLD_FILES+=usr/share/man/man1/nm.1.gz OLD_FILES+=usr/share/man/man1/readelf.1.gz OLD_FILES+=usr/share/man/man1/size.1.gz diff --git a/usr.bin/Makefile b/usr.bin/Makefile index 15fcdeb479f7..b9e4d6c1153a 100644 --- a/usr.bin/Makefile +++ b/usr.bin/Makefile @@ -247,7 +247,6 @@ SUBDIR.${MK_TFTP}+= tftp SUBDIR.${MK_TOOLCHAIN}+= addr2line SUBDIR.${MK_TOOLCHAIN}+= ar SUBDIR.${MK_TOOLCHAIN}+= nm -SUBDIR.${MK_TOOLCHAIN}+= objcopy SUBDIR.${MK_TOOLCHAIN}+= readelf SUBDIR.${MK_TOOLCHAIN}+= size .endif @@ -270,6 +269,8 @@ SUBDIR.${MK_TOOLCHAIN}+= indent SUBDIR.${MK_TOOLCHAIN}+= lex SUBDIR.${MK_TOOLCHAIN}+= lorder SUBDIR.${MK_TOOLCHAIN}+= mkstr +# ELF Tool Chain elfcopy required for EFI objects (PR280771) +SUBDIR.${MK_TOOLCHAIN}+= objcopy SUBDIR.${MK_TOOLCHAIN}+= rpcgen SUBDIR.${MK_TOOLCHAIN}+= unifdef SUBDIR.${MK_TOOLCHAIN}+= xstr diff --git a/usr.bin/objcopy/Makefile b/usr.bin/objcopy/Makefile index 101c84cc5206..2f3386d95ebe 100644 --- a/usr.bin/objcopy/Makefile +++ b/usr.bin/objcopy/Makefile @@ -7,12 +7,22 @@ ELFCOPYDIR= ${ELFTCDIR}/elfcopy .PATH: ${ELFCOPYDIR} -PROG= objcopy +PROG= elfcopy +MAN= elfcopy.1 + +.if ${MK_LLVM_BINUTILS} == "no" + +LINKS+= ${BINDIR}/${PROG} ${BINDIR}/objcopy +LINKS+= ${BINDIR}/${PROG} ${BINDIR}/strip +MAN+= objcopy.1 strip.1 + objcopy.1: elfcopy.1 sed -e 's/\.Dt ELFCOPY 1/.Dt OBJCOPY 1/' \ -e '/\.Nm elfcopy ,/d' < ${.ALLSRC} > ${.TARGET} CLEANFILES+= objcopy.1 +.endif + SRCS= archive.c ascii.c binary.c main.c pe.c sections.c segments.c symbols.c WARNS?= 5 @@ -22,9 +32,7 @@ LIBADD= archive elftc elf pe CFLAGS+=-I${ELFTCDIR}/libelftc -I${ELFTCDIR}/libpe -I${ELFTCDIR}/common CFLAGS+=-DWITH_PE=1 -MAN= ${PROG}.1 strip.1 -LINKS= ${BINDIR}/${PROG} ${BINDIR}/strip # This same hack is in lib/libelf/Makefile and usr.bin/readelf/Makefile # We need to link against the correct version of these files. One