This is the mail archive of the libc-ports@sources.redhat.com 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
<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


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