Revision 3b46e624 linux-user/elfload.c

b/linux-user/elfload.c
695 695
        size *= n;
696 696
        if (size & 15)
697 697
            sp -= 16 - (size & 15);
698
       
698

  
699 699
#define NEW_AUX_ENT(id, val) do { \
700 700
            sp -= n; tputl(sp, val); \
701 701
            sp -= n; tputl(sp, id); \
......
833 833
		 elf_type,
834 834
		 interpreter_fd,
835 835
		 eppnt->p_offset - TARGET_ELF_PAGEOFFSET(eppnt->p_vaddr));
836
	   
836

  
837 837
	    if (error == -1) {
838 838
	      /* Real error */
839 839
	      close(interpreter_fd);
......
1199 1199
        int elf_prot = 0;
1200 1200
        int elf_flags = 0;
1201 1201
        unsigned long error;
1202
       
1202

  
1203 1203
	if (elf_ppnt->p_type != PT_LOAD)
1204 1204
            continue;
1205
       
1205

  
1206 1206
        if (elf_ppnt->p_flags & PF_R) elf_prot |= PROT_READ;
1207 1207
        if (elf_ppnt->p_flags & PF_W) elf_prot |= PROT_WRITE;
1208 1208
        if (elf_ppnt->p_flags & PF_X) elf_prot |= PROT_EXEC;
......
1224 1224
            }
1225 1225
            load_bias = TARGET_ELF_PAGESTART(error - elf_ppnt->p_vaddr);
1226 1226
        }
1227
       
1227

  
1228 1228
        error = target_mmap(TARGET_ELF_PAGESTART(load_bias + elf_ppnt->p_vaddr),
1229 1229
                            (elf_ppnt->p_filesz +
1230 1230
                             TARGET_ELF_PAGEOFFSET(elf_ppnt->p_vaddr)),
......
1242 1242
        if (TARGET_ELF_PAGESTART(elf_ppnt->p_vaddr) < elf_stack)
1243 1243
            elf_stack = TARGET_ELF_PAGESTART(elf_ppnt->p_vaddr);
1244 1244
#endif
1245
       
1245

  
1246 1246
        if (!load_addr_set) {
1247 1247
            load_addr_set = 1;
1248 1248
            load_addr = elf_ppnt->p_vaddr - elf_ppnt->p_offset;

Also available in: Unified diff