Re: [PATCH 3/3] arm64: configs: unset CPU_BIG_ENDIAN
From: Will Deacon
Date: Fri Oct 11 2019 - 06:27:54 EST
On Fri, Oct 11, 2019 at 12:25:29PM +0200, Arnd Bergmann wrote:
> On Thu, Oct 3, 2019 at 1:15 PM John Garry <john.garry@xxxxxxxxxx> wrote:
> > On 03/10/2019 08:40, Anders Roxell wrote:
> > > On Tue, 1 Oct 2019 at 16:04, John Garry <john.garry@xxxxxxxxxx> wrote:
> > >> On 26/09/2019 20:30, Anders Roxell wrote:
> > >>> it doesn't get enabled when building allmodconfig kernels. When doing a
> > >>> 'make savedefconfig' CONFIG_CPU_BIG_ENDIAN will be dropped.
> > >>
> > >> So without having to pass KCONFIG_ALLCONFIG or do anything else, what
> > >> about a config for CONFIG_CPU_LITTLE_ENDIAN instead? I'm not sure if
> > >> that was omitted for a specific reason.
> > >
> > > Oh, I tried to elaborate on the idea in the cover letter, that using
> > > the defconfig
> > > as base and then configure the rest as modules is to get a bootable kernel
> > > that have as many features turned on as possible. That will make it possible
> > > to run as wide a range of testsuites as possible on a single kernel.
> > >
> > > Does that make it clearer ?
> >
> > Hi Anders,
> >
> > Yeah, I got the idea.
> >
> > So when you say "'make savedefconfig' CONFIG_CPU_BIG_ENDIAN will be
> > dropped", I don't know what the rules are in terms of resyncing the
> > common defconfig (I was under the impression that it's done per release
> > cycle by the arm soc maintainers, but can't find evidence as such), but
> > your change may be easily lost in this way.
>
> We don't do it every release, but occasionally someone sends a patch
> with a refresh, and this might easily get missed.
>
> We could force the allmodconfig kernel to be little-endian by default,
> using a choice statement to pick endianess like arch/mips and arch/sh
> do, the effect would be that an allmodconfig kernel gains a few more
> options that depend on !BIG_ENDIAN, but we would no longer catch
> a class of endianess bugs in drivers that we otherwise get warnings
> for. No idea what is better here.
Does anybody use BIG_ENDIAN? If we're not even building it then maybe we
should get rid of it altogether on arm64. I don't know of any supported
userspace that supports it or any CPUs that are unable to run little-endian
binaries.
Will