[Pacemaker] [PATCH] feature test for sighandler_t added and for ncurses improved

Grüninger, Andreas (LGL Extern) Andreas.Grueninger at lgl.bwl.de
Mon Sep 24 16:32:36 UTC 2012


When pacemaker 1.1.8 is compiled with gcc 4.5.2 and ncurses 5.7 2 problems occur:
- ncurses is errounesly detected as version 5.4
- sighandler_t is not defined in libglib-2.0

The feature test for ncurses uses another order for checking as the tests in lib/pengine/unpack.h.
The test für ncurses should precede the test for curses as in lib/pengine/unpack.h.

The patch adds a feature test for sighandler_t and changes the feature test for ncurses according to the the test in lib/pengine/unpack.h.

Andreas

commit 81497be39234cde6572b5a4105e48b5a3b126bd0
Author: andreas.grueninger <andreas.grueninger at server>
Date:   Mon Sep 24 18:09:37 2012 +0200

    feature test for sighandler_t added and for ncurses improved

diff --git a/configure.ac b/configure.ac
index 684863d..3918a81 100644
--- a/configure.ac
+++ b/configure.ac
@@ -839,6 +839,17 @@ if test x$ac_cv_header_bzlib_h != xyes; then
    AC_MSG_ERROR(BZ2 Development headers not found)
 fi

+dnl ========================================================================
+dnl sighandler_t is missing from Illumos, Solaris11 systems
+dnl ========================================================================
+
+AC_MSG_CHECKING([for sighandler_t])
+AC_TRY_COMPILE([#include <signal.h>],[sighandler_t *f;],
+has_sighandler_t=yes,has_sighandler_t=no)
+AC_MSG_RESULT($has_sighandler_t)
+if test "$has_sighandler_t" = "yes" ; then
+    AC_DEFINE( HAVE_SIGHANDLER_T, 1, [Define if sighandler_t available] )
+fi

 dnl ========================================================================
 dnl   ncurses
@@ -900,10 +911,12 @@ if test X"$CURSESLIBS" != X"" && cc_supports_flag -Wcast-qual && cc_supports_fla
     AC_LINK_IFELSE(
            [AC_LANG_PROGRAM(
              [
-#if defined(HAVE_CURSES_H)
-#  include <curses.h>
-#elif defined(HAVE_NCURSES_H)
+#if defined(HAVE_NCURSES_H)
 #  include <ncurses.h>
+#elif defined(HAVE_NCURSES_NCURSES_H)
+#  include <ncurses/ncurses.h>
+#elif defined(HAVE_CURSES_H)
+#  include <curses.h>
 #endif
              ],
              [printw((const char *)"Test");]
diff --git a/tools/crm_mon.c b/tools/crm_mon.c
index 7bcc187..542b0ba 100644
--- a/tools/crm_mon.c
+++ b/tools/crm_mon.c
@@ -206,6 +206,9 @@ mon_shutdown(int nsig)
 #endif

 #if CURSES_ENABLED
+#ifndef HAVE_SIGHANDLER_T
+typedef void (*sighandler_t)(int);
+#endif
 static sighandler_t ncurses_winch_handler;
 static void
 mon_winresize(int nsig)




More information about the Pacemaker mailing list