Kaynağa Gözat

arch: drop support for ARC big-endian

Alexey Brodkin from Synopsys says in [1]:

  I think indeed, we may remove all the big-endian support for ARC.
  Reasons are since introduction of ARC HS4x processors we no longer
  support big-endian in any new processor IP, and even for older IP
  which used to support big-endian it was rarely used... so basically
  there's no good justification to spend any cycles on big-endian
  support looking forward in this project.  I.e. BE support in uClibc
  could also be removed if it makes any difference.

Therefore, let's removed support for ARC big-endian.

[1] https://lore.kernel.org/buildroot/SJ2PR12MB818487232470DA4456967C73A1A3A@SJ2PR12MB8184.namprd12.prod.outlook.com/

Cc: Alexey Brodkin <Alexey.Brodkin@synopsys.com>
Cc: ARC Maintainers <arc-buildroot@synopsys.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Reviewed-by: Maxim Kochetkov <fido_max@inbox.ru>
[Julien:
 - move legacy option to 2026.02 section
 - add link to mailing list
 - remove BR2_arceb from pkg-meson.mk to fix check-symbols error
]
Signed-off-by: Julien Olivain <ju.o@free.fr>
Thomas Petazzoni 1 ay önce
ebeveyn
işleme
2d570f8369

+ 9 - 0
Config.in.legacy

@@ -159,6 +159,15 @@ config BR2_BINUTILS_VERSION_2_42_X
 	  binutils 2.42 has been removed, select a newer version
 	  instead.
 
+config BR2_arceb
+	bool "ARC big endian support removed"
+	select BR2_LEGACY
+	help
+	  Synopsys' DesignWare ARC Processor Cores are a family of
+	  32-bit CPUs that can be used from deeply embedded to high
+	  performance host applications. The big endian support was
+	  not used nor maintained, so it was removed.
+
 comment "Legacy options removed in 2025.11"
 
 config BR2_KERNEL_HEADERS_5_4

+ 1 - 9
arch/Config.in

@@ -29,14 +29,6 @@ config BR2_arcle
 	  32-bit CPUs that can be used from deeply embedded to high
 	  performance host applications. Little endian.
 
-config BR2_arceb
-	bool "ARC (big endian)"
-	select BR2_USE_MMU
-	help
-	  Synopsys' DesignWare ARC Processor Cores are a family of
-	  32-bit CPUs that can be used from deeply embedded to high
-	  performance host applications. Big endian.
-
 config BR2_arm
 	bool "ARM (little endian)"
 	# MMU support is set by the subarchitecture file, arch/Config.in.arm
@@ -385,7 +377,7 @@ config BR2_BINFMT_SUPPORTS_SHARED
 config BR2_READELF_ARCH_NAME
 	string
 
-if BR2_arcle || BR2_arceb
+if BR2_arcle
 source "arch/Config.in.arc"
 endif
 

+ 3 - 5
arch/Config.in.arc

@@ -59,19 +59,17 @@ config BR2_ARC_ATOMIC_EXT
 	default y if BR2_archs4x_rel31 || BR2_archs4x
 
 config BR2_ARCH
-	default "arc"	if BR2_arcle
-	default "arceb"	if BR2_arceb
+	default "arc"
 
 config BR2_NORMALIZED_ARCH
 	default "arc"
 
 config BR2_arc
 	bool
-	default y if BR2_arcle || BR2_arceb
+	default y
 
 config BR2_ENDIAN
-	default "LITTLE" if BR2_arcle
-	default "BIG"	 if BR2_arceb
+	default "LITTLE"
 
 config BR2_GCC_TARGET_CPU
 	default "arc700" if BR2_arc750d

+ 1 - 1
linux/Config.in

@@ -180,7 +180,7 @@ config BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG
 	# version. This is mainly needed to fix autobuilder testing.
 	select BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL if \
 	       BR2_LINUX_KERNEL_LATEST_VERSION && \
-	       (BR2_aarch64 || BR2_aarch64_be || BR2_arcle || BR2_arceb || \
+	       (BR2_aarch64 || BR2_aarch64_be || BR2_arcle || \
 	        BR2_or1k || BR2_riscv || BR2_sparc || BR2_x86_64)
 	help
 	  This option will use the default configuration for the

+ 1 - 1
package/dhcpcd/Config.in

@@ -16,7 +16,7 @@ config BR2_PACKAGE_DHCPCD_ENABLE_PRIVSEP
 	default y
 	depends on BR2_USE_MMU
 	# Audit headers were only added in recent kernels for some arches
-	depends on !(BR2_arceb || BR2_arcle) || \
+	depends on !BR2_arcle || \
 		BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_2
 	depends on !(BR2_microblazeel || BR2_microblazebe) || \
 		BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18

+ 1 - 1
package/fluent-bit/Config.in

@@ -23,7 +23,7 @@ if BR2_PACKAGE_FLUENT_BIT
 config BR2_PACKAGE_FLUENT_BIT_WASM_ARCH
 	string
 	default "AARCH64"    if BR2_aarch64 || BR2_aarch64_be
-	default "ARC"        if BR2_arcle || BR2_arceb
+	default "ARC"        if BR2_arcle
 	default "ARM"        if BR2_arm || BR2_armeb
 	default "MIPS"       if BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
 	default "RISCV32"    if BR2_riscv && BR2_RISCV_32

+ 1 - 1
package/kodi/kodi.mk

@@ -146,7 +146,7 @@ KODI_DEPENDENCIES += libiconv
 KODI_EXTRA_LIBS += -liconv
 endif
 
-ifeq ($(BR2_arceb)$(BR2_arcle),y)
+ifeq ($(BR2_arcle),y)
 KODI_CONF_OPTS += -DWITH_ARCH=arc -DWITH_CPU=arc
 else ifeq ($(BR2_armeb),y)
 KODI_CONF_OPTS += -DWITH_ARCH=arm -DWITH_CPU=arm

+ 1 - 1
package/libspdm/Config.in

@@ -1,6 +1,6 @@
 config BR2_PACKAGE_LIBSPDM_CPU_FAMILY
 	string
-	# OpenSSL doesn't support "arc" (BR2_arcle || BR2_arceb), "arm"
+	# OpenSSL doesn't support "arc" (BR2_arcle), "arm"
 	# (if BR2_arm || BR2_armeb) or "riscv32"/"riscv6"
 	# (BR2_riscv && BR2_RISCV_32/BR2_RISCV_64). So we don't
 	# support those here

+ 1 - 1
package/oprofile/Config.in

@@ -2,7 +2,7 @@
 config BR2_PACKAGE_OPROFILE_ARCH_SUPPORTS
 	bool
 	default y
-	depends on BR2_arceb || BR2_arcle || BR2_arm || BR2_armeb || \
+	depends on BR2_arcle || BR2_arm || BR2_armeb || \
 		BR2_aarch64 || BR2_aarch64_be || BR2_i386 || BR2_mips || \
 		BR2_mipsel || BR2_mips64 || BR2_mips64el || BR2_powerpc || \
 		BR2_powerpc64 || BR2_powerpc64le || BR2_s390x || BR2_sh || \

+ 1 - 1
package/pkg-meson.mk

@@ -30,7 +30,7 @@ NINJA		= PYTHONNOUSERSITE=y $(HOST_DIR)/bin/ninja
 NINJA_OPTS	= $(if $(VERBOSE),-v)
 
 # https://mesonbuild.com/Reference-tables.html#cpu-families
-ifeq ($(BR2_arcle)$(BR2_arceb),y)
+ifeq ($(BR2_arcle),y)
 PKG_MESON_TARGET_CPU_FAMILY = arc
 else ifeq ($(BR2_arm)$(BR2_armeb),y)
 PKG_MESON_TARGET_CPU_FAMILY = arm

+ 1 - 1
package/swipl/Config.in

@@ -5,7 +5,7 @@
 config BR2_PACKAGE_SWIPL_ARCH_SUPPORTS
 	bool
 	default y if BR2_aarch64 || BR2_aarch64_be
-	default y if BR2_arceb || BR2_arcle
+	default y if BR2_arcle
 	default y if BR2_arm || BR2_armeb
 	default y if BR2_i386
 	default y if BR2_m68k

+ 1 - 2
package/uclibc/Config.in

@@ -3,7 +3,6 @@ config BR2_PACKAGE_UCLIBC_ARCH_SUPPORTS
 	default y if BR2_aarch64
 	default y if BR2_aarch64_be
 	default y if BR2_arcle
-	default y if BR2_arceb
 	default y if BR2_arm
 	default y if BR2_armeb
 	default y if BR2_i386
@@ -126,7 +125,7 @@ config BR2_UCLIBC_INSTALL_UTILS
 config BR2_UCLIBC_TARGET_ARCH
 	string
 	default "aarch64"  if BR2_aarch64 || BR2_aarch64_be
-	default "arc"	   if BR2_arcle || BR2_arceb
+	default "arc"	   if BR2_arcle
 	default "arm"	   if BR2_arm	|| BR2_armeb
 	default "m68k"	   if BR2_m68k
 	default "microblaze"   if BR2_microblaze

+ 1 - 1
package/z3/Config.in

@@ -5,7 +5,7 @@
 config BR2_PACKAGE_Z3_ARCH_SUPPORTS
 	bool
 	default y if BR2_aarch64 || BR2_aarch64_be
-	default y if BR2_arceb || BR2_arcle
+	default y if BR2_arcle
 	default y if BR2_arm || BR2_armeb
 	default y if BR2_i386
 	default y if BR2_m68k

+ 0 - 4
toolchain/toolchain-external/pkg-toolchain-external.mk

@@ -237,10 +237,6 @@ ifeq ($(BR2_mips)$(BR2_mips64),y)
 TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_MIPS_TARGET_BIG_ENDIAN
 TOOLCHAIN_EXTERNAL_CFLAGS += -EB
 endif
-ifeq ($(BR2_arceb),y)
-TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_ARC_TARGET_BIG_ENDIAN
-TOOLCHAIN_EXTERNAL_CFLAGS += -EB
-endif
 
 TOOLCHAIN_EXTERNAL_CFLAGS += $(call qstrip,$(BR2_TARGET_OPTIMIZATION))
 

+ 1 - 2
toolchain/toolchain-external/toolchain-external-synopsys-arc/Config.in.options

@@ -33,8 +33,7 @@ config BR2_TOOLCHAIN_EXTERNAL_SYNOPSYS_ARCHS_GLIBC
 endchoice
 
 config BR2_TOOLCHAIN_EXTERNAL_PREFIX
-	default "arc-linux"		 if BR2_arcle
-	default "arceb-linux"		 if BR2_arceb
+	default "arc-linux"
 
 config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL
 	default "toolchain-external-synopsys-arc"