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:   Mon, 25 Jul 2022 07:42:07 +0200
From:   Ard Biesheuvel <ardb@...nel.org>
To:     "Jason A. Donenfeld" <Jason@...c4.com>
Cc:     kernel test robot <lkp@...el.com>,
        "Justin M. Forbes" <jforbes@...oraproject.org>,
        llvm@...ts.linux.dev, kbuild-all@...ts.01.org,
        Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
        Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
        "Jason A. Donenfeld" <zx2c4@...nel.org>
Subject: Re: [linux-stable-rc:linux-5.15.y 6874/8723] arch/arm/lib/xor-neon.c:30:2:
 warning: This code requires at least version 4.6 of GCC

On Mon, 25 Jul 2022 at 00:40, Jason A. Donenfeld <Jason@...c4.com> wrote:
>
> Hi Ard,
>
> On Mon, Jul 25, 2022 at 04:14:48AM +0800, kernel test robot wrote:
> > All warnings (new ones prefixed by >>):
> >
> > >> arch/arm/lib/xor-neon.c:30:2: warning: This code requires at least version 4.6 of GCC [-W#warnings]
> >    #warning This code requires at least version 4.6 of GCC
> >     ^
> >    1 warning generated.
> >
> >
> > vim +30 arch/arm/lib/xor-neon.c
> >
> > 01956597cbc46d Ard Biesheuvel 2013-05-17  16
> > 01956597cbc46d Ard Biesheuvel 2013-05-17  17  /*
> > 01956597cbc46d Ard Biesheuvel 2013-05-17  18   * Pull in the reference implementations while instructing GCC (through
> > 01956597cbc46d Ard Biesheuvel 2013-05-17  19   * -ftree-vectorize) to attempt to exploit implicit parallelism and emit
> > 01956597cbc46d Ard Biesheuvel 2013-05-17  20   * NEON instructions.
> > 01956597cbc46d Ard Biesheuvel 2013-05-17  21   */
> > 01956597cbc46d Ard Biesheuvel 2013-05-17  22  #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)
> > 01956597cbc46d Ard Biesheuvel 2013-05-17  23  #pragma GCC optimize "tree-vectorize"
> > 01956597cbc46d Ard Biesheuvel 2013-05-17  24  #else
> > 01956597cbc46d Ard Biesheuvel 2013-05-17  25  /*
> > 01956597cbc46d Ard Biesheuvel 2013-05-17  26   * While older versions of GCC do not generate incorrect code, they fail to
> > 01956597cbc46d Ard Biesheuvel 2013-05-17  27   * recognize the parallel nature of these functions, and emit plain ARM code,
> > 01956597cbc46d Ard Biesheuvel 2013-05-17  28   * which is known to be slower than the optimized ARM code in asm-arm/xor.h.
> > 01956597cbc46d Ard Biesheuvel 2013-05-17  29   */
> > 01956597cbc46d Ard Biesheuvel 2013-05-17 @30  #warning This code requires at least version 4.6 of GCC
> > 01956597cbc46d Ard Biesheuvel 2013-05-17  31  #endif
> > 01956597cbc46d Ard Biesheuvel 2013-05-17  32
>
> Does this file need a depends on ≥4.6 thing in Kconfig? Or is something
> else happening here since 4.6 isn't even supported by the kernel these
> days?
>

Hi Jason,

This is explained/fixed in

commit a69cb445f7d129abf7c50d48c8a8eca7c8d5df15
Author: Ard Biesheuvel <ardb@...nel.org>
Date:   Sat Feb 5 16:23:46 2022 +0100

    crypto: arm/xor - make vectorized C code Clang-friendly

    The ARM version of the accelerated XOR routines are simply the 8-way C
    routines passed through the auto-vectorizer with SIMD codegen enabled.
    This used to require GCC version 4.6 at least, but given that 5.1 is now
    the baseline, this check is no longer necessary, and actually
    misidentifies Clang as GCC < 4.6 as Clang defines the GCC major/minor as
    well, but makes no attempt at doing this in a way that conveys feature
    parity with a certain version of GCC (which would not be a great idea in
    the first place).

which landed in v5.18. Note that the patch depends on its parent,
which touches many different architectures, so it may not be
backportable cleanly.

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ