csh: Remove gethost dependency on tc.const.h

gethost is a build tool built in stage 2.3, but it had a dependency on
tc.const.h, which requires target headers (that are not installed until
stage 4.1).  The build falls back to the host's headers if the target
headers don't yet exist, which may result in a build failure if the
host's headers don't match the target.

As gethost.c doesn't actually require the definitions in tc.const.h, add
a hack to skip the include of tc.const.h and remove the dependency.

PR:		283273
Reviewed by:	imp
Sponsored by:	The FreeBSD Foundation
Fixes: e754e5f361 ("Upgrade to 6.10")
Differential Revision: https://reviews.freebsd.org/D48880

(cherry picked from commit ed8b456f82ed822652f2abb24d65ab73ac3dbb0a)
This commit is contained in:
Ed Maste 2025-02-18 12:19:16 -05:00
parent 7775f4c5c7
commit 65835073dc

View file

@ -123,9 +123,14 @@ build-tools: gethost
tc.defs.c: gethost
DEPENDOBJS+= gethost
gethost: gethost.c sh.err.h tc.const.h sh.h ${BUILD_TOOLS_META}
gethost: gethost.c sh.err.h sh.h ${BUILD_TOOLS_META}
@rm -f ${.TARGET}
# Define _h_tc_const so that tc.h will skip including tc.const.h.
# gethost.c does not actually require any of the definitions in there,
# and building tc.const.h requires target headers which are not
# available when we need to build gethost.
${CC:N${CCACHE_BIN}} -o gethost ${LDFLAGS} ${CFLAGS:C/-DHAVE_ICONV//} \
-D_h_tc_const \
${TCSHDIR}/gethost.c
.endif