[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAHk-=wiMm3rN15WmiAqMHjC-pakL_b8qgWsPPri0+YLFORT-ZA@mail.gmail.com>
Date: Thu, 3 Oct 2019 10:01:52 -0700
From: Linus Torvalds <torvalds@...ux-foundation.org>
To: Masahiro Yamada <yamada.masahiro@...ionext.com>
Cc: Geert Uytterhoeven <geert@...ux-m68k.org>,
Nick Desaulniers <ndesaulniers@...gle.com>,
Russell King - ARM Linux admin <linux@...linux.org.uk>,
Will Deacon <will@...nel.org>,
Nicolas Saenz Julienne <nsaenzjulienne@...e.de>,
Andrew Morton <akpm@...ux-foundation.org>,
Ingo Molnar <mingo@...hat.com>, Borislav Petkov <bp@...en8.de>,
Miguel Ojeda <miguel.ojeda.sandonis@...il.com>,
linux-arch <linux-arch@...r.kernel.org>,
LKML <linux-kernel@...r.kernel.org>,
Catalin Marinas <catalin.marinas@....com>,
Stefan Wahren <wahrenst@....net>,
Kees Cook <keescook@...gle.com>, Arnd Bergmann <arnd@...db.de>,
clang-built-linux <clang-built-linux@...glegroups.com>
Subject: Re: [PATCH] compiler: enable CONFIG_OPTIMIZE_INLINING forcibly
On Wed, Oct 2, 2019 at 7:11 PM Masahiro Yamada
<yamada.masahiro@...ionext.com> wrote:
>
> Macrofying the 'inline' is a horrid mistake that makes incorrect code work.
> It would eternally prevent people from writing portable, correct code.
> Please do not encourage to hide problems.
Honestly, if the alternative to hiding problems is "use a macro", then
I'd rather hide the problems and just make "inline" means "inline".
If "inline" means "it's just a hint, use macros", then inline is useless.
If "inline" means "using this means that there are known compiler
bugs, but we don't know where they trigger", then inline is _worse_
than useless.
I do not see the big advantage of letting the compiler say "yeah, I'm
not going to do that, Dave".
And I see a *huge* disadvantage when people are ignoring compiler
bugs, and are saying "use a macro". Seriously.
Right now we see the obvious compiler bugs that cause build breakages.
How many non-obvious compiler bugs do we have? And how sure are you
that our code is "correct" after fixing a couple of obvious cases?
As to "portable", nobody cares. We're a kernel. We aren't portable,
and never were.
If this is purely about the fact that x86 is different from other
architectures, then let's remove the "compiler can do stupid things"
option on x86 too. It was never clear that it was a huge advantage.
Linus
Powered by blists - more mailing lists