From: Greg KH <gregkh@linuxfoundation.org>
To: Arnd Bergmann <arnd@arndb.de>
Cc: "# 3.4.x" <stable@vger.kernel.org>,
Michal Marek <mmarek@suse.com>,
Linux Kbuild mailing list <linux-kbuild@vger.kernel.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] [stable 4.14] turn off -Wattribute-alias
Date: Fri, 27 Jul 2018 11:19:39 +0200 [thread overview]
Message-ID: <20180727091939.GA12736@kroah.com> (raw)
In-Reply-To: <CAK8P3a3g7VSu3W0DiMcUdLB0b1fmUaHJxEyC30K8EfP5a9T1ig@mail.gmail.com>
On Thu, Jul 26, 2018 at 12:02:42PM +0200, Arnd Bergmann wrote:
> On Thu, Jul 26, 2018 at 11:22 AM, Greg KH <gregkh@linuxfoundation.org> wrote:
> > On Thu, Jul 26, 2018 at 10:13:22AM +0200, Arnd Bergmann wrote:
> >> Starting with gcc-8.1, we get a warning about all system call definitions,
> >> which use an alias between functions with incompatible prototypes, e.g.:
> >>
> >> In file included from ../mm/process_vm_access.c:19:
> >> ../include/linux/syscalls.h:211:18: warning: 'sys_process_vm_readv' alias between functions of incompatible types 'long int(pid_t, const struct iovec *, long unsigned int, const struct iovec *, long unsigned int, long unsigned int)' {aka 'long int(int, const struct iovec *, long unsigned int, const struct iovec *, long unsigned int, long unsigned int)'} and 'long int(long int, long int, long int, long int, long int, long int)' [-Wattribute-alias]
> >> asmlinkage long sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) \
> >> ^~~
> >> ../include/linux/syscalls.h:207:2: note: in expansion of macro '__SYSCALL_DEFINEx'
> >> __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
> >> ^~~~~~~~~~~~~~~~~
> >> ../include/linux/syscalls.h:201:36: note: in expansion of macro 'SYSCALL_DEFINEx'
> >> #define SYSCALL_DEFINE6(name, ...) SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
> >> ^~~~~~~~~~~~~~~
> >> ../mm/process_vm_access.c:300:1: note: in expansion of macro 'SYSCALL_DEFINE6'
> >> SYSCALL_DEFINE6(process_vm_readv, pid_t, pid, const struct iovec __user *, lvec,
> >> ^~~~~~~~~~~~~~~
> >> ../include/linux/syscalls.h:215:18: note: aliased declaration here
> >> asmlinkage long SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \
> >> ^~~
> >> ../include/linux/syscalls.h:207:2: note: in expansion of macro '__SYSCALL_DEFINEx'
> >> __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
> >> ^~~~~~~~~~~~~~~~~
> >> ../include/linux/syscalls.h:201:36: note: in expansion of macro 'SYSCALL_DEFINEx'
> >> #define SYSCALL_DEFINE6(name, ...) SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
> >> ^~~~~~~~~~~~~~~
> >> ../mm/process_vm_access.c:300:1: note: in expansion of macro 'SYSCALL_DEFINE6'
> >> SYSCALL_DEFINE6(process_vm_readv, pid_t, pid, const struct iovec __user *, lvec,
> >>
> >> This is really noisy and does not indicate a real problem. In the latest
> >> mainline kernel, this was addressed by commit bee20031772a ("disable
> >> -Wattribute-alias warning for SYSCALL_DEFINEx()"), which seems too invasive
> >> to backport.
> >
> > Too invasive?
> >
> > Here's the diffstat:
> > include/linux/compat.h | 8 +++++++-
> > include/linux/syscalls.h | 4 ++++
> > 2 files changed, 11 insertions(+), 1 deletion(-)
> >
> > That seems almost trivial to backport. Did you try it and it caused
> > other problems?
> >
> > Where ever possible, I always want to use the upstream commits.
>
> I forward ported that patch a few times across kernels when that macro
> changed in subtle ways. This was particularly tricky as some using the
> new macro inside of another macro sometimes has different effects
> based on seemingly unrelated changes: in particular the addition of
> __MAP() in COMPAT_SYSCALL_DEFINEx that I had to do to work
> around gcc pr83256 can easily break.
>
> It also depends on commit 8793bb7f4a9d ("kbuild: add macro for
> controlling warnings to linux/compiler.h") before it, which is not long
> but does add new infrastructure.
Ah, yeah, that's a mess. Ok, I'll go queue these up, thanks. Maybe I
can finally move to gcc-8 now :)
thanks,
greg k-h
prev parent reply other threads:[~2018-07-27 10:40 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-07-26 8:13 [PATCH] [stable 4.14] turn off -Wattribute-alias Arnd Bergmann
2018-07-26 8:13 ` [PATCH] [stable 4.4] ARM: fix put_user() for gcc-8 Arnd Bergmann
2018-07-26 8:13 ` Arnd Bergmann
2018-07-27 9:45 ` Patch "ARM: fix put_user() for gcc-8" has been added to the 3.18-stable tree gregkh at linuxfoundation.org
2018-07-27 9:45 ` Patch "ARM: fix put_user() for gcc-8" has been added to the 4.4-stable tree gregkh at linuxfoundation.org
2018-07-26 8:13 ` [PATCH] [stable 4.4] turn off -Wattribute-alias Arnd Bergmann
2018-07-26 8:13 ` [PATCH 1/2] [stable 4.9] " Arnd Bergmann
2018-07-26 8:13 ` [PATCH 2/2] [stable-4.9] exec: avoid gcc-8 warning for get_task_comm Arnd Bergmann
2018-07-26 9:22 ` [PATCH] [stable 4.14] turn off -Wattribute-alias Greg KH
2018-07-26 10:02 ` Arnd Bergmann
2018-07-27 9:19 ` Greg KH [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180727091939.GA12736@kroah.com \
--to=gregkh@linuxfoundation.org \
--cc=arnd@arndb.de \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mmarek@suse.com \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.