http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54209

--- Comment #4 from chaoyingfu at gcc dot gnu.org <chaoyingfu at gcc dot 
gnu.org> 2012-08-09 18:45:41 UTC ---
(In reply to comment #3)
> (In reply to comment #2)
> > MIPS provides a version of link.h in Android NDK as follows:
> > Ex:
> > From android-ndk-r8b/platforms/android-9/arch-mips/usr/include# cat link.h
> > /*
> >    For building unwind-dw2-fde-glibc.c for MIPS frame unwinding,
> >    we need to have <link.h> that defines struct dl_phdr_info,
> >    ELFW(type), and dl_iterate_phdr().
> > */
> > 
> > #include <sys/types.h>
> > #include <elf.h>
> > 
> > struct dl_phdr_info
> > {
> >     Elf32_Addr dlpi_addr;
> >     const char *dlpi_name;
> >     const Elf32_Phdr *dlpi_phdr;
> >     Elf32_Half dlpi_phnum;
> > };
> > 
> > #if _MIPS_SZPTR == 32
> > #define ElfW(type)      Elf32_##type
> > #elif _MIPS_SZPTR == 64
> > #define ElfW(type)      Elf64_##type
> > #endif
> > 
> > int
> > dl_iterate_phdr(int (*cb)(struct dl_phdr_info *info, size_t size, void 
> > *data),
> >                 void *data);
> > 
> >   For x86, you can create link.h as well.  Or we can guard this define with
> > MIPS targets.
> 
> Why isn't link.h in AOSP Bionic C library?

  ARM doesn't use eh_frame, so there is no need to create link.h at the
beginning for the Android project, I guess.  For MIPS, we create our own link.h
to work with eh_frame unwinding.  Thanks!

Reply via email to