Author: mstorsjo Date: Sun Oct 22 12:39:26 2017 New Revision: 316300 URL: http://llvm.org/viewvc/llvm-project?rev=316300&view=rev Log: Make HIDDEN_DIRECTIVE a function-like macro. NFCI.
This avoids a hack for making it a no-op for windows. Also explicitly check for _WIN32 instead of assuming it. Differential Revision: https://reviews.llvm.org/D39156 Modified: libunwind/trunk/src/assembly.h Modified: libunwind/trunk/src/assembly.h URL: http://llvm.org/viewvc/llvm-project/libunwind/trunk/src/assembly.h?rev=316300&r1=316299&r2=316300&view=diff ============================================================================== --- libunwind/trunk/src/assembly.h (original) +++ libunwind/trunk/src/assembly.h Sun Oct 22 12:39:26 2017 @@ -24,20 +24,6 @@ #define SEPARATOR ; #endif -#if defined(__APPLE__) -#define HIDDEN_DIRECTIVE .private_extern -#elif defined(_WIN32) -// In the COFF object file format, there's no attributes for a global, -// non-static symbol to make it somehow hidden. So on windows, we don't -// want to set this at all. To avoid conditionals in -// DEFINE_LIBUNWIND_PRIVATE_FUNCTION below, make it .globl (which it already -// is, defined in the same DEFINE_LIBUNWIND_PRIVATE_FUNCTION macro; the -// duplicate .globl directives are harmless). -#define HIDDEN_DIRECTIVE .globl -#else -#define HIDDEN_DIRECTIVE .hidden -#endif - #define GLUE2(a, b) a ## b #define GLUE(a, b) GLUE2(a, b) #define SYMBOL_NAME(name) GLUE(__USER_LABEL_PREFIX__, name) @@ -45,6 +31,7 @@ #if defined(__APPLE__) #define SYMBOL_IS_FUNC(name) +#define HIDDEN_SYMBOL(name) .private_extern name #define NO_EXEC_STACK_DIRECTIVE #elif defined(__ELF__) @@ -54,6 +41,7 @@ #else #define SYMBOL_IS_FUNC(name) .type name,@function #endif +#define HIDDEN_SYMBOL(name) .hidden name #if defined(__GNU__) || defined(__FreeBSD__) || defined(__Fuchsia__) || \ defined(__linux__) @@ -62,16 +50,21 @@ #define NO_EXEC_STACK_DIRECTIVE #endif -#else +#elif defined(_WIN32) #define SYMBOL_IS_FUNC(name) \ .def name SEPARATOR \ .scl 2 SEPARATOR \ .type 32 SEPARATOR \ .endef +#define HIDDEN_SYMBOL(name) #define NO_EXEC_STACK_DIRECTIVE +#else + +#error Unsupported target + #endif #define DEFINE_LIBUNWIND_FUNCTION(name) \ @@ -81,7 +74,7 @@ #define DEFINE_LIBUNWIND_PRIVATE_FUNCTION(name) \ .globl SYMBOL_NAME(name) SEPARATOR \ - HIDDEN_DIRECTIVE SYMBOL_NAME(name) SEPARATOR \ + HIDDEN_SYMBOL(SYMBOL_NAME(name)) SEPARATOR \ SYMBOL_IS_FUNC(SYMBOL_NAME(name)) SEPARATOR \ SYMBOL_NAME(name): _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits