[libcxx-commits] [PATCH] D135663: [libunwind] Install the headers by default
Aaron Ballman via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Thu May 11 08:10:47 PDT 2023
aaron.ballman added a comment.
In D135663#4332576 <https://reviews.llvm.org/D135663#4332576>, @ldionne wrote:
> In D135663#4332558 <https://reviews.llvm.org/D135663#4332558>, @barannikov88 wrote:
>
>> The commit also says that there are no incompatibilities. May be it was true at that time,
>> but the headers currently diverge. Even _Unwind_Exception definitions are different:
>
> Hmm, yeah, I guess that was unavoidable and it's pretty bad.
>
>> IMO clang's unwind.h should be as good as deleted.
>
> FWIW that would also be my immediate reaction -- I'm not sure why it would make much sense for Clang to provide the header associated to another library.
>
>> However, @aaron.ballman suggested on discord that it might be there for use with -ffreestanding. Can that make sense?
>
> I am not sure why a freestanding implementation would require `<unwind.h>`, but if it does, then my reflex would be to say that it should get it from its unwinder library (aka `libunwind` or other). In my mind, freestanding is not the same as "no runtime libraries". If you are in freestanding and you still want exceptions, you'll need some unwind library to support that no matter what.
>
> So naively, I'd be fine with removing the Clang version, but I wouldn't be surprised if there's a bunch of reasons why this can't work. If you want, you could create a review and we can have a discussion and ping the right people on it.
Ah, sorry for introducing confusion. IIRC, I was speaking more generally about why we provide headers and then include_next to the system from them (we do that sometimes so we can provide macros in freestanding but then defer to the system for hosted). I don't know if we have any freestanding needs for `<unwind.h>`. When we discussed freestanding recently, I think we were heading towards consensus that we expect users to provide a freestanding-compatible libc implementation like we already expect them to do for hosted; the compiler headers should only be producing simple macros or calls to intrinsics. So that matches what @ldionne says about freestanding not meaning "no runtime library".
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D135663/new/
https://reviews.llvm.org/D135663
More information about the libcxx-commits
mailing list