Subversion Repositories HelenOS

Rev

Rev 2980 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2980 Rev 2982
Line 85... Line 85...
85
            sym->st_size);
85
            sym->st_size);
86
 
86
 
87
        rel_type = ELF32_R_TYPE(r_info);
87
        rel_type = ELF32_R_TYPE(r_info);
88
        r_ptr = (uint32_t *)(r_offset + m->bias);
88
        r_ptr = (uint32_t *)(r_offset + m->bias);
89
 
89
 
-
 
90
        if (sym->st_name != 0) {
90
        printf("rel_type: %x, rel_offset: 0x%x\n", rel_type, r_offset);
91
            printf("rel_type: %x, rel_offset: 0x%x\n", rel_type, r_offset);
91
        sym_def = symbol_def_find(str_tab + sym->st_name, &dest);
92
            sym_def = symbol_def_find(str_tab + sym->st_name, &dest);
92
        printf("dest name: '%s'\n", dest->dyn.soname);
93
            printf("dest name: '%s'\n", dest->dyn.soname);
93
        printf("dest bias: 0x%x\n", dest->bias);
94
            printf("dest bias: 0x%x\n", dest->bias);
94
        if (sym_def) {
95
            if (sym_def) {
95
            sym_addr = sym_def->st_value + dest->bias;
96
                sym_addr = sym_def->st_value + dest->bias;
96
            printf("symbol definition found, addr=0x%x\n", sym_addr);
97
                printf("symbol definition found, addr=0x%x\n", sym_addr);
97
        } else {
98
            } else {
98
            printf("symbol definition not found\n");
99
                printf("symbol definition not found\n");
99
            continue;
100
                continue;
-
 
101
            }
100
        }
102
        }
101
 
103
 
102
        switch (rel_type) {
104
        switch (rel_type) {
103
        case R_386_GLOB_DAT:
105
        case R_386_GLOB_DAT:
104
        case R_386_JUMP_SLOT:
106
        case R_386_JUMP_SLOT: