From 3c850cd420b2909c29286c98b697aaf55c401627 Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 2 May 2012 15:36:19 +0000 Subject: Fix some warnings and fix some simulator builds git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@4688 7fd9a85b-ad96-42d3-883c-3090e2eb8679 --- nuttx/libxx/README.txt | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) (limited to 'nuttx/libxx') diff --git a/nuttx/libxx/README.txt b/nuttx/libxx/README.txt index 7b292bff52..c97dae4ba4 100644 --- a/nuttx/libxx/README.txt +++ b/nuttx/libxx/README.txt @@ -7,11 +7,30 @@ embedded world, that is probably all that is necessary. If you have a need for more extensive C++ support, the following libraries are recommended: - - libstdc++ (part of GCC) - - STLport http://www.stlport.org/ - - uClibc++ http://cxx.uclibc.org/ + - libstdc++ (part of GCC) + - STLport http://www.stlport.org/ + - uClibc++ http://cxx.uclibc.org/ At present, only the following are supported here: - void *operator new(std::size_t nbytes); - - void operator delete(void* ptr); \ No newline at end of file + - void operator delete(void* ptr); + - void operator delete[](void *ptr); + - void __cxa_pure_virtual(void); + - int __aeabi_atexit(void* object, void (*destroyer)(void*), void *dso_handle); + +operator new +------------ + + This operator should take a type of size_t. But size_t has an unknown underlying + type. In the nuttx sys/types.h header file, size_t is typed as uint32_t + (which is determined by architecture-specific logic). But the C++ + compiler may believe that size_t is of a different type resulting in + compilation errors in the operator. Using the underlying integer type + instead of size_t seems to resolve the compilation issues. Need to + REVISIT this. + + Once some C++ compilers, this will cause an error: + + Problem: "'operator new' takes size_t ('...') as first parameter" + Workaround: Add -fpermissive to the compilation flags -- cgit v1.2.3