incubator-nuttx/libs/libxx
yinshengkai 95d9abcf58 tools: replace DEFINE script to Makefile variable
In the past, predefined macros were generated by define.sh scripts
Now they are generated by concatenating environment variables

In this way, when executing makefile, no shell command will be executed,
it will improve the speed of executing makfile

Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2022-11-03 19:59:55 +08:00
..
libcxxmini libxxmini: Fix error: use of undeclared identifier 'nullptr' 2022-05-19 23:23:01 +03:00
.gitignore Add Embedded Template Library (ETL) support 2022-08-05 09:38:48 +08:00
0001-Remove-the-locale-fallback-for-NuttX.patch Remove the locale fallback from libcxx 2021-07-30 09:43:26 -03:00
0001-libc-abi-avoid-the-waring-__EXCEPTIONS-is-not-define.patch libcxxabi: Avoid the waring: "__EXCEPTIONS" is not defined, evaluates to 0 [-Werror=undef] 2021-08-28 17:13:43 -03:00
0001-libc-avoid-the-waring-__EXCEPTIONS-is-not-defined-ev.patch libcxx: Avoid the waring: "__EXCEPTIONS" is not defined, evaluates to 0 [-Werror=undef] 2021-08-28 17:13:43 -03:00
0001-libcxx-Rename-PS-macro-to-avoid-clashing-with-Xtensa.patch libcxx: Add patch for preventing redefinition of PS macro on Xtensa 2022-03-30 11:19:29 +08:00
0001-uClibcxx-basic_definitions-fix-GCC-specific-definiti.patch libxx:uClibcxx:fix-GCC-specific-definitiion error 2021-08-31 11:23:29 +08:00
0001-uclibxx-use-overload-constructor-of-filebuf-ostream.patch libxx:uclibxx: add patch use overload constructor of filebuf & ostream 2022-01-24 23:26:59 +08:00
0002-Omit-atomic_-un-signed_lock_free-if-unsupported.patch libcxx: Fix libc++ for archs without conditional load/store support 2022-03-30 11:19:29 +08:00
Kconfig Add Embedded Template Library (ETL) support 2022-08-05 09:38:48 +08:00
Makefile Add Embedded Template Library (ETL) support 2022-08-05 09:38:48 +08:00
README.txt libxx: Stop mentioning libs not integrated with this version of libxx 2020-10-26 22:07:39 -07:00
etl.defs Add Embedded Template Library (ETL) support 2022-08-05 09:38:48 +08:00
libcxx.defs tools: replace DEFINE script to Makefile variable 2022-11-03 19:59:55 +08:00
libcxxabi.defs tools: replace DEFINE script to Makefile variable 2022-11-03 19:59:55 +08:00
libcxxmini.defs libxx: Move the partial c++ abi implementation to libcxxmini sub folder 2021-08-31 06:52:10 -03:00
system_configuration.h libc/wchar: remove unnecessary config 2022-07-27 00:36:49 +08:00
uClibc++.defs libxx:uclibxx: add patch use overload constructor of filebuf & ostream 2022-01-24 23:26:59 +08:00

README.txt

libs/libxx/README.txt
^^^^^^^^^^^^^^^^^^^^^

This directory contains three C++ library:

 - A fragmentary C++ library that will allow to build only the simplest of
   C++ applications. In the deeply embedded world, that is probably all
   that is necessary.

   At present, only the following are supported here:

     - void *operator new(std::size_t nbytes);
     - 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);
     - int __cxa_atexit(__cxa_exitfunc_t func, FAR void *arg,
                        FAR void *dso_handle);

   This implementation is selected when neither of the following
   two options are enabled.

 - LLVM "libc++" C++ library (http://libcxx.llvm.org/)
   This implementation is selected with CONFIG_LIBCXX=y.

 - uClibc++ C++ library (http://cxx.uclibc.org/)
   This implementation is selected with CONFIG_UCLIBCXX=y.

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