Rev 2996 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2996 | Rev 2998 | ||
---|---|---|---|
Line 97... | Line 97... | ||
97 | // printf("rel_type: %x, rel_offset: 0x%x\n", rel_type, r_offset); |
97 | // printf("rel_type: %x, rel_offset: 0x%x\n", rel_type, r_offset); |
98 | sym_def = symbol_def_find(str_tab + sym->st_name, &dest); |
98 | sym_def = symbol_def_find(str_tab + sym->st_name, &dest); |
99 | // printf("dest name: '%s'\n", dest->dyn.soname); |
99 | // printf("dest name: '%s'\n", dest->dyn.soname); |
100 | // printf("dest bias: 0x%x\n", dest->bias); |
100 | // printf("dest bias: 0x%x\n", dest->bias); |
101 | if (sym_def) { |
101 | if (sym_def) { |
102 | if (sym_def->st_shndx == SHN_ABS) { |
- | |
103 | /* Do not add bias to absolute symbols */ |
- | |
104 | sym_addr = sym_def->st_value; |
- | |
105 | } else { |
- | |
106 | sym_addr = sym_def->st_value + dest->bias; |
102 | sym_addr = symbol_get_addr(sym_def, dest); |
107 | } |
- | |
108 | // printf("symbol definition found, addr=0x%x\n", sym_addr); |
103 | // printf("symbol definition found, addr=0x%x\n", sym_addr); |
109 | } else { |
104 | } else { |
110 | printf("symbol definition not found\n"); |
105 | printf("symbol definition not found\n"); |
111 | continue; |
106 | continue; |
112 | } |
107 | } |