It is okay for the application to be built without RTTI (-fno-rrti), but
libcxxabi requires RTTI at least for the library.
Signed-off-by: Gustavo Henrique Nihei <gustavo.nihei@espressif.com>
NUTTX_LIBCXX is only basic C++ support, do not support many c++
library function, NUTTX_NOCXXLIB is more suitable.
When NUTTX_NOCXXLIB is select, do not select lower level support.
Change-Id: I158937a4ba02f8fa3c76101acbdfb295d8cd736f
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.
Gregory Nutt is the copyright holder for those files and he has submitted the
SGA as a result we can migrate the licenses to Apache.
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
ld error caused by multiple definition:
ld: arm-none-eabi/lib/thumb/v8-m.main+fp/hard/libsupc++.a(atexit_arm.o): in function `__aeabi_atexit':
atexit_arm.cc:(.text.__aeabi_atexit+0x0): multiple definition of `__aeabi_atexit';
nuttx/staging/libxx.a(libxx_eabi_atexit.o):nuttx/libs/libxx/libxx_eabi_atexit.cxx:75: first defined here
Signed-off-by: chao.an <anchao@xiaomi.com>
Summary:
- This commit fixes compile errors in libxx_new.cxx and libxx_newa.cxx
Impact:
- None
Testing:
- Build with spresense:nsh with CONFIG_DEBUG_ERROR=y
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
This might be specific to gcc or Linux
as I didn't see it with clang + macOS.
libcxx/src/locale.cpp: In member function 'void std::__1::locale::__install_ctor(const std::__1::locale&, std::__1::locale::facet*, long int)':
libcxx/src/locale.cpp:576:62: warning: declaration of 'id' shadows a member of 'std::__1::locale' [-Wshadow]
576 | locale::__install_ctor(const locale& other, facet* f, long id)
| ^
In file included from /Users/yamamoto/git/nuttx/nuttx/include/libcxx/locale:181,
from libcxx/src/locale.cpp:16:
/Users/yamamoto/git/nuttx/nuttx/include/libcxx/__locale:203:32: note: shadowed declaration is here
203 | class _LIBCPP_TYPE_VIS locale::id
| ^~
This might be specific to gcc or Linux
as I didn't see it with clang + macOS.
libcxx/src/barrier.cpp: In constructor 'std::__1::__barrier_algorithm_base::__barrier_algorithm_base(ptrdiff_t&)':
libcxx/src/barrier.cpp:35:9: warning: declaration of '__expected' shadows a member of 'std::__1::__barrier_algorithm_base' [-Wshadow]
35 | : __expected(__expected)
| ^
libcxx/src/barrier.cpp:29:24: note: shadowed declaration is here
29 | ptrdiff_t& __expected;
| ^~~~~~~~~~
libcxx/src/barrier.cpp: In constructor 'std::__1::__barrier_algorithm_base::__barrier_algorithm_base(ptrdiff_t&)':
libcxx/src/barrier.cpp:44:5: warning: declaration of '__expected' shadows a member of 'std::__1::__barrier_algorithm_base' [-Wshadow]
44 | }
| ^
libcxx/src/barrier.cpp:29:24: note: shadowed declaration is here
29 | ptrdiff_t& __expected;
| ^~~~~~~~~~
libcxx/src/barrier.cpp: In constructor 'std::__1::__barrier_algorithm_base::__barrier_algorithm_base(ptrdiff_t&)':
libcxx/src/barrier.cpp:44:5: warning: declaration of '__expected' shadows a member of 'std::__1::__barrier_algorithm_base' [-Wshadow]
44 | }
| ^
libcxx/src/barrier.cpp:29:24: note: shadowed declaration is here
29 | ptrdiff_t& __expected;
| ^~~~~~~~~~
CXX: libcxx/src/new.cpp
In file included from libcxx/src/new.cpp:19:
/usr/include/c++/9/cxxabi.h: In member function 'virtual bool __cxxabiv1::__pbase_type_info::__pointer_catch(const __cxxabiv1::__pbase_type_info*, void**, unsigned int) const':
/usr/include/c++/9/cxxabi.h:308:23: error: 'const class std::type_info' has no member named '__do_catch'
308 | return __pointee->__do_catch (thrown_type->__pointee, thr_obj, outer + 2);
| ^~~~~~~~~~
wget is missing from some system (like macOS and Windows native),
it's better to use curl to simplify build environment.
Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
Make.dep file should be updated by .config changed after first make.
There are 2 cases affected for this problem:
1) Add source files by config symbol
2) Include header files in #ifdef directive
These 2 cases may not be included in Make.dep and this may prevent the
differential build from working correctly.