1570af302Sopenharmony_ci#if __BYTE_ORDER == __BIG_ENDIAN
2570af302Sopenharmony_ci#define ENDIAN_SUFFIX "eb"
3570af302Sopenharmony_ci#else
4570af302Sopenharmony_ci#define ENDIAN_SUFFIX ""
5570af302Sopenharmony_ci#endif
6570af302Sopenharmony_ci
7570af302Sopenharmony_ci#if __ARM_PCS_VFP
8570af302Sopenharmony_ci#define FP_SUFFIX "hf"
9570af302Sopenharmony_ci#else
10570af302Sopenharmony_ci#define FP_SUFFIX ""
11570af302Sopenharmony_ci#endif
12570af302Sopenharmony_ci
13570af302Sopenharmony_ci#define LDSO_ARCH "arm" ENDIAN_SUFFIX FP_SUFFIX
14570af302Sopenharmony_ci
15570af302Sopenharmony_ci#define NO_LEGACY_INITFINI
16570af302Sopenharmony_ci
17570af302Sopenharmony_ci#define TPOFF_K 0
18570af302Sopenharmony_ci
19570af302Sopenharmony_ci#define REL_SYMBOLIC    R_ARM_ABS32
20570af302Sopenharmony_ci#define REL_GOT         R_ARM_GLOB_DAT
21570af302Sopenharmony_ci#define REL_PLT         R_ARM_JUMP_SLOT
22570af302Sopenharmony_ci#define REL_RELATIVE    R_ARM_RELATIVE
23570af302Sopenharmony_ci#define REL_COPY        R_ARM_COPY
24570af302Sopenharmony_ci#define REL_DTPMOD      R_ARM_TLS_DTPMOD32
25570af302Sopenharmony_ci#define REL_DTPOFF      R_ARM_TLS_DTPOFF32
26570af302Sopenharmony_ci#define REL_TPOFF       R_ARM_TLS_TPOFF32
27570af302Sopenharmony_ci#define REL_TLSDESC     R_ARM_TLS_DESC
28570af302Sopenharmony_ci
29570af302Sopenharmony_ci#define TLSDESC_BACKWARDS 1
30570af302Sopenharmony_ci#ifdef __LITEOS_A__
31570af302Sopenharmony_ci#define CRTJMP(pc,sp) __asm__ __volatile__(\
32570af302Sopenharmony_ci	"mov r0,%1 ; bx %0" : : "r"(pc), "r"(sp) : "memory", "r0")
33570af302Sopenharmony_ci#else
34570af302Sopenharmony_ci#define CRTJMP(pc,sp) __asm__ __volatile__( \
35570af302Sopenharmony_ci	"mov sp,%1 ; bx %0" : : "r"(pc), "r"(sp) : "memory" )
36570af302Sopenharmony_ci#endif
37