NetBSD-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: structure fxsave* / fxsave64 changed from 102x to 11.0?



> From: Riccardo Mottola <riccardo.mottola%libero.it@localhost>
> Date: Wed, 21 Oct 2026 00:20:03 +0200
> 
> On 10.2 amd64, compilng ArcticFox i dev branch s fine.
> 
> However, on 11.0 I get this error:
> 
> 167:52.84 /home/multix/code/Arctic-Fox/js/src/wasm/WasmSignalHandlers.cpp:166:25: error: invalid cast from type '__fpregset_t' to type 'fxsave*' 167:52.84   166 | # define XMM_sig(p,i) (((struct fxsave64*)(p)->uc_mcontext.__fpregs)->fx_xmm[i])
> 
> 167:52.84       | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Sorry, we broke the API compatibility here.  Fortunately the fix is
very simple -- just insert an ampersand, and it will work equally well
on older NetBSD and newer NetBSD:

-# define XMM_sig(p,i) (((struct fxsave64*)(p)->uc_mcontext.__fpregs)->fx_xmm[i])
+# define XMM_sig(p,i) (((struct fxsave64*)&(p)->uc_mcontext.__fpregs)->fx_xmm[i])

This was raised in PR kern/60539: XSAVE changes break ucontext
userspace API <https://gnats.NetBSD.org/60539>; see background there
if you're curious.


Home | Main Index | Thread Index | Old Index