Bug #1765: Add support for R_ALPHA_SREL32 relocations in elfloader.
Originally Debian patch
    202_alpha_elfloader_support_R_ALPHA_SREL32.diff. (Falk Hueffner)
			
			
This commit is contained in:
		
							parent
							
								
									50cdff7ee2
								
							
						
					
					
						commit
						367b963b63
					
				|  | @ -1,4 +1,4 @@ | ||||||
| /* $XdotOrg: xc/programs/Xserver/hw/xfree86/loader/elfloader.c,v 1.2 2004/04/23 19:54:06 eich Exp $ */ | /* $XdotOrg: xc/programs/Xserver/hw/xfree86/loader/elfloader.c,v 1.3 2004/10/30 20:33:43 alanc Exp $ */ | ||||||
| /* $XFree86: xc/programs/Xserver/hw/xfree86/loader/elfloader.c,v 1.61tsi Exp $ */ | /* $XFree86: xc/programs/Xserver/hw/xfree86/loader/elfloader.c,v 1.61tsi Exp $ */ | ||||||
| 
 | 
 | ||||||
| /*
 | /*
 | ||||||
|  | @ -1609,6 +1609,20 @@ Elf_RelocateEntry(ELFModulePtr elffile, Elf_Word secn, Elf_Rel_t *rel, | ||||||
| 	    break; | 	    break; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  |  	case R_ALPHA_SREL32: | ||||||
|  |  	    { | ||||||
|  |  		dest32 = (unsigned int *)(secp + rel->r_offset); | ||||||
|  |  		symval += rel->r_addend; | ||||||
|  |  		symval -= (unsigned long) dest32; | ||||||
|  |  		if ((long)symval >= 0x80000000 | ||||||
|  |  		    || (long)symval < -(long)0x80000000) | ||||||
|  |  		    FatalError("R_ALPHA_SREL32 overflow for %s: %lx\n", | ||||||
|  |  			       ElfGetSymbolName(elffile, ELF_R_SYM(rel->r_info)), | ||||||
|  |  			       symval); | ||||||
|  |  		*dest32 = symval; | ||||||
|  |  		break; | ||||||
|  |  	    } | ||||||
|  |   | ||||||
| #endif /* alpha */ | #endif /* alpha */ | ||||||
| #if defined(__mc68000__) | #if defined(__mc68000__) | ||||||
|     case R_68K_32: |     case R_68K_32: | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue