diff mbox

libstdc++/65142 Check read() result in std::random_device.

Message ID FD3DCEAC5B03E9408544A1E416F112420192CB6482@NA-MBX-04.mgc.mentorg.com
State New
Headers show

Commit Message

Moore, Catherine Sept. 17, 2015, 11:18 p.m. UTC
> -----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>.

Comments

Christophe Lyon Sept. 18, 2015, 8:34 a.m. UTC | #1
On 18 September 2015 at 01:18, Moore, Catherine
<Catherine_Moore@mentor.com> wrote:
>
>
>> -----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>.
>
>
Thanks Catherine, I confirm that it fixes the arm*elf and aarch64*elf
builds too.

Christophe.

> 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
diff mbox

Patch

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