History

kbuild: make better section mismatch reports on arm

With this change we can find more symbols hereby improving the readability of the warnings.

Sam Ravnborg committed 19 years ago

Commit 56a974f1 parent ae4ac121 file · +24 −0Browse files

Showing the changes to scripts (1 of 1 file). Show all

Unified · Split

scripts/mod/modpost.c+24−0
@@ -929,6 +929,26 @@ static int addend_386_rel(struct elf_info *elf, int rsection, Elf_Rela *r) · 928 unmodified lines
929929 return 0;
930930 }
931931
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+
932952 static int addend_mips_rel(struct elf_info *elf, int rsection, Elf_Rela *r)
933953 {
934954 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
10511071 if (addend_386_rel(elf, i, &r))
10521072 continue;
10531073 break;
1074+ case EM_ARM:
1075+ if(addend_arm_rel(elf, i, &r))
1076+ continue;
1077+ break;
10541078 case EM_MIPS:
10551079 if (addend_mips_rel(elf, i, &r))
10561080 continue;

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t