diff options
Diffstat (limited to 'binutils')
-rw-r--r-- | binutils/ChangeLog | 6 | ||||
-rw-r--r-- | binutils/readelf.c | 11 |
2 files changed, 16 insertions, 1 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 421a514..41dd004 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,9 @@ +2005-07-25 H.J. Lu <hongjiu.lu@intel.com> + + * readelf.c (dump_relocations): Handle SHN_X86_64_LCOMMON. + (get_symbol_index_type): Likewise. + (get_elf_section_flags): Handle SHF_X86_64_LARGE. + 2005-07-21 Eric Christopher <echristo@apple.com> * MAINTAINERS: Change affiliation. diff --git a/binutils/readelf.c b/binutils/readelf.c index 07493fe..8c1f6f6 100644 --- a/binutils/readelf.c +++ b/binutils/readelf.c @@ -1355,6 +1355,9 @@ dump_relocations (FILE *file, sec_name = "ABS"; else if (psym->st_shndx == SHN_COMMON) sec_name = "COMMON"; + else if (elf_header.e_machine == EM_X86_64 + && psym->st_shndx == SHN_X86_64_LCOMMON) + sec_name = "LARGE_COMMON"; else if (elf_header.e_machine == EM_IA_64 && elf_header.e_ident[EI_OSABI] == ELFOSABI_HPUX && psym->st_shndx == SHN_IA_64_ANSI_COMMON) @@ -3789,7 +3792,10 @@ get_elf_section_flags (bfd_vma sh_flags) case SHF_TLS: *p = 'T'; break; default: - if (flag & SHF_MASKOS) + if (elf_header.e_machine == EM_X86_64 + && flag == SHF_X86_64_LARGE) + *p = 'l'; + else if (flag & SHF_MASKOS) { *p = 'o'; sh_flags &= ~ SHF_MASKOS; @@ -6698,6 +6704,9 @@ get_symbol_index_type (unsigned int type) && elf_header.e_machine == EM_IA_64 && elf_header.e_ident[EI_OSABI] == ELFOSABI_HPUX) return "ANSI_COM"; + else if (elf_header.e_machine == EM_X86_64 + && type == SHN_X86_64_LCOMMON) + return "LARGE_COM"; else if (type >= SHN_LOPROC && type <= SHN_HIPROC) sprintf (buff, "PRC[0x%04x]", type); else if (type >= SHN_LOOS && type <= SHN_HIOS) |