Commit Graph

553 Commits

Author SHA1 Message Date
Coroiu Cristina
405814ddbb Backed out changeset 769dd8ce70e1 (bug 1413257) for failing flake8 at /builds/worker/checkouts/gecko/build/moz.configure/toolchain.configure r=backout on a CLOSED TREE 2017-11-01 23:52:50 +02:00
Tom Prince
2e700bdb70 Bug 1413257: Allow disabling ffvpx's AVX2 support on linux64 for Thunderbird's buildbot; r=jya,rillian
MozReview-Commit-ID: 6USzO1GE7dJ

--HG--
extra : rebase_source : 936ee14b7a91470a9f9029b20748fbe6c8e55d15
2017-10-31 12:42:27 -06:00
Sebastian Hengst
2470a9a87b merge mozilla-central to autoland. r=merge a=merge 2017-11-01 00:38:25 +01:00
Petr Sumbera
9fb34379c3 Bug 1412781 - sparcv9 cpu should be evaluated as 64bit. r=glandium 2017-10-30 02:50:48 -07:00
Sebastian Hengst
ea2bfe23e2 merge autoland to mozilla-central. r=merge a=merge
MozReview-Commit-ID: BnX9U7tZ4zU
2017-10-30 23:42:58 +01:00
Nathan Froyd
1c4901d060 Bug 1412734 - use the correct command-line flags to detect gold; r=snorp; a=RyanVM
We were adding c_compiler.flags and toolchain_flags to some paths
through this function, but not all.  Not adding those flags caused this
function to detect the host's ld.gold instead of the target's ld.gold.
And that, in turn, caused linker errors when the host ld.gold couldn't
understand the target's object files.

MozReview-Commit-ID: vJzWagUGkL
2017-10-30 12:06:54 -04:00
Gregory Szorc
7d078ee731 Bug 1412431 - Remove support for MOZ_BUILD_PROJECTS; r=nalexander
This was mainly used to support Universal MacOS builds, which were
removed several months ago.

In theory, someone could be using this feature to build multiple
applications with one build system invocation. But given that client.mk
is no longer the preferred interface to the build system and multiple
applications can be built by running `mach build` with different
mozconfigs, I don't think support for this feature is worth keeping.

This commit removes support for MOZ_BUILD_PROJECTS and related
functionality from client.mk. Support for recognizing
MOZ_CURRENT_PROJECT in configure and mozconfig evaluation has also
been removed. This includes support for the ac_add_app_options
mozconfig function.

Good riddance.

MozReview-Commit-ID: 7xI2jYxDFFr

--HG--
extra : rebase_source : 91068f3b8ae32fbcda4defb5d4bb086a04387598
2017-10-27 15:20:34 -07:00
Gregory Szorc
f818d2620e Bug 1411994 - Ignore Unicode errors when logging; r=glandium
LineIO currently attempts to convert bytes to unicode using the
system preferred encoding. This can obviously fail for some byte
sequences.

In many cases, the conversion is happening for purposes of logging.
In these cases, Unicode validation shouldn't be that important to
us.

So, this commit teaches LineIO to accept an argument defining its
Unicode error mode. We also teach relevant users of LineIO doing
logging to switch the default mode from "strict" to "replace" so
invalid Unicode byte sequences can be logged with the Unicode
replacement character.

During review, glandium pointed out that it may make better sense
to defer Unicode decoding to the logging layer instead of in LineIO.
I agree with this idea. But it can be implemented in another bug:
for now we should unbust the build system.

MozReview-Commit-ID: 7miuSDY8Xzv

--HG--
extra : rebase_source : 40d5d97d908d00b410b49d03729a34568e5bfb1a
2017-10-26 15:27:01 -07:00
Makoto Kato
41d5df0bac Bug 1411802 - Fix bustage after updating NDK r15c. r=me
MozReview-Commit-ID: 2kMieFmFWsJ

--HG--
extra : rebase_source : 2bea8a6590cadaeec3bfd807474f41535167b11f
2017-10-29 14:02:09 +09:00
Nathan Froyd
a29f4ac5f8 Bug 1163171 - part 9.1 - attempt to pacify flake8 complaints for real; r=me 2017-10-28 18:58:59 -04:00
Sebastian Hengst
286061948f Bug 1163171 - part 9 - fix flake8 complains in android-ndk.configure. r=me 2017-10-29 00:08:13 +02:00
Nathan Froyd
69423fba9b Bug 1163171 - part 3b - inform clang about the NDK's gcc toolchain; r=glandium
The NDK clang needs to be informed about the existence of a GCC
toolchain, so important programs like the linker can be located.  With
this change, we're starting to use command-line options that are
incompatible with GCC, so we also add a check to inform the user about
the non-support for this configuration.
2017-10-28 17:38:59 -04:00
Nathan Froyd
2c5288d26c Bug 1163171 - part 3a - expose the NDK clang binaries to toolchain configury; r=glandium
Our normal method of locating the compilers in the NDK is to set
--with-toolchain-prefix when compiling for Android.  However, the clang
binaries are in a different location than would otherwise be implied by
--with-toolchain-prefix.  Additionally, we still need to know about
--with-toolchain-prefix because the NDK clang needs to be pointed there
so clang can find important binaries like the linker and because various
other bits of the build system depend on the --with-toolchain-prefix
value as well.

So we need a separate mechanism for communicating the whereabouts of the
NDK clang.  We can't set CC and CXX because doing so would conflict with
the CC and CXX values exported to the js/src/ subconfigure.  But Android
already has an extra_toolchain_flags function that we use for informing
moz.configure about additional flags needed solely for Android, and we
can use a similar trick to communicate the existence of the NDK's clang
to the main C/C++ compiler selection process.
2017-10-28 17:38:59 -04:00
Nathan Froyd
bce27af988 Bug 1163171 - part 2 - switch to using -isystem rather than -idirafter for Android; r=glandium
This command-line flag is a little more evocative and works correctly
with both GCC and clang.
2017-10-28 17:38:59 -04:00
Sebastian Hengst
5c15da1f08 merge mozilla-inbound to mozilla-central. r=merge a=merge
--HG--
rename : testing/talos/tests/__init__.py => testing/talos/talos/unittests/__init__.py
rename : testing/talos/tests/browser_output.ts.txt => testing/talos/talos/unittests/browser_output.ts.txt
rename : testing/talos/tests/browser_output.tsvg.txt => testing/talos/talos/unittests/browser_output.tsvg.txt
rename : testing/talos/tests/profile.tgz => testing/talos/talos/unittests/profile.tgz
rename : testing/talos/tests/ps-Acj.out => testing/talos/talos/unittests/ps-Acj.out
rename : testing/talos/tests/test_talosconfig_browser_config.json => testing/talos/talos/unittests/test_talosconfig_browser_config.json
rename : testing/talos/tests/test_talosconfig_test_config.json => testing/talos/talos/unittests/test_talosconfig_test_config.json
rename : testing/talos/tests/xrestop_output.txt => testing/talos/talos/unittests/xrestop_output.txt
2017-10-27 12:45:34 +03:00
Gregory Szorc
95443edf17 Bug 1412044 - Fix linting failure; r=me
MozReview-Commit-ID: 7ME7ofs3cnv

--HG--
extra : rebase_source : 9167abc29d576ec1b5df1bc62dbc78a589e9bc23
2017-10-26 11:40:19 -07:00
Gregory Szorc
26e6361ee7 Bug 1412044 - Use separate arguments for rustc's -C option; r=ted
We subtly changed from "-C opt=value" to "-Copt=value" in 472232499478
(bug 1411081). This change appears to confuse sccache (which has its
own option parser).

This commit restores the old behavior of using separate arguments
for -C and its value.

MozReview-Commit-ID: JCnAjt1Tdsa

--HG--
extra : rebase_source : 2ad7aaf819c0c941efa2272c91d74ae7e52629e8
2017-10-26 11:26:14 -07:00
Chris Manchester
7e47dd1ebb Bug 1403346 - Define flags loading the clang plugin in configure rather than the make backend. r=glandium
MozReview-Commit-ID: EubsjJl1LBS
2017-10-25 15:12:10 -07:00
Chris Manchester
9889a2f30a Bug 1403346 - Use mozbuild.shellutil.split instead of split in config.status r=glandium
While we're here, provide a reference to unique_list as defined in
moz.configure when executing config.data to avoid its redefinition
in m4.

MozReview-Commit-ID: AI6XhoYR0Ye
2017-10-25 15:10:04 -07:00
Gregory Szorc
8de001a07d Bug 1411081 - Appease flake8 linter by adding empty lines; r=me 2017-10-25 10:57:51 -07:00
Gregory Szorc
083b5bc70f Bug 1411081 - Use opt-level=1 for rustc in default configuration; r=glandium
As the data in the bug shows, the current default of opt-level=2 is
several minutes slower at compiling than opt-level=1. This slows down
builds significantly and the added benefits of running opt-level=2
for local development can't be justified for the common/default case.

This commit changes the default for local builds from opt-level=2 to
opt-level=1.

--enable-release (what we use for builds shipped to users) will imply
opt-level=2. --enable-optimize (the default) will use opt-level=1,
and --disable-optimize will use opt-level=0.

The RUSTC_OPT_LEVEL environment variable in mozconfigs can be used
to set an explicit opt-level level, regardless of what other
configure options are set. This includes the other potential values,
"s" and "z."

A side-effect of this change is that -Copt-level is now *always*
specified by the build system. Before, it was only specified if
the value was adjusted to 0 for --disable-optimize builds.

MozReview-Commit-ID: 67KX5qScnFc

--HG--
extra : rebase_source : dac0134e952151992eee23e017e9a29f84b05172
extra : intermediate-source : c3a7cc11a987aedb81332f1a03cd082ab0ab0cb8
extra : source : 360827b8a5956d58f7f0200431d3a44c57ce8dc4
2017-10-24 16:48:58 -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
Gregory Szorc
ae7cf57366 Bug 1411081 - Move --enable-optimize/MOZ_OPTIMIZE to moz.configure; r=glandium
The Rust optimization logic is tied to --enable-optimize/MOZ_OPTIMIZE
and --enable-debug/MOZ_DEBUG. In order to more easily implement more
customization, let's move --enable-optimize/MOZ_OPTIMIZE to
moz.configure so its value can be consulted there.

The logic here is a bit wonky. The option behaves like a boolean
or a string. If a string, MOZ_OPTIMIZE is set to 2. Otherwise it
is 1 or unset depending on the boolean value.

The custom compiler flags string is passed to old-configure, where it
overwrites whatever old-configure derived as the default value.
We stop short of moving all references to MOZ_OPTIMIZE_FLAGS to
moz.configure because there are a handful of them and I don't want
to scope bloat.

MozReview-Commit-ID: 6iNDu2HwLGr

--HG--
extra : rebase_source : a64f1236012d13913f21253df1b9b5ff0ae8ea6e
2017-10-24 19:54:48 -07:00
Gregory Szorc
5b6a6d303e Bug 1411081 - Foster debugging of old-configure.vars; r=nalexander
We mix the added and modified variables from mozconfig and sort them.

We also print comments indicating where values come from.

MozReview-Commit-ID: 97x9iHxZe3m

--HG--
extra : rebase_source : 367bc410bc06532a91b488039e3cb0ec65850c09
2017-10-24 14:00:44 -07:00
Ralph Giles
6299f3d3dc Bug 1409533 - Require rust 1.21.0. r=froydnj
Per schedule, bump the minimum-supported rust version to 1.21.0
two weeks after its stable release so we can use new code which
depends on it.

MozReview-Commit-ID: Bn8UjvTC7uw
2017-10-26 13:06:28 -07:00
Ralph Giles
9681e0465c Bug 1408567 - Require Rust 1.20.0 or newer. r=nalexander
By the schedule we would have bumped the minimum-supported rust
version to 1.20.0 some weeks ago, just before Firefox 57 went to
beta. However, that was blocked on a couple of compatibility
issues with sccache and dsymutil. See bug 1396884.

Now that 1.20.0 is working in our automation builds, require
it for all builds to unblock servo and webrender upgrades.

Also update our integration test to verify building with
the new minimum.

MozReview-Commit-ID: 8otdix6f45f

--HG--
extra : rebase_source : 7d2550e8ddc772b45602bd488f174fc180e91484
2017-10-13 15:08:21 -07:00
Mike Hommey
0914d9c689 Bug 1408317 - Take endianness into consideration when looking for rust target. r=froydnj
--HG--
extra : rebase_source : 8e65363f4544f82f0e96ae7643402b7a5f41bb60
2017-10-13 18:33:30 +09:00
Nick Alexander
34633c477b Bug 1352599 - Part 2: Add PROGUARD_JAR configure option. r=chmanchester
MozReview-Commit-ID: KOzcGY6txI6

--HG--
extra : rebase_source : 1fefdd2935b3e00fbd3234a832d827e91c1fcc75
2017-10-12 14:28:31 -07:00
Sebastian Hengst
aa9035ca52 Backed out changeset 1da1df814ad3 (bug 1352599) 2017-10-12 23:42:00 +02:00
Sebastian Hengst
aaf2517be0 Backed out changeset f88b59de4952 (bug 1352599) 2017-10-12 23:40:36 +02:00
Nick Alexander
bcdb2e2621 Bug 1352599 - Follow-up: Fix Python lint errors. r=Aryx 2017-10-12 20:48:22 +02:00
Nick Alexander
6e98033aa9 Bug 1352599 - Part 2: Add PROGUARD_JAR configure option. r=chmanchester
MozReview-Commit-ID: 9ZHaGfmrjNI

--HG--
extra : rebase_source : 4885fcc538dcb50a99e83e787715a309b480c62e
2017-10-02 15:26:25 -07:00
Sylvestre Ledru
816ba0c177 Bug 1406668 - Make build/moz.configure/*.configure compliant to the pep8 format + add to the list of directories to check r=glandium
MozReview-Commit-ID: 89NxxGUVjHV

--HG--
extra : rebase_source : 278ceb2d7d31da086216288bd54688fe25faa03b
2017-10-12 15:22:59 +02:00
Sebastian Hengst
3980c1732a Backed out changeset 4dc78384cb58 (bug 1406668) for flake8 linting failures. r=backout
--HG--
extra : rebase_source : 20f93207038c76e2804f255e4ebfdd5e03a8f7cc
2017-10-12 15:08:35 +02:00
Sylvestre Ledru
a102c9f46a Bug 1406668 - Make build/moz.configure/*.configure compliant to the pep8 format + add to the list of directories to check r=glandium
MozReview-Commit-ID: 89NxxGUVjHV

--HG--
extra : rebase_source : 658301cb32e9c042cd1931456e4e7b8f475900bd
2017-10-11 16:28:29 +02:00
Sebastian Hengst
7a40cdf1bb Backed out changeset b526011049ee (bug 1406668) for linting failures. r=backout
--HG--
extra : amend_source : fe8373f9572300c7fd090f529c6957fbf905d9ef
2017-10-12 14:41:28 +02:00
Sylvestre Ledru
4e4de3339f Bug 1406668 - Make build/moz.configure/*.configure compliant to the pep8 format + add to the list of directories to check r=glandium
MozReview-Commit-ID: 89NxxGUVjHV

--HG--
extra : rebase_source : 3d22007ea6793961e7031603efe58cdc66e3c6c9
2017-10-11 16:28:29 +02:00
Sylvestre Ledru
7cb2262b1e Bug 1405982 - Rename the method "build_not_win_mac" to "is_linker_option_enabled" match what it is doing r=glandium
MozReview-Commit-ID: 3Kv9z79Cct8

--HG--
extra : rebase_source : 9b390845d2974ba2e6ccb9e8098f8c15bd21be92
2017-10-10 12:01:32 +02:00
Chris Peterson
925214d9af Bug 1406618 - Enable gcc -Wduplicated-cond warnings. r=glandium
Warn about duplicated conditions in if-else-if chains, which are unreachable code and likely copy/paste bugs. The -Wduplicated-cond flag is available in gcc 6 and later.

  int example(int a)
  {
    if (a == 0)
      a = 42;
    else if (a == 0) // -Wduplicated-cond warning!
      a = 43;
    return a;
  }

MozReview-Commit-ID: F9hqxMCct74

--HG--
extra : rebase_source : 71168f79ce8f03f650167cdedbbd2e5802846eab
2017-10-05 23:14:02 -07:00
Petr Sumbera
ca36fd236b Bug 1405326 - check for linker fails on Solaris r=glandium
MozReview-Commit-ID: 8dDfivVaK8f

--HG--
extra : amend_source : 5286f58e958c54fc6a7cdf2af9258214b3226e1d
2017-10-03 07:15:24 -07:00
Sebastian Hengst
1a4a26905f merge mozilla-inbound to mozilla-central. r=merge a=merge 2017-10-10 06:12:26 -03:00
David Major
32514fce52 Bug 1407017 - Make --with-visual-studio-version a js_option. r=ted 2017-10-09 12:16:00 -04:00
Makoto Kato
8ab65ab25c Bug 1397764 - Part 2. Generate BINDGEN_CFLAGS for Android. r=chmanchester
Building Fennec/Android uses cross compiler toolchain.  So we have to generate
clang options (include path for c++ headers and gcc headers, gcc-toolchain path and etc) from NDK path for bindgen.

The following options are required for android build.

  (from stlport_cppflags)
  -I$topsrcdir/android-ndk/sources/cxx-stl/llvm-libc++/libcxx/include
  -I$topsrcdir/android-ndk/sources/android/support/include
  -I$topsrcdir/android-ndk/sources/cxx-stl/llvm-libc++abi/libcxxabi/include"

  (others for clang)
  -isystem $topsrcdir/android-ndk/platforms/android-9/arch-arm/usr/include
  -gcc-toolchain $topsrcdir/android-ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
  -I$topsrcdir/android-ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9/include
  -I$topsrcdir/android-ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9/include-fixed"

Also, since bindgen_cflags_defaults uses as default, some funcions requires '--help'.

MozReview-Commit-ID: 7zfhw3IxQ2W

--HG--
extra : rebase_source : 0ede4f0d1ec212cfe411f6abe0f55f4b0c70643d
2017-09-29 16:46:52 +09:00
Makoto Kato
6a7100fa7b Bug 1397764 - Part 1. Move STLPORT_CPPFLAGS to moz.configure. r=chmanchester
To build sytlo, we have to set compiler flags via BINDGEN_CFLAGS.  Since we
 pass stlport flags to clang, I would like to move STLPORT_CPPFLAGS to
moz.configure.

MozReview-Commit-ID: 26jvUqUvwTY

--HG--
extra : rebase_source : 5568627368fbf2dce02904918e50a241713d0a85
2017-09-29 16:45:44 +09:00
Christian Holler
a351d70944 Bug 1406081 - Make --enable-coverage flag available in JS shell. r=froydnj
MozReview-Commit-ID: 5GGTGu2oMc3

--HG--
extra : rebase_source : 85c079b02f6b408ddfd13e518ed136c3a26b20b1
2017-10-05 18:30:26 +02:00
Mike Hommey
4d379e455b Bug 1403366 - Remove the --with-default-mozilla-five-home configure flag. r=froydnj
--HG--
extra : rebase_source : 354efac644a7fdeea507c0e87cf44183d773413d
2017-09-28 11:02:45 +09:00
Sebastian Hengst
15179c0abe Backed out changeset aa58d5c8fe1a (bug 1403366) 2017-10-04 01:26:45 +02:00
Mike Hommey
d9378b1e26 Bug 1403366 - Remove the --with-default-mozilla-five-home configure flag. r=froydnj
--HG--
extra : rebase_source : 354efac644a7fdeea507c0e87cf44183d773413d
2017-09-28 11:02:45 +09:00
Nathan Froyd
2d3d2c4950 Bug 1373878 - part 1 - add --enable-rust-tests configure option; r=rillian
Because Rust tests require panic=unwind crates and therefore recompiling
all crates we normally use (since most of our crates use panic=abort),
we've elected to enable Rust tests only if the user asks for it.  Hence,
this configure option.

The configure option also enables build-time execution of the crates,
since it's not straightforward to determine at configure time the name
of the test binary Cargo will produce (Cargo produces test binaries of
the form ${NAME}-${HEX_FINGERPRINT}, but there's no way to determine
what ${HEX_FINGERPRINT} is without actually compiling the test binary).
2017-10-02 09:21:22 -04:00
Sebastian Hengst
863d9030ca Backed out changeset 48a74b8750b4 (bug 1403366) 2017-09-29 17:19:22 +02:00