1 #include <endian.h> 2 3 #if __BYTE_ORDER == __BIG_ENDIAN 4 #define ENDIAN_SUFFIX "eb" 5 #else 6 #define ENDIAN_SUFFIX "" 7 #endif 8 9 #if __ARM_PCS_VFP 10 #define FP_SUFFIX "hf" 11 #else 12 #define FP_SUFFIX "" 13 #endif 14 15 #define LDSO_ARCH "arm" ENDIAN_SUFFIX FP_SUFFIX 16 17 #define NO_LEGACY_INITFINI 18 19 #define TPOFF_K 0 20 21 #define REL_SYMBOLIC R_ARM_ABS32 22 #define REL_GOT R_ARM_GLOB_DAT 23 #define REL_PLT R_ARM_JUMP_SLOT 24 #define REL_RELATIVE R_ARM_RELATIVE 25 #define REL_COPY R_ARM_COPY 26 #define REL_DTPMOD R_ARM_TLS_DTPMOD32 27 #define REL_DTPOFF R_ARM_TLS_DTPOFF32 28 #define REL_TPOFF R_ARM_TLS_TPOFF32 29 #define REL_TLSDESC R_ARM_TLS_DESC 30 31 #define TLSDESC_BACKWARDS 32 33 #define CRTJMP(pc,sp) __asm__ __volatile__( \ 34 "mov sp,%1 ; bx %0" : : "r"(pc), "r"(sp) : "memory" ) 35