git: a515ae8b638d - stable/13 - Add elfctl to toolchain.

From: Ed Maste <emaste_at_FreeBSD.org>
Date: Mon, 06 Dec 2021 22:08:54 UTC
The branch stable/13 has been updated by emaste:

URL: https://cgit.FreeBSD.org/src/commit/?id=a515ae8b638deadd4c7992c73d688fc58f23d7e0

commit a515ae8b638deadd4c7992c73d688fc58f23d7e0
Author:     Marcin Wojtas <mw@FreeBSD.org>
AuthorDate: 2021-05-21 09:27:27 +0000
Commit:     Ed Maste <emaste@FreeBSD.org>
CommitDate: 2021-12-06 22:08:16 +0000

    Add elfctl to toolchain.
    
    Add elfctl program to toolchain to allow modifying ELF feature flags
    during system build.
    
    Submitted by: Dawid Gorecki <dgr@semihalf.com>
    Obtained from: Semihalf
    Sponsored by: Stormshield
    Differential Revision: https://reviews.freebsd.org/D29552
    
    (cherry picked from commit c6081dea597a475e4bbcc8588ece03ae78b58978)
---
 Makefile.inc1   | 8 +++++---
 share/mk/sys.mk | 2 ++
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/Makefile.inc1 b/Makefile.inc1
index 6829c3c962fd..c18c92d3cd38 100644
--- a/Makefile.inc1
+++ b/Makefile.inc1
@@ -199,7 +199,7 @@ MK_SYSTEM_LINKER=	no
 .if defined(CROSS_TOOLCHAIN_PREFIX)
 CROSS_BINUTILS_PREFIX?=${CROSS_TOOLCHAIN_PREFIX}
 .endif
-XBINUTILS=	AS AR LD NM OBJCOPY RANLIB SIZE STRINGS STRIPBIN
+XBINUTILS=	AS AR ELFCTL LD NM OBJCOPY RANLIB SIZE STRINGS STRIPBIN
 .for BINUTIL in ${XBINUTILS}
 .if defined(CROSS_BINUTILS_PREFIX) && \
     exists(${CROSS_BINUTILS_PREFIX}/${${BINUTIL}})
@@ -808,8 +808,8 @@ HMAKE+=		PATH=${TMPPATH} METALOG=${METALOG} -DNO_ROOT
 
 CROSSENV+=	CC="${XCC} ${XCFLAGS}" CXX="${XCXX} ${XCXXFLAGS} ${XCFLAGS}" \
 		CPP="${XCPP} ${XCFLAGS}" \
-		AS="${XAS}" AR="${XAR}" LD="${XLD}" LLVM_LINK="${XLLVM_LINK}" \
-		NM=${XNM} OBJCOPY="${XOBJCOPY}" \
+		AS="${XAS}" AR="${XAR}" ELFCTL="${XELFCTL}" LD="${XLD}" \
+		LLVM_LINK="${XLLVM_LINK}" NM=${XNM} OBJCOPY="${XOBJCOPY}" \
 		RANLIB=${XRANLIB} STRINGS=${XSTRINGS} \
 		SIZE="${XSIZE}" STRIPBIN="${XSTRIPBIN}"
 
@@ -2617,6 +2617,7 @@ _dtrace_tools= cddl/lib/libctf cddl/lib/libspl cddl/usr.bin/ctfconvert \
 .if ${MK_ELFTOOLCHAIN_BOOTSTRAP} != "no"
 _elftctools=	lib/libelftc \
 		lib/libpe \
+		usr.bin/elfctl \
 		usr.bin/objcopy \
 		usr.bin/nm \
 		usr.bin/size \
@@ -2630,6 +2631,7 @@ _elftctools+=	usr.bin/addr2line
 # the target (for at least crunchide).
 _elftctools=	lib/libelftc \
 		lib/libpe \
+		usr.bin/elfctl \
 		usr.bin/objcopy
 .endif
 
diff --git a/share/mk/sys.mk b/share/mk/sys.mk
index 8f456b28593a..89ac2c549656 100644
--- a/share/mk/sys.mk
+++ b/share/mk/sys.mk
@@ -210,6 +210,8 @@ ECHODIR		?=	true
 .endif
 .endif
 
+ELFCTL		?=	elfctl
+
 .if ${.MAKEFLAGS:M-N}
 # bmake -N is supposed to skip executing anything but it does not skip
 # exeucting '+' commands.  The '+' feature is used where .MAKE