From 72e3ae1ecb48454fa29a30eab651062ccd89d928 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 Signed-off-by: Ralph Boehme --- third_party/waf/wafadmin/Tools/ccroot.py | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/third_party/waf/wafadmin/Tools/ccroot.py b/third_party/waf/wafadmin/Tools/ccroot.py index c130b40..042f74a 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_TMP'] = [] lib_st = v['LIB_ST'] staticlib_st = v['STATICLIB_ST'] libpath_st = v['LIBPATH_ST'] @@ -469,19 +470,30 @@ 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_TMP', v['FULLSTATIC_MARKER']) for i in v['RPATH']: if i and rpath_st: - app('LINKFLAGS', rpath_st % i) + app('LINKFLAGS_TMP', rpath_st % i) for i in v['LIBPATH']: - app('LINKFLAGS', libpath_st % i) - app('LINKFLAGS', staticlibpath_st % i) + app('LINKFLAGS_TMP', libpath_st % i) + app('LINKFLAGS_TMP', staticlibpath_st % i) + + # LINKFLAGS_TMP now contains the library paths. LINKFLAGS + # contains the user environment LDFLAGS as long with any + # linkerflag put there at configuration time, like additional + # search paths. + app('LINKFLAGS_TMP', v['LINKFLAGS']) + + # Now assign LINKFLAGS, LIBS will be appended below + v['LINKFLAGS'] = v['LINKFLAGS_TMP'] if v['STATICLIB']: - v.append_value('LINKFLAGS', v['STATICLIB_MARKER']) + v.append_value('LINKFLAGS_TMP', v['STATICLIB_MARKER']) k = [(staticlib_st % i) for i in v['STATICLIB']] app('LINKFLAGS', k) -- 2.1.0 From ee6e823da900a9a2736290de3e2aea9a033011ac 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 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