From 35b415489b0a0d02a48fc765c37fc39af74cd596 Mon Sep 17 00:00:00 2001 From: Max Howell Date: Fri, 14 Sep 2012 11:55:21 -0400 Subject: Puts build-tool args first build-tool provided args must be considered first by cc, etc. Generally this already occurred for -I flags, because most of our -I flags were -isystem. However it didn't occur for keg-only flags and -L paths. This was an error. I amended the refurbishment code to ensure any paths we want to control the order of are thoroughly scrubbed out of the build-tool provided args. This ensures reliability for our builds. However this path-scrubbing should always occur, even during configure (I am fairly sure of this). So more work is required. Fixes #14781. --- Library/ENV/4.3/cc | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'Library') diff --git a/Library/ENV/4.3/cc b/Library/ENV/4.3/cc index 5b7753de8..37ebc0400 100755 --- a/Library/ENV/4.3/cc +++ b/Library/ENV/4.3/cc @@ -64,24 +64,24 @@ class Cmd refurbished_args end if tool != 'ld' - args.unshift("--sysroot=#$sdkroot") + args << "--sysroot=#$sdkroot" else - args.unshift($sdkroot).unshift("-syslibroot") + args << "-syslibroot" << $sdkroot end if nclt? case mode when :cpp - %w{-E} + cppflags + args + %w{-E} + args + cppflags when :ld ldflags + args when :cc - cflags + cppflags + args + cflags + args + cppflags when :ccld - cflags + cppflags + ldflags + args + cflags + args + cppflags + ldflags end.compact end def refurbished_args - lset = Set.new(syslibpath) - iset = Set.new(syscpath) + lset = Set.new(libpath + syslibpath) + iset = Set.new(cpath.flatten) args = [] whittler = @args.each -- cgit v1.2.3