This is the mail archive of the ecos-discuss@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Building C++ application for eCos on ARM


Hello John/cetoni,

Thanks for your replies.

* I tried the stl compatibility layer solution and all goes well until
I get the following error:

/usr/local/include/ptlib/critsec.h:37:30: fatal error:
ext/atomicity.h: No such file or directory

It appears that the ptlib library also requires header files that are
actually extensions of STL (header files in the folder ext/). These
extensions are not defined in ustl, which means this solution will not
work. Am I right?

* I also tried to build a toolchain including Erik Aagaard Knudsen's
libstdc++ for eCos (as described in the file
eCos_libstdcxx_compatibility/libstdcxx_compatibility.eak). Here, I
encountered the following problem:  when configuring GCC (4.3.2.), I
get a warning that most of the options such as --enable-languages,
--with-gnu-as, --with-gnu-ld, --with-newlib,... are not recognized.
When i try to build and install GCC next, I get a whole bunch of
assembler messages as follows:

/usr/src/gcc-4.3.2/libiberty/regex.c: In function ‘xregerror’:

/usr/src/gcc-4.3.2/libiberty/regex.c:8089: warning: implicit
declaration of function ‘mempcpy’

/usr/src/gcc-4.3.2/libiberty/regex.c:8089: warning: incompatible
implicit declaration of built-in function ‘mempcpy’

/tmp/ccNe5Dme.s: Assembler messages:

/tmp/ccNe5Dme.s:5991: Error: r13 not allowed here -- `lsr r3,sp,#3'

/tmp/ccNe5Dme.s:6498: Error: r13 not allowed here -- `rsb sp,r3,sp'

/tmp/ccNe5Dme.s:6500: Error: r13 not allowed here -- `lsr r0,sp,#3'

I think these errors might be caused by a conflict between my native
GCC compiler (4.8) and gcc-4.3.2.
So I tried to install gcc-4.3.2 on my machine (32-bit ubuntu 12.04)
from source (since it's no longer available on aptitude). Here, I
encountered a known bug in the linker step
(https://bugs.launchpad.net/ubuntu/+source/binutils/+bug/738098). The
workaround described here didn't work for me.

What do you guys think?

2013/9/17 cetoni GmbH - Uwe Kindler <uwe.kindler@cetoni.de>:
> Hi,
>
> we also had an own library that uses stl and we managed to build it for eCos
> uSTL. We did the following
>
> 1.
> We created an stl compatibility layer: a folder that contains the stl
> include files for eCos:
> vector
> string
> map
> ...
>
> 2.
> Each of these include files contains the same content - it simply includes
> ustl_compat.h file
>
> #ifndef ustl_compat_vectorH
> #define ustl_compat_vectorH
> #include "ustl_compat.h"
>
> #endif
>
> 3.
> The ustl_compat.h file contains the following code:
>
> #ifndef ustl_compatH
> #define ustl_compatH
> #include <ustl.h>
>
> #define std ustl
>
> #endif // ustl_compatH
>
>
> So it simply includes the ustl.h header file and defines the preprocessor
> macro std. So each occurence of std::vector will be replaced by ustl::vector
>
> This worked for us and we could compile the library.
>
>
>
>
>

--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]