Show
Ignore:
Timestamp:
07/07/08 15:24:08 (5 months ago)
Author:
mwhitworth
Message:

Add support for TEXTREL and remapping text relocations.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • Whitix/trunk/user/linker/relocate.c

    r686 r740  
    235235        relocSize=resolve->dynamicInfo[DT_RELSZ]; 
    236236 
     237        /* May need to make text rewriteable before relocation */ 
     238        if (resolve->dynamicInfo[DT_TEXTREL]) 
     239        { 
     240                SysMemoryProtect(resolve->textAddr, resolve->textLength, 7); 
     241        } 
     242 
    237243        if (resolve->dynamicInfo[DT_REL] && !(resolve->initFlags & INIT_RELOCS_DONE)) 
    238244        { 
     
    255261                DlParseReloc(symbols,resolve->dynamicInfo[DT_JMPREL], resolve->dynamicInfo[DT_PLTRELSZ], DlDoLazyReloc); 
    256262                resolve->initFlags |= INIT_JMP_RELOCS_DONE; 
     263        } 
     264 
     265        /* May need to make text read-only again. */ 
     266        if (resolve->dynamicInfo[DT_TEXTREL]) 
     267        { 
     268                SysMemoryProtect(resolve->textAddr, resolve->textLength, 5); 
    257269        } 
    258270}