Граф коммитов

1360 Коммитов

Автор SHA1 Сообщение Дата
Chris Manchester 0a830e8691 Bug 1429875 - Implement OBJ_SUFFIX overriding for the profile generation phase on linux in mozbuild. r=glandium
MozReview-Commit-ID: 8PtgxfbxuE

--HG--
extra : rebase_source : fd8934ee2c70883e30a7b51d4b64944d3ce7e6ee
2018-03-20 16:44:12 -07:00
Chris Manchester de12a7992b Bug 1429875 - Remove expandlibs and instead generate list files in the mozbuild backend. r=glandium
MozReview-Commit-ID: 5eLwnh1HHGj

--HG--
extra : rebase_source : cd308adc4542be0f9b33b64d31a2d0dc0310fcd4
2018-03-20 16:31:05 -07:00
Chris Manchester fb59fb974a Bug 1429875 - Do not take DIST_INSTALL into account when deciding to build static libraries. r=glandium
Now that we're no longer shipping the SDK we no longer need real libraries for
the libraries that were created by this rule.

MozReview-Commit-ID: ALATVGBayHu

--HG--
extra : rebase_source : a20905125e5ff1846ef29de12323ba7b0a58928b
2018-03-20 16:31:05 -07:00
Chris Manchester 2cc5f5d9d2 Bug 1255485 - Don't assume target path is srcdir relative when locating a program's manifest on windows. r=ted
MozReview-Commit-ID: L5BVxWGtpeN
2018-03-19 14:07:32 -07:00
Ted Mielczarek 39f62680ca bug 1255485 - force import libraries to be generated in objdir, not dist/bin. r=chmanchester
The MSVC linker winds up generating import libraries when linking some of
our executables, presumably because they contain functions that are
__declspec(dllexport). By default the import libraries get written
alongside the exe, so we force them to be written to the objdir so they don't
clutter up dist/bin.

MozReview-Commit-ID: 7DTfCo3OdDQ
2017-11-27 09:03:31 -05:00
Ted Mielczarek dcdf597820 bug 1255485 - build PROGRAMs directly in dist/bin instead of copying them. r=nalexander
Historically we built all our binaries in directories in the objdir, then
symlinked them into dist/bin. Some binaries needed to be copied instead
so that certain relative path lookups work properly, so we resorted to
sprinkling `NSDISTMODE=copy` around Makefiles.

This change makes it so we build PROGRAMs (not any other sort of targets)
directly in dist/bin instead. We could do the same for our other targets
with a little more work.

There were several places in the tree that were copying built binaries to
some other place and needed fixup to match the new location of binaries.

On Windows pdb files are left in the objdir where the program was
originally linked. symbolstore.py needs to locate the pdb file both to
determine whether it should dump symbols for a binary and also to copy
the pdb file into the symbol package. We fix this by simply looking for
the pdb file in the current working directory if it isn't present next
to the binary, which matches how we invoke symbolstore.py.

MozReview-Commit-ID: 8TOD1uTXD5e
2018-01-10 14:26:12 -05:00
Nathan Froyd dfc23d3001 Bug 1437627 - part 2 - move incremental compilation logic to moz.configure; r=chmanchester
Doing checks in Python is much simpler than doing them in Makefile
logic, and we're going to be adding some more complex logic in the next patch.
2018-03-12 12:25:39 -05:00
Nick Alexander 1ff0250889 Bug 1440433 - Part 2: Remove ANDROID_APK_{NAME,PACKAGE}. r=jchen
The last APK produced using the ANDROID_APK_* moz.build/Makefile.in
mechanism was Robocop, so we can get rid of these now.

MozReview-Commit-ID: 9b08ZvvOAoC

--HG--
extra : rebase_source : ac4fea057bf6e731b0f26a1b6902f17a7362076d
2018-02-22 13:36:49 -08:00
Nick Alexander 5ee275d6d3 Bug 1368699 - Post: Remove PURGECACHES from Make and now-unused app-rules.mk. r=gps
Now that writing the .purgecaches sentinel is done by |mach build|, we
can remove it from Make.  In addition, we can cull the now-unused
app-rules.mk \o/

MozReview-Commit-ID: 6CnAqLeZwzB

--HG--
extra : rebase_source : 2a5b67e723f8e1654627e6e6f26704f6a4e57706
2018-01-19 10:50:42 -08:00
Nick Alexander 6729d9a469 Bug 1368699 - Pre: Remove MY_{CONFIG,RULES} Makefile customization hooks. r=gps
I very much doubt these are used, but even if we are -- we shouldn't
support this type of local customization, since it doesn't extend to
non-Make-based backends.

With the customization point removed, there's no way to set ETAGS, so
we remove what little support there was for generating Emacs tags.

MozReview-Commit-ID: IEF2Q4tISEn

--HG--
extra : rebase_source : 3bc8e651c03517edb797032db6ce60ed8852d9fa
2018-01-19 10:43:51 -08:00
Coroiu Cristina 4854a65d8c Backed out 3 changesets (bug 1368699) for bustage on Android L10n nightlies a=backout
Backed out changeset e16fc8abd345 (bug 1368699)
Backed out changeset 35a5db01b6ae (bug 1368699)
Backed out changeset 7297a1e8c4ff (bug 1368699)
2018-01-31 01:59:23 +02:00
Nick Alexander f6ce1f10e0 Bug 1368699 - Post: Remove PURGECACHES from Make and now-unused app-rules.mk. r=gps
Now that writing the .purgecaches sentinel is done by |mach build|, we
can remove it from Make.  In addition, we can cull the now-unused
app-rules.mk \o/

MozReview-Commit-ID: 6CnAqLeZwzB

--HG--
extra : rebase_source : 7427ca9aecc6619f48090c6a26c9a2e0e7d37bad
2018-01-19 10:50:42 -08:00
Nick Alexander feb76eb004 Bug 1368699 - Pre: Remove MY_{CONFIG,RULES} Makefile customization hooks. r=gps
I very much doubt these are used, but even if we are -- we shouldn't
support this type of local customization, since it doesn't extend to
non-Make-based backends.

With the customization point removed, there's no way to set ETAGS, so
we remove what little support there was for generating Emacs tags.

MozReview-Commit-ID: IEF2Q4tISEn

--HG--
extra : rebase_source : 140e07f78dbd72391c70c48f25e2b85c924fe78d
2018-01-19 10:43:51 -08:00
Gurzau Raul bbe856eaf5 Backed out 5 changesets (bug 1255485) for mochitest failures on test/mochitest/test_hangui.xul
Backed out changeset 90b7449882b6 (bug 1255485)
Backed out changeset 5672cf8d324b (bug 1255485)
Backed out changeset ed6dd4aefadb (bug 1255485)
Backed out changeset 0ba36c0feddb (bug 1255485)
Backed out changeset 51af06b6123c (bug 1255485)
2018-01-23 02:01:43 +02:00
Ted Mielczarek 4c95b3dc36 bug 1255485 - force import libraries to be generated in objdir, not dist/bin. r=chmanchester
The MSVC linker winds up generating import libraries when linking some of
our executables, presumably because they contain functions that are
__declspec(dllexport). By default the import libraries get written
alongside the exe, so we force them to be written to the objdir so they don't
clutter up dist/bin.

MozReview-Commit-ID: 7DTfCo3OdDQ

--HG--
extra : rebase_source : fea69e8f60633b824726269c2296af9fe812d3ed
2017-11-27 09:03:31 -05:00
Ted Mielczarek 2a410dbcc3 bug 1255485 - build PROGRAMs directly in dist/bin instead of copying them. r=nalexander
Historically we built all our binaries in directories in the objdir, then
symlinked them into dist/bin. Some binaries needed to be copied instead
so that certain relative path lookups work properly, so we resorted to
sprinkling `NSDISTMODE=copy` around Makefiles.

This change makes it so we build PROGRAMs (not any other sort of targets)
directly in dist/bin instead. We could do the same for our other targets
with a little more work.

There were several places in the tree that were copying built binaries to
some other place and needed fixup to match the new location of binaries.

On Windows pdb files are left in the objdir where the program was
originally linked. symbolstore.py needs to locate the pdb file both to
determine whether it should dump symbols for a binary and also to copy
the pdb file into the symbol package. We fix this by simply looking for
the pdb file in the current working directory if it isn't present next
to the binary, which matches how we invoke symbolstore.py.

MozReview-Commit-ID: 8TOD1uTXD5e

--HG--
extra : rebase_source : 9140be949b206bb595d9188ce7e8357347ecd9a9
2018-01-10 14:26:12 -05:00
Ralph Giles a9735964e0 Bug 1430886 - Disable incremental rust in automation. r=froydnj
Work around excessive command-line length issues by
disabling incremental rust compilation, which is enabled
by default outside `cargo --release` starting with Rust 1.24.

Incremental rust builds shouldn't help much in automation,
where sccache provides the only continuity between build
environments. In the meantime, they add a lot of object
files to the link line.

See https://github.com/rust-lang/rust/pull/47507 about addressing
the underlying issue upstream.

MozReview-Commit-ID: LRwUj3fhiaO

--HG--
extra : rebase_source : 1739a7570b2e7fe40ead3b301ea20c2fe79f0431
2018-01-17 08:32:51 -08:00
David Major 18a5250f02 Bug 1425906: Rename LINK to LINKER throughout the build system. r=glandium
Windows linkers give special meaning to getenv("LINK"), which makes `export LINK=...` in mozconfigs do unexpected things.
2017-12-20 09:07:46 -05:00
Ting-Yu Chou a5fdd873e9 Bug 1360650 part 1 - Archive pdb files of the binaries for llvm-symbolizer. r=ted 2017-12-18 11:26:02 -05:00
Mike Shal 6fab321f11 Bug 1319222 - Add include flags to HOST_*; r=chmanchester
This accounts for LOCAL_INCLUDES in the moz.build files, as well as the
default INCLUDES specified in config.mk that are used for host
compilation. Since some of the HOST_CFLAGS were also used for linking,
those flags are split off into HOST_C{XX}_LDFLAGS so that
the linker-only flags can be placed in those variables.

MozReview-Commit-ID: J1LxIZVeFJ

--HG--
extra : rebase_source : ed7293604e5428e3124f1ecfb2b706e087436b72
2017-11-22 16:23:44 -05:00
Mike Shal b631c0c574 Bug 1319222 - Remove INCLUDES from HOST_SIMPLE_PROGRAMS linking; r=chmanchester
These flags were added way back in bug 59454 to both the compiling and
linking rules for HOST_SIMPLE_PROGRAMS. However, the INCLUDES aren't
actually needed when linking so we can safely remove them.

MozReview-Commit-ID: 8QywO7tGPpU

--HG--
extra : rebase_source : 34870adcf73b459771413e52bc84c6c63669d0f9
2017-12-05 10:36:15 -05:00
Mike Shal 5e5570c9ca Bug 1319222 - Add an SFLAGS ComputedFlags variable for compiling *.S; r=chmanchester
Both SFLAGS and ASFLAGS are used to compile assembly, but SFLAGS include
DEFINES and LOCAL_INCLUDES whereas ASFLAGS do not. It seems easiest to
just separate them into two different ComputedFlags values so that the
backend can distinguish between the two types.

MozReview-Commit-ID: Bkm3621ImJG

--HG--
extra : rebase_source : 420204e37d591512f700d77b780939d20c2feeb0
2017-11-22 15:27:52 -05:00
Chris Manchester a638887c37 Bug 1414064 - Remove LD_VERSION_SCRIPT from the build system. r=mshal
MozReview-Commit-ID: 6KOLZh6aQmc

--HG--
extra : rebase_source : 9a98d1703e9a3138669bc96afdff66bf235058bc
2017-11-07 14:35:05 -08:00
Chris Manchester 77480a3b4d Bug 1414064 - Move BIN_FLAGS to MOZ_PROGRAM_LDFLAGS, get rid of BIN_FLAGS. r=mshal
MozReview-Commit-ID: ELTiYvh6iuS

--HG--
extra : rebase_source : 1547fa9b247649a485c4d31f8bdb7db05a50e043
2017-11-07 14:34:44 -08:00
Chris Manchester 778f734b4f Bug 1414064 - Remove references to EXTRA_LIBS in the build system. r=mshal
MozReview-Commit-ID: AeD755whvIV

--HG--
extra : rebase_source : f59ecae4225e77cfe748e4b132206f2132247078
2017-11-07 14:34:44 -08:00
Chris Manchester b9129cf320 Bug 1414064 - Remove SHLIB_LD{START,END}FILE and SUB_SHLOBJS. r=mshal
These are only set by nss' make build system, which we no longer use.

MozReview-Commit-ID: 9XRhpDmlekK

--HG--
extra : rebase_source : 5bff741863a463eca7d72f4e23c1c78e04a848de
2017-11-07 14:34:44 -08:00
Chris Manchester 7fa9f8f217 Bug 1414064 - Remove EXE_DEF_FILE, it is never set in the build system. r=mshal
MozReview-Commit-ID: IcCg4rZjpee

--HG--
extra : rebase_source : 1100d18597709040464c0d82a8b4929cba36537a
2017-11-07 14:34:44 -08:00
Chris Manchester 732b66708f Bug 1414064 - Remove WRAP_LDFLAGS, it is never set in the build system. r=mshal
MozReview-Commit-ID: Da4a4JmaxoL

--HG--
extra : rebase_source : 837e83e6836ea25d64f013b2b16456f9f6bcb88f
2017-11-07 14:34:44 -08:00
Chris Manchester 914e5042b2 Bug 1411712 - Fixup DEFFILE to be added to EXTRA_DEPS on windows when GNU_CC is set. r=mshal 2017-11-02 23:03:01 +01:00
Chris Manchester 8bc7bdf347 Bug 1411712 - Move LDFLAGS to mozbuild. r=mshal
MozReview-Commit-ID: A8cZ2FUveAf

--HG--
extra : rebase_source : 5f0e9b55c38f3b2382b469bbc886c57696f09792
2017-11-02 11:47:48 -07:00
Gregory Szorc be9770f18d Bug 1412460 - Remove targets related to VCS operations; r=mshal
These targets no longer exist in client.mk. I'm not sure when they
were removed. But this is obviously dead code.

A target in rules.mk pointing back to this target in client.mk has
also been removed.

MozReview-Commit-ID: 5v1MOOTP3qq

--HG--
extra : rebase_source : b90f0788b074330b45005223f41c804589d13163
2017-11-01 15:05:50 -07:00
Chris Manchester 3bd4902247 Bug 1403346 - Move C{XX}FLAGS to mozbuild computed flags. r=glandium
This also introduces C{XX}_LDFLAGS variables which contain cflags that
are meant to be passed to the linker, and adds them to various linker
command lines in place of CFLAGS.

MozReview-Commit-ID: GyKlD9nMqrt
2017-10-25 15:12:09 -07:00
Chris Manchester a1d26e4177 Bug 1403346 - Make a separate variable used to append pgo flags to compile command lines. r=glandium
This commit establishes a separate variable to add PROFILE_GEN and PROFILE_USE
CFLAGS to compile and link command lines. Currently the make backend
orchestrates the pgo build steps and is the only thing aware of whether
we're in the profile generate or profile use stage. The flags are separated
here to allow other flags to be moved to mozbuild, but this will not yet
sufficient to perform a PGO build independent of the make backend.

MozReview-Commit-ID: IX30l2MvvNc
2017-10-25 15:10:04 -07:00
Gregory Szorc 6f60ff2761 Bug 1411081 - Derive Rust compiler flags in configure; r=glandium
Before this commit, RUSTFLAGS was derived in rules.mk by consulting
various variables set by configure. It isn't clear to me why things
are implemented this way. We don't appear to have moz.build level
overrides for Rust compiler flags. So there doesn't appear to be a
compelling reason why we can't derive these values in configure.

So, this commit ports the code for deriving default RUSTFLAGS from
rules.mk to toolchain.configure.

The port is pretty straightforward as far as the logic goes.

MozReview-Commit-ID: JhAE9Qlo8SK

--HG--
extra : rebase_source : 6186cb81cd37c516b3d645419b9461bf501d6ba2
2017-10-24 14:42:01 -07:00
Jan Beich 6b04a97785 Bug 1409680 - Extend --disable-debug-symbols to Rust code. r=glandium
This reduces disk I/O and memory usage during build that already lacks
debugging symbols from C++ code, allowing to use more jobs on 32bit hosts.

--disable-debug-symbols build on FreeBSD 10.3 i386 (8 cores) host:
Max RSS before:  libxul - 612 Mb, libgkrust - 1908 Mb
Max RSS after:   libxul - 444 Mb, libgkrust - 1471 Mb
Binary before:   libxul - 203 Mb, libgkrust -  732 Mb
Binary after:    libxul - 123 Mb, libgkrust -  301 Mb

MozReview-Commit-ID: 40UEYuKddZ2

--HG--
extra : rebase_source : 905c61c8f738027bb43d213c4a4e63db1b9c5008
2017-10-18 08:38:54 +00:00
Mike Hommey 59ba5a09e4 Bug 1381043 - Enable fuller debug info for rust code on OSX cross builds. r=froydnj
--HG--
extra : rebase_source : 145edf24d2ea1366fe8ee0430bb95a99b841dd83
2017-10-12 18:02:49 +09:00
Nathan Froyd f0fcd23367 Bug 1373878 - part 2 - build system support for Rust tests; r=rillian 2017-10-02 09:21:22 -04:00
Chris Manchester c6f31b26d8 Bug 1398897 - Move includes to computed flags. r=glandium
MozReview-Commit-ID: Ec0wZfoV63B

--HG--
extra : rebase_source : c004185b9a9938343efb93920f646afd30b4b01e
2017-09-20 12:43:23 -07:00
Nathan Froyd c150b738a2 Bug 1378830 - part 1 - define PROG_IS_C_ONLY variables for PROGRAM and SIMPLE_PROGRAMS; r=chmanchester
Similar to the existing LIB_IS_C_ONLY variable, these variables indicate
that the program in question has only C sources and so can be linked by
the C compiler rather than the C++ compiler.  We need to add a little
more information to BaseProgram so we can avoid emitting periods into
Makefile variables.
2017-08-17 16:21:23 -04:00
Matt Brubeck 503070ad8d Bug 1386371 - Disable LTO by default, but enable in automation. r=froydnj
MozReview-Commit-ID: 2DIY9ex3Mch

--HG--
extra : rebase_source : 61f2f073adabfa7c46c324470a308adab23e7781
2017-08-10 11:38:10 -07:00
Kartikaya Gupta 8b8a999a38 Bug 1388423 - Get full rust backtraces everywhere. r=jmaher
MozReview-Commit-ID: 2Mfrpupz7As

--HG--
extra : rebase_source : 9b612430360fe46162f433f13667664188ceac55
2017-08-08 12:34:55 -04:00
Tom Prince f5e17a64ce Bug 1381955 - Don't override RUSTFLAGS to set rust's debuginfo; r=glandium
MozReview-Commit-ID: HevATvXusvE

--HG--
extra : rebase_source : c85d378e9168ffbdd7384710055db6a1806e7a03
2017-07-17 17:13:19 -06:00
Mike Hommey ef1d3c7153 Bug 1367940 - Pass the make jobserver file descriptors down to cargo. r=gps
cargo 1.19, and later cargo 1.20/rustc 1.19 gained support for the make
jobserver. But that doesn't work unless make passes the jobserver file
descriptors down to subprocesses, which it only does when there is a +
prefixing commands.

--HG--
extra : rebase_source : a00ffb7edb358243ac7b9469941ec6fb5ad84885
2017-07-13 20:07:49 +09:00
Mike Shal 29be674102 Bug 1380381 - Set rust debuginfo=1 for cross-OSX builds; r=glandium a=kwierso to reopen this CLOSED TREE
This is similar to bug 1301751, where something in rust seems to trigger errors
running dsymutil to generate debug symbols in OSX. We can set debuginfo=1 for
these builds as a temporary workaround for now, while we work on a more
permanent solution in rust and/or dsymutil. debuginfo=1 still gives us enough
info for stack traces, although without line info. debuginfo=2 would be useful
for debugging, but is irrelevant to crash reports.

MozReview-Commit-ID: DdA00GzVfWg

--HG--
extra : amend_source : 47d3573042098194a07f9b473e4a02c86a1eba7c
2017-07-13 18:49:10 -04:00
Nathan Froyd c4db85fbe1 Bug 1378440 - part 2 - add `mach cargo check`; r=rillian
Cargo recently introduced the `cargo check` command for shortening the
edit-compile cycle when working on large programs.  Since we don't
really support invoking `cargo` directly, let's wire up this command to
`mach`.  Gecko developers can then `mach cargo check` to ensure their
changes typecheck.
2017-07-05 14:19:31 -04:00
Nathan Froyd d73da35d6b Bug 1378440 - part 1 - make Cargo invocation macro more generic; r=rillian
All the machinery we set up for `cargo build` is equally useful for
other commands, such as `cargo check`.  Let's refactor things so that
it's easy to reuse said machinery for `cargo check`.
2017-07-05 14:19:31 -04:00
Nathan Froyd 2c6c66c145 Bug 1377971 - part 3 - honor LIB_IS_C_ONLY in more cases; r=glandium
We currently only honor LIB_IS_C_ONLY for cases where we set a
LIBRARY (and, implicitly, REAL_LIBRARY) and FORCE_SHARED_LIB.  For many
libraries, such as the libraries from NSS, we never set LIBRARY, which
leads to not setting REAL_LIBRARY, which leads to not honoring
LIB_IS_C_ONLY.  This practice has not been harmful thus far (except
perhaps linking in more things than necessary to our NSS shared
libraries), but on some platforms, linking with the C++ compiler will
drag in more things than we would like.

Consulting LIBRARY first should not be necessary; checking
FORCE_SHARED_LIB should be enough to tell us if we're building a shared
library for the purposes of honoring LIB_IS_C_ONLY.
2017-07-05 14:05:10 -04:00
Nathan Froyd 87007ca0f2 Bug 1377157 - remove VCINSTALLDIR from cargo's environment when running in MozillaBuild; r=ted.mielczarek
Stable Rust currently has logic similar to the following for finding the
linker on Windows:

  if VCINSTALLDIR in os.env:
    search for things in PATH
    if found, return, otherwise fallthrough

  look for MSVC installations of various kinds

For our current MozillaBuild setup where we clear out PATH prior to
invoking Cargo, this works: even though VCINSTALLDIR is set and we
(unsuccessfully) search through an empty PATH, we'll still fallback to
looking for MSVC installations.

Beta Rust has altered this search strategy:

  if VCINSTALLDIR in os.env:
    search for things in PATH
    return the result of the search, regardless of success

  look for MSVC installations of various kinds

Note that in the above logic, if VCINSTALLDIR is set, we are only going
to try looking in PATH for an appropriate linker.  Since PATH is empty
in our current MozillaBuild setup, beta Rust will therefore fail to find
the correct linker.  This failure causes numerous problems.

Since Firefox is already trying to "clean" the environment that Cargo is
invoked in, we should work a little bit harder by unsetting VCINSTALLDIR
entirely, and simply force Rust to search for known MSVC installations.
Making this change makes stable and beta Rust behave identically.

(We don't have to worry about this distinction in automation, because
the "cleaning" code is only activated when we detect a MozillaBuild
shell.)
2017-06-29 13:41:57 -04:00
Ted Mielczarek 94c9fe93f2 bug 1357825 - use sccache for caching Rust compilation. r=froydnj
MozReview-Commit-ID: 84PCmiVBlrV

--HG--
extra : rebase_source : ae23d383a1a2057d7027a4a6ffc9cfa4e3e15fcf
extra : histedit_source : 031e0d29f15b07208a08aba477d7bc9ca5a3f196
2017-05-01 11:58:45 -04:00
Chris Manchester 479795876a Bug 1370695 - Remove build system code handling binary components. r=glandium
MozReview-Commit-ID: BKHWR34vWsu

--HG--
extra : rebase_source : d870a222d393479bb8ede2aaec571299488806c0
2017-06-13 16:01:45 -07:00