gecko-dev/xpcom
Mike Hommey 8c10235da0 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
..
base Backed out changeset a0b82c954206 (bug 1062709) for Windows mochitest 5 hangs 2014-10-03 15:06:16 +01:00
build Backed out changeset a0b82c954206 (bug 1062709) for Windows mochitest 5 hangs 2014-10-03 15:06:16 +01:00
components Bug 1072152 - Change chrome.manifest read order. r=bsmedberg 2014-09-25 14:47:03 +09:00
doc
ds Bug 1074651 - Detect integer overflow in BaseTimeDuration::TicksFromMilliseconds; r=bz 2014-10-02 15:14:12 +09:00
glue Bug 1077151 - Always use expandlibs descriptors when they exist. r=mshal 2014-10-04 10:33:00 +09:00
idl-parser Bug 1034302: Emit MOZ_OVERRIDE in XPIDL generated macros. r=bsmedberg 2014-08-21 10:49:39 -07:00
io Bug 1077099: Add GreBinD to easily differentiate between Contents/Resources (GreD) and Contents/MacOS (GreBinD) on OSX. r=bsmedberg 2014-10-03 16:48:49 -04:00
libxpt/xptcall
reflect Bug 994912 - Add support for event-based notifications to media streams. r=roc, r=bz 2014-10-03 04:18:00 -04:00
sample Bug 1059090 - Don't require SOURCES to be set for CPP_UNIT_TESTS and SIMPLE_PROGRAMS. r=mshal 2014-09-03 14:16:37 +09:00
string Bug 1067699 (part 1) - Export double-conversion.h normally from MFBT. r=froydnj. 2014-09-16 23:33:05 -07:00
system Bug 1072417 - Remove the browser.tabs.remote pref and turn everything it controls on by default. r=felipe 2014-09-29 16:11:08 -05:00
tests Mac v2 signing - Bug 1060562 - Update xpcshell-tests for the new v2 bundle structure on OSX. r=jmaher 2014-09-29 11:51:29 -07:00
threads Backed out changeset a0b82c954206 (bug 1062709) for Windows mochitest 5 hangs 2014-10-03 15:06:16 +01:00
tools
typelib Bug 1059090 - Don't require SOURCES to be set for CPP_UNIT_TESTS and SIMPLE_PROGRAMS. r=mshal 2014-09-03 14:16:37 +09:00
windbgdlg Bug 1059090 - Don't require SOURCES to be set for CPP_UNIT_TESTS and SIMPLE_PROGRAMS. r=mshal 2014-09-03 14:16:37 +09:00
xpidl Bug 921816 - Handle idls in --with-libxul-sdk builds. r=gps 2013-11-07 10:37:44 +09:00
Makefile.in
moz.build Bug 1043820 - Remove PARALLEL_DIRS. r=gps 2014-07-29 08:57:59 +09:00
xpcom-config.h.in Bug 728600 - define TARGET_XPCOM_ABI in mozilla-config.h; r=glandium 2014-06-23 15:06:48 -04:00
xpcom-private.h.in