Merge pull request #721 from MikeMcQuaid/no_weak_imports
Set -no_weak_imports linker flag for Xcode 8
This commit is contained in:
commit
6878577d12
@ -329,3 +329,5 @@ module SharedEnvExtension
|
|||||||
version && Version.create(version) >= Version.create("4.8")
|
version && Version.create(version) >= Version.create("4.8")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
require "extend/os/extend/ENV/shared"
|
||||||
|
|||||||
5
Library/Homebrew/extend/os/extend/ENV/shared.rb
Normal file
5
Library/Homebrew/extend/os/extend/ENV/shared.rb
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
require "extend/ENV/shared"
|
||||||
|
|
||||||
|
if OS.mac?
|
||||||
|
require "extend/os/mac/extend/ENV/shared"
|
||||||
|
end
|
||||||
6
Library/Homebrew/extend/os/mac/extend/ENV/shared.rb
Normal file
6
Library/Homebrew/extend/os/mac/extend/ENV/shared.rb
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
module SharedEnvExtension
|
||||||
|
def no_weak_imports?
|
||||||
|
return false unless compiler == :clang
|
||||||
|
MacOS::Xcode.version >= "8.0" || MacOS::CLT.version >= "8.0"
|
||||||
|
end
|
||||||
|
end
|
||||||
@ -28,6 +28,11 @@ module Stdenv
|
|||||||
# depend on it already being installed to build itself.
|
# depend on it already being installed to build itself.
|
||||||
ld64 if Formula["ld64"].installed?
|
ld64 if Formula["ld64"].installed?
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Xcode 8 should be told to fail to link against weak links
|
||||||
|
# Issue from Apple engineer:
|
||||||
|
# https://github.com/Homebrew/homebrew-core/issues/3727
|
||||||
|
append "LDFLAGS", "-Wl,-no_weak_imports" if no_weak_imports?
|
||||||
end
|
end
|
||||||
|
|
||||||
def homebrew_extra_pkg_config_paths
|
def homebrew_extra_pkg_config_paths
|
||||||
|
|||||||
@ -81,6 +81,10 @@ module Superenv
|
|||||||
s << "s" if MacOS.version >= :mountain_lion
|
s << "s" if MacOS.version >= :mountain_lion
|
||||||
# Fix issue with >= 10.8 apr-1-config having broken paths
|
# Fix issue with >= 10.8 apr-1-config having broken paths
|
||||||
s << "a" if MacOS.version >= :mountain_lion
|
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
|
s
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@ -258,8 +258,10 @@ class Cmd
|
|||||||
case mode
|
case mode
|
||||||
when :ld
|
when :ld
|
||||||
args << "-headerpad_max_install_names"
|
args << "-headerpad_max_install_names"
|
||||||
|
args << "-no_weak_imports" if no_weak_imports?
|
||||||
when :ccld, :cxxld
|
when :ccld, :cxxld
|
||||||
args << "-Wl,-headerpad_max_install_names"
|
args << "-Wl,-headerpad_max_install_names"
|
||||||
|
args << "-Wl,-no_weak_imports" if no_weak_imports?
|
||||||
end
|
end
|
||||||
args
|
args
|
||||||
end
|
end
|
||||||
@ -305,6 +307,10 @@ class Cmd
|
|||||||
config.include?("K")
|
config.include?("K")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def no_weak_imports?
|
||||||
|
config.include?("w")
|
||||||
|
end
|
||||||
|
|
||||||
def canonical_path(path)
|
def canonical_path(path)
|
||||||
path = Pathname.new(path)
|
path = Pathname.new(path)
|
||||||
path = path.realpath if path.exist?
|
path = path.realpath if path.exist?
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user