[PATCH] libstdc++: Add C++ runtime support for new 128-bit long double format
Michael Meissner
meissner@linux.ibm.com
Tue Dec 1 23:32:54 GMT 2020
Note this is just to keep the gcc-patches archive up to date. I originally
posted this reply but the attached config.log file was too big. It was also
sent directly to Jonathan, and he replied. So I canceled the gcc-patches post,
and I'm sending out this one with a bzip2's config.log:
On Tue, Dec 01, 2020 at 09:10:30PM +0000, Jonathan Wakely wrote:
> On Tue, 1 Dec 2020 at 19:13, Michael Meissner via Libstdc++
> <libstdc++@gcc.gnu.org> wrote:
> >
> > On Tue, Dec 01, 2020 at 04:04:30PM +0000, Jonathan Wakely wrote:
> > > On 01/12/20 15:10 +0000, Jonathan Wakely wrote:
> > > >On 30/11/20 16:30 -0500, Michael Meissner via Libstdc++ wrote:
> > > >>Jonathan, could you send a fresh set of patches (or at least replacements)? I
> > > >>tried installing the patches on a master branch I checked out this morning, and
> > > >>I got two rejects:
> > > >
> > > >I don't understand why those chunks failed, but I'll rebase and send a
> > > >new patch ASAP.
> > >
> > > Here's the rebased patch, with regenerated autoconf files and a fix
> > > for the <ext/numeric_limits.h> header. I'd changed it since sending
> > > the previous patch, and broke the "there's more than one long double"
> > > case (i.e. the _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT case).
> >
> > Unfortunately this patch DOES NOT work at all.
> >
> > If I build a compiler with the configure option:
> > --with-long-double-format=ieee
> >
> > And I compile this simple program:
> >
> > #include <iostream>
> >
> > int main(int argc, char *argv[], char *envp[])
> > {
> > std::cout << "Hello World!\n";
> > return 0;
> > }
> >
> > I get all of these errors:
>
> It works fine for me (see below). I think your symptoms are due to
> using a glibc that doesn't support the new long double, and so
> libstdc++ support for it is also disabled. You need at least glibc
> 2.32 for the libstdc++ changes to be enabled.
I am using the Advance Toolchain which includes GLIBC 2.32, which has the
necessary support. I will include the config.log as an attachment.
Note, I am also using the patches I submitted around November 19th.
In particular, there is the patch that maps long double built-in names if long
double is IEEE 128-bit:
https://gcc.gnu.org/pipermail/gcc-patches/2020-November/559659.html
I used the patch that tries to fix some problems with gnu attributes:
https://gcc.gnu.org/pipermail/gcc-patches/2020-November/559657.html
I used the patch that fixes up the gnu attributes use in libgcc:
https://gcc.gnu.org/pipermail/gcc-patches/2020-November/559660.html
I used the patch that adds float128 <-> Decimal conversions:
https://gcc.gnu.org/pipermail/gcc-patches/2020-November/559661.html
I used the patch that allows -mabi={ieee,ibm}longdouble to override the default
configuration for long double == 64 bits, without having to use the
-mlong-double-64 option as well:
https://gcc.gnu.org/pipermail/gcc-patches/2020-November/559660.html
--
Michael Meissner, IBM
IBM, M/S 2506R, 550 King Street, Littleton, MA 01460-6245, USA
email: meissner@linux.ibm.com, phone: +1 (978) 899-4797
-------------- next part --------------
A non-text attachment was scrubbed...
Name: libstdc++-v3-config.log.bz2
Type: application/x-bzip2
Size: 24642 bytes
Desc: not available
URL: <https://gcc.gnu.org/pipermail/libstdc++/attachments/20201201/dc14c187/attachment-0001.bz2>
More information about the Libstdc++
mailing list