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
- From: Sergei Gavrikov <sergei dot gavrikov at gmail dot com>
- To: cetoni GmbH - Uwe Kindler <uwe dot kindler at cetoni dot de>
- Cc: ecos-patches at sourceware dot org, John Dallaway <john at dallaway dot org dot uk>
- Date: Thu, 6 Aug 2009 15:20:21 +0300
- Subject: Re: eCos uSTL 1.3 port for review
- References: <4A7A94D0.2010201@cetoni.de>
Uwe Kindler wrote:
> Hi,
>
> Mike Sharov released the new version 1.3 of the uSTL library two days
> ago. I updated the eCos uSTL port to this new version. The port is
> available here for review:
>
> http://www.cetoni.de/ecos_ustl20090806.zip
>
> I changed some further stuff we dicussed on the mailing list:
>
> - the library now builds without -Wundef - so I could keep the changes
> to the uSTL 1.3 sources to a minimum
>
> - new stdint.h file - i created a stdint.h file from the newlib stdint.h
> mentioned in this message
> http://ecos.sourceware.org/ml/ecos-patches/2009-08/msg00008.html that
> should be more portable
>
>
> If the uSTL package is compiled with filestreams support then building
> test cases succeeds. If filestrams are disabled and package File I/O is
> not present then the build error mentioned in
> http://ecos.sourceware.org/ml/ecos-devel/2009-08/msg00000.html occures
> when building eCos test cases.
>
> I would kindly ask you to review this port to tell me things that should
> be changed prior to CVS import of this package.
Hi Uwe
Thank you for your contribution! Just now I tested your latest stuff
with your libc patch together against clean CVS
i. arm-eabi toolchain
A) uSTL package was built successfully with 1 warning. That's was
diff --git a/packages/language/cxx/ustl/current/src/uexception.cpp b/packages/language/cxx/ustl/current/src/uexception.cpp
--- a/packages/language/cxx/ustl/current/src/uexception.cpp
+++ b/packages/language/cxx/ustl/current/src/uexception.cpp
@@ -35,7 +35,7 @@ void exception::info (string& msgbuf, co
/// Reads the exception from stream \p is.
void exception::read (istream& is)
{
- uint32_t stmSize;
+ uint32_t stmSize = 0;
xfmt_t fmt = xfmt_Exception;
is >> fmt >> stmSize >> m_Backtrace;
assert (fmt == m_Format && "The saved exception is of a different type.");
B) All test passed, but: btv05, btv16 (my target has not enough memory)
and bvt25 (I didn't turn on filestream support);
ii. i386-elf toolchain
A) All tests were built with this quick tweak:
diff --git a/packages/language/cxx/ustl/current/src/bktrace.cpp b/packages/language/cxx/ustl/current/src/bktrace.cpp
--- a/packages/language/cxx/ustl/current/src/bktrace.cpp
+++ b/packages/language/cxx/ustl/current/src/bktrace.cpp
@@ -6,7 +6,7 @@
#include "bktrace.h"
#include "sostream.h"
#include "mistream.h"
-#if linux && __GNUC__
+#if 0 // linux && __GNUC__
#include <execinfo.h>
#else
static inline int backtrace (void**, int) { return (0); }
Certainly, It can be fixed more elegant with some ifdef __ECOS__, if
you would place in CDL
cdl_option CYGPKG_USTL_CFLAGS_ADD {
...
default_value -D__ECOS__
}
B) Unfortunately, I got SIGSEG in vsnprintf(). It seems, I should
investigate more time for this issue, may be I missed something.
Had you success with uSTL on synthetic target? All tests I built as
ecosconfig new <target> ustl
Once again, thank you for this package.
Kind regards,
Sergei