http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54209
--- Comment #2 from chaoyingfu at gcc dot gnu.org <chaoyingfu at gcc dot gnu.org> 2012-08-09 17:23:40 UTC --- 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. Ex: #if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \ && defined(__BIONIC__) && defined(__mips__) # define USE_PT_GNU_EH_FRAME #endif Thanks!