nuttx/libs/libxx
SPRESENSE ed4fae3c93 libs/libxx/libcxx.defs: Fix build error on Windows platform
The libcxx-X.Y.Z.src.tar.xz contains a symbolic link to a directory
that not exist as below.

`libcxx-X.Y.Z.src/test/std/pstl -> ../../../pstl/test/std`

Linux and macOS environment have no problem, but it causes an error
when extracting tarball on Windows platform. This symbolic link is not
actually used, so exclude it from extracting the tarball.

Change-Id: Ib01c8bdca04794c3ca3761e940cf3ab8d6361262
2021-08-29 21:27:26 +08:00
..
.gitignore libc:libxx: add new low level c++ standard library support 2021-08-28 09:39:03 +08:00
cxx.defs libs:cxx.defs: bypass -Wno-missing-exception-spec flag in xcc 2021-08-28 09:38:55 +08:00
Kconfig libxx: rename NUTTX_LIBCXX 2021-08-28 09:39:24 +08:00
libcxx.defs libs/libxx/libcxx.defs: Fix build error on Windows platform 2021-08-29 21:27:26 +08:00
libcxxabi.defs libc:libxx: add new low level c++ standard library support 2021-08-28 09:39:03 +08:00
libxx.hxx libc: Remove the duplication lib_xxx macro 2021-07-01 11:28:34 -07:00
libxx_cxa_atexit.cxx libcxx: : Author Gregory Nutt: update licenses to Apache 2021-02-25 01:44:30 -08:00
libxx_cxa_guard.cxx This commit moves all of the libraries under a common directory called libs/. This most certainly break libcxx and uClibc++ for now. 2018-05-29 13:21:26 -06:00
libxx_cxapurevirtual.cxx libcxx: : Author Gregory Nutt: update licenses to Apache 2021-02-25 01:44:30 -08:00
libxx_delete.cxx libcxx: : Author Gregory Nutt: update licenses to Apache 2021-02-25 01:44:30 -08:00
libxx_delete_sized.cxx libcxx: : Author Gregory Nutt: update licenses to Apache 2021-02-25 01:44:30 -08:00
libxx_deletea.cxx libcxx: : Author Gregory Nutt: update licenses to Apache 2021-02-25 01:44:30 -08:00
libxx_deletea_sized.cxx libcxx: : Author Gregory Nutt: update licenses to Apache 2021-02-25 01:44:30 -08:00
libxx_eabi_atexit.cxx libcxx: : Author Gregory Nutt: update licenses to Apache 2021-02-25 01:44:30 -08:00
libxx_impure.cxx Fix libsupc++.a(vterminate.o): undefined reference to `_impure_ptr' 2020-08-17 13:45:56 -03:00
libxx_new.cxx libcxx: : Author Gregory Nutt: update licenses to Apache 2021-02-25 01:44:30 -08:00
libxx_newa.cxx libcxx: : Author Gregory Nutt: update licenses to Apache 2021-02-25 01:44:30 -08:00
libxx_stdthrow.cxx libs: libxx: update licenses to Apache 2021-05-27 08:07:25 +09:00
Makefile libc:libxx: add new low level c++ standard library support 2021-08-28 09:39:03 +08:00
README.txt libxx: Stop mentioning libs not integrated with this version of libxx 2020-10-26 22:07:39 -07:00
system_configuration.h libxx: Integrate uClibc++ latest official release 2020-07-17 21:40:34 +01:00
uClibc++.defs Replace all wget with curl 2020-12-22 03:36:10 -06:00

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