Re: git: 790a6be5a169 - main - Export various 128 bit long double functions from libgcc_s.so.1

From: Mark Millard via freebsd-current <freebsd-current_at_freebsd.org>
Date: Mon, 14 Jun 2021 20:38:15 UTC
Dimitry Andric dim at FreeBSD.org wrote on
Mon Jun 14 19:17:40 UTC 2021 :

> The branch main has been updated by dim:
> 
> URL: 
> https://cgit.FreeBSD.org/src/commit/?id=790a6be5a1699291c6da87871426d0c56dedcc89
> 
> 
> commit 790a6be5a1699291c6da87871426d0c56dedcc89
> Author:     Dimitry Andric <dim at FreeBSD.org>
> AuthorDate: 2021-06-14 19:17:05 +0000
> Commit:     Dimitry Andric <dim at FreeBSD.org>
> CommitDate: 2021-06-14 19:17:05 +0000
> 
>     Export various 128 bit long double functions from libgcc_s.so.1
>     
>     These were already compiled for some time on aarch64 and riscv, by
>     including lib/libcompiler_rt/Makefile.inc, but never exported in the
>     shared library. Since gcc exports these under version GCC_4.6.0, we do
>     the same.
>     
>     This review should replace D11482 for now. For e.g. amd64 more work is
>     still to be done, as compiler-rt does not seem to support 128 bit long
>     double math for that architecture.
    
Given that "man arch" explicitly reports:

           Architecture    void *    long double    time_t
. . .
           amd64           8         16             8
. . .

and also:

           Architecture    float, double    long double
. . .
           amd64           hard             hard, 80 bit
. . .

(so there is guaranteed pad involved), would amd64 having 128
bit long doubles (no pad by default?) be an FreeBSD ABI change,
possibly needing a discussion on freebsd-arch and
freebsd-numerics ? (Or may be it happened and I just do not
remember. Or may be it would take special enabling of the
alternate ABI's use and not be a default configuration.)

(i386 only has "12", not "16", for its "80 bit", so 96 bits:
less pad.)

===
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)