From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.3 required=5.0 tests=MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 14708 invoked from network); 1 Jun 2020 21:36:59 -0000 Received: from mother.openwall.net (195.42.179.200) by inbox.vuxu.org with ESMTPUTF8; 1 Jun 2020 21:36:59 -0000 Received: (qmail 25832 invoked by uid 550); 1 Jun 2020 21:36:54 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Reply-To: musl@lists.openwall.com Received: (qmail 25814 invoked from network); 1 Jun 2020 21:36:53 -0000 Date: Mon, 1 Jun 2020 17:36:40 -0400 From: Rich Felker To: Joseph Myers Cc: Will Springer , linuxppc-dev@lists.ozlabs.org, libc-alpha@sourceware.org, eery@paperfox.es, daniel@octaforge.org, musl@lists.openwall.com, binutils@sourceware.org, libc-dev@lists.llvm.org Message-ID: <20200601213639.GX1079@brightrain.aerifal.cx> References: <2047231.C4sosBPzcN@sheen> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) Subject: Re: [musl] Re: ppc64le and 32-bit LE userland compatibility On Mon, Jun 01, 2020 at 09:28:25PM +0000, Joseph Myers wrote: > On Fri, 29 May 2020, Will Springer via Binutils wrote: > > > Hey all, a couple of us over in #talos-workstation on freenode have been > > working on an effort to bring up a Linux PowerPC userland that runs in 32-bit > > little-endian mode, aka ppcle. As far as we can tell, no ABI has ever been > > designated for this (unless you count the patchset from a decade ago [1]), so > > it's pretty much uncharted territory as far as Linux is concerned. We want to > > sync up with libc and the relevant kernel folks to establish the best path > > forward. > > As a general comment on the glibc side of things, if this is considered > like a new port, and it probably is, the same principles that apply to new > ports apply here. > > There's a general discussion at > , although much of that is > only applicable when adding new CPU architecture support. More specific > points include that new 32-bit ports should default to 64-bit time and > file offsets from the start, with no support for 32-bit time or offsets > (meaning that if you want to use this with some kind of library call > translation, the library call translation will need to deal with > corresponding type size conversions). And a new port should not be added > that uses the IBM long double format. You can use IEEE binary128 long > double, possibly with an ABI similar to that used on powerpc64le, or can > use long double = double, but should not support IBM long double, and > preferably should only have one long double format rather than using the > glibc support for building with different options resulting in functions > for different long double formats being called. Thanks, these are great points, and the same applies for musl I think. We always have 64-bit off_t anyway, but new ports should have 64-bit time_t to begin with rather than defining _REDIR_TIME64. It's a little bit complicated by the fact that powerpcle would be a "subarch" for powerpc, and we don't yet have any like that where the subarchs' time64 statuses differ, but it doesn't look like that should be hard to do. The arch-specific alltypes.h.in already has access to endianness knowledge. src/ldso/powerpc/dlsym_time64.S would also need added preprocessor conditionals. Exemption from this would be open to discussion if there are existing non-upstream users of powerpcle musl that otherwise complies with ABI policy except for time64, but I'm not aware of any that aren't experimental. Rich