PX4 / libcxx

WIP effort to get llvm libcxx ported to NuttX
http://nuttx.org/doku.php?id=wiki:nshhowtos:llvm-stdcxx
Other
1 stars 2 forks source link

planning/review #3

Open dagar opened 5 years ago

dagar commented 5 years ago

What's the current state of libcxx and NuttX? What works, what doesn't?

https://groups.google.com/forum/#!msg/nuttx/smNltLDE5Go/sLJeWzHTBAAJ

dagar commented 5 years ago

From https://libcxx.llvm.org/

Building libc++ with -fno-rtti is not supported. However linking against it with -fno-rtti is supported.

dagar commented 5 years ago

What's a good NuttX config to target for testing?

stm32f4discovery/testlibcxx

https://bitbucket.org/nuttx/nuttx/src/1a85105d198803af70aef7e51fe191e870f427e4/configs/stm32f4discovery/testlibcxx/?at=master

dagar commented 5 years ago

FYI @antmerlino - perhaps you'd be interested in this effort to get libcxx officially working on NuttX?

antmerlino commented 5 years ago

@dagar libcxx works on NuttX already. As officially as it is going to get. The license prohibits it from being fully integrated into NuttX. Additionally, libcxx is complementary to the OS, and doesn't need to be a core part of NuttX. Alan Carvalho wrote an installation script that installs libcxx into the NuttX source to be built along with NuttX,

Let me know what you are looking to accomplish and I'll see if I can be of some help.

dagar commented 5 years ago

@antmerlino Actually I think there's still quite a lot of room for improvement that will still respect the licensing and enable wider adoption. There are a few goals.

  1. Make sure everything actually works, or at least understand where it doesn't. My experience has been that it's very easy to stumble on things that won't even build with rather cryptic error messages.
  2. Get the required changes (see https://github.com/PX4/libcxx/commits/nuttx-wip) contributed back to libcxx so we can keep up with new development and minimize the maintenance burdon. We also shouldn't be carrying NuttX required build scripts in the libcxx fork.
  3. (minor) find an appropriate way to integrate into NuttX, either with a buildroot or better build system integration. Manually cloning and installing isn't a sustainable solution.