[LLVMdev] unwind's permanent residence
Saleem Abdulrasool
compnerd at compnerd.org
Fri Jan 30 12:56:37 PST 2015
On Fri, Jan 30, 2015 at 12:43 PM, Jonathan Roelofs <
jonathan at codesourcery.com> wrote:
>
>
> On 1/30/15 1:17 PM, Saleem Abdulrasool wrote:
>
>> Although this has been discussed in the past, I think that given a few
>> conversations, it seems that it unfortunately needs to be brought up
>> again.
>>
>> There seems to be some disagreement over the ideal location of the
>> unwinder (libunwind). Currently, libunwind resides in a subdirectory of
>> libc++abi. There seems to be some desire from multiple parties that it
>> be moved into compiler-rt or a separate repository.
>>
>> Currently, when using compiler-rt as the runtime library (on Linux) we
>> use libgcc_s and libgcc_eh as the builtins serve as the home for
>> __gcc_personality_v0. This error handling personality requires
>> unwinding support, which these libraries provide. This dependency can
>> be fulfilled with libunwind.
>>
>
> I think this dependence should be satisfied by the target system's
> unwinder, whatever that is. If folks want to use this libunwind for their
> platform, that's fine... but we should probably continue to use libgcc_s
> and libgcc_eh on linux when that's the platform's unwinder.
I think that controlling that via a flag is best if we want to continue
using libgcc_s/libgcc_eh instead of libuwnind.
>
>
>> The concern that has been raised with adjusting this dependency has been
>> that libunwind is not guaranteed to be built and installed unless
>> libc++abi is present. The suggestion was that if libunwind were part of
>> compiler-rt or a separate repository, it would be easier to ensure that
>> the required library would be built and installed.
>>
>
> +1 for putting it in a separate repo. Separate repos helps keep layering
> nonsense to a minimum.
>
> It would be nice if we had some libunwind-specific tests too. Currently we
> have none, other than the c++ abi tests. Nick, does Apple have any they're
> willing to upstream?
>
>
>> Personally, I am of the opinion that a separate repository for it does
>> make some sense as painful as it sounds. There is a valid point that
>> the unwinder supports the compiler in some sense (for exception
>> handling). It seems that its not particularly as intrinsically tied to
>> the compiler as the builtins are. There is a proper specification that
>> it implements and interface it exposes, so it can be replaced with an
>> alternative implementation. At the same time, the unwinder is not
>> really tied to libc++abi either, though it too has a dependency on it.
>>
>
> The fact that this ARM EHABI-induced layering violation is here shouldn't
> stop us from separating them.
I agree with this.
>
> Again, the use here can be replaced with an alternate implementation
>> (and AIUI, the build system already permits this).
>>
>> So, I am bringing up this question once more: what can we do about this
>> concern? Is moving it to a separate repository acceptable? Or perhaps
>> moving it to compiler-rt is palatable to more of the involved developers
>> (as much as I may prefer an alternate solution).
>>
>
> Last time we brought this up, there was only partial consensus, and then
> someone arbitrarily declared total consensus (without compelling arguments
> in any particular direction) that we were going to move it to compiler_rt.
> Then the discussion fell on the floor because no-one had time to actually
> do the move. Please, let's not let that happen again this time.
>
Im willing to do the leg work if thats what it takes, however, Id like to
get a clear consensus before proceeding.
So far, it seems that there is no argument against moving it into a
separate repository. Everyone agrees that this would be conducive to
ensuring that we don't end up with unintended layering violations. Why
don't we give it a few days to allow others to comment before going with
that solution (hopefully all the particularly interested parties are
already on this thread).
>
> Cheers,
>
> Jon
>
>
>> --
>> Saleem Abdulrasool
>> compnerd (at) compnerd (dot) org
>>
>
> --
> Jon Roelofs
> jonathan at codesourcery.com
> CodeSourcery / Mentor Embedded
>
--
Saleem Abdulrasool
compnerd (at) compnerd (dot) org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150130/6a0f729f/attachment.html>
More information about the llvm-dev
mailing list