On 23.03.2019 21:06, Arnd Bergmann wrote: > On Sat, Mar 23, 2019 at 4:52 PM Stefan Agner <ste...@agner.ch> wrote: >> >> The LLVM Target parser currently does not allow to specify the security >> extension as part of -march (see also LLVM Bug 40186 [0]). When trying >> to use Clang with LLVM's integrated assembler, this leads to a build >> errors such as this: >> clang-8: error: the clang compiler does not support >> '-Wa,-march=armv7-a+sec' >> >> Use ".arch_extension sec" to enable the security extension in a more >> portable fasion. >> >> Note that this is technically not exactly the same as the old code >> checked for availabilty of the security extension by calling as-instr. >> However, there are already other sites which use ".arch_extension sec" >> unconditionally, hence de-facto we need an assembler capable of >> ".arch_extension sec" already today (arch/arm/mm/proc-v7.S). The >> arch extension "sec" is available since binutils 2.21 according to >> its documentation [1]. >> >> [0] https://bugs.llvm.org/show_bug.cgi?id=40186 >> [1] https://sourceware.org/binutils/docs-2.21/as/ARM-Options.html >> >> Signed-off-by: Stefan Agner <ste...@agner.ch> > > This sounds like a good idea. I think we have platform specific > minimum toolchain versions elsewhere, but I don't see a problem > with raising the minimum version for all the armv7ve platforms. > > I've added this patch to my randconfig test queue, but please > send it to a...@kernel.org for inclusion when you have > collected more Acks.
Cool, will do! > > Do you have a git tree with other patches required for the > integrated assembler? I might try that out as well with > my randconfig tree. At the moment I'm building with > clang-8 and a small number of patches on top. I do have some more work in progress patches. I made some rough commits and pushed the tree here: https://github.com/ClangBuiltLinux/linux/commits/arm-fixes-hacks-to-make-llvm-integrated-as-work This tree compiles for me and a test boot with qemu seems to work. It seems that LLVM's integrated assembler is capable of assembling almost the whole kernel a lot can be worked around/fixed on kernel side. There are only about a handful of files where I still use the GNU assembler. Haven't looked closely at these cases yet. There is one issue which probably need a change in LLVM: https://github.com/ClangBuiltLinux/linux/issues/306 I proposed this fix: https://reviews.llvm.org/D59733 > > Acked-by: Arnd Bergmann <a...@arndb.de> Thx. -- Stefan