diff --git a/Library/Homebrew/extend/os/mac/extend/ENV/super.rb b/Library/Homebrew/extend/os/mac/extend/ENV/super.rb index 1976f5312f..e482020e85 100644 --- a/Library/Homebrew/extend/os/mac/extend/ENV/super.rb +++ b/Library/Homebrew/extend/os/mac/extend/ENV/super.rb @@ -81,6 +81,10 @@ module Superenv s << "s" if MacOS.version >= :mountain_lion # Fix issue with >= 10.8 apr-1-config having broken paths s << "a" if MacOS.version >= :mountain_lion + # Xcode 8 should be told to fail to link against weak links + # Issue from Apple engineer: + # https://github.com/Homebrew/homebrew-core/issues/3727 + s << "w" if no_weak_imports? s end diff --git a/Library/Homebrew/shims/super/cc b/Library/Homebrew/shims/super/cc index e7ab6500fd..8404e29f2f 100755 --- a/Library/Homebrew/shims/super/cc +++ b/Library/Homebrew/shims/super/cc @@ -258,8 +258,10 @@ class Cmd case mode when :ld args << "-headerpad_max_install_names" + args << "-no_weak_imports" if no_weak_imports? when :ccld, :cxxld args << "-Wl,-headerpad_max_install_names" + args << "-Wl,-no_weak_imports" if no_weak_imports? end args end @@ -305,6 +307,10 @@ class Cmd config.include?("K") end + def no_weak_imports? + config.include?("w") + end + def canonical_path(path) path = Pathname.new(path) path = path.realpath if path.exist?