Wine64 : initializer element is not computable at load time?
Ove Kaaven
ovek at arcticnet.no
Tue Apr 22 18:19:20 CDT 2008
Erik de Castro Lopo skrev:
> Ove Kaaven wrote:
>
>> Erik de Castro Lopo skrev:
>>> Anybody understand why?
>> You could look up the definition of RTL_CRITICAL_SECTION_DEBUG in
>> include/winnt.h. Then realize that __WINESRC__ is only defined for stuff
>> in dlls/, not for stuff in programs/, which should make the type
>> mismatch clear.
>
> The error message says nothing about a type mismatch its complaining
> about something not being compulatble a load time.
Yes, I said "type mismatch" to clarify the error. It's not possible to
fit a 64-bit pointer value into a static 32-bit DWORD at "load time"
(probably means relocation time). The types aren't compatible.
> That makes me suspect that the non __WINESRC__ definition
> is wrong and that the whole #ifdef above could be replaced
> with
>
> DWORD_PTR Spare[8/sizeof(DWORD_PTR)];
>
> Is that right?
No, in the case of Winelib apps, every Wine definition should match the
Windows definition exactly. And here, DWORD_PTR would be 64-bit and
DWORD would be 32-bit, so it's not exactly a perfect match.
But I'm not proposing any particular solution, I just said what's wrong.
More information about the wine-devel
mailing list