When I wanted to include this update in the FreeBSD port (emulators/wine-devel) which I maintain, I got the following on FreeBSD 11/i386:
../../tools/winegcc/winegcc -o ws2_32.dll.so --wine-objdir ../.. -fno-PIC -fasynchronous-unwind-tables -shared ws2_32.spec async.o socket.o version.res -liphlpapi -luser32 ../../libs/port/libwine_port.a -L/home/gerald/11-i386/lib -Wl,-delayload,iphlpapi.dll -Wl,-delayload,user32.dll -fstack-protector-strong -Wl,-rpath=/home/gerald/11-i386/lib/gcc9 -L/home/gerald/11-i386/lib/gcc9 ../xaudio2_7/xact_dll.c:84:5: error: unknown type name 'IXACT34Cue' 84 | IXACT34Cue IXACT34Cue_iface; | ^~~~~~~~~~
and
../xaudio2_7/xact_dll.c: At top level: ../xaudio2_7/xact_dll.c:293:50: error: unknown type name 'IXACT34Cue'; did you mean 'IXACT3Cue'? 293 | static inline XACT3CueImpl *impl_from_IXACT34Cue(IXACT34Cue *iface) | ^~~~~~~~~~ | IXACT3Cue
That looks like a general issue, not specific to this platform.
Looking at the source in question
typedef struct _XACT3CueImpl { IXACT3Cue IXACT3Cue_iface; #if XACT3_VER <= 0x0304 IXACT34Cue IXACT34Cue_iface; // <= Line 84 #endif
FACTCue *fact_cue; } XACT3CueImpl;
I am wondering whether this conditional compilation is the reason here (and why you may not have seen this)?
Gerald
On Sat, 4 Jul 2020, Gerald Pfeifer wrote:
../xaudio2_7/xact_dll.c:84:5: error: unknown type name 'IXACT34Cue' 84 | IXACT34Cue IXACT34Cue_iface; | ^~~~~~~~~~
:
I am wondering whether this conditional compilation is the reason here (and why you may not have seen this)?
The patch below fixes the build on my tester.
(I cannot vouch for its correctness, but at a minimum it points out where things may need to be touched.)
Gerald
Signed-off-by: Gerald Pfeifer gerald@pfeifer.com
--- dlls/xaudio2_7/xact_dll.c.orig 2020-07-04 12:19:28.998026000 +0000 +++ dlls/xaudio2_7/xact_dll.c 2020-07-04 12:29:17.470711000 +0000 @@ -81,7 +81,7 @@ typedef struct _XACT3CueImpl { IXACT3Cue IXACT3Cue_iface; #if XACT3_VER <= 0x0304 - IXACT34Cue IXACT34Cue_iface; + IXACT3Cue IXACT34Cue_iface; #endif
FACTCue *fact_cue; @@ -290,12 +290,12 @@ };
#if XACT3_VER <= 0x0304 -static inline XACT3CueImpl *impl_from_IXACT34Cue(IXACT34Cue *iface) +static inline XACT3CueImpl *impl_from_IXACT34Cue(IXACT3Cue *iface) { - return CONTAINING_RECORD(iface, XACT3CueImpl, IXACT34Cue_iface); + return CONTAINING_RECORD(iface, XACT3CueImpl, IXACT3Cue_iface); }
-static HRESULT WINAPI IXACT34CueImpl_Play(IXACT34Cue *iface) +static HRESULT WINAPI IXACT34CueImpl_Play(IXACT3Cue *iface) { XACT3CueImpl *This = impl_from_IXACT34Cue(iface);
@@ -304,7 +304,7 @@ return FACTCue_Play(This->fact_cue); }
-static HRESULT WINAPI IXACT34CueImpl_Stop(IXACT34Cue *iface, DWORD dwFlags) +static HRESULT WINAPI IXACT34CueImpl_Stop(IXACT3Cue *iface, DWORD dwFlags) { XACT3CueImpl *This = impl_from_IXACT34Cue(iface);
@@ -313,7 +313,7 @@ return FACTCue_Stop(This->fact_cue, dwFlags); }
-static HRESULT WINAPI IXACT34CueImpl_GetState(IXACT34Cue *iface, DWORD *pdwState) +static HRESULT WINAPI IXACT34CueImpl_GetState(IXACT3Cue *iface, DWORD *pdwState) { XACT3CueImpl *This = impl_from_IXACT34Cue(iface);
@@ -322,7 +322,7 @@ return FACTCue_GetState(This->fact_cue, pdwState); }
-static HRESULT WINAPI IXACT34CueImpl_Destroy(IXACT34Cue *iface) +static HRESULT WINAPI IXACT34CueImpl_Destroy(IXACT3Cue *iface) { XACT3CueImpl *This = impl_from_IXACT34Cue(iface);
@@ -333,7 +333,7 @@ return S_OK; }
-static HRESULT WINAPI IXACT34CueImpl_SetMatrixCoefficients(IXACT34Cue *iface, +static HRESULT WINAPI IXACT34CueImpl_SetMatrixCoefficients(IXACT3Cue *iface, UINT32 uSrcChannelCount, UINT32 uDstChannelCount, float *pMatrixCoefficients) { @@ -346,7 +346,7 @@ uDstChannelCount, pMatrixCoefficients); }
-static XACTVARIABLEINDEX WINAPI IXACT34CueImpl_GetVariableIndex(IXACT34Cue *iface, +static XACTVARIABLEINDEX WINAPI IXACT34CueImpl_GetVariableIndex(IXACT3Cue *iface, PCSTR szFriendlyName) { XACT3CueImpl *This = impl_from_IXACT34Cue(iface); @@ -356,7 +356,7 @@ return FACTCue_GetVariableIndex(This->fact_cue, szFriendlyName); }
-static HRESULT WINAPI IXACT34CueImpl_SetVariable(IXACT34Cue *iface, +static HRESULT WINAPI IXACT34CueImpl_SetVariable(IXACT3Cue *iface, XACTVARIABLEINDEX nIndex, XACTVARIABLEVALUE nValue) { XACT3CueImpl *This = impl_from_IXACT34Cue(iface); @@ -366,7 +366,7 @@ return FACTCue_SetVariable(This->fact_cue, nIndex, nValue); }
-static HRESULT WINAPI IXACT34CueImpl_GetVariable(IXACT34Cue *iface, +static HRESULT WINAPI IXACT34CueImpl_GetVariable(IXACT3Cue *iface, XACTVARIABLEINDEX nIndex, XACTVARIABLEVALUE *nValue) { XACT3CueImpl *This = impl_from_IXACT34Cue(iface); @@ -376,7 +376,7 @@ return FACTCue_GetVariable(This->fact_cue, nIndex, nValue); }
-static HRESULT WINAPI IXACT34CueImpl_Pause(IXACT34Cue *iface, BOOL fPause) +static HRESULT WINAPI IXACT34CueImpl_Pause(IXACT3Cue *iface, BOOL fPause) { XACT3CueImpl *This = impl_from_IXACT34Cue(iface);
@@ -385,7 +385,7 @@ return FACTCue_Pause(This->fact_cue, fPause); }
-static HRESULT WINAPI IXACT34CueImpl_GetProperties(IXACT34Cue *iface, +static HRESULT WINAPI IXACT34CueImpl_GetProperties(IXACT3Cue *iface, XACT_CUE_INSTANCE_PROPERTIES **ppProperties) { XACT3CueImpl *This = impl_from_IXACT34Cue(iface); @@ -402,9 +402,9 @@ return hr; }
-static const IXACT34CueVtbl XACT34Cue_Vtbl = +static const IXACT3CueVtbl XACT34Cue_Vtbl = { - IXACT34CueImpl_Play, + IXACT3CueImpl_Play, IXACT34CueImpl_Stop, IXACT34CueImpl_GetState, IXACT34CueImpl_Destroy,
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=74809
Your paranoid android.
=== debiant (build log) ===
Task: Patch failed to apply
=== debiant (build log) ===
Task: Patch failed to apply