Re: git: 557cc0f350e7 - main - bsd.man.mk: Handle MANSRC.{TARGET} for MK_MANCOMPRESS=no and empty MANBUILDCAT

From: Matteo Riondato <matteo_at_FreeBSD.org>
Date: Thu, 28 Aug 2025 12:10:39 UTC

> On Aug 27, 2025, at 4:12 PM, John Baldwin <jhb@freebsd.org> wrote:
> 
> The branch main has been updated by jhb:
> 
> URL: https://cgit.FreeBSD.org/src/commit/?id=557cc0f350e758a223dffe8bca359de9fc2642b2
> 
> commit 557cc0f350e758a223dffe8bca359de9fc2642b2
> Author:     John Baldwin <jhb@FreeBSD.org>
> AuthorDate: 2025-08-27 20:11:54 +0000
> Commit:     John Baldwin <jhb@FreeBSD.org>
> CommitDate: 2025-08-27 20:11:54 +0000
> 
>    bsd.man.mk: Handle MANSRC.{TARGET} for MK_MANCOMPRESS=no and empty MANBUILDCAT
> 
>    Reviewed by:    kevans
>    Fixes:          65f60d715fd9 ("bsd.man.mk: Add a MANSRC.{TARGET} variable")
>    Sponsored by:   Chelsio Communications
>    Differential Revision:  https://reviews.freebsd.org/D52181
> ---

This did not fix the breakage of buildworld I reported. I had to disable “WITHOUT_MANCOMPRESS=y” from src.conf to make buildworld complete.

Once I’ve done a successful buildworld with “WITHOUT_MANCOMPRESS=y” disabled, I tried to buildworld with “WITHOUT_MANCOMPRESS=y” enabled, and it failed again, at:

make[3]: don't know how to make apmd.8. Stop

(detailed message below)

I have “WITHOUT_APM=y” in src.conf, so I don’t know why it is trying to build ampd.8.

I tried without specifying “-j50”, with “WITHOUT_MANCOMPRESS=y” enabled, and it stopped at:

make[4]: don't know how to make vi.1. Stop

(detailed message below)

I don’t have anything in src.conf that disables building vi, as far as I can tell, but I do have “WITHOUT_EE=y” in src.conf, so it may be related?

I should also mention that I have WITH_META_MODE=y in src-env.conf, and filemon(4) is loaded.

What I am wondering about is whether the patch fails to take into account that some stuff may be disabled from the build?

I’m attaching my full src.conf and src-env.conf below.

## Detailed error messages:

First (make -j50 buildworld, “WITHOUT_MANCOMPRESS=y” in src.conf):

make[3]: don't know how to make apmd.8. Stop
make[3]: stopped making "all" in /data/src/usr.sbin
.ERROR_TARGET='apmd.8'
.ERROR_META_FILE=''
.MAKE.LEVEL='3'
MAKEFILE=''
.MAKE.MODE='meta missing-filemon=yes missing-meta=yes silent=yes verbose'
_ERROR_CMD='.PHONY'
.CURDIR='/data/src/usr.sbin'
.MAKE='make'
.OBJDIR='/data/objdir/data/src/amd64.amd64/usr.sbin'
.TARGETS='all'
CPUTYPE='skylake-avx512'
DESTDIR='/data/objdir/data/src/amd64.amd64/tmp'
LD_LIBRARY_PATH=''
MACHINE='amd64'
MACHINE_ARCH='amd64'
MACHINE_CPUARCH='amd64'
MAKEOBJDIRPREFIX=''
MAKESYSPATH='/data/src/share/mk'
MAKE_VERSION='20250804'
PATH='/data/objdir/data/src/amd64.amd64/tmp/bin:/data/objdir/data/src/amd64.amd64/tmp/usr/sbin:/data/objdir/data/src/amd64.amd64/tmp/usr/bin:/data/objdir/data/src/amd64.amd64/tmp/legacy/usr/sbin:/data/objdir/data/src/amd64.amd64/tmp/legacy/usr/bin:/data/objdir/data/src/amd64.amd64/tmp/legacy/bin:/data/objdir/data/src/amd64.amd64/tmp/legacy/usr/libexec:/sbin:/bin:/usr/sbin:/usr/bin'
SRCTOP='/data/src'
OBJTOP='/data/objdir/data/src/amd64.amd64'
.MAKE.MAKEFILES='/data/src/share/mk/sys.mk /data/src/share/mk/local.sys.env.mk /data/src/share/mk/src.sys.env.mk /etc/src-env.conf /data/src/share/mk/bsd.mkopt.mk /data/src/share/mk/src.sys.obj.mk /data/src/share/mk/local.sys.machine.mk /data/src/share/mk/meta.sys.mk /data/src/share/mk/local.meta.sys.env.mk /data/src/share/mk/auto.obj.mk /data/src/share/mk/bsd.suffixes.mk /etc/make.conf /data/src/share/mk/local.sys.mk /data/src/share/mk/src.sys.mk /etc/src.conf /data/src/usr.sbin/Makefile /data/src/share/mk/src.opts.mk /data/src/share/mk/bsd.own.mk /data/src/share/mk/bsd.opts.mk /data/src/share/mk/bsd.cpu.mk /data/src/share/mk/bsd.compiler.mk /data/src/share/mk/bsd.endian.mk /data/src/share/mk/bsd.linker.mk /data/src/share/mk/bsd.arch.inc.mk /data/src/usr.sbin/Makefile.amd64 /data/src/share/mk/bsd.prog.mk /data/src/share/mk/bsd.init.mk /data/src/share/mk/local.init.mk /data/src/share/mk/src.init.mk /data/src/share/mk/bsd.suffixes-extra.mk /data/src/share/mk/bsd.sanitizer.mk /data/src/share/mk/bsd.libnames.mk /data/src/share/mk/src.libnames.mk /data/src/share/mk/bsd.nls.mk /data/src/share/mk/bsd.confs.mk /data/src/share/mk/bsd.files.mk /data/src/share/mk/bsd.dirs.mk /data/src/share/mk/bsd.incs.mk /data/src/share/mk/bsd.links.mk /data/src/share/mk/bsd.man.mk /data/src/share/mk/bsd.debug.mk /data/src/share/mk/bsd.dep.mk /data/src/share/mk/bsd.clang-analyze.mk /data/src/share/mk/bsd.obj.mk /data/src/share/mk/bsd.subdir.mk /data/src/share/mk/bsd.sys.mk /dev/null'
.PATH='. /data/src/usr.sbin'

Second (make buildworld, “WITHOUT_MANCOMPRESS=y” in src.conf)

make[4]: don't know how to make vi.1. Stop

make[4]: stopped making "all" in /data/src/usr.bin/vi
.ERROR_TARGET=''
.ERROR_META_FILE=''
.MAKE.LEVEL='4'
MAKEFILE=''
.MAKE.MODE='meta missing-filemon=yes missing-meta=yes silent=yes verbose'
_ERROR_CMD='.PHONY'
.CURDIR='/data/src/usr.bin/vi'
.MAKE='make'
.OBJDIR='/data/objdir/data/src/amd64.amd64/usr.bin/vi'
.TARGETS='all'
CPUTYPE='skylake-avx512'
DESTDIR='/data/objdir/data/src/amd64.amd64/tmp'
LD_LIBRARY_PATH=''
MACHINE='amd64'
MACHINE_ARCH='amd64'
MACHINE_CPUARCH='amd64'
MAKEOBJDIRPREFIX=''
MAKESYSPATH='/data/src/share/mk'
MAKE_VERSION='20250804'
PATH='/data/objdir/data/src/amd64.amd64/tmp/bin:/data/objdir/data/src/amd64.amd64/tmp/usr/sbin:/data/objdir/data/src/amd64.amd64/tmp/usr/bin:/data/objdir/data/src/amd64.amd64/tmp/legacy/usr/sbin:/data/objdir/data/src/amd64.amd64/tmp/legacy/usr/bin:/data/objdir/data/src/amd64.amd64/tmp/legacy/bin:/data/objdir/data/src/amd64.amd64/tmp/legacy/usr/libexec:/sbin:/bin:/usr/sbin:/usr/bin'
SRCTOP='/data/src'
OBJTOP='/data/objdir/data/src/amd64.amd64'
.MAKE.MAKEFILES='/data/src/share/mk/sys.mk /data/src/share/mk/local.sys.env.mk /data/src/share/mk/src.sys.env.mk /etc/src-env.conf /data/src/share/mk/bsd.mkopt.mk /data/src/share/mk/src.sys.obj.mk /data/src/share/mk/local.sys.machine.mk /data/src/share/mk/meta.sys.mk /data/src/share/mk/local.meta.sys.env.mk /data/src/share/mk/auto.obj.mk /data/src/share/mk/bsd.suffixes.mk /etc/make.conf /data/src/share/mk/local.sys.mk /data/src/share/mk/src.sys.mk /etc/src.conf /data/src/usr.bin/vi/Makefile /data/src/share/mk/src.opts.mk /data/src/share/mk/bsd.own.mk /data/src/share/mk/bsd.opts.mk /data/src/share/mk/bsd.cpu.mk /data/src/share/mk/bsd.compiler.mk /data/src/share/mk/bsd.endian.mk /data/src/share/mk/bsd.linker.mk /data/src/share/mk/bsd.prog.mk /data/src/share/mk/bsd.init.mk /data/src/share/mk/local.init.mk /data/src/share/mk/src.init.mk /data/src/usr.bin/vi/../Makefile.inc /data/src/share/mk/bsd.suffixes-extra.mk /data/src/share/mk/bsd.sanitizer.mk /data/src/share/mk/bsd.libnames.mk /data/src/share/mk/src.libnames.mk /data/src/share/mk/bsd.nls.mk /data/src/share/mk/bsd.confs.mk /data/src/share/mk/bsd.files.mk /data/src/share/mk/bsd.dirs.mk /data/src/share/mk/bsd.incs.mk /data/src/share/mk/bsd.links.mk /data/src/share/mk/bsd.man.mk /data/src/share/mk/bsd.debug.mk /data/src/share/mk/bsd.dep.mk /data/src/share/mk/bsd.clang-analyze.mk /data/src/share/mk/bsd.obj.mk /data/src/share/mk/bsd.subdir.mk /data/src/share/mk/bsd.sys.mk /dev/null'
.PATH='. /data/src/usr.bin/vi /data/src/contrib/nvi/common /data/src/contrib/nvi/ex /data/src/contrib/nvi/cl /data/src/contrib/nvi/vi /data/src/contrib/nvi/regex'
*** Error code 2

### src.conf

WITHOUT_APM=y
WITHOUT_ASSERT_DEBUG=y
WITHOUT_ATM=y
WITHOUT_AUDIT=y
WITHOUT_AUTHPF=y
WITHOUT_BHYVE=y
WITH_BIND_NOW=y
WITHOUT_BLUETOOTH=y
WITHOUT_BOOTPD=y
WITH_CCACHE_BUILD=y
CCACHE_DIR=/data/ccache
WITHOUT_CCD=y
WITHOUT_CUSE=y
WITHOUT_DEBUG_FILES=y
WITH_DETECT_TZ_CHANGES=y
WITHOUT_DICT=y
WITHOUT_DOCCOMPRESS=y
WITHOUT_EE=y
WITHOUT_FINGER=y
WITHOUT_FLOPPY=y
WITHOUT_FREEBSD_UPDATE=y
WITHOUT_GNU_DIFF=y
#WITHOUT_GPIO=y
WITHOUT_HAST=y
WITHOUT_HESIOD=y
WITHOUT_HTML=y
WITHOUT_INETD=y
WITHOUT_IPFILTER=y
WITHOUT_IPFW=y
WITHOUT_ISCSI=y
WITHOUT_LIB32=y
WITHOUT_LLVM_ASSERTIONS=y
WITHOUT_LLVM_TARGET_ALL=y
WITHOUT_LOADER_BIOS_TEXTONLY=y
WITHOUT_LPR=y
WITH_MALLOC_PRODUCTION=y
WITHOUT_MANCOMPRESS=y
WITHOUT_MLX5TOOL=y
WITHOUT_NETGRAPH=y
WITHOUT_NETGRAPH_SUPPORT=y
WITHOUT_NIS=y
WITHOUT_NUAGEINIT=y
WITHOUT_OFED=y
WITHOUT_PORTSNAP=y
WITHOUT_PPP=y
WITHOUT_PROFILE=y
WITHOUT_PTHREADS_ASSERTION=y
WITHOUT_QUOTAS=y
WITHOUT_RADIUS_SUPPORT=y
WITHOUT_RBOOTD=y
WITHOUT_ROUTED=y
WITHOUT_SENDMAIL=y
WITHOUT_SYSCONS=y
WITH_SORT_THREADS=y
WITHOUT_TALK=y
WITHOUT_TCP_WRAPPERS=y
WITHOUT_TESTS=y
WITHOUT_WIRELESS=y
WITHOUT_WPA_SUPPLICANT_EAPOL=y
WITH_ZEROREGS=y

## src-env.conf

WITH_META_MODE=y
MAKEOBJDIRPREFIX?=/data/objdir

Thanks,
Matteo