From 375efe09455218d9929e41f16317074ccdf50f2a Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Sun, 22 May 2016 09:40:08 +0100 Subject: Remove LLVM-GCC support. (#252) At this point it's never a good compiler to use so let's just remove it.--- Library/Homebrew/compat/macos.rb | 2 +- Library/Homebrew/compilers.rb | 12 +++----- Library/Homebrew/development_tools.rb | 10 +----- Library/Homebrew/extend/ENV/std.rb | 5 --- .../Homebrew/extend/os/mac/development_tools.rb | 3 -- Library/Homebrew/formula.rb | 7 +---- Library/Homebrew/os/mac.rb | 36 +++++++++++----------- Library/Homebrew/os/mac/xcode.rb | 18 +---------- Library/Homebrew/system_config.rb | 5 --- Library/Homebrew/test/test_ENV.rb | 3 +- Library/Homebrew/test/test_compiler_selector.rb | 11 +++---- Library/Homebrew/test/test_formula_installer.rb | 4 +-- Library/Homebrew/test/test_stdlib.rb | 3 -- 13 files changed, 35 insertions(+), 84 deletions(-) (limited to 'Library') diff --git a/Library/Homebrew/compat/macos.rb b/Library/Homebrew/compat/macos.rb index 716d11a2a..e534e2f2e 100644 --- a/Library/Homebrew/compat/macos.rb +++ b/Library/Homebrew/compat/macos.rb @@ -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 diff --git a/Library/Homebrew/compilers.rb b/Library/Homebrew/compilers.rb index 896b8f363..51f0919e5 100644 --- a/Library/Homebrew/compilers.rb +++ b/Library/Homebrew/compilers.rb @@ -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 diff --git a/Library/Homebrew/development_tools.rb b/Library/Homebrew/development_tools.rb index a301bc615..b4c2cb34b 100644 --- a/Library/Homebrew/development_tools.rb +++ b/Library/Homebrew/development_tools.rb @@ -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 diff --git a/Library/Homebrew/extend/ENV/std.rb b/Library/Homebrew/extend/ENV/std.rb index e5272cace..87eebb753 100644 --- a/Library/Homebrew/extend/ENV/std.rb +++ b/Library/Homebrew/extend/ENV/std.rb @@ -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') diff --git a/Library/Homebrew/extend/os/mac/development_tools.rb b/Library/Homebrew/extend/os/mac/development_tools.rb index 648b3e2bd..c7d8012da 100644 --- a/Library/Homebrew/extend/os/mac/development_tools.rb +++ b/Library/Homebrew/extend/os/mac/development_tools.rb @@ -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 diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index 57e7013c8..c621d6c37 100644 --- a/Library/Homebrew/formula.rb +++ b/Library/Homebrew/formula.rb @@ -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: - #
fails_with :llvm do # :llvm is really llvm-gcc
- # build 2334
- # cause "Segmentation fault during linking."
- # end
- #
- # fails_with :clang do
+ # fails_with :clang do
# build 600
# cause "multiple configure and compile errors"
# end
diff --git a/Library/Homebrew/os/mac.rb b/Library/Homebrew/os/mac.rb
index 5d2447c8d..9916c3b3f 100644
--- a/Library/Homebrew/os/mac.rb
+++ b/Library/Homebrew/os/mac.rb
@@ -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 },
diff --git a/Library/Homebrew/os/mac/xcode.rb b/Library/Homebrew/os/mac/xcode.rb
index 780082389..c5b6ccbfa 100644
--- a/Library/Homebrew/os/mac/xcode.rb
+++ b/Library/Homebrew/os/mac/xcode.rb
@@ -105,22 +105,7 @@ 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
+ case (DevelopmentTools.clang_version.to_f * 10).to_i
when 0 then "dunno"
when 1..14 then "3.2.2"
when 15 then "3.2.4"
@@ -139,7 +124,6 @@ module OS
when 70 then "7.0"
when 73 then "7.3"
else "7.3"
- end
end
end
diff --git a/Library/Homebrew/system_config.rb b/Library/Homebrew/system_config.rb
index 4f56addb5..edd49f8e0 100644
--- a/Library/Homebrew/system_config.rb
+++ b/Library/Homebrew/system_config.rb
@@ -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}"
diff --git a/Library/Homebrew/test/test_ENV.rb b/Library/Homebrew/test/test_ENV.rb
index 1d3290b5b..74d1cff79 100644
--- a/Library/Homebrew/test/test_ENV.rb
+++ b/Library/Homebrew/test/test_ENV.rb
@@ -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
diff --git a/Library/Homebrew/test/test_compiler_selector.rb b/Library/Homebrew/test/test_compiler_selector.rb
index 907252b68..d030d48ce 100644
--- a/Library/Homebrew/test/test_compiler_selector.rb
+++ b/Library/Homebrew/test/test_compiler_selector.rb
@@ -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
diff --git a/Library/Homebrew/test/test_formula_installer.rb b/Library/Homebrew/test/test_formula_installer.rb
index 1cdf54575..b592b6dfa 100644
--- a/Library/Homebrew/test/test_formula_installer.rb
+++ b/Library/Homebrew/test/test_formula_installer.rb
@@ -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 }
diff --git a/Library/Homebrew/test/test_stdlib.rb b/Library/Homebrew/test/test_stdlib.rb
index eb423f283..ee53e7c8c 100644
--- a/Library/Homebrew/test/test_stdlib.rb
+++ b/Library/Homebrew/test/test_stdlib.rb
@@ -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
--
cgit v1.2.3