From: Rich Felker <dalias@libc.org>
To: musl@lists.openwall.com
Subject: Re: [PATCH] powerpc64le: Add single instruction math functions
Date: Sat, 24 Jun 2017 18:44:06 -0400 [thread overview]
Message-ID: <20170624224406.GZ1627@brightrain.aerifal.cx> (raw)
In-Reply-To: <CAGWvnymV26L=GrNjRPcvzOResirpjMb_8BkpFqdJhvrLMtYvPw@mail.gmail.com>
On Sat, Jun 24, 2017 at 04:53:58PM -0400, David Edelsohn wrote:
> On Fri, Jun 23, 2017 at 11:38 PM, A. Wilcox <awilfox@adelielinux.org> wrote:
> > -----BEGIN PGP SIGNED MESSAGE-----
> > Hash: SHA256
> >
> > On 23/06/17 22:05, David Edelsohn wrote:
> >> Note that I only added the optimizations to the "powerpc64" port,
> >> not the "powerpc" port. The powerpc64 port only support PPC64LE
> >> Linux, which does not include PPC970. The comments about emulation
> >> are not relevant to the "powerpc64" port.
> >
> > On 23/06/17 14:35, Rich Felker wrote:
> >> Indeed, musl uses the ELFv2 ABI (minus its gratuitous mandate of
> >> minimum ISA level) for both little and big endian powerpc64, and I
> >> think we have users of both (people running it on old powerbooks,
> >> etc.).
>
> The ABIs are not endian-specific. ELFv1 can operate as little endian
> (and did for a brief period as a transition), ELFv2 can operate as big
> endian. PowerPC64 Linux only will be 64 bit little endian going
> forward, although the existing big endian, ELFv1 Linux distributions
> will continue to be supported. There is no infrastructure or
> distribution into which a PPC64BE ELFv2 libc can be installed.
Any distro that builds from source and uses musl should work. I
suspect Sabotage can do it. Rob Landley's minimal mkroot builds should
also get you a system you can boot.
> A PPC64 big endian ELFv2 port is an interesting exercise, but does not
> match or interact with any other Linux distributions or toolchains.
That's already the case if you're using musl anyway, and part of why
the decision made sense.
> All of the PPC64 BE Linux ports are based on ELFv1 and have no
> intention of changing.
I think the kernel simply supports both ELFv1 and ELFv2 userspace
anyway and doesn't care what binaries you run, though I didn't check.
The only place where it could care anyway is the function pointers
used for signal handlers.
> > Are you aware of any little-endian specific code in musl/powerpc64? I
> > assume that libc-test would probably catch most of it when I am able
> > to run it, but until then, it would be nice to know if there is
> > anything I need to work on in the meantime.
>
> The PPC64 port of Musl does not assume little endian addressing, but
> Musl currently only supports ELFv2. All of the toolchains and
> operating systems that support ELFv2 are little endian. All of the
> big endian toolchains and operating systems are designed for ELFv1.
> There is no overlap.
git clone https://github.com/richfelker/musl-cross-make.git \
&& cd musl-cross-make && make TARGET=powerpc64-linux-musl
There are no patches needed for the ABI to work, just --with-abi=elfv2
which musl-cross-make always uses for ppc64. qemu-ppc64 (user level)
runs the binaries it produces just fine. I don't have actual hardware
or a kernel for system emulation handy but I don't see any reason to
expect it not to work.
> I added the macro tests for portability and completeness.
>
> The only ports of Musl that will function on existing, supported,
> big-endian PowerPC systems are the 32 bit "powerpc" port and an
> unimplemented PPC64 BE ELFv1 port.
I guess "supported" is the key word here, in particular whose
perspective you're asking that something be supported from.
Rich
next prev parent reply other threads:[~2017-06-24 22:44 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-21 14:53 David Edelsohn
2017-06-23 19:35 ` Rich Felker
2017-06-23 19:53 ` David Edelsohn
2017-06-24 0:46 ` A. Wilcox
2017-06-24 0:55 ` Rich Felker
2017-06-24 3:05 ` David Edelsohn
2017-06-24 3:32 ` Rich Felker
2017-06-24 3:38 ` A. Wilcox
2017-06-24 20:53 ` David Edelsohn
2017-06-24 22:44 ` Rich Felker [this message]
2017-06-24 23:57 ` A. Wilcox
2017-06-25 0:10 ` Rich Felker
2017-06-25 1:41 ` Rich Felker
2017-06-29 13:49 ` David Edelsohn
2017-06-29 16:05 ` Rich Felker
2017-06-29 17:00 ` David Edelsohn
2017-06-29 17:59 ` Rich Felker
2017-06-30 1:07 ` David Edelsohn
2017-06-30 2:11 ` Rich Felker
2017-06-25 3:24 ` David Edelsohn
2017-06-25 14:28 ` Rich Felker
2017-06-25 14:56 ` David Edelsohn
2018-09-27 22:53 ` A. Wilcox
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170624224406.GZ1627@brightrain.aerifal.cx \
--to=dalias@libc.org \
--cc=musl@lists.openwall.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/musl/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).