diff options
-rw-r--r-- | arch/blackfin/include/asm/elf.h | 84 | ||||
-rw-r--r-- | arch/blackfin/kernel/module.c | 22 |
2 files changed, 53 insertions, 53 deletions
diff --git a/arch/blackfin/include/asm/elf.h b/arch/blackfin/include/asm/elf.h index cdbfcfc30f6a..230e1605d3fb 100644 --- a/arch/blackfin/include/asm/elf.h +++ b/arch/blackfin/include/asm/elf.h | |||
@@ -55,50 +55,50 @@ do { \ | |||
55 | #define ELF_FDPIC_CORE_EFLAGS EF_BFIN_FDPIC | 55 | #define ELF_FDPIC_CORE_EFLAGS EF_BFIN_FDPIC |
56 | #define ELF_EXEC_PAGESIZE 4096 | 56 | #define ELF_EXEC_PAGESIZE 4096 |
57 | 57 | ||
58 | #define R_unused0 0 /* relocation type 0 is not defined */ | 58 | #define R_BFIN_UNUSED0 0 /* relocation type 0 is not defined */ |
59 | #define R_pcrel5m2 1 /*LSETUP part a */ | 59 | #define R_BFIN_PCREL5M2 1 /* LSETUP part a */ |
60 | #define R_unused1 2 /* relocation type 2 is not defined */ | 60 | #define R_BFIN_UNUSED1 2 /* relocation type 2 is not defined */ |
61 | #define R_pcrel10 3 /* type 3, if cc jump <target> */ | 61 | #define R_BFIN_PCREL10 3 /* type 3, if cc jump <target> */ |
62 | #define R_pcrel12_jump 4 /* type 4, jump <target> */ | 62 | #define R_BFIN_PCREL12_JUMP 4 /* type 4, jump <target> */ |
63 | #define R_rimm16 5 /* type 0x5, rN = <target> */ | 63 | #define R_BFIN_RIMM16 5 /* type 0x5, rN = <target> */ |
64 | #define R_luimm16 6 /* # 0x6, preg.l=<target> Load imm 16 to lower half */ | 64 | #define R_BFIN_LUIMM16 6 /* # 0x6, preg.l=<target> Load imm 16 to lower half */ |
65 | #define R_huimm16 7 /* # 0x7, preg.h=<target> Load imm 16 to upper half */ | 65 | #define R_BFIN_HUIMM16 7 /* # 0x7, preg.h=<target> Load imm 16 to upper half */ |
66 | #define R_pcrel12_jump_s 8 /* # 0x8 jump.s <target> */ | 66 | #define R_BFIN_PCREL12_JUMP_S 8 /* # 0x8 jump.s <target> */ |
67 | #define R_pcrel24_jump_x 9 /* # 0x9 jump.x <target> */ | 67 | #define R_BFIN_PCREL24_JUMP_X 9 /* # 0x9 jump.x <target> */ |
68 | #define R_pcrel24 10 /* # 0xa call <target> , not expandable */ | 68 | #define R_BFIN_PCREL24 10 /* # 0xa call <target> , not expandable */ |
69 | #define R_unusedb 11 /* # 0xb not generated */ | 69 | #define R_BFIN_UNUSEDB 11 /* # 0xb not generated */ |
70 | #define R_unusedc 12 /* # 0xc not used */ | 70 | #define R_BFIN_UNUSEDC 12 /* # 0xc not used */ |
71 | #define R_pcrel24_jump_l 13 /*0xd jump.l <target> */ | 71 | #define R_BFIN_PCREL24_JUMP_L 13 /* 0xd jump.l <target> */ |
72 | #define R_pcrel24_call_x 14 /* 0xE, call.x <target> if <target> is above 24 bit limit call through P1 */ | 72 | #define R_BFIN_PCREL24_CALL_X 14 /* 0xE, call.x <target> if <target> is above 24 bit limit call through P1 */ |
73 | #define R_var_eq_symb 15 /* 0xf, linker should treat it same as 0x12 */ | 73 | #define R_BFIN_VAR_EQ_SYMB 15 /* 0xf, linker should treat it same as 0x12 */ |
74 | #define R_byte_data 16 /* 0x10, .byte var = symbol */ | 74 | #define R_BFIN_BYTE_DATA 16 /* 0x10, .byte var = symbol */ |
75 | #define R_byte2_data 17 /* 0x11, .byte2 var = symbol */ | 75 | #define R_BFIN_BYTE2_DATA 17 /* 0x11, .byte2 var = symbol */ |
76 | #define R_byte4_data 18 /* 0x12, .byte4 var = symbol and .var var=symbol */ | 76 | #define R_BFIN_BYTE4_DATA 18 /* 0x12, .byte4 var = symbol and .var var=symbol */ |
77 | #define R_pcrel11 19 /* 0x13, lsetup part b */ | 77 | #define R_BFIN_PCREL11 19 /* 0x13, lsetup part b */ |
78 | #define R_unused14 20 /* 0x14, undefined */ | 78 | #define R_BFIN_UNUSED14 20 /* 0x14, undefined */ |
79 | #define R_unused15 21 /* not generated by VDSP 3.5 */ | 79 | #define R_BFIN_UNUSED15 21 /* not generated by VDSP 3.5 */ |
80 | 80 | ||
81 | /* arithmetic relocations */ | 81 | /* arithmetic relocations */ |
82 | #define R_push 0xE0 | 82 | #define R_BFIN_PUSH 0xE0 |
83 | #define R_const 0xE1 | 83 | #define R_BFIN_CONST 0xE1 |
84 | #define R_add 0xE2 | 84 | #define R_BFIN_ADD 0xE2 |
85 | #define R_sub 0xE3 | 85 | #define R_BFIN_SUB 0xE3 |
86 | #define R_mult 0xE4 | 86 | #define R_BFIN_MULT 0xE4 |
87 | #define R_div 0xE5 | 87 | #define R_BFIN_DIV 0xE5 |
88 | #define R_mod 0xE6 | 88 | #define R_BFIN_MOD 0xE6 |
89 | #define R_lshift 0xE7 | 89 | #define R_BFIN_LSHIFT 0xE7 |
90 | #define R_rshift 0xE8 | 90 | #define R_BFIN_RSHIFT 0xE8 |
91 | #define R_and 0xE9 | 91 | #define R_BFIN_AND 0xE9 |
92 | #define R_or 0xEA | 92 | #define R_BFIN_OR 0xEA |
93 | #define R_xor 0xEB | 93 | #define R_BFIN_XOR 0xEB |
94 | #define R_land 0xEC | 94 | #define R_BFIN_LAND 0xEC |
95 | #define R_lor 0xED | 95 | #define R_BFIN_LOR 0xED |
96 | #define R_len 0xEE | 96 | #define R_BFIN_LEN 0xEE |
97 | #define R_neg 0xEF | 97 | #define R_BFIN_NEG 0xEF |
98 | #define R_comp 0xF0 | 98 | #define R_BFIN_COMP 0xF0 |
99 | #define R_page 0xF1 | 99 | #define R_BFIN_PAGE 0xF1 |
100 | #define R_hwpage 0xF2 | 100 | #define R_BFIN_HWPAGE 0xF2 |
101 | #define R_addr 0xF3 | 101 | #define R_BFIN_ADDR 0xF3 |
102 | 102 | ||
103 | /* This is the location that an ET_DYN program is loaded if exec'ed. Typical | 103 | /* This is the location that an ET_DYN program is loaded if exec'ed. Typical |
104 | use of this is to invoke "./ld.so someprog" to test out a new version of | 104 | use of this is to invoke "./ld.so someprog" to test out a new version of |
diff --git a/arch/blackfin/kernel/module.c b/arch/blackfin/kernel/module.c index 1bd7f2d018a8..d5aee3626688 100644 --- a/arch/blackfin/kernel/module.c +++ b/arch/blackfin/kernel/module.c | |||
@@ -201,8 +201,8 @@ apply_relocate(Elf_Shdr * sechdrs, const char *strtab, | |||
201 | /* Arithmetic relocations are handled. */ | 201 | /* Arithmetic relocations are handled. */ |
202 | /* We do not expect LSETUP to be split and hence is not */ | 202 | /* We do not expect LSETUP to be split and hence is not */ |
203 | /* handled. */ | 203 | /* handled. */ |
204 | /* R_byte and R_byte2 are also not handled as the gas */ | 204 | /* R_BFIN_BYTE and R_BFIN_BYTE2 are also not handled as the */ |
205 | /* does not generate it. */ | 205 | /* gas does not generate it. */ |
206 | /*************************************************************************/ | 206 | /*************************************************************************/ |
207 | int | 207 | int |
208 | apply_relocate_add(Elf_Shdr * sechdrs, const char *strtab, | 208 | apply_relocate_add(Elf_Shdr * sechdrs, const char *strtab, |
@@ -243,8 +243,8 @@ apply_relocate_add(Elf_Shdr * sechdrs, const char *strtab, | |||
243 | #endif | 243 | #endif |
244 | switch (ELF32_R_TYPE(rel[i].r_info)) { | 244 | switch (ELF32_R_TYPE(rel[i].r_info)) { |
245 | 245 | ||
246 | case R_pcrel24: | 246 | case R_BFIN_PCREL24: |
247 | case R_pcrel24_jump_l: | 247 | case R_BFIN_PCREL24_JUMP_L: |
248 | /* Add the value, subtract its postition */ | 248 | /* Add the value, subtract its postition */ |
249 | location16 = | 249 | location16 = |
250 | (uint16_t *) (sechdrs[sechdrs[relsec].sh_info]. | 250 | (uint16_t *) (sechdrs[sechdrs[relsec].sh_info]. |
@@ -266,18 +266,18 @@ apply_relocate_add(Elf_Shdr * sechdrs, const char *strtab, | |||
266 | (*location16 & 0xff00) | (value >> 16 & 0x00ff); | 266 | (*location16 & 0xff00) | (value >> 16 & 0x00ff); |
267 | *(location16 + 1) = value & 0xffff; | 267 | *(location16 + 1) = value & 0xffff; |
268 | break; | 268 | break; |
269 | case R_pcrel12_jump: | 269 | case R_BFIN_PCREL12_JUMP: |
270 | case R_pcrel12_jump_s: | 270 | case R_BFIN_PCREL12_JUMP_S: |
271 | value -= (uint32_t) location32; | 271 | value -= (uint32_t) location32; |
272 | value >>= 1; | 272 | value >>= 1; |
273 | *location16 = (value & 0xfff); | 273 | *location16 = (value & 0xfff); |
274 | break; | 274 | break; |
275 | case R_pcrel10: | 275 | case R_BFIN_PCREL10: |
276 | value -= (uint32_t) location32; | 276 | value -= (uint32_t) location32; |
277 | value >>= 1; | 277 | value >>= 1; |
278 | *location16 = (value & 0x3ff); | 278 | *location16 = (value & 0x3ff); |
279 | break; | 279 | break; |
280 | case R_luimm16: | 280 | case R_BFIN_LUIMM16: |
281 | pr_debug("before %x after %x\n", *location16, | 281 | pr_debug("before %x after %x\n", *location16, |
282 | (value & 0xffff)); | 282 | (value & 0xffff)); |
283 | tmp = (value & 0xffff); | 283 | tmp = (value & 0xffff); |
@@ -286,7 +286,7 @@ apply_relocate_add(Elf_Shdr * sechdrs, const char *strtab, | |||
286 | } else | 286 | } else |
287 | *location16 = tmp; | 287 | *location16 = tmp; |
288 | break; | 288 | break; |
289 | case R_huimm16: | 289 | case R_BFIN_HUIMM16: |
290 | pr_debug("before %x after %x\n", *location16, | 290 | pr_debug("before %x after %x\n", *location16, |
291 | ((value >> 16) & 0xffff)); | 291 | ((value >> 16) & 0xffff)); |
292 | tmp = ((value >> 16) & 0xffff); | 292 | tmp = ((value >> 16) & 0xffff); |
@@ -295,10 +295,10 @@ apply_relocate_add(Elf_Shdr * sechdrs, const char *strtab, | |||
295 | } else | 295 | } else |
296 | *location16 = tmp; | 296 | *location16 = tmp; |
297 | break; | 297 | break; |
298 | case R_rimm16: | 298 | case R_BFIN_RIMM16: |
299 | *location16 = (value & 0xffff); | 299 | *location16 = (value & 0xffff); |
300 | break; | 300 | break; |
301 | case R_byte4_data: | 301 | case R_BFIN_BYTE4_DATA: |
302 | pr_debug("before %x after %x\n", *location32, value); | 302 | pr_debug("before %x after %x\n", *location32, value); |
303 | *location32 = value; | 303 | *location32 = value; |
304 | break; | 304 | break; |