Commit Graph

624 Commits

Author SHA1 Message Date
Mike Hommey
0bb4264fe7 Bug 1091383 - Move delayload logic entirely in moz.build frontend code. r=gps 2014-11-04 13:48:25 +09:00
Mike Hommey
d667f4bb59 Bug 1077148 part 4 - Add and use new moz.build templates for Gecko programs and libraries. r=gps
There are, sadly, many combinations of linkage in use throughout the tree.
The main differentiator, though, is between program/libraries related to
Gecko or not. Kind of. Some need mozglue, some don't. Some need dependent
linkage, some standalone.

Anyways, these new templates remove the need to manually define the
right dependencies against xpcomglue, nspr, mozalloc and mozglue
in most cases.

Places that build programs and were resetting MOZ_GLUE_PROGRAM_LDFLAGS
or that build libraries and were resetting MOZ_GLUE_LDFLAGS can now
just not use those Gecko-specific templates.
2014-10-30 13:06:12 +09:00
Mike Hommey
bc89ac2f89 Bug 1090107 - Define stlport dependencies in moz.build. r=mshal 2014-10-29 13:29:42 +09:00
Mike Hommey
173edb382b Bug 857628 - Add a --enable-pie configure option to build target programs as position independent executables when supported by gcc/clang. r=mshal 2014-09-26 07:33:56 +09:00
Mike Hommey
bfcdc7ef75 Bug 1077228 - Include the right autoconf.mk in GLOBAL_DEPS. r=mshal
Ever since bug 969164, the js build system, when building gecko (not when
building standalone) uses a autoconf-js.mk file for its config.

One of the suboptimal ways we have to retrigger builds when the build
configuration changes (changes to e.g. configure.in can do that) is to
make most things depend on autoconf.mk. Which unfortunately doesn't
account for the fact the js/src subdirectory uses a different file.

In practice, this means that some classes of changes to the js build
system, not accompanied with toplevel build system changes may no
trigger the corresponding rebuilds in the js subtree on incremental
builds.
2014-10-04 10:34:35 +09:00
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
Ed Morley
2078de0125 Backed out changeset e2fee324047d (bug 857628) for causing bug 1076892 2014-10-03 14:19:45 +01:00
Mike Hommey
0412683b7d Bug 1062221 - Replace add_tier_dir with DIRS. r=gps 2014-10-02 09:14:07 +09:00
Mike Hommey
209fae0983 Bug 857628 - Build target programs as position independent executable when supported by gcc/clang. r=mshal 2014-09-26 07:33:56 +09:00
Jacek Caban
4487a85843 Bug 1055627 - Pass MOZ_GLUE_PROGRAM_LDFLAGS after STATIC_LIBS to linker. r=glandium 2014-08-26 13:50:27 +02:00
Mike Hommey
0f4c5d9244 Bug 1047267 - Move remaining OS_LIBS and EXTRA_LIBS to moz.build. r=gps
* * *
Bug 1047267 - To fold with "Move remaining OS_LIBS and EXTRA_LIBS to moz.build"
2014-08-07 14:21:03 +09:00
Mike Hommey
19e8ecfce2 Bug 1047267 - Allow to reference libraries from third-party build systems in USE_LIBS. r=gps 2014-08-07 14:20:38 +09:00
Mike Hommey
1d5475041b Bug 1049281 - Remove static dirs handling, now that there aren't any. r=gps
Also do some overdue cleanup from the removal of parallel and tools dirs
2014-08-07 02:58:53 +09:00
Mike Hommey
855f2512fe Bug 1048993 - Use nsinstall from $(topobjdir)/config instead of $(DIST)/bin to avoid races when make wants to reinstall it for some reason. r=mshal 2014-08-07 02:58:50 +09:00
Ian Neal
7d7f496206 Bug 1047924 - When building with ac_add_options --enable-extensions extensions are put expanded into the wrong location in dist/bin r=glandium 2014-08-06 17:58:31 +01:00
Nathan Froyd
f4b3ba5577 Bug 1044162 - part 2 - remove JS_MODULES_PATH from the build system; r=mshal 2014-07-25 14:37:22 -04:00
Mike Hommey
3424efc9f3 Bug 1043869 - Derive build dependencies for programs and libraries from make backend data instead of getting them from expandlibs. r=mshal 2014-07-29 08:59:56 +09:00
Mike Hommey
90e6ca0914 Bug 1043865 - Remove the remainder of compilation bits from the libs tier. r=gps 2014-07-29 08:59:27 +09:00
Mike Hommey
cc5c6d1ecc Bug 1043862 - Make the binaries target use the compile tier. r=gps 2014-07-29 08:58:28 +09:00
Mike Hommey
20d181268e Bug 1043820 - Remove PARALLEL_DIRS. r=gps 2014-07-29 08:57:59 +09:00
Mike Hommey
1e79fe55c2 Bug 1043802 - Remove TOOLS_DIRS and TEST_TOOLS_DIRS. r=gps 2014-07-29 08:55:55 +09:00
Mike Hommey
dbad84b131 Bug 1043344 - Move libraries and programs build to the compile tier. r=gps 2014-07-25 07:14:40 +09:00
Mike Hommey
6dca708e22 Bug 1043286 - Use INSTALL_TARGETS to stage C++ unit tests. r=mshal 2014-07-25 07:09:44 +09:00
Jan Beich
9f1e29ec6f Bug 1041381 - Ignore missing depfiles for dtrace. r=glandium 2014-07-23 22:40:00 +02:00
Mike Hommey
7ca2de4659 Followup for bug 1041936 to unbreak spidermonkey fail-on-warnings builds. r=me 2014-07-23 14:01:55 +09:00
Mike Hommey
01fba997a3 Bug 1041936 - Allow static library definitions to depend on shared libraries. r=gps 2014-07-23 13:33:06 +09:00
Mike Hommey
71623acdd6 Bug 1036894 part 9 - Replace all EXTRA_DSO_LDOPTS, SHARED_LIBRARY_LIBS and LIBS with EXTRA_LIBS, OS_LIBS or OS_LDFLAGS, appropriately. r=gps
OS_LIBS for libraries that are not part of the gecko tree, EXTRA_LIBS for
libraries, such as NSPR, that are in the tree, but are not handled by
moz.build just yet. Those EXTRA_LIBS may also come from a system library.
However, in cases where the expanded variables are always empty for the
in-tree case, OS_LIBS is used (as for, e.g. MOZ_ZLIB_LIBS). OS_LDFLAGS is
used exclusively for non-library linker flags.

Always pass EXTRA_LIBS before OS_LIBS on linker command lines.

Forbid EXTRA_DSO_LDOPTS, SHARED_LIBRARY_LIBS and LIBS in Makefiles.
2014-07-23 13:31:02 +09:00
Mike Hommey
e5c43ef995 Bug 1036894 part 8 - Move most in-tree library linkage information to moz.build, as USE_LIBS. r=gps 2014-07-23 13:30:52 +09:00
Mike Hommey
90c742edc2 Bug 1036894 part 6 - Emit SimplePrograms for CPP_UNIT_TESTs, and make the corresponding moz.build config look like that of SIMPLE_PROGRAMS. r=gps 2014-07-23 13:29:44 +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
Mike Hommey
7fed84e25c Bug 1040649 - Detect changes to frozen variables between rules.mk include and the end of Makefile.in. r=mshal 2014-07-19 08:46:33 +09:00
Mike Hommey
15534a15c4 Bug 1040639 - Remove LIBS_DIR. r=mshal 2014-07-19 08:42:16 +09:00
Mike Hommey
0c686be531 Bug 1038639 - Remove --with-libxul-sdk and --with-system-libxul. r=bsmedberg 2014-07-17 08:42:16 +09:00
Neil Rashbrook
10c8a98557 Bug 1037981 Make 'derecursed' builds support --enable-xterm-updates r=glandium 2014-07-16 08:36:30 +01:00
Mike Hommey
07267c6f7f Bug 1036864 - Remove EXPORT_LIBRARY. r=mshal 2014-07-11 19:06:55 +09:00
Mike Hommey
4409f0d493 Bug 1035543 - Remove the MOZ_PSEUDO_DERECURSE variable. r=gps 2014-07-10 14:11:52 +09:00
Steve Fink
6c737e7564 Bug 1036525 - DSO_SONAME should not depend on FORCE_SHARED_LIB, r=glandium 2014-07-09 17:16:19 -07:00
Mukilan Thiyagarajan
bf9a7de167 Bug 1000994 - Allow specifying SONAME of a shared library in moz.build. r=glandium 2014-07-09 00:47:00 +02:00
Gregory Szorc
c2a0f4cffa Bug 1033836 - Remove Makefile.in support for TESTING_JS_MODULES; r=glandium
--HG--
extra : rebase_source : 20cebe4a7d940cb3a18c6f13bae36cf63388e2b8
2014-07-02 16:54:51 -07:00
Mike Hommey
ccdc7b4993 Bug 883339 - Enable gtest on windows TBPL non-PGO builds. r=ted 2014-06-26 07:59:24 +09:00
Mike Hommey
b02a375963 Bug 1027890 - Remove all sorts of build system code dedicated to pymake. r=gps 2014-06-25 08:38:28 +09:00
Ryan VanderMeulen
19951668ea Bug 1025918 - Add support for the .cxx extension to mozbuild. r=ted 2014-06-16 22:36:24 -04:00
Nathan Froyd
319b400465 Bug 1018375 - part 1 - add LD_VERSION_SCRIPT build variable; r=glandium 2014-05-30 14:12:20 -04:00
Mike Shal
a5bc198d83 Bug 943971 - 'make foo.i' should work for unified files; r=glandium 2013-12-11 19:23:24 -05:00
Nathan Froyd
04ee24d53f Bug 1006026 - remove duplicate distclean:: rule in rules.mk; r=mshal 2014-05-07 10:33:06 -04:00
Ehsan Akhgari
6f56f93285 Backed out changeset 70946e64e8f8 (bug 1005704) because it caused bug 1006541 2014-05-06 16:39:39 -04:00
Ehsan Akhgari
c5a9a76740 Bug 1005705 - Remove the unused DIST_CHROME_FILES rule; r=mshal 2014-05-05 21:26:32 -04:00
Ehsan Akhgari
b7cf2d4a14 Bug 1005704 - Enable installing files dist files without preprocessing; r=mshal 2014-05-05 21:26:11 -04:00
Mike Hommey
254ce5d027 Bug 915535 - Remove directory tracking from build system. r=gps
It's not used except with pymake, anyways.
2014-03-27 10:36:16 +09:00
Mike Hommey
8aba9ab7cf Bug 985836 - Move -Fd flags from configure to config.mk. r=mshal 2014-03-26 08:12:26 +09:00