Message ID | 20171129000011.55235-4-samitolvanen@google.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 29 November 2017 at 00:00, Sami Tolvanen <samitolvanen@google.com> wrote: > From: Greg Hackmann <ghackmann@google.com> > > LLVM bug 30792 causes clang's AArch64 backend to crash compiling > arch/arm64/crypto/aes-ce-cipher.c. Replacing -mgeneral-regs-only with > -mno-implicit-float is the suggested workaround. > Do we still need these patches now that the AES code has been fixed? > Signed-off-by: Greg Hackmann <ghackmann@google.com> > Cc: Matthias Kaehlcke <mka@chromium.org> > [added clang-ifversion to enable the workaround only for clang <6.0] > Signed-off-by: Sami Tolvanen <samitolvanen@google.com> > --- > arch/arm64/Makefile | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile > index b35788c909f1..d2efb5a0212f 100644 > --- a/arch/arm64/Makefile > +++ b/arch/arm64/Makefile > @@ -49,7 +49,10 @@ $(warning Detected assembler with broken .inst; disassembly will be unreliable) > endif > endif > > -KBUILD_CFLAGS += -mgeneral-regs-only $(lseinstr) $(brokengasinst) > +# This is a workaround for https://bugs.llvm.org/show_bug.cgi?id=30792. > +KBUILD_CFLAGS += $(call clang-ifversion, -lt, 0600, -mno-implicit-float, -mgeneral-regs-only) > + > +KBUILD_CFLAGS += $(lseinstr) $(brokengasinst) > KBUILD_CFLAGS += -fno-asynchronous-unwind-tables > KBUILD_CFLAGS += $(call cc-option, -mpc-relative-literal-loads) > KBUILD_AFLAGS += $(lseinstr) $(brokengasinst) > -- > 2.15.0.417.g466bffb3ac-goog >
On Wed, Nov 29, 2017 at 12:15:14PM +0000, Ard Biesheuvel wrote:
> Do we still need these patches now that the AES code has been fixed?
With your AES patch that Herbert just applied, this patch is no longer
needed. Version macros in the first two patches will still be useful in
future though.
Sami
On Wed, Nov 29, 2017 at 8:22 AM, Sami Tolvanen <samitolvanen@google.com> wrote: > On Wed, Nov 29, 2017 at 12:15:14PM +0000, Ard Biesheuvel wrote: >> Do we still need these patches now that the AES code has been fixed? > > With your AES patch that Herbert just applied, this patch is no longer > needed. Version macros in the first two patches will still be useful in > future though. Matthias, maybe for your recommended Clang patch sets, you can replace this patch with https://www.spinics.net/lists/arm-kernel/msg617947.html?
diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile index b35788c909f1..d2efb5a0212f 100644 --- a/arch/arm64/Makefile +++ b/arch/arm64/Makefile @@ -49,7 +49,10 @@ $(warning Detected assembler with broken .inst; disassembly will be unreliable) endif endif -KBUILD_CFLAGS += -mgeneral-regs-only $(lseinstr) $(brokengasinst) +# This is a workaround for https://bugs.llvm.org/show_bug.cgi?id=30792. +KBUILD_CFLAGS += $(call clang-ifversion, -lt, 0600, -mno-implicit-float, -mgeneral-regs-only) + +KBUILD_CFLAGS += $(lseinstr) $(brokengasinst) KBUILD_CFLAGS += -fno-asynchronous-unwind-tables KBUILD_CFLAGS += $(call cc-option, -mpc-relative-literal-loads) KBUILD_AFLAGS += $(lseinstr) $(brokengasinst)