drop Rust 1.12.1 and Cargo 0.13

In keeping with our Rust supported releases schedule at
https://github.com/meta-rust/meta-rust/wiki this drops Rust 1.12.1 and
its cooresponding Cargo release.
This commit is contained in:
Doug Goldstein
2017-06-18 11:17:30 -05:00
parent 4dcaaa8fc9
commit 1db27bc4f7
12 changed files with 0 additions and 463 deletions

View File

@@ -1,86 +0,0 @@
require cargo-snapshot.inc
require cargo.inc
SRC_URI += " \
git://github.com/rust-lang/cargo.git;protocol=https;name=cargo \
crate://crates.io/advapi32-sys/0.2.0 \
crate://crates.io/aho-corasick/0.5.2 \
crate://crates.io/bitflags/0.1.1 \
crate://crates.io/bitflags/0.7.0 \
crate://crates.io/bufstream/0.1.2 \
crate://crates.io/cfg-if/0.1.0 \
crate://crates.io/cmake/0.1.17 \
crate://crates.io/crossbeam/0.2.9 \
crate://crates.io/curl-sys/0.2.1 \
crate://crates.io/curl/0.3.2 \
crate://crates.io/docopt/0.6.82 \
crate://crates.io/env_logger/0.3.4 \
crate://crates.io/filetime/0.1.10 \
crate://crates.io/flate2/0.2.14 \
crate://crates.io/fs2/0.2.5 \
crate://crates.io/gcc/0.3.32 \
crate://crates.io/gdi32-sys/0.2.0 \
crate://crates.io/git2-curl/0.5.0 \
crate://crates.io/git2/0.4.4 \
crate://crates.io/glob/0.2.11 \
crate://crates.io/hamcrest/0.1.0 \
crate://crates.io/idna/0.1.0 \
crate://crates.io/kernel32-sys/0.2.2 \
crate://crates.io/lazy_static/0.2.1 \
crate://crates.io/libc/0.2.15 \
crate://crates.io/libgit2-sys/0.4.5 \
crate://crates.io/libressl-pnacl-sys/2.1.6 \
crate://crates.io/libssh2-sys/0.1.38 \
crate://crates.io/libz-sys/1.0.5 \
crate://crates.io/log/0.3.6 \
crate://crates.io/matches/0.1.2 \
crate://crates.io/memchr/0.1.11 \
crate://crates.io/miniz-sys/0.1.7 \
crate://crates.io/miow/0.1.3 \
crate://crates.io/net2/0.2.26 \
crate://crates.io/nom/1.2.4 \
crate://crates.io/num-bigint/0.1.33 \
crate://crates.io/num-complex/0.1.33 \
crate://crates.io/num-integer/0.1.32 \
crate://crates.io/num-iter/0.1.32 \
crate://crates.io/num-rational/0.1.32 \
crate://crates.io/num-traits/0.1.34 \
crate://crates.io/num/0.1.34 \
crate://crates.io/num_cpus/1.0.0 \
crate://crates.io/openssl-sys-extras/0.7.14 \
crate://crates.io/openssl-sys/0.7.14 \
crate://crates.io/openssl/0.7.14 \
crate://crates.io/pkg-config/0.3.8 \
crate://crates.io/pnacl-build-helper/1.4.10 \
crate://crates.io/rand/0.3.14 \
crate://crates.io/regex-syntax/0.3.4 \
crate://crates.io/regex/0.1.73 \
crate://crates.io/rustc-serialize/0.3.19 \
crate://crates.io/semver/0.2.3 \
crate://crates.io/strsim/0.3.0 \
crate://crates.io/tar/0.4.8 \
crate://crates.io/tempdir/0.3.5 \
crate://crates.io/term/0.4.4 \
crate://crates.io/thread-id/2.0.0 \
crate://crates.io/thread_local/0.2.6 \
crate://crates.io/toml/0.2.0 \
crate://crates.io/unicode-bidi/0.2.3 \
crate://crates.io/unicode-normalization/0.1.2 \
crate://crates.io/url/1.2.0 \
crate://crates.io/user32-sys/0.2.0 \
crate://crates.io/utf8-ranges/0.1.3 \
crate://crates.io/winapi-build/0.1.1 \
crate://crates.io/winapi/0.2.8 \
crate://crates.io/ws2_32-sys/0.2.1 \
"
# Compatible with Rust 1.12.1
# https://static.rust-lang.org/dist/channel-rust-1.12.1.toml
SRCREV_cargo = "109cb7c33d426044d141457049bd0fffaca1327c"
S = "${WORKDIR}/git"
LIC_FILES_CHKSUM ="\
file://LICENSE-MIT;md5=362255802eb5aa87810d12ddf3cfedb4 \
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
file://LICENSE-THIRD-PARTY;md5=892ea68b169e69cfe75097fc38a15b56 \
"

View File

@@ -1,2 +0,0 @@
require compiler-rt.inc
require rust-source-${PV}.inc

View File

@@ -1,107 +0,0 @@
From bb2d8649b2b344e0bb4b1cf94135378831735557 Mon Sep 17 00:00:00 2001
From: Cody P Schafer <dev@codyps.com>
Date: Tue, 18 Nov 2014 01:40:21 -0500
Subject: [PATCH 01/10] Target: add default target.json path:
$libdir/rust/targets
---
src/librustc/session/config.rs | 6 +++---
src/librustc/session/mod.rs | 8 ++++++--
src/librustc_back/target/mod.rs | 13 +++++++++++--
3 files changed, 20 insertions(+), 7 deletions(-)
diff --git a/src/librustc/session/config.rs b/src/librustc/session/config.rs
index e988ddc..563f3ac 100644
--- a/src/librustc/session/config.rs
+++ b/src/librustc/session/config.rs
@@ -42,7 +42,7 @@ use std::env;
use std::fmt;
use std::hash::{Hasher, SipHasher};
use std::iter::FromIterator;
-use std::path::PathBuf;
+use std::path::{Path, PathBuf};
pub struct Config {
pub target: Target,
@@ -1011,8 +1011,8 @@ pub fn build_configuration(sess: &Session,
v
}
-pub fn build_target_config(opts: &Options, sp: &Handler) -> Config {
- let target = match Target::search(&opts.target_triple) {
+pub fn build_target_config(sysroot: &Path, opts: &Options, sp: &Handler) -> Config {
+ let target = match Target::search(sysroot, &opts.target_triple[..]) {
Ok(t) => t,
Err(e) => {
sp.struct_fatal(&format!("Error loading target specification: {}", e))
diff --git a/src/librustc/session/mod.rs b/src/librustc/session/mod.rs
index c71253a..13b4e05 100644
--- a/src/librustc/session/mod.rs
+++ b/src/librustc/session/mod.rs
@@ -395,13 +395,17 @@ pub fn build_session_(sopts: config::Options,
codemap: Rc<codemap::CodeMap>,
cstore: Rc<for<'a> CrateStore<'a>>)
-> Session {
- let host = match Target::search(config::host_triple()) {
+ let sysroot = match sopts.maybe_sysroot {
+ Some(ref x) => PathBuf::from(x),
+ None => filesearch::get_or_default_sysroot()
+ };
+ let host = match Target::search(&sysroot, config::host_triple()) {
Ok(t) => t,
Err(e) => {
panic!(span_diagnostic.fatal(&format!("Error loading host specification: {}", e)));
}
};
- let target_cfg = config::build_target_config(&sopts, &span_diagnostic);
+ let target_cfg = config::build_target_config(&sysroot, &sopts, &span_diagnostic);
let p_s = parse::ParseSess::with_span_handler(span_diagnostic, codemap);
let default_sysroot = match sopts.maybe_sysroot {
Some(_) => None,
diff --git a/src/librustc_back/target/mod.rs b/src/librustc_back/target/mod.rs
index 18686e3..d439b59 100644
--- a/src/librustc_back/target/mod.rs
+++ b/src/librustc_back/target/mod.rs
@@ -49,6 +49,8 @@ use std::collections::BTreeMap;
use std::default::Default;
use std::io::prelude::*;
use syntax::abi::Abi;
+use std::borrow::ToOwned;
+use std::path::Path;
mod android_base;
mod apple_base;
@@ -541,12 +543,13 @@ impl Target {
///
/// The error string could come from any of the APIs called, including
/// filesystem access and JSON decoding.
- pub fn search(target: &str) -> Result<Target, String> {
+ pub fn search(sysroot: &Path, target: &str) -> Result<Target, String> {
use std::env;
use std::ffi::OsString;
use std::fs::File;
use std::path::{Path, PathBuf};
use serialize::json;
+ use std::iter::IntoIterator;
fn load_file(path: &Path) -> Result<Target, String> {
let mut f = File::open(path).map_err(|e| e.to_string())?;
@@ -577,8 +580,14 @@ impl Target {
.unwrap_or(OsString::new());
// FIXME 16351: add a sane default search path?
+ let mut default_path = sysroot.to_owned();
+ default_path.push(env!("CFG_LIBDIR_RELATIVE"));
+ default_path.push("rustlib");
- for dir in env::split_paths(&target_path) {
+ let paths = env::split_paths(&target_path)
+ .chain(Some(default_path).into_iter());
+
+ for dir in paths {
let p = dir.join(&path);
if p.is_file() {
return load_file(&p);
--
2.10.0

View File

@@ -1,73 +0,0 @@
From 0829743c109a147213d06d38052662a5f2b0dd9b Mon Sep 17 00:00:00 2001
From: Cody P Schafer <dev@codyps.com>
Date: Tue, 18 Nov 2014 14:52:56 -0500
Subject: [PATCH 02/10] mk: for stage0, use RUSTFLAGS to override target libs
dir
Setting HLIB specially for stage0 (and even more specially for windows)
also affects the location we place TLIB. To keep the TLIBs we build in
the place requested by configure, use '-L' and '--sysroot' to point
stage0-rustc at the appropriate location.
---
mk/main.mk | 29 ++++++++++++-----------------
1 file changed, 12 insertions(+), 17 deletions(-)
diff --git a/mk/main.mk b/mk/main.mk
index 90d3563..cdcbdf2 100644
--- a/mk/main.mk
+++ b/mk/main.mk
@@ -420,32 +420,26 @@ define SREQ
HROOT$(1)_H_$(3) = $(3)/stage$(1)
HBIN$(1)_H_$(3) = $$(HROOT$(1)_H_$(3))/bin
-ifeq ($$(CFG_WINDOWSY_$(3)),1)
-# On Windows we always store host runtime libraries in the 'bin' directory because
-# there's no rpath. Target libraries go under $CFG_LIBDIR_RELATIVE (usually 'lib').
-HLIB_RELATIVE$(1)_H_$(3) = bin
-TROOT$(1)_T_$(2)_H_$(3) = $$(HROOT$(1)_H_$(3))/$$(CFG_LIBDIR_RELATIVE)/rustlib/$(2)
-# Remove the next 3 lines after a snapshot
-ifeq ($(1),0)
-RUSTFLAGS_STAGE0 += -L $$(TROOT$(1)_T_$(2)_H_$(3))/lib
-endif
-
-else
-
-ifeq ($(1),0)
-HLIB_RELATIVE$(1)_H_$(3) = lib
-else
HLIB_RELATIVE$(1)_H_$(3) = $$(CFG_LIBDIR_RELATIVE)
-endif
+
TROOT$(1)_T_$(2)_H_$(3) = $$(HLIB$(1)_H_$(3))/rustlib/$(2)
-endif
HLIB$(1)_H_$(3) = $$(HROOT$(1)_H_$(3))/$$(HLIB_RELATIVE$(1)_H_$(3))
# Destinations of artifacts for target architectures
TBIN$(1)_T_$(2)_H_$(3) = $$(TROOT$(1)_T_$(2)_H_$(3))/bin
TLIB$(1)_T_$(2)_H_$(3) = $$(TROOT$(1)_T_$(2)_H_$(3))/lib
+# Don't trust stage0, be explicit about libraries
+# TODO: rather than specifying sysroot, we really want to tell which libdir to
+# use (ie: the dir containing 'rustlib'). This would allow us to avoid
+# passing the '-L' options.
+ifeq ($(1),0)
+RUSTFLAGS_S_$(1)_T_$(2)_H_$(3) += --sysroot "$$(HROOT$(1)_H_$(3))" \
+ -L "$$(TLIB$(1)_T_$(2)_H_$(3))"
+endif
+
+
# Preqrequisites for using the stageN compiler
ifeq ($(1),0)
HSREQ$(1)_H_$(3) = $$(HBIN$(1)_H_$(3))/rustc$$(X_$(3))
@@ -558,6 +552,7 @@ STAGE$(1)_T_$(2)_H_$(3) := \
$$(HBIN$(1)_H_$(3))/rustc$$(X_$(3)) \
--cfg $$(CFGFLAG$(1)_T_$(2)_H_$(3)) \
$$(CFG_RUSTC_FLAGS) $$(EXTRAFLAGS_STAGE$(1)) --target=$(2)) \
+ $$(RUSTFLAGS_S_$(1)_T_$(2)_H_$(3)) \
$$(RUSTC_FLAGS_$(2))
endef
--
2.10.0

View File

@@ -1,25 +0,0 @@
From d73ce5d99346812fcf063a87b4efac54c263737d Mon Sep 17 00:00:00 2001
From: Cody P Schafer <dev@codyps.com>
Date: Wed, 3 Dec 2014 19:15:19 -0500
Subject: [PATCH 05/10] std/thread_local: workaround for NULL __dso_handle
---
src/libstd/thread/local.rs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/libstd/thread/local.rs b/src/libstd/thread/local.rs
index 152b977..3c62862 100644
--- a/src/libstd/thread/local.rs
+++ b/src/libstd/thread/local.rs
@@ -380,7 +380,7 @@ pub mod elf {
#[linkage = "extern_weak"]
static __cxa_thread_atexit_impl: *const libc::c_void;
}
- if !__cxa_thread_atexit_impl.is_null() {
+ if !__cxa_thread_atexit_impl.is_null() && !__dso_handle.is_null() {
type F = unsafe extern fn(dtor: unsafe extern fn(*mut u8),
arg: *mut u8,
dso_handle: *mut u8) -> libc::c_int;
--
2.10.0

View File

@@ -1,65 +0,0 @@
From 2a42d59c3671f3ab68d8ff49c46240842aff6eb6 Mon Sep 17 00:00:00 2001
From: Steven Walter <swalter@lexmark.com>
Date: Wed, 18 Nov 2015 08:33:26 -0500
Subject: [PATCH 07/10] Allow overriding crate_hash with -C crate_hash
The current crate hash is not stable from run-to-run. This causes
problems with bitbake; it needs a guarantee that every build with the
same input will generate compatible output, otherwise sstate won't work.
Using -C crate_hash, we can do that by using the bitbake input hash to
determine the crate hash; the bitbake input hash will be stable, but
still different for different rust recipes.
Upstream-Status: not-appropriate
Upstream wants to fix it's actual object generation here. See
https://github.com/rust-lang/rust/issues/34902 (and others) for details.
---
src/librustc/session/config.rs | 2 ++
src/librustc_trans/back/link.rs | 12 +++++++++++-
2 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/src/librustc/session/config.rs b/src/librustc/session/config.rs
index 563f3ac..52a5130 100644
--- a/src/librustc/session/config.rs
+++ b/src/librustc/session/config.rs
@@ -804,6 +804,8 @@ options! {CodegenOptions, CodegenSetter, basic_codegen_options,
"choose the code model to use (rustc --print code-models for details)"),
metadata: Vec<String> = (Vec::new(), parse_list, [TRACKED],
"metadata to mangle symbol names with"),
+ crate_hash: String = ("".to_string(), parse_string, [TRACKED],
+ "override crate hash with given value"),
extra_filename: String = ("".to_string(), parse_string, [UNTRACKED],
"extra data to put in each output filename"),
codegen_units: usize = (1, parse_uint, [UNTRACKED],
diff --git a/src/librustc_trans/back/link.rs b/src/librustc_trans/back/link.rs
index 3cf2500..0e48063 100644
--- a/src/librustc_trans/back/link.rs
+++ b/src/librustc_trans/back/link.rs
@@ -125,12 +125,22 @@ pub fn find_crate_name(sess: Option<&Session>,
}
+use std::hash::{Hasher, SipHasher};
+use rustc::hir::svh::Svh;
+
pub fn build_link_meta<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>,
name: &str)
-> LinkMeta {
+ let crate_hash = if tcx.sess.opts.cg.crate_hash != "" {
+ let mut state = SipHasher::new();
+ state.write(tcx.sess.opts.cg.crate_hash.as_bytes());
+ Svh::new(state.finish())
+ } else {
+ tcx.calculate_krate_hash()
+ };
let r = LinkMeta {
crate_name: name.to_owned(),
- crate_hash: tcx.calculate_krate_hash(),
+ crate_hash: crate_hash,
};
info!("{:?}", r);
return r;
--
2.10.0

View File

@@ -1,27 +0,0 @@
From 174ae38bcc197658dd0ad6bcdae2bb06112e68a2 Mon Sep 17 00:00:00 2001
From: Steven Walter <swalter@lexmark.com>
Date: Wed, 18 Nov 2015 08:41:17 -0500
Subject: [PATCH 08/10] mk/platform.mk: pass -C crate_hash to builds
bitbake recipe will export FORCE_CRATE_HASH
Upstream-Status: not-appropriate
---
mk/platform.mk | 1 +
1 file changed, 1 insertion(+)
diff --git a/mk/platform.mk b/mk/platform.mk
index d601cab..0b5e9f2 100644
--- a/mk/platform.mk
+++ b/mk/platform.mk
@@ -181,6 +181,7 @@ define CFG_MAKE_TOOLCHAIN
AR_$(1)=$(CROSS_PREFIX_$(1))$(AR_$(1))
LINK_$(1)=$(CROSS_PREFIX_$(1))$(LINK_$(1))
RUSTC_CROSS_FLAGS_$(1)=-C linker=$$(call FIND_COMPILER,$$(LINK_$(1))) \
+ -C crate_hash=$(FORCE_CRATE_HASH) \
-C ar=$$(call FIND_COMPILER,$$(AR_$(1))) $(RUSTC_CROSS_FLAGS_$(1))
RUSTC_FLAGS_$(1)=$$(RUSTC_CROSS_FLAGS_$(1)) $(RUSTC_FLAGS_$(1))
--
2.10.0

View File

@@ -1,11 +0,0 @@
require rust-source-${PV}.inc
require libstd-rs.inc
SRC_URI += "\
crate://crates.io/gcc/0.3.27 \
"
# not necessary from Rust 1.15.x and newer as its built
# as a cargo crate with libstd
DEPENDS += "compiler-rt (=${PV})"

View File

@@ -1,2 +0,0 @@
require rust-cross.inc
require rust-source-${PV}.inc

View File

@@ -1,16 +0,0 @@
require rust-source-${PV}.inc
require rust-llvm.inc
LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=43fdaa303c1c5589ad60f4ffc6a0b9ce"
do_install_prepend () {
# the install does a sed on this without installing the file
# we don't need it for anything
mkdir -p "${D}/usr/share/llvm/cmake"
touch "${D}/usr/share/llvm/cmake/LLVMExports-noconfig.cmake"
}
do_install_append () {
# we don't need any of this stuff to build Rust
rm -rf "${D}/usr/lib/cmake"
}

View File

@@ -1,25 +0,0 @@
# Specifics for Rust 1.12.1
## This is information on the rust-snapshot (binary) used to build our current release.
## snapshot info is taken from rust/src/stage0.txt
## TODO: find a way to add additional SRC_URIs based on the contents of an
## earlier SRC_URI.
RS_VERSION = "1.11.0"
RS_KEY = "5c6cf767"
RUST_SNAPSHOT = "rustc-${RS_VERSION}-${RUST_BUILD_SYS}"
# These are x86_64-unknown-linux-gnu hashes, how can we add more?
SRC_URI[rust-snapshot.md5sum] = "b83d7a1a90c2d80bef97a518022948c8"
SRC_URI[rust-snapshot.sha256sum] = "e9d27a72900da33c1bbd0e59dd42fd6414c6bcdfa33593fb7c7360068406394a"
SRC_URI += "\
https://static.rust-lang.org/dist/rustc-${PV}-src.tar.gz;name=rust \
"
SRC_URI[rust.md5sum] = "82db5a9cb9a051bf8ece2f5174cb273b"
SRC_URI[rust.sha256sum] = "97913ae4cb255618aaacd1a534b11f343634b040b32656250d09d8d9ec02d3dc"
# later versions of rust change the directory that they unextract to
RUSTSRC = "${WORKDIR}/rustc-${PV}"
# set this as our default
S = "${RUSTSRC}"

View File

@@ -1,24 +0,0 @@
require rust.inc
require rust-source-${PV}.inc
# the configure script always requires cmake so despite
# rust not needing this (only rust-llvm needs it) we must
# have it for the configure script to succeed.
DEPENDS += "cmake-native"
SRC_URI += " \
file://rust-${PV}/0001-Target-add-default-target.json-path-libdir-rust-targ.patch \
file://rust-${PV}/0002-mk-for-stage0-use-RUSTFLAGS-to-override-target-libs-.patch \
file://rust-${PV}/0005-std-thread_local-workaround-for-NULL-__dso_handle.patch \
file://rust-${PV}/0007-Allow-overriding-crate_hash-with-C-crate_hash.patch \
file://rust-${PV}/0008-mk-platform.mk-pass-C-crate_hash-to-builds.patch \
"
DEPENDS += "rust-llvm (=${PV})"
# Otherwise we'll depend on what we provide
INHIBIT_DEFAULT_RUST_DEPS_class-native = "1"
# We don't need to depend on gcc-native because yocto assumes it exists
PROVIDES_class-native = "virtual/${TARGET_PREFIX}rust"
BBCLASSEXTEND = "native"