From 533e7cfe189faf0ac17ea320348b6e456d1c6bf3 Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Sat, 25 Apr 2015 05:01:40 +0200 Subject: [PATCH 1/2] waf: put user LDFLAGS behind internal search paths but before LIBS Bug: https://bugzilla.samba.org/show_bug.cgi?id=10877 Signed-off-by: Ralph Boehme --- third_party/waf/wafadmin/Tools/ccroot.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/third_party/waf/wafadmin/Tools/ccroot.py b/third_party/waf/wafadmin/Tools/ccroot.py index c130b40..22ede66 100644 --- a/third_party/waf/wafadmin/Tools/ccroot.py +++ b/third_party/waf/wafadmin/Tools/ccroot.py @@ -461,6 +461,7 @@ def apply_objdeps(self): def apply_obj_vars(self): """after apply_lib_vars for uselib""" v = self.env + v['LINKFLAGS_PATHS'] = [] lib_st = v['LIB_ST'] staticlib_st = v['STATICLIB_ST'] libpath_st = v['LIBPATH_ST'] @@ -469,16 +470,26 @@ def apply_obj_vars(self): app = v.append_unique + # The desired final order is LIBPATH/RPATH LINKFLAGS LIBS, so + # put library paths and marker in a temp variable if v['FULLSTATIC']: - v.append_value('LINKFLAGS', v['FULLSTATIC_MARKER']) + v.append_value('LINKFLAGS_PATHS', v['FULLSTATIC_MARKER']) for i in v['RPATH']: if i and rpath_st: - app('LINKFLAGS', rpath_st % i) + app('LINKFLAGS_PATHS', rpath_st % i) for i in v['LIBPATH']: - app('LINKFLAGS', libpath_st % i) - app('LINKFLAGS', staticlibpath_st % i) + app('LINKFLAGS_PATHS', libpath_st % i) + app('LINKFLAGS_PATHS', staticlibpath_st % i) + + # LINKFLAGS_PATHS now contains the library paths. LINKFLAGS + # contains the user environment LDFLAGS as well as any flags + # added by waf at configuration time. + app('LINKFLAGS_PATHS', v['LINKFLAGS']) + + # Now assign LINKFLAGS, LIBS will be appended below + v['LINKFLAGS'] = v['LINKFLAGS_PATHS'] if v['STATICLIB']: v.append_value('LINKFLAGS', v['STATICLIB_MARKER']) -- 2.1.0 From 3b8d9e6a71a16bfd140b3c1fba9b5c5d77f80388 Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Sat, 25 Apr 2015 05:03:43 +0200 Subject: [PATCH 2/2] waf: put user env CPPFLAGS behind internal flags Bug: https://bugzilla.samba.org/show_bug.cgi?id=10877 Signed-off-by: Ralph Boehme --- third_party/waf/wafadmin/Tools/cc.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/waf/wafadmin/Tools/cc.py b/third_party/waf/wafadmin/Tools/cc.py index e54df47..01dafd0 100644 --- a/third_party/waf/wafadmin/Tools/cc.py +++ b/third_party/waf/wafadmin/Tools/cc.py @@ -88,7 +88,7 @@ def c_hook(self, node): raise Utils.WafError('Have you forgotten to set the feature "cc" on %s?' % str(self)) return task -cc_str = '${CC} ${CCFLAGS} ${CPPFLAGS} ${_CCINCFLAGS} ${_CCDEFFLAGS} ${CC_SRC_F}${SRC} ${CC_TGT_F}${TGT}' +cc_str = '${CC} ${_CCINCFLAGS} ${_CCDEFFLAGS} ${CCFLAGS} ${CPPFLAGS} ${CC_SRC_F}${SRC} ${CC_TGT_F}${TGT}' cls = Task.simple_task_type('cc', cc_str, 'GREEN', ext_out='.o', ext_in='.c', shell=False) cls.scan = ccroot.scan cls.vars.append('CCDEPS') -- 2.1.0