Re: Building C++ application for eCos on ARM

Jabran Bhatti <[email protected]>
Newsgroups gmane.os.ecos.general
Message-ID <CAGujVxZuy_YJAGroFaWGyFcNrPe-wv35GcBR19wW+C7WBLMtkw@mail.gmail.com>
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 <[email protected]>:
> 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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.