Bug 1451529 - Install shared libs in the Tup backend. r=mshal

MozReview-Commit-ID: Jn9Uk5XmFxJ

--HG--
extra : rebase_source : 3a23b7e8530c6215614dccfb12e0b2cc799d63f4
This commit is contained in:
Chris Manchester 2018-04-04 15:28:39 -07:00
parent d5e62a783b
commit beec30d4f3

View File

@ -240,11 +240,12 @@ class TupOnly(CommonBackend, PartialBackend):
for l in libs]
def _gen_shared_library(self, backend_file):
if backend_file.shared_lib.name == 'libxul.so':
shlib = backend_file.shared_lib
if shlib.name == 'libxul.so':
# This will fail to link currently due to missing rust symbols.
return
if backend_file.shared_lib.cxx_link:
if shlib.cxx_link:
mkshlib = (
[backend_file.environment.substs['CXX']] +
backend_file.local_flags['CXX_LDFLAGS']
@ -258,15 +259,15 @@ class TupOnly(CommonBackend, PartialBackend):
mkshlib += (
backend_file.environment.substs['DSO_PIC_CFLAGS'] +
[backend_file.environment.substs['DSO_LDOPTS']] +
['-Wl,-h,%s' % backend_file.shared_lib.soname] +
['-o', backend_file.shared_lib.lib_name]
['-Wl,-h,%s' % shlib.soname] +
['-o', shlib.lib_name]
)
objs, _, shared_libs, os_libs, static_libs = self._expand_libs(backend_file.shared_lib)
objs, _, shared_libs, os_libs, static_libs = self._expand_libs(shlib)
static_libs = self._lib_paths(backend_file.objdir, static_libs)
shared_libs = self._lib_paths(backend_file.objdir, shared_libs)
list_file_name = '%s.list' % backend_file.shared_lib.name.replace('.', '_')
list_file_name = '%s.list' % shlib.name.replace('.', '_')
list_file = self._make_list_file(backend_file.objdir, objs, list_file_name)
inputs = objs + static_libs + shared_libs
@ -275,10 +276,10 @@ class TupOnly(CommonBackend, PartialBackend):
return
symbols_file = []
if backend_file.shared_lib.symbols_file:
inputs.append(backend_file.shared_lib.symbols_file)
if shlib.symbols_file:
inputs.append(shlib.symbols_file)
# TODO: Assumes GNU LD
symbols_file = ['-Wl,--version-script,%s' % backend_file.shared_lib.symbols_file]
symbols_file = ['-Wl,--version-script,%s' % shlib.symbols_file]
cmd = (
mkshlib +
@ -293,9 +294,14 @@ class TupOnly(CommonBackend, PartialBackend):
backend_file.rule(
cmd=cmd,
inputs=inputs,
outputs=[backend_file.shared_lib.lib_name],
outputs=[shlib.lib_name],
display='LINK %o'
)
backend_file.symlink_rule(mozpath.join(backend_file.objdir,
shlib.lib_name),
output=mozpath.join(self.environment.topobjdir,
shlib.install_target,
shlib.lib_name))
def _gen_program(self, backend_file):