Dewdman42
2012-May-15 19:50 UTC
[Wine] wineasio compile problems on OSX - COM work arounds
I dont know if this is the right place to post this question. I've tried already on the wineasio sourceforge forum, but no response. I think this particular question is something wine experts would know about since it looks to be borrowed code from wine. Most of the wineasio folks seem to be linux focused only. In any case, I'm trying to compile the latest wineasio 0.90 on OSX 10.6.8. I have already built wine 1.5.4. I get some errors immediately related to some ELF assembler code injection that I believe has to do with working around COM. Here is the error and below that is the code I think causing the problem to build. Does anyone have any ideas what I would need to tweak to get past this particular problem? Code: gcc -c -I. -I/usr/include -I/Users/sjs/wine/wine-1.5.4/include -I/Users/sjs/wine/wine-1.5.4/include/wine -I/Users/sjs/wine/wine-1.5.4/include/wine/windows -m32 -g -O2 -D__WINESRC__ -D_REENTRANT -fPIC -Wall -pipe -fno-strict-aliasing -Wdeclaration-after-statement -Wwrite-strings -Wpointer-arith -o asio.o asio.c {standard input}:36:Unknown pseudo-op: .type {standard input}:36:Rest of line ignored. 1st junk character valued 95 (_). {standard input}:38:Unknown pseudo-op: .cfi_startproc {standard input}:43:Unknown pseudo-op: .cfi_endproc {standard input}:44:Unknown pseudo-op: .previous {standard input}:48:Unknown pseudo-op: .type I'm pretty sure this is the code causing the problem. Code: /* ASIO drivers (breaking the COM specification) use the Microsoft variety of * thiscall calling convention which gcc is unable to produce. These macros * add an extra layer to fixup the registers. Borrowed from config.h and the * wine source code. */ /* From config.h */ #define __ASM_DEFINE_FUNC(name,suffix,code) asm(".text\n\t.align 4\n\t.globl " #name suffix "\n\t.type " #name suffix ", at function\n" #name suffix ":\n\t.cfi_startproc\n\t" code "\n\t.cfi_endproc\n\t.previous"); #define __ASM_GLOBAL_FUNC(name,code) __ASM_DEFINE_FUNC(name,"",code) #define __ASM_NAME(name) name #define __ASM_STDCALL(args) "" /* From wine source */ #ifdef __i386__ /* thiscall functions are i386-specific */ #define THISCALL(func) __thiscall_ ## func #define THISCALL_NAME(func) __ASM_NAME("__thiscall_" #func) #define __thiscall __stdcall #define DEFINE_THISCALL_WRAPPER(func,args) \ extern void THISCALL(func)(void); \ __ASM_GLOBAL_FUNC(__thiscall_ ## func, \ "popl %eax\n\t" \ "pushl %ecx\n\t" \ "pushl %eax\n\t" \ "jmp " __ASM_NAME(#func) __ASM_STDCALL(args) ) #else /* __i386__ */ #define THISCALL(func) func #define THISCALL_NAME(func) __ASM_NAME(#func) #define __thiscall __cdecl #define DEFINE_THISCALL_WRAPPER(func,args) /* nothing */ #endif /* __i386__ */ /* Hide ELF symbols for the COM members - No need to to export them */ #define HIDDEN __attribute__ ((visibility("hidden")))
dimesio
2012-May-15 20:05 UTC
[Wine] Re: wineasio compile problems on OSX - COM work arounds
Dewdman42 wrote:> I dont know if this is the right place to post this question. I've tried already on the wineasio sourceforge forum, but no response. I think this particular question is something wine experts would know about since it looks to be borrowed code from wine. Most of the wineasio folks seem to be linux focused only. > > In any case, I'm trying to compile the latest wineasio 0.90 on OSX 10.6.8. I have already built wine 1.5.4.Wineasio is a separate project; it is not supported here.
Dewdman42
2012-May-15 20:15 UTC
[Wine] Re: wineasio compile problems on OSX - COM work arounds
apparantly its not supported anywhere
James McKenzie
2012-May-15 20:21 UTC
[Wine] wineasio compile problems on OSX - COM work arounds
On Tue, May 15, 2012 at 12:50 PM, Dewdman42 <wineforum-user at winehq.org> wrote:> I dont know if this is the right place to post this question.Why are you trying to use this? Mac sound support is through coreaudio. James
Dewdman42
2012-May-15 20:33 UTC
[Wine] Re: wineasio compile problems on OSX - COM work arounds
wine does not produce low latency audio through coreaudio. Perhaps you can tell me something I don't know about, but everyone I know using wine with audio production apps has to use wineasio in order to get low latency audio out of reaper, etc. If you know another way to try, please advise and I will gladly try it. However, to my knowledge, wineasio is the only way.
Dewdman42
2012-May-15 20:34 UTC
[Wine] Re: wineasio compile problems on OSX - COM work arounds
the COM work around code above was borrowed from wine, so I hope someone knowledgable about it can show how to make it compile on osx. thanks