Don't use a nested function when testing for visibility attribute support.
authorJelmer Vernooij <jelmer@samba.org>
Sat, 8 Nov 2014 16:22:30 +0000 (16:22 +0000)
committerJeremy Allison <jra@samba.org>
Mon, 10 Nov 2014 07:29:19 +0000 (08:29 +0100)
Some compilers support __attribute__((visibility)), but not nested
functions (e.g. http://www.cprover.org/goto-cc/)

Change-Id: I01a5dd6f5f913664621c4090e2dca177527436bb
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=749983
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=749985
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=749986
Signed-Off-By: Jelmer Vernooij <jelmer@debian.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Mon Nov 10 08:29:19 CET 2014 on sn-devel-104

lib/replace/wscript

index 16fd50b7b54049cb39b7a570ae5e0b7df353d770..7bbe1d6de1eaeca56394b47603c4709173bcabaf 100644 (file)
@@ -639,10 +639,10 @@ removeea setea
 
     if conf.CHECK_CFLAGS('-fvisibility=hidden'):
         conf.env.VISIBILITY_CFLAGS = '-fvisibility=hidden'
-        conf.CHECK_CODE('''void vis_foo1(void) {}
+        conf.CHECK_CODE('''int main(void) { return 0; }
                            __attribute__((visibility("default"))) void vis_foo2(void) {}''',
                         cflags=conf.env.VISIBILITY_CFLAGS,
-                        define='HAVE_VISIBILITY_ATTR')
+                        define='HAVE_VISIBILITY_ATTR', addmain=False)
 
     # look for a method of finding the list of network interfaces
     for method in ['HAVE_IFACE_GETIFADDRS', 'HAVE_IFACE_AIX', 'HAVE_IFACE_IFCONF', 'HAVE_IFACE_IFREQ']: