From 65835073dc3d126fe446d732cd3ce0d93509c92c Mon Sep 17 00:00:00 2001 From: Ed Maste Date: Tue, 18 Feb 2025 12:19:16 -0500 Subject: [PATCH] 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: e754e5f36195 ("Upgrade to 6.10") Differential Revision: https://reviews.freebsd.org/D48880 (cherry picked from commit ed8b456f82ed822652f2abb24d65ab73ac3dbb0a) --- bin/csh/Makefile | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/bin/csh/Makefile b/bin/csh/Makefile index 94e1ba763d6..7e20c187dee 100644 --- a/bin/csh/Makefile +++ b/bin/csh/Makefile @@ -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