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
					
				
			
		
					 2 changed files with 14 additions and 7 deletions
				
			
		|  | @ -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…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Chen Gang
				Chen Gang