This is the mail archive of the libstdc++@sources.redhat.com mailing list for the libstdc++ project.


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

how do I configure libstdc++ for a non-unix OS - eCOS


How do I configure libstdc++ for a non-unix OS - eCOS?

I really only need iostream for a generic ostream and strstream for some 
string 
manipulation, but I do not want the UNIX exception, stdout, stderr support.  

Are there any instructions on-line on how to rebuild the library generically 
(no UNIX 
system features)?

Please see my email posted to the eCOS discussion group and the response I 
was 
sent.  Last week I built the gcc tools for an arm-elf target (Cirrus EP7212) 
which 
yielded the stdlibc++.  

thank you,

Dan Ash
SonicBox Inc.

QUESTION TO ECOS 

I am having problems linking in any libraries.  I have
rebuilt the arm-elf tool chain to get stdlibc++ 
libraries.

my code is as simple as:

#include <strstream>

// function

void func(args)
{ 

// ....

strstream strStream;
strStream << "hello world" << '\n' << '\0';

This compiles OK, but the linker reports the following
errors indicating a problem since ecos does not 
support unix standard facilities.

Here are my error messages.  I know this is not specifically
an ecos issue, but may help someone else in the future 
trying to use stdlibc++ in ecos.

thank you

/usr/armtools/lib/gcc-lib/arm-elf/2.95.2/libstdc++.a(streambuf.o):/usr/people/

dan/prj/main/pim/plt/ecos/tools/gcc-2.95.2/libio/streambuf.cc:282: undefined 
reference to `__errno_location'
/usr/armtools/lib/gcc-lib/arm-elf/2.95.2/libstdc++.a(filebuf.o):/usr/people/da

n/prj/main/pim/plt/ecos/tools/gcc-2.95.2/libio/filebuf.cc:118: undefined 
reference to `open'
/usr/armtools/lib/gcc-lib/arm-elf/2.95.2/libstdc++.a(filedoalloc.o): In 
function `_IO_file_doallocate':
/usr/people/dan/prj/main/pim/plt/ecos/tools/gcc-2.95.2/libio/filedoalloc.c:104

: undefined reference to `isatty'
/usr/armtools/lib/gcc-lib/arm-elf/2.95.2/libstdc++.a(fileops.o): In function 
`_IO_file_fopen':
/usr/people/dan/prj/main/pim/plt/ecos/tools/gcc-2.95.2/libio/fileops.c:186: 
undefined reference to `__errno_location'
/usr/people/dan/prj/main/pim/plt/ecos/tools/gcc-2.95.2/libio/fileops.c:194: 
undefined reference to `open'
/usr/people/dan/prj/main/pim/plt/ecos/tools/gcc-2.95.2/libio/fileops.c:200: 
undefined reference to `__errno_location'
/usr/armtools/lib/gcc-lib/arm-elf/2.95.2/libstdc++.a(fileops.o): In function 
`_IO_file_attach':
/usr/people/dan/prj/main/pim/plt/ecos/tools/gcc-2.95.2/libio/fileops.c:220: 
undefined reference to `__errno_location'
/usr/armtools/lib/gcc-lib/arm-elf/2.95.2/libstdc++.a(fileops.o): In function 
`_IO_file_underflow':
/usr/people/dan/prj/main/pim/plt/ecos/tools/gcc-2.95.2/libio/fileops.c:292: 
undefined reference to `__errno_location'
/usr/armtools/lib/gcc-lib/arm-elf/2.95.2/libstdc++.a(fileops.o): In function 
`_IO_file_overflow':
/usr/people/dan/prj/main/pim/plt/ecos/tools/gcc-2.95.2/libio/fileops.c:342: 
undefined reference to `__errno_location'
/usr/armtools/lib/gcc-lib/arm-elf/2.95.2/libstdc++.a(fileops.o): In function 
`_IO_file_sync':
/usr/people/dan/prj/main/pim/plt/ecos/tools/gcc-2.95.2/libio/fileops.c:408: 
undefined reference to `__errno_location'
/usr/armtools/lib/gcc-lib/arm-elf/2.95.2/libstdc++.a(fileops.o): In function 
`_IO_file_seek':
/usr/people/dan/prj/main/pim/plt/ecos/tools/gcc-2.95.2/libio/fileops.c:596: 
undefined reference to `lseek'
/usr/armtools/lib/gcc-lib/arm-elf/2.95.2/libstdc++.a(fileops.o): In function 
`_IO_file_stat':
/usr/armtools/lib/gcc-lib/arm-elf/2.95.2/../../../../arm-elf/sys-include/sys/s

tat.h:331: undefined reference to `__fxstat'

RESPONSE

In a short answer, you can NOT do that.

Ecos does not support:

   + C++ exceptions
   + rtti
   + IO Stream
   + STL

Ecos only has the bare minimal C++ support( classes & templates ).

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