CONFIG_SYMBOL_PREFIX: cleanup.
We have CONFIG_SYMBOL_PREFIX, which three archs define to the string "_". But Al Viro broke this in "consolidate cond_syscall and SYSCALL_ALIAS declarations" (in linux-next), and he's not the first to do so. Using CONFIG_SYMBOL_PREFIX is awkward, since we usually just want to prefix it so something. So various places define helpers which are defined to nothing if CONFIG_SYMBOL_PREFIX isn't set: 1) include/asm-generic/unistd.h defines __SYMBOL_PREFIX. 2) include/asm-generic/vmlinux.lds.h defines VMLINUX_SYMBOL(sym) 3) include/linux/export.h defines MODULE_SYMBOL_PREFIX. 4) include/linux/kernel.h defines SYMBOL_PREFIX (which differs from #7) 5) kernel/modsign_certificate.S defines ASM_SYMBOL(sym) 6) scripts/modpost.c defines MODULE_SYMBOL_PREFIX 7) scripts/Makefile.lib defines SYMBOL_PREFIX on the commandline if CONFIG_SYMBOL_PREFIX is set, so that we have a non-string version for pasting. (arch/h8300/include/asm/linkage.h defines SYMBOL_NAME(), too). Let's solve this properly: 1) No more generic prefix, just CONFIG_HAVE_UNDERSCORE_SYMBOL_PREFIX. 2) Make linux/export.h usable from asm. 3) Define VMLINUX_SYMBOL() and VMLINUX_SYMBOL_STR(). 4) Make everyone use them. Signed-off-by:Rusty Russell <rusty@rustcorp.com.au> Reviewed-by:
James Hogan <james.hogan@imgtec.com> Tested-by: James Hogan <james.hogan@imgtec.com> (metag)
Showing
- Makefile 1 addition, 1 deletionMakefile
- arch/Kconfig 6 additions, 0 deletionsarch/Kconfig
- arch/blackfin/Kconfig 1 addition, 4 deletionsarch/blackfin/Kconfig
- arch/h8300/Kconfig 1 addition, 4 deletionsarch/h8300/Kconfig
- arch/metag/Kconfig 1 addition, 4 deletionsarch/metag/Kconfig
- drivers/mtd/chips/gen_probe.c 5 additions, 3 deletionsdrivers/mtd/chips/gen_probe.c
- include/asm-generic/unistd.h 4 additions, 8 deletionsinclude/asm-generic/unistd.h
- include/asm-generic/vmlinux.lds.h 1 addition, 7 deletionsinclude/asm-generic/vmlinux.lds.h
- include/linux/export.h 14 additions, 6 deletionsinclude/linux/export.h
- include/linux/kernel.h 0 additions, 7 deletionsinclude/linux/kernel.h
- include/linux/module.h 2 additions, 2 deletionsinclude/linux/module.h
- kernel/modsign_certificate.S 3 additions, 10 deletionskernel/modsign_certificate.S
- kernel/module.c 1 addition, 1 deletionkernel/module.c
- scripts/Makefile.lib 0 additions, 7 deletionsscripts/Makefile.lib
- scripts/link-vmlinux.sh 2 additions, 3 deletionsscripts/link-vmlinux.sh
- scripts/mod/modpost.c 15 additions, 21 deletionsscripts/mod/modpost.c
Loading
Please register or sign in to comment