This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH v3 1/6] Add support to readelf for reading FreeBSD ELF core notes.
- From: Christophe Lyon <christophe dot lyon at linaro dot org>
- To: John Baldwin <jhb at freebsd dot org>
- Cc: gdb-patches at sourceware dot org, binutils at sourceware dot org
- Date: Tue, 19 Jan 2016 17:50:30 +0100
- Subject: Re: [PATCH v3 1/6] Add support to readelf for reading FreeBSD ELF core notes.
- Authentication-results: sourceware.org; auth=none
- References: <1453084047-16175-1-git-send-email-jhb at FreeBSD dot org> <1453084047-16175-2-git-send-email-jhb at FreeBSD dot org>
On 18 January 2016 at 03:27, John Baldwin <jhb@freebsd.org> wrote:
> binutils/ChangeLog:
>
> * readelf.c (get_freebsd_elfcore_note_type): New
> (process_note): Add support for FreeBSD core notes.
>
> include/ChangeLog:
>
> * elf/common.h (NT_FREEBSD_THRMISC): Define.
> (NT_FREEBSD_PROCSTAT_PROC): Define.
> (NT_FREEBSD_PROCSTAT_FILES): Define.
> (NT_FREEBSD_PROCSTAT_VMMAP): Define.
> (NT_FREEBSD_PROCSTAT_GROUPS): Define.
> (NT_FREEBSD_PROCSTAT_UMASK): Define.
> (NT_FREEBSD_PROCSTAT_RLIMIT): Define.
> (NT_FREEBSD_PROCSTAT_OSREL): Define.
> (NT_FREEBSD_PROCSTAT_PSSTRINGS): Define.
> (NT_FREEBSD_PROCSTAT_AUXV): Define.
> ---
> binutils/ChangeLog | 5 +++++
> binutils/readelf.c | 35 +++++++++++++++++++++++++++++++++++
> include/ChangeLog | 13 +++++++++++++
> include/elf/common.h | 14 ++++++++++++++
> 4 files changed, 67 insertions(+)
>
> diff --git a/binutils/ChangeLog b/binutils/ChangeLog
> index 21dcb2c..47773c9 100644
> --- a/binutils/ChangeLog
> +++ b/binutils/ChangeLog
> @@ -1,3 +1,8 @@
> +2016-01-09 John Baldwin <jhb@FreeBSD.org>
> +
> + * readelf.c (get_freebsd_elfcore_note_type): New
> + (process_note): Add support for FreeBSD core notes.
> +
> 2016-01-01 Alan Modra <amodra@gmail.com>
>
> Update year range in copyright notice of all files.
> diff --git a/binutils/readelf.c b/binutils/readelf.c
> index 47ac1ad..fa9cda1 100644
> --- a/binutils/readelf.c
> +++ b/binutils/readelf.c
> @@ -15388,6 +15388,37 @@ process_netbsd_elf_note (Elf_Internal_Note * pnote)
> }
>
> static const char *
> +get_freebsd_elfcore_note_type (unsigned e_type)
> +{
> + static char buff[64];
Hi,
This makes the build fail when using -Werror:
./../binutils/readelf.c: In function 'get_freebsd_elfcore_note_type':
../../binutils/readelf.c:15416:15: error: unused variable 'buff'
[-Werror=unused-variable]
static char buff[64];
Christophe.
> +
> + switch (e_type)
> + {
> + case NT_FREEBSD_THRMISC:
> + return _("NT_THRMISC (thrmisc structure)");
> + case NT_FREEBSD_PROCSTAT_PROC:
> + return _("NT_PROCSTAT_PROC (proc data)");
> + case NT_FREEBSD_PROCSTAT_FILES:
> + return _("NT_PROCSTAT_FILES (files data)");
> + case NT_FREEBSD_PROCSTAT_VMMAP:
> + return _("NT_PROCSTAT_VMMAP (vmmap data)");
> + case NT_FREEBSD_PROCSTAT_GROUPS:
> + return _("NT_PROCSTAT_GROUPS (groups data)");
> + case NT_FREEBSD_PROCSTAT_UMASK:
> + return _("NT_PROCSTAT_UMASK (umask data)");
> + case NT_FREEBSD_PROCSTAT_RLIMIT:
> + return _("NT_PROCSTAT_RLIMIT (rlimit data)");
> + case NT_FREEBSD_PROCSTAT_OSREL:
> + return _("NT_PROCSTAT_OSREL (osreldate data)");
> + case NT_FREEBSD_PROCSTAT_PSSTRINGS:
> + return _("NT_PROCSTAT_PSSTRINGS (ps_strings data)");
> + case NT_FREEBSD_PROCSTAT_AUXV:
> + return _("NT_PROCSTAT_AUXV (auxv data)");
> + }
> + return get_note_type (e_type);
> +}
> +
> +static const char *
> get_netbsd_elfcore_note_type (unsigned e_type)
> {
> static char buff[64];
> @@ -15636,6 +15667,10 @@ process_note (Elf_Internal_Note * pnote)
> /* GNU-specific object file notes. */
> nt = get_gnu_elf_note_type (pnote->type);
>
> + else if (const_strneq (pnote->namedata, "FreeBSD"))
> + /* FreeBSD-specific core file notes. */
> + nt = get_freebsd_elfcore_note_type (pnote->type);
> +
> else if (const_strneq (pnote->namedata, "NetBSD-CORE"))
> /* NetBSD-specific core file notes. */
> nt = get_netbsd_elfcore_note_type (pnote->type);
> diff --git a/include/ChangeLog b/include/ChangeLog
> index 80fc4a8..7dadeba 100644
> --- a/include/ChangeLog
> +++ b/include/ChangeLog
> @@ -1,3 +1,16 @@
> +2016-01-16 John Baldwin <jhb@FreeBSD.org>
> +
> + * elf/common.h (NT_FREEBSD_THRMISC): Define.
> + (NT_FREEBSD_PROCSTAT_PROC): Define.
> + (NT_FREEBSD_PROCSTAT_FILES): Define.
> + (NT_FREEBSD_PROCSTAT_VMMAP): Define.
> + (NT_FREEBSD_PROCSTAT_GROUPS): Define.
> + (NT_FREEBSD_PROCSTAT_UMASK): Define.
> + (NT_FREEBSD_PROCSTAT_RLIMIT): Define.
> + (NT_FREEBSD_PROCSTAT_OSREL): Define.
> + (NT_FREEBSD_PROCSTAT_PSSTRINGS): Define.
> + (NT_FREEBSD_PROCSTAT_AUXV): Define.
> +
> 2016-01-11 Nick Clifton <nickc@redhat.com>
>
> Import this change from GCC mainline:
> diff --git a/include/elf/common.h b/include/elf/common.h
> index ce506fc..767ad3e 100644
> --- a/include/elf/common.h
> +++ b/include/elf/common.h
> @@ -595,6 +595,20 @@
> /* Note segment for SystemTap probes. */
> #define NT_STAPSDT 3
>
> +/* Note segments for core files on FreeBSD systems. Note name is
> + "FreeBSD". */
> +
> +#define NT_FREEBSD_THRMISC 7 /* Thread miscellaneous info. */
> +#define NT_FREEBSD_PROCSTAT_PROC 8 /* Procstat proc data. */
> +#define NT_FREEBSD_PROCSTAT_FILES 9 /* Procstat files data. */
> +#define NT_FREEBSD_PROCSTAT_VMMAP 10 /* Procstat vmmap data. */
> +#define NT_FREEBSD_PROCSTAT_GROUPS 11 /* Procstat groups data. */
> +#define NT_FREEBSD_PROCSTAT_UMASK 12 /* Procstat umask data. */
> +#define NT_FREEBSD_PROCSTAT_RLIMIT 13 /* Procstat rlimit data. */
> +#define NT_FREEBSD_PROCSTAT_OSREL 14 /* Procstat osreldate data. */
> +#define NT_FREEBSD_PROCSTAT_PSSTRINGS 15 /* Procstat ps_strings data. */
> +#define NT_FREEBSD_PROCSTAT_AUXV 16 /* Procstat auxv data. */
> +
> /* Note segments for core files on NetBSD systems. Note name
> must start with "NetBSD-CORE". */
>
> --
> 2.7.0
>