Hi Thomas and list,
the Intel compiler has "_MSC_VER" predefined for compatibility reasons as it says in the docs. That's why your suggestion does not work. So I would suggest to change line 29 of m_pd.h to the following:
#if defined(__GNUC__) || defined(__BORLANDC__) || defined(__INTEL_COMPILER)
This incorporates your suggestion concerning the Borland compiler and works for the Intel compiler as well.
Olaf
Thomas Grill schrieb:
Hi, it seems that the MSVC++ is the only compiler that wants the "extern struct" specifier.....
so maybe, the definition should be changed to
#ifdef _MSC_VER #define EXTERN_STRUCT extern struct #else #define EXTERN_STRUCT struct #endif
greetings, Thomas
Changing the definition in m_pd.h seems to help (I don't get the warning any longer):
/* and depending on the compiler, hidden data structures are declared differently: */
#ifdef __GNUC__ #define EXTERN_STRUCT struct #else #ifdef IA32 /* Intel IA32 compiler */ #define EXTERN_STRUCT struct #else /* non-GNU compiler */ #define EXTERN_STRUCT extern struct #endif #endif
It's also necessary to define "IA32" for the compiler to get the above code working... (maybe the compiler identifies itselfe by it's own but I couldn't find any hints)
In the end it seems that this compiler reduces CPU usage a bit (on my P4 with compiler options G7 and QaxW set). More tests have to show if it's worth the effort. I should probably recompile all libraries as well...
I could upload a version of Pd0.35 compiled with this compiler in case someone is interested or is willing to test the amount of optimization one gets in real 'on-stage' situations.
Olaf
PD-dev mailing list PD-dev@iem.kug.ac.at http://iem.kug.ac.at/cgi-bin/mailman/listinfo/pd-dev