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

2013-04-07 Thread Marcus Meissner
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 0x 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
 




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

2013-04-06 Thread jordan
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 0x 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




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

2013-04-05 Thread Marcus Meissner
On Thu, Apr 04, 2013 at 07:39:16PM -0400, jordan wrote:
 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 0x at address
 0x (thread 002a), starting debugger...
 fixme:dbghelp:elf_search_auxv can't find symbol in module

Works for me on my AMD Phenom(tm) II X4 945 Processor.

It looks like the 
struct AEffect* plugin = main_entry((audioMasterCallback) 
simple_master_callback);

returns 0x, which is probably a failure indication.

Can you add a
printf(plugin %p\n, plugin);
after above line?

I would suspect things like: 
- checks for processor features and returns 0x if not found.

CIao, Marcus





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

2013-04-05 Thread jordan
Hey Marcus

 Works for me on my AMD Phenom(tm) II X4 945 Processor.

great :)  (very similar CPU).

 It looks like the
 struct AEffect* plugin = main_entry((audioMasterCallback) 
 simple_master_callback);

 returns 0x, which is probably a failure indication.

 Can you add a
 printf(plugin %p\n, plugin);
 after above line?

 I would suspect things like:
 - checks for processor features and returns 0x if not found.

This makes sense. Unfortunately, i won't be able to test until later
(i'm at work).

Thanks for your tips ~ very useful stuff!

Jordan

 CIao, Marcus





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

2013-04-04 Thread jordan
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 0x at address
0x (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 0x in 64-bit
code (0x).
fixme:dbghelp:elf_search_auxv can't find symbol in module
Register dump:
 rip: rsp:0023fa78 rbp:0023fbd0
eflags:00010246 (  R- --  I  Z- -P- )
 rax:003d8de0 rbx: rcx:
rdx:0001
 rsi: rdi:7f1205f559d0  r8:
r9: r10:0001
 r11: r12: r13:7f1205f50040
r14:7b86f920 r15:7fbe8000
Stack dump:
0x0023fa78:  000180007756 003d8de0
0x0023fa88:  7f1206ff14d3 00010ac1
0x0023fa98:  000d 
0x0023faa8:  7f12 fffe
0x0023fab8:  0023fbd0 7f1205f559d0
0x0023fac8:  7f1205f55b09 2020202020202020
0x0023fad8:  00010ac1 7f1207324323
0x0023fae8:  2000 00ff
0x0023faf8:  00ff 00202020
0x0023fb08:  0001800077d0 00018000
0x0023fb18:  00010ac1 5b5b5b5b5b5b5b5b
0x0023fb28:  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




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

2013-04-04 Thread Austin English
On Thu, Apr 4, 2013 at 6:39 PM, jordan triplesquaredn...@gmail.com wrote:

 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 0x at address
 0x (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 0x in 64-bit
 code (0x).
 fixme:dbghelp:elf_search_auxv can't find symbol in module
 Register dump:
  rip: rsp:0023fa78 rbp:0023fbd0
 eflags:00010246 (  R- --  I  Z- -P- )
  rax:003d8de0 rbx: rcx:
 rdx:0001
  rsi: rdi:7f1205f559d0  r8:
 r9: r10:0001
  r11: r12: r13:7f1205f50040
 r14:7b86f920 r15:7fbe8000
 Stack dump:
 0x0023fa78:  000180007756 003d8de0
 0x0023fa88:  7f1206ff14d3 00010ac1
 0x0023fa98:  000d 
 0x0023faa8:  7f12 fffe
 0x0023fab8:  0023fbd0 7f1205f559d0
 0x0023fac8:  7f1205f55b09 2020202020202020
 0x0023fad8:  00010ac1 7f1207324323
 0x0023fae8:  2000 00ff
 0x0023faf8:  00ff 00202020
 0x0023fb08:  0001800077d0 00018000
 0x0023fb18:  00010ac1 5b5b5b5b5b5b5b5b
 0x0023fb28:  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



Are y'all using the same OS/distro/kernel/gcc/libc versions?

-- 
-Austin



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

2013-04-04 Thread jordan
Hey Austin

 Are y'all using the same OS/distro/kernel/gcc/libc versions?

Different (distro) but everything else is very similar, if not the
same. My feeling is that this is not going to end up being the problem
and if i remember correctly, the 2 Intel systems are not the same
either..

But just to make sure that isn't the case - I am installing a VM to
test with (to match his system)...

any other ideas, suggestions beyond that (?)

cheerz




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

2013-04-04 Thread jordan
Hey Andre,

 was it the same binary or did you compiled it on each cpu?
 Do you have the same Wine versions?

Compiled on each respective system. (no sharing of binaries).

It's been tested with several wine versions (1.4.1, 1.5.24, 1.5.27).
On intel systems, it works on ALL versions. On my AMD system, it
doesn't work at all.

cheerz

Jordan




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

2013-04-04 Thread André Hentschel
Am 05.04.2013 02:36, schrieb jordan:
 Hey Andre,
 
 was it the same binary or did you compiled it on each cpu?
 Do you have the same Wine versions?
 
 Compiled on each respective system. (no sharing of binaries).
 
 It's been tested with several wine versions (1.4.1, 1.5.24, 1.5.27).
 On intel systems, it works on ALL versions. On my AMD system, it
 doesn't work at all.

only thing that comes to mind is that you need gcc=4.4, but configure checks 
that for you.
Did you tried the binaries of your intel mate?





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

2013-04-04 Thread jordan
Hey Andre.

 only thing that comes to mind is that you need gcc=4.4, but configure checks 
 that for you.
 Did you tried the binaries of your intel mate?

Well, i am using gcc-4.8 (but have also tested with gcc-4.7.3/4). He
is using gcc 4.7.3 or .4.

No, i did not try his binaries ~ but that is worth having a look, even
though it wouldn't solve the issue really... I'm also in the middle of
setting a VM, to see if it works in there, maybe then i can rule that
out (for sure).

thanks

Jordan




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

2013-04-04 Thread Gediminas Jakutis
On Fri, Apr 5, 2013 at 3:36 AM, jordan triplesquaredn...@gmail.com wrote:
 It's been tested with several wine versions (1.4.1, 1.5.24, 1.5.27).
 On intel systems, it works on ALL versions. On my AMD system, it
 doesn't work at all.

Hello!
Works fine on my AMD system:

vinis@g44:/media/vinis/code/temp/fsthost-code$
WINEPREFIX=/media/vinis/bottles/test64 ./test64.exe ../ColourEQ_64.dll
Load plugin ../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

gcc 4.7.2; wine 1.5.27;

-- 
Gediminas Jakutis
LDK Varčiai www.varciai.lt




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

2013-04-04 Thread jordan
 Hello!

Hey Gediminas! ;)

 Works fine on my AMD system:

Can you also give me the rest of your specs / distro, please?

 vinis@g44:/media/vinis/code/temp/fsthost-code$
 WINEPREFIX=/media/vinis/bottles/test64 ./test64.exe ../ColourEQ_64.dll
 Load plugin ../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

 gcc 4.7.2; wine 1.5.27;

great news that it worked, not so great news that i need to find what
the issue is on my machine ;)

thanks

Jordan