uwrap: Check for HAVE_FUNCTION_ATTRIBUTE_FORMAT.
authorAndreas Schneider <asn@samba.org>
Thu, 31 Jul 2014 08:18:13 +0000 (10:18 +0200)
committerMichael Adam <obnox@samba.org>
Thu, 31 Jul 2014 16:49:47 +0000 (18:49 +0200)
Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Michael Adam <obnox@samba.org>
lib/uid_wrapper/uid_wrapper.c
lib/uid_wrapper/wscript

index e9c7d5a94ea191305388f02543998e8d66396382..2b8723840a086580e4a727dad525122513c6a0bd 100644 (file)
 #define DESTRUCTOR_ATTRIBUTE
 #endif /* HAVE_DESTRUCTOR_ATTRIBUTE */
 
+/* GCC have printf type attribute check. */
+#ifdef HAVE_FUNCTION_ATTRIBUTE_FORMAT
+#define PRINTF_ATTRIBUTE(a,b) __attribute__ ((__format__ (__printf__, a, b)))
+#else
+#define PRINTF_ATTRIBUTE(a,b)
+#endif /* HAVE_FUNCTION_ATTRIBUTE_FORMAT */
+
 #ifdef NDEBUG
 #define UWRAP_DEBUG(...)
 #else
index 63be4734fa2cdcb671ce1de548d6bb90c4e9ad0e..3e73e839b1c34c5c854b17740e9fac64cf9f863d 100644 (file)
@@ -38,6 +38,18 @@ def configure(conf):
             addmain=False,
             msg='Checking for library destructor support')
 
+        # check HAVE_FUNCTION_ATTRIBUTE_FORMAT
+        conf.CHECK_CODE('''
+            void log_fn(const char *format, ...) __attribute__ ((format (printf, 1, 2)));
+
+            int main(void) {
+                return 0;
+            }
+            ''',
+            'HAVE_FUNCTION_ATTRIBUTE_FORMAT',
+            addmain=False,
+            msg='Checking for printf format validation support')
+
         # Create full path to uid_wrapper
         srcdir = os.path.realpath(conf.srcdir)
         libuid_wrapper_so_path = srcdir + '/bin/default/lib/uid_wrapper/libuid-wrapper.so'