aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Library/Formula/cyassl.rb4
-rw-r--r--Library/Formula/devil.rb1
-rw-r--r--Library/Formula/dpkg.rb1
-rw-r--r--Library/Formula/ghc.rb1
-rw-r--r--Library/Formula/go.rb1
-rw-r--r--Library/Formula/grass.rb1
-rw-r--r--Library/Formula/icu4c.rb1
-rw-r--r--Library/Formula/inkscape.rb5
-rw-r--r--Library/Formula/irrlicht.rb1
-rw-r--r--Library/Formula/libagg.rb1
-rw-r--r--Library/Formula/libmonome.rb1
-rw-r--r--Library/Formula/lilypond.rb1
-rw-r--r--Library/Formula/ncmpcpp.rb1
-rw-r--r--Library/Formula/notmuch.rb1
-rw-r--r--Library/Formula/simgrid.rb1
-rw-r--r--Library/Formula/tbb.rb1
-rw-r--r--Library/Formula/yap.rb1
-rwxr-xr-xLibrary/Homebrew/build.rb6
-rw-r--r--Library/Homebrew/compilers.rb37
-rw-r--r--Library/Homebrew/formula.rb6
-rw-r--r--Library/Homebrew/test/test_compilers.rb8
21 files changed, 11 insertions, 70 deletions
diff --git a/Library/Formula/cyassl.rb b/Library/Formula/cyassl.rb
index 59947104f..d376be650 100644
--- a/Library/Formula/cyassl.rb
+++ b/Library/Formula/cyassl.rb
@@ -16,9 +16,7 @@ class Cyassl < Formula
"https://github.com/cyassl/cyassl/commit/543d81ba97430844c04c82ea274a99122c9cd1b9.patch"
end
- fails_with :clang do
- build 425
- end
+ fails_with :clang
def install
args = %W[--infodir=#{info}
diff --git a/Library/Formula/devil.rb b/Library/Formula/devil.rb
index ff6b3546d..6a50e44bc 100644
--- a/Library/Formula/devil.rb
+++ b/Library/Formula/devil.rb
@@ -12,7 +12,6 @@ class Devil < Formula
# also, even with -std=gnu99 removed from the configure script,
# devil fails to build with clang++ while compiling il_exr.cpp
fails_with :clang do
- build 425
cause "invalid -std=gnu99 flag while building C++"
end
diff --git a/Library/Formula/dpkg.rb b/Library/Formula/dpkg.rb
index e2200e56a..b2cba27f9 100644
--- a/Library/Formula/dpkg.rb
+++ b/Library/Formula/dpkg.rb
@@ -9,7 +9,6 @@ class Dpkg < Formula
depends_on 'gnu-tar'
fails_with :clang do
- build 425
cause 'cstdlib:142:3: error: declaration conflicts with target of using declaration already in scope'
end
diff --git a/Library/Formula/ghc.rb b/Library/Formula/ghc.rb
index 6e8c5beae..436df0973 100644
--- a/Library/Formula/ghc.rb
+++ b/Library/Formula/ghc.rb
@@ -47,7 +47,6 @@ class Ghc < Formula
end
fails_with :clang do
- build 425
cause <<-EOS.undent
Building with Clang configures GHC to use Clang as its preprocessor,
which causes subsequent GHC-based builds to fail.
diff --git a/Library/Formula/go.rb b/Library/Formula/go.rb
index 2c52e7ffe..5be0a9f5f 100644
--- a/Library/Formula/go.rb
+++ b/Library/Formula/go.rb
@@ -14,7 +14,6 @@ class Go < Formula
if build.head?
fails_with :clang do
- build 425
cause "clang: error: no such file or directory: 'libgcc.a'"
end
end
diff --git a/Library/Formula/grass.rb b/Library/Formula/grass.rb
index 366b3dbe7..e4aad13c3 100644
--- a/Library/Formula/grass.rb
+++ b/Library/Formula/grass.rb
@@ -31,7 +31,6 @@ class Grass < Formula
def patches; DATA; end
fails_with :clang do
- build 425
cause "Multiple build failures while compiling GRASS tools."
end
diff --git a/Library/Formula/icu4c.rb b/Library/Formula/icu4c.rb
index 02a68983f..bbc11349c 100644
--- a/Library/Formula/icu4c.rb
+++ b/Library/Formula/icu4c.rb
@@ -18,7 +18,6 @@ class Icu4c < Formula
option :universal
fails_with :clang do
- build 425
cause "Icu will turn on C++11 mode when built with clang, which causes incompatibilities."
end
diff --git a/Library/Formula/inkscape.rb b/Library/Formula/inkscape.rb
index 4bcf8d8f3..5fbf5e2cb 100644
--- a/Library/Formula/inkscape.rb
+++ b/Library/Formula/inkscape.rb
@@ -20,10 +20,7 @@ class Inkscape < Formula
depends_on 'pango'
depends_on :x11
- fails_with :clang do
- build 425
- cause "Requires gcc"
- end
+ fails_with :clang
def install
system "./configure", "--disable-dependency-tracking",
diff --git a/Library/Formula/irrlicht.rb b/Library/Formula/irrlicht.rb
index 1b6079b71..d6431d178 100644
--- a/Library/Formula/irrlicht.rb
+++ b/Library/Formula/irrlicht.rb
@@ -10,7 +10,6 @@ class Irrlicht < Formula
depends_on :xcode
fails_with :clang do
- build 425
cause <<-EOS.undent
COpenGLExtensionHandler.h:2390:31: error: expected ')'
glProgramParameteriEXT((long GLuint)program, pname, value);
diff --git a/Library/Formula/libagg.rb b/Library/Formula/libagg.rb
index 3a026b1b1..3eb5e771a 100644
--- a/Library/Formula/libagg.rb
+++ b/Library/Formula/libagg.rb
@@ -12,7 +12,6 @@ class Libagg < Formula
depends_on :freetype => :optional
fails_with :clang do
- build 425
cause <<-EOS.undent
AGG tries to return a const reference as a non-const reference, which is
rejected by clang 3.1 but accepted by gcc
diff --git a/Library/Formula/libmonome.rb b/Library/Formula/libmonome.rb
index de6a03011..390b5ea9d 100644
--- a/Library/Formula/libmonome.rb
+++ b/Library/Formula/libmonome.rb
@@ -10,7 +10,6 @@ class Libmonome < Formula
depends_on 'liblo'
fails_with :clang do
- build 425
cause 'waf fails to find g++ when compiling with clang'
end
diff --git a/Library/Formula/lilypond.rb b/Library/Formula/lilypond.rb
index 799580e2a..7d102ec4d 100644
--- a/Library/Formula/lilypond.rb
+++ b/Library/Formula/lilypond.rb
@@ -40,7 +40,6 @@ class Lilypond < Formula
end
fails_with :clang do
- build 425
cause 'Strict C99 compliance error in a pointer conversion.'
end
diff --git a/Library/Formula/ncmpcpp.rb b/Library/Formula/ncmpcpp.rb
index df6004d5e..5249b68d0 100644
--- a/Library/Formula/ncmpcpp.rb
+++ b/Library/Formula/ncmpcpp.rb
@@ -11,7 +11,6 @@ class Ncmpcpp < Formula
depends_on 'fftw' if build.include? "visualizer"
fails_with :clang do
- build 425
cause "'itsTempString' is a private member of 'NCurses::basic_buffer<char>'"
end
diff --git a/Library/Formula/notmuch.rb b/Library/Formula/notmuch.rb
index 5ab24c312..a667ff84a 100644
--- a/Library/Formula/notmuch.rb
+++ b/Library/Formula/notmuch.rb
@@ -28,7 +28,6 @@ class Notmuch < Formula
depends_on 'gmime'
fails_with :clang do
- build 425
cause "./lib/notmuch-private.h:478:8: error: visibility does not match previous declaration"
end
diff --git a/Library/Formula/simgrid.rb b/Library/Formula/simgrid.rb
index 0e86470a6..8d3dd2298 100644
--- a/Library/Formula/simgrid.rb
+++ b/Library/Formula/simgrid.rb
@@ -10,7 +10,6 @@ class Simgrid < Formula
depends_on 'graphviz'
fails_with :clang do
- build 425
cause "Undefined symbols for architecture x86_64"
end
diff --git a/Library/Formula/tbb.rb b/Library/Formula/tbb.rb
index 089052b58..254fefab8 100644
--- a/Library/Formula/tbb.rb
+++ b/Library/Formula/tbb.rb
@@ -7,7 +7,6 @@ class Tbb < Formula
version '4.1u2'
fails_with :clang do
- build 425
cause "Undefined symbols for architecture x86_64: vtable for tbb::tbb_exception"
end
diff --git a/Library/Formula/yap.rb b/Library/Formula/yap.rb
index da127ff4f..3a722c0d3 100644
--- a/Library/Formula/yap.rb
+++ b/Library/Formula/yap.rb
@@ -14,7 +14,6 @@ class Yap < Formula
depends_on 'readline'
fails_with :clang do
- build 425
cause "Undefined symbols linking for architecture x86_64"
end
diff --git a/Library/Homebrew/build.rb b/Library/Homebrew/build.rb
index 6d22c8f1f..8d7d553ec 100755
--- a/Library/Homebrew/build.rb
+++ b/Library/Homebrew/build.rb
@@ -114,11 +114,7 @@ def install f
end
end
- if f.fails_with? ENV.compiler
- cs = CompilerSelector.new f
- cs.select_compiler
- cs.advise
- end
+ CompilerSelector.new(f).select_compiler if f.fails_with? ENV.compiler
f.brew do
if ARGV.flag? '--git'
diff --git a/Library/Homebrew/compilers.rb b/Library/Homebrew/compilers.rb
index ae3d7590e..f9ed8bcde 100644
--- a/Library/Homebrew/compilers.rb
+++ b/Library/Homebrew/compilers.rb
@@ -68,6 +68,7 @@ class CompilerFailure
def initialize compiler, &block
@compiler = compiler
instance_eval(&block) if block_given?
+ @build ||= 9999
end
def build val=nil
@@ -100,8 +101,7 @@ class CompilerSelector
# the failing build is >= the currently installed version of foo.
@compilers = @compilers.reject do |cc|
failure = @f.fails_with? cc
- next unless failure
- failure.build >= cc.build or not ARGV.homebrew_developer?
+ failure && failure.build >= cc.build
end
return if @compilers.empty? or @compilers.include? ENV.compiler
@@ -126,37 +126,4 @@ class CompilerSelector
end
end
end
-
- def advise
- failure = @f.fails_with? @old_compiler
- return unless failure
-
- # If we're still using the original ENV.compiler, then the formula did not
- # declare a specific failing build, so we continue and print some advice.
- # Otherwise, tell the user that we're switching compilers.
- if @old_compiler == ENV.compiler
- cc = Compiler.new(ENV.compiler)
- subject = "#{@f.name}-#{@f.version}: builds with #{NAMES[cc.name]}-#{cc.build}-#{MACOS_VERSION}"
- warning = "Using #{NAMES[cc.name]}, but this formula is reported to fail with #{NAMES[cc.name]}."
- warning += "\n\n#{failure.cause.strip}\n" unless failure.cause.nil?
- warning += <<-EOS.undent
-
- We are continuing anyway so if the build succeeds, please open a ticket with
- the subject
-
- #{subject}
-
- so that we can update the formula accordingly. Thanks!
- EOS
-
- viable = @compilers.reject { |c| @f.fails_with? c }
- unless viable.empty?
- warning += "\nIf it fails you can use "
- options = viable.map { |c| "--use-#{c.name}" }
- warning += "#{options*' or '} to try a different compiler."
- end
-
- opoo warning
- end
- end
end
diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb
index 2186b4a74..9234b45df 100644
--- a/Library/Homebrew/formula.rb
+++ b/Library/Homebrew/formula.rb
@@ -200,10 +200,8 @@ class Formula
def fails_with? cc
return false if self.class.cc_failures.nil?
cc = Compiler.new(cc) unless cc.is_a? Compiler
- return self.class.cc_failures.find do |failure|
- next unless failure.compiler == cc.name
- failure.build.zero? or \
- (failure.build >= cc.build or not ARGV.homebrew_developer?)
+ self.class.cc_failures.find do |failure|
+ failure.compiler == cc.name && failure.build >= cc.build
end
end
diff --git a/Library/Homebrew/test/test_compilers.rb b/Library/Homebrew/test/test_compilers.rb
index 19eb69434..a30311611 100644
--- a/Library/Homebrew/test/test_compilers.rb
+++ b/Library/Homebrew/test/test_compilers.rb
@@ -94,9 +94,9 @@ class CompilerTests < Test::Unit::TestCase
cs.select_compiler
- assert_equal case MacOS.clang_build_version
- when 0..210 then :gcc
- else :clang
+ assert_equal case MacOS.gcc_42_build_version
+ when nil then :llvm
+ else :gcc
end, ENV.compiler
end
@@ -110,6 +110,6 @@ class CompilerTests < Test::Unit::TestCase
cs.select_compiler
- assert_equal MacOS.default_compiler, ENV.compiler
+ assert_not_equal :clang, ENV.compiler
end
end