Commit Graph

3018 Commits

Author SHA1 Message Date
Sebastian Hengst
484fb17102 No bug - remove obsolete leftover from merge. CLOSED TREE 2018-07-25 14:27:38 +03:00
Sebastian Hengst
78eefa1552 No bug - remove obsolete leftover from merge. CLOSED TREE 2018-07-25 14:22:14 +03:00
Tiberius Oros
01120d0521 No bug - Fix issues from merge. CLOSED TREE
--HG--
extra : amend_source : 62c08c106fd594a9427e4f654c909764f7e8c545
2018-07-25 14:12:52 +03:00
Tiberius Oros
036999d0a9 Merge mozilla-central to inbound. a=merge CLOSED TREE 2018-07-25 13:43:03 +03:00
Mike Shal
57f8df0a94 Bug 1473667 - Handle multiple GENERATED_FILES outputs in the faster make backend; r=gps
For files that come from the objdir in install manifests (eg: '!buildid.h'),
the FasterMake backend runs 'make -C dirname filename' to build the file
with the RecursiveMake backend before the install manifest is processed.
This works fine for GENERATED_FILES that produce a single target, but if
the GENERATED_FILES invocation produces multiple targets, the FasterMake
backend will run the command multiple times. Eg:

GENERATED_FILES += [('output1', 'output2')]
...
make -C dirname output1
make -C dirname output2

These invocations may be run in parallel, and would produce both output1
and output2 twice.

Instead we can track the GeneratedFile objects as they are emitted, and
only add the first output as a dependency on the install manifest. The
RecursiveMake backend is then only invoked once for the whole group of
GENERATED_FILES.

MozReview-Commit-ID: 6mvkHow2V2i

--HG--
extra : rebase_source : c6cd50d972fe8764831544685a63921e0548e765
2018-07-05 11:48:59 -04:00
Chris Manchester
ca027440e0 Bug 1478121 - Fix tup backend bustage due to XPIDL build system api changes. r=froydnj 2018-07-24 13:48:21 -07:00
Nathan Froyd
09e16e7687 Bug 1477332 - add aarch64 to mozinfo's known list of 64-bit cpus; r=chmanchester 2018-07-24 15:49:16 -04:00
Nathan Froyd
88ecd780d0 Bug 1476973 - part 5 - make xpidl variables simply expanded; r=gps
These kind of variables are slightly more efficient in make.
2018-07-24 15:41:47 -04:00
Nathan Froyd
b56290c3c2 Bug 1476973 - part 4 - emit XPIDLModule, rather than multiple XPIDLFile; r=gps
XPIDL files are logically grouped together into a module, but the
current model for the moz.build frontend is that we emit individual
XPIDLFile objects, and leave it to the backend to reconstruct
module-ness from those.  This setup causes a small amout of useless work
to be done (e.g. see XPIDLFile handling in
RecursiveMakeBackend.consume_object; such handling should only be done
once), and it would be cleaner to have the objects emitted reflect the
build system concepts as closely as possible.  To that end, let's emit
XPIDLModule objects instead, which fortunately requires relatively few
changes.
2018-07-24 15:41:47 -04:00
Nathan Froyd
9166148c62 Bug 1476973 - part 3 - rationalize the backend's IDLManager; r=gps
The IDLManager in the moz.build backend is a bit weird.  It maintains a
bunch of per-IDL file information, some of which isn't used, and
attempts to map module names to information about what entities the
module needs to be built.  The former is done with Python dicts, and the
latter with Python tuples, both resulting in some contortions by the
clients of IDLManager to specify exactly what they need.

Let's clean this up, by making IDLManager to more clearly do two jobs:

1. Keep track of whether IDL files are globally unique; and
2. Map module names to the information needed to build them.

In the case of #2, we store everything as a straight Python object, so
we can use actual property accesses everywhere.  We also provide a
stems() function on IDLManager to make some client code more
straightforward.

Doing this makes IDLManager much more XPIDL module-centric, and paves
the way for the same change to be made in the frontend as well.
2018-07-24 15:41:47 -04:00
Nathan Froyd
61a384e83c Bug 1476973 - part 2 - assert that XPIDL_SOURCES files all exist; r=gps
We should have been checking for this from the beginning.
2018-07-24 15:41:47 -04:00
Nathan Froyd
d886ac50bc Bug 1476973 - part 1 - make XPIDL_SOURCES a list of SourcePath objects; r=gps
XPIDL_SOURCES would benefit from being more explicit about what sort of
values it contains; let's define it as a list of SourcePath objects, and
propagate those objects into XPIDLFile frontend objects as well.
2018-07-24 15:41:47 -04:00
Ted Mielczarek
146e0cc094 bug 1447932 - Add support for localized files to fastermake backend. r=mshal
Co-authored by Nick Alexander <nalexander@mozilla.com>

This patch adds support to the fastermake backend for taking localized files
from a locale directory as specified by the combination of --with-l10n-base
and --enable-ui-locale. This allows artifact builds to be built localized
with a different locale.

MozReview-Commit-ID: 1bD9Gy0ewJ2

--HG--
extra : rebase_source : 7e7d52142e48c0e57ead11df4d3d721a3b10b3e0
2018-03-21 16:47:02 -04:00
Narcis Beleuzu
41455c60a9 Backed out 5 changesets (bug 1476973) for build tup bustages. CLOSED TREE
Backed out changeset e59a3967c1e4 (bug 1476973)
Backed out changeset 19e5a88621d1 (bug 1476973)
Backed out changeset 24bcc39a55f2 (bug 1476973)
Backed out changeset 08370aca03f5 (bug 1476973)
Backed out changeset 7d6a7a63abc0 (bug 1476973)
2018-07-24 21:51:43 +03:00
Nathan Froyd
3eaddd748c Bug 1476973 - part 5 - make xpidl variables simply expanded; r=gps
These kind of variables are slightly more efficient in make.
2018-07-24 14:30:53 -04:00
Nathan Froyd
ba613d4737 Bug 1476973 - part 4 - emit XPIDLModule, rather than multiple XPIDLFile; r=gps
XPIDL files are logically grouped together into a module, but the
current model for the moz.build frontend is that we emit individual
XPIDLFile objects, and leave it to the backend to reconstruct
module-ness from those.  This setup causes a small amout of useless work
to be done (e.g. see XPIDLFile handling in
RecursiveMakeBackend.consume_object; such handling should only be done
once), and it would be cleaner to have the objects emitted reflect the
build system concepts as closely as possible.  To that end, let's emit
XPIDLModule objects instead, which fortunately requires relatively few
changes.
2018-07-24 14:30:53 -04:00
Nathan Froyd
0d5d951951 Bug 1476973 - part 3 - rationalize the backend's IDLManager; r=gps
The IDLManager in the moz.build backend is a bit weird.  It maintains a
bunch of per-IDL file information, some of which isn't used, and
attempts to map module names to information about what entities the
module needs to be built.  The former is done with Python dicts, and the
latter with Python tuples, both resulting in some contortions by the
clients of IDLManager to specify exactly what they need.

Let's clean this up, by making IDLManager to more clearly do two jobs:

1. Keep track of whether IDL files are globally unique; and
2. Map module names to the information needed to build them.

In the case of #2, we store everything as a straight Python object, so
we can use actual property accesses everywhere.  We also provide a
stems() function on IDLManager to make some client code more
straightforward.

Doing this makes IDLManager much more XPIDL module-centric, and paves
the way for the same change to be made in the frontend as well.
2018-07-24 14:30:53 -04:00
Nathan Froyd
4582c25c93 Bug 1476973 - part 2 - assert that XPIDL_SOURCES files all exist; r=gps
We should have been checking for this from the beginning.
2018-07-24 14:30:53 -04:00
Nathan Froyd
9f214bda6a Bug 1476973 - part 1 - make XPIDL_SOURCES a list of SourcePath objects; r=gps
XPIDL_SOURCES would benefit from being more explicit about what sort of
values it contains; let's define it as a list of SourcePath objects, and
propagate those objects into XPIDLFile frontend objects as well.
2018-07-24 14:30:54 -04:00
Cosmin Sabou
8592119814 Backed out changeset f19f8d717c6b (bug 1447932) for build bustages on test_fastermake. CLOSED TREE 2018-07-23 14:41:16 +03:00
Ted Mielczarek
842fbbb159 bug 1447932 - Add support for localized files to fastermake backend. r=mshal
Co-authored by Nick Alexander <nalexander@mozilla.com>

This patch adds support to the fastermake backend for taking localized files
from a locale directory as specified by the combination of --with-l10n-base
and --enable-ui-locale. This allows artifact builds to be built localized
with a different locale.

MozReview-Commit-ID: 1bD9Gy0ewJ2

--HG--
extra : rebase_source : 9f457c8565ff0297589533ab91b44c16edc86be3
2018-03-21 16:47:02 -04:00
Mike Shal
83ae44a8c1 Bug 1476802 - Make toolkit/library/rust/Tupfile work with --dry-run; r=cmanchester+432261
We shouldn't call _get_backend_file during TupBackend:_init() since
self.dry_run is not set yet. Instead we can just call it when we need to
add rust rules.

MozReview-Commit-ID: 5elqXGFMSuG

--HG--
extra : rebase_source : 880a754f631f691aaf85bfda610e29b7bfcb89b4
2018-07-18 17:20:13 -04:00
Chris Manchester
9491263075 Bug 1475278 - Link a HostRustLibrary to a HostProgram where necessary in the Tup backend. r=mshal
MozReview-Commit-ID: qghHI02Bfs

--HG--
extra : rebase_source : e04cf40916032d312785e99f2b4e6c64657ad919
2018-07-12 16:31:54 -07:00
Masatoshi Kimura
632e94cf4d Bug 1476000 - Support warnings format from clang-cl. r=dmajor
--HG--
extra : rebase_source : faf01d659a589c81718e58e2c73b1b46063ce989
2018-07-17 01:08:04 +09:00
Dan Minor
3f5a7a7356 Bug 1445683 - Don't update mimetype when updating aom; r=chmanchester
The bitstream is frozen and we're updating to v1.0.0. There is no longer any need
to indicate which revision we're using in the mimetype.

--HG--
extra : rebase_source : 5f5bf8649bd21610ebf04661e8f80bacbb69ca09
2018-07-09 13:29:55 -04:00
Dan Minor
0928a56595 Bug 1445683 - Handle JSONDecodeError in aom vendor command; r=chmanchester
MozReview-Commit-ID: 9MgxqkoHnfw

--HG--
extra : rebase_source : cc085ef0c0de570dfe25d412edb267c7a36c9389
2018-05-17 10:37:16 -04:00
Chris Manchester
d6b368dff1 Bug 1472490 - Make adding a source to SOURCES, UNIFIED_SOURCES, or HOST_SOURCES multiple times an error in moz.build. r=gps
MozReview-Commit-ID: FtPF3dxUxb5

--HG--
extra : rebase_source : ad380999c41830ea0f088bdacf5fc04c95783f04
2018-07-13 15:55:45 -07:00
Gurzau Raul
cf965b1f59 Merge inbound to mozilla-central. a=merge 2018-07-12 01:04:09 +03:00
Dan Minor
a8d7d7ecf2 Bug 1371485 - Use updated version of gyp; r=chmanchester
Tags: #secure-revision

Bug #: 1371485

Differential Revision: https://phabricator.services.mozilla.com/D1801

--HG--
extra : rebase_source : 87cd91fdc0cc873c7f78e128f545524f66947035
2018-06-21 14:39:34 -04:00
Dave Hunt
2847cb1fcb Bug 1473727 - Avoid recreating virtual environment every time by using a unique environment for each Python version; r=ahal,dustin
This patch uses the PIPENV_PYTHON environment variable to append a suffix to the created virtual environment path according to the version specified. It also uses the PIPENV_DEFAULT_PYTHON_VERSION environment variable to avoid recreating the virtual environment every time. With these changes we are able to switch back and forth between Python versions without the expense of recreating environments, however there is a risk of these environments becoming stale. In this scenario it may be necessary to clobber the virtual environment root within the obj dir.

MozReview-Commit-ID: C4vuwNh04CP

--HG--
extra : rebase_source : 301c8418fe5b873ffadec37af11e98cfda8667b8
2018-07-09 14:57:38 +01:00
Andrew Halberstadt
812d9fb038 Bug 1413922 - [mozversioncontrol] Always use hglib.client if available and fall back to subprocesses if not, r=gps
Most HG commands use subprocesses, even if a context manager (and therefore an
hglib client) has been created. There are only two commands that make use of
the client, but they *only* work inside a context manager. I don't think
there are any technical reason these two commands *need* to use the context
manager.

This patch merges the HgRepository._run_in_client function with
HgRepository._run(). If a client exists, that will be used, otherwise a
subprocess will be used.

Differential Revision: https://phabricator.services.mozilla.com/D1809

--HG--
extra : moz-landing-system : lando
2018-07-10 20:41:49 +00:00
Jacek Caban
041db4695b Bug 1443471 - Use correct rust target for mingw clang. r=glandium
MozReview-Commit-ID: G40IanxGWXv

--HG--
extra : rebase_source : 6d8ba3af796848320cc7e3db05e9c83ba4fecb45
2018-06-25 19:57:43 +02:00
assiya
cd6fa5ad82 Bug 1474531 - Replace iteritems with viewitems in lcov_rewriter.py. r=marco
MozReview-Commit-ID: FKEHK8dyQSC

--HG--
extra : rebase_source : faf77a17fd7888f9a685c3fd692c2e8eff205afb
2018-07-10 09:20:42 -07:00
Andreea Pavel
3a4de89781 Backed out changeset d75218b99a04 (bug 1473727) for build bustages on a CLOSED TREE 2018-07-10 18:17:47 +03:00
Dave Hunt
4c269c0a47 Bug 1473727 - Avoid recreating virtual environment every time by using a unique environment for each Python version; r=ahal,dustin
This patch uses the PIPENV_PYTHON environment variable to append a suffix to the created virtual environment path according to the version specified. It also uses the PIPENV_DEFAULT_PYTHON_VERSION environment variable to avoid recreating the virtual environment every time. With these changes we are able to switch back and forth between Python versions without the expense of recreating environments, however there is a risk of these environments becoming stale. In this scenario it may be necessary to clobber the virtual environment root within the obj dir.

MozReview-Commit-ID: C4vuwNh04CP

--HG--
extra : rebase_source : ba34e415fa21683bc2a39231651587fa30ad0242
2018-07-09 14:57:38 +01:00
Tiberius Oros
92ba19b150 Merge inbound to mozilla-central. a=merge 2018-07-10 12:45:13 +03:00
Nathan Froyd
0daa8edfcc Bug 1444171 - Add pgo-generate-only source functionality; r=glandium
For clang-cl, we want to add code to libxul that only exists during the
PGO generation phase, so we can collect data.  The most expedient way to
do that is to enable certain files in SOURCES to be marked as to only be
compiled during the PGO generation step.
2018-07-09 18:35:49 -04:00
Nathan Froyd
9277d23dba Bug 1444171: Generate profiling instrumentation for clang-cl in PGO builds; r=glandium 2018-07-09 18:26:24 -04:00
Chris Manchester
dc4c4637b0 Bug 1468547 - Re-factor gtest mach command to not invoke make when not necessary. r=mshal
MozReview-Commit-ID: 6j7t0YIZc8n

--HG--
extra : rebase_source : e4478904d4f4e54ead473435df2c9e9a47a9294c
2018-07-09 14:28:59 -07:00
Chris Manchester
1d6bf9c8d4 Bug 1468547 - Build the gtest libxul in the tup backend. r=mshal
MozReview-Commit-ID: 8EISyDauwgD

--HG--
extra : rebase_source : 2c9b4848b6fd8126f4d15f75312ba4e3c999ba6d
2018-07-09 14:28:58 -07:00
Chris Manchester
ce084d3cf5 Bug 1468547 - Add a default output group to the Tup backend. r=mshal
This adds everything to a default output group so we can run `tup upd $objdir/<default>`
during `mach build` and `tup upd $objdir/<gtest>` for instance when running `mach gtest`
as a way to conditionally build parts of the tree.

MozReview-Commit-ID: 8jpkru1EgAC

--HG--
extra : rebase_source : 5a2c4fd0e0b1b62f8bd65dd1a23ba2086ba63eeb
2018-07-09 14:28:58 -07:00
Mike Hommey
b2837054ff Bug 1469091 - Build the clang plugin as a host shared library. r=ted
This adds just enough host shared library support for this one use case,
but also takes shortcuts, because fully supporting host shared library
is a deep rabbit hole I'm not ready to take just to fix --enable-lto
--enable-clang-plugin on mac builds.

One downside is that one my machine the plugin now takes > 80s to build,
instead of 15s before, thanks to the lack of unified sources.

--HG--
extra : rebase_source : bf52a72a01d4e3eb77cf52b646b19734b9273075
2018-07-05 14:58:09 +09:00
Dave Hunt
c20ffc6c6b Bug 1472199 - [mozbuild] Remove unittest dependency from test_pythonutil.py and narrow to tests module; r=ahal
The test checks the modules imported, which means it will fail if we import mozbuild.base to determine the topsrcdir. Rather than include the additional modules, which may change in the future, I have narrowed the scope of the test to the mozbuild/tests module.

MozReview-Commit-ID: GiaPzp19adE

--HG--
extra : rebase_source : 9d79ad79bef2b45e3f62190200bc46f21d57f90d
2018-07-05 14:27:29 +01:00
Mike Hommey
da38aeba7d Bug 1457168 - Make configure tests use LINKER_LDFLAGS. r=chmanchester
Because we have no linking configure test in python configure (yet), we
just make old-configure tests use LINKER_LDFLAGS, and make those flags
added to LDFLAGS by old-configure at the same time.

--HG--
extra : rebase_source : 80ab7c5021c7ddd1b53d58ef76cd4372a524d3cb
2018-07-04 16:18:48 +09:00
Nathan Froyd
c1a8b8a10d Bug 1473291 - handle valueless dynamic section entries; r=glandium
Some dynamic entry types, like DT_BIND_NOW, are printed without a value
by readelf.  Handle such types gracefully.
2018-07-04 20:51:25 -04:00
Bogdan Tara
6eafe1c00b Backed out changeset 9c75cab2e322 (bug 733530) for breaking artifact builds 2018-07-04 14:50:22 +03:00
Chris AtLee
8745339529 Bug 733530: Use .tar.gz for test archives r=gps
Differential Revision: https://phabricator.services.mozilla.com/D1743

--HG--
extra : moz-landing-system : lando
2018-07-03 18:33:02 +00:00
Andi-Bogdan Postelnicu
88041b74a8 Bug 1472721 - mach static-analysis - use header_filter regex expression in order to better filter files. r=janx
MozReview-Commit-ID: JXzs46L23rM

--HG--
extra : rebase_source : 04d663479fbc5785ec99ec1a4bfdbd9f19b25cd2
2018-07-03 14:37:46 +03:00
Myk Melez
cb3429d30b Bug 1467148 - exclude .DS_Store file from list of subdirs to check for license info, r=ted
vendor_rust.py checks all dirs in third_party/rust/ for license information, but it wasn't distinguishing between subdirs and files when listing the contents of that directory, and the script earlier causes macOS to create a .DS_Store file in the directory, which the script then treats as a subdir, causing an IOError "not a directory". This change excludes the .DS_Store file (and other non-dirs) from the list of subdirs of third_party/rust/ to check for license info.

MozReview-Commit-ID: 4CrJH9tZLnG

--HG--
extra : rebase_source : 464ad17f4c9b76303f9024d8eaad475b1fc248f7
2018-07-02 14:27:22 -07:00
Andi-Bogdan Postelnicu
68fedeb80b Bug 1472502 - fix mach static-analysis clear-cache. r=sylvestre
MozReview-Commit-ID: AUlYNnEAtbS

--HG--
extra : rebase_source : 049909e12ee8ad187912ee18c3b810fd90f74b76
2018-07-02 12:05:07 +03:00