diff --git a/SConstruct b/SConstruct index 8fbbfb7..26de23b 100644 --- a/SConstruct +++ b/SConstruct @@ -52,6 +52,7 @@ from locktype import checkForLockingType from lamerpack import checkForLamerpack from debugmode import checkForDebugBuild from timeout import checkForClientTimeout +from relsignals import checkReliableSignals conf = Configure(env,{'checkForCCOption':checkForCCOption, 'MAINTAINER_MODE':checkForMaintainerMode, @@ -61,7 +62,8 @@ conf = Configure(env,{'checkForCCOption':checkForCCOption, 'checkForLockingType':checkForLockingType, 'checkForLamerPack':checkForLamerpack, 'checkForDebugBuild':checkForDebugBuild, - 'checkForClientTimeout':checkForClientTimeout + 'checkForClientTimeout':checkForClientTimeout, + 'checkReliableSignals':checkReliableSignals }) # check for CC options for option in Split(""" @@ -118,6 +120,8 @@ if not conf.CheckType("union semun", "#include \n#include +#include +#include +#include +volatile int test; +void sig_handler(int sg) +{ + test=1; +} +int main() +{ + signal(SIGUSR1,sig_handler); + test=0; + kill(getpid(),SIGUSR1); + sleep(1); + if(test==0) { + printf("Signals ARE BROKEN!\\n"); + kill(0,SIGQUIT); + } + test=0; + kill(getpid(),SIGUSR1); + if(test==1) + exit(0); + else + exit(1); +} +''','.c') + conf.Result(rc) + return rc