Re: Proposal to switch powerpc64le to IEEE-754 binary128

From: Piotr Kubaj <pkubaj_at_FreeBSD.org>
Date: Thu, 11 Jun 2026 21:42:32 UTC
On 26-06-11 09:54:09, Adrian Chadd wrote:
> On Thu, 11 Jun 2026 at 01:22, Piotr Kubaj <pkubaj@freebsd.org> wrote:
> >
> > On 26-06-10 18:53:11, Adrian Chadd wrote:
> > > So, a few of us chatted in IRC about it.
> > >
> > > * The minimum for PPC64LE was POWER7 anyway, right?
> > POWER8. Last I heard, POWER7 has issues with unaligned access, which is
> > vital on LE. All the toolchains assume POWER8 as given on ppc64le.
> > > * There's no easy way to deal with this in library versioning and
> > > such, so we should just rip the bandaid off
> > > * We can fix the ports as they come up.
> > Yes, and there's not much to fix. The good news is that reinstallation
> > won't be necessary, upgrade is just the usual buildworld + installworld.
> > > * people wishing to run stuff built on -15 or earlier should just run
> > > a userland jail.
> > >
> > > so given that!
> > >
> > > * Please include something to propose to put in UPDATING
> > The review at https://reviews.freebsd.org/D57388 includes UPDATING
> > entry.
> > > * Please explain what will happen with all the toolchains in -HEAD (eg
> > > all the gcc versions will use the right base type, we won't have gcc
> > > compiling a different ABI to llvm21, etc)
> 
> > Compilers explicitly using C's long double will need updating.
> > Everything else will work as it is. I have tested bootstraps for Rust,
> > GHC, OpenJDK and SBCL - all of them work. GCC and LLVM will need to be
> > updated though to emit correct long double, otherwise code built with
> > them that also uses long double type will misbehave. I'm also currently
> > playing with ldc and it will also need to be updated.
> 
> Ok, can you go investigate GCC and LLVM too?
The clang part of our FreeBSD patch will be upstreamed and can be
readily backported to our ports.

Regarding GCC, there's a configure option for IEEE long double, so we
would be modifying just a port's Makefile.
> 
> And go, maybe? Does go currently work on ppc64le?

Go doesn't work, there's a ready patch from Raptor that upstream somehow
isn't willing to merge. Raptor is apparently working on it. I have no
idea whether Raptor's patch will need modifications.
> 
> > > * Let's figure out when the flag day should be.
> 
> > Since it's CURRENT, people should expect breakages, we can't provide
> > stability there. IMO it's better to do it sooner than later so that more
> > people can test it. If someone doesn't want to upgrade yet, we're not
> > Microsoft, we don't force upgrades.
> 
> Hey if you're willing to drive it forward then great! We just need to make sure
> it gets done enough that we don't end up with half working toolchains in ports.
Hmmm, I pretty often do bulk port builds anyway, just usually not
CURRENT, because with debugging enabled it takes a lot of time (and I
prefer to keep it enabled because it's CURRENT). I guess after the
switch I'll run CURRENT builds more often.
> 
> 
> 
> -adrian
>