libtool, binutils: fix darwin linking (#7073)
* libtool: fix linking of libtool on darwin * binutils, libtool: fix conflicts w/ BSD tools, v2 Fix namespace conflicts with BSD tools in a more elegant fashion, using a program prefix, similar to Homebrew.
This commit is contained in:
parent
970c7e8f45
commit
784234ae8e
@ -79,4 +79,10 @@ def configure_args(self):
|
||||
if '+libiberty' in spec:
|
||||
configure_args.append('--enable-install-libiberty')
|
||||
|
||||
# To avoid namespace collisions with Darwin/BSD system tools,
|
||||
# prefix executables with "g", e.g., gar, gnm; see Homebrew
|
||||
# https://github.com/Homebrew/homebrew-core/blob/master/Formula/binutils.rb
|
||||
if spec.satisfies('platform=darwin'):
|
||||
configure_args.append('--program-prefix=g')
|
||||
|
||||
return configure_args
|
||||
|
@ -50,20 +50,19 @@ def setup_dependent_package(self, module, dependent_spec):
|
||||
# the tools it provides to the dependent module. Some build
|
||||
# systems differentiate between BSD libtool (e.g., Darwin) and
|
||||
# GNU libtool, so also add 'glibtool' and 'glibtoolize' to the
|
||||
# list of executables.
|
||||
# list of executables. See Homebrew:
|
||||
# https://github.com/Homebrew/homebrew-core/blob/master/Formula/libtool.rb
|
||||
executables = ['libtoolize', 'libtool', 'glibtoolize', 'glibtool']
|
||||
for name in executables:
|
||||
setattr(module, name, self._make_executable(name))
|
||||
|
||||
@run_after('install')
|
||||
def post_install(self):
|
||||
@when('platform=darwin')
|
||||
def configure_args(self):
|
||||
# Some platforms name GNU libtool and GNU libtoolize
|
||||
# 'glibtool' and 'glibtoolize', respectively, to differentiate
|
||||
# them from BSD libtool and BSD libtoolize. On these BSD
|
||||
# platforms, build systems sometimes expect to use the assumed
|
||||
# GNU commands glibtool and glibtoolize instead of the BSD
|
||||
# variant; this happens frequently, for instance, on Darwin
|
||||
symlink(join_path(self.prefix.bin, 'libtoolize'),
|
||||
join_path(self.prefix.bin, 'glibtoolize'))
|
||||
symlink(join_path(self.prefix.bin, 'libtoolize'),
|
||||
join_path(self.prefix.bin, 'glibtoolize'))
|
||||
args = ['--program-prefix=g']
|
||||
return args
|
||||
|
Loading…
Reference in New Issue
Block a user