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
| ||
|
Date: Tue, 21 Aug 2018 10:22:45 -0700 From: Joe Perches <joe@...ches.com> To: Nick Desaulniers <ndesaulniers@...gle.com> Cc: Masahiro Yamada <yamada.masahiro@...ionext.com>, Linus Torvalds <torvalds@...ux-foundation.org>, Kees Cook <keescook@...omium.org>, Jonathan Corbet <corbet@....net>, Arnd Bergmann <arnd@...db.de>, dwmw@...zon.co.uk, LKML <linux-kernel@...r.kernel.org>, Thomas Gleixner <tglx@...utronix.de>, Will Deacon <will.deacon@....com>, Geert Uytterhoeven <geert@...ux-m68k.org>, Ingo Molnar <mingo@...nel.org>, Andrew Morton <akpm@...ux-foundation.org> Subject: Re: [PATCH] compiler-gcc: get back Clang build On Tue, 2018-08-21 at 09:57 -0700, Nick Desaulniers wrote: > On Tue, Aug 21, 2018 at 9:33 AM Joe Perches <joe@...ches.com> wrote: > > > > On Tue, 2018-08-21 at 15:48 +0900, Masahiro Yamada wrote: > > > Commit cafa0010cd51 ("Raise the minimum required gcc version to 4.6") > > > missed the fact that <linux/compiler-gcc.h> is included by Clang > > > as well as by GCC. > > > > > > Clang actually defines __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__ > > > and it looks like GCC 4.2.1. > > > > > > $ scripts/gcc-version.sh -p clang > > > 040201 > > > > > > If you try to build the kernel with Clang, you will get the > > > "Sorry, your compiler is too old - please upgrade it." > > > followed by a bunch of "unknown attribute" warnings. > > > > > > Add !defined(__clang__) to the minimum version check. > > > > > > Also, revive the version test blocks for versions >= 4.2.1 > > > in order to disable features not supported by Clang. > > > > What is the minimum clang version required to compile the kernel? > > Depends on the architecture and which kernel version/LTS branch you're > using. I'm trying to backport fixes to LTS branches, but sometimes a > compiler upgrade is required. I know that's not great, but I'm > actively trying to fix it. Can you enumerate these dependencies please. > > What features are not supported by the minimum clang version? And enumerate this too please. Uglifying the compiler-gcc file to support clang features that can be overridden in compiler-clang.h instead is not a good way to fix compilation for clang. But still, whatever features in the various clang versions that need accommodation also need listing out in compiler-clang.h, not in compiler-gcc.h > $ git describe --contains e501ce9 | sed 's/~.*//' > v4.17-rc1 Thanks, but I know this. The question remains, if clang can't compile v4.17, why does it immediately matter for v4.19? Why wouldn't overriding the clang __GNUC_<foo> #defines in compiler-gcc.h work acceptably with adding whatever is necessary to compiler-clang.h? I'll experiment with a compiler-clang.h patch.
Powered by blists - more mailing lists