diff options
author | usa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-01-31 10:52:30 +0000 |
---|---|---|
committer | usa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-01-31 10:52:30 +0000 |
commit | 735496826bdd89a5950195a30cf18c482359554a (patch) | |
tree | c36162ecaa5e7fe4cb2d0b91e8f20ddd205addeb /lib | |
parent | 8dbc8caa0dfa366af6818b04e3ee4aebfe09478d (diff) |
merge revision(s) 55265: [Backport #14182]
* lib/mkmf.rb (create_makefile): sort lists of source and object
files in generated Makefile, unless given by extconf.rb.
[Fix GH-1367]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_3@62124 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib')
-rw-r--r-- | lib/mkmf.rb | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/mkmf.rb b/lib/mkmf.rb index 68f0b39216..8a4fcf9ff9 100644 --- a/lib/mkmf.rb +++ b/lib/mkmf.rb @@ -2200,11 +2200,15 @@ RULES RbConfig.expand(srcdir = srcprefix.dup) ext = ".#{$OBJEXT}" - orig_srcs = Dir[File.join(srcdir, "*.{#{SRC_EXT.join(%q{,})}}")] + orig_srcs = Dir[File.join(srcdir, "*.{#{SRC_EXT.join(%q{,})}}")].sort if not $objs srcs = $srcs || orig_srcs - objs = srcs.inject(Hash.new {[]}) {|h, f| h[File.basename(f, ".*") << ext] <<= f; h} - $objs = objs.keys + $objs = [] + objs = srcs.inject(Hash.new {[]}) {|h, f| + h.key?(o = File.basename(f, ".*") << ext) or $objs << o + h[o] <<= f + h + } unless objs.delete_if {|b, f| f.size == 1}.empty? dups = objs.sort.map {|b, f| "#{b[/.*\./]}{#{f.collect {|n| n[/([^.]+)\z/]}.join(',')}}" |