aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2004-10-26 16:05:42 +0000
committerNick Clifton <nickc@redhat.com>2004-10-26 16:05:42 +0000
commit1ec5cd372135a64c39eeaa32103cad2913e1754a (patch)
treef2db087789499a3b09664d70e14aac458ccc713a
parente7d6a6d283ab5d304e0b21f94e8912f8310e4eaa (diff)
downloadgdb-1ec5cd372135a64c39eeaa32103cad2913e1754a.zip
gdb-1ec5cd372135a64c39eeaa32103cad2913e1754a.tar.gz
gdb-1ec5cd372135a64c39eeaa32103cad2913e1754a.tar.bz2
readelf.c (get_note_type): Handle notes not in core files.
(process_note_sections): New function. (process_corefile_contents): Rename to ... (process_notes): ... this. (process_object): Call process_notes, not process_corefile_contents. doc/binutils.texi: Update readelf -n documentation.
-rw-r--r--binutils/ChangeLog10
-rw-r--r--binutils/Makefile.in142
-rw-r--r--binutils/doc/binutils.texi4
-rw-r--r--binutils/readelf.c118
4 files changed, 126 insertions, 148 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 136ca47..775b2e1 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,13 @@
+2004-10-26 Mark Mitchell <mark@codesourcery.com>
+
+ * readelf.c (get_note_type): Handle notes not in core files.
+ (process_note_sections): New function.
+ (process_corefile_contents): Rename to ...
+ (process_notes): ... this.
+ (process_object): Call process_notes, not
+ process_corefile_contents.
+ * doc/binutils.texi: Update readelf -n documentation.
+
2004-10-26 Jakub Jelinek <jakub@redhat.com>
* ar.c (extract_file): Set atime to mtime for ar xo.
diff --git a/binutils/Makefile.in b/binutils/Makefile.in
index ac37a3d..9412327 100644
--- a/binutils/Makefile.in
+++ b/binutils/Makefile.in
@@ -1,6 +1,6 @@
-# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
-# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -64,68 +64,23 @@ host_triplet = @host@
target_alias = @target_alias@
target_triplet = @target@
AR = @AR@
-AS = @AS@
BUILD_DLLTOOL = @BUILD_DLLTOOL@
BUILD_DLLWRAP = @BUILD_DLLWRAP@
BUILD_MISC = @BUILD_MISC@
BUILD_NLMCONV = @BUILD_NLMCONV@
BUILD_SRCONV = @BUILD_SRCONV@
BUILD_WINDRES = @BUILD_WINDRES@
-CATALOGS = @CATALOGS@
-CATOBJEXT = @CATOBJEXT@
CC = @CC@
-CPP = @CPP@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-DATADIRNAME = @DATADIRNAME@
DEMANGLER_NAME = @DEMANGLER_NAME@
-DLLTOOL = @DLLTOOL@
DLLTOOL_DEFS = @DLLTOOL_DEFS@
EMULATION = @EMULATION@
EMULATION_VECTOR = @EMULATION_VECTOR@
EXEEXT = @EXEEXT@
-GCJ = @GCJ@
-GCJFLAGS = @GCJFLAGS@
-GMOFILES = @GMOFILES@
-GMSGFMT = @GMSGFMT@
-GNATBIND = @GNATBIND@
-GT_NO = @GT_NO@
-GT_YES = @GT_YES@
HDEFINES = @HDEFINES@
-INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@
-INSTOBJEXT = @INSTOBJEXT@
-INTLDEPS = @INTLDEPS@
-INTLOBJS = @INTLOBJS@
LIBTOOL = @LIBTOOL@
-LN = @LN@
-LN_S = @LN_S@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MKINSTALLDIRS = @MKINSTALLDIRS@
-MSGFMT = @MSGFMT@
NLMCONV_DEFS = @NLMCONV_DEFS@
-OBJDUMP = @OBJDUMP@
OBJDUMP_DEFS = @OBJDUMP_DEFS@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-POFILES = @POFILES@
-POSUB = @POSUB@
RANLIB = @RANLIB@
-STRIP = @STRIP@
-USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
-USE_NLS = @USE_NLS@
-VERSION = @VERSION@
-bfdincludedir = @bfdincludedir@
-bfdlibdir = @bfdlibdir@
-build_noncanonical = @build_noncanonical@
-build_subdir = @build_subdir@
-do_compare = @do_compare@
-host_noncanonical = @host_noncanonical@
-host_subdir = @host_subdir@
-l = @l@
-ncn_cv_ = @ncn_cv_@
-target_noncanonical = @target_noncanonical@
-target_subdir = @target_subdir@
INTLLIBS = @INTLLIBS@
@@ -329,7 +284,6 @@ DISTCLEANFILES = sysinfo sysroff.c sysroff.h \
MOSTLYCLEANFILES = sysinfo binutils.log binutils.sum abcdefgh*
CLEANFILES = dep.sed DEP DEPA DEP1 DEP2
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs
CONFIG_HEADER = config.h
CONFIG_CLEAN_FILES =
@@ -345,96 +299,77 @@ DEFS = @DEFS@ -I. -I$(srcdir) -I.
CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
-nlmconv_OBJECTS = nlmconv.$(OBJEXT) nlmheader.$(OBJEXT) \
-bucomm.$(OBJEXT) version.$(OBJEXT) filemode.$(OBJEXT)
+nlmconv_OBJECTS = nlmconv.o nlmheader.o bucomm.o version.o filemode.o
nlmconv_LDADD = $(LDADD)
nlmconv_DEPENDENCIES = ../bfd/libbfd.la ../libiberty/libiberty.a
nlmconv_LDFLAGS =
-srconv_OBJECTS = srconv.$(OBJEXT) coffgrok.$(OBJEXT) bucomm.$(OBJEXT) \
-version.$(OBJEXT) filemode.$(OBJEXT)
+srconv_OBJECTS = srconv.o coffgrok.o bucomm.o version.o filemode.o
srconv_LDADD = $(LDADD)
srconv_DEPENDENCIES = ../bfd/libbfd.la ../libiberty/libiberty.a
srconv_LDFLAGS =
-sysdump_OBJECTS = sysdump.$(OBJEXT) bucomm.$(OBJEXT) version.$(OBJEXT) \
-filemode.$(OBJEXT)
+sysdump_OBJECTS = sysdump.o bucomm.o version.o filemode.o
sysdump_LDADD = $(LDADD)
sysdump_DEPENDENCIES = ../bfd/libbfd.la ../libiberty/libiberty.a
sysdump_LDFLAGS =
-coffdump_OBJECTS = coffdump.$(OBJEXT) coffgrok.$(OBJEXT) \
-bucomm.$(OBJEXT) version.$(OBJEXT) filemode.$(OBJEXT)
+coffdump_OBJECTS = coffdump.o coffgrok.o bucomm.o version.o filemode.o
coffdump_LDADD = $(LDADD)
coffdump_DEPENDENCIES = ../bfd/libbfd.la ../libiberty/libiberty.a
coffdump_LDFLAGS =
-dlltool_OBJECTS = dlltool.$(OBJEXT) defparse.$(OBJEXT) deflex.$(OBJEXT) \
-bucomm.$(OBJEXT) version.$(OBJEXT) filemode.$(OBJEXT)
+dlltool_OBJECTS = dlltool.o defparse.o deflex.o bucomm.o version.o \
+filemode.o
dlltool_DEPENDENCIES = ../bfd/libbfd.la ../libiberty/libiberty.a
dlltool_LDFLAGS =
-windres_OBJECTS = windres.$(OBJEXT) resrc.$(OBJEXT) rescoff.$(OBJEXT) \
-resbin.$(OBJEXT) rcparse.$(OBJEXT) rclex.$(OBJEXT) winduni.$(OBJEXT) \
-resres.$(OBJEXT) bucomm.$(OBJEXT) version.$(OBJEXT) filemode.$(OBJEXT)
+windres_OBJECTS = windres.o resrc.o rescoff.o resbin.o rcparse.o \
+rclex.o winduni.o resres.o bucomm.o version.o filemode.o
windres_DEPENDENCIES = ../bfd/libbfd.la ../libiberty/libiberty.a
windres_LDFLAGS =
-dllwrap_OBJECTS = dllwrap.$(OBJEXT) version.$(OBJEXT)
+dllwrap_OBJECTS = dllwrap.o version.o
dllwrap_DEPENDENCIES = ../libiberty/libiberty.a
dllwrap_LDFLAGS =
-size_OBJECTS = size.$(OBJEXT) bucomm.$(OBJEXT) version.$(OBJEXT) \
-filemode.$(OBJEXT)
+size_OBJECTS = size.o bucomm.o version.o filemode.o
size_LDADD = $(LDADD)
size_DEPENDENCIES = ../bfd/libbfd.la ../libiberty/libiberty.a
size_LDFLAGS =
-objdump_OBJECTS = objdump.$(OBJEXT) budemang.$(OBJEXT) prdbg.$(OBJEXT) \
-rddbg.$(OBJEXT) debug.$(OBJEXT) stabs.$(OBJEXT) ieee.$(OBJEXT) \
-rdcoff.$(OBJEXT) bucomm.$(OBJEXT) version.$(OBJEXT) filemode.$(OBJEXT)
+objdump_OBJECTS = objdump.o budemang.o prdbg.o rddbg.o debug.o stabs.o \
+ieee.o rdcoff.o bucomm.o version.o filemode.o
objdump_DEPENDENCIES = ../opcodes/libopcodes.la ../bfd/libbfd.la \
../libiberty/libiberty.a
objdump_LDFLAGS =
-ar_OBJECTS = arparse.$(OBJEXT) arlex.$(OBJEXT) ar.$(OBJEXT) \
-not-ranlib.$(OBJEXT) arsup.$(OBJEXT) rename.$(OBJEXT) binemul.$(OBJEXT) \
-emul_$(EMULATION).$(OBJEXT) bucomm.$(OBJEXT) version.$(OBJEXT) \
-filemode.$(OBJEXT)
+ar_OBJECTS = arparse.o arlex.o ar.o not-ranlib.o arsup.o rename.o \
+binemul.o emul_$(EMULATION).o bucomm.o version.o filemode.o
ar_DEPENDENCIES = ../bfd/libbfd.la ../libiberty/libiberty.a
ar_LDFLAGS =
-strings_OBJECTS = strings.$(OBJEXT) bucomm.$(OBJEXT) version.$(OBJEXT) \
-filemode.$(OBJEXT)
+strings_OBJECTS = strings.o bucomm.o version.o filemode.o
strings_LDADD = $(LDADD)
strings_DEPENDENCIES = ../bfd/libbfd.la ../libiberty/libiberty.a
strings_LDFLAGS =
-ranlib_OBJECTS = ar.$(OBJEXT) is-ranlib.$(OBJEXT) arparse.$(OBJEXT) \
-arlex.$(OBJEXT) arsup.$(OBJEXT) rename.$(OBJEXT) binemul.$(OBJEXT) \
-emul_$(EMULATION).$(OBJEXT) bucomm.$(OBJEXT) version.$(OBJEXT) \
-filemode.$(OBJEXT)
+ranlib_OBJECTS = ar.o is-ranlib.o arparse.o arlex.o arsup.o rename.o \
+binemul.o emul_$(EMULATION).o bucomm.o version.o filemode.o
ranlib_DEPENDENCIES = ../bfd/libbfd.la ../libiberty/libiberty.a
ranlib_LDFLAGS =
-objcopy_OBJECTS = objcopy.$(OBJEXT) not-strip.$(OBJEXT) \
-rename.$(OBJEXT) rddbg.$(OBJEXT) debug.$(OBJEXT) stabs.$(OBJEXT) \
-ieee.$(OBJEXT) rdcoff.$(OBJEXT) wrstabs.$(OBJEXT) bucomm.$(OBJEXT) \
-version.$(OBJEXT) filemode.$(OBJEXT)
+objcopy_OBJECTS = objcopy.o not-strip.o rename.o rddbg.o debug.o \
+stabs.o ieee.o rdcoff.o wrstabs.o bucomm.o version.o filemode.o
objcopy_LDADD = $(LDADD)
objcopy_DEPENDENCIES = ../bfd/libbfd.la ../libiberty/libiberty.a
objcopy_LDFLAGS =
-addr2line_OBJECTS = addr2line.$(OBJEXT) budemang.$(OBJEXT) \
-bucomm.$(OBJEXT) version.$(OBJEXT) filemode.$(OBJEXT)
+addr2line_OBJECTS = addr2line.o budemang.o bucomm.o version.o \
+filemode.o
addr2line_LDADD = $(LDADD)
addr2line_DEPENDENCIES = ../bfd/libbfd.la ../libiberty/libiberty.a
addr2line_LDFLAGS =
-readelf_OBJECTS = readelf.$(OBJEXT) version.$(OBJEXT) \
-unwind-ia64.$(OBJEXT)
+readelf_OBJECTS = readelf.o version.o unwind-ia64.o
readelf_DEPENDENCIES = ../libiberty/libiberty.a
readelf_LDFLAGS =
-nm_new_OBJECTS = nm.$(OBJEXT) budemang.$(OBJEXT) bucomm.$(OBJEXT) \
-version.$(OBJEXT) filemode.$(OBJEXT)
+nm_new_OBJECTS = nm.o budemang.o bucomm.o version.o filemode.o
nm_new_LDADD = $(LDADD)
nm_new_DEPENDENCIES = ../bfd/libbfd.la ../libiberty/libiberty.a
nm_new_LDFLAGS =
-strip_new_OBJECTS = objcopy.$(OBJEXT) is-strip.$(OBJEXT) \
-rename.$(OBJEXT) rddbg.$(OBJEXT) debug.$(OBJEXT) stabs.$(OBJEXT) \
-ieee.$(OBJEXT) rdcoff.$(OBJEXT) wrstabs.$(OBJEXT) bucomm.$(OBJEXT) \
-version.$(OBJEXT) filemode.$(OBJEXT)
+strip_new_OBJECTS = objcopy.o is-strip.o rename.o rddbg.o debug.o \
+stabs.o ieee.o rdcoff.o wrstabs.o bucomm.o version.o filemode.o
strip_new_LDADD = $(LDADD)
strip_new_DEPENDENCIES = ../bfd/libbfd.la ../libiberty/libiberty.a
strip_new_LDFLAGS =
-cxxfilt_OBJECTS = cxxfilt.$(OBJEXT) bucomm.$(OBJEXT) version.$(OBJEXT) \
-filemode.$(OBJEXT)
+cxxfilt_OBJECTS = cxxfilt.o bucomm.o version.o filemode.o
cxxfilt_LDADD = $(LDADD)
cxxfilt_DEPENDENCIES = ../bfd/libbfd.la ../libiberty/libiberty.a
cxxfilt_LDFLAGS =
@@ -447,20 +382,23 @@ LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $
CCLD = $(CC)
LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
DIST_COMMON = README ./stamp-h.in ChangeLog Makefile.am Makefile.in \
-NEWS acinclude.m4 aclocal.m4 arlex.c arparse.c config.in configure \
-configure.in deflex.c defparse.c nlmheader.c rclex.c rcparse.c
+NEWS acinclude.m4 arlex.c arparse.c config.in configure configure.in \
+deflex.c defparse.c nlmheader.c rclex.c rcparse.c
+
+PACKAGE = @PACKAGE@
+VERSION = @VERSION@
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-TAR = tar
+TAR = gtar
GZIP_ENV = --best
SOURCES = $(nlmconv_SOURCES) $(srconv_SOURCES) $(sysdump_SOURCES) $(coffdump_SOURCES) $(dlltool_SOURCES) $(windres_SOURCES) $(dllwrap_SOURCES) $(size_SOURCES) $(objdump_SOURCES) $(ar_SOURCES) $(strings_SOURCES) $(ranlib_SOURCES) $(objcopy_SOURCES) $(addr2line_SOURCES) $(readelf_SOURCES) $(nm_new_SOURCES) $(strip_new_SOURCES) $(cxxfilt_SOURCES)
OBJECTS = $(nlmconv_OBJECTS) $(srconv_OBJECTS) $(sysdump_OBJECTS) $(coffdump_OBJECTS) $(dlltool_OBJECTS) $(windres_OBJECTS) $(dllwrap_OBJECTS) $(size_OBJECTS) $(objdump_OBJECTS) $(ar_OBJECTS) $(strings_OBJECTS) $(ranlib_OBJECTS) $(objcopy_OBJECTS) $(addr2line_OBJECTS) $(readelf_OBJECTS) $(nm_new_OBJECTS) $(strip_new_OBJECTS) $(cxxfilt_OBJECTS)
all: all-redirect
.SUFFIXES:
-.SUFFIXES: .S .c .l .lo .o .obj .s .y
+.SUFFIXES: .S .c .l .lo .o .s .y
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile
@@ -541,11 +479,6 @@ maintainer-clean-noinstPROGRAMS:
.c.o:
$(COMPILE) -c $<
-# FIXME: We should only use cygpath when building on Windows,
-# and only if it is available.
-.c.obj:
- $(COMPILE) -c `cygpath -w $<`
-
.s.o:
$(COMPILE) -c $<
@@ -554,7 +487,6 @@ maintainer-clean-noinstPROGRAMS:
mostlyclean-compile:
-rm -f *.o core *.core
- -rm -f *.$(OBJEXT)
clean-compile:
@@ -699,7 +631,7 @@ maintainer-clean-recursive:
dot_seen=no; \
rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
rev="$$subdir $$rev"; \
- test "$$subdir" != "." || dot_seen=yes; \
+ test "$$subdir" = "." && dot_seen=yes; \
done; \
test "$$dot_seen" = "no" && rev=". $$rev"; \
target=`echo $@ | sed s/-recursive//`; \
@@ -881,7 +813,7 @@ distclean-generic:
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
- -test -z "arlex.cdeflex.crclex.carparse.harparse.cdefparse.hdefparse.cnlmheader.hnlmheader.crcparse.hrcparse.c" || rm -f arlex.c deflex.c rclex.c arparse.h arparse.c defparse.h defparse.c nlmheader.h nlmheader.c rcparse.h rcparse.c
+ -test -z "arlexldeflexlrclexlarparseharparsecdefparsehdefparsecnlmheaderhnlmheadercrcparsehrcparsec" || rm -f arlexl deflexl rclexl arparseh arparsec defparseh defparsec nlmheaderh nlmheaderc rcparseh rcparsec
mostlyclean-am: mostlyclean-hdr mostlyclean-binPROGRAMS \
mostlyclean-noinstPROGRAMS mostlyclean-compile \
mostlyclean-libtool mostlyclean-tags \
diff --git a/binutils/doc/binutils.texi b/binutils/doc/binutils.texi
index 97a6538..f2cd2d1 100644
--- a/binutils/doc/binutils.texi
+++ b/binutils/doc/binutils.texi
@@ -3225,8 +3225,8 @@ Display all the headers in the file. Equivalent to @option{-h -l -S}.
@item -n
@itemx --notes
-@cindex ELF core notes
-Displays the contents of the NOTE segment, if it exists.
+@cindex ELF notes
+Displays the contents of the NOTE segments and/or sections, if any.
@item -r
@itemx --relocs
diff --git a/binutils/readelf.c b/binutils/readelf.c
index 7944c2a..a1dd71b 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -10348,24 +10348,49 @@ get_note_type (unsigned e_type)
{
static char buff[64];
- switch (e_type)
- {
- case NT_AUXV: return _("NT_AUXV (auxiliary vector)");
- case NT_PRSTATUS: return _("NT_PRSTATUS (prstatus structure)");
- case NT_FPREGSET: return _("NT_FPREGSET (floating point registers)");
- case NT_PRPSINFO: return _("NT_PRPSINFO (prpsinfo structure)");
- case NT_TASKSTRUCT: return _("NT_TASKSTRUCT (task structure)");
- case NT_PRXFPREG: return _("NT_PRXFPREG (user_xfpregs structure)");
- case NT_PSTATUS: return _("NT_PSTATUS (pstatus structure)");
- case NT_FPREGS: return _("NT_FPREGS (floating point registers)");
- case NT_PSINFO: return _("NT_PSINFO (psinfo structure)");
- case NT_LWPSTATUS: return _("NT_LWPSTATUS (lwpstatus_t structure)");
- case NT_LWPSINFO: return _("NT_LWPSINFO (lwpsinfo_t structure)");
- case NT_WIN32PSTATUS: return _("NT_WIN32PSTATUS (win32_pstatus structure)");
- default:
- sprintf (buff, _("Unknown note type: (0x%08x)"), e_type);
- return buff;
- }
+ if (elf_header.e_type == ET_CORE)
+ switch (e_type)
+ {
+ case NT_AUXV:
+ return _("NT_AUXV (auxiliary vector)");
+ case NT_PRSTATUS:
+ return _("NT_PRSTATUS (prstatus structure)");
+ case NT_FPREGSET:
+ return _("NT_FPREGSET (floating point registers)");
+ case NT_PRPSINFO:
+ return _("NT_PRPSINFO (prpsinfo structure)");
+ case NT_TASKSTRUCT:
+ return _("NT_TASKSTRUCT (task structure)");
+ case NT_PRXFPREG:
+ return _("NT_PRXFPREG (user_xfpregs structure)");
+ case NT_PSTATUS:
+ return _("NT_PSTATUS (pstatus structure)");
+ case NT_FPREGS:
+ return _("NT_FPREGS (floating point registers)");
+ case NT_PSINFO:
+ return _("NT_PSINFO (psinfo structure)");
+ case NT_LWPSTATUS:
+ return _("NT_LWPSTATUS (lwpstatus_t structure)");
+ case NT_LWPSINFO:
+ return _("NT_LWPSINFO (lwpsinfo_t structure)");
+ case NT_WIN32PSTATUS:
+ return _("NT_WIN32PSTATUS (win32_pstatus structure)");
+ default:
+ break;
+ }
+ else
+ switch (e_type)
+ {
+ case NT_VERSION:
+ return _("NT_VERSION (version)");
+ case NT_ARCH:
+ return _("NT_ARCH (architecture)");
+ default:
+ break;
+ }
+
+ sprintf (buff, _("Unknown note type: (0x%08x)"), e_type);
+ return buff;
}
static const char *
@@ -10440,22 +10465,18 @@ process_note (Elf_Internal_Note *pnote)
const char *nt;
if (pnote->namesz == 0)
- {
- /* If there is no note name, then use the default set of
- note type strings. */
- nt = get_note_type (pnote->type);
- }
+ /* If there is no note name, then use the default set of
+ note type strings. */
+ nt = get_note_type (pnote->type);
+
else if (strncmp (pnote->namedata, "NetBSD-CORE", 11) == 0)
- {
- /* NetBSD-specific core file notes. */
- nt = get_netbsd_elfcore_note_type (pnote->type);
- }
+ /* NetBSD-specific core file notes. */
+ nt = get_netbsd_elfcore_note_type (pnote->type);
+
else
- {
- /* Don't recognize this note name; just use the default set of
- note type strings. */
+ /* Don't recognize this note name; just use the default set of
+ note type strings. */
nt = get_note_type (pnote->type);
- }
printf (" %s\t\t0x%08lx\t%s\n",
pnote->namesz ? pnote->namedata : "(NONE)",
@@ -10570,24 +10591,39 @@ process_corefile_note_segments (FILE *file)
}
static int
-process_corefile_contents (FILE *file)
+process_note_sections (FILE *file)
+{
+ Elf_Internal_Shdr *section;
+ unsigned long i;
+ int res = 1;
+
+ for (i = 0, section = section_headers;
+ i < elf_header.e_shnum;
+ i++, section++)
+ if (section->sh_type == SHT_NOTE)
+ res &= process_corefile_note_segment (file,
+ (bfd_vma) section->sh_offset,
+ (bfd_vma) section->sh_size);
+
+ return res;
+}
+
+static int
+process_notes (FILE *file)
{
/* If we have not been asked to display the notes then do nothing. */
if (! do_notes)
return 1;
- /* If file is not a core file then exit. */
if (elf_header.e_type != ET_CORE)
- return 1;
+ return process_note_sections (file);
/* No program headers means no NOTE segment. */
- if (elf_header.e_phnum == 0)
- {
- printf (_("No note segments present in the core file.\n"));
- return 1;
- }
+ if (elf_header.e_phnum > 0)
+ return process_corefile_note_segments (file);
- return process_corefile_note_segments (file);
+ printf (_("No note segments present in the core file.\n"));
+ return 1;
}
static int
@@ -10756,7 +10792,7 @@ process_object (char *file_name, FILE *file)
process_section_contents (file);
- process_corefile_contents (file);
+ process_notes (file);
process_gnu_liblist (file);