blob: 45c5acabb3878f769ab5071f34c466b45d46a0ea [file] [log] [blame]
Brad Bishop26bdd442019-08-16 17:08:17 -04001From 4b8463ff43f8983a706b181c5292491f9f954be1 Mon Sep 17 00:00:00 2001
2From: Changqing Li <changqing.li@windriver.com>
3Date: Fri, 25 Jan 2019 15:00:59 +0800
4Subject: [PATCH] waf: add support of cross_compile
5
6After upgrade, waf build system also upgraded.
7
8on 1.5.19, for cross_compile, subprocess.Popen is set to be
9samba_cross.cross_Popen, which will not execute testprog on
10host, but only read result from cross-answers.txt which is
11passed by option --cross-answer
12
13part of old code:
14 args = Utils.to_list(kw.get('exec_args', []))
15 proc = Utils.pproc.Popen([lastprog] + args, stdout=Utils.pproc.PIPE, stderr=Utils.pproc.PIPE)
16
17but on new version, exec_args is not used and cause do_configure
18failed with Exec format error
19
20fixed by append cross anser related args to cmd
21
22Upstream-Status: Submitted [https://gitlab.com/samba-team/samba/merge_requests/211]
23
24Signed-off-by: Changqing Li <changqing.li@windriver.com>
25---
26 third_party/waf/waflib/Tools/c_config.py | 11 ++++++-----
27 1 file changed, 6 insertions(+), 5 deletions(-)
28
29diff --git a/third_party/waf/waflib/Tools/c_config.py b/third_party/waf/waflib/Tools/c_config.py
30index 7608215..767cf33 100644
31--- a/third_party/waf/waflib/Tools/c_config.py
32+++ b/third_party/waf/waflib/Tools/c_config.py
33@@ -660,20 +660,21 @@ class test_exec(Task.Task):
34 """
35 color = 'PINK'
36 def run(self):
37+ args = self.generator.bld.kw.get('exec_args', [])
38 if getattr(self.generator, 'rpath', None):
39 if getattr(self.generator, 'define_ret', False):
40- self.generator.bld.retval = self.generator.bld.cmd_and_log([self.inputs[0].abspath()])
41- else:
42- self.generator.bld.retval = self.generator.bld.exec_command([self.inputs[0].abspath()])
43+ self.generator.bld.retval = self.generator.bld.cmd_and_log([self.inputs[0].abspath()] + args)
44+ else:
45+ self.generator.bld.retval = self.generator.bld.exec_command([self.inputs[0].abspath()] + args)
46 else:
47 env = self.env.env or {}
48 env.update(dict(os.environ))
49 for var in ('LD_LIBRARY_PATH', 'DYLD_LIBRARY_PATH', 'PATH'):
50 env[var] = self.inputs[0].parent.abspath() + os.path.pathsep + env.get(var, '')
51 if getattr(self.generator, 'define_ret', False):
52- self.generator.bld.retval = self.generator.bld.cmd_and_log([self.inputs[0].abspath()], env=env)
53+ self.generator.bld.retval = self.generator.bld.cmd_and_log([self.inputs[0].abspath()] + args, env=env)
54 else:
55- self.generator.bld.retval = self.generator.bld.exec_command([self.inputs[0].abspath()], env=env)
56+ self.generator.bld.retval = self.generator.bld.exec_command([self.inputs[0].abspath()] + args, env=env)
57
58 @feature('test_exec')
59 @after_method('apply_link')
60--
612.7.4
62