add explicit barrier operation to internal atomic.h API
[musl] / arch / arm / reloc.h
1 #include <string.h>
2 #include <elf.h>
3 #include <endian.h>
4
5 #if __BYTE_ORDER == __BIG_ENDIAN
6 #define ENDIAN_SUFFIX "eb"
7 #else
8 #define ENDIAN_SUFFIX ""
9 #endif
10
11 #if __SOFTFP__
12 #define FP_SUFFIX ""
13 #else
14 #define FP_SUFFIX "hf"
15 #endif
16
17 #define LDSO_ARCH "arm" ENDIAN_SUFFIX FP_SUFFIX
18
19 #define NO_LEGACY_INITFINI
20
21 #define TPOFF_K 8
22
23 static int remap_rel(int type)
24 {
25         switch(type) {
26         case R_ARM_ABS32:
27                 return REL_SYMBOLIC;
28         case R_ARM_GLOB_DAT:
29                 return REL_GOT;
30         case R_ARM_JUMP_SLOT:
31                 return REL_PLT;
32         case R_ARM_RELATIVE:
33                 return REL_RELATIVE;
34         case R_ARM_COPY:
35                 return REL_COPY;
36         case R_ARM_TLS_DTPMOD32:
37                 return REL_DTPMOD;
38         case R_ARM_TLS_DTPOFF32:
39                 return REL_DTPOFF;
40         case R_ARM_TLS_TPOFF32:
41                 return REL_TPOFF;
42         }
43         return 0;
44 }