diff options
| -rwxr-xr-x | Library/ENV/4.3/cc | 23 | ||||
| -rw-r--r-- | Library/Homebrew/extend/ENV.rb | 2 | ||||
| -rw-r--r-- | Library/Homebrew/macos.rb | 12 | ||||
| -rw-r--r-- | Library/Homebrew/superenv.rb | 12 | 
4 files changed, 38 insertions, 11 deletions
diff --git a/Library/ENV/4.3/cc b/Library/ENV/4.3/cc index 85f57817d..3d6241c1f 100755 --- a/Library/ENV/4.3/cc +++ b/Library/ENV/4.3/cc @@ -148,17 +148,22 @@ class Cmd      args    end    def cflags -    if cccfg? 'Ob' -      %w{-mtune=generic -Oz} -    elsif cccfg? 'O' -      args = %w{-pipe -w -Os} -      args << '-march=native' if tool =~ /clang/ -      args += %w{-arch i386 -arch x86_64} if cccfg? 'u' -      args << "-std=#{@arg0}" if @arg0 =~ /c[89]9/ -      args +    return [] unless cccfg? 'O' + +    args = %w{-pipe -w -Os} + +    # When bottling use the oldest supported CPU type. +    if cccfg? 'bi6' +      args << '-march=core2' +    elsif cccfg? 'bi' +      args << '-march=prescott'      else -      [] +      args << '-march=native' if tool =~ /clang/      end + +    args += %w{-arch i386 -arch x86_64} if cccfg? 'u' +    args << "-std=#{@arg0}" if @arg0 =~ /c[89]9/ +    args    end    def syslibpath      # We reject brew's lib as we explicitly add this as a -L flag, thus it diff --git a/Library/Homebrew/extend/ENV.rb b/Library/Homebrew/extend/ENV.rb index 097f002d2..8b36a5b3d 100644 --- a/Library/Homebrew/extend/ENV.rb +++ b/Library/Homebrew/extend/ENV.rb @@ -326,7 +326,7 @@ module HomebrewEnvExtension      append flags, xarch unless xarch.empty?      if ARGV.build_bottle? -      append flags, '-mtune=generic' +      append flags, Hardware::CPU.optimization_flags[MacOS.oldest_cpu]      else        # Don't set -msse3 and older flags because -march does that for us        append flags, map.fetch(Hardware::CPU.family, default) diff --git a/Library/Homebrew/macos.rb b/Library/Homebrew/macos.rb index 802da0de6..bae263f37 100644 --- a/Library/Homebrew/macos.rb +++ b/Library/Homebrew/macos.rb @@ -34,6 +34,18 @@ module MacOS extend self      cat.to_s.gsub('_', '').to_sym    end +  def oldest_cpu +    if Hardware::CPU.type == :intel +      if Hardware::CPU.is_64_bit? +        :core2 +      else +        :core +      end +    else +      Hardware::CPU.family +    end +  end +    def locate tool      # Don't call tools (cc, make, strip, etc.) directly!      # Give the name of the binary you look for as a string to this method diff --git a/Library/Homebrew/superenv.rb b/Library/Homebrew/superenv.rb index 8c2d522b8..b8dfa7f25 100644 --- a/Library/Homebrew/superenv.rb +++ b/Library/Homebrew/superenv.rb @@ -182,7 +182,17 @@ class << ENV    def determine_cccfg      s = "" -    s << 'b' if ARGV.build_bottle? +    if ARGV.build_bottle? +      s << if Hardware::CPU.type == :intel +        if Hardware::CPU.is_64_bit? +          'bi6' +        else +          'bi' +        end +      else +        'b' +      end +    end      # Fix issue with sed barfing on unicode characters on Mountain Lion      s << 's' if MacOS.version >= :mountain_lion      # Fix issue with 10.8 apr-1-config having broken paths  | 
