From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31745 invoked by alias); 6 Jan 2014 17:16:05 -0000 Mailing-List: contact libc-ports-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: libc-ports-owner@sourceware.org Received: (qmail 31731 invoked by uid 89); 6 Jan 2014 17:16:04 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-ve0-f174.google.com Received: from mail-ve0-f174.google.com (HELO mail-ve0-f174.google.com) (209.85.128.174) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Mon, 06 Jan 2014 17:16:03 +0000 Received: by mail-ve0-f174.google.com with SMTP id pa12so9213852veb.5 for ; Mon, 06 Jan 2014 09:16:00 -0800 (PST) MIME-Version: 1.0 X-Received: by 10.58.235.129 with SMTP id um1mr5483240vec.17.1389028560760; Mon, 06 Jan 2014 09:16:00 -0800 (PST) Received: by 10.58.178.207 with HTTP; Mon, 6 Jan 2014 09:16:00 -0800 (PST) In-Reply-To: References: <1388597841-30225-1-git-send-email-marcus.shawcroft@linaro.org> <5B4A856A-A214-4F20-83D2-BAD886EB9F04@gmail.com> Date: Mon, 06 Jan 2014 17:16:00 -0000 Message-ID: Subject: Re: [PATCH] [AArch64] Define BE loader name. From: Andrew Pinski To: Marcus Shawcroft Cc: Marcus Shawcroft , "libc-ports@sourceware.org" Content-Type: text/plain; charset=UTF-8 X-IsSubscribed: yes X-SW-Source: 2014-01/txt/msg00015.txt.bz2 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 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