Hi,
I'm trying to compile a 64 bit jack application (radium) with mingw-64.
When I compile it in 32 bit mode, it works fine, but when creating a 64
bit version, it crashes when calling a jack_* function.
The same happens when trying to run a simple test program:
"
#include <jack/jack.h>
int main(){
jack_ringbuffer_create(8000); // (Also crashes if callling
jack_client_open)
return 0;
}
"
If I compile it like this (32 bit):
$ i686-w64-mingw32-gcc winjacktest.c -I/home/kjetil/.wine/drive_c/Program\
Files/Jack/includes /home/kjetil/.wine/drive_c/Program\
Files/Jack/lib/libjack.lib
...it works
But if I compile it like this (64 bit):
$ x86_64-w64-mingw32-gcc winjacktest.c
-I/home/kjetil/.wine/drive_c/Program\ Files/Jack/includes
/home/kjetil/.wine/drive_c/Program\ Files/Jack/lib/libjack64.lib
...it crashes.
I also have a backtrace. The second last frame in the backtrace is the call
to "jack_ringbuffer",
while the last frame shows that an unrelated function is called instead of
jack_rinbuffer_create.
So it seems like either the stack itself is a little bit corrupted, or
libjack64.lib sends the program
further to a random place in the program instead of the libjack64.dll
library. The latter might
be more likely though, since it's the same backtrace every time.
I've tried installed both the 32 bit and the 64 bit version of
jack which are available for download at
jackaudio.org. Same behaviour for
both.
My gcc is a little bit old, but I guess that isn't the reason for the crash:
$ x86_64-w64-mingw32-gcc --version
x86_64-w64-mingw32-gcc (GCC) 4.7.2 20120920 (Fedora MinGW 4.7.2-7.fc17)
$ i686-w64-mingw32-gcc --version
i686-w64-mingw32-gcc (GCC) 4.7.2 20120920 (Fedora MinGW 4.7.2-7.fc17)
Thanks for any help. Please let me know if there's anything I should try.