Re: Build failure during main-n290063-3ceb5f150bc1 => main-n290084-b5e6d60e57ba

From: Konstantin Belousov <kostikbel_at_gmail.com>
Date: Tue, 13 Oct 2026 12:14:27 UTC
On Tue, Oct 13, 2026 at 04:06:07AM -0700, David Wolfskill wrote:
> First system was running
> 
> FreeBSD freebeast.catwhisker.org 16.0-CURRENT FreeBSD 16.0-CURRENT #55 main-n290063-3ceb5f150bc1: Mon Oct 12 10:55:18 UTC 2026     root@freebeast.catwhisker.org:/common/S4/obj/usr/src/amd64.amd64/sys/GENERIC amd64
> 
> I had updated sources to main-n290084-b5e6d60e57ba; failure showed up
> rather early.  Here is what is in the first part of the ERROR_META_FILE:
> 
> # Meta data file /common/S4/obj/usr/src/amd64.amd64/tests/sys/fs/ufs/sync_test.pieo.meta
> CMD cc -target x86_64-unknown-freebsd16.0 --sysroot=/common/S4/obj/usr/src/amd64.amd64/tmp -B/common/S4/obj/usr/src/amd64.amd64/tmp/usr/bin -fpie -DPIC   -O2 -pipe -fno-common   -fPIE -g -gz=zlib -std=gnu17 -Wno-format-zero-length -fstack-protector-strong  -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch -Wshadow -Wunused-parameter -Wcast-align -Wchar-subscripts -Wnested-externs -Wold-style-definition -Wno-pointer-sign -Wdate-time -Wmissing-variable-declarations -Wthread-safety -Wno-empty-body -Wno-string-plus-int -Wno-unused-const-variable -Wno-error=unused-but-set-parameter -Wno-error=cast-function-type-mismatch  -Qunused-arguments    -c /usr/src/tests/sys/fs/ufs/sync_test.c -o sync_test.pieo
> CMD 
> CWD /common/S4/obj/usr/src/amd64.amd64/tests/sys/fs/ufs
> TARGET sync_test.pieo
> OODATE /usr/src/tests/sys/fs/ufs/sync_test.c
> -- command output --
> /usr/src/tests/sys/fs/ufs/sync_test.c:226:9: error: cast from 'uint8_t *' (aka 'unsigned char *') to 'ufs1_daddr_t *' (aka 'int *') increases required alignment from 1 to 4 [-Werror,-Wcast-align]
>   226 |                             ((ufs1_daddr_t *)buf)[lbn - UFS_NDADDR] :
>       |                              ^~~~~~~~~~~~~~~~~~~
> /usr/src/tests/sys/fs/ufs/sync_test.c:227:9: error: cast from 'uint8_t *' (aka 'unsigned char *') to 'ufs2_daddr_t *' (aka 'long *') increases required alignment from 1 to 8 [-Werror,-Wcast-align]
>   227 |                             ((ufs2_daddr_t *)buf)[lbn - UFS_NDADDR];
>       |                              ^~~~~~~~~~~~~~~~~~~
> 2 errors generated.
> 
> *** Error code 1
> 
> -- filemon acquired metadata --
> # filemon version 5
> # Target pid 40779

Try this, did not even tried to compile.

diff --git a/tests/sys/fs/ufs/sync_test.c b/tests/sys/fs/ufs/sync_test.c
index 9adc853affd7..3dfa39e17575 100644
--- a/tests/sys/fs/ufs/sync_test.c
+++ b/tests/sys/fs/ufs/sync_test.c
@@ -223,8 +223,8 @@ ondisk_read(ino_t ino, int lbn, struct ondisk *od)
 			ATF_REQUIRE(bread(&disk, fsbtodb(fs, ib), buf,
 			    fs->fs_bsize) == fs->fs_bsize);
 			od->blkno = disk.d_ufs == 1 ?
-			    ((ufs1_daddr_t *)buf)[lbn - UFS_NDADDR] :
-			    ((ufs2_daddr_t *)buf)[lbn - UFS_NDADDR];
+			    __DECONST(ufs1_daddr_t *, buf)[lbn - UFS_NDADDR] :
+			    __DECONST(ufs2_daddr_t *, buf)[lbn - UFS_NDADDR];
 		}
 	}