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

1498 Коммитов

Автор SHA1 Сообщение Дата
Mike Shal bca8fea099 Bug 1593465 - Dump symbols during instrumented builds for crashlogs in the run task; r=firefox-build-system-reviewers,chmanchester
To get an accurate backtrace if the run task crashes, we need the
symbols from the instrumented build.

Depends on D53716

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

--HG--
extra : moz-landing-system : lando
2019-11-21 18:44:10 +00:00
Ricky Stewart 50a5dbb671 Bug 1573560 - Have Node compilation write directly into FINAL_TARGET instead of requiring a symlink r=firefox-build-system-reviewers,jlast,mshal
Differential Revision: https://phabricator.services.mozilla.com/D47367

--HG--
extra : moz-landing-system : lando
2019-11-04 23:15:19 +00:00
Mike Shal 58eee388c8 Bug 1586357 - Only force re-linking on 1-tier PGO builds; r=firefox-build-system-reviewers,chmanchester
Differential Revision: https://phabricator.services.mozilla.com/D48206

--HG--
extra : moz-landing-system : lando
2019-10-04 20:53:42 +00:00
Mike Shal f8f5fce637 Bug 1496746 - Remove VPATH; r=glandium
Having a full VPATH for the srcdir sometimes causes make to grab the
wrong prerequisite for a rule, in particular if we have a file in the
srcdir and also generate a file of the same name in the objdir. We don't
really need VPATH anymore though, since most of the information comes
from mozbuild, where we can explicitly list the path to the srcdir or
objdir as necessary.

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

--HG--
extra : moz-landing-system : lando
2019-09-09 17:44:47 +00:00
Tom Ritter be95428eb4 Bug 1576758 - Correct a HostSharedLibrary's link command to correctly output a pdb r=glandium
-Fd is the parameter accepted by clang. -PDB is the parameter accepted by lld-link. Additionally, to produce a pdb you apparently also need the -DEBUG flag

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

--HG--
extra : moz-landing-system : lando
2019-08-27 01:00:18 +00:00
Mike Hommey 58d070f0bd Bug 1435498 - Change how Make depend files are included. r=froydnj
Make depend files related to object files are only really useful when
the corresponding build targets are being processed. OTOH, when they are
included too broadly, when the build recurses in the same directory for
different targets (e.g. target-objects, target, host-objects and/or
host), it is possible for one of them to start creating depend files
that the others would end up reading, and those reads might be
incomplete, possibly leading to build failures because Make think it's
malformed.

So, we only include the object files's depend files in when Make is
explicitly treating a target that will build objects.

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

--HG--
extra : moz-landing-system : lando
2019-08-21 12:27:49 +00:00
Mike Hommey c8dc824814 Bug 1573566 - Add target/host-objects targets to build objects. r=froydnj
Make the target and host targets depend on those, and flatten the
dependencies.

That is, instead of chains like:
  browser/app/target: mozglue/build/target
  mozglue/build/target: memory/build/target

we now have:
  browser/app/target: browser/app/target-objects \
                      mozglue/build/target-objects \
                      memory/build/target-objects

Which means Make can feel free to build the object files in browser/app
before building other dependencies.

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

--HG--
extra : moz-landing-system : lando
2019-08-16 17:25:05 +00:00
Mike Hommey c15df41c2f Bug 1573566 - Undo bug 1573314 and bug 1572046. r=froydnj
With the addition of toolkit/library/build because of the rust
shenanigans, bug 1573314 and bug 1572046 don't do anything useful
anymore. We're going to do something better anyways.

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

--HG--
extra : moz-landing-system : lando
2019-08-16 14:39:54 +00:00
Mike Hommey 8c8ec786b2 Bug 1573566 - Make rust libraries more like normal libraries. r=froydnj
Apart from the need to link them last, they don't actually need to be
treated any different from normal static libraries.

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

--HG--
extra : moz-landing-system : lando
2019-08-16 14:39:02 +00:00
Nathan Froyd 0f2fea34dc Bug 1573861 - remove unused OBJ_TARGETS from rules.mk; r=dmajor
This variable isn't used anywhere.

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

--HG--
extra : moz-landing-system : lando
2019-08-14 15:22:07 +00:00
Mike Hommey 0637bfef3e Bug 1572046 - Build shared libraries in a separate target. r=nalexander
When a directory, like toolkit/library, builds both a static and a
shared library, and another, like toolkit/library/gtest, depends on the
static part, it currently needs to wait for the shared library to be
finished building, preventing both libraries being built in parallel.

By separating shared libraries to a different target, we allow more
parallelism to the build.

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

--HG--
extra : moz-landing-system : lando
2019-08-07 22:50:14 +00:00
Nathan Froyd c27638c4bd Bug 1567888 - remove unneeded QT-related rules and configure bits; r=nalexander
We needed these rules and bits for the QT widget port, but there's no
longer a QT port in the tree, so we might as well remove them.

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

--HG--
extra : moz-landing-system : lando
2019-07-22 18:53:43 +00:00
Tom Ritter 9016e1592f Bug 1566960 - Remove unused Windows stuff from rules.mk r=firefox-build-system-reviewers,chmanchester
Differential Revision: https://phabricator.services.mozilla.com/D38396

--HG--
extra : moz-landing-system : lando
2019-07-17 22:17:02 +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 d128a390a6 Bug 1561465 - Avoid being too verbose after bug 1560527. r=nalexander
Bug 1560527 was not supposed to change verbosity for mach build, but it
turns out it did, because the ifeq it copied from one place to another
was wrong in the first place.

While here, replace a ifeq that did work with the now equivalent
BUILD_VERBOSE_LOG.

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

--HG--
extra : moz-landing-system : lando
2019-06-26 02:19:43 +00:00
Mike Shal 26b533deae Bug 1557785 - Process install manifests in 3-tier Windows builds; r=firefox-build-system-reviewers,chmanchester
Windows 1-tier PGO builds only partially clobber between the
profile-generate and profile-use stages, so that exports/installed files
don't have to be reprocessed. Unfortunately we can't skip the install
manifests in 3-tier PGO because the profile-generate build happens on a
different machine, so we have to differentiate between 1-tier and 3-tier
PGO builds. A new variable, MOZ_1TIER_PGO, is used for this purpose.

Eventually this logic can be cleaned up in bug 1557788 once all PGO
builds use the 3-tier model.

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

--HG--
extra : moz-landing-system : lando
2019-06-19 22:06:14 +00:00
Mike Hommey 9c53f7e19d Bug 1560527 - Enable make backend verbose mode automatically rather than relying on mach setting it. r=froydnj
This makes running without mach more consistent. e.g. running
`make -C $objdir/toolkit/library/rust target` makes the cargo log
verbose, and adding `-s` makes it less verbose.

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

--HG--
extra : moz-landing-system : lando
2019-06-21 13:15:30 +00:00
Nathan Froyd 0839a1bd24 Bug 1542746 - remove code for frontend-based PGO instrumentation; r=dmajor
We're moving to IR-level PGO instrumentation for clang-cl.  We've also
moved to using static linker ordering files, which was the primary
application of the previous style of PGO instrumentation.  We therefore
we no longer need this code.

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

--HG--
extra : moz-landing-system : lando
2019-05-24 20:00:38 +00:00
Nathan Froyd 0fadcd4cfd Bug 1553810 - remove RSSRCS support from the build system; r=nalexander
We used to support specifying single Rust files for compilation,
emphasis on "used to".

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

--HG--
extra : moz-landing-system : lando
2019-05-23 15:20:26 +00:00
Nathan Froyd 3a05468aa4 Bug 1548563 - move symbol file logic into the moz.build frontend; r=firefox-build-system-reviewers,chmanchester
This way compilation backends don't all have to figure out the right way
to handle symbol files.

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

--HG--
extra : moz-landing-system : lando
2019-05-22 13:25:06 +00:00
Tom Ritter 0cbbf6fd46 Bug 1505936 - Copy and provide pdbs for cppunit tests if MOZ_COPY_PDBS is specified r=firefox-build-system-reviewers,mshal
Differential Revision: https://phabricator.services.mozilla.com/D29760

--HG--
extra : moz-landing-system : lando
2019-05-07 22:16:36 +00:00
Tom Ritter 4e6bb3e03d Bug 1506016 - If we're building with MOZ_COPY_PDBS, build the pdb next to the executable r=firefox-build-system-reviewers,mshal
This will allow us to copy the pdbs for test files into the resulting
test file archive, but doesn't do it automatically.

Bug 1505936 is for copying some of them.

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

--HG--
extra : moz-landing-system : lando
2019-05-09 19:52:26 +00:00
Noemi Erli cfaf79673c Backed out changeset e5117d2f9311 (bug 1533051) for Android xpcshell failures CLOSED TREE 2019-03-28 01:33:00 +02:00
Nick Alexander 3dce09e76f Bug 1533051 - Package GeckoView prefs at architecture-specific paths for Android fat AAR/GeckoView multi-architecture builds. r=glandium
Bug 1533425 makes Gecko try to load from $ARCH/greprefs.js, etc on
Android.  This patch teaches the packager to put preferences into
those architecture-specific locations for that code to find.

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

--HG--
extra : moz-landing-system : lando
2019-03-27 17:35:26 +00:00
Mike Hommey ef3ad686ee Bug 1512504 - Remove support for MSVC. r=froydnj
Consequently, this removes:
- MOZ_LIBPRIO, which is now always enabled.
- non_msvc_compiler, which is now always true.
- The cl.py wrapper, since it's not used anymore.
- CL_INCLUDES_PREFIX, which was only used for the cl.py wrapper.
- NONASCII, which was only there to ensure CL_INCLUDES_PREFIX still
  worked in non-ASCII cases.

This however keeps a large part of detecting and configuring for MSVC,
because we still do need it for at least headers, libraries, and midl.

Depends on D19614

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

--HG--
extra : moz-landing-system : lando
2019-02-14 21:45:27 +00:00
Mike Hommey f23ed044ba Bug 1522614 - Move rust related rules/setup to a separate makefile. r=froydnj
Because we're going to change how cargo recipes are called to export
environment variables rather than by wrapping the call with `env`, to
avoid msys roundtrips, it's better to avoid the complexity when not
building rust, and including a separate file only when required helps
with that. It is also possible to wrap the entire rust section of
rules.mk in the same condition we use for the include, but using a
separate file also makes things clearer.

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

--HG--
rename : config/rules.mk => config/makefiles/rust.mk
extra : moz-landing-system : lando
2019-02-05 21:38:42 +00:00
Ted Mielczarek 8a4288a193 bug 1506848 - switch Windows debug flags from -Zi to -Z7. r=nalexander
We default to -Zi for Windows debug flags, which is for generating debug info
into a PDB file, but clang-cl doesn't actually implement that so -Zi is
an alias for -Z7 in clang-cl:
http://clang.llvm.org/docs/UsersManual.html#id9

sccache has special handling for -Zi because multiple compiles writing
to the same PDB file is not cacheable, so we've always overridden -Zi with -Z7
in CI when using sccache.

Given that everyone should be using clang-cl nowadays and MSVC will no longer
be supported soon, this patch changes the default and removes some PDB
file name flag setting from rules.mk, as well as the no-longer-necessary
overrides from mozconfig.cache.

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

--HG--
extra : moz-landing-system : lando
2019-02-01 11:12:06 +00:00
Mike Hommey bf0e86a9dc Bug 1523540 - Remove WIN64_LIB and WIN64_LINK. r=ted
Now that everything is lined up nicely, we don't need those anymore.

We can fill cargo-linker.bat with HOST_LINKER and HOST_LINKER_LIBPATHS,
which, unfortunately, can't be used as is, so we add a variant for
substitution in .bat files.

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

--HG--
extra : moz-landing-system : lando
2019-01-30 21:46:39 +00:00
Tom Ritter 0a85461461 Bug 1376621 - Search for networking symbols in rust code and fail if they are found. r=glandium
--HG--
extra : amend_source : dfe442d1be95c5f37c959b38c12701d8d14432c1
2019-01-25 12:19:41 -06:00
Mike Hommey 03a6fa8570 Bug 1521691 - Remove _MSC_VER from configure. r=chmanchester
The only use in configure itself is for a MSVC version check that is now
always true (we don't accept versions < 19.15 anymore).

The only uses in the build system are in code that could just use
CC_TYPE instead.

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

--HG--
extra : moz-landing-system : lando
2019-01-23 00:35:10 +00:00
Chris Manchester 63da49dd4f Bug 1520516 - Set verbose logging for cargo when -v is passed to |./mach build|. r=nalexander
Differential Revision: https://phabricator.services.mozilla.com/D16907

--HG--
extra : moz-landing-system : lando
2019-01-18 19:03:24 +00:00
Mike Hommey 9936784a53 Bug 1515528 - Detect MSVC paths separately for host and target. r=chmanchester
Because MSVC compilers only support one architecture, we need to search
"cl" in different toolchain search paths for each of the host and
target, especially when they are different.

Likewise for the library paths for the linker. Ideally we'd pass
-LIBPATH both for host and target, but that has implications for rust
that I don't want to have to figure just now.

Depends on D15263

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

--HG--
extra : moz-landing-system : lando
2019-01-11 00:20:31 +00:00
Mike Hommey 28376bb4f9 Bug 1519042 - Remove special case adding -xgot assembly flag on NetBSD. r=ted
None of the values tested against OS_TEST are actually possible per
split_triplet in build/moz.configure/init.configure, so the code is
dead in practice.

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

--HG--
extra : moz-landing-system : lando
2019-01-10 22:06:02 +00:00
Mike Hommey d3856a0bf1 Bug 1515843 - Stop building host static libraries. r=ted
The build system has skipped creating target static libraries for very
long, except in very specific cases.

We can actually do the same for host static libraries, for which we
don't even need the escape hatch to still allow to create static
libraries.

Depends on D15171

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

--HG--
extra : moz-landing-system : lando
2018-12-21 23:00:00 +00:00
Mike Hommey a43e675e76 Bug 1515843 - Use the raw OBJ_SUFFIX for host objects. r=ted
OBJ_SUFFIX is modified during the profile-generation phase to be i_o
instead of o/obj. _OBJ_SUFFIX is the unmodified value.

We don't actually do PGO for host objects, so we don't need to build the
objects with a different suffix.

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

--HG--
extra : moz-landing-system : lando
2018-12-21 22:59:47 +00:00
Chris Manchester 3f10fd4a47 Bug 1505859 - Allow rusttests to run when requested without --enable-rust-tests. r=firefox-build-system-reviewers,ted
Differential Revision: https://phabricator.services.mozilla.com/D11514

--HG--
extra : moz-landing-system : lando
2018-11-10 14:59:39 +00:00
Marco Castelluccio 96d2d394e1 Bug 1495683 - Apply code coverage Rust workaround only when building with GCC. r=froydnj
--HG--
extra : rebase_source : 533001f885d81ebfc33450ea584b8173685e5dce
2018-11-02 10:26:06 +01:00
Tom Ritter 15dd23bc5d Bug 1475562 Produce pdbs for the mingw-clang build job r=ted
This patch also changes how pdbs for the ASAN job are copied:
we relax restrictions so that pdbs if present) are always copied out
and add an environment variable MOZ_COPY_PDBS to indicate when we
want to produce pdbs for copying.
2018-10-17 09:38:52 -05:00
Mike Hommey dc8e21e573 Bug 1496296 - Stop broadly setting RUSTC_BOOTSTRAP r=froydnj
Depends on D7679

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

--HG--
extra : moz-landing-system : lando
2018-10-04 13:51:21 +00:00
Nathan Froyd e2773ad4fd Bug 1397263 - move ASOUTOPTION to moz.configure; r=mshal 2018-10-03 20:29:29 -04:00
Benjamin Bouvier 5523ac828b Bug 1490948: Adjustments for the source package; r=chmanchester
- Embed vendored Rust dependencies into the source package.
- Don't use --freeze with Cargo in JS standalone builds: since all the Rust
  dependencies are vendored in, it won't trigger an update of the toplevel
  Cargo.lock file for a standalone build in the non-package build case.

--HG--
extra : rebase_source : 06704eb326aad36a870586694a99964ad7a4dbfa
extra : histedit_source : 1502d976bc12a3eed17efaaf5dd2d4f46d0b00d5
2018-09-13 12:05:50 +02:00
Mike Shal 129739246b Bug 1494038 - Prefix REPORT_BUILD with relativesrcdir; r=firefox-build-system-reviewers,nalexander
This makes it more apparent which directory is responsible for creating
a particular generated file, program, library, etc. It is particularly
helpful in bug 1485081 since all node.py invocations will have similarly
named make targets, but run in different directories.

MozReview-Commit-ID: HlSOiL34i3M

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

--HG--
extra : moz-landing-system : lando
2018-09-25 19:05:02 +00:00
Thomas P. fde56b2dde Bug 1483780: enable sanitizer-less libfuzzer builds r=froydnj 2018-09-20 21:21:38 +00:00
Andreea Pavel a6ba34f2ad Backed out 2 changesets (bug 1483780) for build bustages on a CLOSED TREE
Backed out changeset 2b0a42c589c5 (bug 1483780)
Backed out changeset 48d133cbafd3 (bug 1483780)
2018-09-21 05:43:03 +03:00
Thomas P. c047fdb3fb Bug 1483780: enable sanitizer-less libfuzzer builds r=froydnj
--HG--
extra : histedit_source : b7caa42560c3d8e7ba1dbf61fcacfe0698790801
2018-09-20 21:21:38 +00:00
Thomas P. dae33d978b Bug 1483780: enable sanitizer-less libfuzzer builds r=froydnj superreview=decoder
--HG--
extra : histedit_source : 6fd1a37c3fb5d8997be11f7846b2976fc7b8a647
2018-09-11 03:49:37 +00:00
arthur.iakab e38cbc2831 Merge mozilla-central to autoland 2018-09-19 05:20:02 +03:00
Adam Gashlin fc13e0055e Bug 1492268: Allow a Rust library to link to a program r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D6200

--HG--
extra : moz-landing-system : lando
2018-09-18 22:23:41 +00:00
Ted Mielczarek 115b2651d5 Bug 1490463 - part 3 - remove BUILD_TOOLS from config.mk; r=mshal
BUILD_TOOLS was only ever used for things that another variable provides
equally well.  Removing BUILD_TOOLS means that we can remove win_srcdir
and WIN_TOP_SRC as well.
2018-09-18 16:02:22 -04:00
Ted Mielczarek 90962198d5 Bug 1490463 - part 2 - use srcdir_rel for passing manifest paths to mt.exe; r=mshal
mt.exe doesn't like absolute paths, so we use srcdir-relative paths
where necessary for file arguments.
2018-09-18 16:02:22 -04:00
Ted Mielczarek de99592416 Bug 1399870 - make DEFFILE a Path instead of a string; r=gps
All but one of the current uses of DEFFILE use `SRCDIR + '/file.def'` to
get a srcdir-relative path anyway, and the other one wants an
objdir-relative path, so using Path makes everything clearer.

This makes it more straightforward to translate the paths for the WSL
build.
2018-09-18 15:50:19 -04:00
Thomas P. ac7fc2f5a6 Bug 1474488: add --enable-undefined-sanitizer with custom checks r=froydnj 2018-09-11 02:47:23 +00:00
Masatoshi Kimura 0fecbaf0bc Bug 1485224 - Workaround a linker bug of MSVC 2017 Update 8. r=glandium
MSVC 15.8 linker dislikes forward slashes in the /OUT: parameter when it is generating a profile

--HG--
extra : rebase_source : 6980e212ea5a7ae21513805c22ec0e8ddeaa5dc1
2018-08-28 23:41:39 +09:00
Margareta Eliza Balazs f79a9159ca Backed out 2 changesets (bug 1485224) for perma bc3 failures e.g.: Error getting fileid for Z:\task_1536750533ad] WARNING: NS_ENSURE_TRUE CLOSED TREE
Backed out changeset fe2c607f4af7 (bug 1485224)
Backed out changeset f7a6e536532e (bug 1485224)
2018-09-12 15:37:19 +03:00
Masatoshi Kimura 57028ccb18 Bug 1485224 - Workaround a linker bug of MSVC 2017 Update 8. r=glandium
MSVC 15.8 linker dislikes forward slashes in the /OUT: parameter when it is generating a profile

--HG--
extra : source : d0098304d5b1a35446781d60a9050d310b45f5bd
2018-08-28 23:41:39 +09:00
Margareta Eliza Balazs e620c683cb Backed out 2 changesets (bug 1474488) for causing failures in build/src/obj-firefox/dist/include/mozilla/Assertions.h CLOSED TREE
Backed out changeset ffce46424c69 (bug 1474488)
Backed out changeset e4b9fa5f7592 (bug 1474488)
2018-09-11 10:59:28 +03:00
Thomas P. 357f9deb02 Bug 1474488 - add --enable-undefined-sanitizer with custom checks. r=froydnj 2018-09-11 02:47:23 +00:00
Gurzau Raul 09fe34b331 Merge inbound to mozilla-central. a=merge 2018-08-31 00:49:36 +03:00
Myk Melez 7978cd2fe4 Bug 1482810 - set COMPILE_FLAGS var to hide warnings for Rust crates r=chmanchester
In conjunction with the cc crate changes in https://github.com/alexcrichton/cc-rs/pull/342 (which I'll land in https://phabricator.services.mozilla.com/D4699), this hides warnings generated by C code in Rust crates (by removing warnings flags from CFLAGS when compiling Rust libraries).

MozReview-Commit-ID: 9CZgLGbWjbA

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

--HG--
extra : moz-landing-system : lando
2018-08-30 17:29:54 +00:00
Tom Ritter 777ed8fb73 Bug 1483760 Additionally, pass environment variables to cargo if we are not compiling on Windows r=ted
Previously we weren't passing the variables if we were compiling for Windows
when really we only want to do it if we're compiling with MSVC/clang-cl.

The MinGW-Clang build needs this.

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

--HG--
extra : moz-landing-system : lando
2018-08-22 11:11:11 +00:00
Marco Castelluccio 38495beeb7 Bug 1478969 - Don't apply RUSTFLAGS defined in mozconfig when building host Rust libraries and programs. r=froydnj
--HG--
extra : rebase_source : ba34d715409f6975c69d9259315cb5735d5e9ce6
extra : intermediate-source : 93e52a1e5d88d169fca83b1f8e9f0eb78d809cc9
extra : source : fe49224aa15b580499b4b52731622de628ec5c0e
2018-07-27 01:26:20 +01:00
Andreea Pavel cfb3691ea0 Backed out changeset 93e52a1e5d88 (bug 1478969) for linux tier2 rust build bustages on a CLOSED TREE 2018-08-21 22:09:33 +03:00
Marco Castelluccio d2512b7192 Bug 1478969 - Don't apply RUSTFLAGS defined in mozconfig when building host Rust libraries and programs. r=froydnj
--HG--
extra : rebase_source : 55fe4f4abf5a62b0c5dc78a380136fc085ab27c2
extra : source : fe49224aa15b580499b4b52731622de628ec5c0e
2018-07-27 01:26:20 +01:00
Nathan Froyd 684e72b2ab Bug 1486905 - add a HOST_LINKER variable for cross windows builds; r=dmajor
This setup seems to work well enough to enable me to link
HOST_SIMPLE_PROGRAMS with an AArch64-cross setup.  Necessary library
paths are passed to the linker via -LIBPATH and HOST_LDFLAGS rather than
letting MSVC fish them out of the environment.  The change to
HOST_SIMPLE_PROGRAMS to pass HOST_LDFLAGS was necessary for this to
work, in addition to the HOST_LINKER changes.
2018-08-30 10:28:15 -04:00
Nathan Froyd 562477257c Bug 1481504 - fix HOST_OUTOPTION setting for Windows cross-compiles; r=mshal
For "real" Windows-to-Windows cross compiles, the setting of
HOST_OUTOPTION is incorrect: it assumes that if we are cross-compiling,
we'll be using `-o ` (GNU-style) rather than `-Fo` (MSVC-style).  Our
normal x86 Windows automation builds are technically not
cross-compiles (host and target are both x86 Windows), so this case has
never bothered us before.  But when compiling for AArch64 Windows, we
are really doing a cross-compile, and so we need to be more careful
about how we set this option; otherwise, host compilations will
mysteriously fail because they won't produce any output.
2018-08-20 17:22:44 -04:00
Tom Ritter 4070649de2 Bug 1481638 Do not pass CFI sanitization flags to MOZ_CARGO_WRAP_LDFLAGS r=ted
MozReview-Commit-ID: C85uJBNugiY

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

--HG--
extra : moz-landing-system : lando
2018-08-13 15:45:12 +00:00
Chris Manchester c346a68ae0 Bug 1474028 - Add a way to exclude libraries from the default build. r=ted
MozReview-Commit-ID: MVfplx9lN2

--HG--
extra : rebase_source : 10b4bd3dcc1386d782531206c84b66207297d00a
2018-08-10 12:07:29 -07:00
Narcis Beleuzu f4e5fb2d0f Backed out 2 changesets (bug 1474028) per chmanchester`s request. a=backout
Backed out changeset 52bd814d3589 (bug 1474028)
Backed out changeset 39a528147c34 (bug 1474028)
2018-08-12 21:22:45 +03:00
Chris Manchester 2476269229 Bug 1474028 - Add a way to exclude libraries from the default build. r=ted
MozReview-Commit-ID: MVfplx9lN2

--HG--
extra : rebase_source : 3eb5352b5bc0d1b9be857c16efa5af0313afb6e7
2018-08-10 12:07:29 -07:00
Aaron Klotz 06d15feb59 Bug 1481956: Allow SIMPLE_PROGRAMS to embed manifest from source directory; r=froydnj
--HG--
extra : amend_source : ecd475bd4abfe5318f715c140c7ced0d8b56229a
2018-08-08 16:16:35 -06:00
Ted Mielczarek 4def48d158 bug 1409276 - pass C/C++ compilers and flags to cargo for use in build scripts. r=chmanchester
MozReview-Commit-ID: 3uEwzYJUQDA

--HG--
extra : rebase_source : 8c291fcff6dfdbf8c17c886057570fb87f824bed
2018-07-05 07:22:02 -04:00
Mike Hommey 0f5d8527e2 Bug 1476874 - Only link object once in static libraries. r=froydnj
--HG--
extra : rebase_source : d4654d226b4bebf75b65eccff254d26a6880082c
2018-07-19 16:30:19 +09: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
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
David Major 3438ab8312 Bug 1473954: Use $(ASOUTOPTION) rather than hardcode -o for SOBJS. r=ted 2018-07-06 13:56:50 -04:00
Ted Mielczarek 41895658f3 bug 1473121 - Pass -vv to cargo build instead of just --verbose when verbose output is requested. r=gps
Many Rust build scripts compile C/C++ source files with the cc crate, but
cargo doesn't print the output of build scripts unless you pass `-vv`, so
pass that instead of just `--verbose` to get that output in automation and
builds where verbose output was requested.

MozReview-Commit-ID: EUazlKWFsDw

--HG--
extra : rebase_source : 137882c4e970bb0e7b28cc36d7f8e436b59a8011
2018-07-03 14:17:31 -04:00
Henri Sivonen 5885cf2259 Bug 1397807 - Allow rustc to emit NEON instructions when clang does on ARMv7 and use NEON in encoding_rs. r=glandium
MozReview-Commit-ID: LNd4jeIGIRg

--HG--
extra : rebase_source : e175f51ec3e8c1097d914d97c6b0d2644dbc4c18
2018-06-05 14:56:11 +03:00
Xidorn Quan 9d13707bca Bug 1471486 part 1 - Detect rustfmt like other rust executables. r=froydnj
MozReview-Commit-ID: 8LMdpdqbrFS

--HG--
extra : rebase_source : e23b7e467993963eb1a69637dacdabb7cbff3e90
2018-06-27 15:27:43 +10:00
Mike Hommey 354a9e27a0 Bug 1470127 - Move binary checks to a standalone script. r=froydnj
We perform, on the binaries we build, a series of check, that are
implemented as half-baked make commands, invoked after linking them.

- check libstdc++ symbol versions to ensure binary compatibility with
  a baseline.
- check glibc symbol versions to ensure binary compatibility with a
  baseline.
- check that target binaries don't contain text relocations.
- check that libmozglue is linked before libc on android.
- on libxul, check that NSModules are laid out correctly.
- on libxul, check that there is more than one PT_LOAD segment.

Those checks happen to work where they matter, but their setup is
unreliable. For example, the checks for symbol versions are supposed to
work for libclang-plugin on cross osx builds, but in fact, don't,
because the readelf path doesn't exist, and the command doesn't fail in
that case.

So move them all to a standalone script, performing the checks more
thoroughly (especially the NSModules one, where we now also check that
they are all adjacent), and more verbosely.

--HG--
extra : rebase_source : 7072e622e95f363d4a6c3a8e272d3445d998b592
2018-06-21 18:13:03 +09:00
Chris Manchester 86ddf36acf Bug 1469067 - Build host programs in their final locations rather than copying them to dist/host/bin. r=mshal
MozReview-Commit-ID: BrSou1ee2qV

--HG--
extra : rebase_source : 14ab70086b6b43b026c4ca269f27f0ae20a09aa6
2018-06-18 14:22:20 -07:00
Mike Hommey 8b091c97fd Bug 1464522 - Count static initializers from the crash reporter symbol files. r=froydnj
The crash reporter symbol files are the easiest cross-platform way to
find static initializers. While some types of static initializers (e.g.
__attribute__(constructor) functions) don't appear there in a notable
way, the static initializers we do care the most about for tracking do
(static initializers from C++ globals). As a matter of fact, there is
only a difference of 2 compared to the currently reported count of 125
on a linux64 build, so this is a good enough approximation. And allows
us to easily track the count on Android, OSX and Windows builds, which
we currently don't do.

The tricky part is that the symbol files are in
dist/crashreporter-symbols/$lib/$fileid/$lib.sym, and $fileid is hard to
figure out. There is a `fileid` tool in testing/tools, but it is a
target binary, meaning it's not available on cross builds (OSX,
Android).

So the simplest is just to gather the data while creating the symbol
files, which unfortunately requires to go through some hoops to make it
happen for just the files we care about.

--HG--
extra : rebase_source : 458fed1ffd6f9294eefef61f10ff7a284af0d986
2018-05-29 08:48:47 +09:00
David Major e02fd9579e Bug 1460020: Filter out PGO flags from cargo's LDFLAGS. r=froydnj 2018-05-11 10:37:55 -04:00
Nick Alexander 00dc996ad3 Bug 1444546 - Post: Remove add_java_jar and support. r=froydnj
MozReview-Commit-ID: J6E2ZOs9r3P

--HG--
extra : rebase_source : 0e68f776e95e0fd2fec4607435d030acc68ca0ad
2018-03-06 14:48:20 -08:00
Xidorn Quan 12ddb6a1e7 Bug 1457524 part 3 - Check rustdoc for rust tests. r=froydnj
MozReview-Commit-ID: 4qRccUcXq6O

--HG--
extra : rebase_source : 684fd08a18f55a1f620fa305b22b31e002077a0a
2018-05-02 20:02:04 +10:00
Xidorn Quan 28f16a3912 Bug 1457524 part 2 - Run all rust tests regardless of failures. r=froydnj
MozReview-Commit-ID: K4ZhFOWd6gd

--HG--
extra : rebase_source : 176ecf1b54e949d2a177f15106dd7a31d158c845
2018-05-02 17:13:25 +10:00
Xidorn Quan 1c8dc43017 Bug 1457524 part 1 - Use a list for rust tests. r=froydnj
MozReview-Commit-ID: 6A0hHClXDUE

--HG--
extra : rebase_source : 827bb569642aa2ad834b94f08af3f60b68552de4
2018-05-02 11:51:25 +10:00
Chris Manchester df340972e4 Bug 1449965 - Output directories during the build as we compile object files. r=ted
MozReview-Commit-ID: K4RrObGHXIC

--HG--
extra : rebase_source : 09e66caa36cd6bac1d5ac4bbf300ab4ee93fce27
2018-04-19 00:16:57 -07:00
David Major 8cc756f020 Bug 1448378: Fix build and symbols on Windows ASan. r=froydnj
--HG--
extra : rebase_source : 86b0702d54af96ee39ff82e109164cd10a8d138e
2018-03-26 17:07:30 -04:00
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