diff options
| author | Jack Nagel | 2013-11-27 17:25:17 -0600 |
|---|---|---|
| committer | Jack Nagel | 2013-11-27 17:25:27 -0600 |
| commit | 14b19ba3c4478c8f19068f192d64cb1426bf48d3 (patch) | |
| tree | a2debc429dfad7f68646c3db025c231cc9655b17 | |
| parent | 8ba503ebb612b6e5c276d8f3adf9ec5ce02db161 (diff) | |
| download | brew-14b19ba3c4478c8f19068f192d64cb1426bf48d3.tar.bz2 | |
Adjust optimization flags if the CPU does not support SSE4
Tentatively fixes Homebrew/homebrew#21778, Homebrew/homebrew#24363.
| -rw-r--r-- | Library/Homebrew/extend/ENV/std.rb | 6 | ||||
| -rw-r--r-- | Library/Homebrew/extend/ENV/super.rb | 6 |
2 files changed, 9 insertions, 3 deletions
diff --git a/Library/Homebrew/extend/ENV/std.rb b/Library/Homebrew/extend/ENV/std.rb index 1002749d2..b9cbfbc68 100644 --- a/Library/Homebrew/extend/ENV/std.rb +++ b/Library/Homebrew/extend/ENV/std.rb @@ -344,8 +344,12 @@ module Stdenv if ARGV.build_bottle? arch = ARGV.bottle_arch || Hardware.oldest_cpu append flags, Hardware::CPU.optimization_flags.fetch(arch) + elsif Hardware::CPU.intel? && !Hardware::CPU.sse4? + # If the CPU doesn't support SSE4, we cannot trust -march=native or + # -march=<cpu family> to do the right thing because we might be running + # in a VM or on a Hackintosh. + append flags, Hardware::CPU.optimization_flags.fetch(Hardware.oldest_cpu) else - # Don't set -msse3 and older flags because -march does that for us append flags, map.fetch(Hardware::CPU.family, default) end diff --git a/Library/Homebrew/extend/ENV/super.rb b/Library/Homebrew/extend/ENV/super.rb index 013b262de..f89b89b36 100644 --- a/Library/Homebrew/extend/ENV/super.rb +++ b/Library/Homebrew/extend/ENV/super.rb @@ -206,8 +206,10 @@ module Superenv if ARGV.build_bottle? arch = ARGV.bottle_arch || Hardware.oldest_cpu Hardware::CPU.optimization_flags.fetch(arch) - elsif compiler == :clang - "-march=native" + elsif Hardware::CPU.intel? && !Hardware::CPU.sse4? + Hardware::CPU.optimization_flags.fetch(Hardware.oldest_cpu) + else + "-march=native" if compiler == :clang end end |
