Arnd Bergmann
2018-Jun-05 21:28 UTC
[PATCH v2 2/2] x86: paravirt: make native_save_fl extern inline
On Tue, Jun 5, 2018 at 7:05 PM, Nick Desaulniers <ndesaulniers at google.com> wrote:> > The semantics of extern inline has changed since gnu89. This means that > folks using GCC versions >= 5.1 may see symbol redefinition errors at > link time for subdirs that override KBUILD_CFLAGS (making the C standard > used implicit) regardless of this patch. This has been cleaned up > earlier in the patch set, but is left as a note in the commit message > for future travelers.I think the keyword you are missing is __attribute__((gnu_inline)) which forces the gnu89 behavior on all compiler versions. It's been supported since gcc-4.2, so it should not cause problems on any compiler that is able to build an x86 kernel. Arnd
Arnd Bergmann
2018-Jun-05 21:31 UTC
[PATCH v2 2/2] x86: paravirt: make native_save_fl extern inline
On Tue, Jun 5, 2018 at 11:28 PM, Arnd Bergmann <arnd at arndb.de> wrote:> On Tue, Jun 5, 2018 at 7:05 PM, Nick Desaulniers > <ndesaulniers at google.com> wrote: >> >> The semantics of extern inline has changed since gnu89. This means that >> folks using GCC versions >= 5.1 may see symbol redefinition errors at >> link time for subdirs that override KBUILD_CFLAGS (making the C standard >> used implicit) regardless of this patch. This has been cleaned up >> earlier in the patch set, but is left as a note in the commit message >> for future travelers. > > I think the keyword you are missing is > > __attribute__((gnu_inline)) > > which forces the gnu89 behavior on all compiler versions. It's been supported > since gcc-4.2, so it should not cause problems on any compiler that is able > to build an x86 kernel.Nevermind, I just saw you already posted that. Arnd