| Index: third_party/android_crazy_linker/src/src/elf_traits.h
|
| diff --git a/third_party/android_crazy_linker/src/src/elf_traits.h b/third_party/android_crazy_linker/src/src/elf_traits.h
|
| index 6fbe139f946cf25b005555211c2a60f3e8d4ac0c..82c17afa6ae99d982ee996bd3cea1c8d936e225c 100644
|
| --- a/third_party/android_crazy_linker/src/src/elf_traits.h
|
| +++ b/third_party/android_crazy_linker/src/src/elf_traits.h
|
| @@ -16,28 +16,48 @@ struct ELF {
|
| typedef Elf32_Ehdr Ehdr;
|
| typedef Elf32_Phdr Phdr;
|
| typedef Elf32_Word Word;
|
| + typedef Elf32_Sword Sword;
|
| typedef Elf32_Addr Addr;
|
| typedef Elf32_Dyn Dyn;
|
| typedef Elf32_Sym Sym;
|
| typedef Elf32_Rel Rel;
|
| + typedef Elf32_Rela Rela;
|
| typedef Elf32_auxv_t auxv_t;
|
|
|
| enum { kElfClass = ELFCLASS32 };
|
| enum { kElfBits = 32 };
|
| +
|
| +#ifndef ELF_R_TYPE
|
| +#define ELF_R_TYPE ELF32_R_TYPE
|
| +#endif
|
| +
|
| +#ifndef ELF_R_SYM
|
| +#define ELF_R_SYM ELF32_R_SYM
|
| +#endif
|
| };
|
| #elif __SIZEOF_POINTER__ == 8
|
| struct ELF {
|
| typedef Elf64_Ehdr Ehdr;
|
| typedef Elf64_Phdr Phdr;
|
| typedef Elf64_Word Word;
|
| + typedef Elf64_Sword Sword;
|
| typedef Elf64_Addr Addr;
|
| typedef Elf64_Dyn Dyn;
|
| typedef Elf64_Sym Sym;
|
| typedef Elf64_Rel Rel;
|
| + typedef Elf64_Rela Rela;
|
| typedef Elf64_auxv_t auxv_t;
|
|
|
| enum { kElfClass = ELFCLASS64 };
|
| enum { kElfBits = 64 };
|
| +
|
| +#ifndef ELF_R_TYPE
|
| +#define ELF_R_TYPE ELF64_R_TYPE
|
| +#endif
|
| +
|
| +#ifndef ELF_R_SYM
|
| +#define ELF_R_SYM ELF64_R_SYM
|
| +#endif
|
| };
|
| #else
|
| #error "Unsupported target CPU bitness"
|
| @@ -47,8 +67,10 @@ struct ELF {
|
| #define ELF_MACHINE EM_ARM
|
| #elif defined(__i386__)
|
| #define ELF_MACHINE EM_386
|
| -#elif defined(__mips__)
|
| +#elif defined(__mips__) && !defined(__LP64__) // mips64el defines __mips__ too
|
| #define ELF_MACHINE EM_MIPS
|
| +#elif defined(__aarch64__)
|
| +#define ELF_MACHINE EM_AARCH64
|
| #else
|
| #error "Unsupported target CPU architecture"
|
| #endif
|
|
|