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

jordan triplesquarednine at gmail.com
Thu Apr 4 18:39:16 CDT 2013


Hey List,

A few days ago, i posted to the list about possibly porting a winelib
app to support x86_64. (currently supports x86).

the original post is here (for those interested, but not entirely
relevant to this post):
http://wine.1045685.n5.nabble.com/exploring-possibly-porting-winelib-app-to-support-64bit-td5750102.html

moving on.

So we have a simple test app, that successfully loads 64bit DLLs on my
friend's Intel based machines, while on my AMD Phenom II 965 X4 - the
code fails.

 -> Successful on Intel:

xj at xj:~/Muzyka/fsthost/trunk$ ./test64.exe ../../VST/ColourEQ_64.dll
Load plugin ../../VST/ColourEQ_64.dll
fixme:heap:HeapSetInformation 0x3c4000 0 0x22f610 4
Main entry: 0x1800077d0
Revive plugin
V: 66048 U: 1131365713 NI: 2 NO: 2 NPr: 10 NPa: 42
Open
Close

So intel computers tested (2 that i know of) work just fine.

 -> Failure on AMD: http://pastebin.com/x64pig3s  and a little snippet:

./test64.exe '/home/ninez/Desktop/ColourEQ_64.dll'
fixme:heap:HeapSetInformation 0x2c4000 0 0x23fce0 4
Load plugin /home/ninez/Desktop/ColourEQ_64.dll
fixme:heap:HeapSetInformation 0x3d4000 0 0x23f5f0 4
Main entry: 0x1800077d0
Revive plugin
wine: Unhandled page fault on read access to 0xffffffff at address
0xffffffff (thread 002a), starting debugger...
fixme:dbghelp:elf_search_auxv can't find symbol in module

<snip>

fixme:dbghelp:elf_search_auxv can't find symbol in module
Unhandled exception: page fault on read access to 0xffffffff in 64-bit
code (0x00000000ffffffff).
fixme:dbghelp:elf_search_auxv can't find symbol in module
Register dump:
 rip:00000000ffffffff rsp:000000000023fa78 rbp:000000000023fbd0
eflags:00010246 (  R- --  I  Z- -P- )
 rax:00000000003d8de0 rbx:0000000000000000 rcx:0000000000000000
rdx:0000000000000001
 rsi:00000000ffffffff rdi:00007f1205f559d0  r8:0000000000000000
r9:0000000000000000 r10:0000000000000001
 r11:0000000000000000 r12:0000000000000000 r13:00007f1205f50040
r14:000000007b86f920 r15:00007fffffbe8000
Stack dump:
0x000000000023fa78:  0000000180007756 00000000003d8de0
0x000000000023fa88:  00007f1206ff14d3 0000000000010ac1
0x000000000023fa98:  000000000000000d 0000000000000000
0x000000000023faa8:  00007f1200000000 fffffffffffffffe
0x000000000023fab8:  000000000023fbd0 00007f1205f559d0
0x000000000023fac8:  00007f1205f55b09 2020202020202020
0x000000000023fad8:  0000000000010ac1 00007f1207324323
0x000000000023fae8:  0000000000002000 ffff00ffffffffff
0x000000000023faf8:  ffff00ffffffffff 0000000000202020
0x000000000023fb08:  00000001800077d0 0000000180000000
0x000000000023fb18:  0000000000010ac1 5b5b5b5b5b5b5b5b
0x000000000023fb28:  5b5b5b5b5b5b5b5b 2020202020202020

It's odd that it is working on Intel H/W, but not my AMD system. ~
what could be a possible reason for this?

We've made s simple test app that doesn't require jackd, or FSThost
functions, to simplify things.

The source code can be found here:
https://sourceforge.net/p/fsthost/code/171/tree/
SVN code required:  svn checkout
svn://svn.code.sf.net/p/fsthost/code/trunk fsthost-code

the test app source code is called 'test64-most-simple.c'

The test app can be compiled with;

$ make -f Makefile64-most-simple

then

$ ./test64.exe /path/to/64bitVST

a tester can be found here: http://www.ddmf.eu/freeware.php

grab 'ColourEQ' (contains both 32bit and 64bit versions... and
obviously use the 64bit version to try/test.)

anyway, i am not sure what the problem is, maybe someone here has an
idea or two?  ... i've been wondering if there is some sort of
misalignment/compiler issue, that is causing the problem...but i want
to rule out Wine64 being an issue, first - if possible.

any help is appreciated. Thanks

Jordan



More information about the wine-devel mailing list