diff mbox series

ARM: ep93xx: don't use clang IAS for crunch

Message ID 20210226164345.3889993-1-arnd@kernel.org (mailing list archive)
State Superseded
Headers show
Series ARM: ep93xx: don't use clang IAS for crunch | expand

Commit Message

Arnd Bergmann Feb. 26, 2021, 4:43 p.m. UTC
From: Arnd Bergmann <arnd@arndb.de>

Randconfig builds with ep93xx fail with the clang integrated
assembler that does not understand the maverick crunch extensions:

arch/arm/mach-ep93xx/crunch-bits.S:94:2: error: invalid instruction
 cfstr64 mvdx0, [r1, #0] @ save 64b registers

It is unclear if anyone is still using support for crunch: gcc-4.8 dropped
it in 2012 when it was already too broken to be used reliabled. glibc
support existed as an external patch but was never merged upstream.
We could consider removing the last bits of the kernel support as well.

Turn off the integrated assembler for this file for now.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 arch/arm/mach-ep93xx/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Arnd Bergmann Feb. 26, 2021, 6 p.m. UTC | #1
On Fri, Feb 26, 2021 at 5:44 PM Arnd Bergmann <arnd@kernel.org> wrote:
>
>  obj-$(CONFIG_CRUNCH)           += crunch.o crunch-bits.o
> -AFLAGS_crunch-bits.o           := -Wa,-mcpu=ep9312
> +AFLAGS_crunch-bits.o           := -Wa,-mcpu=ep9312 $(cc-option, -fno-integrated-as)

I reworked that patch just before sending it out, and ended up with two typos
in there, it should be

+AFLAGS_crunch-bits.o           := -Wa,-mcpu=ep9312 $(call cc-option,
-no-integrated-as)

I'll wait for others to comment before I send the fixed version.

      Arnd
Alexander Sverdlin Feb. 26, 2021, 7:23 p.m. UTC | #2
Hi!

On Fri, 2021-02-26 at 17:43 +0100, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> Randconfig builds with ep93xx fail with the clang integrated
> assembler that does not understand the maverick crunch extensions:
> 
> arch/arm/mach-ep93xx/crunch-bits.S:94:2: error: invalid instruction
>  cfstr64 mvdx0, [r1, #0] @ save 64b registers
> 
> It is unclear if anyone is still using support for crunch: gcc-4.8 dropped
> it in 2012 when it was already too broken to be used reliabled. glibc
> support existed as an external patch but was never merged upstream.
> We could consider removing the last bits of the kernel support as well.

This was my impression already in 2006, that Cirrus is not going to work
on Crunch support. From my PoV it's OK to remove the support in the
kernel completely.

> Turn off the integrated assembler for this file for now.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
>  arch/arm/mach-ep93xx/Makefile | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/arm/mach-ep93xx/Makefile b/arch/arm/mach-ep93xx/Makefile
> index 86768495f61d..f686577ba059 100644
> --- a/arch/arm/mach-ep93xx/Makefile
> +++ b/arch/arm/mach-ep93xx/Makefile
> @@ -7,7 +7,7 @@ obj-y                   := core.o clock.o timer-ep93xx.o
>  obj-$(CONFIG_EP93XX_DMA)       += dma.o
>  
>  obj-$(CONFIG_CRUNCH)           += crunch.o crunch-bits.o
> -AFLAGS_crunch-bits.o           := -Wa,-mcpu=ep9312
> +AFLAGS_crunch-bits.o           := -Wa,-mcpu=ep9312 $(cc-option, -fno-integrated-as)
>  
>  obj-$(CONFIG_MACH_ADSSPHERE)   += adssphere.o
>  obj-$(CONFIG_MACH_EDB93XX)     += edb93xx.o
Hartley Sweeten Feb. 26, 2021, 7:32 p.m. UTC | #3
On Friday, February 26, 2021 12:23 PM, Alexander Sverdlin wrote:
> On Fri, 2021-02-26 at 17:43 +0100, Arnd Bergmann wrote:
>> Randconfig builds with ep93xx fail with the clang integrated assembler 
>> that does not understand the maverick crunch extensions:
>> 
>> arch/arm/mach-ep93xx/crunch-bits.S:94:2: error: invalid instruction
>>  cfstr64 mvdx0, [r1, #0] @ save 64b registers
>> 
>> It is unclear if anyone is still using support for crunch: gcc-4.8 
>> dropped it in 2012 when it was already too broken to be used 
>> reliabled. glibc support existed as an external patch but was never merged upstream.
>> We could consider removing the last bits of the kernel support as well.
>
> This was my impression already in 2006, that Cirrus is not going to work on Crunch support. From my PoV it's OK to remove the support in the kernel completely.

Martin Guy did a lot of work trying to get the maverick crunch working but I was never able to successfully use it for anything. It "kind" of works but depending on the EP93xx silicon revision there are still a number of hardware bugs that either give imprecise or garbage results.

I have no problem with removing the kernel support for the maverick crunch.

Hartley
Nick Desaulniers Feb. 26, 2021, 8:47 p.m. UTC | #4
On Fri, Feb 26, 2021 at 11:32 AM Hartley Sweeten
<HartleyS@visionengravers.com> wrote:
>
> On Friday, February 26, 2021 12:23 PM, Alexander Sverdlin wrote:
> > On Fri, 2021-02-26 at 17:43 +0100, Arnd Bergmann wrote:
> >> Randconfig builds with ep93xx fail with the clang integrated assembler
> >> that does not understand the maverick crunch extensions:
> >>
> >> arch/arm/mach-ep93xx/crunch-bits.S:94:2: error: invalid instruction
> >>  cfstr64 mvdx0, [r1, #0] @ save 64b registers
> >>
> >> It is unclear if anyone is still using support for crunch: gcc-4.8
> >> dropped it in 2012 when it was already too broken to be used
> >> reliabled. glibc support existed as an external patch but was never merged upstream.
> >> We could consider removing the last bits of the kernel support as well.
> >
> > This was my impression already in 2006, that Cirrus is not going to work on Crunch support. From my PoV it's OK to remove the support in the kernel completely.
>
> Martin Guy did a lot of work trying to get the maverick crunch working but I was never able to successfully use it for anything. It "kind" of works but depending on the EP93xx silicon revision there are still a number of hardware bugs that either give imprecise or garbage results.
>
> I have no problem with removing the kernel support for the maverick crunch.

Either way, please consider adding a

Link: https://github.com/ClangBuiltLinux/linux/issues/1272

tag. That will help us notice when/where this lands in order to close
out the issue. Thanks for the patch.

(if we go with this rather than removing the driver:)
Acked-by: Nick Desaulniers <ndesaulniers@google.com>

(I'm also fine with removing the driver; my ack is not conditional on
one way or the other).
Nick Desaulniers June 3, 2021, 11:27 p.m. UTC | #5
On Fri, Feb 26, 2021 at 10:01 AM Arnd Bergmann <arnd@kernel.org> wrote:
>
> On Fri, Feb 26, 2021 at 5:44 PM Arnd Bergmann <arnd@kernel.org> wrote:
> >
> >  obj-$(CONFIG_CRUNCH)           += crunch.o crunch-bits.o
> > -AFLAGS_crunch-bits.o           := -Wa,-mcpu=ep9312
> > +AFLAGS_crunch-bits.o           := -Wa,-mcpu=ep9312 $(cc-option, -fno-integrated-as)
>
> I reworked that patch just before sending it out, and ended up with two typos
> in there, it should be
>
> +AFLAGS_crunch-bits.o           := -Wa,-mcpu=ep9312 $(call cc-option,
> -no-integrated-as)
>
> I'll wait for others to comment before I send the fixed version.

Probably good for that v2?
diff mbox series

Patch

diff --git a/arch/arm/mach-ep93xx/Makefile b/arch/arm/mach-ep93xx/Makefile
index 86768495f61d..f686577ba059 100644
--- a/arch/arm/mach-ep93xx/Makefile
+++ b/arch/arm/mach-ep93xx/Makefile
@@ -7,7 +7,7 @@  obj-y			:= core.o clock.o timer-ep93xx.o
 obj-$(CONFIG_EP93XX_DMA)	+= dma.o
 
 obj-$(CONFIG_CRUNCH)		+= crunch.o crunch-bits.o
-AFLAGS_crunch-bits.o		:= -Wa,-mcpu=ep9312
+AFLAGS_crunch-bits.o		:= -Wa,-mcpu=ep9312 $(cc-option, -fno-integrated-as)
 
 obj-$(CONFIG_MACH_ADSSPHERE)	+= adssphere.o
 obj-$(CONFIG_MACH_EDB93XX)	+= edb93xx.o