From a197e0cafb276a9b732f914b1f679ebb487b47f1 Mon Sep 17 00:00:00 2001
From: pinglin <pinglin@synology.com>
Date: Tue, 19 Mar 2019 20:46:27 +0800
Subject: [PATCH] cross_compile argument doesn't apply

reproduce:
	./configure --cross-compile --cross-answers=XXX

The output log now will show correct cross-answers.

Downloaded from
https://github.com/openwrt/packages/blob/master/net/samba4/patches/003-samba-4-10-cross_compile-fix.patch

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
---
 third_party/waf/waflib/Context.py        | 20 ++++++++++++++++++--
 third_party/waf/waflib/Tools/c_config.py | 11 +++++++----
 2 files changed, 25 insertions(+), 6 deletions(-)

diff --git a/third_party/waf/waflib/Context.py b/third_party/waf/waflib/Context.py
index 3222fb1551c..d1c87512095 100644
--- a/third_party/waf/waflib/Context.py
+++ b/third_party/waf/waflib/Context.py
@@ -359,8 +359,16 @@ class Context(ctx):
 
 		encoding = kw.pop('decode_as', default_encoding)
 
+		exec_args = kw.pop('exec_args', [])
+		if isinstance(cmd, str):
+			cmd = [cmd] + exec_args
+		elif isinstance(cmd, list):
+			cmd = cmd + exec_args
 		try:
-			ret, out, err = Utils.run_process(cmd, kw, cargs)
+			if exec_args:
+				ret, out, err = Utils.run_regular_process(cmd, kw, cargs)
+			else:
+				ret, out, err = Utils.run_process(cmd, kw, cargs)
 		except Exception as e:
 			raise Errors.WafError('Execution failure: %s' % str(e), ex=e)
 
@@ -438,8 +446,16 @@ class Context(ctx):
 
 		encoding = kw.pop('decode_as', default_encoding)
 
+		exec_args = kw.pop('exec_args', [])
+		if isinstance(cmd, str):
+			cmd = [cmd] + exec_args
+		elif isinstance(cmd, list):
+			cmd = cmd + exec_args
 		try:
-			ret, out, err = Utils.run_process(cmd, kw, cargs)
+			if exec_args:
+				ret, out, err = Utils.run_regular_process(cmd, kw, cargs)
+			else:
+				ret, out, err = Utils.run_process(cmd, kw, cargs)
 		except Exception as e:
 			raise Errors.WafError('Execution failure: %s' % str(e), ex=e)
 
diff --git a/third_party/waf/waflib/Tools/c_config.py b/third_party/waf/waflib/Tools/c_config.py
index 76082152cd9..25e468b0844 100644
--- a/third_party/waf/waflib/Tools/c_config.py
+++ b/third_party/waf/waflib/Tools/c_config.py
@@ -660,20 +660,23 @@ class test_exec(Task.Task):
 	"""
 	color = 'PINK'
 	def run(self):
+		exec_args = Utils.to_list(self.generator.exec_args)
+
 		if getattr(self.generator, 'rpath', None):
 			if getattr(self.generator, 'define_ret', False):
-				self.generator.bld.retval = self.generator.bld.cmd_and_log([self.inputs[0].abspath()])
+				self.generator.bld.retval = self.generator.bld.cmd_and_log([self.inputs[0].abspath()], exec_args=exec_args)
 			else:
-				self.generator.bld.retval = self.generator.bld.exec_command([self.inputs[0].abspath()])
+				self.generator.bld.retval = self.generator.bld.exec_command([self.inputs[0].abspath()], exec_args=exec_args)
 		else:
 			env = self.env.env or {}
 			env.update(dict(os.environ))
 			for var in ('LD_LIBRARY_PATH', 'DYLD_LIBRARY_PATH', 'PATH'):
 				env[var] = self.inputs[0].parent.abspath() + os.path.pathsep + env.get(var, '')
+
 			if getattr(self.generator, 'define_ret', False):
-				self.generator.bld.retval = self.generator.bld.cmd_and_log([self.inputs[0].abspath()], env=env)
+				self.generator.bld.retval = self.generator.bld.cmd_and_log([self.inputs[0].abspath()], env=env, exec_args=exec_args)
 			else:
-				self.generator.bld.retval = self.generator.bld.exec_command([self.inputs[0].abspath()], env=env)
+				self.generator.bld.retval = self.generator.bld.exec_command([self.inputs[0].abspath()], env=env, exec_args=exec_args)
 
 @feature('test_exec')
 @after_method('apply_link')
-- 
2.17.1

