wafsamba: avoid pre-forking if cross-compilation is enabled
authorUri Simchoni <uri@samba.org>
Sun, 6 Oct 2019 21:37:31 +0000 (00:37 +0300)
committerUri Simchoni <uri@samba.org>
Sun, 20 Oct 2019 12:06:30 +0000 (12:06 +0000)
Waf supports pre-forking to run configuration tests, but this
doesn't play well with Samba's cross-compilation support, because
Samba monkey-patches the actual fork+exec, which doesn't happen
in a pre-forked process pool.

This patch emulates the impact of WAF_NO_PREFORK env var when
cross-compilation is enabled.

The blueprint for the solution has been suggested by Thomas Nagy
in https://bugzilla.samba.org/show_bug.cgi?id=13846#c7 (item #2)

BUG: https://bugzilla.samba.org/show_bug.cgi?id=13846

Signed-off-by: Uri Simchoni <uri@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
buildtools/wafsamba/samba_cross.py

index 60ddf96723769a944fe829fb8a97838f79b82e5e..6fca470f2b79a18314752ddcd5375e9aadb81e17 100644 (file)
@@ -147,6 +147,8 @@ def SAMBA_CROSS_ARGS(conf, msg=None):
     if real_Popen is None:
         real_Popen  = Utils.subprocess.Popen
         Utils.subprocess.Popen = cross_Popen
+        Utils.run_process = Utils.run_regular_process
+        Utils.get_process = Utils.alloc_process_pool = Utils.nada
 
     ret = []