Re: Buildkernel fails in /usr/obj/usr/src/arm.armv7/sys/GENERIC/vchiq_shim.o

From: Mark Millard <marklmi_at_yahoo.com>
Date: Sat, 01 Nov 2025 17:45:18 UTC
On Nov 1, 2025, at 10:22, Adrian Chadd <adrian@freebsd.org> wrote:

> Here's my suggested solution:
> 
> ===
> diff --git a/sys/contrib/vchiq/interface/vchiq_arm/vchiq_2835_arm.c b/sys/contrib/vchiq/interface/vchiq_arm/vchiq_2835_arm.c
> index 96c3a0db8aa5..7e105a6b3b77 100644
> --- a/sys/contrib/vchiq/interface/vchiq_arm/vchiq_2835_arm.c
> +++ b/sys/contrib/vchiq/interface/vchiq_arm/vchiq_2835_arm.c
> @@ -628,7 +628,9 @@ free_pagelist(BULKINFO_T *bi, int actual)
>         pagelist = bi->pagelist;
>  
>         vchiq_log_trace(vchiq_arm_log_level,
> -               "free_pagelist - %zx, %d (%u bytes @%p)", (size_t)pagelist, actual, pagelist->length, bi->buf);
> +           "free_pagelist - %zx, %d (%lu bytes @%p)",
> +           (size_t)pagelist, (int)actual, (unsigned long)pagelist->length,
> +           bi->buf);
>  
>         num_pages =
>                 (pagelist->length + pagelist->offset + PAGE_SIZE - 1) /
> ===
> 
> The code /is/ being compiled on my arm64 and armv7 builds, I verified this by using #error in this source file. But the format strings aren't eliciting a type violation when I cross compile.

The CI builds are on the likes of butler4.nyi.freebsd.org which
are amd64 as far as I know: also cross builds.

The CI build infrastructure may be public enough to check for if
anything special is specified for those builds. For example, I do
not know if they use /dev/null or empty files relative to the
likes of environment variables:

__MAKE_CONF
SRCCONF
SRC_ENV_CONF

or what the related file content might be like otherwise.

===
Mark Millard
marklmi at yahoo.com