From 38fb8a1d547de6d09137d076baffa94505335f96 Mon Sep 17 00:00:00 2001 From: Antonio Ospite Date: Tue, 22 May 2012 16:21:25 +0200 Subject: [PATCH 1/1] am7xxx-play: check if sigaction is available If sigaction is not available just stub out the set_signal_handler() function. --- examples/CMakeLists.txt | 7 +++++++ examples/am7xxx-play.c | 10 ++++++++++ 2 files changed, 17 insertions(+) diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 7e7b455..e24442b 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -32,6 +32,13 @@ if(BUILD_AM7XXX-PLAY) include_directories(${FFMPEG_LIBAVFORMAT_INCLUDE_DIRS}) include_directories(${FFMPEG_LIBSWSCALE_INCLUDE_DIRS}) + set(CMAKE_REQUIRED_DEFINITIONS -D_POSIX_SOURCE) + check_symbol_exists(sigaction "signal.h" HAVE_SIGACTION) + if (HAVE_SIGACTION) + add_definitions("-DHAVE_SIGACTION") + endif() + set(CMAKE_REQUIRED_DEFINITIONS) + # xcb is used to retrieve the full screen dimensions when using x11grab # as input format find_package(XCB) diff --git a/examples/am7xxx-play.c b/examples/am7xxx-play.c index 49b5234..352ba2f 100644 --- a/examples/am7xxx-play.c +++ b/examples/am7xxx-play.c @@ -539,6 +539,7 @@ static void unset_run(int signo) run = 0; } +#ifdef HAVE_SIGACTION static int set_signal_handler(void (*signal_handler)(int)) { struct sigaction new_action; @@ -566,6 +567,15 @@ static int set_signal_handler(void (*signal_handler)(int)) out: return ret; } +#else +static int set_signal_handler(void (*signal_handler)(int)) +{ + (void)signal_handler; + fprintf(stderr, "set_signal_handler() not implemented, sigaction not available\n"); + return 0; +} +#endif + static void usage(char *name) { -- 2.1.4