This is the mail archive of the
ecos-patches@sourceware.org
mailing list for the eCos project.
Re: eCos uSTL 1.3 port for review
Uwe
Today when I do re-test all from scratch (ustl build on synthetic), I
found that this patch does not work. It seems that I ran in false clean
up. The previous tweak:
virtual ~Cyg_VsnprintfStream() { /* *s_ = '\0'; */ }
works only. I cannot know why this assignment
*s_ = '\0';
there :-(
So, such the desctuctor (the below) works for synthetic ustl build
virtual ~Cyg_VsnprintfStream() {}
I'm sorry about. It seems we should ask Jonathan Larmour about this
terminator.
Sergei
On Thu, Aug 06, 2009 at 04:56:03PM +0300, Sergei Gavrikov wrote:
> On Thu, Aug 06, 2009 at 04:25:11PM +0300, Sergei Gavrikov wrote:
> > On Thu, Aug 06, 2009 at 03:44:16PM +0300, Sergei Gavrikov wrote:
> > > Uwe Kindler wrote:
> > > > It would be really great, If you could investigate a little bit more,
> > > > what causes the SIGSEG for synthetic target. Would you be so kind to run
> > > > the new snprintf_c99.c test on synthetic target when C99 compliance
> > > > activated to check if my vfnprintf() patch is working properly?
> > >
> > > Uwe,
> > >
> > > snprintf_c99 test passed successfully on synth. It seems that I should
> > > grep all #if linux in ustl and look on that. I will try to rebuild ustl
> > > with assertions and will try to re-run the tests. I'll let you know what
> > > I will get then.
> >
> > Hm, Uwe, SIGSEG occured on a call of a destructor in vsnprintf.cxx (it's
> > not your source). The uSTL test run on synthetic target with this dirty
> > tweak. Do you have any thoughts?
>
> With this patch both set of tests libc/stdio and cxx/ustl passed
> successfully on synthetic target.
>
> Sergei
> Index: vsnprintf.cxx
> ===================================================================
> RCS file: /cvs/ecos/ecos/packages/language/c/libc/stdio/current/src/common/vsnprintf.cxx,v
> retrieving revision 1.6
> diff -u -r1.6 vsnprintf.cxx
> --- vsnprintf.cxx 29 Jan 2009 17:49:53 -0000 1.6
> +++ vsnprintf.cxx 6 Aug 2009 13:49:24 -0000
> @@ -71,7 +71,7 @@
> public:
> Cyg_VsnprintfStream(char* s): s_(s) {}
>
> - virtual ~Cyg_VsnprintfStream() { *s_ = '\0'; }
> + virtual ~Cyg_VsnprintfStream() { if (s_) *s_ = '\0'; }
>
> virtual Cyg_ErrNo write( const cyg_uint8 *buffer,
> cyg_ucount32 buffer_length, cyg_ucount32 *bytes_written );