Message ID | 20240925150059.3955569-32-ardb+git@google.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | x86: Rely on toolchain for relocatable code | expand |
On Wed, Sep 25, 2024, at 15:01, Ard Biesheuvel wrote: > From: Ard Biesheuvel <ardb@kernel.org> > > Bump the minimum GCC version to 8.1 to gain unconditional support for > referring to the per-task stack cookie using a symbol rather than > relying on the fixed offset of 40 bytes from %GS, which requires > elaborate hacks to support. > > Signed-off-by: Ard Biesheuvel <ardb@kernel.org> > --- > Documentation/admin-guide/README.rst | 2 +- > Documentation/process/changes.rst | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) Acked-by: Arnd Bergmann <arnd@arndb.de> As we discussed during plumbers, I think this is reasonable, both the gcc-8.1 version and the timing after the 6.12-LTS kernel. We obviously need to go through all the other version checks to see what else can be cleaned up. I would suggest we also raise the binutils version to 2.30+, which is what RHEL8 shipped alongside gcc-8. I have not found other distros that use older binutils in combination with gcc-8 or higher, Debian 10 uses binutils-2.31. I don't think we want to combine the additional cleanup with your series, but if we can agree on the version, we can do that in parallel. FWIW, here are links to the last few times we discussed this, and there are already has a few other things that would benefit from more modern compilers: https://lore.kernel.org/lkml/dca5b082-90d1-40ab-954f-8b3b6f51138c@app.fastmail.com/ https://lore.kernel.org/lkml/CAFULd4biN8FPRtU54Q0QywfBFvvWV-s1M3kWF9YOmozyAX9+ZQ@mail.gmail.com/ https://lore.kernel.org/lkml/CAK8P3a1Vt17Yry_gTQ0dwr7_tEoFhuec+mQzzKzFvZGD5Hrnow@mail.gmail.com/ Arnd
On Wed, Sep 25, 2024 at 5:10 PM Ard Biesheuvel <ardb+git@google.com> wrote: > > Documentation/admin-guide/README.rst | 2 +- > Documentation/process/changes.rst | 2 +- This should update scripts/min-tool-version.sh too. With that: Acked-by: Miguel Ojeda <ojeda@kernel.org> As Arnd says, the cleanups can be done afterwards. Cheers, Miguel
On Wed, Sep 25, 2024 at 05:01:02PM +0200, Ard Biesheuvel wrote: > From: Ard Biesheuvel <ardb@kernel.org> > > Bump the minimum GCC version to 8.1 to gain unconditional support for > referring to the per-task stack cookie using a symbol rather than > relying on the fixed offset of 40 bytes from %GS, which requires > elaborate hacks to support. > > Signed-off-by: Ard Biesheuvel <ardb@kernel.org> > --- > Documentation/admin-guide/README.rst | 2 +- > Documentation/process/changes.rst | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) I'd like this for arm64 and others too (for unconditional support for -fpatchable-function-entry), so FWIW: Acked-by: Mark Rutland <mark.rutland@arm.com> I think you'll want to update scripts/min-tool-version.sh too; judging by the diff in the cover letter that's not handled elsehere in the series. Mark. > > diff --git a/Documentation/admin-guide/README.rst b/Documentation/admin-guide/README.rst > index f2bebff6a733..3dda41923ed6 100644 > --- a/Documentation/admin-guide/README.rst > +++ b/Documentation/admin-guide/README.rst > @@ -259,7 +259,7 @@ Configuring the kernel > Compiling the kernel > -------------------- > > - - Make sure you have at least gcc 5.1 available. > + - Make sure you have at least gcc 8.1 available. > For more information, refer to :ref:`Documentation/process/changes.rst <changes>`. > > - Do a ``make`` to create a compressed kernel image. It is also possible to do > diff --git a/Documentation/process/changes.rst b/Documentation/process/changes.rst > index 00f1ed7c59c3..59b7d3d8a577 100644 > --- a/Documentation/process/changes.rst > +++ b/Documentation/process/changes.rst > @@ -29,7 +29,7 @@ you probably needn't concern yourself with pcmciautils. > ====================== =============== ======================================== > Program Minimal version Command to check the version > ====================== =============== ======================================== > -GNU C 5.1 gcc --version > +GNU C 8.1 gcc --version > Clang/LLVM (optional) 13.0.1 clang --version > Rust (optional) 1.78.0 rustc --version > bindgen (optional) 0.65.1 bindgen --version > -- > 2.46.0.792.g87dc391469-goog > >
Hi Arnd, On Wed, Sep 25, 2024 at 03:58:38PM +0000, Arnd Bergmann wrote: > On Wed, Sep 25, 2024, at 15:01, Ard Biesheuvel wrote: > > From: Ard Biesheuvel <ardb@kernel.org> > > > > Bump the minimum GCC version to 8.1 to gain unconditional support for > > referring to the per-task stack cookie using a symbol rather than > > relying on the fixed offset of 40 bytes from %GS, which requires > > elaborate hacks to support. > > > > Signed-off-by: Ard Biesheuvel <ardb@kernel.org> > > --- > > Documentation/admin-guide/README.rst | 2 +- > > Documentation/process/changes.rst | 2 +- > > 2 files changed, 2 insertions(+), 2 deletions(-) > > Acked-by: Arnd Bergmann <arnd@arndb.de> > > As we discussed during plumbers, I think this is reasonable, > both the gcc-8.1 version and the timing after the 6.12-LTS > kernel. > > We obviously need to go through all the other version checks > to see what else can be cleaned up. I would suggest we also > raise the binutils version to 2.30+, which is what RHEL8 > shipped alongside gcc-8. I have not found other distros that > use older binutils in combination with gcc-8 or higher, > Debian 10 uses binutils-2.31. > I don't think we want to combine the additional cleanup with > your series, but if we can agree on the version, we can do that > in parallel. Were you planning to send patches to that effect, or did you want someone else to do that? I think we were largely agreed on making those changes, but it wasn't clear to me who was actually going to send patches, and I couldn't spot a subsequent thread on LKML. Mark.
On Thu, Dec 19, 2024, at 12:53, Mark Rutland wrote: > On Wed, Sep 25, 2024 at 03:58:38PM +0000, Arnd Bergmann wrote: >> On Wed, Sep 25, 2024, at 15:01, Ard Biesheuvel wrote: >> > From: Ard Biesheuvel <ardb@kernel.org> >> >> We obviously need to go through all the other version checks >> to see what else can be cleaned up. I would suggest we also >> raise the binutils version to 2.30+, which is what RHEL8 >> shipped alongside gcc-8. I have not found other distros that >> use older binutils in combination with gcc-8 or higher, >> Debian 10 uses binutils-2.31. >> I don't think we want to combine the additional cleanup with >> your series, but if we can agree on the version, we can do that >> in parallel. > > Were you planning to send patches to that effect, or did you want > someone else to do that? I think we were largely agreed on making those > changes, but it wasn't clear to me who was actually going to send > patches, and I couldn't spot a subsequent thread on LKML. I hadn't planned on doing that, but I could help (after my vacation). As Ard already posted the the patch for gcc, I was expecting that this one would get merged along with the other patches in the series. Ard, what is the status of your series, is this likely to make it into 6.14, or should we have a separate patch to just raise the minimum gcc and binutils version independent of your work? Arnd
diff --git a/Documentation/admin-guide/README.rst b/Documentation/admin-guide/README.rst index f2bebff6a733..3dda41923ed6 100644 --- a/Documentation/admin-guide/README.rst +++ b/Documentation/admin-guide/README.rst @@ -259,7 +259,7 @@ Configuring the kernel Compiling the kernel -------------------- - - Make sure you have at least gcc 5.1 available. + - Make sure you have at least gcc 8.1 available. For more information, refer to :ref:`Documentation/process/changes.rst <changes>`. - Do a ``make`` to create a compressed kernel image. It is also possible to do diff --git a/Documentation/process/changes.rst b/Documentation/process/changes.rst index 00f1ed7c59c3..59b7d3d8a577 100644 --- a/Documentation/process/changes.rst +++ b/Documentation/process/changes.rst @@ -29,7 +29,7 @@ you probably needn't concern yourself with pcmciautils. ====================== =============== ======================================== Program Minimal version Command to check the version ====================== =============== ======================================== -GNU C 5.1 gcc --version +GNU C 8.1 gcc --version Clang/LLVM (optional) 13.0.1 clang --version Rust (optional) 1.78.0 rustc --version bindgen (optional) 0.65.1 bindgen --version