This is the mail archive of the mailing list for the libc-ports project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] [AArch64] Define BE loader name.

On Mon, Jan 6, 2014 at 3:06 AM, Marcus Shawcroft
<> wrote:
> Hi,
> On 1 January 2014 19:31,  <> wrote:
>>> On Jan 1, 2014, at 9:37 AM, Marcus Shawcroft <> wrote:
>>> Hi,
>>> This patch defines the BE loader name for aarch64 to be
>> We (Cavium and Montavista) already have a distro out in the wild for big-endian and I think changing this is a bad idea as you won't have both little-endian and big-endian on the same system ever.
> It is unfortunate that the loader name wasn't put in place before you
> put code in the wild.
> gcc has been able to configure and build for aarch64_be-none-linux-gnu
> since it was upstreamed (4.8).  The 4.8 release of gcc was tested for
> aarch64-elf, aarch64-linux-gnu and aarch64_be-elf , no
> aarch64_be-linux-gnu kernel support was available for testing at the
> time.  The BE gcc port of aarch64 is very much beta, there has been
> flux in BE gcc support over the last year notably in advsimd support
> and correctness.

Then it should never have gone upstream.  I am sorry but this is a
huge ABI change and should have been mentioned that it was going to
change.  I hope ARM had been better at thinking this through in the
first place.  I think we should not change it at all.

> glibc has been able to configure and build for aarch64_be since it was
> upstreamed (2.17).  Releases 2.17 and 2.18 were tested for
> aarch64-linux-gnu.  Neither were tested for aarch64_be-linux-gnu.  At
> the time of those releases there was no functional BE linux port.
> linux currently has no support for aarch64_be, the port will be  in
> 3.13 (due in a couple of weeks).
> Therefore the situation right now for aarch64_be is that gcc is in a
> state of flux and there is no released linux kernel kernel support.

No, you can still use GCC 4.8.0 with a newer version of the kernel.

> Leaving the loader name overloaded between LE and BE closes doors for
> the future, if it doesn't change now, a change further down the line
> will be considerably more painful.

I think this is a bogus mention of why to change the ABI.  This ABI
was set when GCC/glibc support was added upstream.  If ARM does not
like it, then they should not have committed BE support to GCC/glibc
just yet.  I am sorry but this situation is broken and also there was
mention of this outside of these emails to any partners/licenses
before even posting of this patch.

> Cavium / montavista do have the option of creating a symlink in order
> to ease the transition.

No this still broken.

Andrew Pinski

>> Also you forgot to change both GCC and binutils.
> Not forgotten. GCC will be posted shortly.  BINUTILS looks like it is
> uses a broken loader name for both LE and BE, I'll sort that out
> separately.

> Cheers
> /Marcus

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]