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 8 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 CRTJMP(pc,sp) __asm__ __volatile__( \ 32 "mov sp,%1 ; bx %0" : : "r"(pc), "r"(sp) : "memory" ) 33