Index | Thread | Search

From:
"Theo de Raadt" <deraadt@openbsd.org>
Subject:
Re: [PATCH] Allow building libc without generating tags
To:
John Ericson <git@JohnEricson.me>
Cc:
tech@openbsd.org
Date:
Wed, 15 May 2024 00:29:16 -0600

Download raw body.

Thread
Why?

I don't see any point to this choice.  It is a mandatory file produced by
libc build and install.

John Ericson <git@JohnEricson.me> wrote:

> When bootstrapping from scratch, it is nice to avoid dependencies (like
> `ctags`) that are not strictly needed.
> 
> This makefile change introduces a new `LIBC_TAGS` variable, defaulted to
> `y` (i.e. "yes": do build tags, just like today), to control whether
> `make all` / `make install` should build/install (respectively) the tags.
> 
> The underlying rules for tags can still be run regardless of the choice
> of variable.
> ---
>  lib/libc/Makefile | 10 +++++++++-
>  1 file changed, 9 insertions(+), 1 deletion(-)
> 
> diff --git a/lib/libc/Makefile b/lib/libc/Makefile
> index 4bb4b67fcbb..9cfae207130 100644
> --- a/lib/libc/Makefile
> +++ b/lib/libc/Makefile
> @@ -26,7 +26,14 @@ SYMBOL_LISTS=	${LIBCSRCDIR}/Symbols.list \
>  LIBCSRCDIR=${.CURDIR}
>  .include "${LIBCSRCDIR}/Makefile.inc"
>  
> +all: ${SRCS}
> +
> +LIBC_TAGS ?= yes
> +.if ${LIBC_TAGS} == "yes"
>  all: tags
> +beforeinstall: install_tags
> +.endif
> +
>  tags: ${SRCS}
>  	ctags -w ${.ALLSRC:M*.c}
>  	egrep "^SYSENTRY(.*)|^ENTRY(.*)|^FUNC(.*)|^SYSCALL(.*)" \
> @@ -34,7 +41,8 @@ tags: ${SRCS}
>  	    sed "s;\([^:]*\):\([^(]*\)(\([^, )]*\)\(.*\);\3	\1	/^\2(\3\4$$/;" \
>  	    >> tags; sort -o tags tags
>  
> -beforeinstall:
> +.PHONY: install_tags
> +install_tags:
>  	${INSTALL} ${INSTALL_COPY} -o ${BINOWN} -g ${BINGRP} -m 444 tags \
>  		${DESTDIR}/var/db/lib${LIB}.tags
>  
> -- 
> 2.42.0
>