bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

new module 'libsigsegv'


From: Bruno Haible
Subject: new module 'libsigsegv'
Date: Mon, 14 Jul 2008 13:16:52 +0200
User-agent: KMail/1.5.4

Sam Steingold wrote:
> OK - I am both proposing a patch AND asking a particular person (Bruno 
> Haible).

OK, but please keep bug-gnulib in CC.

> 2008-07-13  Sam Steingold  <address@hidden>
> 
>       Add sigsegv module.
>       * modules/sigsegv, m4/sigsegv.m4: New files.
> 
> 
> ===========================================================
> --- MODULES.html.sh   13 Jul 2008 13:38:33 -0400      1.260
> +++ MODULES.html.sh   13 Jul 2008 13:53:32 -0400      
> @@ -1744,6 +1744,7 @@ func_all_modules ()
>    func_module fatal-signal
>    func_module raise
>    func_module strsignal
> +  func_module sigsegv
>    func_end_table
>  
>    element="Command-line arguments"
> ===========================================================

This is a welcome addition to gnulib, because Eric Blake considers to use
libsigsegv also for GNU m4.

I did the following changes:
  - changed the module and file names from 'sigsegv' to 'libsigsegv', since
    the module tests for libsigsegv, not for SIGSEGV. Likewise, define
    HAVE_LIBSIGSEGV not HAVE_SIGSEGV.
  - libsigsegv.m4:
    - changed the copyright to match the one used by gnulib/m4/*.m4 files,
    - removed trailing 'dnl' that serve no other purpose than to reduce
      whitespace in the resulting configure file (an optimization that we have
      given up a decade ago already),
    - fixed m4 quoting: the first argument of AC_LANG_PROGRAM must be quoted
      with [[ ]] not [ ],
  - modules/libsigsegv:
    - Please use always the complete TEMPLATE file, don't omit sections like
      Makefile.am even if they are empty,
    - configure.ac: You don't need an AC_REQUIRE around gl_LIBSIGSEGV.
    - Added an Include and Link section.
  - MODULES.html.sh:
    - classified the module under POSIX extensions rather than ANSI C extensions
      since ANSI C does not have the notion of "page faults" or SIGSEGV.

Your changes to these files were small enough (including in clisp
"cvs diff -u -r1.2 -r1.5 src/m4/sigsegv.m4") that it probably does not require
a copyright assignment to the FSF from you. For next time, could you please
make sure you send a copyright assignment to the FSF for your contributions
to gnulib? If you already have such an assignment on file, fine and sorry for
the reminder.

Bruno


2008-07-14  Sam Steingold  <address@hidden>
            Bruno Haible  <address@hidden>

        New module libsigsegv.
        * modules/libsigsegv: New file.
        * m4/libsigsegv.m4: New file, from GNU clisp sigsegv.m4 with
        modifications.
        * MODULES.html.sh (Signal handling): New section.

*** MODULES.html.sh.orig        2008-07-14 13:12:37.000000000 +0200
--- MODULES.html.sh     2008-07-14 13:08:01.000000000 +0200
***************
*** 2380,2385 ****
--- 2380,2397 ----
    func_module openmp
    func_end_table
  
+   element="Signal handling"
+   element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
+   func_section_wrap posix_ext_signal
+   func_wrap H3
+   func_echo "$element"
+ 
+   func_begin_table
+   func_module c-stack
+   func_module libsigsegv
+   func_module sig2str
+   func_end_table
+ 
    element="Internationalization functions"
    element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
    func_section_wrap posix_ext_i18n
***************
*** 2877,2883 ****
    func_module argz
    func_module byteswap
    func_module exitfail
-   func_module c-stack
    func_module error
    func_module extensions
    func_module getdomainname
--- 2889,2894 ----
***************
*** 2891,2897 ****
    func_module quotearg
    func_module quote
    func_module readutmp
-   func_module sig2str
    func_module sysexits
    func_module verror
    func_module visibility
--- 2902,2907 ----
======================== modules/libsigsegv =================================
Description:
Handle page faults in user mode.

Files:
m4/libsigsegv.m4

Depends-on:
havelib

configure.ac:
gl_LIBSIGSEGV

Makefile.am:

Include:
#if HAVE_LIBSIGSEGV
# include <sigsegv.h>
#endif

Link:
$(LTLIBSIGSEGV) when linking with libtool, $(LIBSIGSEGV) otherwise

License:
GPL

Maintainer:
Bruno Haible
========================== m4/libsigsegv.m4 =================================
# libsigsegv.m4 serial 1
dnl Copyright (C) 2002-2003, 2008 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.

dnl From Bruno Haible, Sam Steingold.

AC_PREREQ(2.61)

AC_DEFUN([gl_LIBSIGSEGV],
[
  dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
  AC_REQUIRE([AC_LIB_RPATH])

  dnl Search for libsigsegv and define LIBSIGSEGV, LTLIBSIGSEGV and INCSIGSEGV
  dnl accordingly.
  AC_LIB_LINKFLAGS_BODY([sigsegv])

  dnl Add $INCSIGSEGV to CPPFLAGS before performing the following checks,
  dnl because if the user has installed libsigsegv and not disabled its use
  dnl via --without-libsigsegv-prefix, he wants to use it.
  gl_save_CPPFLAGS="$CPPFLAGS"
  AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCSIGSEGV])

  AC_CACHE_CHECK([for libsigsegv], gl_cv_lib_sigsegv, [
    gl_cv_lib_sigsegv="no, consider installing GNU libsigsegv"
    gl_save_LIBS="$LIBS"
    LIBS="$LIBS $LIBSIGSEGV"
    AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sigsegv.h>]],
      [sigsegv_deinstall_handler();])],
      [gl_cv_lib_sigsegv=yes])
    LIBS="$gl_save_LIBS"
  ])
  if test "$gl_cv_lib_sigsegv" = yes; then
    AC_DEFINE([HAVE_LIBSIGSEGV], 1,
      [Define if you have the libsigsegv library.])
    AC_MSG_CHECKING([how to link with libsigsegv])
    AC_MSG_RESULT([$LIBSIGSEGV])
  else
    dnl If $LIBSIGSEGV didn't lead to a usable library, we don't need
    dnl $INCSIGSEGV either.
    CPPFLAGS="$gl_save_CPPFLAGS"
    LIBSIGSEGV=
    LTLIBSIGSEGV=
  fi
  AC_SUBST(LIBSIGSEGV)
  AC_SUBST(LTLIBSIGSEGV)
])





reply via email to

[Prev in Thread] Current Thread [Next in Thread]