[libcxxabi][PATCH] unwinder
David Fang
fang at csl.cornell.edu
Tue Oct 8 14:16:08 PDT 2013
> Le 8 oct. 2013 à 20:22, David Fang <fang at csl.cornell.edu> a écrit :
>
>> Nick,
>>
>>> On Oct 7, 2013, at 7:38 PM, David Fang wrote:
>>>> Hi Nick,
>>>> Thanks for the libunwind commit!
>>>> Would it be possible to also include "mach-o/dyld_priv.h" as well? It is referenced by src/Unwind/AddressSpace.hpp. I have a copy of that header from a 2009 distribution of cctools.
>>>> (I'm still building on powerpc-darwin8.)
>>
>>> Having that header is not going to help. The header declarations a function in libSystem.dylib which the unwinder calls to get the address of the __eh_frame for a given pc. That function is not in the darwin8 libSystem. We'll need to write an equivalent using dladdr() and getsectiondata() for older MacOSX versions.
>>
>> What is the name of that function (where it is available)? Would something like this be available somewhere in LLVM?
>>
>
> It is _dyld_find_unwind_sections() used to find __eh_frame and
> _dyld_register_func_for_remove_image() used to track unloaded libraries
> and prune the cache accordingly.
>
> But even if you manage to fix the dyld dependency, it will just get you
> to an other missing private header error (pthread_machdep.h from libc)
> which provides direct access to thread local variables (maybe that one
> can be replaced by a __thread var though).
> -- Jean-Daniel
Thanks,
FYI, I've started putting notes in
http://llvm.org/bugs/show_bug.cgi?id=17513
Are there alternative ways of implementing:
bool
LocalAddressSpace::findUnwindSections(pint_t targetAddr,
UnwindInfoSections& info);
on darwin8?
I also saw the System/pthread_machdep.h error during compilation.
Is there an equivalent on older darwin?
Fang
--
David Fang
http://www.csl.cornell.edu/~fang/
More information about the cfe-commits
mailing list