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
|
||||
|
||||
def llvm_build_version
|
||||
DevelopmentTools.llvm_build_version
|
||||
# no-op. DSL supported, compiler is not.
|
||||
end
|
||||
|
||||
def clang_version
|
||||
|
||||
@ -5,7 +5,6 @@ module CompilerConstants
|
||||
COMPILER_SYMBOL_MAP = {
|
||||
"gcc-4.0" => :gcc_4_0,
|
||||
"gcc-4.2" => :gcc,
|
||||
"llvm-gcc" => :llvm,
|
||||
"clang" => :clang,
|
||||
}
|
||||
|
||||
@ -62,7 +61,6 @@ class CompilerFailure
|
||||
:cxx11 => [
|
||||
create(:gcc_4_0),
|
||||
create(:gcc),
|
||||
create(:llvm),
|
||||
create(:clang) { build 425 },
|
||||
create(:gcc => "4.3"),
|
||||
create(:gcc => "4.4"),
|
||||
@ -71,7 +69,6 @@ class CompilerFailure
|
||||
],
|
||||
:openmp => [
|
||||
create(:clang),
|
||||
create(:llvm),
|
||||
],
|
||||
}
|
||||
end
|
||||
@ -82,10 +79,9 @@ class CompilerSelector
|
||||
Compiler = Struct.new(:name, :version)
|
||||
|
||||
COMPILER_PRIORITY = {
|
||||
:clang => [:clang, :gcc, :llvm, :gnu, :gcc_4_0],
|
||||
:gcc => [:gcc, :llvm, :gnu, :clang, :gcc_4_0],
|
||||
:llvm => [:llvm, :gcc, :gnu, :clang, :gcc_4_0],
|
||||
:gcc_4_0 => [:gcc_4_0, :gcc, :llvm, :gnu, :clang],
|
||||
:clang => [:clang, :gcc, :gnu, :gcc_4_0],
|
||||
:gcc => [:gcc, :gnu, :clang, :gcc_4_0],
|
||||
:gcc_4_0 => [:gcc_4_0, :gcc, :gnu, :clang],
|
||||
}
|
||||
|
||||
def self.select_for(formula, compilers = self.compilers)
|
||||
@ -121,6 +117,8 @@ class CompilerSelector
|
||||
version = compiler_version(name)
|
||||
yield Compiler.new(name, version) if version
|
||||
end
|
||||
when :llvm
|
||||
# no-op. DSL supported, compiler is not.
|
||||
else
|
||||
version = compiler_version(compiler)
|
||||
yield Compiler.new(compiler, version) if version
|
||||
|
||||
@ -30,7 +30,6 @@ class DevelopmentTools
|
||||
# over the system's GCC 4.0
|
||||
when /^gcc-4.0/ then gcc_42_build_version ? :gcc : :gcc_4_0
|
||||
when /^gcc/ then :gcc
|
||||
when /^llvm/ then :llvm
|
||||
else :clang
|
||||
end
|
||||
end
|
||||
@ -54,13 +53,6 @@ class DevelopmentTools
|
||||
end
|
||||
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
|
||||
@clang_version ||=
|
||||
if (path = locate("clang"))
|
||||
@ -85,7 +77,7 @@ class DevelopmentTools
|
||||
end
|
||||
|
||||
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
|
||||
@non_apple_gcc_version = {}
|
||||
end
|
||||
|
||||
@ -149,11 +149,6 @@ module Stdenv
|
||||
end
|
||||
end
|
||||
|
||||
def llvm
|
||||
super
|
||||
set_cpu_cflags
|
||||
end
|
||||
|
||||
def clang
|
||||
super
|
||||
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
|
||||
when /^gcc-4.0/ then gcc_42_build_version ? :gcc : :gcc_4_0
|
||||
when /^gcc/ then :gcc
|
||||
when /^llvm/ then :llvm
|
||||
when "clang" then :clang
|
||||
else
|
||||
# guess :(
|
||||
if Xcode.version >= "4.3"
|
||||
:clang
|
||||
elsif Xcode.version >= "4.2"
|
||||
:llvm
|
||||
else
|
||||
:gcc
|
||||
end
|
||||
|
||||
@ -1988,12 +1988,7 @@ class Formula
|
||||
|
||||
# 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:
|
||||
# <pre>fails_with :llvm do # :llvm is really llvm-gcc
|
||||
# build 2334
|
||||
# cause "Segmentation fault during linking."
|
||||
# end
|
||||
#
|
||||
# fails_with :clang do
|
||||
# <pre>fails_with :clang do
|
||||
# build 600
|
||||
# cause "multiple configure and compile errors"
|
||||
# end</pre>
|
||||
|
||||
@ -162,24 +162,24 @@ module OS
|
||||
"2.0" => { :gcc_40_build => 4061 },
|
||||
"2.5" => { :gcc_40_build => 5370 },
|
||||
"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 },
|
||||
"4.0" => { :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, :llvm_build => 2335, :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.2" => { :llvm_build => 2336, :clang => "3.0", :clang_build => 211 },
|
||||
"4.3" => { :llvm_build => 2336, :clang => "3.1", :clang_build => 318 },
|
||||
"4.3.1" => { :llvm_build => 2336, :clang => "3.1", :clang_build => 318 },
|
||||
"4.3.2" => { :llvm_build => 2336, :clang => "3.1", :clang_build => 318 },
|
||||
"4.3.3" => { :llvm_build => 2336, :clang => "3.1", :clang_build => 318 },
|
||||
"4.4" => { :llvm_build => 2336, :clang => "4.0", :clang_build => 421 },
|
||||
"4.4.1" => { :llvm_build => 2336, :clang => "4.0", :clang_build => 421 },
|
||||
"4.5" => { :llvm_build => 2336, :clang => "4.1", :clang_build => 421 },
|
||||
"4.5.1" => { :llvm_build => 2336, :clang => "4.1", :clang_build => 421 },
|
||||
"4.5.2" => { :llvm_build => 2336, :clang => "4.1", :clang_build => 421 },
|
||||
"4.6" => { :llvm_build => 2336, :clang => "4.2", :clang_build => 425 },
|
||||
"4.6.1" => { :llvm_build => 2336, :clang => "4.2", :clang_build => 425 },
|
||||
"4.6.2" => { :llvm_build => 2336, :clang => "4.2", :clang_build => 425 },
|
||||
"4.6.3" => { :llvm_build => 2336, :clang => "4.2", :clang_build => 425 },
|
||||
"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, :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, :clang => "2.0", :clang_build => 137 },
|
||||
"4.2" => { :clang => "3.0", :clang_build => 211 },
|
||||
"4.3" => { :clang => "3.1", :clang_build => 318 },
|
||||
"4.3.1" => { :clang => "3.1", :clang_build => 318 },
|
||||
"4.3.2" => { :clang => "3.1", :clang_build => 318 },
|
||||
"4.3.3" => { :clang => "3.1", :clang_build => 318 },
|
||||
"4.4" => { :clang => "4.0", :clang_build => 421 },
|
||||
"4.4.1" => { :clang => "4.0", :clang_build => 421 },
|
||||
"4.5" => { :clang => "4.1", :clang_build => 421 },
|
||||
"4.5.1" => { :clang => "4.1", :clang_build => 421 },
|
||||
"4.5.2" => { :clang => "4.1", :clang_build => 421 },
|
||||
"4.6" => { :clang => "4.2", :clang_build => 425 },
|
||||
"4.6.1" => { :clang => "4.2", :clang_build => 425 },
|
||||
"4.6.2" => { :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.1" => { :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
|
||||
# be removed in a future version. To remain compatible, guard usage of
|
||||
# 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
|
||||
when 0 then "dunno"
|
||||
when 1..14 then "3.2.2"
|
||||
@ -141,7 +126,6 @@ module OS
|
||||
else "7.3"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def provides_gcc?
|
||||
version < "4.3"
|
||||
|
||||
@ -6,10 +6,6 @@ require "development_tools"
|
||||
|
||||
class SystemConfig
|
||||
class << self
|
||||
def llvm
|
||||
@llvm ||= DevelopmentTools.llvm_build_version if DevelopmentTools.installed?
|
||||
end
|
||||
|
||||
def gcc_42
|
||||
@gcc_42 ||= DevelopmentTools.gcc_42_build_version if DevelopmentTools.installed?
|
||||
end
|
||||
@ -130,7 +126,6 @@ class SystemConfig
|
||||
f.puts hardware if hardware
|
||||
f.puts "GCC-4.0: build #{gcc_40}" if gcc_40
|
||||
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 "Perl: #{describe_perl}"
|
||||
f.puts "Python: #{describe_python}"
|
||||
|
||||
@ -7,7 +7,6 @@ module SharedEnvTests
|
||||
end
|
||||
|
||||
def test_switching_compilers
|
||||
@env.llvm
|
||||
@env.clang
|
||||
assert_nil @env["LD"]
|
||||
assert_equal @env["OBJC"], @env["CC"]
|
||||
@ -106,7 +105,7 @@ module SharedEnvTests
|
||||
end
|
||||
|
||||
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)
|
||||
assert_equal compiler, @env.compiler
|
||||
end
|
||||
|
||||
@ -12,12 +12,11 @@ class CompilerSelectorTests < Homebrew::TestCase
|
||||
|
||||
class CompilerVersions
|
||||
attr_accessor :gcc_4_0_build_version, :gcc_build_version,
|
||||
:llvm_build_version, :clang_build_version
|
||||
:clang_build_version
|
||||
|
||||
def initialize
|
||||
@gcc_4_0_build_version = nil
|
||||
@gcc_build_version = 5666
|
||||
@llvm_build_version = 2336
|
||||
@clang_build_version = 425
|
||||
end
|
||||
|
||||
@ -73,7 +72,7 @@ class CompilerSelectorTests < Homebrew::TestCase
|
||||
|
||||
def test_mixed_failures_1
|
||||
@f << :clang << :gcc
|
||||
assert_equal :llvm, actual_cc
|
||||
assert_equal "gcc-4.8", actual_cc
|
||||
end
|
||||
|
||||
def test_mixed_failures_2
|
||||
@ -96,9 +95,9 @@ class CompilerSelectorTests < Homebrew::TestCase
|
||||
assert_equal "gcc-4.7", actual_cc
|
||||
end
|
||||
|
||||
def test_llvm_precedence
|
||||
def test_gcc_precedence
|
||||
@f << :clang << :gcc
|
||||
assert_equal :llvm, actual_cc
|
||||
assert_equal "gcc-4.8", actual_cc
|
||||
end
|
||||
|
||||
def test_missing_gcc
|
||||
@ -108,7 +107,7 @@ class CompilerSelectorTests < Homebrew::TestCase
|
||||
end
|
||||
|
||||
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" }
|
||||
assert_raises(CompilerSelectionError) { actual_cc }
|
||||
end
|
||||
|
||||
@ -81,12 +81,12 @@ class InstallTests < Homebrew::TestCase
|
||||
def test_not_poured_from_bottle_when_compiler_specified
|
||||
assert_nil ARGV.cc
|
||||
|
||||
cc_arg = "--cc=llvm-gcc"
|
||||
cc_arg = "--cc=clang"
|
||||
ARGV << cc_arg
|
||||
begin
|
||||
temporary_install(TestballBottle.new) do |f|
|
||||
tab = Tab.for_formula(f)
|
||||
assert_equal "llvm", tab.compiler
|
||||
assert_equal "clang", tab.compiler
|
||||
end
|
||||
ensure
|
||||
ARGV.delete_if { |x| x == cc_arg }
|
||||
|
||||
@ -6,7 +6,6 @@ class CxxStdlibTests < Homebrew::TestCase
|
||||
def setup
|
||||
@clang = CxxStdlib.create(:libstdcxx, :clang)
|
||||
@gcc = CxxStdlib.create(:libstdcxx, :gcc)
|
||||
@llvm = CxxStdlib.create(:libstdcxx, :llvm)
|
||||
@gcc4 = CxxStdlib.create(:libstdcxx, :gcc_4_0)
|
||||
@gcc48 = CxxStdlib.create(:libstdcxx, "gcc-4.8")
|
||||
@gcc49 = CxxStdlib.create(:libstdcxx, "gcc-4.9")
|
||||
@ -16,7 +15,6 @@ class CxxStdlibTests < Homebrew::TestCase
|
||||
|
||||
def test_apple_libstdcxx_intercompatibility
|
||||
assert @clang.compatible_with?(@gcc)
|
||||
assert @clang.compatible_with?(@llvm)
|
||||
assert @clang.compatible_with?(@gcc4)
|
||||
end
|
||||
|
||||
@ -44,7 +42,6 @@ class CxxStdlibTests < Homebrew::TestCase
|
||||
def test_apple_compiler_reporting
|
||||
assert_predicate @clang, :apple_compiler?
|
||||
assert_predicate @gcc, :apple_compiler?
|
||||
assert_predicate @llvm, :apple_compiler?
|
||||
assert_predicate @gcc4, :apple_compiler?
|
||||
refute_predicate @gcc48, :apple_compiler?
|
||||
end
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user