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

From: Konstantin Belousov <kostikbel_at_gmail.com>
Date: Sat, 01 Nov 2025 17:50:42 UTC
On Sat, Nov 01, 2025 at 10:22:37AM -0700, Adrian Chadd 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);
We normally use %jx format specifier together with (uintmax_t) cast
to handle integer types MD different sizes.

> 
>         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.