arch: drop support for SH2A
Until commit "arch/Config.in.sh: fixup MMU selection" in this series,
SH2A could either be used with BR2_USE_MMU disabled or BR2_USE_MMU
enabled.
The later made absolutely no sense, since SH2A does not have a MMU:
MMU support was introduced starting from SH3 according to
https://en.wikipedia.org/wiki/SuperH#SH-3
Also, since commit 22d5501e03
("arch:
tidy up binary formats config"), which was merged in Buildroot
2015.05, the architecture tuple used when BR2_sh2a=y and BR2_USE_MMU
disabled is sh2a-buildroot-uclinux-uclibc, and this was already
unsupported back in the days of Buildroot 2015.08 and binutils 2.24,
causing the build to fail with:
*** BFD does not support target sh2a-buildroot-uclinux-uclibc.
just like it fails to build today with recent version of binutils.
So, this has been broken since 2015.08, and nobody complained. SH2A is
seldom used, so it's time to kill it.
It is worth mentioning that there had been an attempt at resurrecting
SH2 support around 2015 (see https://lwn.net/Articles/647636/) as part
of the J2 core. This effort led to the addition of FDPIC support for
SH2A in the musl C library (and therefore proper ELF binaries, with
shared libraries), but that was never supported in Buildroot. Now that
the J2 project is essentially dead, there is no reason to bother with
this.
Fixes:
http://autobuild.buildroot.net/results/63d01d33ae30f86b63b9f42a9fea116f2f3e9005/
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
This commit is contained in:
parent
aa8a2dacf2
commit
04ea3d38dd
@ -146,6 +146,13 @@ endif
|
||||
|
||||
comment "Legacy options removed in 2022.05"
|
||||
|
||||
config BR2_sh2a
|
||||
bool "sh2a architecture support removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
The SuperH 2A (SH2A) architecture was not maintained, and
|
||||
broken, so its support was dropped.
|
||||
|
||||
config BR2_BINUTILS_VERSION_2_35_X
|
||||
bool "binutils 2.35.x has been removed"
|
||||
select BR2_LEGACY
|
||||
|
@ -5,8 +5,6 @@ choice
|
||||
help
|
||||
Specific CPU variant to use
|
||||
|
||||
config BR2_sh2a
|
||||
bool "sh2a (SH2A big endian)"
|
||||
config BR2_sh4
|
||||
bool "sh4 (SH4 little endian)"
|
||||
select BR2_ARCH_HAS_MMU_MANDATORY
|
||||
@ -22,7 +20,6 @@ config BR2_sh4aeb
|
||||
endchoice
|
||||
|
||||
config BR2_ARCH
|
||||
default "sh2a" if BR2_sh2a
|
||||
default "sh4" if BR2_sh4
|
||||
default "sh4eb" if BR2_sh4eb
|
||||
default "sh4a" if BR2_sh4a
|
||||
@ -33,7 +30,7 @@ config BR2_NORMALIZED_ARCH
|
||||
|
||||
config BR2_ENDIAN
|
||||
default "LITTLE" if BR2_sh4 || BR2_sh4a
|
||||
default "BIG" if BR2_sh2a || BR2_sh4eb || BR2_sh4aeb
|
||||
default "BIG" if BR2_sh4eb || BR2_sh4aeb
|
||||
|
||||
config BR2_READELF_ARCH_NAME
|
||||
default "Renesas / SuperH SH"
|
||||
|
@ -124,7 +124,6 @@ config BR2_UCLIBC_MIPS_NAN
|
||||
|
||||
config BR2_UCLIBC_SH_TYPE
|
||||
string
|
||||
default "SH2A" if BR2_sh2a
|
||||
default "SH4" if BR2_sh4 || BR2_sh4eb
|
||||
depends on BR2_UCLIBC_TARGET_ARCH = "sh"
|
||||
|
||||
|
@ -31,7 +31,7 @@ config BR2_TOOLCHAIN_BUILDROOT_UCLIBC
|
||||
BR2_arm || BR2_armeb || \
|
||||
BR2_i386 || BR2_m68k || BR2_microblaze || \
|
||||
BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el || \
|
||||
BR2_or1k || BR2_powerpc || BR2_RISCV_64 || BR2_sh2a || \
|
||||
BR2_or1k || BR2_powerpc || BR2_RISCV_64 || \
|
||||
BR2_sh4 || BR2_sh4eb || BR2_sparc || BR2_xtensa || \
|
||||
BR2_x86_64
|
||||
select BR2_TOOLCHAIN_USES_UCLIBC
|
||||
|
@ -237,12 +237,9 @@ def fixup_config(sysinfo, configfile):
|
||||
if 'BR2_PACKAGE_PYTHON3=y\n' in configlines and \
|
||||
BR2_TOOLCHAIN_EXTERNAL_URL + 'mips64el-ctng_n64-linux-gnu.tar.xz"\n' in configlines:
|
||||
return False
|
||||
# libffi not available on sh2a and ARMv7-M, but propagating libffi
|
||||
# arch dependencies in Buildroot is really too much work, so we
|
||||
# handle this here.
|
||||
if 'BR2_sh2a=y\n' in configlines and \
|
||||
'BR2_PACKAGE_LIBFFI=y\n' in configlines:
|
||||
return False
|
||||
# libffi not available on ARMv7-M, but propagating libffi arch
|
||||
# dependencies in Buildroot is really too much work, so we handle
|
||||
# this here.
|
||||
if 'BR2_ARM_CPU_ARMV7M=y\n' in configlines and \
|
||||
'BR2_PACKAGE_LIBFFI=y\n' in configlines:
|
||||
return False
|
||||
|
Loading…
Reference in New Issue
Block a user