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>
This commit is contained in:
parent
e36aaea289
commit
9df62f0544
@ -11,6 +11,8 @@
|
|||||||
|
|
||||||
#ifdef __ASSEMBLY__
|
#ifdef __ASSEMBLY__
|
||||||
|
|
||||||
|
#define ASM_NL ` /* use '`' to mark new line in macro */
|
||||||
|
|
||||||
/* Can't use the ENTRY macro in linux/linkage.h
|
/* Can't use the ENTRY macro in linux/linkage.h
|
||||||
* gas considers ';' as comment vs. newline
|
* gas considers ';' as comment vs. newline
|
||||||
*/
|
*/
|
||||||
|
@ -6,6 +6,11 @@
|
|||||||
#include <linux/export.h>
|
#include <linux/export.h>
|
||||||
#include <asm/linkage.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
|
#ifdef __cplusplus
|
||||||
#define CPP_ASMLINKAGE extern "C"
|
#define CPP_ASMLINKAGE extern "C"
|
||||||
#else
|
#else
|
||||||
@ -75,21 +80,21 @@
|
|||||||
|
|
||||||
#ifndef ENTRY
|
#ifndef ENTRY
|
||||||
#define ENTRY(name) \
|
#define ENTRY(name) \
|
||||||
.globl name; \
|
.globl name ASM_NL \
|
||||||
ALIGN; \
|
ALIGN ASM_NL \
|
||||||
name:
|
name:
|
||||||
#endif
|
#endif
|
||||||
#endif /* LINKER_SCRIPT */
|
#endif /* LINKER_SCRIPT */
|
||||||
|
|
||||||
#ifndef WEAK
|
#ifndef WEAK
|
||||||
#define WEAK(name) \
|
#define WEAK(name) \
|
||||||
.weak name; \
|
.weak name ASM_NL \
|
||||||
name:
|
name:
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef END
|
#ifndef END
|
||||||
#define END(name) \
|
#define END(name) \
|
||||||
.size name, .-name
|
.size name, .-name
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* If symbol 'name' is treated as a subroutine (gets called, and returns)
|
/* If symbol 'name' is treated as a subroutine (gets called, and returns)
|
||||||
@ -98,8 +103,8 @@
|
|||||||
*/
|
*/
|
||||||
#ifndef ENDPROC
|
#ifndef ENDPROC
|
||||||
#define ENDPROC(name) \
|
#define ENDPROC(name) \
|
||||||
.type name, @function; \
|
.type name, @function ASM_NL \
|
||||||
END(name)
|
END(name)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user