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
This commit is contained in:
Marcin Wojtas 2021-05-21 11:27:27 +02:00
parent 7c8d38112d
commit c6081dea59
2 changed files with 7 additions and 3 deletions

View File

@ -199,7 +199,7 @@ MK_SYSTEM_LINKER= no
.if defined(CROSS_TOOLCHAIN_PREFIX) .if defined(CROSS_TOOLCHAIN_PREFIX)
CROSS_BINUTILS_PREFIX?=${CROSS_TOOLCHAIN_PREFIX} CROSS_BINUTILS_PREFIX?=${CROSS_TOOLCHAIN_PREFIX}
.endif .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} .for BINUTIL in ${XBINUTILS}
.if defined(CROSS_BINUTILS_PREFIX) && \ .if defined(CROSS_BINUTILS_PREFIX) && \
exists(${CROSS_BINUTILS_PREFIX}/${${BINUTIL}}) exists(${CROSS_BINUTILS_PREFIX}/${${BINUTIL}})
@ -794,8 +794,8 @@ HMAKE+= PATH=${TMPPATH} METALOG=${METALOG} -DNO_ROOT
CROSSENV+= CC="${XCC} ${XCFLAGS}" CXX="${XCXX} ${XCXXFLAGS} ${XCFLAGS}" \ CROSSENV+= CC="${XCC} ${XCFLAGS}" CXX="${XCXX} ${XCXXFLAGS} ${XCFLAGS}" \
CPP="${XCPP} ${XCFLAGS}" \ CPP="${XCPP} ${XCFLAGS}" \
AS="${XAS}" AR="${XAR}" LD="${XLD}" LLVM_LINK="${XLLVM_LINK}" \ AS="${XAS}" AR="${XAR}" ELFCTL="${XELFCTL}" LD="${XLD}" \
NM=${XNM} OBJCOPY="${XOBJCOPY}" \ LLVM_LINK="${XLLVM_LINK}" NM=${XNM} OBJCOPY="${XOBJCOPY}" \
RANLIB=${XRANLIB} STRINGS=${XSTRINGS} \ RANLIB=${XRANLIB} STRINGS=${XSTRINGS} \
SIZE="${XSIZE}" STRIPBIN="${XSTRIPBIN}" SIZE="${XSIZE}" STRIPBIN="${XSTRIPBIN}"
@ -2600,6 +2600,7 @@ _dtrace_tools= cddl/lib/libctf cddl/lib/libspl cddl/usr.bin/ctfconvert \
.if ${MK_ELFTOOLCHAIN_BOOTSTRAP} != "no" .if ${MK_ELFTOOLCHAIN_BOOTSTRAP} != "no"
_elftctools= lib/libelftc \ _elftctools= lib/libelftc \
lib/libpe \ lib/libpe \
usr.bin/elfctl \
usr.bin/objcopy \ usr.bin/objcopy \
usr.bin/nm \ usr.bin/nm \
usr.bin/size \ usr.bin/size \
@ -2613,6 +2614,7 @@ _elftctools+= usr.bin/addr2line
# the target (for at least crunchide). # the target (for at least crunchide).
_elftctools= lib/libelftc \ _elftctools= lib/libelftc \
lib/libpe \ lib/libpe \
usr.bin/elfctl \
usr.bin/objcopy usr.bin/objcopy
.endif .endif

View File

@ -210,6 +210,8 @@ ECHODIR ?= true
.endif .endif
.endif .endif
ELFCTL ?= elfctl
.if ${.MAKEFLAGS:M-N} .if ${.MAKEFLAGS:M-N}
# bmake -N is supposed to skip executing anything but it does not skip # bmake -N is supposed to skip executing anything but it does not skip
# exeucting '+' commands. The '+' feature is used where .MAKE # exeucting '+' commands. The '+' feature is used where .MAKE