[libcxxabi][PATCH] unwinder

Jean-Daniel Dupas devlists at shadowlab.org
Tue Oct 8 14:00:33 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








More information about the cfe-commits mailing list