64bit winelib test app fails on AMD CPU, but works on Intel - need help to identify possible problem, please :)

Marcus Meissner marcus at jet.franken.de
Sun Apr 7 04:32:00 CDT 2013


Hi,

Well, your testcase had a trivial mistake which i now see.

This line:
typedef struct AEffect * (*main_entry_t)(audioMasterCallback);

must read:
typedef struct WINAPI AEffect * (*main_entry_t)(audioMasterCallback);


WINAPI is critical here, as it changes the call from the SysV AMD64
calling convention to the Microsoft x64 one which is entirely different.

(That it works for 32bit is probably just luck.)

If you fix it in fst.h:
fst.h:typedef struct AEffect * (*main_entry_t)(audioMasterCallback);

It will probably also work better.

Ciao, Marcus


On Sat, Apr 06, 2013 at 06:41:42PM -0400, jordan wrote:
> Hey Marcus,
> 
> 
> > Can you add a
> >         printf("plugin %p\n", plugin);
> > after above line?
> >
> > I would suspect things like:
> > - checks for processor features and returns 0xffffffff if not found.
> 
> I added this line to the sources / compiled and tested - here is
> output: http://pastebin.com/QMtWttRZ
> 
> I'n not sure what to make of it. I've been trying to nail down what
> the problem might be on my system (to no avail). It's really
> strange...
> 
> I've tried different kernels, different versions of wine, using a
> binary version of the test app (not compiled on my machine). but
> nothing seems to work.
> 
> Jordan
> 



More information about the wine-devel mailing list