Remove LLVM-GCC support. (#252)
At this point it's never a good compiler to use so let's just remove it.
This commit is contained in:
parent
7b2d1a5b08
commit
375efe0945
@ -80,7 +80,7 @@ module OS
|
|||||||
alias_method :gcc_build_version, :gcc_42_build_version
|
alias_method :gcc_build_version, :gcc_42_build_version
|
||||||
|
|
||||||
def llvm_build_version
|
def llvm_build_version
|
||||||
DevelopmentTools.llvm_build_version
|
# no-op. DSL supported, compiler is not.
|
||||||
end
|
end
|
||||||
|
|
||||||
def clang_version
|
def clang_version
|
||||||
|
|||||||
@ -5,7 +5,6 @@ module CompilerConstants
|
|||||||
COMPILER_SYMBOL_MAP = {
|
COMPILER_SYMBOL_MAP = {
|
||||||
"gcc-4.0" => :gcc_4_0,
|
"gcc-4.0" => :gcc_4_0,
|
||||||
"gcc-4.2" => :gcc,
|
"gcc-4.2" => :gcc,
|
||||||
"llvm-gcc" => :llvm,
|
|
||||||
"clang" => :clang,
|
"clang" => :clang,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -62,7 +61,6 @@ class CompilerFailure
|
|||||||
:cxx11 => [
|
:cxx11 => [
|
||||||
create(:gcc_4_0),
|
create(:gcc_4_0),
|
||||||
create(:gcc),
|
create(:gcc),
|
||||||
create(:llvm),
|
|
||||||
create(:clang) { build 425 },
|
create(:clang) { build 425 },
|
||||||
create(:gcc => "4.3"),
|
create(:gcc => "4.3"),
|
||||||
create(:gcc => "4.4"),
|
create(:gcc => "4.4"),
|
||||||
@ -71,7 +69,6 @@ class CompilerFailure
|
|||||||
],
|
],
|
||||||
:openmp => [
|
:openmp => [
|
||||||
create(:clang),
|
create(:clang),
|
||||||
create(:llvm),
|
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
@ -82,10 +79,9 @@ class CompilerSelector
|
|||||||
Compiler = Struct.new(:name, :version)
|
Compiler = Struct.new(:name, :version)
|
||||||
|
|
||||||
COMPILER_PRIORITY = {
|
COMPILER_PRIORITY = {
|
||||||
:clang => [:clang, :gcc, :llvm, :gnu, :gcc_4_0],
|
:clang => [:clang, :gcc, :gnu, :gcc_4_0],
|
||||||
:gcc => [:gcc, :llvm, :gnu, :clang, :gcc_4_0],
|
:gcc => [:gcc, :gnu, :clang, :gcc_4_0],
|
||||||
:llvm => [:llvm, :gcc, :gnu, :clang, :gcc_4_0],
|
:gcc_4_0 => [:gcc_4_0, :gcc, :gnu, :clang],
|
||||||
:gcc_4_0 => [:gcc_4_0, :gcc, :llvm, :gnu, :clang],
|
|
||||||
}
|
}
|
||||||
|
|
||||||
def self.select_for(formula, compilers = self.compilers)
|
def self.select_for(formula, compilers = self.compilers)
|
||||||
@ -121,6 +117,8 @@ class CompilerSelector
|
|||||||
version = compiler_version(name)
|
version = compiler_version(name)
|
||||||
yield Compiler.new(name, version) if version
|
yield Compiler.new(name, version) if version
|
||||||
end
|
end
|
||||||
|
when :llvm
|
||||||
|
# no-op. DSL supported, compiler is not.
|
||||||
else
|
else
|
||||||
version = compiler_version(compiler)
|
version = compiler_version(compiler)
|
||||||
yield Compiler.new(compiler, version) if version
|
yield Compiler.new(compiler, version) if version
|
||||||
|
|||||||
@ -30,7 +30,6 @@ class DevelopmentTools
|
|||||||
# over the system's GCC 4.0
|
# over the system's GCC 4.0
|
||||||
when /^gcc-4.0/ then gcc_42_build_version ? :gcc : :gcc_4_0
|
when /^gcc-4.0/ then gcc_42_build_version ? :gcc : :gcc_4_0
|
||||||
when /^gcc/ then :gcc
|
when /^gcc/ then :gcc
|
||||||
when /^llvm/ then :llvm
|
|
||||||
else :clang
|
else :clang
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -54,13 +53,6 @@ class DevelopmentTools
|
|||||||
end
|
end
|
||||||
alias_method :gcc_build_version, :gcc_42_build_version
|
alias_method :gcc_build_version, :gcc_42_build_version
|
||||||
|
|
||||||
def llvm_build_version
|
|
||||||
@llvm_build_version ||=
|
|
||||||
if (path = locate("llvm-gcc")) && !path.realpath.basename.to_s.start_with?("clang")
|
|
||||||
`#{path} --version`[/LLVM build (\d{4,})/, 1].to_i
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def clang_version
|
def clang_version
|
||||||
@clang_version ||=
|
@clang_version ||=
|
||||||
if (path = locate("clang"))
|
if (path = locate("clang"))
|
||||||
@ -85,7 +77,7 @@ class DevelopmentTools
|
|||||||
end
|
end
|
||||||
|
|
||||||
def clear_version_cache
|
def clear_version_cache
|
||||||
@gcc_40_build_version = @gcc_42_build_version = @llvm_build_version = nil
|
@gcc_40_build_version = @gcc_42_build_version = nil
|
||||||
@clang_version = @clang_build_version = nil
|
@clang_version = @clang_build_version = nil
|
||||||
@non_apple_gcc_version = {}
|
@non_apple_gcc_version = {}
|
||||||
end
|
end
|
||||||
|
|||||||
@ -149,11 +149,6 @@ module Stdenv
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def llvm
|
|
||||||
super
|
|
||||||
set_cpu_cflags
|
|
||||||
end
|
|
||||||
|
|
||||||
def clang
|
def clang
|
||||||
super
|
super
|
||||||
replace_in_cflags(/-Xarch_#{Hardware::CPU.arch_32_bit} (-march=\S*)/, '\1')
|
replace_in_cflags(/-Xarch_#{Hardware::CPU.arch_32_bit} (-march=\S*)/, '\1')
|
||||||
|
|||||||
@ -19,14 +19,11 @@ class DevelopmentTools
|
|||||||
# over the system's GCC 4.0
|
# over the system's GCC 4.0
|
||||||
when /^gcc-4.0/ then gcc_42_build_version ? :gcc : :gcc_4_0
|
when /^gcc-4.0/ then gcc_42_build_version ? :gcc : :gcc_4_0
|
||||||
when /^gcc/ then :gcc
|
when /^gcc/ then :gcc
|
||||||
when /^llvm/ then :llvm
|
|
||||||
when "clang" then :clang
|
when "clang" then :clang
|
||||||
else
|
else
|
||||||
# guess :(
|
# guess :(
|
||||||
if Xcode.version >= "4.3"
|
if Xcode.version >= "4.3"
|
||||||
:clang
|
:clang
|
||||||
elsif Xcode.version >= "4.2"
|
|
||||||
:llvm
|
|
||||||
else
|
else
|
||||||
:gcc
|
:gcc
|
||||||
end
|
end
|
||||||
|
|||||||
@ -1988,12 +1988,7 @@ class Formula
|
|||||||
|
|
||||||
# Marks the {Formula} as failing with a particular compiler so it will fall back to others.
|
# Marks the {Formula} as failing with a particular compiler so it will fall back to others.
|
||||||
# For Apple compilers, this should be in the format:
|
# For Apple compilers, this should be in the format:
|
||||||
# <pre>fails_with :llvm do # :llvm is really llvm-gcc
|
# <pre>fails_with :clang do
|
||||||
# build 2334
|
|
||||||
# cause "Segmentation fault during linking."
|
|
||||||
# end
|
|
||||||
#
|
|
||||||
# fails_with :clang do
|
|
||||||
# build 600
|
# build 600
|
||||||
# cause "multiple configure and compile errors"
|
# cause "multiple configure and compile errors"
|
||||||
# end</pre>
|
# end</pre>
|
||||||
|
|||||||
@ -162,24 +162,24 @@ module OS
|
|||||||
"2.0" => { :gcc_40_build => 4061 },
|
"2.0" => { :gcc_40_build => 4061 },
|
||||||
"2.5" => { :gcc_40_build => 5370 },
|
"2.5" => { :gcc_40_build => 5370 },
|
||||||
"3.1.4" => { :gcc_40_build => 5493, :gcc_42_build => 5577 },
|
"3.1.4" => { :gcc_40_build => 5493, :gcc_42_build => 5577 },
|
||||||
"3.2.6" => { :gcc_40_build => 5494, :gcc_42_build => 5666, :llvm_build => 2335, :clang => "1.7", :clang_build => 77 },
|
"3.2.6" => { :gcc_40_build => 5494, :gcc_42_build => 5666, :clang => "1.7", :clang_build => 77 },
|
||||||
"4.0" => { :gcc_40_build => 5494, :gcc_42_build => 5666, :llvm_build => 2335, :clang => "2.0", :clang_build => 137 },
|
"4.0" => { :gcc_40_build => 5494, :gcc_42_build => 5666, :clang => "2.0", :clang_build => 137 },
|
||||||
"4.0.1" => { :gcc_40_build => 5494, :gcc_42_build => 5666, :llvm_build => 2335, :clang => "2.0", :clang_build => 137 },
|
"4.0.1" => { :gcc_40_build => 5494, :gcc_42_build => 5666, :clang => "2.0", :clang_build => 137 },
|
||||||
"4.0.2" => { :gcc_40_build => 5494, :gcc_42_build => 5666, :llvm_build => 2335, :clang => "2.0", :clang_build => 137 },
|
"4.0.2" => { :gcc_40_build => 5494, :gcc_42_build => 5666, :clang => "2.0", :clang_build => 137 },
|
||||||
"4.2" => { :llvm_build => 2336, :clang => "3.0", :clang_build => 211 },
|
"4.2" => { :clang => "3.0", :clang_build => 211 },
|
||||||
"4.3" => { :llvm_build => 2336, :clang => "3.1", :clang_build => 318 },
|
"4.3" => { :clang => "3.1", :clang_build => 318 },
|
||||||
"4.3.1" => { :llvm_build => 2336, :clang => "3.1", :clang_build => 318 },
|
"4.3.1" => { :clang => "3.1", :clang_build => 318 },
|
||||||
"4.3.2" => { :llvm_build => 2336, :clang => "3.1", :clang_build => 318 },
|
"4.3.2" => { :clang => "3.1", :clang_build => 318 },
|
||||||
"4.3.3" => { :llvm_build => 2336, :clang => "3.1", :clang_build => 318 },
|
"4.3.3" => { :clang => "3.1", :clang_build => 318 },
|
||||||
"4.4" => { :llvm_build => 2336, :clang => "4.0", :clang_build => 421 },
|
"4.4" => { :clang => "4.0", :clang_build => 421 },
|
||||||
"4.4.1" => { :llvm_build => 2336, :clang => "4.0", :clang_build => 421 },
|
"4.4.1" => { :clang => "4.0", :clang_build => 421 },
|
||||||
"4.5" => { :llvm_build => 2336, :clang => "4.1", :clang_build => 421 },
|
"4.5" => { :clang => "4.1", :clang_build => 421 },
|
||||||
"4.5.1" => { :llvm_build => 2336, :clang => "4.1", :clang_build => 421 },
|
"4.5.1" => { :clang => "4.1", :clang_build => 421 },
|
||||||
"4.5.2" => { :llvm_build => 2336, :clang => "4.1", :clang_build => 421 },
|
"4.5.2" => { :clang => "4.1", :clang_build => 421 },
|
||||||
"4.6" => { :llvm_build => 2336, :clang => "4.2", :clang_build => 425 },
|
"4.6" => { :clang => "4.2", :clang_build => 425 },
|
||||||
"4.6.1" => { :llvm_build => 2336, :clang => "4.2", :clang_build => 425 },
|
"4.6.1" => { :clang => "4.2", :clang_build => 425 },
|
||||||
"4.6.2" => { :llvm_build => 2336, :clang => "4.2", :clang_build => 425 },
|
"4.6.2" => { :clang => "4.2", :clang_build => 425 },
|
||||||
"4.6.3" => { :llvm_build => 2336, :clang => "4.2", :clang_build => 425 },
|
"4.6.3" => { :clang => "4.2", :clang_build => 425 },
|
||||||
"5.0" => { :clang => "5.0", :clang_build => 500 },
|
"5.0" => { :clang => "5.0", :clang_build => 500 },
|
||||||
"5.0.1" => { :clang => "5.0", :clang_build => 500 },
|
"5.0.1" => { :clang => "5.0", :clang_build => 500 },
|
||||||
"5.0.2" => { :clang => "5.0", :clang_build => 500 },
|
"5.0.2" => { :clang => "5.0", :clang_build => 500 },
|
||||||
|
|||||||
@ -105,21 +105,6 @@ module OS
|
|||||||
# Xcode.version would always be non-nil. This is deprecated, and will
|
# Xcode.version would always be non-nil. This is deprecated, and will
|
||||||
# be removed in a future version. To remain compatible, guard usage of
|
# be removed in a future version. To remain compatible, guard usage of
|
||||||
# Xcode.version with an Xcode.installed? check.
|
# Xcode.version with an Xcode.installed? check.
|
||||||
case DevelopmentTools.llvm_build_version.to_i
|
|
||||||
when 1..2063 then "3.1.0"
|
|
||||||
when 2064..2065 then "3.1.4"
|
|
||||||
when 2066..2325
|
|
||||||
# we have no data for this range so we are guessing
|
|
||||||
"3.2.0"
|
|
||||||
when 2326
|
|
||||||
# also applies to "3.2.3"
|
|
||||||
"3.2.4"
|
|
||||||
when 2327..2333 then "3.2.5"
|
|
||||||
when 2335
|
|
||||||
# this build number applies to 3.2.6, 4.0 and 4.1
|
|
||||||
# https://github.com/Homebrew/brew/blob/master/share/doc/homebrew/Xcode.md
|
|
||||||
"4.0"
|
|
||||||
else
|
|
||||||
case (DevelopmentTools.clang_version.to_f * 10).to_i
|
case (DevelopmentTools.clang_version.to_f * 10).to_i
|
||||||
when 0 then "dunno"
|
when 0 then "dunno"
|
||||||
when 1..14 then "3.2.2"
|
when 1..14 then "3.2.2"
|
||||||
@ -141,7 +126,6 @@ module OS
|
|||||||
else "7.3"
|
else "7.3"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
|
||||||
def provides_gcc?
|
def provides_gcc?
|
||||||
version < "4.3"
|
version < "4.3"
|
||||||
|
|||||||
@ -6,10 +6,6 @@ require "development_tools"
|
|||||||
|
|
||||||
class SystemConfig
|
class SystemConfig
|
||||||
class << self
|
class << self
|
||||||
def llvm
|
|
||||||
@llvm ||= DevelopmentTools.llvm_build_version if DevelopmentTools.installed?
|
|
||||||
end
|
|
||||||
|
|
||||||
def gcc_42
|
def gcc_42
|
||||||
@gcc_42 ||= DevelopmentTools.gcc_42_build_version if DevelopmentTools.installed?
|
@gcc_42 ||= DevelopmentTools.gcc_42_build_version if DevelopmentTools.installed?
|
||||||
end
|
end
|
||||||
@ -130,7 +126,6 @@ class SystemConfig
|
|||||||
f.puts hardware if hardware
|
f.puts hardware if hardware
|
||||||
f.puts "GCC-4.0: build #{gcc_40}" if gcc_40
|
f.puts "GCC-4.0: build #{gcc_40}" if gcc_40
|
||||||
f.puts "GCC-4.2: build #{gcc_42}" if gcc_42
|
f.puts "GCC-4.2: build #{gcc_42}" if gcc_42
|
||||||
f.puts "LLVM-GCC: build #{llvm}" if llvm
|
|
||||||
f.puts "Clang: #{clang ? "#{clang} build #{clang_build}" : "N/A"}"
|
f.puts "Clang: #{clang ? "#{clang} build #{clang_build}" : "N/A"}"
|
||||||
f.puts "Perl: #{describe_perl}"
|
f.puts "Perl: #{describe_perl}"
|
||||||
f.puts "Python: #{describe_python}"
|
f.puts "Python: #{describe_python}"
|
||||||
|
|||||||
@ -7,7 +7,6 @@ module SharedEnvTests
|
|||||||
end
|
end
|
||||||
|
|
||||||
def test_switching_compilers
|
def test_switching_compilers
|
||||||
@env.llvm
|
|
||||||
@env.clang
|
@env.clang
|
||||||
assert_nil @env["LD"]
|
assert_nil @env["LD"]
|
||||||
assert_equal @env["OBJC"], @env["CC"]
|
assert_equal @env["OBJC"], @env["CC"]
|
||||||
@ -106,7 +105,7 @@ module SharedEnvTests
|
|||||||
end
|
end
|
||||||
|
|
||||||
def test_switching_compilers_updates_compiler
|
def test_switching_compilers_updates_compiler
|
||||||
[:clang, :llvm, :gcc, :gcc_4_0].each do |compiler|
|
[:clang, :gcc, :gcc_4_0].each do |compiler|
|
||||||
@env.send(compiler)
|
@env.send(compiler)
|
||||||
assert_equal compiler, @env.compiler
|
assert_equal compiler, @env.compiler
|
||||||
end
|
end
|
||||||
|
|||||||
@ -12,12 +12,11 @@ class CompilerSelectorTests < Homebrew::TestCase
|
|||||||
|
|
||||||
class CompilerVersions
|
class CompilerVersions
|
||||||
attr_accessor :gcc_4_0_build_version, :gcc_build_version,
|
attr_accessor :gcc_4_0_build_version, :gcc_build_version,
|
||||||
:llvm_build_version, :clang_build_version
|
:clang_build_version
|
||||||
|
|
||||||
def initialize
|
def initialize
|
||||||
@gcc_4_0_build_version = nil
|
@gcc_4_0_build_version = nil
|
||||||
@gcc_build_version = 5666
|
@gcc_build_version = 5666
|
||||||
@llvm_build_version = 2336
|
|
||||||
@clang_build_version = 425
|
@clang_build_version = 425
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -73,7 +72,7 @@ class CompilerSelectorTests < Homebrew::TestCase
|
|||||||
|
|
||||||
def test_mixed_failures_1
|
def test_mixed_failures_1
|
||||||
@f << :clang << :gcc
|
@f << :clang << :gcc
|
||||||
assert_equal :llvm, actual_cc
|
assert_equal "gcc-4.8", actual_cc
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_mixed_failures_2
|
def test_mixed_failures_2
|
||||||
@ -96,9 +95,9 @@ class CompilerSelectorTests < Homebrew::TestCase
|
|||||||
assert_equal "gcc-4.7", actual_cc
|
assert_equal "gcc-4.7", actual_cc
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_llvm_precedence
|
def test_gcc_precedence
|
||||||
@f << :clang << :gcc
|
@f << :clang << :gcc
|
||||||
assert_equal :llvm, actual_cc
|
assert_equal "gcc-4.8", actual_cc
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_missing_gcc
|
def test_missing_gcc
|
||||||
@ -108,7 +107,7 @@ class CompilerSelectorTests < Homebrew::TestCase
|
|||||||
end
|
end
|
||||||
|
|
||||||
def test_missing_llvm_and_gcc
|
def test_missing_llvm_and_gcc
|
||||||
@versions.gcc_build_version = @versions.llvm_build_version = nil
|
@versions.gcc_build_version = nil
|
||||||
@f << :clang << { :gcc => "4.8" } << { :gcc => "4.7" }
|
@f << :clang << { :gcc => "4.8" } << { :gcc => "4.7" }
|
||||||
assert_raises(CompilerSelectionError) { actual_cc }
|
assert_raises(CompilerSelectionError) { actual_cc }
|
||||||
end
|
end
|
||||||
|
|||||||
@ -81,12 +81,12 @@ class InstallTests < Homebrew::TestCase
|
|||||||
def test_not_poured_from_bottle_when_compiler_specified
|
def test_not_poured_from_bottle_when_compiler_specified
|
||||||
assert_nil ARGV.cc
|
assert_nil ARGV.cc
|
||||||
|
|
||||||
cc_arg = "--cc=llvm-gcc"
|
cc_arg = "--cc=clang"
|
||||||
ARGV << cc_arg
|
ARGV << cc_arg
|
||||||
begin
|
begin
|
||||||
temporary_install(TestballBottle.new) do |f|
|
temporary_install(TestballBottle.new) do |f|
|
||||||
tab = Tab.for_formula(f)
|
tab = Tab.for_formula(f)
|
||||||
assert_equal "llvm", tab.compiler
|
assert_equal "clang", tab.compiler
|
||||||
end
|
end
|
||||||
ensure
|
ensure
|
||||||
ARGV.delete_if { |x| x == cc_arg }
|
ARGV.delete_if { |x| x == cc_arg }
|
||||||
|
|||||||
@ -6,7 +6,6 @@ class CxxStdlibTests < Homebrew::TestCase
|
|||||||
def setup
|
def setup
|
||||||
@clang = CxxStdlib.create(:libstdcxx, :clang)
|
@clang = CxxStdlib.create(:libstdcxx, :clang)
|
||||||
@gcc = CxxStdlib.create(:libstdcxx, :gcc)
|
@gcc = CxxStdlib.create(:libstdcxx, :gcc)
|
||||||
@llvm = CxxStdlib.create(:libstdcxx, :llvm)
|
|
||||||
@gcc4 = CxxStdlib.create(:libstdcxx, :gcc_4_0)
|
@gcc4 = CxxStdlib.create(:libstdcxx, :gcc_4_0)
|
||||||
@gcc48 = CxxStdlib.create(:libstdcxx, "gcc-4.8")
|
@gcc48 = CxxStdlib.create(:libstdcxx, "gcc-4.8")
|
||||||
@gcc49 = CxxStdlib.create(:libstdcxx, "gcc-4.9")
|
@gcc49 = CxxStdlib.create(:libstdcxx, "gcc-4.9")
|
||||||
@ -16,7 +15,6 @@ class CxxStdlibTests < Homebrew::TestCase
|
|||||||
|
|
||||||
def test_apple_libstdcxx_intercompatibility
|
def test_apple_libstdcxx_intercompatibility
|
||||||
assert @clang.compatible_with?(@gcc)
|
assert @clang.compatible_with?(@gcc)
|
||||||
assert @clang.compatible_with?(@llvm)
|
|
||||||
assert @clang.compatible_with?(@gcc4)
|
assert @clang.compatible_with?(@gcc4)
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -44,7 +42,6 @@ class CxxStdlibTests < Homebrew::TestCase
|
|||||||
def test_apple_compiler_reporting
|
def test_apple_compiler_reporting
|
||||||
assert_predicate @clang, :apple_compiler?
|
assert_predicate @clang, :apple_compiler?
|
||||||
assert_predicate @gcc, :apple_compiler?
|
assert_predicate @gcc, :apple_compiler?
|
||||||
assert_predicate @llvm, :apple_compiler?
|
|
||||||
assert_predicate @gcc4, :apple_compiler?
|
assert_predicate @gcc4, :apple_compiler?
|
||||||
refute_predicate @gcc48, :apple_compiler?
|
refute_predicate @gcc48, :apple_compiler?
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user