gecko-dev/toolkit/library/gtest/moz.build
Mike Hommey ace23258e7 Bug 1299616 - Rearrange libxul linking such that StaticXULComponentStart always is first. r=gps
When building gtest libxul with LTO, the fact that
StaticXULComponentStart is not passed first to the linker makes the
linker pull the NSModule symbols out of all the other objects first,
presumably because linking the gtest objects (which appear first) pulls
code from the other non StaticXULComponent* objects first.

So, to make things link properly with LTO, we trick the build system
to always put StaticXULComponentStart first.

--HG--
extra : rebase_source : 7ddda118903f5845f6b6d12db2bf39cd22d67ab5
2016-09-02 07:08:16 +09:00

31 lines
899 B
Python

# -*- 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/.
FINAL_TARGET = 'dist/bin/gtest'
USE_LIBS += [
'static:xul',
# xul-gtest is an intermediate static library. It is used as FINAL_TARGET
# for gtest code.
# If the FINAL_TARGET were the library in this directory, then the gtest
# code would end up before static:xul, and before StaticXULComponentStart,
# which needs to stay first.
'xul-gtest',
]
# This needs to come after static:xul to avoid things like libfallible coming
# before StaticXULComponentStart.
Libxul('xul-gtest-real')
if CONFIG['MOZ_RUST']:
USE_LIBS += [
'gkrust-gtest',
]
DIRS += [
'static',
]