I wonder why; when I compile a C++ file with a header which looks like this: #ifndef __headername_h #define __headername_h 1 #ifdef __cplusplus extern "C" void function1(int,char*,int); extern "C" void function2(int,char*,int); #endif #endif under x86 & x64 linux this creates the symbols (output from nm): U function1 U function2 and using cygwin & mingw (x86) it creates these symbols (output from nm): U _function1 U _function2 is there a good reason for this? As this is a minor hasle when writing the assembly functions and it would be nice to know why. best regards Katana Steel -- as life grows older, I gain experience. -- View this message in context: http://www.nabble.com/Assembly-symbol-generation-tf4371956.html#a12461009 Sent from the gcc - Help mailing list archive at Nabble.com.