From: Björn Jacke Date: Fri, 30 Oct 2020 11:55:54 +0000 (+0100) Subject: waf: check for pragma init/fini support for constructors/destructors X-Git-Tag: talloc-2.3.2~3 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c32eb006108c69a99c651e11a0a4160359e52145;p=thirdparty%2Fsamba.git waf: check for pragma init/fini support for constructors/destructors Signed-off-by: Bjoern Jacke Reviewed-by: Andrew Bartlett --- diff --git a/buildtools/wafsamba/wscript b/buildtools/wafsamba/wscript index f68f46e03ec..65cc8d3cd5e 100644 --- a/buildtools/wafsamba/wscript +++ b/buildtools/wafsamba/wscript @@ -391,7 +391,26 @@ def configure(conf): strict=True, msg='Checking for library constructor support') - # check HAVE_DESTRUCTOR_ATTRIBUTE + # check HAVE_PRAGMA_INIT alternatively + if not conf.env.HAVE_CONSTRUCTOR_ATTRIBUTE: + conf.CHECK_CODE(''' + #pragma init (test_init) + + void test_init(void) + { + return; + } + + int main(void) { + return 0; + } + ''', + 'HAVE_PRAGMA_INIT', + addmain=False, + strict=True, + msg='Checking for pragma init support') + + # check HAVE_DESTRUCTOR_ATTRIBUTE conf.CHECK_CODE(''' void test_destructor_attribute(void) __attribute__ ((destructor)); @@ -409,6 +428,25 @@ def configure(conf): strict=True, msg='Checking for library destructor support') + # check HAVE_PRAGMA_FINI alternatively + if not conf.env.HAVE_DESTRUCTOR_ATTRIBUTE: + conf.CHECK_CODE(''' + #pragma fini (test_fini) + + void test_fini(void) + { + return; + } + + int main(void) { + return 0; + } + ''', + 'HAVE_PRAGMA_FINI', + addmain=False, + strict=True, + msg='Checking for pragma fini support') + conf.CHECK_CODE(''' void test_attribute(void) __attribute__ (());