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

786 Коммитов

Автор SHA1 Сообщение Дата
Mike Shal 56ba0730bc Bug 1580899 - Remove MOZ_PGO from mozconfigs; r=glandium
Setting this flag still attempts to build with 1-tier PGO, unless we
detect that 3-tier PGO is enabled. Since we should be using 3-tier PGO
everywhere, the flag should be redundant in our automation mozconfigs.
It can still be used locally in a mozconfig to do a 1-tier PGO build.

Depends on D46069

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

--HG--
extra : moz-landing-system : lando
2019-09-18 18:29:00 +00:00
Mike Shal 3b8df1c395 Bug 1580028 - Always merge PGO profile data in the run task; r=firefox-build-system-reviewers,chmanchester
If the run task generates bad profile data, the merge step in the
profile-use task will fail. However, retrying the profile-use task
doesn't fix the problem, and there isn't a straightforward way to retry
the run task in this situation. Instead we can add a clang toolchain to
all the run tasks, and perform the merge there.

This means the output from the run task will always be a successfully
merged file called 'merged.profdata', and we no longer need to perform
the merge as part of the profile-use build as a GENERATED_FILES step.

Depends on D45262

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

--HG--
extra : moz-landing-system : lando
2019-09-10 21:56:15 +00:00
Nathan Froyd 62a5c58f09 Bug 1579430 - mark some elfhack methods as `override`; r=glandium
This change silences a couple of clang warnings.

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

--HG--
extra : moz-landing-system : lando
2019-09-09 23:54:34 +00:00
Razvan Maries 9415ecf29b Backed out 2 changesets (bug 1569728) for causig Linux shippable opt build bustages.
Backed out changeset 2f873da4b36e (bug 1569728)
Backed out changeset aaae16f5f29d (bug 1569728)
2019-09-01 03:42:38 +03:00
Nathan Froyd 1bc5f4c3fe Bug 1569728 - manually instantiate some basic_string members for libstdc++ compat; r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D41370

--HG--
extra : moz-landing-system : lando
2019-08-25 19:27:47 +00:00
Razvan Maries 74868f6da5 Backed out 2 changesets (bug 1569728) for Android 4.0 API16+ GeckoView multi-arch fat AAR opt build bustages.
Backed out changeset a420714ee262 (bug 1569728)
Backed out changeset d24ed38c76cd (bug 1569728)
2019-08-24 19:09:21 +03:00
Nathan Froyd faaa483c34 Bug 1569728 - manually instantiate some basic_string members for libstdc++ compat; r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D41370

--HG--
extra : moz-landing-system : lando
2019-08-24 13:51:32 +00:00
Mike Hommey c173540215 Bug 1573435 - Use toolchain fetches for all remaining toolchain uses. r=nalexander
The remaining uses all need adjustements to in-tree mozconfigs, so they
all need to be done at once.

However, to make things slightly more intelligible, we do this in two
steps. This is step 1: we modify the use_toolchain transform to take care of
the transformation, while keeping the task definitions intact, so that
we only deal with mozconfig and build script adjustements here.

Differential Revision: https://phabricator.services.mozilla.com/D41890
2019-08-15 11:21:52 +09:00
Mike Hommey 375094b924 Bug 1571596 - Repack GCC and related source tarballs. r=nalexander
Differential Revision: https://phabricator.services.mozilla.com/D40748
2019-08-07 13:54:27 +09:00
Eric Rahm 26bdfd6480 Bug 1571836 - Enable Rust PGO on Linux64. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D40858

--HG--
extra : moz-landing-system : lando
2019-08-06 22:26:49 +00:00
Mike Hommey c638ab3c85 Bug 1570796 - Use a fetch task for hfsplus-tools source code. r=nalexander
Differential Revision: https://phabricator.services.mozilla.com/D40329

MANUAL PUSH: avoid closing autoland while all docker images and
toolchains are rebuilt.
2019-08-02 19:07:06 +09:00
Mike Hommey 70693454fd Bug 1570224 - Use nproc instead of getconf _NPROCESSORS_ONLN. r=nalexander
Plenty of places use `nproc`, and only a couple use `getconf
_NPROCESSORS_ONLN`. Use the former instead of the latter.

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

--HG--
extra : moz-landing-system : lando
2019-07-31 17:21:22 +00:00
Nathan Froyd bde244933a Bug 1486042 - switch all existing `MOZ_LTO` configs to use cross-language LTO; r=dmajor
This change is a no-op for win64 configs, as they had this feature before.

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

--HG--
extra : moz-landing-system : lando
2019-07-16 02:39:16 +00:00
Mike Hommey 1e693768bf Bug 1563465 - Remove leftovers from bug 1451104. r=froydnj
Bug 1451104 removed the GCC 4.9 toolchain, but left the build script and
the patch that only that toolchain build was using.

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

--HG--
extra : moz-landing-system : lando
2019-07-04 13:00:43 +00:00
Mike Hommey ed3910db06 Bug 1560545 - Force-enable wayland support in Linux builds. r=chmanchester
So that we don't end up disabling it by accident.

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

--HG--
extra : moz-landing-system : lando
2019-06-26 06:03:20 +00:00
Cosmin Sabou 58cc56c50f Backed out 3 changesets (bug 1560545) for causing build bustages. CLOSED TREE
Backed out changeset 31177fcc3123 (bug 1560545)
Backed out changeset e3e1ad8d7709 (bug 1560545)
Backed out changeset fd64770f1342 (bug 1560545)
2019-06-26 07:56:47 +03:00
Mike Hommey 54617f4cc0 Bug 1560545 - Force-enable wayland support in Linux builds on automation. r=chmanchester
So that we don't end up disabling it by accident.

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

--HG--
extra : moz-landing-system : lando
2019-06-25 20:22:15 +00:00
Mike Hommey 7d0561299d Bug 1561465 - Remove ELOG. r=nalexander
The condition that enabled ELOG to do something has been broken since
bug 279212 landed two years ago, because MAKEFLAGS doesn't contain the
dash for flags, so looking for "-s" never did anything.

Bug 1560527 changed the condition to !BUILD_VERBOSE_LOG, which as of the
previous commit, does work. This would restore the old behavior, at the
expense of build time, since it involves wrapping in a shell script,
which is not necessarily desirable (and hasn't been done for two years
now)

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

--HG--
extra : moz-landing-system : lando
2019-06-26 02:20:29 +00:00
Mike Hommey 985a376afa Bug 1526857 - Improve bindgen configuration wrt clang. r=chmanchester
The current setup for bindgen relies on either finding clang/libclang
from the output of llvm-config, or from the paths given via the
configure flags --with-clang-path/--with-libclang-path.

One _very_ common problem is that the llvm-config we end up using does
not correspond to the clang used for compilation, which has some
undesirable side effect, like failing to build.

So instead of relying on llvm-config, we do the following:
- when the compiler is clang, we just use that
- when the compiler is clang-cl, we use clang from the same directory
- otherwise, we either try to find clang in PATH, or rely on
  --with-clang-path.

Once clang is found, we try to deduce the location of the corresponding
libclang via the output of `clang -print-search-dirs`, or rely on
--with-libclang-path.

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

--HG--
extra : moz-landing-system : lando
2019-06-05 02:48:20 +00:00
Mike Shal e52ded1092 Bug 1553065 - Move profile-use mozconfig info into common mozconfigs; r=firefox-build-system-reviewers,chmanchester
The 3-tier PGO builds used a separate mozconfig called 'profile-use' for
the final tier. This created a problem when it rode to beta, since the
same mozconfig was used for all trees, which meant we ended up with
nightly branding on beta builds.

With the PGO-enabling logic in common mozconfigs, we can enable it by
setting the MOZ_PGO_PROFILE_USE environment variable from the task
definition. All of the final-tier PGO builds now use the nightly, beta,
etc mozconfigs like before, so branding should be intact.

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

--HG--
extra : moz-landing-system : lando
2019-05-31 23:56:16 +00:00
Mike Shal f5680f2fee Bug 1553065 - Use MOZ_LTO environment variable in mozconfig.unix; r=firefox-build-system-reviewers,chmanchester
This makes it consistent with bug 1530908 and 1536194.

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

--HG--
extra : moz-landing-system : lando
2019-05-31 23:56:12 +00:00
Sylvestre Ledru e226046cb8 Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan
# ignore-this-changeset

Depends on D28954

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

--HG--
extra : moz-landing-system : lando
2019-05-01 08:47:10 +00:00
Nathan Froyd 3b7164be54 Bug 1542958 - fix code section adjustments in elfhack; r=glandium
We were never adjusting `last` in this loop, so we were computing the
wrong addresses for all sections beyond the first.  Which in turn meant
that we would compute the wrong size for the section data we needed to
allocate.

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

--HG--
extra : moz-landing-system : lando
2019-04-22 23:44:28 +00:00
Nathan Froyd 0d8cc55ffb Bug 1542958 - avoid malloc/delete[] mismatches in elfhack; r=glandium
We were allocating ElfSection's data with `new[]` and modifying it with
`realloc` in some places, which causes allocator mismatches.
Consistently manage the data with `malloc`, `realloc`, and `free` instead.

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

--HG--
extra : moz-landing-system : lando
2019-04-15 23:40:04 +00:00
Mike Hommey aeac69533b Bug 1540882 - Align binutils aarch64 target with build time clang --target. r=froydnj
When cross-building with clang, we use `--target` with a target that is
derived from the configure target, with the vendor removed. So for
`configure --target=aarch64-unknown-linux-gnu`, we use
`clang --target=aarch64-linux-gnu`.

Then, clang itself looks for tools as `$target-$tool` first, then
`$tool`, which means for the assembler,  it's looking for
`aarch64-linux-gnu-as` before `as`, but not
`aarch64-unknown-linux-gnu-as`.

Building GNU as with `--target=aarch64-unknown-linux-gnu` creates the
`aarch64-unknown-linux-gnu-as`, but we really want `aarch64-linux-gnu`,
so we adjust the target in the binutils build script.

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

--HG--
extra : moz-landing-system : lando
2019-04-02 13:50:54 +00:00
Mike Hommey 920c719ba8 Bug 1540369 - Build GNU as for aarch64 target in binutils toolchain. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D25502

--HG--
extra : moz-landing-system : lando
2019-03-30 23:04:42 +00:00
Mike Hommey 25dbad7cb2 Bug 1536307 - Bump libstdc++ requirement to 4.7. r=froydnj
Last time we updated the requirements was in bug 1278456, after we
switched to GTK+3.

While it might be worth checking what would be a reasonable requirement,
the immediate problem is that updating ANGLE hits a snag with a
libstdc++ 4.7 symbol, and the only main distro release that bumping to
that version would make us not support anymore is Ubuntu 12.04 LTS,
EOLed 2 years ago (April 2017).

Bumping to some even newer version would need more consideration.
Desupporting Ubuntu 12.04 LTS at this point is almost a no-brainer.

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

--HG--
extra : moz-landing-system : lando
2019-03-25 12:40:25 +00:00
Nathan Froyd 9ebe50fc6e Bug 1451104 - part 1 - be explicit about our GCC/binutils target and build machine; r=glandium
Explicit is better than implicit, and helps ensure that GCC is always
using the binutils we built it with, rather than the system binutils.

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

--HG--
extra : moz-landing-system : lando
2019-03-15 01:28:10 +00:00
Gurzau Raul c3883e46f7 Backed out 6 changesets (bug 1451104) for toolchains bustage on a CLOSED TREE.
Backed out changeset 2f6199beeb71 (bug 1451104)
Backed out changeset 7c116f85ede6 (bug 1451104)
Backed out changeset 5179c8066914 (bug 1451104)
Backed out changeset 675f73d41eb4 (bug 1451104)
Backed out changeset c64bfaad8a2f (bug 1451104)
Backed out changeset 991777e081ff (bug 1451104)
2019-03-14 05:02:44 +02:00
Nathan Froyd 502083172c Bug 1451104 - part 1 - be explicit about our GCC/binutils target and build machine; r=glandium
Explicit is better than implicit, and helps ensure that GCC is always
using the binutils we built it with, rather than the system binutils.

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

--HG--
extra : moz-landing-system : lando
2019-03-12 00:19:25 +00:00
Mike Hommey 26938ca3a9 Bug 1534524 - Apply the changes from bug 1470502 to build-binutils.sh. r=dmajor
Differential Revision: https://phabricator.services.mozilla.com/D23092

--HG--
extra : moz-landing-system : lando
2019-03-12 14:18:47 +00:00
Mike Hommey b0f3ca8044 Bug 1490573 - Use fetches for nsis and wine toolchain tasks. r=froydnj
These toolchain tasks are the last ones using the historical
download-tools script from build/unix/build-gcc, which invokes gpg to
validate the downloaded tarballs. The consequence is that gpg-agent is
spawned and stays running, preventing a cleanup script from doing its
job, making the tasks fail.

Fetches are the new way to download sources, and can also do gpg
validation without those caveats.

The download-tools.sh script can then be removed as it's not used
anymore.

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

--HG--
extra : moz-landing-system : lando
2019-03-11 01:38:46 +00:00
Mike Hommey ad8855ed35 Bug 1525760 - Add a clang-based base toolchains task. r=froydnj
These are copies of the corresponding gcc-based base toolchain tasks,
with FORCE_GCC and the gcc dependency removed.

We also tweak things a little for those builds to actually end up green.

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

--HG--
extra : moz-landing-system : lando
2019-02-09 09:41:03 +00:00
shindli a8e8126805 Backed out changeset 439db957d3e2 (bug 1525760) for linux64 toolchains bustages in toolkit/library/gtest/target CLOSED TREE 2019-02-09 07:19:32 +02:00
Mike Hommey 011c259380 Bug 1525760 - Add a clang-based base toolchains task. r=froydnj
These are copies of the corresponding gcc-based base toolchain tasks,
with FORCE_GCC and the gcc dependency removed.

We also tweak things a little for those builds to actually end up green.

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

--HG--
extra : moz-landing-system : lando
2019-02-08 14:40:22 +00:00
Mike Hommey 247022a791 Bug 1525510 - Add a trampoline to call original_init when it's not possible directly. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D18807

--HG--
extra : moz-landing-system : lando
2019-02-07 16:23:49 +00:00
David Major 147bd27b98 Bug 1477306 - Point -fcrash-diagnostics-dir at UPLOAD_DIR when compiling with clang in automation r=firefox-build-system-reviewers,chmanchester
Differential Revision: https://phabricator.services.mozilla.com/D16765

--HG--
extra : moz-landing-system : lando
2019-01-22 19:27:13 +00:00
Ehsan Akhgari e5e885ae31 Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre
# ignore-this-changeset

--HG--
extra : amend_source : 7221c8d15a765df71171099468e7c7faa648f37c
extra : histedit_source : a0cce6015636202bff09e35a13f72e03257a7695
2019-01-18 10:16:18 +01:00
Sylvestre Ledru 265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00
Mike Hommey 29e5c3b9dd Bug 1505608 - Try to ensure the bss section of the elfhack testcase stays large enough. r=froydnj
In bug 1470701, we added a dummy global variable so that it ends up in
the bss section, making it large enough for two pointers. Unfortunately,
in some cases, the symbol is eliminated by the linker because it is
unused. So we try to ensure it stays there.

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

--HG--
extra : moz-landing-system : lando
2018-11-08 14:50:22 +00:00
Mike Hommey 3d7847dc20 Bug 1501885 - Switch hfsplus toolchain to clang 7. r=ted
And remove the clang-6 toolchain, which is now unused.

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

--HG--
extra : moz-landing-system : lando
2018-10-25 10:35:59 +00:00
Mike Hommey 0cf2b93ff2 Bug 1499915 - Support undoing elfhack when the elfhacked sections are in separate segments r=froydnj
This is some sort of followup to bug 1423813, providing a minimalistic
way to undo elfhack when the elfhack sections are in separate segments,
which has been the case since bug 1385783 but didn't cause problems
on Android builds until bug 1423822.

Depends on D9622

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

--HG--
extra : moz-landing-system : lando
2018-10-24 13:42:38 +00:00
Mike Hommey 66921ba849 Bug 1499915 - Remove support for the elfhack filler segment r=froydnj
This effectively backs out bug 822584, which worked around a similar
problem to what we are facing with Android xpcshell, being that the
crash reporter doesn't handle the address space "fragmentation" induced
by elfhack. The work around worked, at the expense of some added
complexity.

It was used for B2G only, and has effectively been unused since B2G was
retired.

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

--HG--
extra : moz-landing-system : lando
2018-10-24 13:42:31 +00:00
Tom Prince f85b06c132 Bug 1492526: Don't build mar's as part of the build; r=firefox-build-system-reviewers,mshal,Callek
We need to sign parts of the contents of the archives, so the mar's that we
ship get built as part of the repackage task. Thus, there is no reason to also
create and upload as part of the build, just to throw them away.

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

--HG--
extra : moz-landing-system : lando
2018-10-01 18:15:40 +00:00
Mike Hommey 9f4a67977e Bug 1491140 - Count non-elfhacked relocations size when comparing to original size r=froydnj
When checking whether the new relocations sizes are going to be a win, we
need to account for the fact that there are non-elfhacked relocation
remaining.

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

--HG--
extra : moz-landing-system : lando
2018-09-14 13:16:25 +00:00
Mike Hommey 682d2bd651 Bug 1491198 - Don't enable LTO on artifact builds r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D5836

--HG--
extra : moz-landing-system : lando
2018-09-14 17:33:45 +00:00
Chris Peterson e58c4d5a41 Bug 1490575 - Remove Mulet comments from build files. r=froydnj
Mulet was a Firefox OS simulator that is no longer supported: https://wiki.mozilla.org/Mulet

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

--HG--
extra : rebase_source : d077c88b8446d0491b4af0dfe2198c4b980fa279
extra : source : 41301ab98bd094235b6995b18bcaa521f221c5f1
2018-09-11 23:07:32 -07:00
Mike Hommey 0a7e03bf20 Bug 1490542 - Remove the Linux LTO builds. r=froydnj
Now that Linux PGO builds also do LTO and all the Linux builds use
clang, there's not much use for separate LTO builds.

Differential Revision: https://phabricator.services.mozilla.com/D5632
2018-09-13 11:23:24 +09:00
Mike Hommey 1e441ae694 Bug 1481721 - Switch Linux nightlies and PGO builds to clang r=froydnj
And enable LTO on CI builds using clang + PGO.

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

--HG--
extra : moz-landing-system : lando
2018-09-11 22:52:29 +00:00
Mike Hommey cd06f032af Bug 1079662 - Always enable PIE. r=froydnj
Last attempt, a few years ago, blatantly failed because nautilus (the
GNOME file manager) can't start PIE executables, which look like shared
libraries, and that it thus considers not being executables.

Downstreams don't actually have the problem, because users won't be
launching Firefox from a file manager, but for mozilla.org builds, it is
a problem because users would download, then extract, and then likely
try to run the Firefox executable from a file manager.

So for mozilla.org builds, we still need to find a way around the
nautilus problem.

A .desktop file could be a solution, but .desktop files have not
actually been designed for this use case, which leads to:
- having to use an awful one-liner shell wrapper to derive the path
  to the executable from that of the .desktop file,
- not even being able to associate an icon,
- the .desktop file not being copiable to a location where .desktop
  files would normally go, because it would then fail to find the
  executable.

Another possibility is to go back to using a shell wrapper, but that's
not entirely appealing.

What we chose here is similar, where we have a small `firefox` wrapper
that launches the real `firefox-bin` (which is still leftover from those
old times where we had a shell wrapper, for reasons).

The small `firefox` wrapper is a minimalist C executable that just
finds the path to the `firefox-bin` executable and executes it with the
same args it was called with. The wrapper is only enabled when the
MOZ_NO_PIE_COMPAT environment variable is set, which we only take into
account on Linux. The variable is only really meant to be used for
mozilla.org builds, for the nautilus problem. Downstreams will just pick
the default, which is changed to build PIE.

On other platforms, PIE was already enabled by default, so we just
remove the --enable-pie configure flag.

Differential Revision: https://phabricator.services.mozilla.com/D5109
2018-09-08 07:41:21 +09:00