* [Buildroot] [PATCH 1/1] package/binutils: disable 2.32 on unuspported FLAT platforms @ 2022-04-09 2:07 James Hilliard 2022-04-13 20:51 ` Thomas Petazzoni via buildroot 0 siblings, 1 reply; 4+ messages in thread From: James Hilliard @ 2022-04-09 2:07 UTC (permalink / raw) To: buildroot; +Cc: James Hilliard, Romain Naour, Giulio Benetti These architectures are unsupported in config.bfd: https://sourceware.org/git/?p=binutils-gdb.git;a=blob;f=bfd/config.bfd;h=0e1ddb659c3ab7160aab0a7c173b85052f870e65;hb=a9d9a104dde6a749f40ce5c4576a0042a7d52d1f Fixes: - http://autobuild.buildroot.net/results/332/33277d4687ca9a04dbfb02c50e5755ff9e55b0b4 - http://autobuild.buildroot.net/results/5e3/5e34d11393e14fc36fd6e72b69679bc4fd1e3798 - http://autobuild.buildroot.net/results/63d/63d01d33ae30f86b63b9f42a9fea116f2f3e9005 - http://autobuild.buildroot.net/results/45b/45bc90fd2dde7bb201d7f999db1a8024cf889a06 - http://autobuild.buildroot.net/results/d1b/d1b1dfe449f82944bd48215da3cdffd05797e2e9 - http://autobuild.buildroot.net/results/a3e/a3eb1ff6bf6357242ec7993db63e57d4afeccc7b - http://autobuild.buildroot.net/results/f4d/f4d52cabee61ee0f234b03c1ec1bd02e85e7bb20 Signed-off-by: James Hilliard <james.hilliard1@gmail.com> --- package/binutils/Config.in.host | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/package/binutils/Config.in.host b/package/binutils/Config.in.host index ea1f020989..e1c59bfbd0 100644 --- a/package/binutils/Config.in.host +++ b/package/binutils/Config.in.host @@ -15,6 +15,13 @@ choice config BR2_BINUTILS_VERSION_2_32_X bool "binutils 2.32" depends on !BR2_csky + depends on !(BR2_aarch64 && BR2_BINFMT_FLAT) + depends on !(BR2_aarch64_be && BR2_BINFMT_FLAT) + depends on !(BR2_sh2a && BR2_BINFMT_FLAT) + depends on !(BR2_sh4 && BR2_BINFMT_FLAT) + depends on !(BR2_sh4a && BR2_BINFMT_FLAT) + depends on !(BR2_sh4aeb && BR2_BINFMT_FLAT) + depends on !(BR2_sh4eb && BR2_BINFMT_FLAT) config BR2_BINUTILS_VERSION_2_35_X bool "binutils 2.35.2" -- 2.25.1 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [Buildroot] [PATCH 1/1] package/binutils: disable 2.32 on unuspported FLAT platforms 2022-04-09 2:07 [Buildroot] [PATCH 1/1] package/binutils: disable 2.32 on unuspported FLAT platforms James Hilliard @ 2022-04-13 20:51 ` Thomas Petazzoni via buildroot 2022-04-17 6:50 ` James Hilliard 0 siblings, 1 reply; 4+ messages in thread From: Thomas Petazzoni via buildroot @ 2022-04-13 20:51 UTC (permalink / raw) To: James Hilliard; +Cc: Romain Naour, Giulio Benetti, Yann E. MORIN, buildroot Hello James, On Fri, 8 Apr 2022 20:07:19 -0600 James Hilliard <james.hilliard1@gmail.com> wrote: > These architectures are unsupported in config.bfd: > https://sourceware.org/git/?p=binutils-gdb.git;a=blob;f=bfd/config.bfd;h=0e1ddb659c3ab7160aab0a7c173b85052f870e65;hb=a9d9a104dde6a749f40ce5c4576a0042a7d52d1f > > Fixes: > - http://autobuild.buildroot.net/results/332/33277d4687ca9a04dbfb02c50e5755ff9e55b0b4 > - http://autobuild.buildroot.net/results/5e3/5e34d11393e14fc36fd6e72b69679bc4fd1e3798 > - http://autobuild.buildroot.net/results/63d/63d01d33ae30f86b63b9f42a9fea116f2f3e9005 > - http://autobuild.buildroot.net/results/45b/45bc90fd2dde7bb201d7f999db1a8024cf889a06 > - http://autobuild.buildroot.net/results/d1b/d1b1dfe449f82944bd48215da3cdffd05797e2e9 > - http://autobuild.buildroot.net/results/a3e/a3eb1ff6bf6357242ec7993db63e57d4afeccc7b > - http://autobuild.buildroot.net/results/f4d/f4d52cabee61ee0f234b03c1ec1bd02e85e7bb20 > > Signed-off-by: James Hilliard <james.hilliard1@gmail.com> > --- > package/binutils/Config.in.host | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/package/binutils/Config.in.host b/package/binutils/Config.in.host > index ea1f020989..e1c59bfbd0 100644 > --- a/package/binutils/Config.in.host > +++ b/package/binutils/Config.in.host > @@ -15,6 +15,13 @@ choice > config BR2_BINUTILS_VERSION_2_32_X > bool "binutils 2.32" > depends on !BR2_csky > + depends on !(BR2_aarch64 && BR2_BINFMT_FLAT) > + depends on !(BR2_aarch64_be && BR2_BINFMT_FLAT) > + depends on !(BR2_sh2a && BR2_BINFMT_FLAT) > + depends on !(BR2_sh4 && BR2_BINFMT_FLAT) > + depends on !(BR2_sh4a && BR2_BINFMT_FLAT) > + depends on !(BR2_sh4aeb && BR2_BINFMT_FLAT) > + depends on !(BR2_sh4eb && BR2_BINFMT_FLAT) I'm not sure that how we want to handle this. Indeed, even with newer binutils versions, I really doubt supporting aarch64 with the FLAT binary format makes a lot of sense. As far as I'm aware, there's currently no practical use-case for Linux noMMU on aarch64 and SH4, so I would simply disallow that. So on ARM, I would only allow the MMU to be disabled on ARMv7-M, and on SuperH, for SH2A. I.e something like the below patch. Of course, that leaves the case of BR2_sh2a. But if binutils 2.35/2.36/2.37 are broken for the FLAT format (which is why they are disabled), and 2.32 is disabled for SH2A/FLAT, then there's nothing left available for SH2A/FLAT. Except that package/binutils/Config.in.host is wrong in disabling 2.35/2.36/2.37 for all FLAT configs: the bug is only related to ARM. However, I feel strange that sh2a/FLAT was not supported back in binutils 2.32. sh2a/FLAT has been around for a very long time. In fact what happens is that we have a patch to allow sh2a as an architecture name: package/binutils/2.32/0001-sh-conf.patch. But that patch is probably no longer sufficient, and some adjustements are also needed in bfd/config.bfd. Bottom line: there is more work than just this proposal, which simply papers over the problem without really fixing it. diff --git a/arch/Config.in b/arch/Config.in index 98b0e40d51..e51ef60f40 100644 --- a/arch/Config.in +++ b/arch/Config.in @@ -228,7 +228,6 @@ config BR2_s390x config BR2_sh bool "SuperH" - select BR2_ARCH_HAS_MMU_OPTIONAL help SuperH (or SH) is a 32-bit reduced instruction set computer (RISC) instruction set architecture (ISA) developed by diff --git a/arch/Config.in.arm b/arch/Config.in.arm index 85040ac89f..16f053fba3 100644 --- a/arch/Config.in.arm +++ b/arch/Config.in.arm @@ -73,21 +73,27 @@ config BR2_ARM_CPU_HAS_THUMB2 config BR2_ARM_CPU_ARMV4 bool + select BR2_ARCH_HAS_MMU_MANDATORY config BR2_ARM_CPU_ARMV5 bool + select BR2_ARCH_HAS_MMU_MANDATORY config BR2_ARM_CPU_ARMV6 bool + select BR2_ARCH_HAS_MMU_MANDATORY config BR2_ARM_CPU_ARMV7A bool + select BR2_ARCH_HAS_MMU_MANDATORY config BR2_ARM_CPU_ARMV7M bool + select BR2_ARCH_HAS_MMU_OPTIONAL config BR2_ARM_CPU_ARMV8A bool + select BR2_ARCH_HAS_MMU_MANDATORY choice prompt "Target Architecture Variant" @@ -103,23 +109,19 @@ config BR2_arm920t select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_THUMB select BR2_ARM_CPU_ARMV4 - select BR2_ARCH_HAS_MMU_OPTIONAL config BR2_arm922t bool "arm922t" select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_THUMB select BR2_ARM_CPU_ARMV4 - select BR2_ARCH_HAS_MMU_OPTIONAL config BR2_fa526 bool "fa526/626" select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_ARMV4 - select BR2_ARCH_HAS_MMU_OPTIONAL config BR2_strongarm bool "strongarm sa110/sa1100" select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_ARMV4 - select BR2_ARCH_HAS_MMU_OPTIONAL comment "armv5 cores" config BR2_arm926t @@ -128,18 +130,15 @@ config BR2_arm926t select BR2_ARM_CPU_MAYBE_HAS_VFPV2 select BR2_ARM_CPU_HAS_THUMB select BR2_ARM_CPU_ARMV5 - select BR2_ARCH_HAS_MMU_OPTIONAL config BR2_iwmmxt bool "iwmmxt" select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_ARMV5 - select BR2_ARCH_HAS_MMU_OPTIONAL config BR2_xscale bool "xscale" select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_THUMB select BR2_ARM_CPU_ARMV5 - select BR2_ARCH_HAS_MMU_OPTIONAL comment "armv6 cores" config BR2_arm1136j_s @@ -147,34 +146,29 @@ config BR2_arm1136j_s select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_THUMB select BR2_ARM_CPU_ARMV6 - select BR2_ARCH_HAS_MMU_OPTIONAL config BR2_arm1136jf_s bool "arm1136jf-s" select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_VFPV2 select BR2_ARM_CPU_HAS_THUMB select BR2_ARM_CPU_ARMV6 - select BR2_ARCH_HAS_MMU_OPTIONAL config BR2_arm1176jz_s bool "arm1176jz-s" select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_THUMB select BR2_ARM_CPU_ARMV6 - select BR2_ARCH_HAS_MMU_OPTIONAL config BR2_arm1176jzf_s bool "arm1176jzf-s" select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_VFPV2 select BR2_ARM_CPU_HAS_THUMB select BR2_ARM_CPU_ARMV6 - select BR2_ARCH_HAS_MMU_OPTIONAL config BR2_arm11mpcore bool "mpcore" select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_MAYBE_HAS_VFPV2 select BR2_ARM_CPU_HAS_THUMB select BR2_ARM_CPU_ARMV6 - select BR2_ARCH_HAS_MMU_OPTIONAL comment "armv7a cores" config BR2_cortex_a5 @@ -184,7 +178,6 @@ config BR2_cortex_a5 select BR2_ARM_CPU_MAYBE_HAS_VFPV4 select BR2_ARM_CPU_HAS_THUMB2 select BR2_ARM_CPU_ARMV7A - select BR2_ARCH_HAS_MMU_OPTIONAL config BR2_cortex_a7 bool "cortex-A7" select BR2_ARM_CPU_HAS_ARM @@ -192,7 +185,6 @@ config BR2_cortex_a7 select BR2_ARM_CPU_HAS_VFPV4 select BR2_ARM_CPU_HAS_THUMB2 select BR2_ARM_CPU_ARMV7A - select BR2_ARCH_HAS_MMU_OPTIONAL config BR2_cortex_a8 bool "cortex-A8" select BR2_ARM_CPU_HAS_ARM @@ -200,7 +192,6 @@ config BR2_cortex_a8 select BR2_ARM_CPU_HAS_VFPV3 select BR2_ARM_CPU_HAS_THUMB2 select BR2_ARM_CPU_ARMV7A - select BR2_ARCH_HAS_MMU_OPTIONAL config BR2_cortex_a9 bool "cortex-A9" select BR2_ARM_CPU_HAS_ARM @@ -208,7 +199,6 @@ config BR2_cortex_a9 select BR2_ARM_CPU_MAYBE_HAS_VFPV3 select BR2_ARM_CPU_HAS_THUMB2 select BR2_ARM_CPU_ARMV7A - select BR2_ARCH_HAS_MMU_OPTIONAL config BR2_cortex_a12 bool "cortex-A12" select BR2_ARM_CPU_HAS_ARM @@ -216,7 +206,6 @@ config BR2_cortex_a12 select BR2_ARM_CPU_HAS_VFPV4 select BR2_ARM_CPU_HAS_THUMB2 select BR2_ARM_CPU_ARMV7A - select BR2_ARCH_HAS_MMU_OPTIONAL config BR2_cortex_a15 bool "cortex-A15" select BR2_ARM_CPU_HAS_ARM @@ -224,7 +213,6 @@ config BR2_cortex_a15 select BR2_ARM_CPU_HAS_VFPV4 select BR2_ARM_CPU_HAS_THUMB2 select BR2_ARM_CPU_ARMV7A - select BR2_ARCH_HAS_MMU_OPTIONAL config BR2_cortex_a15_a7 bool "cortex-A15/A7 big.LITTLE" select BR2_ARM_CPU_HAS_ARM @@ -232,7 +220,6 @@ config BR2_cortex_a15_a7 select BR2_ARM_CPU_HAS_VFPV4 select BR2_ARM_CPU_HAS_THUMB2 select BR2_ARM_CPU_ARMV7A - select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9 config BR2_cortex_a17 bool "cortex-A17" @@ -241,7 +228,6 @@ config BR2_cortex_a17 select BR2_ARM_CPU_HAS_VFPV4 select BR2_ARM_CPU_HAS_THUMB2 select BR2_ARM_CPU_ARMV7A - select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 config BR2_cortex_a17_a7 bool "cortex-A17/A7 big.LITTLE" @@ -250,14 +236,12 @@ config BR2_cortex_a17_a7 select BR2_ARM_CPU_HAS_VFPV4 select BR2_ARM_CPU_HAS_THUMB2 select BR2_ARM_CPU_ARMV7A - select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 config BR2_pj4 bool "pj4" select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_VFPV3 select BR2_ARM_CPU_ARMV7A - select BR2_ARCH_HAS_MMU_OPTIONAL comment "armv7m cores" config BR2_cortex_m3 @@ -286,7 +270,6 @@ config BR2_cortex_a32 select BR2_ARM_CPU_HAS_THUMB2 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A - select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_6 config BR2_cortex_a35 bool "cortex-A35" @@ -295,7 +278,6 @@ config BR2_cortex_a35 select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A - select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_6 config BR2_cortex_a53 bool "cortex-A53" @@ -304,7 +286,6 @@ config BR2_cortex_a53 select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A - select BR2_ARCH_HAS_MMU_OPTIONAL config BR2_cortex_a57 bool "cortex-A57" select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 @@ -312,7 +293,6 @@ config BR2_cortex_a57 select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A - select BR2_ARCH_HAS_MMU_OPTIONAL config BR2_cortex_a57_a53 bool "cortex-A57/A53 big.LITTLE" select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 @@ -320,7 +300,6 @@ config BR2_cortex_a57_a53 select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A - select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_6 config BR2_cortex_a72 bool "cortex-A72" @@ -329,7 +308,6 @@ config BR2_cortex_a72 select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A - select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 config BR2_cortex_a72_a53 bool "cortex-A72/A53 big.LITTLE" @@ -338,7 +316,6 @@ config BR2_cortex_a72_a53 select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A - select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_6 config BR2_cortex_a73 bool "cortex-A73" @@ -347,7 +324,6 @@ config BR2_cortex_a73 select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A - select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 config BR2_cortex_a73_a35 bool "cortex-A73/A35 big.LITTLE" @@ -356,7 +332,6 @@ config BR2_cortex_a73_a35 select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A - select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 config BR2_cortex_a73_a53 bool "cortex-A73/A53 big.LITTLE" @@ -365,14 +340,12 @@ config BR2_cortex_a73_a53 select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A - select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 config BR2_emag bool "emag" depends on BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A - select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_9 config BR2_exynos_m1 bool "exynos-m1" @@ -381,63 +354,54 @@ config BR2_exynos_m1 select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A - select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 config BR2_falkor bool "falkor" depends on BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A - select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 config BR2_phecda bool "phecda" depends on BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A - select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_9 config BR2_qdf24xx bool "qdf24xx" depends on BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A - select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_6 config BR2_thunderx bool "thunderx (aka octeontx)" depends on BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A - select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 config BR2_thunderxt81 bool "thunderxt81 (aka octeontx81)" depends on BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A - select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 config BR2_thunderxt83 bool "thunderxt83 (aka octeontx83)" depends on BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A - select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 config BR2_thunderxt88 bool "thunderxt88" depends on BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A - select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 config BR2_thunderxt88p1 bool "thunderxt88p1" depends on BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A - select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 config BR2_xgene1 bool "xgene1" @@ -446,7 +410,6 @@ config BR2_xgene1 select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A - select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 comment "armv8.1a cores" @@ -455,21 +418,18 @@ config BR2_thunderx2t99 depends on BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A - select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 config BR2_thunderx2t99p1 bool "thunderx2t99p1" depends on BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A - select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 config BR2_vulcan bool "vulcan" depends on BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A - select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 comment "armv8.2a cores" @@ -478,21 +438,18 @@ config BR2_cortex_a55 depends on BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A - select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_8 config BR2_cortex_a75 bool "cortex-A75" depends on BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A - select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_8 config BR2_cortex_a75_a55 bool "cortex-A75/A55 big.LITTLE" depends on BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A - select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_8 config BR2_cortex_a76 bool "cortex-A76" @@ -501,7 +458,6 @@ config BR2_cortex_a76 select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A - select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_9 config BR2_cortex_a76_a55 bool "cortex-A76/A55 big.LITTLE" @@ -510,7 +466,6 @@ config BR2_cortex_a76_a55 select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A - select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_9 config BR2_neoverse_n1 bool "neoverse-N1 (aka ares)" @@ -519,14 +474,12 @@ config BR2_neoverse_n1 select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A - select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_9 config BR2_tsv110 bool "tsv110" depends on BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A - select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_9 comment "armv8.4a cores" @@ -535,7 +488,6 @@ config BR2_saphira depends on BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A - select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_8 endchoice diff --git a/arch/Config.in.sh b/arch/Config.in.sh index c1ba449dd5..94b034c158 100644 --- a/arch/Config.in.sh +++ b/arch/Config.in.sh @@ -7,14 +7,19 @@ choice config BR2_sh2a bool "sh2a (SH2A big endian)" + select BR2_ARCH_HAS_MMU_OPTIONAL config BR2_sh4 bool "sh4 (SH4 little endian)" + select BR2_ARCH_HAS_MMU_MANDATORY config BR2_sh4eb bool "sh4eb (SH4 big endian)" + select BR2_ARCH_HAS_MMU_MANDATORY config BR2_sh4a bool "sh4a (SH4A little endian)" + select BR2_ARCH_HAS_MMU_MANDATORY config BR2_sh4aeb bool "sh4aeb (SH4A big endian)" + select BR2_ARCH_HAS_MMU_MANDATORY endchoice config BR2_ARCH -- Thomas Petazzoni, co-owner and CEO, Bootlin Embedded Linux and Kernel engineering and training https://bootlin.com _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [Buildroot] [PATCH 1/1] package/binutils: disable 2.32 on unuspported FLAT platforms 2022-04-13 20:51 ` Thomas Petazzoni via buildroot @ 2022-04-17 6:50 ` James Hilliard 2022-04-19 19:42 ` Thomas Petazzoni via buildroot 0 siblings, 1 reply; 4+ messages in thread From: James Hilliard @ 2022-04-17 6:50 UTC (permalink / raw) To: Thomas Petazzoni; +Cc: Romain Naour, Giulio Benetti, Yann E. MORIN, buildroot On Wed, Apr 13, 2022 at 2:51 PM Thomas Petazzoni <thomas.petazzoni@bootlin.com> wrote: > > Hello James, > > On Fri, 8 Apr 2022 20:07:19 -0600 > James Hilliard <james.hilliard1@gmail.com> wrote: > > > These architectures are unsupported in config.bfd: > > https://sourceware.org/git/?p=binutils-gdb.git;a=blob;f=bfd/config.bfd;h=0e1ddb659c3ab7160aab0a7c173b85052f870e65;hb=a9d9a104dde6a749f40ce5c4576a0042a7d52d1f > > > > Fixes: > > - http://autobuild.buildroot.net/results/332/33277d4687ca9a04dbfb02c50e5755ff9e55b0b4 > > - http://autobuild.buildroot.net/results/5e3/5e34d11393e14fc36fd6e72b69679bc4fd1e3798 > > - http://autobuild.buildroot.net/results/63d/63d01d33ae30f86b63b9f42a9fea116f2f3e9005 > > - http://autobuild.buildroot.net/results/45b/45bc90fd2dde7bb201d7f999db1a8024cf889a06 > > - http://autobuild.buildroot.net/results/d1b/d1b1dfe449f82944bd48215da3cdffd05797e2e9 > > - http://autobuild.buildroot.net/results/a3e/a3eb1ff6bf6357242ec7993db63e57d4afeccc7b > > - http://autobuild.buildroot.net/results/f4d/f4d52cabee61ee0f234b03c1ec1bd02e85e7bb20 > > > > Signed-off-by: James Hilliard <james.hilliard1@gmail.com> > > --- > > package/binutils/Config.in.host | 7 +++++++ > > 1 file changed, 7 insertions(+) > > > > diff --git a/package/binutils/Config.in.host b/package/binutils/Config.in.host > > index ea1f020989..e1c59bfbd0 100644 > > --- a/package/binutils/Config.in.host > > +++ b/package/binutils/Config.in.host > > @@ -15,6 +15,13 @@ choice > > config BR2_BINUTILS_VERSION_2_32_X > > bool "binutils 2.32" > > depends on !BR2_csky > > + depends on !(BR2_aarch64 && BR2_BINFMT_FLAT) > > + depends on !(BR2_aarch64_be && BR2_BINFMT_FLAT) > > + depends on !(BR2_sh2a && BR2_BINFMT_FLAT) > > + depends on !(BR2_sh4 && BR2_BINFMT_FLAT) > > + depends on !(BR2_sh4a && BR2_BINFMT_FLAT) > > + depends on !(BR2_sh4aeb && BR2_BINFMT_FLAT) > > + depends on !(BR2_sh4eb && BR2_BINFMT_FLAT) > > I'm not sure that how we want to handle this. Indeed, even with newer > binutils versions, I really doubt supporting aarch64 with the FLAT > binary format makes a lot of sense. Well our newer binutils versions do already have FLAT disabled entirely by setting: depends on !BR2_BINFMT_FLAT > > As far as I'm aware, there's currently no practical use-case for Linux > noMMU on aarch64 and SH4, so I would simply disallow that. So on ARM, I > would only allow the MMU to be disabled on ARMv7-M, and on SuperH, for > SH2A. I.e something like the below patch. > > Of course, that leaves the case of BR2_sh2a. But if binutils > 2.35/2.36/2.37 are broken for the FLAT format (which is why they are > disabled), and 2.32 is disabled for SH2A/FLAT, then there's nothing > left available for SH2A/FLAT Hmm, my assumption was that even though FLAT may not be supported by the buildroot toolchain it may be possible some external toolchains could have support for them, so I figured best just disable known invalid options here for buildroot toolchain binutils. > Except that > package/binutils/Config.in.host is wrong in disabling 2.35/2.36/2.37 > for all FLAT configs: the bug is only related to ARM. Hmm, so maybe this set of depends plus an arm exclusion is needed for newer binutils? > > However, I feel strange that sh2a/FLAT was not supported back in > binutils 2.32. sh2a/FLAT has been around for a very long time. In fact > what happens is that we have a patch to allow sh2a as an architecture > name: package/binutils/2.32/0001-sh-conf.patch. But that patch is > probably no longer sufficient, and some adjustements are also needed in > bfd/config.bfd. So, that patch doesn't seem to add uclinux as a supported target, which seems to be required for BR2_BINFMT_FLAT builds based on: https://github.com/buildroot/buildroot/blob/2022.02.1/package/Makefile.in#L44-L45 https://github.com/buildroot/buildroot/blob/2022.02.1/package/Makefile.in#L40 https://github.com/buildroot/buildroot/blob/2022.02.1/package/binutils/binutils.mk#L83 https://sourceware.org/git/?p=binutils-gdb.git;a=blob;f=bfd/config.bfd;h=0e1ddb659c3ab7160aab0a7c173b85052f870e65;hb=a9d9a104dde6a749f40ce5c4576a0042a7d52d1f#l1243 The failures from what I can tell here are due to the lack of a uclinux target for sh2a in bfd/config.bfd. > > Bottom line: there is more work than just this proposal, which simply > papers over the problem without really fixing it. Yeah, that's probably a bit outside my area of expertise, I was just adding these dependencies by tracing the configure failure conditions. I'm not really familiar with no-mmu builds in general so wouldn't really know what's correct for the architecture mmu settings. > > diff --git a/arch/Config.in b/arch/Config.in > index 98b0e40d51..e51ef60f40 100644 > --- a/arch/Config.in > +++ b/arch/Config.in > @@ -228,7 +228,6 @@ config BR2_s390x > > config BR2_sh > bool "SuperH" > - select BR2_ARCH_HAS_MMU_OPTIONAL > help > SuperH (or SH) is a 32-bit reduced instruction set computer > (RISC) instruction set architecture (ISA) developed by > diff --git a/arch/Config.in.arm b/arch/Config.in.arm > index 85040ac89f..16f053fba3 100644 > --- a/arch/Config.in.arm > +++ b/arch/Config.in.arm > @@ -73,21 +73,27 @@ config BR2_ARM_CPU_HAS_THUMB2 > > config BR2_ARM_CPU_ARMV4 > bool > + select BR2_ARCH_HAS_MMU_MANDATORY > > config BR2_ARM_CPU_ARMV5 > bool > + select BR2_ARCH_HAS_MMU_MANDATORY > > config BR2_ARM_CPU_ARMV6 > bool > + select BR2_ARCH_HAS_MMU_MANDATORY > > config BR2_ARM_CPU_ARMV7A > bool > + select BR2_ARCH_HAS_MMU_MANDATORY > > config BR2_ARM_CPU_ARMV7M > bool > + select BR2_ARCH_HAS_MMU_OPTIONAL > > config BR2_ARM_CPU_ARMV8A > bool > + select BR2_ARCH_HAS_MMU_MANDATORY > > choice > prompt "Target Architecture Variant" > @@ -103,23 +109,19 @@ config BR2_arm920t > select BR2_ARM_CPU_HAS_ARM > select BR2_ARM_CPU_HAS_THUMB > select BR2_ARM_CPU_ARMV4 > - select BR2_ARCH_HAS_MMU_OPTIONAL > config BR2_arm922t > bool "arm922t" > select BR2_ARM_CPU_HAS_ARM > select BR2_ARM_CPU_HAS_THUMB > select BR2_ARM_CPU_ARMV4 > - select BR2_ARCH_HAS_MMU_OPTIONAL > config BR2_fa526 > bool "fa526/626" > select BR2_ARM_CPU_HAS_ARM > select BR2_ARM_CPU_ARMV4 > - select BR2_ARCH_HAS_MMU_OPTIONAL > config BR2_strongarm > bool "strongarm sa110/sa1100" > select BR2_ARM_CPU_HAS_ARM > select BR2_ARM_CPU_ARMV4 > - select BR2_ARCH_HAS_MMU_OPTIONAL > > comment "armv5 cores" > config BR2_arm926t > @@ -128,18 +130,15 @@ config BR2_arm926t > select BR2_ARM_CPU_MAYBE_HAS_VFPV2 > select BR2_ARM_CPU_HAS_THUMB > select BR2_ARM_CPU_ARMV5 > - select BR2_ARCH_HAS_MMU_OPTIONAL > config BR2_iwmmxt > bool "iwmmxt" > select BR2_ARM_CPU_HAS_ARM > select BR2_ARM_CPU_ARMV5 > - select BR2_ARCH_HAS_MMU_OPTIONAL > config BR2_xscale > bool "xscale" > select BR2_ARM_CPU_HAS_ARM > select BR2_ARM_CPU_HAS_THUMB > select BR2_ARM_CPU_ARMV5 > - select BR2_ARCH_HAS_MMU_OPTIONAL > > comment "armv6 cores" > config BR2_arm1136j_s > @@ -147,34 +146,29 @@ config BR2_arm1136j_s > select BR2_ARM_CPU_HAS_ARM > select BR2_ARM_CPU_HAS_THUMB > select BR2_ARM_CPU_ARMV6 > - select BR2_ARCH_HAS_MMU_OPTIONAL > config BR2_arm1136jf_s > bool "arm1136jf-s" > select BR2_ARM_CPU_HAS_ARM > select BR2_ARM_CPU_HAS_VFPV2 > select BR2_ARM_CPU_HAS_THUMB > select BR2_ARM_CPU_ARMV6 > - select BR2_ARCH_HAS_MMU_OPTIONAL > config BR2_arm1176jz_s > bool "arm1176jz-s" > select BR2_ARM_CPU_HAS_ARM > select BR2_ARM_CPU_HAS_THUMB > select BR2_ARM_CPU_ARMV6 > - select BR2_ARCH_HAS_MMU_OPTIONAL > config BR2_arm1176jzf_s > bool "arm1176jzf-s" > select BR2_ARM_CPU_HAS_ARM > select BR2_ARM_CPU_HAS_VFPV2 > select BR2_ARM_CPU_HAS_THUMB > select BR2_ARM_CPU_ARMV6 > - select BR2_ARCH_HAS_MMU_OPTIONAL > config BR2_arm11mpcore > bool "mpcore" > select BR2_ARM_CPU_HAS_ARM > select BR2_ARM_CPU_MAYBE_HAS_VFPV2 > select BR2_ARM_CPU_HAS_THUMB > select BR2_ARM_CPU_ARMV6 > - select BR2_ARCH_HAS_MMU_OPTIONAL > > comment "armv7a cores" > config BR2_cortex_a5 > @@ -184,7 +178,6 @@ config BR2_cortex_a5 > select BR2_ARM_CPU_MAYBE_HAS_VFPV4 > select BR2_ARM_CPU_HAS_THUMB2 > select BR2_ARM_CPU_ARMV7A > - select BR2_ARCH_HAS_MMU_OPTIONAL > config BR2_cortex_a7 > bool "cortex-A7" > select BR2_ARM_CPU_HAS_ARM > @@ -192,7 +185,6 @@ config BR2_cortex_a7 > select BR2_ARM_CPU_HAS_VFPV4 > select BR2_ARM_CPU_HAS_THUMB2 > select BR2_ARM_CPU_ARMV7A > - select BR2_ARCH_HAS_MMU_OPTIONAL > config BR2_cortex_a8 > bool "cortex-A8" > select BR2_ARM_CPU_HAS_ARM > @@ -200,7 +192,6 @@ config BR2_cortex_a8 > select BR2_ARM_CPU_HAS_VFPV3 > select BR2_ARM_CPU_HAS_THUMB2 > select BR2_ARM_CPU_ARMV7A > - select BR2_ARCH_HAS_MMU_OPTIONAL > config BR2_cortex_a9 > bool "cortex-A9" > select BR2_ARM_CPU_HAS_ARM > @@ -208,7 +199,6 @@ config BR2_cortex_a9 > select BR2_ARM_CPU_MAYBE_HAS_VFPV3 > select BR2_ARM_CPU_HAS_THUMB2 > select BR2_ARM_CPU_ARMV7A > - select BR2_ARCH_HAS_MMU_OPTIONAL > config BR2_cortex_a12 > bool "cortex-A12" > select BR2_ARM_CPU_HAS_ARM > @@ -216,7 +206,6 @@ config BR2_cortex_a12 > select BR2_ARM_CPU_HAS_VFPV4 > select BR2_ARM_CPU_HAS_THUMB2 > select BR2_ARM_CPU_ARMV7A > - select BR2_ARCH_HAS_MMU_OPTIONAL > config BR2_cortex_a15 > bool "cortex-A15" > select BR2_ARM_CPU_HAS_ARM > @@ -224,7 +213,6 @@ config BR2_cortex_a15 > select BR2_ARM_CPU_HAS_VFPV4 > select BR2_ARM_CPU_HAS_THUMB2 > select BR2_ARM_CPU_ARMV7A > - select BR2_ARCH_HAS_MMU_OPTIONAL > config BR2_cortex_a15_a7 > bool "cortex-A15/A7 big.LITTLE" > select BR2_ARM_CPU_HAS_ARM > @@ -232,7 +220,6 @@ config BR2_cortex_a15_a7 > select BR2_ARM_CPU_HAS_VFPV4 > select BR2_ARM_CPU_HAS_THUMB2 > select BR2_ARM_CPU_ARMV7A > - select BR2_ARCH_HAS_MMU_OPTIONAL > select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9 > config BR2_cortex_a17 > bool "cortex-A17" > @@ -241,7 +228,6 @@ config BR2_cortex_a17 > select BR2_ARM_CPU_HAS_VFPV4 > select BR2_ARM_CPU_HAS_THUMB2 > select BR2_ARM_CPU_ARMV7A > - select BR2_ARCH_HAS_MMU_OPTIONAL > select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 > config BR2_cortex_a17_a7 > bool "cortex-A17/A7 big.LITTLE" > @@ -250,14 +236,12 @@ config BR2_cortex_a17_a7 > select BR2_ARM_CPU_HAS_VFPV4 > select BR2_ARM_CPU_HAS_THUMB2 > select BR2_ARM_CPU_ARMV7A > - select BR2_ARCH_HAS_MMU_OPTIONAL > select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 > config BR2_pj4 > bool "pj4" > select BR2_ARM_CPU_HAS_ARM > select BR2_ARM_CPU_HAS_VFPV3 > select BR2_ARM_CPU_ARMV7A > - select BR2_ARCH_HAS_MMU_OPTIONAL > > comment "armv7m cores" > config BR2_cortex_m3 > @@ -286,7 +270,6 @@ config BR2_cortex_a32 > select BR2_ARM_CPU_HAS_THUMB2 > select BR2_ARM_CPU_HAS_FP_ARMV8 > select BR2_ARM_CPU_ARMV8A > - select BR2_ARCH_HAS_MMU_OPTIONAL > select BR2_ARCH_NEEDS_GCC_AT_LEAST_6 > config BR2_cortex_a35 > bool "cortex-A35" > @@ -295,7 +278,6 @@ config BR2_cortex_a35 > select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 > select BR2_ARM_CPU_HAS_FP_ARMV8 > select BR2_ARM_CPU_ARMV8A > - select BR2_ARCH_HAS_MMU_OPTIONAL > select BR2_ARCH_NEEDS_GCC_AT_LEAST_6 > config BR2_cortex_a53 > bool "cortex-A53" > @@ -304,7 +286,6 @@ config BR2_cortex_a53 > select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 > select BR2_ARM_CPU_HAS_FP_ARMV8 > select BR2_ARM_CPU_ARMV8A > - select BR2_ARCH_HAS_MMU_OPTIONAL > config BR2_cortex_a57 > bool "cortex-A57" > select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 > @@ -312,7 +293,6 @@ config BR2_cortex_a57 > select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 > select BR2_ARM_CPU_HAS_FP_ARMV8 > select BR2_ARM_CPU_ARMV8A > - select BR2_ARCH_HAS_MMU_OPTIONAL > config BR2_cortex_a57_a53 > bool "cortex-A57/A53 big.LITTLE" > select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 > @@ -320,7 +300,6 @@ config BR2_cortex_a57_a53 > select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 > select BR2_ARM_CPU_HAS_FP_ARMV8 > select BR2_ARM_CPU_ARMV8A > - select BR2_ARCH_HAS_MMU_OPTIONAL > select BR2_ARCH_NEEDS_GCC_AT_LEAST_6 > config BR2_cortex_a72 > bool "cortex-A72" > @@ -329,7 +308,6 @@ config BR2_cortex_a72 > select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 > select BR2_ARM_CPU_HAS_FP_ARMV8 > select BR2_ARM_CPU_ARMV8A > - select BR2_ARCH_HAS_MMU_OPTIONAL > select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 > config BR2_cortex_a72_a53 > bool "cortex-A72/A53 big.LITTLE" > @@ -338,7 +316,6 @@ config BR2_cortex_a72_a53 > select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 > select BR2_ARM_CPU_HAS_FP_ARMV8 > select BR2_ARM_CPU_ARMV8A > - select BR2_ARCH_HAS_MMU_OPTIONAL > select BR2_ARCH_NEEDS_GCC_AT_LEAST_6 > config BR2_cortex_a73 > bool "cortex-A73" > @@ -347,7 +324,6 @@ config BR2_cortex_a73 > select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 > select BR2_ARM_CPU_HAS_FP_ARMV8 > select BR2_ARM_CPU_ARMV8A > - select BR2_ARCH_HAS_MMU_OPTIONAL > select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 > config BR2_cortex_a73_a35 > bool "cortex-A73/A35 big.LITTLE" > @@ -356,7 +332,6 @@ config BR2_cortex_a73_a35 > select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 > select BR2_ARM_CPU_HAS_FP_ARMV8 > select BR2_ARM_CPU_ARMV8A > - select BR2_ARCH_HAS_MMU_OPTIONAL > select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 > config BR2_cortex_a73_a53 > bool "cortex-A73/A53 big.LITTLE" > @@ -365,14 +340,12 @@ config BR2_cortex_a73_a53 > select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 > select BR2_ARM_CPU_HAS_FP_ARMV8 > select BR2_ARM_CPU_ARMV8A > - select BR2_ARCH_HAS_MMU_OPTIONAL > select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 > config BR2_emag > bool "emag" > depends on BR2_ARCH_IS_64 > select BR2_ARM_CPU_HAS_FP_ARMV8 > select BR2_ARM_CPU_ARMV8A > - select BR2_ARCH_HAS_MMU_OPTIONAL > select BR2_ARCH_NEEDS_GCC_AT_LEAST_9 > config BR2_exynos_m1 > bool "exynos-m1" > @@ -381,63 +354,54 @@ config BR2_exynos_m1 > select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 > select BR2_ARM_CPU_HAS_FP_ARMV8 > select BR2_ARM_CPU_ARMV8A > - select BR2_ARCH_HAS_MMU_OPTIONAL > select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 > config BR2_falkor > bool "falkor" > depends on BR2_ARCH_IS_64 > select BR2_ARM_CPU_HAS_FP_ARMV8 > select BR2_ARM_CPU_ARMV8A > - select BR2_ARCH_HAS_MMU_OPTIONAL > select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 > config BR2_phecda > bool "phecda" > depends on BR2_ARCH_IS_64 > select BR2_ARM_CPU_HAS_FP_ARMV8 > select BR2_ARM_CPU_ARMV8A > - select BR2_ARCH_HAS_MMU_OPTIONAL > select BR2_ARCH_NEEDS_GCC_AT_LEAST_9 > config BR2_qdf24xx > bool "qdf24xx" > depends on BR2_ARCH_IS_64 > select BR2_ARM_CPU_HAS_FP_ARMV8 > select BR2_ARM_CPU_ARMV8A > - select BR2_ARCH_HAS_MMU_OPTIONAL > select BR2_ARCH_NEEDS_GCC_AT_LEAST_6 > config BR2_thunderx > bool "thunderx (aka octeontx)" > depends on BR2_ARCH_IS_64 > select BR2_ARM_CPU_HAS_FP_ARMV8 > select BR2_ARM_CPU_ARMV8A > - select BR2_ARCH_HAS_MMU_OPTIONAL > select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 > config BR2_thunderxt81 > bool "thunderxt81 (aka octeontx81)" > depends on BR2_ARCH_IS_64 > select BR2_ARM_CPU_HAS_FP_ARMV8 > select BR2_ARM_CPU_ARMV8A > - select BR2_ARCH_HAS_MMU_OPTIONAL > select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 > config BR2_thunderxt83 > bool "thunderxt83 (aka octeontx83)" > depends on BR2_ARCH_IS_64 > select BR2_ARM_CPU_HAS_FP_ARMV8 > select BR2_ARM_CPU_ARMV8A > - select BR2_ARCH_HAS_MMU_OPTIONAL > select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 > config BR2_thunderxt88 > bool "thunderxt88" > depends on BR2_ARCH_IS_64 > select BR2_ARM_CPU_HAS_FP_ARMV8 > select BR2_ARM_CPU_ARMV8A > - select BR2_ARCH_HAS_MMU_OPTIONAL > select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 > config BR2_thunderxt88p1 > bool "thunderxt88p1" > depends on BR2_ARCH_IS_64 > select BR2_ARM_CPU_HAS_FP_ARMV8 > select BR2_ARM_CPU_ARMV8A > - select BR2_ARCH_HAS_MMU_OPTIONAL > select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 > config BR2_xgene1 > bool "xgene1" > @@ -446,7 +410,6 @@ config BR2_xgene1 > select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 > select BR2_ARM_CPU_HAS_FP_ARMV8 > select BR2_ARM_CPU_ARMV8A > - select BR2_ARCH_HAS_MMU_OPTIONAL > select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 > > comment "armv8.1a cores" > @@ -455,21 +418,18 @@ config BR2_thunderx2t99 > depends on BR2_ARCH_IS_64 > select BR2_ARM_CPU_HAS_FP_ARMV8 > select BR2_ARM_CPU_ARMV8A > - select BR2_ARCH_HAS_MMU_OPTIONAL > select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 > config BR2_thunderx2t99p1 > bool "thunderx2t99p1" > depends on BR2_ARCH_IS_64 > select BR2_ARM_CPU_HAS_FP_ARMV8 > select BR2_ARM_CPU_ARMV8A > - select BR2_ARCH_HAS_MMU_OPTIONAL > select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 > config BR2_vulcan > bool "vulcan" > depends on BR2_ARCH_IS_64 > select BR2_ARM_CPU_HAS_FP_ARMV8 > select BR2_ARM_CPU_ARMV8A > - select BR2_ARCH_HAS_MMU_OPTIONAL > select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 > > comment "armv8.2a cores" > @@ -478,21 +438,18 @@ config BR2_cortex_a55 > depends on BR2_ARCH_IS_64 > select BR2_ARM_CPU_HAS_FP_ARMV8 > select BR2_ARM_CPU_ARMV8A > - select BR2_ARCH_HAS_MMU_OPTIONAL > select BR2_ARCH_NEEDS_GCC_AT_LEAST_8 > config BR2_cortex_a75 > bool "cortex-A75" > depends on BR2_ARCH_IS_64 > select BR2_ARM_CPU_HAS_FP_ARMV8 > select BR2_ARM_CPU_ARMV8A > - select BR2_ARCH_HAS_MMU_OPTIONAL > select BR2_ARCH_NEEDS_GCC_AT_LEAST_8 > config BR2_cortex_a75_a55 > bool "cortex-A75/A55 big.LITTLE" > depends on BR2_ARCH_IS_64 > select BR2_ARM_CPU_HAS_FP_ARMV8 > select BR2_ARM_CPU_ARMV8A > - select BR2_ARCH_HAS_MMU_OPTIONAL > select BR2_ARCH_NEEDS_GCC_AT_LEAST_8 > config BR2_cortex_a76 > bool "cortex-A76" > @@ -501,7 +458,6 @@ config BR2_cortex_a76 > select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 > select BR2_ARM_CPU_HAS_FP_ARMV8 > select BR2_ARM_CPU_ARMV8A > - select BR2_ARCH_HAS_MMU_OPTIONAL > select BR2_ARCH_NEEDS_GCC_AT_LEAST_9 > config BR2_cortex_a76_a55 > bool "cortex-A76/A55 big.LITTLE" > @@ -510,7 +466,6 @@ config BR2_cortex_a76_a55 > select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 > select BR2_ARM_CPU_HAS_FP_ARMV8 > select BR2_ARM_CPU_ARMV8A > - select BR2_ARCH_HAS_MMU_OPTIONAL > select BR2_ARCH_NEEDS_GCC_AT_LEAST_9 > config BR2_neoverse_n1 > bool "neoverse-N1 (aka ares)" > @@ -519,14 +474,12 @@ config BR2_neoverse_n1 > select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 > select BR2_ARM_CPU_HAS_FP_ARMV8 > select BR2_ARM_CPU_ARMV8A > - select BR2_ARCH_HAS_MMU_OPTIONAL > select BR2_ARCH_NEEDS_GCC_AT_LEAST_9 > config BR2_tsv110 > bool "tsv110" > depends on BR2_ARCH_IS_64 > select BR2_ARM_CPU_HAS_FP_ARMV8 > select BR2_ARM_CPU_ARMV8A > - select BR2_ARCH_HAS_MMU_OPTIONAL > select BR2_ARCH_NEEDS_GCC_AT_LEAST_9 > > comment "armv8.4a cores" > @@ -535,7 +488,6 @@ config BR2_saphira > depends on BR2_ARCH_IS_64 > select BR2_ARM_CPU_HAS_FP_ARMV8 > select BR2_ARM_CPU_ARMV8A > - select BR2_ARCH_HAS_MMU_OPTIONAL > select BR2_ARCH_NEEDS_GCC_AT_LEAST_8 > endchoice > > diff --git a/arch/Config.in.sh b/arch/Config.in.sh > index c1ba449dd5..94b034c158 100644 > --- a/arch/Config.in.sh > +++ b/arch/Config.in.sh > @@ -7,14 +7,19 @@ choice > > config BR2_sh2a > bool "sh2a (SH2A big endian)" > + select BR2_ARCH_HAS_MMU_OPTIONAL > config BR2_sh4 > bool "sh4 (SH4 little endian)" > + select BR2_ARCH_HAS_MMU_MANDATORY > config BR2_sh4eb > bool "sh4eb (SH4 big endian)" > + select BR2_ARCH_HAS_MMU_MANDATORY > config BR2_sh4a > bool "sh4a (SH4A little endian)" > + select BR2_ARCH_HAS_MMU_MANDATORY > config BR2_sh4aeb > bool "sh4aeb (SH4A big endian)" > + select BR2_ARCH_HAS_MMU_MANDATORY > endchoice > > config BR2_ARCH > > > -- > Thomas Petazzoni, co-owner and CEO, Bootlin > Embedded Linux and Kernel engineering and training > https://bootlin.com _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Buildroot] [PATCH 1/1] package/binutils: disable 2.32 on unuspported FLAT platforms 2022-04-17 6:50 ` James Hilliard @ 2022-04-19 19:42 ` Thomas Petazzoni via buildroot 0 siblings, 0 replies; 4+ messages in thread From: Thomas Petazzoni via buildroot @ 2022-04-19 19:42 UTC (permalink / raw) To: James Hilliard; +Cc: Romain Naour, buildroot, Giulio Benetti, Yann E. MORIN Hello, On Sun, 17 Apr 2022 00:50:19 -0600 James Hilliard <james.hilliard1@gmail.com> wrote: > > I'm not sure that how we want to handle this. Indeed, even with newer > > binutils versions, I really doubt supporting aarch64 with the FLAT > > binary format makes a lot of sense. > > Well our newer binutils versions do already have FLAT disabled > entirely by setting: > depends on !BR2_BINFMT_FLAT Right, but as I state below, this is incorrect: they are disabled because they introduce a regression on ARM noMMU. Other noMMU architectures are (as far as we know), not affected. > > As far as I'm aware, there's currently no practical use-case for Linux > > noMMU on aarch64 and SH4, so I would simply disallow that. So on ARM, I > > would only allow the MMU to be disabled on ARMv7-M, and on SuperH, for > > SH2A. I.e something like the below patch. > > > > Of course, that leaves the case of BR2_sh2a. But if binutils > > 2.35/2.36/2.37 are broken for the FLAT format (which is why they are > > disabled), and 2.32 is disabled for SH2A/FLAT, then there's nothing > > left available for SH2A/FLAT > > Hmm, my assumption was that even though FLAT may not be supported > by the buildroot toolchain it may be possible some external toolchains > could have support for them, so I figured best just disable known invalid > options here for buildroot toolchain binutils. Practically speaking, nobody is using/testing FLAT on aarch64, SH4 or other MMU-capable architectures. We should support reasonable use-cases only IMO. > > Except that > > package/binutils/Config.in.host is wrong in disabling 2.35/2.36/2.37 > > for all FLAT configs: the bug is only related to ARM. > > Hmm, so maybe this set of depends plus an arm exclusion is needed > for newer binutils? I'm not following you here. > > However, I feel strange that sh2a/FLAT was not supported back in > > binutils 2.32. sh2a/FLAT has been around for a very long time. In fact > > what happens is that we have a patch to allow sh2a as an architecture > > name: package/binutils/2.32/0001-sh-conf.patch. But that patch is > > probably no longer sufficient, and some adjustements are also needed in > > bfd/config.bfd. > > So, that patch doesn't seem to add uclinux as a supported target, No, it makes it support sh2a as an architecture name. > which seems to be required for BR2_BINFMT_FLAT builds based on: > https://github.com/buildroot/buildroot/blob/2022.02.1/package/Makefile.in#L44-L45 > https://github.com/buildroot/buildroot/blob/2022.02.1/package/Makefile.in#L40 > https://github.com/buildroot/buildroot/blob/2022.02.1/package/binutils/binutils.mk#L83 > https://sourceware.org/git/?p=binutils-gdb.git;a=blob;f=bfd/config.bfd;h=0e1ddb659c3ab7160aab0a7c173b85052f870e65;hb=a9d9a104dde6a749f40ce5c4576a0042a7d52d1f#l1243 > > The failures from what I can tell here are due to the lack of a uclinux > target for sh2a in bfd/config.bfd. I need to have a closer look it seems. > > Bottom line: there is more work than just this proposal, which simply > > papers over the problem without really fixing it. > > Yeah, that's probably a bit outside my area of expertise, I was just > adding these dependencies by tracing the configure failure conditions. > > I'm not really familiar with no-mmu builds in general so wouldn't really > know what's correct for the architecture mmu settings. Yeah, that's also why I'm advocating for a broader solution. I'll try to cook some patches. I don't think I'll fix all problems in one go, but we can progressively get there. Best regards, Thomas -- Thomas Petazzoni, co-owner and CEO, Bootlin Embedded Linux and Kernel engineering and training https://bootlin.com _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2022-04-19 19:42 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2022-04-09 2:07 [Buildroot] [PATCH 1/1] package/binutils: disable 2.32 on unuspported FLAT platforms James Hilliard 2022-04-13 20:51 ` Thomas Petazzoni via buildroot 2022-04-17 6:50 ` James Hilliard 2022-04-19 19:42 ` Thomas Petazzoni via buildroot
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.