forked from mirrors/linux
		
	[ARM] 3205/1: Handle new EABI relocations when loading kernel modules.
Patch from Daniel Jacobowitz Handle new EABI relocations when loading kernel modules. This is necessary for CONFIG_AEABI kernels, and also for some broken (since fixed) old ABI toolchains. Signed-off-by: Daniel Jacobowitz <dan@codesourcery.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
		
							parent
							
								
									1ee9530a71
								
							
						
					
					
						commit
						c2e2611425
					
				
					 2 changed files with 4 additions and 0 deletions
				
			
		|  | @ -101,6 +101,8 @@ apply_relocate(Elf32_Shdr *sechdrs, const char *strtab, unsigned int symindex, | |||
| 			break; | ||||
| 
 | ||||
| 		case R_ARM_PC24: | ||||
| 		case R_ARM_CALL: | ||||
| 		case R_ARM_JUMP24: | ||||
| 			offset = (*(u32 *)loc & 0x00ffffff) << 2; | ||||
| 			if (offset & 0x02000000) | ||||
| 				offset -= 0x04000000; | ||||
|  |  | |||
|  | @ -22,6 +22,8 @@ typedef unsigned long elf_freg_t[3]; | |||
| #define R_ARM_NONE	0 | ||||
| #define R_ARM_PC24	1 | ||||
| #define R_ARM_ABS32	2 | ||||
| #define R_ARM_CALL	28 | ||||
| #define R_ARM_JUMP24	29 | ||||
| 
 | ||||
| #define ELF_NGREG (sizeof (struct pt_regs) / sizeof(elf_greg_t)) | ||||
| typedef elf_greg_t elf_gregset_t[ELF_NGREG]; | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Daniel Jacobowitz
						Daniel Jacobowitz