X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=binutils%2Freadelf.c;h=2c53b460d43d47da71d7e539d4603076e73331f7;hb=ca47b30c873c5b07e3c3b1a4be34d9618ce5d7fe;hp=0c8feb537a1313a6bb9743b169b1df038697439d;hpb=7bea2f730c47a5b0bf69bd60b88dcffc9d442d6a;p=deliverable%2Fbinutils-gdb.git diff --git a/binutils/readelf.c b/binutils/readelf.c index 0c8feb537a..2c53b460d4 100644 --- a/binutils/readelf.c +++ b/binutils/readelf.c @@ -1,5 +1,5 @@ /* readelf.c -- display contents of an ELF format file - Copyright (C) 1998, 1999 Free Software Foundation, Inc. + Copyright (C) 1998, 99, 2000 Free Software Foundation, Inc. Originally developed by Eric Youngdale Modifications by Nick Clifton @@ -1059,7 +1059,7 @@ get_dynamic_type (type) case DT_FINI_ARRAYSZ: return "FINI_ARRAYSZ"; case DT_RUNPATH: return "RUNPATH"; case DT_FLAGS: return "FLAGS"; - case DT_ENCODING: return "ENCODING"; + case DT_PREINIT_ARRAY: return "PREINIT_ARRAY"; case DT_PREINIT_ARRAYSZ: return "PREINIT_ARRAYSZ"; @@ -1180,7 +1180,7 @@ get_machine_name (e_machine) case EM_486: return "Intel 80486"; case EM_860: return "Intel 80860"; case EM_MIPS: return "MIPS R3000"; - case EM_S370: return "Amdahl"; + case EM_S370: return "IBM System/370"; case EM_MIPS_RS4_BE: return "MIPS R4000 big-endian"; case EM_OLD_SPARCV9: return "Sparc v9 (old)"; case EM_PARISC: return "HPPA"; @@ -1934,6 +1934,7 @@ get_osabi_name (osabi) case ELFOSABI_SYSV: return _("UNIX - System V"); case ELFOSABI_HPUX: return _("UNIX - HP-UX"); case ELFOSABI_STANDALONE: return _("Standalone App"); + case ELFOSABI_ARM: return _("ARM"); default: sprintf (buff, _(""), osabi); return buff; @@ -2998,9 +2999,10 @@ get_dynamic_flags (flags) case DF_SYMBOLIC: strcat (buff, "SYMBOLIC "); break; case DF_TEXTREL: strcat (buff, "TEXTREL "); break; case DF_BIND_NOW: strcat (buff, "BIND_NOW "); break; - default: strcat (buff, "unknown "); return; + default: strcat (buff, "unknown "); break; } } + return buff; } /* Parse and display the contents of the dynamic segment. */ @@ -3177,7 +3179,7 @@ process_dynamic_segment (file) { case DT_FLAGS: if (do_dynamic) - printf (get_dynamic_flags (entry->d_un.d_val)); + printf ("%s", get_dynamic_flags (entry->d_un.d_val)); break; case DT_AUXILIARY: @@ -3737,6 +3739,7 @@ process_version_sections (file) for (cnt = 0; cnt < total; cnt += 4) { int j, nn; + char *name; printf (" %03x:", cnt); @@ -3797,10 +3800,10 @@ process_version_sections (file) { ivna.vna_name = BYTE_GET (evna.vna_name); + name = strtab + ivna.vna_name; nn += printf ("(%s%-*s", - strtab + ivna.vna_name, - 12 - strlen (strtab - + ivna.vna_name), + name, + 12 - (int) strlen (name), ")"); break; } @@ -3843,12 +3846,11 @@ process_version_sections (file) ivda.vda_name = BYTE_GET (evda.vda_name); + name = strtab + ivda.vda_name; nn += printf ("(%s%-*s", - strtab + ivda.vda_name, - 12 - - strlen (strtab - + ivda.vda_name), + name, + 12 - (int) strlen (name), ")"); } } @@ -3899,10 +3901,10 @@ process_version_sections (file) { ivna.vna_name = BYTE_GET (evna.vna_name); + name = strtab + ivna.vna_name; nn += printf ("(%s%-*s", - strtab + ivna.vna_name, - 12 - strlen (strtab - + ivna.vna_name), + name, + 12 - (int) strlen (name), ")"); break; } @@ -3944,10 +3946,10 @@ process_version_sections (file) ivda.vda_name = BYTE_GET (evda.vda_name); + name = strtab + ivda.vda_name; nn += printf ("(%s%-*s", - strtab + ivda.vda_name, - 12 - strlen (strtab - + ivda.vda_name), + name, + 12 - (int) strlen (name), ")"); } } @@ -4178,9 +4180,9 @@ process_symbol_table (file) printf (_("\nSymbol table for image:\n")); if (is_32bit_elf) - printf (_(" Num Buc: Value Size Type Bind Vis Ot Ndx Name\n")); + printf (_(" Num Buc: Value Size Type Bind Vis Ndx Name\n")); else - printf (_(" Num Buc: Value Size Type Bind Vis Ot Ndx Name\n")); + printf (_(" Num Buc: Value Size Type Bind Vis Ndx Name\n")); for (hn = 0; hn < nbuckets; hn++) { @@ -4201,7 +4203,6 @@ process_symbol_table (file) printf (" %6s", get_symbol_type (ELF_ST_TYPE (psym->st_info))); printf (" %6s", get_symbol_binding (ELF_ST_BIND (psym->st_info))); printf (" %3s", get_symbol_visibility (ELF_ST_VISIBILITY (psym->st_other))); - printf (" %2d", ELF_ST_OTHER (psym->st_other)); printf (" %3.3s", get_symbol_index_type (psym->st_shndx)); printf (" %s\n", dynamic_strings + psym->st_name); } @@ -4229,9 +4230,9 @@ process_symbol_table (file) SECTION_NAME (section), (unsigned long) (section->sh_size / section->sh_entsize)); if (is_32bit_elf) - printf (_(" Num: Value Size Type Bind Vis Ot Ndx Name\n")); + printf (_(" Num: Value Size Type Bind Vis Ndx Name\n")); else - printf (_(" Num: Value Size Type Bind Vis Ot Ndx Name\n")); + printf (_(" Num: Value Size Type Bind Vis Ndx Name\n")); symtab = GET_ELF_SYMBOLS (file, section->sh_offset, section->sh_size / section->sh_entsize); @@ -4261,7 +4262,6 @@ process_symbol_table (file) printf (" %-7s", get_symbol_type (ELF_ST_TYPE (psym->st_info))); printf (" %-6s", get_symbol_binding (ELF_ST_BIND (psym->st_info))); printf (" %-3s", get_symbol_visibility (ELF_ST_VISIBILITY (psym->st_other))); - printf (" %2d", ELF_ST_OTHER (psym->st_other)); printf (" %4s", get_symbol_index_type (psym->st_shndx)); printf (" %s", strtab + psym->st_name); @@ -5964,7 +5964,7 @@ read_and_display_attr (attribute, form, data, pointer_size) case DW_FORM_ref_addr: case DW_FORM_addr: uvalue = byte_get (data, pointer_size); - printf (is_ref ? " <%x>" : " %#x", uvalue); + printf (is_ref ? " <%lx>" : " %#lx", uvalue); data += pointer_size; break; @@ -5972,21 +5972,21 @@ read_and_display_attr (attribute, form, data, pointer_size) case DW_FORM_flag: case DW_FORM_data1: uvalue = byte_get (data ++, 1); - printf (is_ref ? " <%x>" : " %d", uvalue); + printf (is_ref ? " <%lx>" : " %ld", uvalue); break; case DW_FORM_ref2: case DW_FORM_data2: uvalue = byte_get (data, 2); data += 2; - printf (is_ref ? " <%x>" : " %d", uvalue); + printf (is_ref ? " <%lx>" : " %ld", uvalue); break; case DW_FORM_ref4: case DW_FORM_data4: uvalue = byte_get (data, 4); data += 4; - printf (is_ref ? " <%x>" : " %d", uvalue); + printf (is_ref ? " <%lx>" : " %ld", uvalue); break; case DW_FORM_ref8: @@ -6609,7 +6609,8 @@ process_mips_specific (file) GET_DATA_ALLOC (liblist_offset, liblistno * sizeof (Elf32_External_Lib), elib, Elf32_External_Lib *, "liblist"); - printf ("\nSection '.liblist' contains %d entries:\n", liblistno); + printf ("\nSection '.liblist' contains %lu entries:\n", + (unsigned long) liblistno); fputs (" Library Time Stamp Checksum Version Flags\n", stdout); @@ -6627,7 +6628,7 @@ process_mips_specific (file) strftime (timebuf, 20, "%Y-%m-%dT%H:%M:%S", gmtime (&time)); - printf ("%3d: %-20s %s %#10lx %-7ld", cnt, + printf ("%3lu: %-20s %s %#10lx %-7ld", (unsigned long) cnt, dynamic_strings + liblist.l_name, timebuf, liblist.l_checksum, liblist.l_version); @@ -6911,7 +6912,7 @@ process_mips_specific (file) { Elf_Internal_Sym * psym = &dynamic_symbols[iconf[cnt]]; - printf ("%5u: %8lu ", cnt, iconf[cnt]); + printf ("%5lu: %8lu ", (unsigned long) cnt, iconf[cnt]); print_vma (psym->st_value, FULL_HEX); printf (" %s\n", dynamic_strings + psym->st_name); } @@ -6980,7 +6981,9 @@ process_corefile_note_segment (file, offset, length) external = pnotes; - printf (_("\nNotes at offset 0x%08lx with length 0x%08lx:\n"), offset, length); + printf (_("\nNotes at offset 0x%08lx with length 0x%08lx:\n"), + (unsigned long) offset, + (unsigned long) length); printf (_(" Owner\t\tData size\tDescription\n")); while (external < (Elf_External_Note *)((char *) pnotes + length))