_Unwind_FindEnclosingFunction vs darwin
Jack Howarth
howarth@bromo.med.uc.edu
Sat Dec 19 18:49:00 GMT 2009
On Sat, Dec 19, 2009 at 05:26:10PM +0000, Andrew Haley wrote:
> >>
> >> The easiest thing would be to add
> >>
> >> #ifdef USING_DARWIN_CRT
> >> #undefine _Unwind_FindEnclosingFunction(PC)
> >> #define _Unwind_FindEnclosingFunction(PC) darwin10_Unwind_FindEnclosingFunction(PC)
> >> #endif
> >>
> >> to include/posix.h.
> >>
> >> Please make sure that darwin10_Unwind_FindEnclosingFunction is not exported from
> >> anywhere. I'd just declare it static inline in include/posix.h.
> >>
> >> Andrew.
> >
> > Andrew,
> > The bigger question is were do we put the actual code for darwin10_Unwind_FindEnclosingFunction()
> > such that libgcj can access it.
>> Define it static inline in libjava/include/posix.h..
>> Andrew.
Andrew,
Okay, so if I add...
static inline void *
_darwin10_Unwind_FindEnclosingFunction (void *pc)
{
struct dwarf_eh_bases bases;
const struct dwarf_fde *fde = _Unwind_Find_FDE (pc-1, &bases);
if (fde)
return bases.func;
else
return NULL;
}
#ifdef USING_DARWIN_CRT
#undef _Unwind_FindEnclosingFunction
#define _Unwind_FindEnclosingFunction(PC) _darwin10_Unwind_FindEnclosingFunction(PC)
#endif
to libjava/include/posix.h, what is the correct way to access the missing declarations
for dwarf_eh_bases, dwarf_fde, fde and _Unwind_Find_FDE? Are we supposed to directly
include the *dw2* headers from the gcc subdirectory or duplicate their contents in this
header?
Jack
More information about the Java
mailing list