This is the mail archive of the
mailing list for the libc-ports project.
Re: [PATCH] [AArch64] Define BE loader name.
- From: Andrew Pinski <pinskia at gmail dot com>
- To: Marcus Shawcroft <marcus dot shawcroft at gmail dot com>
- Cc: Marcus Shawcroft <marcus dot shawcroft at linaro dot org>, "libc-ports at sourceware dot org" <libc-ports at sourceware dot org>
- Date: Mon, 6 Jan 2014 09:16:00 -0800
- Subject: Re: [PATCH] [AArch64] Define BE loader name.
- Authentication-results: sourceware.org; auth=none
- References: <1388597841-30225-1-git-send-email-marcus dot shawcroft at linaro dot org> <5B4A856A-A214-4F20-83D2-BAD886EB9F04 at gmail dot com> <CAFqB+PwUM2_gvQhvoMsEbm1u=JKpkN_7qM75efdNZyBBKn9sWw at mail dot gmail dot com>
On Mon, Jan 6, 2014 at 3:06 AM, Marcus Shawcroft
> On 1 January 2014 19:31, <email@example.com> wrote:
>>> On Jan 1, 2014, at 9:37 AM, Marcus Shawcroft <firstname.lastname@example.org> wrote:
>>> This patch defines the BE loader name for aarch64 to be ld-linux-aarch64_be.so.1.
>> 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.
>> 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