Commit Graph

184 Commits

Author SHA1 Message Date
Julian Seward
c757334be6 Bug 1689950 - Vendor in CL a25399760e9f12b679aa267dd2af7cfedc72bb71. Part 1: hash changes. r=yury.
Revendor CL to a25399760e9f12b679aa267dd2af7cfedc72bb71 from
https://github.com/mozilla-spidermonkey/wasmtime, branch firefox85.
This pulls in three code-correctness fixes that have accumulated in
the past month:
https://github.com/bytecodealliance/wasmtime/pull/{2548,2556,2559}.

Differential Revision: https://phabricator.services.mozilla.com/D103672
2021-02-01 16:18:47 +00:00
M. Sirringhaus
5d4a325c23 Bug 1688882 - Always inform the main process that a minidump has been generated, even if it's incomplete r=gsvelto
Differential Revision: https://phabricator.services.mozilla.com/D103041
2021-01-28 14:17:34 +00:00
Henri Sivonen
9b210c311e Bug 1686463 - Gather telemetry about automatic encoding detection outcomes. r=chutten,emk
Differential Revision: https://phabricator.services.mozilla.com/D102397
2021-01-24 00:11:07 +00:00
Mike Hommey
dbc3d9867f Bug 1685697 - Hide the rustc output from autocfg. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D101861
2021-01-15 12:19:13 +00:00
Mike Hommey
e4bf32e4f8 Bug 1686888 - Stop building dump_syms. r=gsvelto
Now that we use an external dump_syms, we don't need to build
breakpad's.

This means we also don't need the dump_syms_rust_demangle crate anymore.

Differential Revision: https://phabricator.services.mozilla.com/D101865
2021-01-15 10:31:48 +00:00
M. Sirringhaus
5299ba12e6 Bug 1620993 - Rewrite the Linux-specific minidump writer code in Rust r=gsvelto
Differential Revision: https://phabricator.services.mozilla.com/D98744
2021-01-14 11:01:59 +00:00
Razvan Maries
21321565f6 Backed out changeset 9fabf5ced4d3 (bug 1620993) for OSX Build bustages. CLOSED TREE 2021-01-13 12:57:41 +02:00
M. Sirringhaus
3665b8d70a Bug 1620993 - Rewrite the Linux-specific minidump writer code in Rust r=gsvelto
Differential Revision: https://phabricator.services.mozilla.com/D98744
2021-01-13 10:37:29 +00:00
Emilio Cobos Álvarez
3bd15f9e8e Bug 1684261 - Fix build with rust nightly. r=jrmuizel
Fixes errors like:

  dependency (nix) specification is ambiguous. Only one of `branch`, `tag` or `rev` is allowed.

I've left the most specific dependency, but for wgpu the rev is not
right, so I've kept the branch which effectively preserves behavior.

Differential Revision: https://phabricator.services.mozilla.com/D100485
2020-12-26 18:16:05 +00:00
Adam Gashlin
f949e155a3 Bug 1681574: Remove the old update agent skeleton. r=nalexander
I'm keeping the --enable-update-agent config option and the corresponding
MOZ_UPDATE_AGENT config flag and define, as these should still be useful.

As we never shipped this there is no need to keep anything around to
clean up the scheduled tasks.

Differential Revision: https://phabricator.services.mozilla.com/D99574
2020-12-15 19:00:25 +00:00
Julian Seward
7564a2282f Bug 1681485 - Revendor Cranelift to 3334d92350da40b90d2529c147db3ea44918b558. r=lth.
Revendor Cranelift to 3334d92350da40b90d2529c147db3ea44918b558
from https://github.com/mozilla-spidermonkey/wasmtime branch firefox85.
The (only) purpose is to pull in this fix for an apparently rare but serious
LICM bug:

Fix missing modification of jump table in LICM.
See https://github.com/bytecodealliance/wasmtime/pull/1697

Differential Revision: https://phabricator.services.mozilla.com/D99230
2020-12-10 06:51:48 +00:00
shravanrn@gmail.com
d475a75904 Bug 1670878: Instantiating a large number of wasm library sandboxes crashes due to overuse of file descriptors r=tjr
Instantiating a wasm library duplicates a file descriptor for /dev/null 3 times to be used as input, output and error streams for the wasm sandboxed code. When a lot of sandboxes are created and destroyed, a lot of descriptors are duplicated and closed. While this should be fine, POSIX does not seem to happy with the opening and closing of many file descriptors --- this could perhaps be some strange interaction with Firefox's seccomp filters and cross-process file descriptor handling as it is difficult to repro this outside of firefox.

However, the simpler fix here was to just eliminate the duplication of /dev/null and return an error when input, output or error streams are accessed by wasm sandboxed code. This means calls to printf will fail, but no code I know off actually checks the int error code returned by printf and this change is certainly compatible with existing sandboxed components.

Differential Revision: https://phabricator.services.mozilla.com/D99160
2020-12-09 21:54:03 +00:00
Julian Seward
7e62d43bab Bug 1681450 - Revendor Cranelift to 3b01b4b850bafb981a04383198c0b50d041dc5ef. r=lth.
Revendor Cranelift to 3b01b4b850bafb981a04383198c0b50d041dc5ef
from https://github.com/mozilla-spidermonkey/wasmtime branch firefox85.
The (only) purpose is to pull in this:

commit 31bac3eafbfda8f1ffb504cdeb75505d48537336
Merge: 93c199363 34d9931ed
Author: Nick Fitzgerald <fitzgen@gmail.com>
Date: Wed Nov 25 13:09:05 2020 -0800

Merge pull request #2450 from bytecodealliance/cfallin/fix-wasm-reachable

Fix Wasm translator bug: end of toplevel frame is branched-to only for fallthrough returns.

Differential Revision: https://phabricator.services.mozilla.com/D99204
2020-12-09 12:05:52 +00:00
Julian Seward
5638b306c1 Bug 1678785 - AddressSanitizer: SEGV [@ vixl::Memory::Read]. r=lth.
Differential Revision: https://phabricator.services.mozilla.com/D98932
2020-12-07 16:26:17 +00:00
Julian Seward
f082e74406 Bug 1680509 - Vendor in CL ac58a436ed84d1a88b4ff24367c5972cf8d3d405. Part 1: hash and API changes. r=yury.
Revendor CL to ac58a436ed84d1a88b4ff24367c5972cf8d3d405 from
https://github.com/mozilla-spidermonkey/wasmtime, branch firefox85.

This pulls in a version of our private wasmtime tree that properly refers to
our private versions of the regalloc.rs and wasm-tools trees, also at
https://github.com/mozilla-spidermonkey.  With this patch in place, we will be
decoupled from upstream commits to wasmtime, wasm-tools (wasmparser), and
regalloc.rs.

Differential Revision: https://phabricator.services.mozilla.com/D98647
2020-12-03 20:01:22 +00:00
Emilio Cobos Álvarez
04229a0075 Bug 1680080 - Optimize proc macros / build dependencies. r=glandium,firefox-build-system-reviewers,mhentges
On a very parallel debug build, I see a long time just waiting for
bindgen / style compilation / geckoservo.

Turns out that a bunch of this is just proc macros / build scripts.

Optimizing it saves between 10 and 17 seconds of my debug build. We
might want to consider running bindgen much like cbindgen rather than
rebuilding it all the time, which should help a lot more, but my guess
is that this should still help with the pretty hot custom derives that
the style crate runs.

This needs rust 1.41, so the requirement for tools/crashreporter needs
to be bumped as a consequence. To make things simpler, it was bumped
to 1.47 while we're at it.

Differential Revision: https://phabricator.services.mozilla.com/D98366
2020-12-04 01:35:51 +00:00
Henri Sivonen
c55405f18e Bug 1678175 - Avoid detecting windows-1252 euro sign as GBK. r=m_kato
Differential Revision: https://phabricator.services.mozilla.com/D98005
2020-11-29 08:07:45 +00:00
Julian Seward
f28cf588c0 Bug 1677452 - Update Cranelift to firefox85 / dcc52ba3f69d3de7cdbd787b936825d9c61e3c27 and wasmparser to 0.67: Part 1 - hash and API changes. r=lth.
This updates the relevant CL and wasmparser versions:

* wasmparser 0.67

* Cranelift/wasmtime to dcc52ba3f69d3de7cdbd787b936825d9c61e3c27
  on branch firefox85 at https://github.com/mozilla-spidermonkey/wasmtime

It also includes the following changes needed to track CL/wasmparser ABI changes:

* test suite: track improvements to validation-failure expected outputs.

* wasm/cranelift/src/bindings/mod.rs, ModuleEnvironment::signature: track
  CL-side changes towards module-linking support.

* wasm/cranelift/src/wasm2clif.rs: FuncEnvironment::translate_memory_copy:
  track CL-side changes for supporting multiple memories.

Differential Revision: https://phabricator.services.mozilla.com/D97587
2020-11-19 18:50:12 +00:00
Dzmitry Malyshau
f9116a751d Bug 1622846 - Serialize WebGPU descriptors via Serde for IPC r=jgilbert,webidl,smaug
This PR updates wgpu to the latest and changes the way we pass object descriptors to the GPU process.
Instead of trying to convert them between DOM-CPP-IPDL-FFI-Rust, we now do DOM-FFI-Rust
and serialize them by serde into ipc::ByteBuf objects.

Differential Revision: https://phabricator.services.mozilla.com/D94908
2020-11-07 02:43:09 +00:00
Csoregi Natalia
1a3ae2644d Backed out changeset bdd3d7eb5927 (bug 1622846) for linux bustage on gfx/wgpu/wgpu-types/src/lib.rs. CLOSED TREE 2020-11-07 00:48:50 +02:00
Dzmitry Malyshau
505438ed91 Bug 1622846 - Serialize WebGPU descriptors via Serde for IPC r=jgilbert,webidl,smaug
This PR updates wgpu to the latest and changes the way we pass object descriptors to the GPU process.
Instead of trying to convert them between DOM-CPP-IPDL-FFI-Rust, we now do DOM-FFI-Rust
and serialize them by serde into ipc::ByteBuf objects.

Differential Revision: https://phabricator.services.mozilla.com/D94908
2020-11-06 18:59:27 +00:00
Henri Sivonen
33c996c701 Bug 1667736 - Update packed_simd to compile on Rust 1.48. r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D91572
2020-10-30 08:29:53 +00:00
Chris Fallin
7a5957abe6 Bug 1669055: Vendor Cranelift e22e2c3722f2fbccd3c8d3230119fa04c332c69c. r=jseward
This patch pulls in an updated Cranelift with a new validation strategy,
introduced by bytecodealliance/wasmtime#2059. This new design validates
the Wasm module as it parses the function bodies. A subsequent patch
will adapt Baldrdash to work with this.

Differential Revision: https://phabricator.services.mozilla.com/D92503
2020-10-07 06:25:50 +00:00
Razvan Maries
8674a04012 Backed out 2 changesets (bug 1655042, bug 1669055) for build bustages. CLOSED TREE
Backed out changeset 0807415f1ea5 (bug 1655042)
Backed out changeset bb5e11920e1a (bug 1669055)
2020-10-07 09:20:25 +03:00
Chris Fallin
b1ad6c43eb Bug 1669055: Vendor Cranelift e22e2c3722f2fbccd3c8d3230119fa04c332c69c. r=jseward
This patch pulls in an updated Cranelift with a new validation strategy,
introduced by bytecodealliance/wasmtime#2059. This new design validates
the Wasm module as it parses the function bodies. A subsequent patch
will adapt Baldrdash to work with this.

Differential Revision: https://phabricator.services.mozilla.com/D92503
2020-10-07 03:44:43 +00:00
Butkovits Atila
ad041bcdda Backed out changeset 34fddbf97cc7 (bug 1669055) for bustages complaining about rust. CLOSED TREE 2020-10-07 01:44:54 +03:00
Chris Fallin
b560ffb6f2 Bug 1669055: Vendor Cranelift e22e2c3722f2fbccd3c8d3230119fa04c332c69c. r=jseward
This patch pulls in an updated Cranelift with a new validation strategy,
introduced by bytecodealliance/wasmtime#2059. This new design validates
the Wasm module as it parses the function bodies. A subsequent patch
will adapt Baldrdash to work with this.

Differential Revision: https://phabricator.services.mozilla.com/D92503
2020-10-06 16:52:57 +00:00
Chris Fallin
2e04279f34 Bug 1668398: vendor Cranelift 57fed697920cb888c6cb7e406d13518f7edd12ea. r=bbouvier
This patch pulls in the latest version of Cranelift, which includes
necessary updates to support some recent work on the Wasm backend (e.g.,
support for the new ABI in PR #2223).

Differential Revision: https://phabricator.services.mozilla.com/D92000
2020-10-02 20:02:51 +00:00
Butkovits Atila
983d99240d Backed out changeset 92a01ad5e890 (bug 1668398) for bustages complaining about ABIMachineSpec. CLOSED TREE 2020-10-02 03:49:26 +03:00
Chris Fallin
65f126f9c6 Bug 1668398: vendor Cranelift b8f0dc429f2b886e7423122223393b2c7ee3cd4f. r=bbouvier
This patch pulls in the latest version of Cranelift, which includes
necessary updates to support some recent work on the Wasm backend (e.g.,
support for the new ABI in PR #2223).

Differential Revision: https://phabricator.services.mozilla.com/D92000
2020-10-01 17:28:30 +00:00
Chris Fallin
0931312b73 Bug 1664453: vendor Cranelift to 379aed8092cd1241ec7839e77d05557b1dceb234 to resolve two Wasm translation bugs. r=jseward
This Cranelift update to revision 379aed8092cd1241ec7839e77d05557b1dceb234
includes its PRs #2197 and #2194, which fix two Wasm translation bugs, as well a
other miscellaneous updates and fixes.

Fixes both Bug 1664453 and Bug 1663861.

Differential Revision: https://phabricator.services.mozilla.com/D90306
2020-09-15 20:01:26 +00:00
Benjamin Bouvier
1893cc05f1 Bug 1661723; Bump Cranelift to a7f7c23bf9c37c642da962d575b7c99007918872; r=lth
Differential Revision: https://phabricator.services.mozilla.com/D88784
2020-08-31 16:34:29 +00:00
Mihai Alexandru Michis
261d01524b Backed out changeset d0f173a90792 (bug 1519636) for causing bustages.
CLOSED TREE
2020-08-31 10:14:58 +03:00
Sylvestre Ledru
939dd426e6 Bug 1519636 - Reformat recent changes to the Google coding style r=andi
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D88713
2020-08-31 06:51:21 +00:00
Julian Seward
4586eba01b Bug 1660976 - Bump Cranelift to 7c856542854bc8c5da9d5fb1a0b41f3c660d8484; r=bbouvier.
Differential Revision: https://phabricator.services.mozilla.com/D88132
2020-08-25 10:55:46 +00:00
Chris Fallin
b4d17c8c71 Bug 1659803: Bump Cranelift to rev 924782191b1cdd85438b707d20a82fbcc8ad40e1. r=jseward
This PR pulls in the latest version of Cranelift, which pulls in
regalloc.rs v0.0.30 and consequently includes some improvements in
memory allocation rate during compilation. No behavior changes expected.

Differential Revision: https://phabricator.services.mozilla.com/D87479
2020-08-18 19:07:53 +00:00
Chris Fallin
c95dc245f5 Bug 1659139: Update vendored Cranelift to 279534e27611ee4a13e4590a0a10ffc0fdb95a33. r=jseward
This pulls in an upgrade to regalloc.rs v0.0.29, which brings several
performance improvements.

Differential Revision: https://phabricator.services.mozilla.com/D87096
2020-08-14 18:36:25 +00:00
Chris Fallin
32d18173b8 Bug 1657895: fix fuzzbug by vendoring Cranelift to rev e88d74903102266a18e97489557760b9be67f782. r=jseward
This pulls in (in addition to other miscellaneous changes) a Cranelift
PR which fixes a Wasm translation issue in which the value stack was not
properly restored to have the if-block-parameters in the else-branch
after the if-branch ended in an unreachable opcode:

https://github.com/bytecodealliance/wasmtime/pull/2120

Differential Revision: https://phabricator.services.mozilla.com/D86459
2020-08-10 20:21:48 +00:00
shravanrn@gmail.com
12c83a7c60 Bug 1649631 - Fix wasi issues in clang-11 builds r=froydnj,dmajor
Differential Revision: https://phabricator.services.mozilla.com/D85741
2020-08-06 19:22:24 +00:00
Chris Fallin
534b2e3e86 Bug 1657062: vendor Cranelift to rev fc88898e9ad7766feadfa0954c4594fcccd86b92 to fix fuzzbug. r=jseward
This patch vendors in the latest version of Cranelift, including the
following PR, which fixes this fuzzbug:

https://github.com/bytecodealliance/wasmtime/pull/2097

Differential Revision: https://phabricator.services.mozilla.com/D86044
2020-08-05 17:40:30 +00:00
Julian Seward
ac0184c255 Bug 1657131 - Bump cranelift version to 25e31739a63b7a33a4a34c961b88606c76670e46. r=cfallin.
Differential Revision: https://phabricator.services.mozilla.com/D85886
2020-08-04 18:53:20 +00:00
Chris Fallin
d70b8edad9 Bug 1655848: vendor in new Cranelift to fix fuzzbug. r=jseward
This patch vendors in the latest version of Cranelift, rev
026fb8d388964c7c1bace7019c4fe0d63c584560. This includes a fix for bug
1655848 (from GitHub PR #2081), as well as several other miscellaneous
changes.

Differential Revision: https://phabricator.services.mozilla.com/D85773
2020-08-03 16:53:46 +00:00
Benjamin Bouvier
2269596e45 Bug 1654813 - Bump Cranelift to dd098656111396afa58e90084a705744e836bf10; r=cfallin
This is waiting on https://github.com/bytecodealliance/wasmtime/pull/2068 to be
landed first.

Differential Revision: https://phabricator.services.mozilla.com/D84711
2020-07-31 17:57:34 +00:00
Nathan Froyd
9d38c2fd4a Bug 1655929 - bump upstream versions of rlbox + lucet; r=firefox-build-system-reviewers,rstewart
We need this bump for a couple of reasons:

1. It enables floating the libc crate version, which makes keeping up-to-date
   with upstream changes easier.
2. It enables floating the getrandom crate version, which enables updating
   getrandom to a version with less buggy behavior around the Linux
   `getrandom` syscall on some architectures.

We also take this opportunity to sync up our vendored lucet with the lucet
that we use to build things in taskcluster.

Differential Revision: https://phabricator.services.mozilla.com/D85408
2020-07-30 15:55:30 +00:00
Nick Alexander
89e6512181 Bug 1636539 - Part 2: Add defaultagent-static Rust crate fetching remote disabled flag. r=bytesized
This lays out a Rust crate and statically links it into
`windows-default-agent.exe`.  It declares a single-method API (which
will be invoked in the next commit).

Strings cross the C/C++ <-> Rust FFI boundary as null-terminated
UTF-8.  (This will matter more if and when we use ETag and
If-None-Match to get 304 results.)

Errors are reported as Windows result codes, with the "customer" bit
set to encode certain classes of failure.

The bulk of the work is in implementing a
[Viaduct](https://github.com/mozilla/application-services/tree/master/components/viaduct)
backend built on top of `wininet.dll`.  The motivation is that if and
when this Remote Settings Rust client grows features (say,
Content-Signature: verification), then by using Viaduct there is a
smooth path to consume the client inside Firefox itself, because
Viaduct already has a backend on top of Necko.  That makes this
abstraction relatively low friction: it exists, is in-tree already,
and has a path to use in Gecko proper.

It is expected that the layer above this will handle "gracefully
failing", either open or closed; and will mirror Remote Settings
configuration to the registry so that testers can use prod/stage/dev
easily.

For follow-up:

- Configure logging to use the Windows event logger.  See [Bug
  1648617](https://bugzilla.mozilla.org/show_bug.cgi?id=1648617).

- Consider propagating errors into the Telemetry we send.

Differential Revision: https://phabricator.services.mozilla.com/D78579
2020-07-21 22:17:26 +00:00
Chris Fallin
1438721c3a Bug 1653502: Update vendored Cranelift to fix fuzzbug. r=bbouvier
This patch pulls in revision 1b3b2dbfd00492161032760992a8699d19b640ca of
Cranelift. This includes PR bytecodealliance/wasmtime#2042, which fixes
bug 1653502 by properly masking the shift amount in a shift incorporated
into an aarch64 arithmetic instruction.

This patch also includes various other miscellaneous Cranelift
improvements that have been merged since the last version-bump,
including some aarch64 codegen improvements.

Differential Revision: https://phabricator.services.mozilla.com/D84101
2020-07-20 10:04:31 +00:00
Chris Fallin
c07df47355 Bug 1633721, part 1 of 2: Bump Cranelift to revision 5e0268a542f612fee36d0256ed1f6a0e18dc02b3. r=bbouvier
This patch updates the vendored version of Cranelift, pulling in the
reference-types support recently merged in Cranelift's PR
bytecodealliance/wasmtime#1852. Usage of this update to support reftypes
in SpiderMonkey on aarch64 is added in the subsequent commit.

Differential Revision: https://phabricator.services.mozilla.com/D83582
2020-07-16 19:15:05 +00:00
Chris Fallin
35cf81d389 Bug 1648885 and Bug 1649432: vendor latest Cranelift to get Spectre mitigations and fix fuzzbug. r=bbouvier
This patch pulls in Cranelift revision
47a218f908e6bdeb7a0fb65ed74e58a0b608080d, which incorporates several
relevant changes:

- It includes the Spectre mitigation for explicit heap bounds checks
  merged in PR bytecodealliance/wasmtime#1930, resolving Bug 1648885.

- It includes the fix for an out-of-bounds subtraction on large shift
  amounts merged in PR bytecodealliance/wasmtime#1954, resolving Bug
  1649432.

We need to temporarily disable the `wasm/limits.js` jit-test on
Cranelift configurations because it now needs shared memory to work, and
the Cranelift backend does not support this yet. Given that this should
be ready in the next month at most (requires atomics support on AArch64,
which is currently being examined), it seems simpler to temporarily
disable the test on aarch64 than to try to disentangle the bits that
depend on shared memories explicitly.

This patch also edits the `regexp/bug1445907.js` jit-test to run only if
Wasm debugging is supported. This is needed for the test not to fail
with `--wasm-compiler=cranelift` (which disables Baseline, the only Wasm
compiler that supports debugging).

Differential Revision: https://phabricator.services.mozilla.com/D81936
2020-07-02 15:47:56 +00:00
J.C. Jones
b3dd4acf6b Bug 1649227 - Upgrade authenticator-rs to v0.2.13 r=kjacobs
https://crates.io/crates/authenticator/0.2.13
- Support for Linux on MIPS
- Fix a race condition in the main state machine causing repeated signature requests

Differential Revision: https://phabricator.services.mozilla.com/D81604
2020-06-29 21:26:19 +00:00
Ted Campbell
4b5638af5a Bug 1642708 - Remove BinAST Rust modules r=arai,emilio
Differential Revision: https://phabricator.services.mozilla.com/D77947
2020-06-17 13:57:07 +00:00