Index: code/qcommon/vm_x86.c =================================================================== --- code/qcommon/vm_x86.c (revision 1140) +++ code/qcommon/vm_x86.c (working copy) @@ -182,10 +182,17 @@ #else //!_MSC_VER #if defined(__MINGW32__) || defined(MACOS_X) // _ is prepended to compiled symbols -#define CMANG(sym) "_"#sym +#define CMANGVAR(sym) "_"#sym +#define CMANGFUNC(sym) "_"#sym #else -#define CMANG(sym) #sym +#if defined(__ICC) && (__ICC >= 1000) +#define CMANGVAR(sym) #sym".0" +#define CMANGFUNC(sym) #sym +#else +#define CMANGVAR(sym) #sym +#define CMANGFUNC(sym) #sym #endif +#endif static int callProgramStack; static int *callOpStack; @@ -212,7 +219,7 @@ // arbitrarily named (though this is not true for the MSC version). When a vm // makes a system call, control jumps straight to the doAsmCall label. void AsmCall( void ) { - __asm__( CMANG(doAsmCall) ": \n\t" \ + __asm__( CMANGFUNC(doAsmCall) ": \n\t" \ " movl (%%edi),%%eax \n\t" \ " subl $4,%%edi \n\t" \ " orl %%eax,%%eax \n\t" \ @@ -221,7 +228,7 @@ " addl %3,%%eax \n\t" \ " call *(%%eax) \n\t" \ " movl (%%edi),%%eax \n\t" \ - " andl " CMANG(callMask) ", %%eax \n\t" \ + " andl " CMANGVAR(callMask) ", %%eax \n\t" \ " jmp doret \n\t" \ "systemCall: \n\t" \ " negl %%eax \n\t" \ @@ -232,7 +239,7 @@ " pushl %%ecx \n\t" \ " pushl %%esi \n\t" \ " pushl %%edi \n\t" \ - " call " CMANG(callAsmCall) " \n\t" \ + " call " CMANGFUNC(callAsmCall) " \n\t" \ " popl %%edi \n\t" \ " popl %%esi \n\t" \ " popl %%ecx \n\t" \