Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

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.
  • Loading branch information...
commit 640b1760c6754a5a9d76c26794453d1e6493b457 1 parent bdd4260
Max Howell mxcl authored Dennis Luxen committed
Showing with 7 additions and 7 deletions.
  1. +7 −7 Library/ENV/4.3/cc
14 Library/ENV/4.3/cc
View
@@ -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
Please sign in to comment.
Something went wrong with that request. Please try again.