Re: [PATCH] linkage.h: fix build breakage due to symbol prefixhandling

From: Stephen Rothwell
Date: Thu May 02 2013 - 01:31:11 EST


Hi Rusty,

On Thu, 2 May 2013 13:37:37 +1000 Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote:
>
> This is the merge fix patch I have been carrying in linux-next since
> March 14: (this probably does not quite apply any more but, hey ...)
>
> From: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
> Date: Thu, 14 Mar 2013 17:14:41 +1100
> Subject: [PATCH] cond_syscall and SYSCALL_ALIAS merge fixup
>
> Signed-off-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
> ---
> include/linux/linkage.h | 20 ++++++--------------
> 1 file changed, 6 insertions(+), 14 deletions(-)
>
> diff --git a/include/linux/linkage.h b/include/linux/linkage.h
> index 829d66c..bedcddf 100644
> --- a/include/linux/linkage.h
> +++ b/include/linux/linkage.h
> @@ -2,7 +2,7 @@
> #define _LINUX_LINKAGE_H
>
> #include <linux/compiler.h>
> -#include <linux/stringify.h>
> +#include <linux/export.h>
> #include <asm/linkage.h>
>
> #ifdef __cplusplus
> @@ -15,24 +15,16 @@
> #define asmlinkage CPP_ASMLINKAGE
> #endif
>
> -#ifndef SYMBOL_NAME
> -#ifdef CONFIG_SYMBOL_PREFIX
> -#define SYMBOL_NAME(x) CONFIG_SYMBOL_PREFIX ## x
> -#else
> -#define SYMBOL_NAME(x) x
> -#endif
> -#endif
> -#define __SYMBOL_NAME(x) __stringify(SYMBOL_NAME(x))
> -
> #ifndef cond_syscall
> -#define cond_syscall(x) asm(".weak\t" __SYMBOL_NAME(x) \
> - "\n\t.set\t" __SYMBOL_NAME(x) "," __SYMBOL_NAME(sys_ni_syscall));
> +#define cond_syscall(x) asm(".weak\t" VMLINUX_SYMBOL_STR(x) "\n\t" \
> + ".set\t" VMLINUX_SYMBOL_STR(x) "," \
> + VMLINUX_SYMBOL_STR(sys_ni_syscall))
> #endif
>
> #ifndef SYSCALL_ALIAS
> #define SYSCALL_ALIAS(alias, name) \
> - asm ("\t.globl " __SYMBOL_NAME(alias) \
> - "\n\t.set\t" __SYMBOL_NAME(alias) "," __SYMBOL_NAME(name))
> + asm ("\t.globl " VMLINUX_SYMBOL_STR(alias) \
> + "\n\t.set\t" VMLINUX_SYMBOL_STR(alias) "," VMLINUX_SYMBOL_STR(name))
> #endif
>
> #define __page_aligned_data __section(.data..page_aligned) __aligned(PAGE_SIZE)
> --
> 1.8.1

Version from today's merge fix. Rusty, you should show this to Linus
when you ask him to merge your modules tree (assuming it looks right :-)).

From: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
Date: Thu, 14 Mar 2013 17:14:41 +1100
Subject: [PATCH] cond_syscall and SYSCALL_ALIAS merge fixup

Signed-off-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
---
include/linux/linkage.h | 17 ++++++-----------
1 file changed, 6 insertions(+), 11 deletions(-)

diff --git a/include/linux/linkage.h b/include/linux/linkage.h
index de09dec..bedcddf 100644
--- a/include/linux/linkage.h
+++ b/include/linux/linkage.h
@@ -2,7 +2,7 @@
#define _LINUX_LINKAGE_H

#include <linux/compiler.h>
-#include <linux/stringify.h>
+#include <linux/export.h>
#include <asm/linkage.h>

#ifdef __cplusplus
@@ -15,21 +15,16 @@
#define asmlinkage CPP_ASMLINKAGE
#endif

-#ifdef CONFIG_SYMBOL_PREFIX
-#define __SYMBOL_NAME(x) CONFIG_SYMBOL_PREFIX __stringify(x)
-#else
-#define __SYMBOL_NAME(x) __stringify(x)
-#endif
-
#ifndef cond_syscall
-#define cond_syscall(x) asm(".weak\t" __SYMBOL_NAME(x) \
- "\n\t.set\t" __SYMBOL_NAME(x) "," __SYMBOL_NAME(sys_ni_syscall));
+#define cond_syscall(x) asm(".weak\t" VMLINUX_SYMBOL_STR(x) "\n\t" \
+ ".set\t" VMLINUX_SYMBOL_STR(x) "," \
+ VMLINUX_SYMBOL_STR(sys_ni_syscall))
#endif

#ifndef SYSCALL_ALIAS
#define SYSCALL_ALIAS(alias, name) \
- asm ("\t.globl " __SYMBOL_NAME(alias) \
- "\n\t.set\t" __SYMBOL_NAME(alias) "," __SYMBOL_NAME(name))
+ asm ("\t.globl " VMLINUX_SYMBOL_STR(alias) \
+ "\n\t.set\t" VMLINUX_SYMBOL_STR(alias) "," VMLINUX_SYMBOL_STR(name))
#endif

#define __page_aligned_data __section(.data..page_aligned) __aligned(PAGE_SIZE)

--
Cheers,
Stephen Rothwell sfr@xxxxxxxxxxxxxxxx

Attachment: pgp00000.pgp
Description: PGP signature