Re: [PATCH v2 2/2] x86: paravirt: make native_save_fl extern inline
From: Nick Desaulniers
Date: Tue Jun 05 2018 - 17:51:42 EST
On Tue, Jun 5, 2018 at 2:31 PM Arnd Bergmann <arnd@xxxxxxxx> wrote:
> On Tue, Jun 5, 2018 at 11:28 PM, Arnd Bergmann <arnd@xxxxxxxx> wrote:
> > On Tue, Jun 5, 2018 at 7:05 PM, Nick Desaulniers
> > <ndesaulniers@xxxxxxxxxx> 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.
That's ok, I appreciate you taking the time to review. Your point
made me consider adding the function attribute to just
native_save_fl() in this patch, but it seems that that lone function
attribute is not used outside of compiler-gcc.h, so it would be good
to change all users of inline in one place.