linux-user: ARM-FDPIC: Identify ARM FDPIC binaries
Define an ARM-specific version of elf_is_fdpic: FDPIC ELF objects are identified with e_ident[EI_OSABI] == ELFOSABI_ARM_FDPIC. Co-Authored-By: Mickaël Guêné <mickael.guene@st.com> Signed-off-by: Christophe Lyon <christophe.lyon@st.com> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Message-Id: <20180430080404.7323-3-christophe.lyon@st.com> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
This commit is contained in:
		
							parent
							
								
									a99856cd7f
								
							
						
					
					
						commit
						cf58affecc
					
				@ -1483,6 +1483,7 @@ typedef struct elf64_shdr {
 | 
				
			|||||||
#define ELFOSABI_TRU64          10      /* Compaq TRU64 UNIX.  */
 | 
					#define ELFOSABI_TRU64          10      /* Compaq TRU64 UNIX.  */
 | 
				
			||||||
#define ELFOSABI_MODESTO        11      /* Novell Modesto.  */
 | 
					#define ELFOSABI_MODESTO        11      /* Novell Modesto.  */
 | 
				
			||||||
#define ELFOSABI_OPENBSD        12      /* OpenBSD.  */
 | 
					#define ELFOSABI_OPENBSD        12      /* OpenBSD.  */
 | 
				
			||||||
 | 
					#define ELFOSABI_ARM_FDPIC      65      /* ARM FDPIC */
 | 
				
			||||||
#define ELFOSABI_ARM            97      /* ARM */
 | 
					#define ELFOSABI_ARM            97      /* ARM */
 | 
				
			||||||
#define ELFOSABI_STANDALONE     255     /* Standalone (embedded) application */
 | 
					#define ELFOSABI_STANDALONE     255     /* Standalone (embedded) application */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -1681,11 +1681,18 @@ static void zero_bss(abi_ulong elf_bss, abi_ulong last_bss, int prot)
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef TARGET_ARM
 | 
				
			||||||
 | 
					static int elf_is_fdpic(struct elfhdr *exec)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return exec->e_ident[EI_OSABI] == ELFOSABI_ARM_FDPIC;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
/* Default implementation, always false.  */
 | 
					/* Default implementation, always false.  */
 | 
				
			||||||
static int elf_is_fdpic(struct elfhdr *exec)
 | 
					static int elf_is_fdpic(struct elfhdr *exec)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    return 0;
 | 
					    return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static abi_ulong loader_build_fdpic_loadmap(struct image_info *info, abi_ulong sp)
 | 
					static abi_ulong loader_build_fdpic_loadmap(struct image_info *info, abi_ulong sp)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user