Re: CURRENT: exec_machdep.c:80:2: error: KDB must be enabled in order for DDB

From: Gary Jennejohn <garyj_at_gmx.de>
Date: Thu, 30 May 2024 07:03:23 UTC
On Thu, 30 May 2024 05:12:01 +0200
FreeBSD User <freebsd@walstatt-de.de> wrote:

> Hello,
>
> for customising my world and kernel, I try to "overlay" GENERIC via included files containing
> "nodevice" and "nooptions" tags starting from a top level config file like
>
> include GENERIC
> include NODEVICE-GENERIC
> include	SPECIAL
>
> Within "NODEVICE-GENERIC" I utilize
> [...]
> # Debugging support.  Always need this:
> nooptions   KDB         # Enable kernel debugger support.
> nooptions   KDB_TRACE       # Print a stack trace for a panic.
> # For full debugger support use (turn off in stable branch):
> include "std.nodebug"
> [...]
>
> to disable KDB. The include "std.debug" in GENERIC is new, prior to its occurence the sketched
> scheme worked fine for me, but now I get this error while perfoming "make -jX buildworld
> buildkernel":
>
> [...]
> /usr/src/sys/amd64/amd64/exec_machdep.c:80:2: error: KDB must be enabled in order for DDB to
> work! 80 | #error KDB must be enabled in order for DDB to work!
>       |  ^
> [...]
>
> Apart from the recommendation not to disable KDB in CURRENT, is there a way to disable
> debugging features and mimik a stable branch?
>
> Thanks in advance,
>

GENERIC contains options DDB_CTF, which results in opt_ddb.h being created.

/sys/conf/kern.pre.mk:DDB_ENABLED!=     grep DDB opt_ddb.h || true ; echo
will result in DDB_ENABLED being true, since #define DDB_CTF 1 will be
present in opt_ddb.h.

So adding noptions DDB and nooptions DDB_CTF to your NODEVICE-GENERIC
might solve your problem.

--
Gary Jennejohn