From 7d896ca9f363843d687fd7a9a04b1fb917a42aae Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Fri, 24 Aug 2012 21:27:32 -0700 Subject: [PATCH] * lib/execinfo.c, lib/execinfo.in.h, m4/execinfo.m4: New files. --- lib/execinfo.c | 3 +++ lib/execinfo.in.h | 54 +++++++++++++++++++++++++++++++++++++++++++++++ m4/execinfo.m4 | 31 +++++++++++++++++++++++++++ 3 files changed, 88 insertions(+) create mode 100644 lib/execinfo.c create mode 100644 lib/execinfo.in.h create mode 100644 m4/execinfo.m4 diff --git a/lib/execinfo.c b/lib/execinfo.c new file mode 100644 index 0000000000..0bcd9f078b --- /dev/null +++ b/lib/execinfo.c @@ -0,0 +1,3 @@ +#include +#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 0000000000..d76b0e1b77 --- /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 General Public License as published by + the Free Software Foundation; either version 3 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +/* 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 0000000000..f1f3cd9163 --- /dev/null +++ b/m4/execinfo.m4 @@ -0,0 +1,31 @@ +# 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]) + + LIB_EXECINFO='' + EXECINFO_H='execinfo.h' + + if test $ac_cv_header_execinfo_h = yes; then + gl_saved_libs=$LIBS + AC_SEARCH_LIBS([backtrace_symbols_fd], [execinfo], + [test "$ac_cv_search_backtrace_symbols_fd" = "none required" || + LIB_EXECINFO=$ac_cv_search_backtrace_symbols_fd]) + LIBS=$gl_saved_libs + test "$ac_cv_search_backtrace_symbols_fd" = no || EXECINFO_H='' + fi + + if test -n "$EXECINFO_H"; then + AC_LIBOBJ([execinfo]) + fi + + AC_SUBST([EXECINFO_H]) + AC_SUBST([LIB_EXECINFO]) + AM_CONDITIONAL([GL_GENERATE_EXECINFO_H], [test -n "$EXECINFO_H"]) +]) -- 2.20.1