From da3412c27b23e8dbb9330b5c93e4b040d8b6f178 Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Mon, 24 Oct 2011 18:30:43 +0300 Subject: [PATCH] Fix siginfo detection code. --- CMakeLists.txt | 7 ++++++- config.h.in | 5 +++++ src/util.c | 2 +- src/util.h | 2 +- 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3f0356173..23425e86a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -624,6 +624,7 @@ CHECK_INCLUDE_FILES(netinet/in.h HAVE_NETINET_IN_H) CHECK_INCLUDE_FILES(arpa/inet.h HAVE_ARPA_INET_H) CHECK_INCLUDE_FILES(netdb.h HAVE_NETDB_H) CHECK_INCLUDE_FILES(syslog.h HAVE_SYSLOG_H) +CHECK_INCLUDE_FILES(siginfo.h HAVE_SIGINFO_H) CHECK_INCLUDE_FILES(locale.h HAVE_LOCALE_H) CHECK_INCLUDE_FILES(libgen.h HAVE_LIBGEN_H) CHECK_INCLUDE_FILES(search.h HAVE_SEARCH_H) @@ -665,7 +666,11 @@ CHECK_SYMBOL_EXISTS(MAP_SHARED sys/mman.h HAVE_MMAP_SHARED) CHECK_SYMBOL_EXISTS(MAP_ANON sys/mman.h HAVE_MMAP_ANON) CHECK_SYMBOL_EXISTS(MAP_NOCORE sys/mman.h HAVE_MMAP_NOCORE) CHECK_SYMBOL_EXISTS(_SC_NPROCESSORS_ONLN unistd.h HAVE_SC_NPROCESSORS_ONLN) -CHECK_SYMBOL_EXISTS(SA_SIGINFO "signal.h;siginfo.h" HAVE_SA_SIGINFO) +IF(HAVE_SIGINFO_H) + CHECK_SYMBOL_EXISTS(SA_SIGINFO "signal.h;siginfo.h" HAVE_SA_SIGINFO) +ELSE(HAVE_SIGINFO_H) + CHECK_SYMBOL_EXISTS(SA_SIGINFO "signal.h" HAVE_SA_SIGINFO) +ENDIF(HAVE_SIGINFO_H) IF(NOT CMAKE_SYSTEM_NAME STREQUAL "SunOS") IF(HAVE_CLOCK_GETTIME) diff --git a/config.h.in b/config.h.in index eb20d7b5d..950bf2ef4 100644 --- a/config.h.in +++ b/config.h.in @@ -40,6 +40,8 @@ #cmakedefine HAVE_SYSLOG_H 1 +#cmakedefine HAVE_SIGINFO_H 1 + #cmakedefine HAVE_LIBUTIL_H 1 #cmakedefine HAVE_LIBGEN_H 1 @@ -369,6 +371,9 @@ #include #include +#ifdef HAVE_SIGINFO_H +# include +#endif #include #include diff --git a/src/util.c b/src/util.c index 3ddfe3b61..d127651e7 100644 --- a/src/util.c +++ b/src/util.c @@ -418,7 +418,7 @@ void init_signals (struct sigaction *signals, void (*sig_handler)(gint, siginfo_t *, void *)) #else void -init_signals (struct sigaction *signals, sighandler_t sig_handler) +init_signals (struct sigaction *signals, void (*sig_handler)(gint)) #endif { struct sigaction sigpipe_act; diff --git a/src/util.h b/src/util.h index 0fb6f48bf..c6c721ed1 100644 --- a/src/util.h +++ b/src/util.h @@ -87,7 +87,7 @@ gint poll_sync_socket (gint fd, gint timeout, short events); #ifdef HAVE_SA_SIGINFO void init_signals (struct sigaction *sa, void (*sig_handler)(gint, siginfo_t *, void *)); #else -void init_signals (struct sigaction *sa, sighandler_t); +void init_signals (struct sigaction *sa, void (*sig_handler)(gint)); #endif /* -- 2.39.5