[compiler-rt] r199273 - Declare assembler functions as symbols of type function for ELF.
Joerg Sonnenberger
joerg at bec.de
Tue Jan 14 15:31:24 PST 2014
Author: joerg
Date: Tue Jan 14 17:31:23 2014
New Revision: 199273
URL: http://llvm.org/viewvc/llvm-project?rev=199273&view=rev
Log:
Declare assembler functions as symbols of type function for ELF.
Fixes dynamically linked programs on NetBSD/i386.
Modified:
compiler-rt/trunk/lib/assembly.h
Modified: compiler-rt/trunk/lib/assembly.h
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/assembly.h?rev=199273&r1=199272&r2=199273&view=diff
==============================================================================
--- compiler-rt/trunk/lib/assembly.h (original)
+++ compiler-rt/trunk/lib/assembly.h Tue Jan 14 17:31:23 2014
@@ -26,10 +26,12 @@
#define HIDDEN_DIRECTIVE .private_extern
#define LOCAL_LABEL(name) L_##name
#define FILE_LEVEL_DIRECTIVE .subsections_via_symbols
+#define SYMBOL_IS_FUNC(name)
#else
#define HIDDEN_DIRECTIVE .hidden
#define LOCAL_LABEL(name) .L_##name
-#define FILE_LEVEL_DIRECTIVE
+#define FILE_LEVEL_DIRECTIVE
+#define SYMBOL_IS_FUNC(name) .type name, @function
#endif
#define GLUE2(a, b) a ## b
@@ -46,21 +48,25 @@
#define DEFINE_COMPILERRT_FUNCTION(name) \
FILE_LEVEL_DIRECTIVE SEPARATOR \
.globl SYMBOL_NAME(name) SEPARATOR \
+ SYMBOL_IS_FUNC(SYMBOL_NAME(name)) SEPARATOR \
DECLARE_SYMBOL_VISIBILITY(name) \
SYMBOL_NAME(name):
#define DEFINE_COMPILERRT_PRIVATE_FUNCTION(name) \
.globl SYMBOL_NAME(name) SEPARATOR \
+ SYMBOL_IS_FUNC(SYMBOL_NAME(name)) SEPARATOR \
HIDDEN_DIRECTIVE SYMBOL_NAME(name) SEPARATOR \
SYMBOL_NAME(name):
#define DEFINE_COMPILERRT_PRIVATE_FUNCTION_UNMANGLED(name) \
.globl name SEPARATOR \
+ SYMBOL_IS_FUNC(name) SEPARATOR \
HIDDEN_DIRECTIVE name SEPARATOR \
name:
#define DEFINE_COMPILERRT_FUNCTION_ALIAS(name, target) \
.globl SYMBOL_NAME(name) SEPARATOR \
+ SYMBOL_IS_FUNC(SYMBOL_NAME(name)) SEPARATOR \
.set SYMBOL_NAME(name), SYMBOL_NAME(target) SEPARATOR
#if defined (__ARM_EABI__)
More information about the llvm-commits
mailing list