[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] execinfo: new module
From: |
Bastien ROUCARIES |
Subject: |
Re: [PATCH] execinfo: new module |
Date: |
Wed, 22 Aug 2012 14:09:06 +0200 |
On Wed, Aug 22, 2012 at 10:49 AM, Paul Eggert <address@hidden> wrote:
> This is for Emacs. Currently, it provides a no-effect stub
> on all platforms where it does not already work.
> It already works on glibc-based systems, and on Solaris 11.
> * lib/execinfo.c, lib/execinfo.in.h, m4/execinfo.m4, modules/execinfo:
> New files.
> * doc/glibc-headers/execinfo.texi (execinfo.h):
> * MODULES.html.sh (Misc): Document it.
> ---
> ChangeLog | 11 ++++++++
> MODULES.html.sh | 1 +
> doc/glibc-headers/execinfo.texi | 7 +++-
> lib/execinfo.c | 3 ++
> lib/execinfo.in.h | 54
> +++++++++++++++++++++++++++++++++++++++
> m4/execinfo.m4 | 21 +++++++++++++++
> modules/execinfo | 40 ++++++++++++++++++++++++++++
> 7 files changed, 135 insertions(+), 2 deletions(-)
> create mode 100644 lib/execinfo.c
> create mode 100644 lib/execinfo.in.h
> create mode 100644 m4/execinfo.m4
> create mode 100644 modules/execinfo
Dear paul see http://code.google.com/p/google-breakpad/ for something
that could the work under windows/darwin
see doc here
http://code.google.com/p/google-breakpad/wiki/GettingStartedWithBreakpad
>
> diff --git a/ChangeLog b/ChangeLog
> index 9d9266e..7c09a08 100644
> --- a/ChangeLog
> +++ b/ChangeLog
> @@ -1,3 +1,14 @@
> +2012-08-22 Paul Eggert <address@hidden>
> +
> + execinfo: new module
> + This is for Emacs. Currently, it provides a no-effect stub
> + on all platforms where it does not already work.
> + It already works on glibc-based systems, and on Solaris 11.
> + * lib/execinfo.c, lib/execinfo.in.h, m4/execinfo.m4, modules/execinfo:
> + New files.
> + * doc/glibc-headers/execinfo.texi (execinfo.h):
> + * MODULES.html.sh (Misc): Document it.
> +
> 2012-08-20 Paul Eggert <address@hidden>
>
> extern-inline: support old GCC 'inline'
> diff --git a/MODULES.html.sh b/MODULES.html.sh
> index d67c41d..8ced611 100755
> --- a/MODULES.html.sh
> +++ b/MODULES.html.sh
> @@ -2000,6 +2000,7 @@ func_all_modules ()
> func_module crc
> func_module diacrit
> func_module diffseq
> + func_module execinfo
> func_module getline
> func_module getdelim
> func_module getnline
> diff --git a/doc/glibc-headers/execinfo.texi b/doc/glibc-headers/execinfo.texi
> index 51e6d98..6c31c74 100644
> --- a/doc/glibc-headers/execinfo.texi
> +++ b/doc/glibc-headers/execinfo.texi
> @@ -21,11 +21,14 @@ Gnulib module: ---
>
> Portability problems fixed by Gnulib:
> @itemize
> +This header file is missing on some platforms:
> +Mac OS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1,
> HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, MSVC 9, Interix
> 3.5, BeOS.
> @end itemize
>
> Portability problems not fixed by Gnulib:
> @itemize
> @item
> -This header file is missing on some platforms:
> -Mac OS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1,
> HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, MSVC 9, Interix
> 3.5, BeOS.
> +On platforms where the header file is missing,
> +the Gnulib substitute implementation is just a stub,
> +and does nothing.
> @end itemize
> diff --git a/lib/execinfo.c b/lib/execinfo.c
> new file mode 100644
> index 0000000..0bcd9f0
> --- /dev/null
> +++ b/lib/execinfo.c
> @@ -0,0 +1,3 @@
> +#include <config.h>
> +#define _GL_EXECINFO_INLINE _GL_EXTERN_INLINE
> +#include "execinfo.h"
> diff --git a/lib/execinfo.in.h b/lib/execinfo.in.h
> new file mode 100644
> index 0000000..057ba25
> --- /dev/null
> +++ b/lib/execinfo.in.h
> @@ -0,0 +1,54 @@
> +/* Information about executables.
> +
> + Copyright (C) 2012 Free Software Foundation, Inc.
> +
> + This program is free software: you can redistribute it and/or modify
> + it under the terms of the GNU Lesser General Public License as published
> by
> + the Free Software Foundation; either version 2.1 of the License, or
> + (at your option) any later version.
> +
> + This program is distributed in the hope that it will be useful,
> + but WITHOUT ANY WARRANTY; without even the implied warranty of
> + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + GNU Lesser General Public License for more details.
> +
> + You should have received a copy of the GNU Lesser General Public License
> + along with this program. If not, see <http://www.gnu.org/licenses/>. */
> +
> +/* Written by Paul Eggert. */
> +
> +#ifndef _GL_EXECINFO_H
> +#define _GL_EXECINFO_H
> +
> +_GL_INLINE_HEADER_BEGIN
> +#ifndef _GL_EXECINFO_INLINE
> +# define _GL_EXECINFO_INLINE _GL_INLINE
> +#endif
> +
> +_GL_EXECINFO_INLINE int
> +backtrace (void **buffer, int size)
> +{
> + (void) buffer;
> + (void) size;
> + return 0;
> +}
> +
> +_GL_EXECINFO_INLINE char **
> +backtrace_symbols (void *const *buffer, int size)
> +{
> + (void) buffer;
> + (void) size;
> + return 0;
> +}
> +
> +_GL_EXECINFO_INLINE void
> +backtrace_symbols_fd (void *const *buffer, int size, int fd)
> +{
> + (void) buffer;
> + (void) size;
> + (void) fd;
> +}
> +
> +_GL_INLINE_HEADER_END
> +
> +#endif
> diff --git a/m4/execinfo.m4 b/m4/execinfo.m4
> new file mode 100644
> index 0000000..fa2b845
> --- /dev/null
> +++ b/m4/execinfo.m4
> @@ -0,0 +1,21 @@
> +# Check for GNU-style execinfo.h.
> +
> +dnl Copyright 2012 Free Software Foundation, Inc.
> +dnl This file is free software; the Free Software Foundation
> +dnl gives unlimited permission to copy and/or distribute it,
> +dnl with or without modifications, as long as this notice is preserved.
> +
> +AC_DEFUN([gl_EXECINFO_H],
> +[
> + AC_CHECK_HEADERS_ONCE([execinfo.h])
> +
> + if test $ac_cv_header_execinfo_h = yes; then
> + EXECINFO_H=''
> + else
> + EXECINFO_H='execinfo.h'
> + AC_LIBOBJ([execinfo])
> + fi
> +
> + AC_SUBST([EXECINFO_H])
> + AM_CONDITIONAL([GL_GENERATE_EXECINFO_H], [test -n "$EXECINFO_H"])
> +])
> diff --git a/modules/execinfo b/modules/execinfo
> new file mode 100644
> index 0000000..1578216
> --- /dev/null
> +++ b/modules/execinfo
> @@ -0,0 +1,40 @@
> +Description:
> +A GNU-like <execinfo.h>.
> +
> +Files:
> +lib/execinfo.c
> +lib/execinfo.in.h
> +m4/execinfo.m4
> +
> +Depends-on:
> +extern-inline
> +
> +configure.ac:
> +gl_EXECINFO_H
> +
> +Makefile.am:
> +BUILT_SOURCES += $(EXECINFO_H)
> +
> +# We need the following in order to create <execinfo.h> when the system
> +# doesn't have one that works.
> +if GL_GENERATE_EXECINFO_H
> +execinfo.h: execinfo.in.h $(top_builddir)/config.status
> + $(AM_V_GEN)rm -f address@hidden $@ && \
> + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
> + cat $(srcdir)/execinfo.in.h; \
> + } > address@hidden && \
> + mv address@hidden $@
> +else
> +execinfo.h: $(top_builddir)/config.status
> + rm -f $@
> +endif
> +MOSTLYCLEANFILES += execinfo.h execinfo.h-t
> +
> +Include:
> +<execinfo.h>
> +
> +License:
> +LGPLv2+
> +
> +Maintainer:
> +all
> --
> 1.7.6.5
>
>