diff options
-rw-r--r-- | arch/arc/include/asm/linkage.h | 2 | ||||
-rw-r--r-- | include/linux/linkage.h | 19 |
2 files changed, 14 insertions, 7 deletions
diff --git a/arch/arc/include/asm/linkage.h b/arch/arc/include/asm/linkage.h index 0283e9e44e0d..66ee5527aefc 100644 --- a/arch/arc/include/asm/linkage.h +++ b/arch/arc/include/asm/linkage.h | |||
@@ -11,6 +11,8 @@ | |||
11 | 11 | ||
12 | #ifdef __ASSEMBLY__ | 12 | #ifdef __ASSEMBLY__ |
13 | 13 | ||
14 | #define ASM_NL ` /* use '`' to mark new line in macro */ | ||
15 | |||
14 | /* Can't use the ENTRY macro in linux/linkage.h | 16 | /* Can't use the ENTRY macro in linux/linkage.h |
15 | * gas considers ';' as comment vs. newline | 17 | * gas considers ';' as comment vs. newline |
16 | */ | 18 | */ |
diff --git a/include/linux/linkage.h b/include/linux/linkage.h index d3e8ad23a8e0..a6a42dd02466 100644 --- a/include/linux/linkage.h +++ b/include/linux/linkage.h | |||
@@ -6,6 +6,11 @@ | |||
6 | #include <linux/export.h> | 6 | #include <linux/export.h> |
7 | #include <asm/linkage.h> | 7 | #include <asm/linkage.h> |
8 | 8 | ||
9 | /* Some toolchains use other characters (e.g. '`') to mark new line in macro */ | ||
10 | #ifndef ASM_NL | ||
11 | #define ASM_NL ; | ||
12 | #endif | ||
13 | |||
9 | #ifdef __cplusplus | 14 | #ifdef __cplusplus |
10 | #define CPP_ASMLINKAGE extern "C" | 15 | #define CPP_ASMLINKAGE extern "C" |
11 | #else | 16 | #else |
@@ -75,21 +80,21 @@ | |||
75 | 80 | ||
76 | #ifndef ENTRY | 81 | #ifndef ENTRY |
77 | #define ENTRY(name) \ | 82 | #define ENTRY(name) \ |
78 | .globl name; \ | 83 | .globl name ASM_NL \ |
79 | ALIGN; \ | 84 | ALIGN ASM_NL \ |
80 | name: | 85 | name: |
81 | #endif | 86 | #endif |
82 | #endif /* LINKER_SCRIPT */ | 87 | #endif /* LINKER_SCRIPT */ |
83 | 88 | ||
84 | #ifndef WEAK | 89 | #ifndef WEAK |
85 | #define WEAK(name) \ | 90 | #define WEAK(name) \ |
86 | .weak name; \ | 91 | .weak name ASM_NL \ |
87 | name: | 92 | name: |
88 | #endif | 93 | #endif |
89 | 94 | ||
90 | #ifndef END | 95 | #ifndef END |
91 | #define END(name) \ | 96 | #define END(name) \ |
92 | .size name, .-name | 97 | .size name, .-name |
93 | #endif | 98 | #endif |
94 | 99 | ||
95 | /* If symbol 'name' is treated as a subroutine (gets called, and returns) | 100 | /* If symbol 'name' is treated as a subroutine (gets called, and returns) |
@@ -98,8 +103,8 @@ | |||
98 | */ | 103 | */ |
99 | #ifndef ENDPROC | 104 | #ifndef ENDPROC |
100 | #define ENDPROC(name) \ | 105 | #define ENDPROC(name) \ |
101 | .type name, @function; \ | 106 | .type name, @function ASM_NL \ |
102 | END(name) | 107 | END(name) |
103 | #endif | 108 | #endif |
104 | 109 | ||
105 | #endif | 110 | #endif |