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>
This commit is contained in:
Thomas Petazzoni
2025-12-11 17:16:15 +01:00
committed by Julien Olivain
parent 0f303f3abc
commit 2d570f8369
15 changed files with 24 additions and 31 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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 || \

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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))

View File

@@ -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"