Makefile.inc1: synthesize PKG_ABI from newvers.sh variables

Previously we inspected ${WSTAGEDIR}/usr/bin/uname to determine PKG_ABI,
but the file will not exist in some cases - for example, if building
only kernel packages.  We can instead synthesize the PKG_ABI from
information already provided by newvers.sh.

Reviewed by:	kevans, manu (both earlier rev)
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D34249
This commit is contained in:
Ed Maste 2022-02-10 15:42:05 -05:00
parent 1d65a9b47e
commit ea9a92d210

View File

@ -522,7 +522,7 @@ OSRELDATE= 0
.endif .endif
# Set VERSION for CTFMERGE to use via the default CTFFLAGS=-L VERSION. # Set VERSION for CTFMERGE to use via the default CTFFLAGS=-L VERSION.
.for _V in BRANCH REVISION .for _V in BRANCH REVISION TYPE
.if !defined(_${_V}) .if !defined(_${_V})
_${_V}!= eval $$(awk '/^${_V}=/{print}' ${SRCTOP}/sys/conf/newvers.sh); echo $$${_V} _${_V}!= eval $$(awk '/^${_V}=/{print}' ${SRCTOP}/sys/conf/newvers.sh); echo $$${_V}
.export _${_V} .export _${_V}
@ -1882,12 +1882,10 @@ _pkgbootstrap: .PHONY
.endif .endif
# #
# Allow overriding PKG_ABI, this allow to create kernel packages without having # Determine PKG_ABI from newvers.sh if not already set.
# to build world first.
# If it's not provided resolv it from the uname binary in the world stage.
# #
.if !defined(PKG_ABI) && (make(create-world-packages-jobs) || make(create-kernel-packages*) || make(real-update-packages) || make(sign-packages)) .if !defined(PKG_ABI) && (make(create-world-packages-jobs) || make(create-kernel-packages*) || make(real-update-packages) || make(sign-packages))
PKG_ABI!=${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/usr/bin/uname config ABI PKG_ABI=${_TYPE}:${_REVISION:S/\..*$//}:${TARGET_ARCH}
.endif .endif
PKG_BIN_VERSION!=${PKG_CMD} --version </dev/null 2>/dev/null |\ PKG_BIN_VERSION!=${PKG_CMD} --version </dev/null 2>/dev/null |\
awk -F. '/^[0-9.]+$$/ {print $$1 * 10000 + $$2 * 100 + $$3}' awk -F. '/^[0-9.]+$$/ {print $$1 * 10000 + $$2 * 100 + $$3}'