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@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