Changeset 481 for Whitix/branches/hybrid

Show
Ignore:
Timestamp:
05/11/08 01:36:14 (4 months ago)
Author:
mwhitworth
Message:

Fix module relocation code.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • Whitix/branches/hybrid/kernel/module.c

    r480 r481  
    123123                } 
    124124 
    125                 if (symbol->symIndex > 0 && symbol->symIndex < 0xF000) 
    126                         *relAddr+=module->sectionHeaders[symbol->symIndex].shAddr-module->loadAddr; 
    127  
    128125                switch (ELF_R_TYPE(reloc->info)) 
    129126                { 
     
    132129 
    133130                        case R_386_32: 
    134                                 *relAddr+=module->loadAddr; 
    135                                 break; 
     131                        { 
     132                                if (symbol->symIndex == STN_UNDEF) 
     133                                        *relAddr+=symbolAddr; 
     134 
     135                                if (symbol->symIndex > 0 && symbol->symIndex < 0xF000) 
     136                                        *relAddr+=module->sectionHeaders[symbol->symIndex].shAddr; 
     137                        } 
     138                        break; 
    136139 
    137140                        case R_386_PC32: