mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	export.h: remove code for prefixing symbols with underscore
CONFIG_HAVE_UNDERSCORE_SYMBOL_PREFIX was selected by BLACKFIN, METAG. They were removed by commit4ba66a9760("arch: remove blackfin port"), commitbb6fb6dfcc("metag: Remove arch/metag/"), respectively. No more architecture enables CONFIG_HAVE_UNDERSCORE_SYMBOL_PREFIX. Clean up the export.h headers. I am keeping VMLINUX_SYMBOL() and VMLINUX_SYMBOL_STR() because they are widely used. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
This commit is contained in:
		
							parent
							
								
									5a144a1acd
								
							
						
					
					
						commit
						94e58e0ac3
					
				
					 2 changed files with 17 additions and 33 deletions
				
			
		| 
						 | 
					@ -19,42 +19,32 @@
 | 
				
			||||||
#define KCRC_ALIGN 4
 | 
					#define KCRC_ALIGN 4
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef CONFIG_HAVE_UNDERSCORE_SYMBOL_PREFIX
 | 
					 | 
				
			||||||
#define KSYM(name) _##name
 | 
					 | 
				
			||||||
#else
 | 
					 | 
				
			||||||
#define KSYM(name) name
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * note on .section use: @progbits vs %progbits nastiness doesn't matter,
 | 
					 * note on .section use: @progbits vs %progbits nastiness doesn't matter,
 | 
				
			||||||
 * since we immediately emit into those sections anyway.
 | 
					 * since we immediately emit into those sections anyway.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
.macro ___EXPORT_SYMBOL name,val,sec
 | 
					.macro ___EXPORT_SYMBOL name,val,sec
 | 
				
			||||||
#ifdef CONFIG_MODULES
 | 
					#ifdef CONFIG_MODULES
 | 
				
			||||||
	.globl KSYM(__ksymtab_\name)
 | 
						.globl __ksymtab_\name
 | 
				
			||||||
	.section ___ksymtab\sec+\name,"a"
 | 
						.section ___ksymtab\sec+\name,"a"
 | 
				
			||||||
	.balign KSYM_ALIGN
 | 
						.balign KSYM_ALIGN
 | 
				
			||||||
KSYM(__ksymtab_\name):
 | 
					__ksymtab_\name:
 | 
				
			||||||
	__put \val, KSYM(__kstrtab_\name)
 | 
						__put \val, __kstrtab_\name
 | 
				
			||||||
	.previous
 | 
						.previous
 | 
				
			||||||
	.section __ksymtab_strings,"a"
 | 
						.section __ksymtab_strings,"a"
 | 
				
			||||||
KSYM(__kstrtab_\name):
 | 
					__kstrtab_\name:
 | 
				
			||||||
#ifdef CONFIG_HAVE_UNDERSCORE_SYMBOL_PREFIX
 | 
					 | 
				
			||||||
	.asciz "_\name"
 | 
					 | 
				
			||||||
#else
 | 
					 | 
				
			||||||
	.asciz "\name"
 | 
						.asciz "\name"
 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
	.previous
 | 
						.previous
 | 
				
			||||||
#ifdef CONFIG_MODVERSIONS
 | 
					#ifdef CONFIG_MODVERSIONS
 | 
				
			||||||
	.section ___kcrctab\sec+\name,"a"
 | 
						.section ___kcrctab\sec+\name,"a"
 | 
				
			||||||
	.balign KCRC_ALIGN
 | 
						.balign KCRC_ALIGN
 | 
				
			||||||
KSYM(__kcrctab_\name):
 | 
					__kcrctab_\name:
 | 
				
			||||||
#if defined(CONFIG_MODULE_REL_CRCS)
 | 
					#if defined(CONFIG_MODULE_REL_CRCS)
 | 
				
			||||||
	.long KSYM(__crc_\name) - .
 | 
						.long __crc_\name - .
 | 
				
			||||||
#else
 | 
					#else
 | 
				
			||||||
	.long KSYM(__crc_\name)
 | 
						.long __crc_\name
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
	.weak KSYM(__crc_\name)
 | 
						.weak __crc_\name
 | 
				
			||||||
	.previous
 | 
						.previous
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
| 
						 | 
					@ -84,12 +74,12 @@ KSYM(__kcrctab_\name):
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define EXPORT_SYMBOL(name)					\
 | 
					#define EXPORT_SYMBOL(name)					\
 | 
				
			||||||
	__EXPORT_SYMBOL(name, KSYM_FUNC(KSYM(name)),)
 | 
						__EXPORT_SYMBOL(name, KSYM_FUNC(name),)
 | 
				
			||||||
#define EXPORT_SYMBOL_GPL(name) 				\
 | 
					#define EXPORT_SYMBOL_GPL(name) 				\
 | 
				
			||||||
	__EXPORT_SYMBOL(name, KSYM_FUNC(KSYM(name)), _gpl)
 | 
						__EXPORT_SYMBOL(name, KSYM_FUNC(name), _gpl)
 | 
				
			||||||
#define EXPORT_DATA_SYMBOL(name)				\
 | 
					#define EXPORT_DATA_SYMBOL(name)				\
 | 
				
			||||||
	__EXPORT_SYMBOL(name, KSYM(name),)
 | 
						__EXPORT_SYMBOL(name, name,)
 | 
				
			||||||
#define EXPORT_DATA_SYMBOL_GPL(name)				\
 | 
					#define EXPORT_DATA_SYMBOL_GPL(name)				\
 | 
				
			||||||
	__EXPORT_SYMBOL(name, KSYM(name),_gpl)
 | 
						__EXPORT_SYMBOL(name, name,_gpl)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -10,14 +10,8 @@
 | 
				
			||||||
 * hackers place grumpy comments in header files.
 | 
					 * hackers place grumpy comments in header files.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Some toolchains use a `_' prefix for all user symbols. */
 | 
					 | 
				
			||||||
#ifdef CONFIG_HAVE_UNDERSCORE_SYMBOL_PREFIX
 | 
					 | 
				
			||||||
#define __VMLINUX_SYMBOL(x) _##x
 | 
					 | 
				
			||||||
#define __VMLINUX_SYMBOL_STR(x) "_" #x
 | 
					 | 
				
			||||||
#else
 | 
					 | 
				
			||||||
#define __VMLINUX_SYMBOL(x) x
 | 
					#define __VMLINUX_SYMBOL(x) x
 | 
				
			||||||
#define __VMLINUX_SYMBOL_STR(x) #x
 | 
					#define __VMLINUX_SYMBOL_STR(x) #x
 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Indirect, so macros are expanded before pasting. */
 | 
					/* Indirect, so macros are expanded before pasting. */
 | 
				
			||||||
#define VMLINUX_SYMBOL(x) __VMLINUX_SYMBOL(x)
 | 
					#define VMLINUX_SYMBOL(x) __VMLINUX_SYMBOL(x)
 | 
				
			||||||
| 
						 | 
					@ -46,14 +40,14 @@ extern struct module __this_module;
 | 
				
			||||||
#if defined(CONFIG_MODULE_REL_CRCS)
 | 
					#if defined(CONFIG_MODULE_REL_CRCS)
 | 
				
			||||||
#define __CRC_SYMBOL(sym, sec)						\
 | 
					#define __CRC_SYMBOL(sym, sec)						\
 | 
				
			||||||
	asm("	.section \"___kcrctab" sec "+" #sym "\", \"a\"	\n"	\
 | 
						asm("	.section \"___kcrctab" sec "+" #sym "\", \"a\"	\n"	\
 | 
				
			||||||
	    "	.weak	" VMLINUX_SYMBOL_STR(__crc_##sym) "	\n"	\
 | 
						    "	.weak	__crc_" #sym "				\n"	\
 | 
				
			||||||
	    "	.long	" VMLINUX_SYMBOL_STR(__crc_##sym) " - .	\n"	\
 | 
						    "	.long	__crc_" #sym " - .			\n"	\
 | 
				
			||||||
	    "	.previous					\n");
 | 
						    "	.previous					\n");
 | 
				
			||||||
#else
 | 
					#else
 | 
				
			||||||
#define __CRC_SYMBOL(sym, sec)						\
 | 
					#define __CRC_SYMBOL(sym, sec)						\
 | 
				
			||||||
	asm("	.section \"___kcrctab" sec "+" #sym "\", \"a\"	\n"	\
 | 
						asm("	.section \"___kcrctab" sec "+" #sym "\", \"a\"	\n"	\
 | 
				
			||||||
	    "	.weak	" VMLINUX_SYMBOL_STR(__crc_##sym) "	\n"	\
 | 
						    "	.weak	__crc_" #sym "				\n"	\
 | 
				
			||||||
	    "	.long	" VMLINUX_SYMBOL_STR(__crc_##sym) "	\n"	\
 | 
						    "	.long	__crc_" #sym "				\n"	\
 | 
				
			||||||
	    "	.previous					\n");
 | 
						    "	.previous					\n");
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
#else
 | 
					#else
 | 
				
			||||||
| 
						 | 
					@ -66,7 +60,7 @@ extern struct module __this_module;
 | 
				
			||||||
	__CRC_SYMBOL(sym, sec)						\
 | 
						__CRC_SYMBOL(sym, sec)						\
 | 
				
			||||||
	static const char __kstrtab_##sym[]				\
 | 
						static const char __kstrtab_##sym[]				\
 | 
				
			||||||
	__attribute__((section("__ksymtab_strings"), aligned(1)))	\
 | 
						__attribute__((section("__ksymtab_strings"), aligned(1)))	\
 | 
				
			||||||
	= VMLINUX_SYMBOL_STR(sym);					\
 | 
						= #sym;								\
 | 
				
			||||||
	static const struct kernel_symbol __ksymtab_##sym		\
 | 
						static const struct kernel_symbol __ksymtab_##sym		\
 | 
				
			||||||
	__used								\
 | 
						__used								\
 | 
				
			||||||
	__attribute__((section("___ksymtab" sec "+" #sym), used))	\
 | 
						__attribute__((section("___ksymtab" sec "+" #sym), used))	\
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue