With this change we can find more symbols hereby improving the readability of the warnings.
Showing the changes to scripts (1 of 1 file). Show all
Unified · Split
| @@ -929,6 +929,26 @@ static int addend_386_rel(struct elf_info *elf, int rsection, Elf_Rela *r) · 928 unmodified lines | ||
| 929 | 929 | return 0; |
| 930 | 930 | } |
| 931 | 931 | |
| 932 | +static int addend_arm_rel(struct elf_info *elf, int rsection, Elf_Rela *r) | |
| 933 | +{ | |
| 934 | + unsigned int r_typ = ELF_R_TYPE(r->r_info); | |
| 935 | + | |
| 936 | + switch (r_typ) { | |
| 937 | + case R_ARM_ABS32: | |
| 938 | + /* From ARM ABI: (S + A) | T */ | |
| 939 | + r->r_addend = (int)(long)(elf->symtab_start + ELF_R_SYM(r->r_info)); | |
| 940 | + break; | |
| 941 | + case R_ARM_PC24: | |
| 942 | + /* From ARM ABI: ((S + A) | T) - P */ | |
| 943 | + r->r_addend = (int)(long)(elf->hdr + elf->sechdrs[rsection].sh_offset + | |
| 944 | + (r->r_offset - elf->sechdrs[rsection].sh_addr)); | |
| 945 | + break; | |
| 946 | + default: | |
| 947 | + return 1; | |
| 948 | + } | |
| 949 | + return 0; | |
| 950 | +} | |
| 951 | + | |
| 932 | 952 | static int addend_mips_rel(struct elf_info *elf, int rsection, Elf_Rela *r) |
| 933 | 953 | { |
| 934 | 954 | unsigned int r_typ = ELF_R_TYPE(r->r_info); |
| @@ -1051,6 +1071,10 @@ static void check_sec_ref(struct module *mod, const char *modname, · 116 unmodified lines | ||
| 1051 | 1071 | if (addend_386_rel(elf, i, &r)) |
| 1052 | 1072 | continue; |
| 1053 | 1073 | break; |
| 1074 | + case EM_ARM: | |
| 1075 | + if(addend_arm_rel(elf, i, &r)) | |
| 1076 | + continue; | |
| 1077 | + break; | |
| 1054 | 1078 | case EM_MIPS: |
| 1055 | 1079 | if (addend_mips_rel(elf, i, &r)) |
| 1056 | 1080 | continue; |