Hi Anthony,

Since Xiang already added support for NuttX on libcxx mainstream:
https://reviews.llvm.org/D88718?id=303700

I think it is time to phase out my libcxx repository and we will stick
to libcxx mainline.

Do you agree on that?

BR,

Alan

On 1/9/21, Anthony Merlino <anth...@vergeaero.com> wrote:
> Thanks for the info Xiang! I was on the right track but it is good to have
> some affirmation that I'm not missing something.
>
> The issue with the Arm maintained toolchain, as Greg has warned many times,
> is its use of newlib. Are you doing anything to ensure the wrong math
> library is not used?
>
> I will work on improving buildroot to also build and include libsupcxx.a.
>
> With Alan's modified version of libcxx, he disabled some exception logic
> and maybe some other logic that was allowing me to build without libsupxx.a
> entirely.
>
> Also, may I ask why we are building libcxx by manually grabbing the source
> files and building it? Are we against just driving the build from their
> existing build system? I ask because there are options in the way libcxx is
> built that might be useful to us and we have to replicate all of that if we
> just grab the source.
>
>
> Best,
> Anthony
>
>
> On Sat, Jan 9, 2021, 7:32 AM Xiang Xiao <xiaoxiang781...@gmail.com> wrote:
>
>> On Fri, Jan 8, 2021 at 9:57 AM Anthony Merlino <anth...@vergeaero.com>
>> wrote:
>>
>> > Hey all,
>> >
>> > Would someone be willing to share their experience with libcxx and
>> > their
>> > toolchain?
>>
>>
>> This toolchain should work:
>>
>> https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm
>>
>>
>> > I've now caught up to the tip of master, which now downloads
>> > and builds libcxx for me instead of using Alan's modified version. I am
>> > facing an issue I've faced before, and would really love to properly
>> > understand how this is supposed to work.
>> >
>> > My issues mostly center around libsupc++.a
>> >
>> > Currently, my build fails because it can't find libsupc++. From my
>> > understanding, this should be provided by my toolchain. But I am using
>> > a
>> > toolchain built by the NuttX buildroot and it does not build the C++
>> > libraries.  I am not using RTTI or exceptions, so I don't need what
>> >
>>
>> libsupc++.a doesn't only provide RTTI and exectpions, but also provide
>> some
>> basic functions called by compiler:
>>
>> https://github.com/gcc-mirror/gcc/tree/master/libstdc%2B%2B-v3/libsupc%2B%2B
>>
>> libsupc++ provides, however the Kconfig option
>> >    `[ ]   Have libsupc++ (required)`
>> > says, it's required.
>> >
>> > What's the right answer here? What are others doing about this?
>> >
>> >
>> Three methods you can try:
>>
>>    1. Switch to the ARM maintained toolchain
>>    2. Build libsupc++.a for NuttX toolchain
>>    3. Enhance NuttX's libc++ runtime support
>>
>>
>> https://github.com/apache/incubator-nuttx/tree/master/libs/libxx
>>
>>
>> > Is getting NuttX buildroot to build and provide libsupc++.a the *right*
>> > solution?
>> >
>> >
>> Yes, a complete toolchain should provide libsupc++.a. libsupc++.a just
>> like
>> libgcc.a should part of toolchain, not part of c/c++ library
>> implemetnation, because libsupc++.a tightly couple with the implementaion
>> detail of compiler.
>>
>>
>> > Do we need to change how libcxx is built in this case?
>> >
>> >
>> https://libcxx.llvm.org/docs/BuildingLibcxx.html#using-alternate-abi-libraries
>> >
>> >
>> Then you need port the libcxxrt:
>> https://github.com/libcxxrt/libcxxrt
>>
>>
>> > Thank you!
>> >
>> > Anthony
>> >
>>
>

Reply via email to