I've been using libcxx for some time without major issues (although not 
recently). Alan's for of LLVM repo could be considered the authoritative 
source. I did however have always trouble with all streams stuff (cout, etc). 
This seemed to trigger faults on boot, during initialization of static 
constructors. I couldn't get to the source of the problem at the time.
Anyway, since printf() is good enough for me I didn't really needed that part 
of c++. It is also quite heavy, it brings up a lot of other stuff in.
Note I always use --gc-sections (and related flags) since otherwise the build 
becomes massive.

Best,
Matias

On Fri, Jun 19, 2020, at 18:54, Maciej Wójcik wrote:
> I was using newlib. It is bundled with ARM GCC toolchain, at least on
> Ubuntu and Arch. Worked out of the box, except I remember having minor
> build issues from time to time, when adding additional headers. This
> question was appearing here in the past. I am also not sure what is the
> official answer.
> 
> If I remember correctly many libraries work, but none of them is supported
> by NuttX. By not supported, I mean people are still trying to help with
> issues, but there is no official recommendation nor guarantee.
> 
> C++ STL implementations are big projects, constantly changing and
> toolchains are not always sane in terms which headers they are trying to
> use. For example they may take a bit of NuttX libc, and mix it with a bit
> of its own headers. Then feed it to C++ STL giving unpredictable result in
> the end.
> 
> I am not sure if anything that I am writing above makes sense :D In
> practice newlib was working, but probably not good for critical
> applications. I would also be happy to hear what is the official statement
> on it now.
> 
> By the way, such GCC with newlib offers all higher C++ standards, not just
> C++11.
> 
> On Fri, 19 Jun 2020, 23:13 , <i...@petervanderperk.nl> wrote:
> 
> > For a personal project I want to use C++11, however which C++ library
> > works best for that? Looking at the NuttX documentation it refers me
> > to a "Contemporary port of the C++11 LLVM libcxx", but this guide
> > (
> > https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=139629545)
> >
> > is based on a older NuttX fork.
> >
> > Nevertheless I've tried to follow the steps on NuttX Master, which
> > works partially works with some extra modifications (had to enable
> > fpermissive), after basic testing it seems C++11 threads (<thread>) is
> > working. But when I use std::cout (<iostream>) compiling gives me the
> > following linker error:
> >
> > arm-none-eabi-ld:
> > /home/peter/brickpoweredugv/nuttx/staging/libxx.a(ios.o): in function
> > `std::char_traits<char>::eof()':
> > /home/peter/brickpoweredugv/nuttx/include/libcxx/support/xlocale/__nop_locale_mgmt.h:20:
> > multiple definition of `duplocale';
> > /home/peter/brickpoweredugv/nuttx/staging/libapps.a(connector.home.peter.brickpoweredugv.apps.brickpoweredugv.o):/home/peter/brickpoweredugv/nuttx/include/libcxx/support/xlocale/__nop_locale_mgmt.h:20:
> > first defined
> > here
> > arm-none-eabi-ld:
> > /home/peter/brickpoweredugv/nuttx/staging/libxx.a(ios.o): in function
> > `freelocale':
> >
> > Thus my question is, is someone actively using libcxx with C++11 in
> > upstream NuttX and does it work well? Or do I have to use another
> > libc++ implementation
> >
> > Yours sincerely,
> >
> > Peter van der Perk
> >
> >
> 

Reply via email to