base/asm-common.h: Add a macro for setting the types of data symbols.
[catacomb] / base / asm-common.h
index 323f2e8..83aac63 100644 (file)
@@ -106,12 +106,14 @@ name:
 
 #if __ELF__
 
+// Special arrangements for position-independent code.
 #if __PIC__ || __PIE__
 #  define WANT_PIC 1
 #endif
 
+// Additional symbol metadata.
 #define TYPE_FUNC(name) .type name, STT_FUNC
-
+#define TYPE_OBJ(name) .type name, STT_OBJECT
 #define SIZE_OBJ(name) .size name, . - name
 
 #endif
@@ -121,6 +123,7 @@ name:
 
 #if ABI_WIN
 
+// Function names need decorating on 32-bit i386.
 #if CPUFAM_X86
 #  define F(name) _##name
 #endif
@@ -1194,12 +1197,14 @@ name:
 #ifndef TYPE_FUNC
 #  define TYPE_FUNC(name)
 #endif
-
+#ifndef TYPE_OBJ
+#  define TYPE_OBJ(name)
+#endif
 #ifndef SIZE_OBJ
 #  define SIZE_OBJ(name)
 #endif
 
-#if __ELF__ && !defined(WANT_EXECUTABLE_STACK)
+#if __ELF__ && !defined(FORCE_EXECUTABLE_STACK)
        .pushsection .note.GNU-stack, "", _SECTTY(progbits)
        .popsection
 #endif