Commit Graph

6806 Commits

Author SHA1 Message Date
Dustin J. Mitchell
522245f2f2 Bug 1403519 - only build docs when necessary r=gps
This marks **/docs/** as exclusively docs, and code that is autodoc'd as
inclusively docs.

That means that a change that purely modifies documentation files will *only*
run `docs` tasks, while a change that modifies autodoc'd source code will
*additionaly* run `docs` tasks.  The tasks do not run by default.

MozReview-Commit-ID: G9tOK0AwtrI

--HG--
extra : rebase_source : 8dd971e5c9b0eb5f47895664a4ea49442f303ecb
extra : source : 0881de9b2b5e36ec37cc866f1d4af109da57a919
2017-10-02 18:22:56 +00:00
Dorel Luca
a19f5582cc Merge mozilla-central to mozilla-inbound r=merge 2018-01-11 00:05:23 +02:00
Mike Hommey
48af0db891 Bug 1429285 - Add cmake and ninja packages to the toolchain-build docker image. r=gps
We build packages of the same versions that were installed by
taskcluster/docker/recipes/install-cmake.sh and
taskcluster/docker/centos6-build/system-setup.sh in the desktop-build
image.

--HG--
extra : rebase_source : 843b89065daabd450f54ebf7a2cf55d00977e23a
2017-12-29 15:43:43 +09:00
Mike Hommey
87c31766de Bug 1429257 - Statically link newfs_hfs against libcrypto. r=gps
For the same reasons as bug 1427266.

--HG--
extra : rebase_source : f27c9d05b2ea74d323fde29c09c2faae9fe8ee19
2018-01-10 09:59:29 +09:00
Mike Hommey
e1983fc387 Bug 1429257 - Make build-hfsplus.sh fail when something goes wrong. r=gps
Currently, the build can finish succesfully even when one of the
programs fails to build and is not included in the final artifact. The
macosx build then fails because of that, which is the wrong place to
be failing.

--HG--
extra : rebase_source : 4a41b2f96eea45d3eefa2734900603b6e6ee0ea5
2018-01-10 08:37:44 +09:00
Mike Hommey
b25c52c92a Bug 1428989 - Generate Android bindings more deterministically. r=nalexander
There are multiple methods with the same name and that differ in their
arguments. They end up being ordered in the source file randomly,
despite there being some sorting done, because the sorting was only done
on the method name.

Now, when the method name matches, also compare the arguments.

--HG--
extra : rebase_source : a89b8c9dbad1d7506e0068119ba25cd34150bafc
2018-01-09 16:44:27 +09:00
Narcis Beleuzu
3b53e85664 Backed out 2 changesets (bug 1396582) for build bustage "ImportError: No module named which". r=backout a=backout on a CLOSED TREE
Backed out changeset a677efcd8768 (bug 1396582)
Backed out changeset 4e81669959ed (bug 1396582)
2018-01-09 22:45:50 +02:00
Chris Manchester
1be9ea36da Bug 1427840 - Add in-tree docs for GN support in the build system. r=dminor
MozReview-Commit-ID: AWsgvmMMIpX

--HG--
extra : rebase_source : 399d292b429714b8d23e1fc2142b2aedd77c584d
2018-01-09 12:15:08 -08:00
Gregory Szorc
b1d1ac0183 Bug 1396582 - Move Python version checking to moz.configure; r=nalexander
The Python version validation in virtualenv.py is only called in 2
locations: `python -m mozbuild.virtualenv` and in moz.configure.

I believe that nobody calls `python -m mozbuild.virtualenv` any more.
That means that moz.configure is the only caller of
verify_python_version(). That means we can inline the logic into
moz.configure.

It makes sense for version checking to live in moz.configure because
the role of moz.configure is to evaluate the sanity of the environment.
So this commit does just that.

MozReview-Commit-ID: 7FLL0cGblFS

--HG--
extra : rebase_source : 4c2ecbe06399aad917f58ffb25a571993b736965
2018-01-08 15:46:35 -08:00
Gregory Szorc
252e60c9b2 Bug 1426566 - Remove wrapper to compare-mozconfigs; r=froydnj,nalexander
Recent refactoring made the wrapper pretty useless. Since I'm about
to look at this code once more, let's remove it while we're here.

MozReview-Commit-ID: GA9cKeLH7Iu

--HG--
extra : rebase_source : 9e08ed60eab694a9f20385aa5f85a9909809b199
2018-01-05 14:16:04 -08:00
Tom Prince
3f982a356e Bug 1428914: Get rid of some unsued python modules in build/; r=nalexander
MozReview-Commit-ID: D56lfae300E

--HG--
extra : rebase_source : a6882da45ae9f2019d2013c85c63735b4f1ae057
2018-01-08 16:22:21 -07:00
Matías Zúñiga
5a103f5593 Bug 1428110 - Check both paths of EMULATOR in one pass. r=nalexander 2018-01-08 22:03:10 -03:00
Andi-Bogdan Postelnicu
b41605bc5e Bug 1429015 - Add clang-format-diff to the clang-tidy build generated by toolchains. r=sylvestre
MozReview-Commit-ID: FjJqef78wa3

--HG--
extra : rebase_source : ef0682f66f681f7c069fe6ad31baeb78d54c14ea
2018-01-09 13:27:39 +02:00
Emilio Cobos Álvarez
06f30cacd7 Bug 1428864: Fix indexer plugin build with clang >= 5. r=kats
MozReview-Commit-ID: J1DKFkyXu0v

--HG--
extra : rebase_source : 81d6abfa400c9c606d4bef5adc4633a831a713aa
2018-01-08 20:21:53 +01:00
Jean-Luc Bonnafoux
5acf65c7fe Bug 1428629 - elfhack.cpp prefer prefix ++ operator for non primitive types r=froydnj
MozReview-Commit-ID: C0L2NUsbmc4

--HG--
extra : rebase_source : b4b3dfbbabbd610384448169b10c3f9b5c27e621
2018-01-08 09:30:32 +01:00
Jean-Luc Bonnafoux
83cf591ec7 Bug 1417215 - Prefer prefix ++ operator for non primitive types r=froydnj
MozReview-Commit-ID: Hjbj0PEjAnf

--HG--
extra : rebase_source : 659bfb57eba416e6105035e453d7366a9515ea3a
2017-12-30 21:09:58 +01:00
Mike Hommey
e34ef317f6 Bug 1427339 - Make mozconfig.stdcxx work with both CentOS and Debian-built GCCs. r=gps 2018-01-06 14:19:30 +09:00
Mike Hommey
0c1517dd8c Bug 1427339 - Configure binutils and gcc --with-sysroot=/. r=gps
The system binutils and gcc are built with that option on Debian, but
not on CentOS. That makes no practical difference, except for the fact
that when building GCC, we use our own-built binutils (as per bug
1427316), but use the system GCC. And a GCC built with --with-sysroot=/
doesn't work with a binutils built without. However, a GCC built without
--with-sysroot=/ works fine with a binutils built with it. So this
change is compatible with building our GCC on both CentOS and Debian.
2018-01-06 14:19:29 +09:00
Mike Hommey
51725c8a00 Bug 1427326 - Build a python package for Debian 7. r=dustin
--HG--
extra : rebase_source : b31d301859a0b6f6ecbb7763a82f162d7673379f
2017-12-29 13:00:59 +09:00
Andreea Pavel
25357802c6 Merge mozilla-inbound to mozilla-central r=merge a=merge 2018-01-04 23:28:19 +02:00
Ted Mielczarek
ad688de73b bug 1401647 - use a 64-bit Rust toolchain for win32 builds. r=nalexander,rillian
We currently use a 32-bit Rust toolchain for win32 builds, but this can lead
to OOM situations. This patch makes win32 builds use a 64-bit Rust toolchain,
which requires a little bit of extra configuration because rustc needs to
be able to find a link.exe that produces 64-bit binaries for building
things like build scripts, which are host binaries.

We will now generate a batch file that sets LIB to the paths to 64-bit
libraries and invokes the x64-targeting link.exe, and add a section to the
.cargo/config file to instruct cargo to use that batch file as the linker
when producing 64-bit binaries.

MozReview-Commit-ID: 9vKBbm7Gvra

--HG--
extra : rebase_source : 273a99be71914167664482c2bdb26c840ec6867b
2017-12-14 10:20:33 -06:00
Mike Hommey
25c3f317c0 Bug 1427404 - Always export PATH when passing it through mk_add_options. r=nalexander
mk_add_options has this kind of awkward feature where
  mk_add_options VAR=value
would set VAR for the build through client.mk, but not when running
make -C objdir target. But
  mk_add_options "export VAR=value"
does.

We might want to change that on the long run, but the side effects would
have to be calculated first.

OTOH, we have automation jobs that run compilations during `make check`
(e.g. rusttests), which is not invoked through client.mk. So they
currently don't get the same PATH as the build part, meaning that
they're using system binutils instead of the one from the GCC toolchain
package.

--HG--
extra : rebase_source : aab7f221243c486cf70c7b0c91b9313231050ed8
2017-12-31 08:50:29 +09:00
Zibi Braniecki
6d15cb5ce6 Bug 1411012 - Migrate a small chunk of Privacy pane in Preferences to Fluent. r=mshal,Pike
MozReview-Commit-ID: ahAZCinoui

--HG--
extra : rebase_source : 2e3d68eb1ff91c1ee885d66756d2db74faff13f3
2017-11-09 12:11:32 -08:00
Makoto Kato
336ace5ab7 Bug 1397776 - Removing armv6 config support for Android. r=glandium
We no longer support Android/armv6 and we requires NEON for Android/arm, so
we can remove armv6 support for Android.

MozReview-Commit-ID: Hh17BTyE0wR

--HG--
extra : rebase_source : 57e043ecb1bb57a026c0b656b82768b899ddae78
2017-12-15 16:32:54 -06:00
Mike Hommey
a6484528bd Bug 1410148 - Fully re-enable debug info on mac builds. r=gps
--HG--
extra : rebase_source : b6063977691ee68eb8db1bc38b57b6237daee443
2017-12-28 18:01:50 +09:00
Mike Hommey
9f6417f045 Bug 1410148 - Backport llvm r289565 to clang 3.9. r=gps
I was able to reproduce the failure to apply llvm-dsymutil on the last
mozilla-central revision before debug info was temporarily disabled for
rust, and validated that the problem was gone in clang 4.

After some bisection, r289565 was identified as having fixed the
problem, which, reading the commit message, makes sense.

It was however not possible to simply cherry-pick, because of multiple
code changes between 3.9 and 4. However, apart from the volume of
conflicting changes, it was more or less straightforward to backport.

Interestingly, the patch for r313872 was relying on changes from
r289565, which is why it required a variant specifically for 3.9, but
now we can use the same patch as for other versions. Well, except
there's a small difference in the context, and build-clang.py doesn't
allow fuzz, so we manually edit the patch to remove that line from the
context.

--HG--
extra : rebase_source : de0ab262d401c37c0e9300b0ef7923a07c009d87
2017-12-28 14:54:51 +09:00
Mike Hommey
4aa79652c5 Bug 1427232 - Remove .la files when building gtk3. r=gps
In bug 1426785, Gtk+3 build was moved to docker image creation time, and
at the same time, the removal of .la files was stripped, because it
seemed too broad to do that in /usr/local/lib*, and because I didn't
really remember why it was there in the first place.

I now do remember, and that's because libtool likes to add useless
dependencies on libraries just because direct dependencies transitively
depend on them. For example, this adds a dependency on libffi to
libpangocairo, which doesn't use it directly.

I also happens that /usr/local/lib* is empty at the moment we build
gtk3, so we can just do the cleanup there.

On its own, this change is useless, but:
- it restores the libraries in their state pre-bug 1426785,
- it helps reduce some differences when building on Debian (for bug
1399679), easing the comparison of those builds.

--HG--
extra : rebase_source : 3fa644d8ae5eb4ccac5940c7d3605201f589936d
2017-12-28 11:15:00 +09:00
Ciure Andrei
8e754a1049 Backed out 2 changesets (bug 1410148) for bustage failures on python\mozbuild\mozbuild\test\configure\lint.py r=backout a=backout on a CLOSED TREE
Backed out changeset f77f58a060ad (bug 1410148)
Backed out changeset 593515920c7e (bug 1410148)
2017-12-29 22:31:51 +02:00
Mike Hommey
66ed1c2e3a Bug 1410148 - Fully re-enable debug info on mac builds. r=gps
--HG--
extra : rebase_source : 44400063c868c9ce83c1310d30c6359e9b0b0759
2017-12-28 18:01:50 +09:00
Mike Hommey
8a6ab5b9ab Bug 1410148 - Backport llvm r289565 to clang 3.9. r=gps
I was able to reproduce the failure to apply llvm-dsymutil on the last
mozilla-central revision before debug info was temporarily disabled for
rust, and validated that the problem was gone in clang 4.

After some bisection, r289565 was identified as having fixed the
problem, which, reading the commit message, makes sense.

It was however not possible to simply cherry-pick, because of multiple
code changes between 3.9 and 4. However, apart from the volume of
conflicting changes, it was more or less straightforward to backport.

Interestingly, the patch for r313872 was relying on changes from
r289565, which is why it required a variant specifically for 3.9, but
now we can use the same patch as for other versions. Well, except
there's a small difference in the context, and build-clang.py doesn't
allow fuzz, so we manually edit the patch to remove that line from the
context.

--HG--
extra : rebase_source : cda077132ee499a8ffdc4c88a1160cfa5fd86a97
2017-12-28 14:54:51 +09:00
Mike Hommey
6a21d1f58e Bug 1426785 - Remove mozconfig.gtk. r=gps
It now only does something trivial, which also happens to be a no-op
because it's the default. It does have a commented entry for possible
gtk+2 builds, but we're soon going to remove that possibility anyways in
bug 1278282.

--HG--
extra : rebase_source : 9ac927bb7bd8c057264c8f6f9ca5cbf79a839c4e
2017-12-22 07:57:05 +09:00
Mike Hommey
79b5314945 Bug 1426785 - Use gtk+3 from /usr/local on automation. r=gps
Now that build environment docker images have gtk+3 installed in
/usr/local, adjust mozconfigs to point pkg-config there, and remove
all the glue that was required to build using the tooltool package.

Also remove the --x-libraries=/usr/lib on 32-bits builds, which only
confuses the linker.

--HG--
extra : rebase_source : c7de7b3959a3c6b77ea202d9609c891b5b7ec442
2017-12-22 07:53:33 +09:00
Mike Hommey
a6e25e84a3 Bug 1426785 - Install gtk+3 in the Centos images used for desktop builds. r=gps
Back when we started needing gtk+3 to build Firefox, we were using mock
to setup the build environment, and a tooltool package was the most
sensible way to handle this.

Fast forward to today, and we're close to moving the build environment
to Debian, which comes with gtk+3 packages. But in order to simplify
the various checks for the transition, it is desirable to stop using the
tooltool package. Which we can actually do in a reasonable way now that
we use docker images instead of mock, by building and installing gtk+3
in the build environment images.

So we modify the script that was producing the gtk+3 tooltool packages
such that it installs gtk+3 in the docker images, both 32 and 64 bits.
And invoke it when creating the desktop build environment docker images.

--HG--
extra : rebase_source : 75e987d6de7f3ae8a3d9b478fc173e191d28aace
2017-12-22 07:41:56 +09:00
Coroiu Cristina
dbb27acb6d Backed out 5 changesets (bug 1426785) for failing repackage the nightly build on Linux a=backout.
Backed out changeset 08b5850633de (bug 1426785)
Backed out changeset 61453b6473f1 (bug 1426785)
Backed out changeset 851ce8944b41 (bug 1426785)
Backed out changeset 386cd0532519 (bug 1426785)
Backed out changeset 2a52bf9e0898 (bug 1426785)
2017-12-24 14:03:02 +02:00
Tiberius Oros
fd149086d0 Merge mozilla-central to inbound. r=merge a=merge CLOSED TREE 2017-12-24 00:48:00 +02:00
Tiberius Oros
794f6c4955 Merge autoland to mozilla-central r=merge a=merge
--HG--
extra : rebase_source : 688988c7815ca431c434b8804a5c88eb41d67c06
2017-12-23 23:59:51 +02:00
Ryan VanderMeulen
63ac251398 Bug 1426793 - Add DevEdition to mozinfo. r=nalexander 2017-12-23 16:39:53 -05:00
Chris Cooper
f2819347e3 Bug 1410148 - Attempt to fix OS X cross-compile builds on central by changing rust debug log level to 0. r=Aryx a=bustage-fix-attempt
--HG--
extra : amend_source : 3eba0bc3e2008806b048f285215b338f2a8bcf2d
2017-12-23 21:12:47 +01:00
Mike Hommey
aa8197cc80 Bug 1426788 - Don't fall back to ccache when sccache is not enabled. r=gps
ccache is not beneficial on taskcluster, don't try to use it when
sccache is not enabled for some reason.

--HG--
extra : rebase_source : a17fe88eb92072935cb86f9ada4205863cfc8f85
2017-12-22 10:08:40 +09:00
Mike Hommey
2dca68b63f Bug 1426785 - Remove mozconfig.gtk. r=gps
It now only does something trivial, which also happens to be a no-op
because it's the default. It does have a commented entry for possible
gtk+2 builds, but we're soon going to remove that possibility anyways in
bug 1278282.

--HG--
extra : rebase_source : 0de751e523ee002bbe6638d223eb384364edd22b
2017-12-22 07:57:05 +09:00
Mike Hommey
2e32acf893 Bug 1426785 - Use gtk+3 from /usr/local on automation. r=gps
Now that build environment docker images have gtk+3 installed in
/usr/local, adjust mozconfigs to point pkg-config there, and remove
all the glue that was required to build using the tooltool package.

Also remove the --x-libraries=/usr/lib on 32-bits builds, which only
confuses the linker.

--HG--
extra : rebase_source : 22b1273ae4b78807b355d33ed5895bdfe83a141d
2017-12-22 07:53:33 +09:00
Mike Hommey
089e3a8dc2 Bug 1426785 - Install gtk+3 in the Centos images used for desktop builds. r=gps
Back when we started needing gtk+3 to build Firefox, we were using mock
to setup the build environment, and a tooltool package was the most
sensible way to handle this.

Fast forward to today, and we're close to moving the build environment
to Debian, which comes with gtk+3 packages. But in order to simplify
the various checks for the transition, it is desirable to stop using the
tooltool package. Which we can actually do in a reasonable way now that
we use docker images instead of mock, by building and installing gtk+3
in the build environment images.

So we modify the script that was producing the gtk+3 tooltool packages
such that it installs gtk+3 in the docker images, both 32 and 64 bits.
And invoke it when creating the desktop build environment docker images.

--HG--
extra : rebase_source : fe18bfb2ec8db183c44838d5a7a0051322b2a9c0
2017-12-22 07:41:56 +09:00
Mike Hommey
cffd7e8396 Bug 1426555 - Move --enable-stdcxx-compat to python configure. r=chmanchester
At the same time, we make it actually do something on spidermonkey
builds. We also add an environment variable alternative, that we use
in mozconfig.stdcxx, allowing for mozconfig.no-compile to override it
and avoid configure failures on e.g. artifact builds.

--HG--
extra : rebase_source : b68d362025e0c99f9184a03391c652ec2c9357ad
2017-12-21 11:13:08 +09:00
Mike Hommey
ec8fa73867 Bug 1426555 - Allow to add host compiler flags from python configure. r=chmanchester
Bug 1325632 added some facility to add target compiler flags. This
change extends it to add allow adding host compiler flags as well.

--HG--
extra : rebase_source : 424b405a1d8f9a4778ff75c3308c9622f050e194
2017-12-21 11:11:22 +09:00
Csoregi Natalia
1dcea46201 Backed out 2 changesets (bug 1401647) for Spidermonkey Build Bustage on Linux x64. r=backout on a CLOSED TREE
Backed out changeset b5c9bb05168d (bug 1401647)
Backed out changeset 0542716bb901 (bug 1401647)
2017-12-21 14:14:26 +02:00
Ted Mielczarek
67204b6593 bug 1401647 - use a 64-bit Rust toolchain for win32 builds. r=rillian
We currently use a 32-bit Rust toolchain for win32 builds, but this can lead
to OOM situations. This patch makes win32 builds use a 64-bit Rust toolchain,
which requires a little bit of extra configuration because rustc needs to
be able to find a link.exe that produces 64-bit binaries for building
things like build scripts, which are host binaries.

We will now generate a batch file that sets LIB to the paths to 64-bit
libraries and invokes the x64-targeting link.exe, and add a section to the
.cargo/config file to instruct cargo to use that batch file as the linker
when producing 64-bit binaries.

MozReview-Commit-ID: 9vKBbm7Gvra

--HG--
extra : rebase_source : 366dd966cafe4f07b8e59fc170d2db2dada32627
2017-12-14 10:20:33 -06:00
Mike Hommey
e45c2bc4bc Bug 1426283 - Use nproc for the number of parallel jobs to run when building gcc. r=gps
While in the vicinity.

--HG--
extra : rebase_source : 8d885ff5fd4fa124a08326c0ca002a49ef559e57
2017-12-20 14:39:26 +09:00
Mike Hommey
d61456f499 Bug 1426283 - Work around bug 1409276. r=gps
Both the cc crate and the rust compiler may want to use "cc", which,
on automation, points to the system GCC compiler instead of ours.

As a workaround, we add a cc symbolic link in the GCC toolchain artifact
so that, as long as the GCC toolchain artifact's bin directory is in
$PATH early enough, it's picked over /usr/bin/cc.

--HG--
extra : rebase_source : 53cacf8a750539706a484218e168c8c9e0ba49a6
2017-12-20 10:32:36 +09:00
Mike Hommey
fbaf337e4b Bug 1426322 - Separate gcc and mingw32-gcc. r=gps
The "contract" for toolchains is that extracting foo.tar.xz creates a
directory named foo/. That is however not true for mingw32.tar.xz, which
extracts into gcc/, possibly overwriting files from the gcc.tar.xz
archive (which is also used for mingw builds, for the host part).

This is also not true for nsis.tar.xz, but it reportedly has problems
when it's not in the same directory as mingw32.

But mingw32 doesn't actually need to be mixed with gcc, so it's better
to separate them as they are supposed to be.

--HG--
extra : rebase_source : 30d90af64459bbb31bc076e48f3c661fa9cd4a79
2017-12-20 13:46:53 +09: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