From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19642 invoked by alias); 6 Jan 2014 11:06:06 -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 19630 invoked by uid 89); 6 Jan 2014 11:06:05 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.5 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-f170.google.com Received: from mail-ve0-f170.google.com (HELO mail-ve0-f170.google.com) (209.85.128.170) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Mon, 06 Jan 2014 11:06:04 +0000 Received: by mail-ve0-f170.google.com with SMTP id oy12so9425120veb.1 for ; Mon, 06 Jan 2014 03:06:02 -0800 (PST) MIME-Version: 1.0 X-Received: by 10.220.92.135 with SMTP id r7mr21345524vcm.11.1389006362430; Mon, 06 Jan 2014 03:06:02 -0800 (PST) Received: by 10.52.254.168 with HTTP; Mon, 6 Jan 2014 03:06:02 -0800 (PST) In-Reply-To: <5B4A856A-A214-4F20-83D2-BAD886EB9F04@gmail.com> References: <1388597841-30225-1-git-send-email-marcus.shawcroft@linaro.org> <5B4A856A-A214-4F20-83D2-BAD886EB9F04@gmail.com> Date: Mon, 06 Jan 2014 11:06:00 -0000 Message-ID: Subject: Re: [PATCH] [AArch64] Define BE loader name. From: Marcus Shawcroft To: pinskia@gmail.com Cc: Marcus Shawcroft , "libc-ports@sourceware.org" Content-Type: text/plain; charset=ISO-8859-1 X-IsSubscribed: yes X-SW-Source: 2014-01/txt/msg00014.txt.bz2 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. 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. 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. Cavium / montavista do have the option of creating a symlink in order to ease the transition. > 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