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
This commit is contained in:
Ed Maste 2025-02-06 20:23:47 -05:00
parent 4c2795340e
commit ed8b456f82

View file

@ -121,9 +121,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.
${HOST_CC:N${CCACHE_BIN}} -o gethost ${LDFLAGS} ${CFLAGS:C/-DHAVE_ICONV//} \
-D_h_tc_const \
${TCSHDIR}/gethost.c
.endif