Package: ntdb Version: 1.0-4 Severity: wishlist Usertags: goto-cc While building the package I noticed an unexpected
[...] Checking compiler accepts -fvisibility=hidden : yes Checking for HAVE_VISIBILITY_ATTR : not found when using a compiler that does not have support for nested functions. Yet it seems that these aspects should not interact, but the configure check in lib/replace/wscript uses the following: if conf.CHECK_CFLAGS('-fvisibility=hidden'): conf.env.VISIBILITY_CFLAGS = '-fvisibility=hidden' conf.CHECK_CODE('''void vis_foo1(void) {} __attribute__((visibility("default"))) void vis_foo2(void) {}''', cflags=conf.env.VISIBILITY_CFLAGS, define='HAVE_VISIBILITY_ATTR') with buildtools/wafsamba/samba_autoconf.py doing the following: if addmain: fragment='%s\n%s\n int main(void) { %s; return 0; }\n' % (defs, hdrs, code) else: fragment='%s\n%s\n%s\n' % (defs, hdrs, code) Hence the function vis_foo1 and vis_foo2 will end up being defined within main, resulting in nested functions. This unnecessarily breaks the build using compilers such as Clang. To fix the problem, conf.CHECK_CODE should be called with link=False, addmain=False. Best, Michael PS.: This configuration bit appears to exist as literal copy in several packages, the bug report will be cloned accordingly.
pgpIzWP6Izt0C.pgp
Description: PGP signature