浏览代码

arch/Config.in.arm: drop support for iwmmxt architecture variant

This architecture variant is broken in GCC, causing build failures:

../../../libgcc/config/arm/unwind-arm.c:467:1: error: unrecognizable insn:
  467 | }
      | ^
(insn 2 4 3 2 (set (reg/v/f:SI 118 [ p ])
        (reg:SI 0 r0 [ p ])) "../../../libgcc/config/arm/unwind-arm.c":456:1 -1
     (nil))
during RTL pass: vregs
../../../libgcc/config/arm/unwind-arm.c:467:1: internal compiler error: in extract_insn, at recog.c:2770

Reported to the GCC developers, the feedback was "iwmmxt support is
definitely bitrotten and most likely should be removed from GCC.".

See:

  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106972#c1

So this commit simply drops support for iwmmxt, which anyway is
probably barely used nowadays: it's for old Marvell PXA cores that
implemented a special SIMD instruction set. The BR2_xscale option can
be used instead, it's just that it won't use this SIMD instruction
set.

Fixes:

  http://autobuild.buildroot.net/results/8e4c4512902c34d8ec0c6f8dfff92b7a198e4b4a/

and the numerous other build failures at:

  http://autobuild.buildroot.net/?reason=host-gcc-initial%&subarch=iwmmxt

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Thomas Petazzoni 2 年之前
父节点
当前提交
6211c9e381
共有 3 个文件被更改,包括 12 次插入12 次删除
  1. 10 0
      Config.in.legacy
  2. 0 5
      arch/Config.in.arm
  3. 2 7
      package/pixman/pixman.mk

+ 10 - 0
Config.in.legacy

@@ -146,6 +146,16 @@ endif
 
 
 comment "Legacy options removed in 2022.11"
 comment "Legacy options removed in 2022.11"
 
 
+config BR2_iwmmxt
+	bool "ARM iwmmxt variant removed"
+	select BR2_LEGACY
+	help
+	  Support for the ARM iwmmxt architecture variant in GCC has
+	  bitroten and is no longer maintained. GCC maintainers
+	  recommend to no longer use it, and suggest to use "xscale"
+	  as a replacement architecture variant. See
+	  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106972
+
 config BR2_PACKAGE_GPSD_OLDSTYLE
 config BR2_PACKAGE_GPSD_OLDSTYLE
 	bool "gpsd oldstyle removed"
 	bool "gpsd oldstyle removed"
 	select BR2_LEGACY
 	select BR2_LEGACY

+ 0 - 5
arch/Config.in.arm

@@ -129,10 +129,6 @@ config BR2_arm926t
 	select BR2_ARM_CPU_MAYBE_HAS_VFPV2
 	select BR2_ARM_CPU_MAYBE_HAS_VFPV2
 	select BR2_ARM_CPU_HAS_THUMB
 	select BR2_ARM_CPU_HAS_THUMB
 	select BR2_ARM_CPU_ARMV5
 	select BR2_ARM_CPU_ARMV5
-config BR2_iwmmxt
-	bool "iwmmxt"
-	select BR2_ARM_CPU_HAS_ARM
-	select BR2_ARM_CPU_ARMV5
 config BR2_xscale
 config BR2_xscale
 	bool "xscale"
 	bool "xscale"
 	select BR2_ARM_CPU_HAS_ARM
 	select BR2_ARM_CPU_HAS_ARM
@@ -817,7 +813,6 @@ config BR2_GCC_TARGET_CPU
 	default "strongarm"	if BR2_strongarm
 	default "strongarm"	if BR2_strongarm
 	# armv5
 	# armv5
 	default "arm926ej-s"	if BR2_arm926t
 	default "arm926ej-s"	if BR2_arm926t
-	default "iwmmxt"	if BR2_iwmmxt
 	default "xscale"	if BR2_xscale
 	default "xscale"	if BR2_xscale
 	# armv6
 	# armv6
 	default "arm1136j-s"	if BR2_arm1136j_s
 	default "arm1136j-s"	if BR2_arm1136j_s

+ 2 - 7
package/pixman/pixman.mk

@@ -21,7 +21,8 @@ PIXMAN_AUTORECONF = YES
 # don't build gtk based demos
 # don't build gtk based demos
 PIXMAN_CONF_OPTS = \
 PIXMAN_CONF_OPTS = \
 	--disable-gtk \
 	--disable-gtk \
-	--disable-loongson-mmi
+	--disable-loongson-mmi \
+	--disable-arm-iwmmxt
 
 
 # The ARM SIMD code from pixman requires a recent enough ARM core, but
 # The ARM SIMD code from pixman requires a recent enough ARM core, but
 # there is a runtime CPU check that makes sure it doesn't get used if
 # there is a runtime CPU check that makes sure it doesn't get used if
@@ -40,12 +41,6 @@ else
 PIXMAN_CONF_OPTS += --disable-arm-neon
 PIXMAN_CONF_OPTS += --disable-arm-neon
 endif
 endif
 
 
-# disable iwmmxt support for CPU's that don't have
-# this feature
-ifneq ($(BR2_iwmmxt),y)
-PIXMAN_CONF_OPTS += --disable-arm-iwmmxt
-endif
-
 PIXMAN_CFLAGS = $(TARGET_CFLAGS)
 PIXMAN_CFLAGS = $(TARGET_CFLAGS)
 
 
 # toolchain gets confused about TLS access through GOT (PIC), so disable TLS
 # toolchain gets confused about TLS access through GOT (PIC), so disable TLS