Re: git: 8b83d7e0ee54 - main - Make -Wunused-but-set-variable a fatal error for clang 13+ for kernel builds.

From: John Baldwin <jhb_at_FreeBSD.org>
Date: Tue, 19 Apr 2022 16:13:19 UTC
On 4/19/22 5:47 AM, Mateusz Guzik wrote:
> As of 19447fc4888379e539dfca7e4c62362d6c279357 the amd64 kernel +
> modules build without with a config with these options removed:
> diff --git a/sys/amd64/conf/GENERIC b/sys/amd64/conf/GENERIC
> index 53c6043a0146..98b4be69dc94 100644
> --- a/sys/amd64/conf/GENERIC
> +++ b/sys/amd64/conf/GENERIC
> @@ -69,43 +69,14 @@ options     COMPAT_FREEBSD11        # Compatible
> with FreeBSD11
>   options        COMPAT_FREEBSD12        # Compatible with FreeBSD12
>   options        COMPAT_FREEBSD13        # Compatible with FreeBSD13
>   options        SCSI_DELAY=5000         # Delay (in ms) before probing SCSI
> -options        KTRACE                  # ktrace(1) support
> -options        STACK                   # stack(9) support
>   options        SYSVSHM                 # SYSV-style shared memory
>   options        SYSVMSG                 # SYSV-style message queues
>   options        SYSVSEM                 # SYSV-style semaphores
>   options        _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time
> extensions
>   options        PRINTF_BUFR_SIZE=128    # Prevent printf output being
> interspersed.
>   options        KBD_INSTALL_CDEV        # install a CDEV entry in /dev
> -options        HWPMC_HOOKS             # Necessary kernel hooks for hwpmc(4)
> -options        AUDIT                   # Security event auditing
> -options        CAPABILITY_MODE         # Capsicum capability mode
> -options        CAPABILITIES            # Capsicum capabilities
> -options        MAC                     # TrustedBSD MAC Framework
> -options        KDTRACE_FRAME           # Ensure frames are compiled in
> -options        KDTRACE_HOOKS           # Kernel DTrace hooks
> -options        DDB_CTF                 # Kernel ELF linker loads CTF data
>   options        INCLUDE_CONFIG_FILE     # Include this file in kernel
> -options        RACCT                   # Resource accounting framework
> -options        RACCT_DEFAULT_TO_DISABLED # Set kern.racct.enable=0 by default
> -options        RCTL                    # Resource limits
> -
> -# Debugging support.  Always need this:
> -options        KDB                     # Enable kernel debugger support.
> -options        KDB_TRACE               # Print a stack trace for a panic.
> -# For full debugger support use (turn off in stable branch):
> -options        BUF_TRACKING            # Track buffer history
> -options        DDB                     # Support DDB.
> -options        FULL_BUF_TRACKING       # Track more buffer history
> -options        GDB                     # Support remote GDB.
> -options        DEADLKRES               # Enable the deadlock resolver
> -options        INVARIANTS              # Enable calls of extra sanity checking
> -options        INVARIANT_SUPPORT       # Extra sanity checks of
> internal structures, required by INVARIANTS
> -options        QUEUE_MACRO_DEBUG_TRASH # Trash queue(2) internal
> pointers on invalidation
> -options        WITNESS                 # Enable checks to detect
> deadlocks and cycles
> -options        WITNESS_SKIPSPIN        # Don't run witness on
> spinlocks for speed
> -options        MALLOC_DEBUG_MAXZONES=8 # Separate malloc(9) zones
> -options        VERBOSE_SYSINIT=0       # Support
> debug.verbose_sysinit, off by default

Do we want another kind of kernel config in universe to catch these cases?
GENERIC-NODEBUG catches some of these and MINIMAL doesn't remove any of
these.

-- 
John Baldwin