wafsamba/samba_autoconf: when setting undefined result, use empty tuple
authorAlexander Bokovoy <ab@samba.org>
Thu, 6 Sep 2018 07:51:00 +0000 (07:51 +0000)
committerAndrew Bartlett <abartlet@samba.org>
Sat, 8 Sep 2018 06:44:16 +0000 (08:44 +0200)
A difference between waf 1.x and 2.x is that we gained 0 as an undefined
variable in the cache file. This does not allow to differentiate unset
and set to 0 defines.

Force to use empty tuple () to signify unset defines.

Signed-off-by: Alexander Bokovoy <ab@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
buildtools/wafsamba/samba_autoconf.py

index 6b940e53c00200de2b0f19f11951ae51c6eceafb..6bc34c086f04d66c3eedeb61c3f359af26d8e9e5 100644 (file)
@@ -445,8 +445,12 @@ def CHECK_CODE(conf, code, define,
                      exec_args=exec_args,
                      define_ret=define_ret)
     except Exception:
+        # Even when exception happened, conf.check might have set the define
+        # already to int(ret). We want to undefine it in the case of 'always'.
+        # Otherwise, we'd get defines set to 0 when they should be undefined
+        # and it foils #ifdef check
         if always:
-            conf.DEFINE(define, 0)
+            conf.undefine(define)
         conf.COMPOUND_END(False)
         if mandatory:
             raise