Message ID | 20160428222137.GB18227@yury-N73SV (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Friday 29 April 2016 01:21:37 Yury Norov wrote: > index 1458ad7..410d817 100644 > --- a/arch/arm64/kernel/sys_ilp32.c > +++ b/arch/arm64/kernel/sys_ilp32.c > @@ -17,6 +17,8 @@ > * along with this program. If not, see > * <http://www.gnu.org/licenses/>. > */ > > +#define __SYSCALL_COMPAT > + > #include <linux/compiler.h> > #include <linux/errno.h> > #include <linux/fs.h> > @@ -48,13 +50,12 @@ asmlinkage long > ilp32_sys_rt_sigreturn_wrapper(void); > > #include <asm/syscall.h> > > -#undef __SYSCALL > -#undef __SC_COMP > -#undef __SC_WRAP > -#undef __SC_3264 > -#undef __SC_COMP_3264 > > -#define __SYSCALL_COMPAT > #define __SYSCALL(nr, sym) [nr] = sym, > #define __SC_WRAP(nr, sym) [nr] = compat_##sym, > > This patch makes gcc warn about redefinition. > > arch/arm64/kernel/sys_ilp32.c:59:0: warning: "__SYSCALL" redefined > #define __SYSCALL(nr, sym) [nr] = sym, > ^ > In file included from include/asm-generic/unistd.h:1:0, > Ok, I think I see it now. Can you #undef the two symbols at the end of arch/arm64/include/uapi/asm/unistd.h or possibly include/uapi/asm-generic/unistd.h? Arnd
On Fri, Apr 29, 2016 at 12:43:41AM +0200, Arnd Bergmann wrote: > On Friday 29 April 2016 01:21:37 Yury Norov wrote: > > index 1458ad7..410d817 100644 > > --- a/arch/arm64/kernel/sys_ilp32.c > > +++ b/arch/arm64/kernel/sys_ilp32.c > > @@ -17,6 +17,8 @@ > > * along with this program. If not, see > > * <http://www.gnu.org/licenses/>. > > */ > > > > +#define __SYSCALL_COMPAT > > + > > #include <linux/compiler.h> > > #include <linux/errno.h> > > #include <linux/fs.h> > > @@ -48,13 +50,12 @@ asmlinkage long > > ilp32_sys_rt_sigreturn_wrapper(void); > > > > #include <asm/syscall.h> > > > > -#undef __SYSCALL > > -#undef __SC_COMP > > -#undef __SC_WRAP > > -#undef __SC_3264 > > -#undef __SC_COMP_3264 > > > > -#define __SYSCALL_COMPAT > > #define __SYSCALL(nr, sym) [nr] = sym, > > #define __SC_WRAP(nr, sym) [nr] = compat_##sym, > > > > This patch makes gcc warn about redefinition. > > > > arch/arm64/kernel/sys_ilp32.c:59:0: warning: "__SYSCALL" redefined > > #define __SYSCALL(nr, sym) [nr] = sym, > > ^ > > In file included from include/asm-generic/unistd.h:1:0, > > > > Ok, I think I see it now. Can you #undef the two symbols at the > end of arch/arm64/include/uapi/asm/unistd.h I think it doesn't look better than what we have now, but not worse as well. If you like it, I'll change. > or possibly > include/uapi/asm-generic/unistd.h? > > Arnd
On Friday 29 April 2016 16:13:38 Yury Norov wrote: > On Fri, Apr 29, 2016 at 12:43:41AM +0200, Arnd Bergmann wrote: > > On Friday 29 April 2016 01:21:37 Yury Norov wrote: > > > > > > arch/arm64/kernel/sys_ilp32.c:59:0: warning: "__SYSCALL" redefined > > > #define __SYSCALL(nr, sym) [nr] = sym, > > > ^ > > > In file included from include/asm-generic/unistd.h:1:0, > > > > > > > Ok, I think I see it now. Can you #undef the two symbols at the > > end of arch/arm64/include/uapi/asm/unistd.h > > I think it doesn't look better than what we have now, but not worse > as well. If you like it, I'll change. I looked again and saw that the existing architectures also #undef __SYSCALL, and they don't have __SC_WRAP. It's probably fine to just #undef the two here (don't undef SC_COMP, __SC_3264 and SC_COMP_3264). Changing the asm-generic header to not require the #undef would be nice, but then we should do that for all 12 users of that file. Arnd
diff --git a/arch/arm64/kernel/sys_ilp32.c b/arch/arm64/kernel/sys_ilp32.c index 1458ad7..410d817 100644 --- a/arch/arm64/kernel/sys_ilp32.c +++ b/arch/arm64/kernel/sys_ilp32.c @@ -17,6 +17,8 @@ * along with this program. If not, see * <http://www.gnu.org/licenses/>. */ +#define __SYSCALL_COMPAT + #include <linux/compiler.h> #include <linux/errno.h>