New issue
Advanced search Search tips

Issue 760253 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Sep 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Feature



Sign in to add a comment

Upgrade chromiumos-overlay Rust to v1.20

Project Member Reported by za...@chromium.org, Aug 29 2017

Issue description

Rust inside the chroot is showing it's age. The old toolchain depends on using its private LLVM branch and on its long deprecated makefile based build. With this upgrade, the rustllvm bindings are close enough to the system's LLVM to interoperate successfully. Additionally, some of the rust bootstrapping bugs have been ironed out making the upgrade easier than the failed 1.17 upgrade attempt.

The bulk of this issue is dealing with system LLVM which is ~5.0 while Rust builds against 4.0. Luckily the heavy lifting to upgrade to 5.0 has been done on Rust master and is being backported. See https://github.com/rust-lang/rust/issues/43370 for the upstream tracking issue.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Aug 31 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/25de5127c6476cb866df730498c889100e1ca7fc

commit 25de5127c6476cb866df730498c889100e1ca7fc
Author: Zach Reizner <zachr@google.com>
Date: Thu Aug 31 07:24:11 2017

llvm: pair of fixes for upstream bug PR33917

These fixes are needed to compile rustc using this llvm. See also
https://github.com/rust-lang/rust/issues/43370 for the upstream tracking
issue for upgrading rust to use LLVM 5.0.

TEST=sudo emerge llvm; ebuild rust-1.19.0.ebuild
BUG= chromium:760253 

Change-Id: I9a1e364504c81e35cb09ca099b42c76121645036
Reviewed-on: https://chromium-review.googlesource.com/642766
Commit-Ready: Zach Reizner <zachr@chromium.org>
Tested-by: Zach Reizner <zachr@chromium.org>
Reviewed-by: Manoj Gupta <manojgupta@chromium.org>
Reviewed-by: Jason Clinton <jclinton@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[add] https://crrev.com/25de5127c6476cb866df730498c889100e1ca7fc/sys-devel/llvm/files/cherry/7313cf88d8717af101e89811a410faf4591f2864.patch
[rename] https://crrev.com/25de5127c6476cb866df730498c889100e1ca7fc/sys-devel/llvm/llvm-5.0_pre305632_p20170806-r3.ebuild
[add] https://crrev.com/25de5127c6476cb866df730498c889100e1ca7fc/sys-devel/llvm/files/cherry/bc62a9f5d4a276a5f023e3ebd957b6915f101a3e.patch

Comment 2 by za...@chromium.org, Aug 31 2017

Summary: Upgrade chromiumos-overlay Rust to v1.20 (was: Upgrade chromiumos-overlay Rust to v1.19)
change summary to v1.20 which came out today
Project Member

Comment 3 by bugdroid1@chromium.org, Sep 1 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/4ed95e32aa6f1708f52903b7af7e9b9a54136383

commit 4ed95e32aa6f1708f52903b7af7e9b9a54136383
Author: Zach Reizner <zachr@google.com>
Date: Fri Sep 01 07:44:31 2017

dev-lang/rust: upgrade to 1.20

This upgrade is a fairly radical change from the previous version.
Features of the new ebuild and patches are:

- Rust version 1.20
- Uses the system LLVM
- Builds using clang
- Uses rustbuild instead of automake, which rustc dropped support for

The change from rustc's classic automake to the new rustbuild was the
bulk of the delay moving above 1.16. The change to using the system's
LLVM also added quite some challenge as both the system LLVM and rustc's
support for various LLVM versions were moving targets. Hopefully
upgrades to upstream Rust can be followed more closely now that these
hurdles hav been cleared.

TEST=sudo emerge rust
BUG= chromium:760253 

Change-Id: I00cca98f9e60ff6814e4660e2e0168139c0b4c08
Reviewed-on: https://chromium-review.googlesource.com/642767
Commit-Ready: Zach Reizner <zachr@chromium.org>
Tested-by: Zach Reizner <zachr@chromium.org>
Reviewed-by: Jason Clinton <jclinton@chromium.org>
Reviewed-by: Chirantan Ekbote <chirantan@chromium.org>

[add] https://crrev.com/4ed95e32aa6f1708f52903b7af7e9b9a54136383/dev-lang/rust/files/0005-add-unknown-vendor-to-filesearch.patch
[add] https://crrev.com/4ed95e32aa6f1708f52903b7af7e9b9a54136383/dev-lang/rust/files/0008-rustllvm-use-LLVMMetadataRef.patch
[add] https://crrev.com/4ed95e32aa6f1708f52903b7af7e9b9a54136383/dev-lang/rust/files/0009-rustllvm-adjust-usage-of-createPointerType.patch
[add] https://crrev.com/4ed95e32aa6f1708f52903b7af7e9b9a54136383/dev-lang/rust/files/0007-rustllvm-define-LLVM_VERSION_LT.patch
[add] https://crrev.com/4ed95e32aa6f1708f52903b7af7e9b9a54136383/dev-lang/rust/files/0004-fix-rpath.patch
[add] https://crrev.com/4ed95e32aa6f1708f52903b7af7e9b9a54136383/dev-lang/rust/files/0006-fix-DIExpression-warnings.patch
[add] https://crrev.com/4ed95e32aa6f1708f52903b7af7e9b9a54136383/dev-lang/rust/files/0014-Fix-archive-member-names-on-5.0.patch
[add] https://crrev.com/4ed95e32aa6f1708f52903b7af7e9b9a54136383/dev-lang/rust/rust-1.20.0.ebuild
[modify] https://crrev.com/4ed95e32aa6f1708f52903b7af7e9b9a54136383/dev-lang/rust/Manifest
[add] https://crrev.com/4ed95e32aa6f1708f52903b7af7e9b9a54136383/dev-lang/rust/files/0011-rustllvm-update-to-SyncScope-ID.patch
[add] https://crrev.com/4ed95e32aa6f1708f52903b7af7e9b9a54136383/dev-lang/rust/files/0010-rustllvm-adjust-usage-of-createNameSpace.patch
[modify] https://crrev.com/4ed95e32aa6f1708f52903b7af7e9b9a54136383/dev-lang/rust/files/0001-fix-target-armv7a-cros.patch
[delete] https://crrev.com/1f25b4176587cd50c742e08e1e88fe9b399bd61c/dev-lang/rust/rust-1.16.0.ebuild
[add] https://crrev.com/4ed95e32aa6f1708f52903b7af7e9b9a54136383/dev-lang/rust/files/0012-rustllvm-split-DebugLoc-in-UnpackOptimizationDiagnos.patch
[add] https://crrev.com/4ed95e32aa6f1708f52903b7af7e9b9a54136383/dev-lang/rust/files/0013-update-attributes-API-usage.patch

Project Member

Comment 5 by bugdroid1@chromium.org, Sep 1 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/portage-stable/+/12fae24edf326cbd8ef2335250787d2453e37593

commit 12fae24edf326cbd8ef2335250787d2453e37593
Author: Zach Reizner <zachr@google.com>
Date: Fri Sep 01 23:41:56 2017

dev-util/cargo: upgrade to 0.20.0

Small tweaks to upstream ebuild:
- remove EAPI=6 features
- change to KEYWORD="*"
- remove RESTRICT="mirror"

TEST=sudo emerge cargo
BUG= chromium:760253 

Change-Id: I83c9e1bc417da27635c302ae514e51e7376e12ac
Reviewed-on: https://chromium-review.googlesource.com/648209
Commit-Ready: Zach Reizner <zachr@chromium.org>
Tested-by: Zach Reizner <zachr@chromium.org>
Reviewed-by: Chirantan Ekbote <chirantan@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[add] https://crrev.com/12fae24edf326cbd8ef2335250787d2453e37593/dev-util/cargo/cargo-0.20.0.ebuild
[modify] https://crrev.com/12fae24edf326cbd8ef2335250787d2453e37593/dev-util/cargo/Manifest
[delete] https://crrev.com/9191e96f243cbd6691f8a7b3f76307e13901f561/dev-util/cargo/cargo-0.17.0.ebuild

Project Member

Comment 6 by bugdroid1@chromium.org, Sep 4 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/docs/+/d9439bf768fcfa29e896dfec978f4f6da1898f16

commit d9439bf768fcfa29e896dfec978f4f6da1898f16
Author: Zach Reizner <zachr@google.com>
Date: Mon Sep 04 21:57:51 2017

docs: Rust 1.20 package.use instructions

This also tacks on a warning related to emerging Rust with a stale
toolchain installed.

BUG= chromium:760253 
TEST=None

Change-Id: Id05fc532527e665294eaff1e8a7e2816385a4c5e
Reviewed-on: https://chromium-review.googlesource.com/648460
Commit-Ready: Zach Reizner <zachr@chromium.org>
Tested-by: Zach Reizner <zachr@chromium.org>
Reviewed-by: Jason Clinton <jclinton@chromium.org>

[modify] https://crrev.com/d9439bf768fcfa29e896dfec978f4f6da1898f16/rust_on_cros.md

Comment 7 by za...@chromium.org, Sep 26 2017

Status: Fixed (was: Started)

Sign in to add a comment