tools/moz.build
author Nathan Froyd <froydnj@mozilla.com>
Sat, 15 Oct 2016 18:16:13 -0400
changeset 318165 8090e9a4b93d7bb03e48e78f52645d2dfd9fb378
parent 306106 3ec6380fca8207fa199693206a3ca24975bf9833
child 351396 bac75bc80d81d10a9393adc704263eca2b680264
permissions -rw-r--r--
Bug 1304815 - rearrange Rust crate structure for newer Rust releases; r=ted.mielczarek In our current Rust world, we have the following dependency structure: xul.so --------------------------+ | xul-gtest.so -+--> xul.a --------+-> gkrust | +--> gkrust-gtest This structure results in link errors with multiply-defined symbols between gkrust-gtest and gkrust with newer Rust releases when linking xul-gtest.so. So we have to do something different. Our new structure is: xul.so --------------------------+ | xul-gtest.so -+--> xul.a --------+-> gkrust --+-> gkrust-shared | | +--> gkrust-gtest --------------+ and we enforce that a given shared library can only have at most one Rust library that it depends on. Said Rust library is assumed to include all significant Rust dependencies of the dependent static libraries as well. (In the above structure, gkrust is simply a wrapper around gkrust-shared, so gkrust-gtest doesn't have to include gkrust as a dependency.)

# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# vim: set filetype=python:
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

SPHINX_TREES['lint'] = 'lint/docs'