summaryrefslogtreecommitdiffstats
path: root/include/linux/linkage.h
diff options
context:
space:
mode:
authorChen Gang <gang.chen.5i5j@gmail.com>2014-01-12 09:59:13 +0800
committerMichal Marek <mmarek@suse.cz>2014-01-27 21:45:29 +0100
commit9df62f054406992ce41ec4558fca6a0fa56fffeb (patch)
treed3e24b768c79e1daefefc635bd01e13226699327 /include/linux/linkage.h
parente36aaea28972c57a32a3ba5365e61633739719b9 (diff)
downloadop-kernel-dev-9df62f054406992ce41ec4558fca6a0fa56fffeb.zip
op-kernel-dev-9df62f054406992ce41ec4558fca6a0fa56fffeb.tar.gz
arch: use ASM_NL instead of ';' for assembler new line character in the macro
For some assemblers, they use another character as newline in a macro (e.g. arc uses '`'), so for generic assembly code, need use ASM_NL (a macro) instead of ';' for it. Signed-off-by: Chen Gang <gang.chen.5i5j@gmail.com> Acked-by: Vineet Gupta <vgupta@synopsys.com> Signed-off-by: Michal Marek <mmarek@suse.cz>
Diffstat (limited to 'include/linux/linkage.h')
-rw-r--r--include/linux/linkage.h19
1 files changed, 12 insertions, 7 deletions
diff --git a/include/linux/linkage.h b/include/linux/linkage.h
index d3e8ad2..a6a42dd 100644
--- a/include/linux/linkage.h
+++ b/include/linux/linkage.h
@@ -6,6 +6,11 @@
#include <linux/export.h>
#include <asm/linkage.h>
+/* Some toolchains use other characters (e.g. '`') to mark new line in macro */
+#ifndef ASM_NL
+#define ASM_NL ;
+#endif
+
#ifdef __cplusplus
#define CPP_ASMLINKAGE extern "C"
#else
@@ -75,21 +80,21 @@
#ifndef ENTRY
#define ENTRY(name) \
- .globl name; \
- ALIGN; \
- name:
+ .globl name ASM_NL \
+ ALIGN ASM_NL \
+ name:
#endif
#endif /* LINKER_SCRIPT */
#ifndef WEAK
#define WEAK(name) \
- .weak name; \
+ .weak name ASM_NL \
name:
#endif
#ifndef END
#define END(name) \
- .size name, .-name
+ .size name, .-name
#endif
/* If symbol 'name' is treated as a subroutine (gets called, and returns)
@@ -98,8 +103,8 @@
*/
#ifndef ENDPROC
#define ENDPROC(name) \
- .type name, @function; \
- END(name)
+ .type name, @function ASM_NL \
+ END(name)
#endif
#endif
OpenPOWER on IntegriCloud