lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Thu, 24 Nov 2022 06:17:59 +0900
From:   Masahiro Yamada <masahiroy@...nel.org>
To:     Nicolas Schier <nicolas@...sle.eu>
Cc:     linux-kbuild@...r.kernel.org, linux-kernel@...r.kernel.org,
        Nathan Chancellor <nathan@...nel.org>,
        Nick Desaulniers <ndesaulniers@...gle.com>,
        Tom Rix <trix@...hat.com>, llvm@...ts.linux.dev
Subject: Re: [PATCH v2 2/5] kbuild: implement {gcc,clang}-min-version only
 with built-in functions

On Thu, Nov 24, 2022 at 5:37 AM Nicolas Schier <nicolas@...sle.eu> wrote:
>
> On Thu 24 Nov 2022 00:18:25 GMT, Masahiro Yamada wrote:
> > Converting clang-min-version is straightforward because the versions
> > are always 6-digit.
> >
> > gcc-min-version is somewhat tricky because the minimal GCC version
> > is GCC 5.2; prepend '0' to the version that is less than 10 so that
> > test-ge is always passed with 6-digit versions.
> >
> > Signed-off-by: Masahiro Yamada <masahiroy@...nel.org>
> > ---
> >
> > Changes in v2:
> >   - Covert gcc-min-version in a different way
> >
> >  scripts/Makefile.compiler | 8 ++++++--
> >  1 file changed, 6 insertions(+), 2 deletions(-)
> >
> > diff --git a/scripts/Makefile.compiler b/scripts/Makefile.compiler
> > index 20d353dcabfb..cd75f81e88ef 100644
> > --- a/scripts/Makefile.compiler
> > +++ b/scripts/Makefile.compiler
> > @@ -63,11 +63,15 @@ cc-disable-warning = $(call try-run,\
> >
> >  # gcc-min-version
> >  # Usage: cflags-$(call gcc-min-version, 70100) += -foo
> > -gcc-min-version = $(shell [ $(CONFIG_GCC_VERSION)0 -ge $(1)0 ] && echo y)
> > +
> > +# Preprend 0 to the version that is less than 10 so test-ge works.
> > +gcc-min-version = $(call test-ge, \
> > +                  $(or $(filter 1%, $(CONFIG_GCC_VERSION)), 0$(CONFIG_GCC_VERSION)), \
> > +                  $(or $(filter 1%, $1), 0$(strip $1)))
>
> Hm, this silently expects a gcc version < 20, which we should expect in
> about seven-eight years [1].   I am thinking about the possibility of
> silent (but unlikely) breaks when someone in far future uses a gcc 20
> against a kernel with this line.  Probably we should not care about
> that today, yet, right?

Yeah, I thought of it.

It depends on which of the following two will happen first.

 (a) We raise the min gcc version to 10.0.0 and remove this hack
 (b) GCC 20 is released

I am guessing (a) will occur first, so we do not need to care about (b).


If (b) happens first, we will need to add "2%".
It means that the window of supported GCC versions will get larger than 10.
Presumably, we do not want to support such a wide range of compiler
versions.


GCC 5.1 was released in 2015.
So, the current window of GCC versions is 7 years.
I hope it will not get even larger...





-- 
Best Regards
Masahiro Yamada

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ