Commit Graph

118 Commits

Author SHA1 Message Date
Jeffrey Vander Stoep
2e8a617bca Merge "Rust: use 1.45.2 prebuilts" 2020-08-20 17:14:19 +00:00
Jeff Vander Stoep
3a9d80a60c Rust: use 1.45.2 prebuilts
Test: TH
Change-Id: I2eab5af0a822673ca1f5bb2f63c88edc2c7830ff
2020-08-14 13:53:38 +02:00
Jeff Vander Stoep
6e97a7b4a1 rust: Use host linker when building for Mac host.
This behavior is non-hermetic, but matches the behavior of the C++
support. On Linux, using lld works, but on OSX, this fails because lld
does not support Apple's new .tbd files.

Bug: 155302034
Test: On both Linux and Mac hosts:
    cd external/rust; mma

Change-Id: I0ad489113d720bdb9c3b7a67cce9d1e72266f428
2020-07-15 22:02:18 +02:00
Thiébaud Weksteen
8e46efac71 Explicitly define Rust default lints
Add documentation on how lints are defined and used in Android. Merge
the deny_warnings attribute with a new attribute (no_lint) which can be
used to disable the default linting parameters.
Explicitly allow all lints for external/ and prebuilts/, which remove
any warning when building sysroot for the devices.

Test: cd external/rust/crates; mma
Test: add dummy internal Rust module; mma
Change-Id: I62be1c41aeda4068fb9e288038727c1de5ffe547
2020-07-01 17:11:58 +02:00
Jeff Vander Stoep
530dccb8c5 Update rustc to 1.44.0
Test: Treehugger
Change-Id: Ib940bc5afbbbec6b16ed7c2879ad31438e58907d
2020-06-26 15:26:49 +02:00
Matthew Maurer
f5be9a6ad4 Switch rustc to 1.43.0
Bug: 154947284
Test: cd external/rust/crates; mm
Change-Id: I684e9ee5d44029806d48a271970f8ef28e793195
2020-04-29 13:33:40 -07:00
Matthew Maurer
e972e8822b Update Android's rustc version 1.40.0->1.42.0
Test: cd external/rust/crates; mm
Bug: 152633654
Change-Id: Ic7cbc1869fdffa332033cecd4c4596775946d0e9
2020-04-22 13:22:25 -07:00
Elliott Hughes
c5960d61cd Always use RELR for Rust.
Rust has no backwards compatibility concerns, so no need to use
--use-android-relr-tags here.

Bug: http://b/147452927
Test: treehugger
Change-Id: I94de40bfad1ff2dcbc4241b944db90e0891bf9f3
2020-01-28 17:30:16 -08:00
Matthew Maurer
e7d7b6d924 Remove libterm from implicit crates
This is no longer shipped by rustc, and wasn't really intended to be
implicitly available in the first place.

Bug: 147432625
Test: Built a sample rust device binary
Change-Id: I3c33ac3726c788debe14ed39a9ecbae7a7449351
2020-01-09 12:24:58 -08:00
Matthew Maurer
bd73c4d06b Update rustc version to 1.40.0
Bug: 146571186
Test: m crosvm.experimental; atest unicode-xid_device_tests_unicode_xid
Change-Id: If7142a4cd31295a04eb485ee3d7cada5dc6be185
2020-01-02 15:07:18 -08:00
Ivan Lozano
31b095d071 Add rust default compilation flags.
Bug: 140725928
Test: m -j crosvm.experimental
Change-Id: I1674f099659957f024cce70341a6a69610118a69
2019-11-20 10:14:33 -08:00
Chih-Hung Hsieh
961a30c714 Fix defaults of BaseCompilerProperties
* Edition and Deny_warnings should not be set when
  constructing a BaseCompilerProperties, or the
  initialized values will reject values inherited from rust_defaults.
* Use getEdition and getDenyWarnings to retrieve those properties
  with defaults from config.

Bug: 141699953
Test: mm in rust projects
Change-Id: Id1ae357caeaf656cd33732bf4e54920e206f4ead
2019-10-03 09:47:06 -07:00
Joel Galenson
724286c957 Pass --remap-path-prefix to Rust builds.
We need to pass --remap-path-prefix to Rust builds to ensure that they
are reproducible across different paths.  This adds that for both host
and device builds.

Test: Verify host and device builds are reproducible with different
directories.

Change-Id: I68ba31537b2332fd05613aa0fb00a1502d78e410
2019-10-01 11:12:15 -07:00
Chih-Hung Hsieh
efdd7aca76 Deny rust warnings by default.
* "-D warnings" means "deny all warnings" and make them errors.
* Modules with warnings should fix all warnings or use
        deny_warnings: false

Bug: 141699953
Test: mm in projects with Rust modules
Change-Id: I6310dee8e34b7780937e8fc1834016a04a943a2f
2019-09-27 11:16:22 -07:00
Ivan Lozano
f1c8433b40 Add AArch64 device Rust toolchain.
Bug: 141207434
Test: build example rust device module.
Change-Id: I0932a614942bf4a4d4b6c153fcc4fc79c7f202bd
2019-09-24 10:35:28 -07:00
Ivan Lozano
6d9e712858 Amend list of required Rust stdlib libraries.
Add libtest to our list of stdlib libraries, and remove some others that
are only used when generating proc_macros (which aren't dynamic).

Bug: 141207434
Test: m -j crosvm.experimental
Change-Id: I39cb030940adf1993e861d0142378eeea8b1ff5e
2019-09-20 10:59:56 -07:00
Matthew Maurer
43f697ec28 Update to Rust 1.37.0
Test: m crosvm.experimental
Bug: 140573584
Change-Id: I52d33b1ed4610536c89471e2052dea07b1b4ff8f
2019-09-09 16:17:33 -07:00
Ivan Lozano
ffee334706 Add Rust support to Soong.
Adds support to Soong for building rust modules. This currently only
supports x86_64 device and x86 linux host targets. The functionality
is sufficient to build crosvm.

Bug: 136189233
Test: Test module builds.
Test: crosvm builds.
Change-Id: I6ea04615834a6d673578ab10ea1a2eb04259fe09
2019-08-28 14:11:07 -07:00