[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20130502133737.c2874e483bdc1380a59786f4@canb.auug.org.au>
Date: Thu, 2 May 2013 13:37:37 +1000
From: Stephen Rothwell <sfr@...b.auug.org.au>
To: Rusty Russell <rusty@...tcorp.com.au>
Cc: James Hogan <james.hogan@...tec.com>,
torvalds@...ux-foundation.org, linux-kernel@...r.kernel.org,
Al Viro <viro@...iv.linux.org.uk>,
Mike Frysinger <vapier@...too.org>,
uclinux-dist-devel@...ckfin.uclinux.org
Subject: Re: [PATCH] linkage.h: fix build breakage due to symbol prefix
handling
Hi all,
On Thu, 02 May 2013 09:58:08 +0930 Rusty Russell <rusty@...tcorp.com.au> wrote:
>
> James Hogan <james.hogan@...tec.com> writes:
> > Al's commit e1b5bb6d1236d4ad2084c53aa83dde7cdf6f8eea ("consolidate
> > cond_syscall and SYSCALL_ALIAS declarations") broke the build on
> > blackfin and metag due to the following code:
> >
> > #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))
> >
> > __stringify literally stringifies CONFIG_SYMBOL_PREFIX ##x, so you get
> > lines like this in kernel/sys_ni.s:
> >
> > .weak CONFIG_SYMBOL_PREFIXsys_quotactl
> > .set CONFIG_SYMBOL_PREFIXsys_quotactl,CONFIG_SYMBOL_PREFIXsys_ni_syscall
> >
> > The patches in Rusty's modules-next tree such as "CONFIG_SYMBOL_PREFIX:
> > cleanup." clean up the whole mess around symbol prefixes, so this patch
> > just attempts to fix the build in the mean time. The intermediate
> > definition of SYMBOL_NAME above isn't used and is incorrect when
> > CONFIG_SYMBOL_PREFIX is defined as CONFIG_SYMBOL_PREFIX is a quoted
> > string literal, so define __SYMBOL_NAME directly depending on
> > CONFIG_SYMBOL_PREFIX.
>
> I just pushed my modules-next tree to Linus, so hopefully the nightmare
> is over soon!
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@...b.auug.org.au>
Date: Thu, 14 Mar 2013 17:14:41 +1100
Subject: [PATCH] cond_syscall and SYSCALL_ALIAS merge fixup
Signed-off-by: Stephen Rothwell <sfr@...b.auug.org.au>
---
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
--
Cheers,
Stephen Rothwell sfr@...b.auug.org.au
Content of type "application/pgp-signature" skipped
Powered by blists - more mailing lists