[PATCH 0/1] MR9103: ntdll/unix: Explicitly cast to XSAVE_FORMAT* before dereferencing FPUX_sig
This will fixes build on FreeBSD targeting i386. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/9103
From: Thibault Payet <contact(a)thibaultpayet.fr> --- dlls/ntdll/unix/signal_i386.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dlls/ntdll/unix/signal_i386.c b/dlls/ntdll/unix/signal_i386.c index d4fac225430..4ceece205e9 100644 --- a/dlls/ntdll/unix/signal_i386.c +++ b/dlls/ntdll/unix/signal_i386.c @@ -827,7 +827,7 @@ static void fixup_frame_fpu_state( struct syscall_frame *frame, const ucontext_t if (FPUX_sig(sigcontext)) { if (user_shared_data->ProcessorFeatures[PF_XMMI_INSTRUCTIONS_AVAILABLE]) - frame->u.xsave = *FPUX_sig(sigcontext); + frame->u.xsave = *((XSAVE_FORMAT *) FPUX_sig(sigcontext)); else fpux_to_fpu( &frame->u.fsave, FPUX_sig(sigcontext) ); frame->xstate.Mask = XSTATE_MASK_LEGACY; -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/9103
Jinoh Kang (@iamahuman) commented about dlls/ntdll/unix/signal_i386.c:
#define ESP_sig(context) ((context)->uc_mcontext.mc_esp)
#define FPU_sig(context) NULL /* FIXME */ #define FPUX_sig(context) NULL /* FIXME */ I think the real problem is the FPUX\_sig definitions. We should fix them instead:
```suggestion:-0+0 #define FPUX_sig(context) ((XSAVE_FORMAT *)NULL) /* FIXME */ ``` Ditto for other stub FPUX\_sigs. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/9103#note_117626
participants (3)
-
Jinoh Kang (@iamahuman) -
Thibault Payet -
Thibault Payet (@thpayet)