-//\r
-// The Microsoft* C compiler can removed references to unreferenced data items\r
-// if the /OPT:REF linker option is used. We defined a macro as this is a \r
-// a non standard extension\r
-//\r
-#if _MSC_EXTENSIONS\r
- #define GLOBAL_REMOVE_IF_UNREFERENCED __declspec(selectany)\r
-#else\r
- #define GLOBAL_REMOVE_IF_UNREFERENCED\r
-#endif\r
-\r
-//\r
-// For symbol name in GNU assembly code, an extra "_" is necessary\r
-//\r
-#if __GNUC__\r
- #if defined(linux)\r
- #define ASM_PFX(name) name\r
- #else\r
- #define ASM_PFX(name) _##name\r
- #endif \r
+#if defined(__GNUC__)\r
+ ///\r
+ /// For GNU assembly code, .global or .globl can declare global symbols.\r
+ /// Define this macro to unify the usage.\r
+ ///\r
+ #define ASM_GLOBAL .globl\r