Skip to content
Snippets Groups Projects
Commit 947b8500 authored by Mike McQuaid's avatar Mike McQuaid Committed by GitHub
Browse files

Merge pull request #1130 from aw1621107/allow-brew-llvm-for-openmp

Prefer brewed Clang over gcc-6 for needs :openmp
parents a16bfa57 3e454402
No related branches found
No related tags found
No related merge requests found
......@@ -3,9 +3,10 @@ module CompilerConstants
GNU_GCC_VERSIONS = %w[4.3 4.4 4.5 4.6 4.7 4.8 4.9 5 6 7].freeze
GNU_GCC_REGEXP = /^gcc-(4\.[3-9]|[5-7])$/
COMPILER_SYMBOL_MAP = {
"gcc-4.0" => :gcc_4_0,
"gcc-4.2" => :gcc,
"clang" => :clang,
"gcc-4.0" => :gcc_4_0,
"gcc-4.2" => :gcc,
"clang" => :clang,
"llvm_clang" => :llvm_clang,
}.freeze
COMPILERS = COMPILER_SYMBOL_MAP.values +
......@@ -86,7 +87,7 @@ class CompilerSelector
Compiler = Struct.new(:name, :version)
COMPILER_PRIORITY = {
clang: [:clang, :gcc, :gnu, :gcc_4_0],
clang: [:clang, :gcc, :gnu, :gcc_4_0, :llvm_clang],
gcc: [:gcc, :gnu, :clang, :gcc_4_0],
gcc_4_0: [:gcc_4_0, :gcc, :gnu, :clang],
}.freeze
......
......@@ -86,6 +86,13 @@ class DevelopmentTools
end
end
def llvm_clang_build_version
@llvm_clang_build_version ||= if Tab.for_name "llvm"
path = Formulary.factory("llvm").opt_prefix/"bin/clang"
`#{path} --version`[/clang version (\d\.\d\.\d)/, 1]
end
end
def non_apple_gcc_version(cc)
(@non_apple_gcc_version ||= {}).fetch(cc) do
path = HOMEBREW_PREFIX.join("opt", "gcc", "bin", cc)
......
......@@ -58,6 +58,8 @@ class Cmd
@tool ||= case @arg0
when "ld" then "ld"
when "cpp" then "cpp"
when /llvm_(clang(\+\+)?)/
"#{ENV["HOMEBREW_PREFIX"]}/opt/llvm/bin/#{$1}"
when /\w\+\+(-\d(\.\d)?)?$/
case ENV["HOMEBREW_CC"]
when /clang/
......@@ -154,7 +156,7 @@ class Cmd
/^-O[0-9zs]?$/, "-fast", "-no-cpp-precomp",
"-pedantic", "-pedantic-errors", "-Wno-long-double",
"-Wno-unused-but-set-variable"
when "-fopenmp", "-lgomp", "-mno-fused-madd", "-fforce-addr", "-fno-defer-pop",
when "-mno-fused-madd", "-fforce-addr", "-fno-defer-pop",
"-mno-dynamic-no-pic", "-fearly-inlining", /^-f(?:no-)?inline-functions-called-once/,
/^-finline-limit/, /^-f(?:no-)?check-new/, "-fno-delete-null-pointer-checks",
"-fcaller-saves", "-fthread-jumps", "-fno-reorder-blocks", "-fcse-skip-blocks",
......@@ -163,6 +165,8 @@ class Cmd
"-fuse-linker-plugin", "-frounding-math"
# clang doesn't support these flags
args << arg unless tool =~ /^clang/
when "-fopenmp", "-lgomp"
args << arg if tool =~ /^llvm_clang/
when "--fast-math"
arg = "-ffast-math" if tool =~ /^clang/
args << arg
......
cc
\ No newline at end of file
cc
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment