mailing list of musl libc
 help / color / mirror / code / Atom feed
From: David Edelsohn <dje.gcc@gmail.com>
To: Rich Felker <dalias@libc.org>
Cc: musl@lists.openwall.com
Subject: Re: Re: musl libc for PPC64
Date: Mon, 8 Feb 2016 15:30:51 -0500	[thread overview]
Message-ID: <CAGWvnynkUuf5u__MEkoZgMWp-Haxev8_c_vw4RA2-zqU2h-unQ@mail.gmail.com> (raw)
In-Reply-To: <20160208201802.GB9349@brightrain.aerifal.cx>

On Mon, Feb 8, 2016 at 3:18 PM, Rich Felker <dalias@libc.org> wrote:
> On Mon, Feb 08, 2016 at 12:48:48PM -0500, David Edelsohn wrote:
>> On Mon, Feb 8, 2016 at 11:51 AM, Rich Felker <dalias@libc.org> wrote:
>> > On Mon, Feb 08, 2016 at 05:17:58PM +0100, Szabolcs Nagy wrote:
>> >> * David Edelsohn <dje.gcc@gmail.com> [2016-02-08 09:43:08 -0500]:
>> >> > What work is necessary to enable basic musl libc support for PPC64
>> >> > Linux Little Endian?
>> >>
>> >> once the abi is clear (is long double ieee128?) the arch specific
>> >> parts of musl need to be ported for ARCH=powerpc64.
>> >
>> > IIRC one of the powerpc64 ABIs uses function descriptors rather than
>> > normal function pointers. If so that may affect a few details in the
>> > dynamic linker and may require some changes to non-arch-specific code,
>> > but since we have SH/FDPIC all the basic framework for function
>> > descriptors should be there already.
>>
>> PPC64LE Linux is little endian and does not use function descriptors.
>
> OK. I've been looking more and this is what's called the "ELFv2 ABI"
> for ppc64, I believe. Is it possible to use ELFv2 ABI with big endian
> targets? It looks like support is there on the toolchain side but I'm
> not sure if we would run into problems. The reason I'm asking is that
> there's probably also interest in older BE ppc64 systems and I think
> it makes more sense to use the same musl port/ABI for both
> endiannesses if at all possible rather than doing two separate ones.

The future direction for Linux on PPC64 is little endian.  I was
trying to simplify things because of your comments about multiple
ABIs.

The original PPC64 ABI could (and has) operated in little endian mode,
and the new PPC64 ELFv2 ABI could operate in big endian mode.  But the
entire PowerPC software ecosystem and all Linux distros are
distributed with PPC64 big endian ABI using function descriptors and
little endian ABI using ELFv2.

>> > Also to clarify what you asked about long double ABI, if ieee128
>> > (quad) is not used, the compiler needs to be built to use plain double
>> > (ieee64 double) for long double instead of using ibm double-double.
>>
>> GCC can use IEEE64 or IEEE128 for long double.
>
> OK. Then the choice of which to use depends mainly on whether there's
> current or future hardware that would do IEEE128 natively. If so we
> should probably choose an ABI that supports it even if in the
> short-term (or for the baseline ISA) it requires soft-float code to be
> linked; that's how AArch64 is doing it. But if native IEEE128 support
> is not available and not planned for future hardware, doing it as
> soft-float "just because" is probably not as good idea.

IBM has announced that the next generation of the processor will
support native IEEE128 floating point in hardware.  There will be
software emulation for the current processors.  Support is included in
the forthcoming GCC 6.

>> Is there any internal interest from the musl libc community for PPC64
>> support that IBM could sponsor with a financial bounty on
>> bountysource.com?
>
> I would suspect so.

If anyone is interested, please contact me privately.

Thanks, David


  reply	other threads:[~2016-02-08 20:30 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-08 14:43 David Edelsohn
2016-02-08 16:17 ` Szabolcs Nagy
2016-02-08 16:51   ` Rich Felker
2016-02-08 17:48     ` David Edelsohn
2016-02-08 20:18       ` Rich Felker
2016-02-08 20:30         ` David Edelsohn [this message]
2016-02-08 22:59           ` Rich Felker
2016-02-08 23:24             ` David Edelsohn
2016-02-08 23:29               ` Rich Felker
2016-02-08 23:48                 ` Szabolcs Nagy
2016-02-09  1:03                   ` Szabolcs Nagy
2016-02-09  1:16                     ` David Edelsohn
2016-02-09  1:42                       ` Szabolcs Nagy
2016-02-09  1:45                       ` Szabolcs Nagy
2016-02-09  1:52                         ` Rich Felker
2016-02-09  2:06                           ` David Edelsohn
2016-02-10 22:17                           ` David Edelsohn
2016-02-08 23:52                 ` David Edelsohn

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=CAGWvnynkUuf5u__MEkoZgMWp-Haxev8_c_vw4RA2-zqU2h-unQ@mail.gmail.com \
    --to=dje.gcc@gmail.com \
    --cc=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).