mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	Currently, CONFIG_JUMP_LABEL just means "I _want_ to use jump label". The jump label is controlled by HAVE_JUMP_LABEL, which is defined like this: #if defined(CC_HAVE_ASM_GOTO) && defined(CONFIG_JUMP_LABEL) # define HAVE_JUMP_LABEL #endif We can improve this by testing 'asm goto' support in Kconfig, then make JUMP_LABEL depend on CC_HAS_ASM_GOTO. Ugly #ifdef HAVE_JUMP_LABEL will go away, and CONFIG_JUMP_LABEL will match to the real kernel capability. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Michael Ellerman <mpe@ellerman.id.au> (powerpc) Tested-by: Sedat Dilek <sedat.dilek@gmail.com>
		
			
				
	
	
		
			22 lines
		
	
	
	
		
			511 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			22 lines
		
	
	
	
		
			511 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
#!/bin/sh
 | 
						|
# SPDX-License-Identifier: GPL-2.0
 | 
						|
# Test for gcc 'asm goto' support
 | 
						|
# Copyright (C) 2010, Jason Baron <jbaron@redhat.com>
 | 
						|
 | 
						|
cat << "END" | $@ -x c - -fno-PIE -c -o /dev/null
 | 
						|
int main(void)
 | 
						|
{
 | 
						|
#if defined(__arm__) || defined(__aarch64__)
 | 
						|
	/*
 | 
						|
	 * Not related to asm goto, but used by jump label
 | 
						|
	 * and broken on some ARM GCC versions (see GCC Bug 48637).
 | 
						|
	 */
 | 
						|
	static struct { int dummy; int state; } tp;
 | 
						|
	asm (".long %c0" :: "i" (&tp.state));
 | 
						|
#endif
 | 
						|
 | 
						|
entry:
 | 
						|
	asm goto ("" :::: entry);
 | 
						|
	return 0;
 | 
						|
}
 | 
						|
END
 |