On Tue, 1 Dec 2020 at 22:25, Michael Meissner <meiss...@linux.ibm.com> wrote:
>
> 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++
> > <libstd...@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.

I see the problem. The patch I sent doesn't include the regenerated
files, as is normal for patches posted to the mailing lists.

You need to run autoconf-2.69's autoreconf in the libstdc++-v3 source
tree to regenerate configure, Makefile.in etc. Without doing that
you're just running the same configure script as is on current trunk,
and that doesn't even try looking for IEEE128 support in glibc, and so
the new code in libstdc++ doesn't get enabled.

I've attached a complete patch including those generated files, and
I've also pushed the branch to refs/users/redi/heads/ieee128-squash in
the gcc.gnu.org Git repo. That branch includes your patch for PR
libgcc/97543 which is required for some of the libstdc++ changes to
work properly.

Attachment: patch.txt.bz2
Description: application/bzip

Reply via email to