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]
Message-ID: <20210907142934.GF1583@gate.crashing.org>
Date:   Tue, 7 Sep 2021 09:29:34 -0500
From:   Segher Boessenkool <segher@...nel.crashing.org>
To:     Linus Torvalds <torvalds@...uxfoundation.org>
Cc:     Jakub Jelinek <jakub@...hat.com>,
        Florian Weimer <fweimer@...hat.com>,
        Nathan Chancellor <nathan@...nel.org>,
        Masahiro Yamada <masahiroy@...nel.org>,
        Nick Desaulniers <ndesaulniers@...gle.com>,
        Linux Kbuild mailing list <linux-kbuild@...r.kernel.org>,
        Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
        clang-built-linux <clang-built-linux@...glegroups.com>,
        llvm@...ts.linux.dev, linux-toolchains@...r.kernel.org
Subject: Re: [GIT PULL v2] Kbuild updates for v5.15-rc1

On Mon, Sep 06, 2021 at 02:08:58PM -0700, Linus Torvalds wrote:
> On Mon, Sep 6, 2021 at 1:14 PM Jakub Jelinek <jakub@...hat.com> wrote:
> >
> > the only guaranteed APIs are
> > those provided by the headers (x86intrin.h/*mmintrin.h etc. on x86,
> > arm_{neon,sve}.h etc. on arm*, ...)
> 
> You guys realize we don't use those, do you?

Linux does use the Arm and Power vector intrinsics (arm_neon.h and
altivec.h).

> And you don't seem to realize that you are actively arguing *AGAINST*
> what you think you argue for.

I have no idea what you think we are arguing for, only what we are.

> That "immintrin.h" file, for example, is simply not usable for the
> kernel. I just checked.

Yes.  It cannot be used in freestanding environments; it includes a
header file we don't ship (<mm_malloc.h>, via <xmmintrin.h>).  Or
perhaps we do ship it, but only on native systems?  Same issue, anyway.

The top comment in the latter says
  /* Implemented from the specification included in the Intel C++ Compiler
     User Guide and Reference, version 9.0.  */
so the shortcoming exists there already probably?

>       27 | #include <stdlib.h>
>          |          ^~~~~~~~~~
> 
> Oops.

Yup, that is not a (freestanding) standard C header.

> Very similar things happens if you try to use that <stdint.h> file
> that somebody mentioned earlier.

Not at all.  <stdint.h> *is* a standard C header, and we ship it, it
always works.  If you find problems with it, please report them!

> You also don't seem to realize how hard it is to separate out the
> user-land crap that we really cannot use, and must not use.

We have worked very hard for many years to make this better.  For the
freestanding headers only <limits.h> is still problematic, and you do
not need that one anyway, it is legacy more than anything else.


Segher

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ