From 4d692868a6730ebf72a1d1a619af89af6fc8d763 Mon Sep 17 00:00:00 2001 From: Baptiste Daroussin Date: Wed, 6 Nov 2024 12:16:09 +0100 Subject: [PATCH] compile_et: reduce the dependency chain for bootstrap tools. Fix the build on macOS The bootstrap tools are statically linked, so our build system will provide the full dependency chain which pulls in libcrypt. since recently libcrypt.a is a linker script not supported by macOS ar(1), given that compile_et does not use at all the function from libroken which brings the dependency on libcrypt, bypass LIBADD dependency chain by using the old LDADD/DPADD mechanism, like it is done for other kerberos related bootstrap tools. --- usr.bin/compile_et/Makefile | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/usr.bin/compile_et/Makefile b/usr.bin/compile_et/Makefile index 6305bfe3ddfd..621ba3dd101d 100644 --- a/usr.bin/compile_et/Makefile +++ b/usr.bin/compile_et/Makefile @@ -4,7 +4,18 @@ PACKAGE= kerberos PROG= compile_et SRCS= compile_et.c parse.y lex.l -LIBADD= roken vers +.if defined(BOOTSTRAPPING) +# compiler_et does not need the full libroken but just a bunch of the file +# in there, the buildsystem we have will trigger the full dependency chain +# when linking statically including libcrypt, which is a ldscript, not +# supported by macOS ar(1). +LIBROKEN_A= ${.OBJDIR:H:H}/kerberos5/lib/libroken/libroken.a +LDADD= ${LIBROKEN_A} +DPADD= ${LIBROKEN_A} +.else +LIBADD= roken +.endif +LIBADD+= vers CFLAGS+=-I. -I${SRCTOP}/contrib/com_err WARNS?= 0