Commit Graph

29 Commits

Author SHA1 Message Date
Mike Hommey
b4265f0fa8 Bug 1077151 - Always use expandlibs descriptors when they exist. r=mshal
Currently, when there is both an expandlibs descriptor and an actual static
library, expandlibs picks the static library. This has the side effect that
if there are object files in the static library that aren't directly used,
they're dropped when linking, even when they export symbols that would be
exported in the final linked binary.

In most cases in the code base, files are not dropped that way. The most
notable counter-example is xpcomglue, where actually not dropping files
leads to link failure because of missing symbols those files reference
(yes, that would tend to say the glue is broken in some way).

On the opposite side, there is mozglue, which does have both a descriptor
and a static library (the latter being necessary for the SDK), and that
linking as a static library drops files that shouldn't be dropped (like
jemalloc). We're currently relying on -Wl,--whole-archive for those files
not to be dropped, but that won't really be possible without much hassle
in a world where mozglue dependencies live in moz.build land.

Switching expandlibs to use descriptors when they exist, even when there
is a static library (so, the opposite of the current behavior) allows to
drop -Wl,--whole-archive and prepare for a better future. However, as
mentioned, xpcomglue does still require to be linked through the static
library, so we need to make it a static library only.

To achieve that, we make NO_EXPAND_LIBS now actually mean no expandlibs
and use that to build the various different xpcomglues.
2014-10-04 10:33:00 +09:00
Mike Hommey
fc99c53ae5 Bug 1041941 - Use templates for programs, simple programs, libraries and C++ unit tests. r=gps 2014-09-03 14:10:54 +09:00
Mike Hommey
31cd528278 Bug 1036894 part 1 - Move MAKE_FRAMEWORK, SDK_LIBRARY, SHARED_LIBRARY_NAME and STATIC_LIBRARY_NAME to moz.build. r=gps
At the same time, make the Library data more useful in the build frontend.
2014-07-23 13:29:09 +09:00
Nathan Froyd
d1d52d93ee Bug 1031352 - move most of the _MSC_VER references in Makefile.in to moz.build; r=glandium 2014-06-27 10:32:05 -04:00
Nathan Froyd
7a4dfe1208 Bug 728600 - define TARGET_XPCOM_ABI in mozilla-config.h; r=glandium 2014-06-23 15:06:48 -04:00
Ehsan Akhgari
bf09c6f469 Bug 976896 - Port STL_FLAGS to moz.build; r=mshal 2014-03-04 19:39:06 -05:00
Ehsan Akhgari
fbe321aed6 Bug 970745 - Move USE_STATIC_LIBS to moz.build; r=glandium 2014-02-11 09:12:33 -05:00
Ms2ger
fe059e78f7 Bug 950130 - Move more INCLUDES / LOCAL_INCLUDES to moz.build; r=mshal 2013-12-31 10:06:11 +01:00
Ehsan Akhgari
76f23ad063 Bug 945118 - Build more of XPCOM in unified mode; r=glandium 2013-12-01 10:47:52 -05:00
Mike Hommey
9245936f8b Bug 874266 - Move all DEFINES that can be moved to moz.build. r=mshal 2013-11-27 22:55:07 +09:00
Mike Hommey
2b828323f2 Backout changeset 3fd4b546eed4 (bug 874266) and changeset a35d2e3a872f (bug 942043) for ASAN build bustage and Windows test bustage
--HG--
extra : amend_source : f20d09aeff1c8b5cbd0f1d24c7ce04e86f3aed1d
2013-11-28 14:24:05 +09:00
Mike Hommey
d210f8ff00 Bug 874266 - Move all DEFINES that can be moved to moz.build. r=mshal 2013-11-28 13:08:16 +09:00
Mike Hommey
bb6779efe3 Bug 939044 - Remove most definitions of MODULE. r=mshal 2013-11-19 11:47:39 +09:00
Cykesiopka
a3710e5c11 Bug 914270 - Part 1: Simple/Automated moves. r=joey 2013-10-24 18:51:00 +01:00
Mike Hommey
1d566f7586 Bug 929905 - Consolidate sources in moz.build. r=gps 2013-10-25 08:23:05 +09:00
Joey Armstrong
fc33df8719 bug 882907: move SDK_LIBRARY to mozbuild. r=mshal 2013-09-20 18:00:48 -04:00
Brian O'Keefe
535c7c2ade Bug 865673 - Convert objs.mk to objs.mozbuild. r=gps 2013-08-30 09:09:06 -04:00
Mike Hommey
f1cf3b4238 Bug 912293 - Remove now redundant boilerplate from Makefile.in. r=gps 2013-09-05 09:01:46 +09:00
Paul Adenot
a2430a6b16 Bug 894941 - Move SSE.{h,cpp} and arm.{h,cpp} to mozglue/build/. r=glandium
--HG--
rename : xpcom/glue/SSE.cpp => mozglue/build/SSE.cpp
rename : xpcom/glue/SSE.h => mozglue/build/SSE.h
rename : xpcom/glue/arm.cpp => mozglue/build/arm.cpp
rename : xpcom/glue/arm.h => mozglue/build/arm.h
rename : xpcom/tests/ShowSSEConfig.cpp => mozglue/tests/ShowSSEConfig.cpp
2013-07-26 18:46:31 +02:00
Brian O'Keefe
5f8b5163e8 Bug 875934 - Move LIBRARY_NAME to moz.build (batch #1); r=mshal
--HG--
extra : rebase_source : 385d3fd65475ffc18ee44ae088753649470e214b
2013-06-17 15:21:01 -04:00
Mike Shal
994cfe0b6b Bug 864774 - Part 2: Move CPPSRCS to moz.build as CPP_SOURCES; r=joey CLOSED TREE
From 9e0ba7f425143f545eb6c4b26a9a96b5ade4d8e9 Mon Sep 17 00:00:00 2001
2013-04-23 17:54:15 -04:00
Kyle Machulis
5aa83c3e11 Bug 855465 - Add emacs python mode comments to moz.build files; r=gps 2013-04-01 11:36:59 -07:00
Kyle Machulis
c79ccc0693 Backout for changeset 03452b187c14 (Bug 855465) due to bustage on a CLOSED TREE; r=qdot 2013-03-29 15:12:58 -07:00
Kyle Machulis
a59d40f143 Bug 855465 - Add emacs python mode comments to moz.build files; r=gps
--HG--
extra : rebase_source : 004a756492323e1a049586e85b3be5037159df20
2013-03-29 13:56:18 -07:00
Mike Shal
9680b82df6 Bug 844654 - Part 2: Move MODULE to moz.build; rs=gps 2013-03-19 11:47:00 -07:00
Gregory Szorc
a8e6b873d4 Bug 784841 - Part 18ν: Convert /xpcom; f=Ms2ger rs=ted 2013-02-25 13:20:02 -08:00
Mike Hommey
6173fa297f Bug 774032 bonus - Use @DEPTH@ and @relativesrcdir@ in Makefile.in. r=ted 2012-08-04 20:26:44 +02:00
Nathan Froyd
997e90b432 Bug 778220 - remove $(wildcard *.$(OBJ_SUFFIX)) calls from xpcom Makefiles; r=glandium 2012-07-27 14:15:01 -04:00
Jim Mathies
b02ab82aae Bug 732124 - Fix for crt link errors with VC11 - build glue using both the static and the dynamic runtime lib, and link accordingly for various components. r=ted 2012-05-21 16:31:03 -05:00