[PATCH] [AArch64] Define BE loader name.
Andrew Pinski
pinskia@gmail.com
Mon Jan 6 17:16:00 GMT 2014
On Mon, Jan 6, 2014 at 3:06 AM, Marcus Shawcroft
<marcus.shawcroft@gmail.com> wrote:
> Hi,
>
> On 1 January 2014 19:31, <pinskia@gmail.com> wrote:
>>
>>
>>> On Jan 1, 2014, at 9:37 AM, Marcus Shawcroft <marcus.shawcroft@linaro.org> wrote:
>>>
>>> Hi,
>>>
>>> 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.
Thanks,
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
More information about the Libc-ports
mailing list