Commit Graph

31 Commits

Author SHA1 Message Date
Nathan Froyd
b48f159e90 Bug 1405105 - remove Rust init hack now that we require 1.19; r=ccorcoran
We added this to avoid race conditions, but a fix which removes the need
for it has been landed in Rust 1.19+, which we now require.
2017-10-04 09:53:20 -04:00
Nathan Froyd
49a4f52929 Bug 1373878 - part 3 - add stylo_tests as a RustTest; r=rillian
The easy part of this patch is the addition of the RustTest itself.

The more difficult to understand part of the patch is the changes to all
of our Rust build configuration.  We do this due to a bug in cargo:

https://github.com/rust-lang/cargo/issues/3923

where features on dependent crates are not correctly taken into account
when determining whether cached artifacts on disk are valid and whether
they should be evicted from the disk cache.  The practical upshot of
this behavior is that, say, running gtests during normal development
when files in libxul are modified will:

* rebuild some Rust dependencies for libxul;
* link libxul;
* rebuild those same Rust dependencies *again* for libxul-gtest, since
  we have different features active and therefore the old artifacts look
  to be out of date;
* link libxul-gtest.

Needless to say, this is highly annoying and counterproductive behavior.

The "fix" is to ensure that the gkrust-shared crate explicitly depends
on crates and assigns features to them such that the feature sets do not
change between normal builds and testing builds.  This is admittedly
fragile, but it is not the first time this has come up, and is probably
not the last.
2017-10-02 09:21:22 -04:00
Tim Taubert
19ac8cd5af Bug 1388843 - Part 2: Add u2fhid to the shared rust library r=ted 2017-08-09 21:20:08 +02:00
Henri Sivonen
bbf98503c1 Bug 1372230 part 2 - Update encoding_rs to 0.7.0 and encoding_c to 0.8.0. r=emk
MozReview-Commit-ID: DuK9BvVY50z
2017-08-28 12:22:25 +03:00
Dan Glastonbury
c03f2a23e9 Bug 1391523 - P5: Compile in audioipc crates. r=kamidphish
MozReview-Commit-ID: 6BC0fu1rrEE
2017-08-11 12:41:35 +10:00
Michael Layzell
fdcb1852ad Bug 1381560 - Stop storing panic string length twice, r=ted
MozReview-Commit-ID: rLOdMPxhwD
2017-07-28 15:34:26 -04:00
J. Ryan Stinnett
fc9a45af33 Bug 1373881 - Call default panic hook after crashreporter. r=rillian
Crash reporter installs a special Rust panic hook to grab the panic reason.
However, we still want to call the default hook as well, so that we still print
the reason and backtrace to the console.

MozReview-Commit-ID: JlCamBPb51X
2017-07-07 19:19:07 -05:00
Henri Sivonen
7af0452b6b Bug 1261841 part 2 - Use encoding_rs instead of uconv. r=emk,mystor.
MozReview-Commit-ID: 15Y5GTX98bv
2017-06-13 13:23:23 +03:00
Henri Sivonen
12e1264b06 Bug 1261841 part 1 - Vendor encoding_rs and encoding_c into m-c. rs=emk,SimonSapin.
MozReview-Commit-ID: Lphq69tSIXa
2017-06-13 13:22:54 +03:00
Carl Corcoran
480cea7211 bug 1358151: temporary workaround for rust race condition r=ted
MozReview-Commit-ID: KiPArBKMSu1
2017-05-06 14:05:09 +02:00
Nathan Froyd
64ea7ef7f0 Bug 1357556 - define a gecko_debug feature for gkrust*; r=emilio
Servo needs to know whether C++ code is compiled with MOZ_DEBUG, and
passing along an explicit feature is a better way to determine that
information than relying on cfg(debug_assertions).

MozReview-Commit-ID: B3XCskDQ56p
2017-04-20 13:54:14 -04:00
Dan Glastonbury
42073d63bf Bug 1346665 - P2: Import rustified cubeb_pulse.c. r=kinetik,rillian
Enable by setting:

  media.cubeb.backend = "pulse-rust"

MozReview-Commit-ID: EZXJAzN3X7c
2017-04-21 14:01:01 +10:00
Michael Layzell
c7a9c27962 Bug 1320179 - Part 2: Add the nserror rust crate and generate NS_ERROR codes, r=froydnj
MozReview-Commit-ID: FFU6WfEqev
2017-04-06 18:37:25 -04:00
Wes Kocher
3edcd86647 Backed out 4 changesets (bug 1320179) for causing merge conflicts a=backout
Backed out changeset b8aa677f7452 (bug 1320179)
Backed out changeset 9e2f77570128 (bug 1320179)
Backed out changeset 470d8143b350 (bug 1320179)
Backed out changeset ea4f1b3cc7b1 (bug 1320179)
2017-04-06 15:29:24 -07:00
Michael Layzell
99c79ef44e Bug 1320179 - Part 2: Add the nserror rust crate and generate NS_ERROR codes, r=froydnj
MozReview-Commit-ID: FFU6WfEqev
2017-04-06 17:22:08 -04:00
Ted Mielczarek
c3387c51cd bug 1275780 - capture Rust panic message in crash reports. r=froydnj
MozReview-Commit-ID: IUlYqPEtkgg
2017-03-27 14:40:22 -04:00
Ted Mielczarek
54ccc92ad3 bug 1300152 - Add nsIDebug2::rustPanic to allow triggering Rust panic for testing. r=froydnj
For testing purposes it will be useful to be able to trigger crashes in Rust
code. Being able to trigger a panic seems like a good place to start. This
will make it easier to validate improvements in crash reporting.

MozReview-Commit-ID: Bh5rBieLLWW
2017-03-31 12:08:57 -04:00
Iris Hsiao
184a0a94a6 Backed out changeset 40eb77a98bcf (bug 1300152) 2017-03-31 13:47:37 +08:00
Iris Hsiao
8ba9e8add6 Backed out changeset 23c5ecf4d92e (bug 1275780) for xpcshell perma-failing in Win8 2017-03-31 13:47:33 +08:00
Ted Mielczarek
e86ce3e5cc bug 1275780 - capture Rust panic message in crash reports. r=froydnj
MozReview-Commit-ID: IUlYqPEtkgg
2017-03-27 14:40:22 -04:00
Ted Mielczarek
09005f5388 bug 1300152 - Add nsIDebug2::rustPanic to allow triggering Rust panic for testing. r=froydnj
For testing purposes it will be useful to be able to trigger crashes in Rust
code. Being able to trigger a panic seems like a good place to start. This
will make it easier to validate improvements in crash reporting.

MozReview-Commit-ID: Bh5rBieLLWW
2016-09-02 13:22:21 -04:00
Manish Goregaokar
461732809c Bug 1336607 - Switch geckolib off dummy folder, update lockfiles; r=gps
MozReview-Commit-ID: BOgu41N351y
2017-02-10 12:19:18 -08:00
Kartikaya Gupta
9a782e4376 Bug 1335525 - Update libgkrust to include webrender as an optional feature. r=froydnj
MozReview-Commit-ID: 8usfSqFWkZ0
2017-02-06 11:42:52 -05:00
Gregory Szorc
345f97d74a Bug 1322769 - Move dummy geckolib to toolkit/library, change taskgraph detection; r=froydnj
I want to get Servo vendored into servo/. The previous plan was to
replace the dummy geckolib with the real deal when the vendoring is
done. Unfortunately, this will require a significant `cargo vendor`
change, which we want to punt on for a bit.

So, this commit moves our dummy geckolib outside of servo/ so we
don't need to `cargo update` or `cargo vendor` when the real servo/
is installed.

The change to toolkit/library/rust/shared/Cargo.toml can be reverted
in the stylo repo to allow it to use the real geckolib.

We also update the taskgraph code for detecting Servo. Previously,
it looked for a file in the possibly-vendored servo/ directory. Once
the vendoring happens, this check will always pass. But without the
real geckolib, the Servo builds will fail. So, we change the check
to look for the real geckolib. This is implemented a bit hackily.
But it will be short-lived until we run `cargo vendor`.

MozReview-Commit-ID: CxGTwy6bK9j
2017-02-03 11:20:14 -08:00
Gregory Szorc
39893e0a0c Bug 1322769 - Add a "servo" feature; r=manishearth
MozReview-Commit-ID: A9dNTxNkl39
2017-02-02 15:30:16 -08:00
Nathan Froyd
a7d54fb226 Bug 1334717 - move geckoservo library to proper servo path; r=gps 2017-01-27 19:33:15 -05:00
nfroyd@mozilla.com
6371bcde57 Bug 1302028 - part 5 - add bindgen feature to gecko-side Cargo.toml files for propagation to geckoservo; r=Manishearth 2017-01-20 16:33:04 +00:00
Manish Goregaokar
2bbb804b70 Bug 1151899 - Include rust-url-capi (leave-open); r=valentin,ted
MozReview-Commit-ID: 1ITlPLvwzF4
2016-10-28 16:34:21 -07:00
Wes Kocher
1c352761ca Backed out 2 changesets (bug 1151899) for build bustage a=backout
Backed out changeset 7b5270bac41b (bug 1151899)
Backed out changeset 62f38c70d152 (bug 1151899)
2016-10-28 14:27:45 -07:00
Manish Goregaokar
a403b3dc6b Bug 1151899 - Include rust-url-capi; r=valentin,ted
MozReview-Commit-ID: 1ITlPLvwzF4
2016-10-28 14:03:13 -07:00
Nathan Froyd
8a3ac73ffd Bug 1304815 - rearrange Rust crate structure for newer Rust releases; r=ted.mielczarek
In our current Rust world, we have the following dependency structure:

  xul.so --------------------------+
                                   |
  xul-gtest.so -+--> xul.a --------+-> gkrust
                |
                +--> gkrust-gtest

This structure results in link errors with multiply-defined symbols
between gkrust-gtest and gkrust with newer Rust releases when linking
xul-gtest.so.  So we have to do something different.

Our new structure is:

  xul.so --------------------------+
                                   |
  xul-gtest.so -+--> xul.a --------+-> gkrust --+-> gkrust-shared
                |                               |
                +--> gkrust-gtest --------------+

and we enforce that a given shared library can only have at most one
Rust library that it depends on.  Said Rust library is assumed to
include all significant Rust dependencies of the dependent static
libraries as well.  (In the above structure, gkrust is simply a wrapper
around gkrust-shared, so gkrust-gtest doesn't have to include gkrust as
a dependency.)
2016-10-15 18:16:13 -04:00