This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
RE: [patch] libstdc++/65142 Check read() result in std::random_device.
- From: "Moore, Catherine" <Catherine_Moore at mentor dot com>
- To: Jonathan Wakely <jwakely at redhat dot com>, "fdumont at gcc dot gnu dot org" <fdumont at gcc dot gnu dot org>
- Cc: Gerald Pfeifer <gerald at pfeifer dot com>, "libstdc++ at gcc dot gnu dot org" <libstdc++ at gcc dot gnu dot org>, "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>
- Date: Thu, 17 Sep 2015 23:18:02 +0000
- Subject: RE: [patch] libstdc++/65142 Check read() result in std::random_device.
- Authentication-results: sourceware.org; auth=none
- References: <20150911134418 dot GK2631 at redhat dot com> <20150915114713 dot GS2631 at redhat dot com> <20150917150757 dot GF2969 at redhat dot com> <alpine dot LSU dot 2 dot 20 dot 1509172025460 dot 3004 at tuna dot site> <20150917212811 dot GH2969 at redhat dot com> <FD3DCEAC5B03E9408544A1E416F112420192CB6456 at NA-MBX-04 dot mgc dot mentorg dot com> <20150917225409 dot GJ2969 at redhat dot com>
> -----Original Message-----
> From: Jonathan Wakely [mailto:jwakely@redhat.com]
> Sent: Thursday, September 17, 2015 6:54 PM
> To: Moore, Catherine; fdumont@gcc.gnu.org
> Cc: Gerald Pfeifer; libstdc++@gcc.gnu.org; gcc-patches@gcc.gnu.org
> Subject: Re: [patch] libstdc++/65142 Check read() result in
> std::random_device.
>
> On 17/09/15 22:32 +0000, Moore, Catherine wrote:
> >
> >
> >> -----Original Message-----
> >> From: gcc-patches-owner@gcc.gnu.org [mailto:gcc-patches-
> >> owner@gcc.gnu.org] On Behalf Of Jonathan Wakely
> >> Sent: Thursday, September 17, 2015 5:28 PM
> >> To: Gerald Pfeifer
> >> Cc: libstdc++@gcc.gnu.org; gcc-patches@gcc.gnu.org
> >> Subject: Re: [patch] libstdc++/65142 Check read() result in
> >> std::random_device.
> >>
> >> On 17/09/15 22:21 +0200, Gerald Pfeifer wrote:
> >> >On Thu, 17 Sep 2015, Jonathan Wakely wrote:
> >> >>> Any comments on this version?
> >> >> Committed to trunk.
> >> >
> >> >Unfortunately this broke bootstrap on FreeBSD 10.1.
> >> >
> >> >/scratch/tmp/gerald/gcc-HEAD/libstdc++-v3/src/c++11/random.cc: In
> >> member function 'std::random_device::result_type
> >> std::random_device::_M_getval()':
> >> >/scratch/tmp/gerald/gcc-HEAD/libstdc++-
> v3/src/c++11/random.cc:144:22:
> >> >error: 'errno' was not declared in this scope
> >> > else if (e != -1 || errno != EINTR)
> >> > ^
> >> >/scratch/tmp/gerald/gcc-HEAD/libstdc++-
> v3/src/c++11/random.cc:144:31:
> >> >error: 'EINTR' was not declared in this scope
> >> > else if (e != -1 || errno != EINTR)
> >> > ^
> >> >Makefile:545: recipe for target 'random.lo' failed
> >> >
> >> >I probably won't be able to dig in deeper today, but figured this
> >> >might already send you on the right path?
> >> >
> >> >Actually...
> >> >
> >> >...how about he patch below? Bootstraps on
> >> >i386-unknown-freebsd10.1, no regressions.
> >>
> >> Sorry about that, I've committed your patch.
> >>
> >> >Gerald
> >> >
> >> >
> >I'm still seeing errors for a build of the mips-sde-elf target with these
> patches.
> >
> >Errors are:
> >/scratch/cmoore/virgin-upstream-elf-lite/src/gcc-trunk-5/libstdc++-v3/s
> >rc/c++11/debug.cc: In function 'void
> {anonymous}::print_word({anonymous
> >}::PrintContext&, const char*, std::ptrdiff_t)':
> >/scratch/cmoore/virgin-upstream-elf-lite/src/gcc-trunk-5/libstdc++-v3/s
> >rc/c++11/debug.cc:573:10: error: 'stderr' was not declared in this scop
> >e
> > fprintf(stderr, "\n");
> > ^
> >/scratch/cmoore/virgin-upstream-elf-lite/src/gcc-trunk-5/libstdc++-v3/s
> >rc/c++11/debug.cc:573:22: error: 'fprintf' was not declared in this sco
> >pe
> > fprintf(stderr, "\n");
> > ^
> >/scratch/cmoore/virgin-upstream-elf-lite/src/gcc-trunk-5/libstdc++-v3/s
> >rc/c++11/debug.cc:596:14: error: 'stderr' was not declared in this scop e
> > fprintf(stderr, "%s", spacing);
> > ^
> >/scratch/cmoore/virgin-upstream-elf-lite/src/gcc-trunk-5/libstdc++-v3/s
> >rc/c++11/debug.cc:596:35: error: 'fprintf' was not declared in this sco pe
> > fprintf(stderr, "%s", spacing);
> > ^
> >/scratch/cmoore/virgin-upstream-elf-lite/src/gcc-trunk-5/libstdc++-v3/s
> >rc/c++11/debug.cc:600:24: error: 'stderr' was not declared in this
> >scope
> > int written = fprintf(stderr, "%s", word);
> > ^
> >/scratch/cmoore/virgin-upstream-elf-lite/src/gcc-trunk-5/libstdc++-v3/s
> >rc/c++11/debug.cc:600:42: error: 'fprintf' was not declared in this
> >scop e
> > int written = fprintf(stderr, "%s", word);
>
> That's a different problem, due to https://gcc.gnu.org/r227885
>
> François, could you take a look please?
>
I've now committed this patch to solve this problem (pre-approved by Jonathan).
2015-09-17 Catherine Moore <clm@codesourcery.com>
* src/c++11/debug.cc: Include <cstdio>.
Index: src/c++11/debug.cc
===================================================================
--- src/c++11/debug.cc (revision 227887)
+++ src/c++11/debug.cc (working copy)
@@ -32,6 +32,7 @@
#include <debug/safe_local_iterator.h>
#include <cassert>
+#include <cstdio>
#include <algorithm> // for std::min
#include <functional> // for _Hash_impl