SVN r196226 added ASSERT_ATOMIC_LOAD to check that values could be atomically loaded. On sparc64, _ALIGN() masks off 0xF but the compiler seems to think that the alignment requirement is only 0x7 as printing "&( ((struct foo *)(NULL))->...)" for each of a,b,c,d,e,f in "struct foo { long a; char b; long c; void *d; char e; void *f; };" seems to produces "0 8 16 24 32 40" I don't know what the right fix is or even which one is in error. Thoughts? How-To-Repeat: Build a kernel on sparc64 later than r196226. It is unclear to me if other details of kernel configuration matter.
Responsible Changed From-To: freebsd-bugs->freebsd-sparc64 I suspect that this is some MD problem on sparc64, and not directly related to the commit that triggers the problem.
Responsible Changed From-To: freebsd-sparc64->bz Mine. I got input form kib on why it's an issue for sparc64 and I think ia64 might have the same problem. We'll either disable the check or find something better that actually works on all platforms.
Responsible Changed From-To: bz->attilio Thanks for handling this.
State Changed From-To: open->closed This has been fixed with r196334.