[BACK]Return to elf.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / nm

Diff for /src/usr.bin/nm/elf.c between version 1.36 and 1.37

version 1.36, 2017/12/09 06:39:04 version 1.37, 2018/12/14 19:56:02
Line 51 
Line 51 
 #define swap_quarter    swap16  #define swap_quarter    swap16
 #define elf_fix_header  elf32_fix_header  #define elf_fix_header  elf32_fix_header
 #define elf_load_shdrs  elf32_load_shdrs  #define elf_load_shdrs  elf32_load_shdrs
 #define elf_load_phdrs  elf32_load_phdrs  
 #define elf_fix_shdrs   elf32_fix_shdrs  #define elf_fix_shdrs   elf32_fix_shdrs
 #define elf_fix_phdrs   elf32_fix_phdrs  
 #define elf_fix_sym     elf32_fix_sym  #define elf_fix_sym     elf32_fix_sym
 #define elf_size        elf32_size  #define elf_size        elf32_size
 #define elf_symloadx    elf32_symloadx  #define elf_symloadx    elf32_symloadx
Line 76 
Line 74 
 #define swap_quarter    swap16  #define swap_quarter    swap16
 #define elf_fix_header  elf64_fix_header  #define elf_fix_header  elf64_fix_header
 #define elf_load_shdrs  elf64_load_shdrs  #define elf_load_shdrs  elf64_load_shdrs
 #define elf_load_phdrs  elf64_load_phdrs  
 #define elf_fix_shdrs   elf64_fix_shdrs  #define elf_fix_shdrs   elf64_fix_shdrs
 #define elf_fix_phdrs   elf64_fix_phdrs  
 #define elf_fix_sym     elf64_fix_sym  #define elf_fix_sym     elf64_fix_sym
 #define elf_size        elf64_size  #define elf_size        elf64_size
 #define elf_symloadx    elf64_symloadx  #define elf_symloadx    elf64_symloadx
Line 115 
Line 111 
 #define STT_PARISC_MILLI        STT_LOPROC + 0  #define STT_PARISC_MILLI        STT_LOPROC + 0
 #endif  #endif
   
 int elf_shn2type(Elf_Ehdr *, u_int, const char *);  
 int elf2nlist(Elf_Sym *, Elf_Ehdr *, Elf_Shdr *, char *, struct xnlist *);  
   
   static int elf_fix_header(Elf_Ehdr *);
   static int elf_fix_shdrs(Elf_Ehdr *, Elf_Shdr *);
   static int elf_fix_sym(Elf_Ehdr *, Elf_Sym *);
   static int elf_shn2type(Elf_Ehdr *, u_int _shn, const char *_sn);
   static int elf2nlist(Elf_Sym *, Elf_Ehdr *, Elf_Shdr *, char *_shstr,
               struct xnlist *_np);
   static int elf_symloadx(const char *_name, FILE *, off_t, Elf_Ehdr *,
               Elf_Shdr *, char *_shstr, long _shstrsize, struct xnlist **_pnames,
               struct xnlist ***_psnames, size_t *_pstabsize, int *_pnrawnames,
               const char *_strtab, const char *_symtab);
   
 int  int
 elf_fix_header(Elf_Ehdr *eh)  elf_fix_header(Elf_Ehdr *eh)
 {  {
Line 185 
Line 190 
         return (shdr);          return (shdr);
 }  }
   
 Elf_Phdr *  
 elf_load_phdrs(const char *name, FILE *fp, off_t foff, Elf_Ehdr *head)  
 {  
         Elf_Phdr *phdr;  
   
         if ((phdr = calloc(head->e_phentsize, head->e_phnum)) == NULL) {  
                 warn("%s: malloc phdr", name);  
                 return (NULL);  
         }  
   
         if (fseeko(fp, foff + head->e_phoff, SEEK_SET)) {  
                 warn("%s: fseeko", name);  
                 free(phdr);  
                 return (NULL);  
         }  
   
         if (fread(phdr, head->e_phentsize, head->e_phnum, fp) != head->e_phnum) {  
                 warnx("%s: premature EOF", name);  
                 free(phdr);  
                 return (NULL);  
         }  
   
         elf_fix_phdrs(head, phdr);  
         return (phdr);  
 }  
   
 int  int
 elf_fix_shdrs(Elf_Ehdr *eh, Elf_Shdr *shdr)  elf_fix_shdrs(Elf_Ehdr *eh, Elf_Shdr *shdr)
 {  {
Line 231 
Line 210 
                 shdr->sh_info = swap32(shdr->sh_info);                  shdr->sh_info = swap32(shdr->sh_info);
                 shdr->sh_addralign = swap_xword(shdr->sh_addralign);                  shdr->sh_addralign = swap_xword(shdr->sh_addralign);
                 shdr->sh_entsize = swap_xword(shdr->sh_entsize);                  shdr->sh_entsize = swap_xword(shdr->sh_entsize);
         }  
   
         return (1);  
 }  
   
 int  
 elf_fix_phdrs(Elf_Ehdr *eh, Elf_Phdr *phdr)  
 {  
         int i;  
   
         /* nothing to do */  
         if (eh->e_ident[EI_DATA] == ELF_TARG_DATA)  
                 return (0);  
   
         for (i = eh->e_phnum; i--; phdr++) {  
                 phdr->p_type = swap32(phdr->p_type);  
                 phdr->p_flags = swap32(phdr->p_flags);  
                 phdr->p_offset = swap_off(phdr->p_offset);  
                 phdr->p_vaddr = swap_addr(phdr->p_vaddr);  
                 phdr->p_paddr = swap_addr(phdr->p_paddr);  
                 phdr->p_filesz = swap_xword(phdr->p_filesz);  
                 phdr->p_memsz = swap_xword(phdr->p_memsz);  
                 phdr->p_align = swap_xword(phdr->p_align);  
         }          }
   
         return (1);          return (1);

Legend:
Removed from v.1.36  
changed lines
  Added in v.1.37