X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;ds=inline;f=arch%2Farm%2Freloc.h;h=e1ef3506e0c960bffb41bb517afd92cc74ffc086;hb=16bf466532d7328e971012b0731ad493b017ad29;hp=ee39b7fd5ba59feb1c28bed47c3de609e3230b9d;hpb=adf94c19666e687a728bbf398f9a88ea4ea19996;p=musl diff --git a/arch/arm/reloc.h b/arch/arm/reloc.h index ee39b7fd..e1ef3506 100644 --- a/arch/arm/reloc.h +++ b/arch/arm/reloc.h @@ -1,5 +1,3 @@ -#include -#include #include #if __BYTE_ORDER == __BIG_ENDIAN @@ -20,25 +18,20 @@ #define TPOFF_K 8 -static int remap_rel(int type) -{ - switch(type) { - case R_ARM_ABS32: - return REL_SYMBOLIC; - case R_ARM_GLOB_DAT: - return REL_GOT; - case R_ARM_JUMP_SLOT: - return REL_PLT; - case R_ARM_RELATIVE: - return REL_RELATIVE; - case R_ARM_COPY: - return REL_COPY; - case R_ARM_TLS_DTPMOD32: - return REL_DTPMOD; - case R_ARM_TLS_DTPOFF32: - return REL_DTPOFF; - case R_ARM_TLS_TPOFF32: - return REL_TPOFF; - } - return 0; -} +#define REL_SYMBOLIC R_ARM_ABS32 +#define REL_GOT R_ARM_GLOB_DAT +#define REL_PLT R_ARM_JUMP_SLOT +#define REL_RELATIVE R_ARM_RELATIVE +#define REL_COPY R_ARM_COPY +#define REL_DTPMOD R_ARM_TLS_DTPMOD32 +#define REL_DTPOFF R_ARM_TLS_DTPOFF32 +#define REL_TPOFF R_ARM_TLS_TPOFF32 +//#define REL_TLSDESC R_ARM_TLS_DESC + +#ifdef __thumb__ +#define CRTJMP(pc,sp) __asm__ __volatile__( \ + "mov sp,%1 ; bx %0" : : "r"(pc), "r"(sp) : "memory" ) +#else +#define CRTJMP(pc,sp) __asm__ __volatile__( \ + "mov sp,%1 ; tst %0,#1 ; moveq pc,%0 ; bx %0" : : "r"(pc), "r"(sp) : "memory" ) +#endif