Re: [PATCH 5/8] export.h: remove code for prefixing symbols with underscore

From: Sam Ravnborg
Date: Wed May 09 2018 - 12:07:39 EST


Hi Masahiro

On Wed, May 09, 2018 at 04:23:49PM +0900, Masahiro Yamada wrote:
> CONFIG_HAVE_UNDERSCORE_SYMBOL_PREFIX was selected by BLACKFIN, METAG.
> They were removed by commit 4ba66a976072 ("arch: remove blackfin port"),
> commit bb6fb6dfcc17 ("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@xxxxxxxxxxxxx>
> ---
> diff --git a/include/linux/export.h b/include/linux/export.h
> index 1a1dfdb..b768d6d 100644
> --- a/include/linux/export.h
> +++ b/include/linux/export.h
> @@ -10,14 +10,8 @@
> * 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_STR(x) #x
> -#endif
>
> /* Indirect, so macros are expanded before pasting. */
> #define VMLINUX_SYMBOL(x) __VMLINUX_SYMBOL(x)

Since we no longer need any expansion, then the indirection
seems unnessesary.

I think we can reduce this to just:
#define VMLINUX_SYMBOL(x) x

Likewise for __VMLINUX_SYMBOL_STR

Sam