Compare commits
204 Commits
krogoth
...
common-rus
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3b783652cc | ||
|
|
a012a1027d | ||
|
|
8ef8b39681 | ||
|
|
646fecee8a | ||
|
|
e4d25b9808 | ||
|
|
1a3625364c | ||
|
|
ea97549161 | ||
|
|
d0dc19aa78 | ||
|
|
4a763a2301 | ||
|
|
5c7f51b6ad | ||
|
|
d8d77be129 | ||
|
|
dbf68d40b3 | ||
|
|
a754e6c5d6 | ||
|
|
837b63596d | ||
|
|
2668f6afd3 | ||
|
|
e5c2a4085f | ||
|
|
72aa4ef3ab | ||
|
|
0f950f5e33 | ||
|
|
10fb698a79 | ||
|
|
186ec59085 | ||
|
|
71895ec5a4 | ||
|
|
5cda04c7c2 | ||
|
|
5d1ada0c97 | ||
|
|
11aed43748 | ||
|
|
1cb2ad5543 | ||
|
|
0b5ea8beb0 | ||
|
|
412987892c | ||
|
|
afccedc43c | ||
|
|
150b1591d6 | ||
|
|
2c4a666b68 | ||
|
|
c5ff05d1e9 | ||
|
|
2f323e1e9e | ||
|
|
9487b089ea | ||
|
|
bcbe02f6ac | ||
|
|
2afc6ecef2 | ||
|
|
4ca5b781dc | ||
|
|
164bc5f20a | ||
|
|
03f492ab35 | ||
|
|
84710b341b | ||
|
|
4a88247046 | ||
|
|
0d03c206c3 | ||
|
|
9a077b21d0 | ||
|
|
0621067c56 | ||
|
|
723e24bd9d | ||
|
|
f2f17c58b0 | ||
|
|
68046d42b8 | ||
|
|
f4517aaba8 | ||
|
|
fa0aebc070 | ||
|
|
b3d1b589ee | ||
|
|
cb383b0d90 | ||
|
|
9952633163 | ||
|
|
d537c62b4e | ||
|
|
16d015a481 | ||
|
|
8b7d6201b6 | ||
|
|
e7c10de555 | ||
|
|
e357f4e5d5 | ||
|
|
9ecc36acb5 | ||
|
|
4110f1d92a | ||
|
|
496b75fa1f | ||
|
|
e4fdc0e8f7 | ||
|
|
bf01840f5b | ||
|
|
1b00814593 | ||
|
|
68d6bce609 | ||
|
|
969467c029 | ||
|
|
665213a13d | ||
|
|
4c9068bd09 | ||
|
|
3b9251e732 | ||
|
|
ea613e2ae2 | ||
|
|
e660179c55 | ||
|
|
318a4c6f25 | ||
|
|
c7fc7986c2 | ||
|
|
50828f8af2 | ||
|
|
adf3f10036 | ||
|
|
446d28d6e1 | ||
|
|
b15ba05ea8 | ||
|
|
f54025fed9 | ||
|
|
f317737fae | ||
|
|
e04d99bf38 | ||
|
|
6b060617cd | ||
|
|
99ec7396f6 | ||
|
|
f81fbebaeb | ||
|
|
5a9933dd46 | ||
|
|
badf251873 | ||
|
|
060e033df9 | ||
|
|
6d3f61e5ce | ||
|
|
bbf4f77f98 | ||
|
|
b7380307d0 | ||
|
|
8b471a1bdc | ||
|
|
b82e450b5a | ||
|
|
cef09a5551 | ||
|
|
6052c90ca8 | ||
|
|
8e6c6271fc | ||
|
|
6066f1d2df | ||
|
|
d3bdd55c03 | ||
|
|
6a0d148968 | ||
|
|
e1fa6d39ce | ||
|
|
de42179513 | ||
|
|
9b1b4db8b0 | ||
|
|
03d8fb472c | ||
|
|
b117a311ef | ||
|
|
55e9c18a37 | ||
|
|
7cfa3db4f6 | ||
|
|
63aa6db53a | ||
|
|
48e2a7db25 | ||
|
|
ab62d9cdbf | ||
|
|
22d72b3be6 | ||
|
|
575016d11d | ||
|
|
8203dce091 | ||
|
|
0639277e4c | ||
|
|
5a9c23fac4 | ||
|
|
69ae1df12e | ||
|
|
17cc34c9c8 | ||
|
|
a19993c804 | ||
|
|
03c0338cab | ||
|
|
52ea673a8f | ||
|
|
4c7cbf6a60 | ||
|
|
8f46fe3e97 | ||
|
|
c65375f14f | ||
|
|
f02df59eea | ||
|
|
141177fbf9 | ||
|
|
fa4f4f9c1a | ||
|
|
7f7156b664 | ||
|
|
af5491692e | ||
|
|
ab57e94e2c | ||
|
|
6965038dee | ||
|
|
e5230147f6 | ||
|
|
528a34206b | ||
|
|
434f7851f5 | ||
|
|
5b1b95772e | ||
|
|
81ea9f2d2c | ||
|
|
d4755fc065 | ||
|
|
533507b25b | ||
|
|
ad9f280e6c | ||
|
|
c60b799c11 | ||
|
|
463622c0c6 | ||
|
|
172a226259 | ||
|
|
c83864ce19 | ||
|
|
bd80824ddf | ||
|
|
b28674a452 | ||
|
|
9383b2d572 | ||
|
|
d231fcb708 | ||
|
|
7f80e6d68b | ||
|
|
a1cd215131 | ||
|
|
34941a25e9 | ||
|
|
9b0dc6b3af | ||
|
|
afe7e94a6e | ||
|
|
37813c4dff | ||
|
|
2fd83daa46 | ||
|
|
3bf7088579 | ||
|
|
d9c63d8557 | ||
|
|
a4fe235317 | ||
|
|
1ff41650d5 | ||
|
|
1b8883be12 | ||
|
|
e31d252eb0 | ||
|
|
0cccf8b25c | ||
|
|
d5bf43b9b3 | ||
|
|
9f1f8ab32f | ||
|
|
2cbf17309f | ||
|
|
758f8459ec | ||
|
|
398fecb48c | ||
|
|
c55fb403f8 | ||
|
|
06a138a4a4 | ||
|
|
3e0f03d12a | ||
|
|
e814ede9d9 | ||
|
|
bb41c50510 | ||
|
|
c29ada51f1 | ||
|
|
1db27bc4f7 | ||
|
|
4dcaaa8fc9 | ||
|
|
027b7aeeb0 | ||
|
|
8e28683458 | ||
|
|
394ad27929 | ||
|
|
1820907990 | ||
|
|
5a9614f91a | ||
|
|
f851e8f185 | ||
|
|
bc04c2ea4a | ||
|
|
64cdd4b714 | ||
|
|
502fc9b1d1 | ||
|
|
0adcc6e0bc | ||
|
|
efae1a8bd0 | ||
|
|
1eb86e935c | ||
|
|
f0e0b3b7e2 | ||
|
|
3276afb4ec | ||
|
|
a58ea82720 | ||
|
|
22c971c2fa | ||
|
|
5d2e062a84 | ||
|
|
97fcc5db56 | ||
|
|
2a21657363 | ||
|
|
d867f3d470 | ||
|
|
f43eadc581 | ||
|
|
bf4cdaf0a7 | ||
|
|
4ccca55f2f | ||
|
|
e6b757111a | ||
|
|
c19badf635 | ||
|
|
247bb57c84 | ||
|
|
abe20ca06f | ||
|
|
185e29e4e1 | ||
|
|
94aa1405e3 | ||
|
|
04bd03be1e | ||
|
|
84af8005f3 | ||
|
|
339cc787cc | ||
|
|
ac5d169623 | ||
|
|
c05b6b4c30 | ||
|
|
52c0f97ff6 | ||
|
|
85d411c81c |
7
Jenkinsfile
vendored
7
Jenkinsfile
vendored
@@ -1,4 +1,4 @@
|
||||
def targets = [ 'qemux86', 'qemux86-64', 'qemuarm', 'qemuarm64' ]
|
||||
def targets = [ 'qemux86', 'qemux86-64', 'qemuarm', 'qemuarm64', 'qemumips' ]
|
||||
|
||||
def machine_builds = [:]
|
||||
|
||||
@@ -15,7 +15,7 @@ for (int i = 0; i < targets.size(); i++) {
|
||||
sh "./scripts/setup-env.sh"
|
||||
}
|
||||
stage("fetch $machine") {
|
||||
sh "GIT_LOCAL_REF_DIR=/srv/git-cache/ ./scripts/fetch.sh morty"
|
||||
sh "GIT_LOCAL_REF_DIR=/srv/git-cache/ ./scripts/fetch.sh master"
|
||||
}
|
||||
stage("build $machine") {
|
||||
sh "MACHINE=${machine} ./scripts/build.sh"
|
||||
@@ -24,6 +24,9 @@ for (int i = 0; i < targets.size(); i++) {
|
||||
echo "Caught: ${e}"
|
||||
throw e
|
||||
} finally {
|
||||
stage("push build cache $machine") {
|
||||
sh "./scripts/publish-build-cache.sh master"
|
||||
}
|
||||
stage("cleanup $machine") {
|
||||
sh "./scripts/cleanup-env.sh"
|
||||
deleteDir()
|
||||
|
||||
39
README.md
39
README.md
@@ -5,17 +5,19 @@ This OpenEmbedded layer provides the rust compiler, tools for building packages
|
||||
|
||||
## What works:
|
||||
|
||||
- Building rust-native, rust-cross, rust-hello-world, cargo-native
|
||||
- Building `rust-native` and `cargo-native`
|
||||
- Building Rust based projects with Cargo for the TARGET
|
||||
- e.g. `rustfmt` which is used by the CI system
|
||||
- `-buildsdk` and `-crosssdk` packages
|
||||
|
||||
## What doesn't:
|
||||
|
||||
- Using anything but x86_64 as the build environment
|
||||
- Probably some of the untested things
|
||||
- rust (built for target) issue #81
|
||||
|
||||
## What's untested:
|
||||
|
||||
- rust (built for target)
|
||||
- cargo (built for target)
|
||||
|
||||
## Building a rust package
|
||||
|
||||
@@ -30,39 +32,24 @@ recipe for it. This allows bitbake to fetch all the necessary dependent
|
||||
crates, as well as a pegged version of the crates.io index, to ensure maximum
|
||||
reproducibility.
|
||||
|
||||
## Common issues when packaging things using cargo
|
||||
|
||||
You may run into errors similar to:
|
||||
|
||||
```
|
||||
| src/lib.rs:12:1: 12:35 error: can't find crate for `ffi`
|
||||
| src/lib.rs:12 extern crate "openssl-sys" as ffi;
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
```
|
||||
|
||||
Where a "-sys" crate (or other crate) is not found. These are typically caused
|
||||
by a crate's Cargo.toml including triplet-specific dependencies and then using
|
||||
the crate based on a feature (most often, `#[cfg(unix)]`). Until cargo and it's
|
||||
ecosystem get their act together, you'll need to supply patches to the
|
||||
misbehaving packages. See `recipies/cargo/cargo_*.bb` for an example of how to
|
||||
do this.
|
||||
NOTE: You will have to edit the generated recipe based on the comments
|
||||
contained within it
|
||||
|
||||
## TODO
|
||||
|
||||
- -crosssdk and -buildsdk packages
|
||||
- Upstream local rustc patches for libdir and bindir support
|
||||
|
||||
## Pitfalls
|
||||
|
||||
- TARGET_SYS _must_ be different from BUILD_SYS. This is due to the way configuration options are tracked for different targets.
|
||||
- TARGET_SYS _must_ be different from BUILD_SYS. This is due to the way Rust configuration options are tracked for different targets. This is the reason we use the Yocto triples instead of the native Rust triples. See rust-lang/cargo#3349.
|
||||
|
||||
## Dependencies
|
||||
|
||||
On the host:
|
||||
unknown
|
||||
- Any `-sys` packages your project might need must have RDEPENDs for
|
||||
the native library.
|
||||
|
||||
On the target:
|
||||
unknown
|
||||
- Any `-sys` packages your project might need must have RDEPENDs for
|
||||
the native library.
|
||||
|
||||
## Maintainer(s) & Patch policy
|
||||
|
||||
@@ -74,6 +61,8 @@ All new patches against rust, rust-llvm, and cargo must have referenced
|
||||
upstream issues or PRs opened or an explanation why the patch cannot be
|
||||
upstreamed. This cooresponds to the OpenEmbedded policy for other meta layers.
|
||||
|
||||
More info can be seen on the wiki.
|
||||
|
||||
## Copyright
|
||||
|
||||
MIT OR Apache-2.0 - Same as rust
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
# add crate fetch support
|
||||
inherit crate-fetch
|
||||
inherit rust-common
|
||||
##
|
||||
## Purpose:
|
||||
## This class is used by any recipes that are built using
|
||||
## Cargo.
|
||||
|
||||
inherit cargo_common
|
||||
|
||||
# the binary we will use
|
||||
CARGO = "cargo"
|
||||
|
||||
# Where we download our registry and dependencies to
|
||||
export CARGO_HOME = "${WORKDIR}/cargo_home"
|
||||
|
||||
# We need cargo to compile for the target
|
||||
BASEDEPENDS_append = " cargo-native"
|
||||
|
||||
@@ -22,71 +22,24 @@ B = "${S}"
|
||||
# where the issue occured
|
||||
export RUST_BACKTRACE = "1"
|
||||
|
||||
# The pkg-config-rs library used by cargo build scripts disables itself when
|
||||
# cross compiling unless this is defined. We set up pkg-config appropriately
|
||||
# for cross compilation, so tell it we know better than it.
|
||||
export PKG_CONFIG_ALLOW_CROSS = "1"
|
||||
|
||||
cargo_do_configure () {
|
||||
mkdir -p ${CARGO_HOME}
|
||||
echo "paths = [" > ${CARGO_HOME}/config
|
||||
|
||||
for p in ${EXTRA_OECARGO_PATHS}; do
|
||||
printf "\"%s\"\n" "$p"
|
||||
done | sed -e 's/$/,/' >> ${CARGO_HOME}/config
|
||||
echo "]" >> ${CARGO_HOME}/config
|
||||
|
||||
# Point cargo at our local mirror of the registry
|
||||
cat <<- EOF >> ${CARGO_HOME}/config
|
||||
[source.bitbake]
|
||||
directory = "${CARGO_HOME}/bitbake"
|
||||
|
||||
[source.crates-io]
|
||||
replace-with = "bitbake"
|
||||
local-registry = "/nonexistant"
|
||||
EOF
|
||||
|
||||
echo "[target.${HOST_SYS}]" >> ${CARGO_HOME}/config
|
||||
echo "linker = '${RUST_TARGET_CCLD}'" >> ${CARGO_HOME}/config
|
||||
if [ "${HOST_SYS}" != "${BUILD_SYS}" ]; then
|
||||
echo "[target.${BUILD_SYS}]" >> ${CARGO_HOME}/config
|
||||
echo "linker = '${RUST_BUILD_CCLD}'" >> ${CARGO_HOME}/config
|
||||
fi
|
||||
}
|
||||
|
||||
RUSTFLAGS ??= ""
|
||||
CARGO_BUILD_FLAGS = "-v --target ${HOST_SYS} --release"
|
||||
BUILD_MODE = "${@['--release', ''][d.getVar('DEBUG_BUILD') == '1']}"
|
||||
CARGO_BUILD_FLAGS = "-v --target ${HOST_SYS} ${BUILD_MODE}"
|
||||
|
||||
# This is based on the content of CARGO_BUILD_FLAGS and generally will need to
|
||||
# change if CARGO_BUILD_FLAGS changes.
|
||||
CARGO_TARGET_SUBDIR="${HOST_SYS}/release"
|
||||
BUILD_DIR = "${@['release', 'debug'][d.getVar('DEBUG_BUILD') == '1']}"
|
||||
CARGO_TARGET_SUBDIR="${HOST_SYS}/${BUILD_DIR}"
|
||||
oe_cargo_build () {
|
||||
export RUSTFLAGS="${RUSTFLAGS}"
|
||||
bbnote "cargo = $(which cargo)"
|
||||
bbnote "rustc = $(which rustc)"
|
||||
export RUST_TARGET_PATH="${RUST_TARGET_PATH}"
|
||||
bbnote "cargo = $(which ${CARGO})"
|
||||
bbnote "rustc = $(which ${RUSTC})"
|
||||
bbnote "${CARGO} build ${CARGO_BUILD_FLAGS} $@"
|
||||
"${CARGO}" build ${CARGO_BUILD_FLAGS} "$@"
|
||||
}
|
||||
|
||||
oe_cargo_fix_env () {
|
||||
export CC="${RUST_TARGET_CC}"
|
||||
export CFLAGS="${CFLAGS}"
|
||||
export AR="${AR}"
|
||||
export TARGET_CC="${RUST_TARGET_CC}"
|
||||
export TARGET_CFLAGS="${CFLAGS}"
|
||||
export TARGET_AR="${AR}"
|
||||
export HOST_CC="${RUST_BUILD_CC}"
|
||||
export HOST_CFLAGS="${BUILD_CFLAGS}"
|
||||
export HOST_AR="${BUILD_AR}"
|
||||
}
|
||||
|
||||
EXTRA_OECARGO_PATHS ??= ""
|
||||
|
||||
cargo_do_compile () {
|
||||
# prevent cargo from trying to fetch down new data
|
||||
mkdir -p "${WORKDIR}/cargo_home/registry/index/github.com-1ecc6299db9ec823"
|
||||
touch "${WORKDIR}/cargo_home/registry/index/github.com-1ecc6299db9ec823/.cargo-index-lock"
|
||||
|
||||
oe_cargo_fix_env
|
||||
oe_cargo_build
|
||||
}
|
||||
@@ -94,19 +47,24 @@ cargo_do_compile () {
|
||||
cargo_do_install () {
|
||||
local have_installed=false
|
||||
for tgt in "${B}/target/${CARGO_TARGET_SUBDIR}/"*; do
|
||||
if [[ $tgt == *.so || $tgt == *.rlib ]]; then
|
||||
case $tgt in
|
||||
*.so|*.rlib)
|
||||
install -d "${D}${rustlibdir}"
|
||||
install -m755 "$tgt" "${D}${rustlibdir}"
|
||||
have_installed=true
|
||||
elif [ -f "$tgt" ] && [ -x "$tgt" ]; then
|
||||
install -d "${D}${bindir}"
|
||||
install -m755 "$tgt" "${D}${bindir}"
|
||||
have_installed=true
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
if [ -f "$tgt" ] && [ -x "$tgt" ]; then
|
||||
install -d "${D}${bindir}"
|
||||
install -m755 "$tgt" "${D}${bindir}"
|
||||
have_installed=true
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
done
|
||||
if ! $have_installed; then
|
||||
die "Did not find anything to install"
|
||||
fi
|
||||
}
|
||||
|
||||
EXPORT_FUNCTIONS do_configure do_compile do_install
|
||||
EXPORT_FUNCTIONS do_compile do_install
|
||||
|
||||
98
classes/cargo_common.bbclass
Normal file
98
classes/cargo_common.bbclass
Normal file
@@ -0,0 +1,98 @@
|
||||
##
|
||||
## Purpose:
|
||||
## This class is to support building with cargo. It
|
||||
## must be different than cargo.bbclass because Rust
|
||||
## now builds with Cargo but cannot use cargo.bbclass
|
||||
## due to dependencies and assumptions in cargo.bbclass
|
||||
## that Rust & Cargo are already installed. So this
|
||||
## is used by cargo.bbclass and Rust
|
||||
##
|
||||
|
||||
# add crate fetch support
|
||||
inherit crate-fetch
|
||||
inherit rust-common
|
||||
|
||||
# Where we download our registry and dependencies to
|
||||
export CARGO_HOME = "${WORKDIR}/cargo_home"
|
||||
|
||||
# The pkg-config-rs library used by cargo build scripts disables itself when
|
||||
# cross compiling unless this is defined. We set up pkg-config appropriately
|
||||
# for cross compilation, so tell it we know better than it.
|
||||
export PKG_CONFIG_ALLOW_CROSS = "1"
|
||||
|
||||
# Don't instruct cargo to use crates downloaded by bitbake. Some rust packages,
|
||||
# for example the rust compiler itself, come with their own vendored sources.
|
||||
# Specifying two [source.crates-io] will not work.
|
||||
CARGO_DISABLE_BITBAKE_VENDORING ?= "0"
|
||||
|
||||
# Used by libstd-rs to point to the vendor dir included in rustc src
|
||||
CARGO_VENDORING_DIRECTORY ?= "${CARGO_HOME}/bitbake"
|
||||
|
||||
cargo_common_do_configure () {
|
||||
mkdir -p ${CARGO_HOME}/bitbake
|
||||
echo "paths = [" > ${CARGO_HOME}/config
|
||||
|
||||
for p in ${EXTRA_OECARGO_PATHS}; do
|
||||
printf "\"%s\"\n" "$p"
|
||||
done | sed -e 's/$/,/' >> ${CARGO_HOME}/config
|
||||
echo "]" >> ${CARGO_HOME}/config
|
||||
|
||||
# Point cargo at our local mirror of the registry
|
||||
cat <<- EOF >> ${CARGO_HOME}/config
|
||||
[source.bitbake]
|
||||
directory = "${CARGO_VENDORING_DIRECTORY}"
|
||||
EOF
|
||||
|
||||
if [ -z "${EXTERNALSRC}" ] && [ ${CARGO_DISABLE_BITBAKE_VENDORING} = "0" ]; then
|
||||
cat <<- EOF >> ${CARGO_HOME}/config
|
||||
[source.crates-io]
|
||||
replace-with = "bitbake"
|
||||
local-registry = "/nonexistant"
|
||||
EOF
|
||||
fi
|
||||
|
||||
# Disable multiplexing in order to keep cargo from using http2, which we
|
||||
# can't currently enable because of dependency loops
|
||||
cat <<- EOF >> ${CARGO_HOME}/config
|
||||
[http]
|
||||
multiplexing = false
|
||||
EOF
|
||||
|
||||
# When a sstate-cache is used sometimes the certificates are not available
|
||||
# at the compile time path anymore. Set it explicitly instead.
|
||||
echo "cainfo = \"${STAGING_ETCDIR_NATIVE}/ssl/certs/ca-certificates.crt\"" \
|
||||
>> ${CARGO_HOME}/config
|
||||
|
||||
if [ -n "${http_proxy}" ]; then
|
||||
echo "proxy = \"${http_proxy}\"" >> ${CARGO_HOME}/config
|
||||
fi
|
||||
|
||||
echo "[target.${HOST_SYS}]" >> ${CARGO_HOME}/config
|
||||
echo "linker = '${RUST_TARGET_CCLD}'" >> ${CARGO_HOME}/config
|
||||
if [ "${HOST_SYS}" != "${BUILD_SYS}" ]; then
|
||||
echo "[target.${BUILD_SYS}]" >> ${CARGO_HOME}/config
|
||||
echo "linker = '${RUST_BUILD_CCLD}'" >> ${CARGO_HOME}/config
|
||||
fi
|
||||
}
|
||||
|
||||
oe_cargo_fix_env () {
|
||||
export CC="${RUST_TARGET_CC}"
|
||||
export CXX="${RUST_TARGET_CXX}"
|
||||
export CFLAGS="${CFLAGS}"
|
||||
export CXXFLAGS="${CXXFLAGS}"
|
||||
export AR="${AR}"
|
||||
export TARGET_CC="${RUST_TARGET_CC}"
|
||||
export TARGET_CXX="${RUST_TARGET_CXX}"
|
||||
export TARGET_CFLAGS="${CFLAGS}"
|
||||
export TARGET_CXXFLAGS="${CXXFLAGS}"
|
||||
export TARGET_AR="${AR}"
|
||||
export HOST_CC="${RUST_BUILD_CC}"
|
||||
export HOST_CXX="${RUST_BUILD_CXX}"
|
||||
export HOST_CFLAGS="${BUILD_CFLAGS}"
|
||||
export HOST_CXXFLAGS="${BUILD_CXXFLAGS}"
|
||||
export HOST_AR="${BUILD_AR}"
|
||||
}
|
||||
|
||||
EXTRA_OECARGO_PATHS ??= ""
|
||||
|
||||
EXPORT_FUNCTIONS do_configure
|
||||
@@ -1,10 +1,8 @@
|
||||
inherit rust
|
||||
|
||||
DEPENDS_append = " patchelf-native"
|
||||
RDEPENDS_${PN} += "${RUSTLIB_DEP}"
|
||||
RDEPENDS_${PN}_append_class-target += "${RUSTLIB_DEP}"
|
||||
|
||||
RUSTFLAGS += "-C crate_hash=${BB_TASKHASH}"
|
||||
RUSTC_ARCHFLAGS += "-C opt-level=3 -g -L ${STAGING_DIR_HOST}/${rustlibdir}"
|
||||
RUSTC_ARCHFLAGS += "-C opt-level=3 -g -L ${STAGING_DIR_HOST}/${rustlibdir} -C linker=${RUST_TARGET_CCLD}"
|
||||
EXTRA_OEMAKE += 'RUSTC_ARCHFLAGS="${RUSTC_ARCHFLAGS}"'
|
||||
|
||||
# Some libraries alias with the standard library but libstd is configured to
|
||||
@@ -17,9 +15,9 @@ OVERLAP_LIBS = "\
|
||||
rand \
|
||||
"
|
||||
def get_overlap_deps(d):
|
||||
deps = d.getVar("DEPENDS", True).split()
|
||||
deps = d.getVar("DEPENDS").split()
|
||||
overlap_deps = []
|
||||
for o in d.getVar("OVERLAP_LIBS", True).split():
|
||||
for o in d.getVar("OVERLAP_LIBS").split():
|
||||
l = len([o for dep in deps if (o + '-rs' in dep)])
|
||||
if l > 0:
|
||||
overlap_deps.append(o)
|
||||
@@ -31,13 +29,51 @@ OVERLAP_DEPS = "${@get_overlap_deps(d)}"
|
||||
RUSTC_PREFER_DYNAMIC = "-C prefer-dynamic"
|
||||
RUSTC_FLAGS += "${RUSTC_PREFER_DYNAMIC}"
|
||||
|
||||
CRATE_NAME ?= "${@d.getVar('BPN', True).replace('-rs', '').replace('-', '_')}"
|
||||
CRATE_NAME ?= "${@d.getVar('BPN').replace('-rs', '').replace('-', '_')}"
|
||||
BINNAME ?= "${BPN}"
|
||||
LIBNAME ?= "lib${CRATE_NAME}-rs"
|
||||
CRATE_TYPE ?= "dylib"
|
||||
BIN_SRC ?= "${S}/src/main.rs"
|
||||
LIB_SRC ?= "${S}/src/lib.rs"
|
||||
|
||||
rustbindest ?= "${bindir}"
|
||||
rustlibdest ?= "${rustlibdir}"
|
||||
RUST_RPATH_ABS ?= "${rustlibdir}:${rustlib}"
|
||||
|
||||
def relative_rpaths(paths, base):
|
||||
relpaths = set()
|
||||
for p in paths.split(':'):
|
||||
if p == base:
|
||||
relpaths.add('$ORIGIN')
|
||||
continue
|
||||
relpaths.add(os.path.join('$ORIGIN', os.path.relpath(p, base)))
|
||||
return '-rpath=' + ':'.join(relpaths) if len(relpaths) else ''
|
||||
|
||||
RUST_LIB_RPATH_FLAGS ?= "${@relative_rpaths(d.getVar('RUST_RPATH_ABS', True), d.getVar('rustlibdest', True))}"
|
||||
RUST_BIN_RPATH_FLAGS ?= "${@relative_rpaths(d.getVar('RUST_RPATH_ABS', True), d.getVar('rustbindest', True))}"
|
||||
|
||||
def libfilename(d):
|
||||
if d.getVar('CRATE_TYPE', True) == 'dylib':
|
||||
return d.getVar('LIBNAME', True) + '.so'
|
||||
else:
|
||||
return d.getVar('LIBNAME', True) + '.rlib'
|
||||
|
||||
def link_args(d, bin):
|
||||
linkargs = []
|
||||
if bin:
|
||||
rpaths = d.getVar('RUST_BIN_RPATH_FLAGS', False)
|
||||
else:
|
||||
rpaths = d.getVar('RUST_LIB_RPATH_FLAGS', False)
|
||||
if d.getVar('CRATE_TYPE', True) == 'dylib':
|
||||
linkargs.append('-soname')
|
||||
linkargs.append(libfilename(d))
|
||||
if len(rpaths):
|
||||
linkargs.append(rpaths)
|
||||
if len(linkargs):
|
||||
return ' '.join(['-Wl,' + arg for arg in linkargs])
|
||||
else:
|
||||
return ''
|
||||
|
||||
get_overlap_externs () {
|
||||
externs=
|
||||
for dep in ${OVERLAP_DEPS}; do
|
||||
@@ -57,22 +93,22 @@ do_configure () {
|
||||
}
|
||||
|
||||
oe_runrustc () {
|
||||
export RUST_TARGET_PATH="${RUST_TARGET_PATH}"
|
||||
bbnote ${RUSTC} ${RUSTC_ARCHFLAGS} ${RUSTC_FLAGS} "$@"
|
||||
"${RUSTC}" ${RUSTC_ARCHFLAGS} ${RUSTC_FLAGS} "$@"
|
||||
}
|
||||
|
||||
oe_compile_rust_lib () {
|
||||
[ "${CRATE_TYPE}" == "dylib" ] && suffix=so || suffix=rlib
|
||||
rm -rf ${LIBNAME}.{rlib,so}
|
||||
local -a link_args
|
||||
if [ "${CRATE_TYPE}" == "dylib" ]; then
|
||||
link_args[0]="-C"
|
||||
link_args[1]="link-args=-Wl,-soname -Wl,${LIBNAME}.$suffix"
|
||||
if [ -n '${@link_args(d, False)}' ]; then
|
||||
link_args[0]='-C'
|
||||
link_args[1]='link-args=${@link_args(d, False)}'
|
||||
fi
|
||||
oe_runrustc $(get_overlap_externs) \
|
||||
"${link_args[@]}" \
|
||||
${LIB_SRC} \
|
||||
-o ${LIBNAME}.$suffix \
|
||||
-o ${@libfilename(d)} \
|
||||
--crate-name=${CRATE_NAME} --crate-type=${CRATE_TYPE} \
|
||||
"$@"
|
||||
}
|
||||
@@ -80,20 +116,27 @@ oe_compile_rust_lib[vardeps] += "get_overlap_externs"
|
||||
|
||||
oe_compile_rust_bin () {
|
||||
rm -rf ${BINNAME}
|
||||
oe_runrustc $(get_overlap_externs) ${BIN_SRC} -o ${BINNAME} "$@"
|
||||
local -a link_args
|
||||
if [ -n '${@link_args(d, True)}' ]; then
|
||||
link_args[0]='-C'
|
||||
link_args[1]='link-args=${@link_args(d, True)}'
|
||||
fi
|
||||
oe_runrustc $(get_overlap_externs) \
|
||||
"${link_args[@]}" \
|
||||
${BIN_SRC} -o ${BINNAME} "$@"
|
||||
}
|
||||
oe_compile_rust_bin[vardeps] += "get_overlap_externs"
|
||||
|
||||
oe_install_rust_lib () {
|
||||
for lib in $(ls ${LIBNAME}.{so,rlib} 2>/dev/null); do
|
||||
echo Installing $lib
|
||||
install -D -m 755 $lib ${D}/${rustlibdir}/$lib
|
||||
install -D -m 755 $lib ${D}/${rustlibdest}/$lib
|
||||
done
|
||||
}
|
||||
|
||||
oe_install_rust_bin () {
|
||||
echo Installing ${BINNAME}
|
||||
install -D -m 755 ${BINNAME} ${D}/${bindir}/${BINNAME}
|
||||
install -D -m 755 ${BINNAME} ${D}/${rustbindest}/${BINNAME}
|
||||
}
|
||||
|
||||
do_rust_bin_fixups() {
|
||||
@@ -101,13 +144,6 @@ do_rust_bin_fixups() {
|
||||
echo "Strip rust note: $f"
|
||||
${OBJCOPY} -R .note.rustc $f $f
|
||||
done
|
||||
|
||||
for f in `find ${PKGD}`; do
|
||||
file "$f" | grep -q ELF || continue
|
||||
readelf -d "$f" | grep RUNPATH | grep -q rustlib || continue
|
||||
echo "Set rpath:" "$f"
|
||||
patchelf --set-rpath '$ORIGIN:'${rustlibdir}:${rustlib} "$f"
|
||||
done
|
||||
}
|
||||
PACKAGE_PREPROCESS_FUNCS += "do_rust_bin_fixups"
|
||||
|
||||
|
||||
@@ -1,15 +1,37 @@
|
||||
# Common variables used by all Rust builds
|
||||
export rustlibdir = "${libdir}/rust"
|
||||
FILES_${PN} += "${rustlibdir}/*.so"
|
||||
FILES_${PN}-dev += "${rustlibdir}/*.rlib"
|
||||
FILES_${PN}-dev += "${rustlibdir}/*.rlib ${rustlibdir}/*.rmeta"
|
||||
FILES_${PN}-dbg += "${rustlibdir}/.debug"
|
||||
|
||||
RUSTLIB = "-L ${STAGING_LIBDIR}/rust"
|
||||
RUSTFLAGS += "-C rpath ${RUSTLIB}"
|
||||
RUST_DEBUG_REMAP = "--remap-path-prefix=${WORKDIR}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}"
|
||||
RUSTFLAGS += "${RUSTLIB} ${RUST_DEBUG_REMAP}"
|
||||
RUSTLIB_DEP ?= "libstd-rs"
|
||||
RUST_TARGET_PATH = "${STAGING_LIBDIR_NATIVE}/rustlib"
|
||||
RUST_PANIC_STRATEGY ?= "unwind"
|
||||
|
||||
# Native builds are not effected by TCLIBC. Without this, rust-native
|
||||
# thinks it's "target" (i.e. x86_64-linux) is a musl target.
|
||||
RUST_LIBC = "${TCLIBC}"
|
||||
RUST_LIBC_class-native = "glibc"
|
||||
|
||||
def determine_libc(d, thing):
|
||||
'''Determine which libc something should target'''
|
||||
|
||||
# BUILD is never musl, TARGET may be musl or glibc,
|
||||
# HOST could be musl, but only if a compiler is built to be run on
|
||||
# target in which case HOST_SYS != BUILD_SYS.
|
||||
if thing == 'TARGET':
|
||||
libc = d.getVar('RUST_LIBC')
|
||||
elif thing == 'BUILD' and (d.getVar('HOST_SYS') != d.getVar('BUILD_SYS')):
|
||||
libc = d.getVar('RUST_LIBC')
|
||||
else:
|
||||
libc = d.getVar('RUST_LIBC_class-native')
|
||||
|
||||
return libc
|
||||
|
||||
# Responsible for taking Yocto triples and converting it to Rust triples
|
||||
|
||||
def rust_base_triple(d, thing):
|
||||
'''
|
||||
Mangle bitbake's *_SYS into something that rust might support (see
|
||||
@@ -18,11 +40,11 @@ def rust_base_triple(d, thing):
|
||||
Note that os is assumed to be some linux form
|
||||
'''
|
||||
|
||||
arch = d.getVar('{}_ARCH'.format(thing), True)
|
||||
arch = d.getVar('{}_ARCH'.format(thing))
|
||||
# All the Yocto targets are Linux and are 'unknown'
|
||||
vendor = "-unknown"
|
||||
os = d.getVar('{}_OS'.format(thing), True)
|
||||
libc = d.getVar('TCLIBC', True)
|
||||
os = d.getVar('{}_OS'.format(thing))
|
||||
libc = determine_libc(d, thing)
|
||||
|
||||
# Prefix with a dash and convert glibc -> gnu
|
||||
if libc == "glibc":
|
||||
@@ -74,9 +96,11 @@ RUST_TARGET_SYS = "${@rust_base_triple(d, 'TARGET')}"
|
||||
# use those commands based on the prefix.
|
||||
WRAPPER_DIR = "${WORKDIR}/wrapper"
|
||||
RUST_BUILD_CC = "${WRAPPER_DIR}/build-rust-cc"
|
||||
RUST_BUILD_CXX = "${WRAPPER_DIR}/build-rust-cxx"
|
||||
RUST_BUILD_CCLD = "${WRAPPER_DIR}/build-rust-ccld"
|
||||
RUST_BUILD_AR = "${WRAPPER_DIR}/build-rust-ar"
|
||||
RUST_TARGET_CC = "${WRAPPER_DIR}/target-rust-cc"
|
||||
RUST_TARGET_CXX = "${WRAPPER_DIR}/target-rust-cxx"
|
||||
RUST_TARGET_CCLD = "${WRAPPER_DIR}/target-rust-ccld"
|
||||
RUST_TARGET_AR = "${WRAPPER_DIR}/target-rust-ar"
|
||||
|
||||
@@ -86,7 +110,7 @@ create_wrapper () {
|
||||
|
||||
cat <<- EOF > "${file}"
|
||||
#!/bin/sh
|
||||
$@ "\$@"
|
||||
exec $@ "\$@"
|
||||
EOF
|
||||
chmod +x "${file}"
|
||||
}
|
||||
@@ -97,15 +121,19 @@ create_wrapper () {
|
||||
do_rust_create_wrappers () {
|
||||
mkdir -p "${WRAPPER_DIR}"
|
||||
|
||||
# Yocto Build / Rust Host compiler
|
||||
# Yocto Build / Rust Host C compiler
|
||||
create_wrapper "${RUST_BUILD_CC}" "${BUILD_CC}"
|
||||
# Yocto Build / Rust Host C++ compiler
|
||||
create_wrapper "${RUST_BUILD_CXX}" "${BUILD_CXX}"
|
||||
# Yocto Build / Rust Host linker
|
||||
create_wrapper "${RUST_BUILD_CCLD}" "${BUILD_CCLD}" "${BUILD_LDFLAGS}"
|
||||
# Yocto Build / Rust Host archiver
|
||||
create_wrapper "${RUST_BUILD_AR}" "${BUILD_AR}"
|
||||
|
||||
# Yocto Target / Rust Target compiler
|
||||
# Yocto Target / Rust Target C compiler
|
||||
create_wrapper "${RUST_TARGET_CC}" "${CC}"
|
||||
# Yocto Target / Rust Target C++ compiler
|
||||
create_wrapper "${RUST_TARGET_CXX}" "${CXX}"
|
||||
# Yocto Target / Rust Target linker
|
||||
create_wrapper "${RUST_TARGET_CCLD}" "${CCLD}" "${LDFLAGS}"
|
||||
# Yocto Target / Rust Target archiver
|
||||
|
||||
@@ -8,8 +8,8 @@ def rust_base_dep(d):
|
||||
# Taken from meta/classes/base.bbclass `base_dep_prepend` and modified to
|
||||
# use rust instead of gcc
|
||||
deps = ""
|
||||
if not d.getVar('INHIBIT_DEFAULT_RUST_DEPS', True):
|
||||
if (d.getVar('HOST_SYS', True) != d.getVar('BUILD_SYS', True)):
|
||||
if not d.getVar('INHIBIT_DEFAULT_RUST_DEPS'):
|
||||
if (d.getVar('HOST_SYS') != d.getVar('BUILD_SYS')):
|
||||
deps += " virtual/${TARGET_PREFIX}rust ${RUSTLIB_DEP}"
|
||||
else:
|
||||
deps += " rust-native"
|
||||
@@ -42,3 +42,4 @@ rustlib_suffix="${TUNE_ARCH}${TARGET_VENDOR}-${TARGET_OS}/rustlib/${HOST_SYS}/li
|
||||
rustlib_src="${prefix}/lib/${rustlib_suffix}"
|
||||
# Host sysroot standard library path
|
||||
rustlib="${libdir}/${rustlib_suffix}"
|
||||
rustlib_class-native="${libdir}/rustlib/${BUILD_SYS}/lib"
|
||||
|
||||
@@ -8,12 +8,11 @@ BBFILES ?= ""
|
||||
BBLAYERS ?= " \
|
||||
##OEROOT##/meta-rust \
|
||||
##OEROOT##/meta \
|
||||
##OEROOT##/meta-yocto \
|
||||
##OEROOT##/meta-poky \
|
||||
##OEROOT##/meta-yocto-bsp \
|
||||
##OEROOT##/meta-openembedded/meta-oe \
|
||||
##OEROOT##/meta-openembedded/meta-networking \
|
||||
##OEROOT##/meta-openembedded/meta-python \
|
||||
##OEROOT##/meta-openembedded/meta-ruby \
|
||||
"
|
||||
BBLAYERS_NON_REMOVABLE ?= " \
|
||||
##OEROOT##/meta \
|
||||
|
||||
@@ -8,5 +8,8 @@ BBFILE_COLLECTIONS += "rust-layer"
|
||||
BBFILE_PATTERN_rust-layer := "^${LAYERDIR}/"
|
||||
BBFILE_PRIORITY_rust-layer = "7"
|
||||
|
||||
LAYERDEPENDS_rust-layer = "core openembedded-layer"
|
||||
LAYERSERIES_COMPAT_rust-layer = "rocko sumo thud warrior zeus dunfell"
|
||||
|
||||
# Override security flags
|
||||
require conf/distro/include/rust_security_flags.inc
|
||||
|
||||
@@ -220,7 +220,7 @@ BB_DISKMON_DIRS = "\
|
||||
#file://.* http://someserver.tld/share/sstate/PATH;downloadfilename=PATH \n \
|
||||
#file://.* file:///some/local/dir/sstate/PATH"
|
||||
|
||||
SSTATE_MIRRORS ?= "file://.* http://build-cache.asterius.io/sstate/PATH;downloadfilename=PATH \n"
|
||||
SSTATE_MIRRORS ?= "file://.* http://build-cache.asterius.io/master/sstate-cache/PATH;downloadfilename=PATH \n"
|
||||
|
||||
SOURCE_MIRROR_URL ?= "http://build-cache.asterius.io/downloads/"
|
||||
INHERIT += "own-mirrors rm_work"
|
||||
|
||||
114
lib/crate.py
114
lib/crate.py
@@ -35,21 +35,6 @@ class Crate(Wget):
|
||||
|
||||
"""Class to fetch crates via wget"""
|
||||
|
||||
def _cargo_path(self, rootdir, component):
|
||||
# TODO: make this less brittle
|
||||
# This can go away entirely once we can build a cargo that supports source-replacement
|
||||
repo = "github.com-1ecc6299db9ec823"
|
||||
return os.path.join(rootdir, "cargo_home", "registry", component, repo)
|
||||
|
||||
def _cargo_src_path(self, rootdir):
|
||||
return self._cargo_path(rootdir, "src")
|
||||
|
||||
def _cargo_index_path(self, rootdir):
|
||||
return self._cargo_path(rootdir, "index")
|
||||
|
||||
def _cargo_cache_path(self, rootdir):
|
||||
return self._cargo_path(rootdir, "cache")
|
||||
|
||||
def _cargo_bitbake_path(self, rootdir):
|
||||
return os.path.join(rootdir, "cargo_home", "bitbake")
|
||||
|
||||
@@ -57,7 +42,7 @@ class Crate(Wget):
|
||||
"""
|
||||
Check to see if a given url is for this fetcher
|
||||
"""
|
||||
return ud.type in ['crate', 'crate-index']
|
||||
return ud.type in ['crate']
|
||||
|
||||
def recommends_checksum(self, urldata):
|
||||
return False
|
||||
@@ -69,8 +54,6 @@ class Crate(Wget):
|
||||
|
||||
if ud.type == 'crate':
|
||||
self._crate_urldata_init(ud, d)
|
||||
elif ud.type == 'crate-index':
|
||||
self._index_urldata_init(ud, d)
|
||||
|
||||
super(Crate, self).urldata_init(ud, d)
|
||||
|
||||
@@ -102,71 +85,15 @@ class Crate(Wget):
|
||||
|
||||
logger.debug(2, "Fetching %s to %s" % (ud.url, ud.parm['downloadfilename']))
|
||||
|
||||
def _index_urldata_init(self, ud, d):
|
||||
"""
|
||||
Sets up the download for the cargo index
|
||||
"""
|
||||
|
||||
# URL syntax is: crate-index://REV
|
||||
# break the URL apart by /
|
||||
parts = ud.url.split('/')
|
||||
if len(parts) != 4:
|
||||
raise bb.fetch2.ParameterError("Invalid URL: Must be crate-index://HOST/REV", ud.url)
|
||||
|
||||
# last field is the rev
|
||||
rev = parts[3]
|
||||
host = parts[2]
|
||||
|
||||
if host == 'crates.io':
|
||||
host = 'github.com/rust-lang/crates.io-index'
|
||||
|
||||
ud.url = "https://%s/archive/%s.tar.gz" % (host, rev)
|
||||
ud.parm['downloadfilename'] = 'cargo-index-%s.tar.gz' % rev
|
||||
ud.parm['name'] = "index"
|
||||
|
||||
logger.debug(2, "Fetching crate index %s" % ud.url)
|
||||
|
||||
def unpack(self, ud, rootdir, d):
|
||||
"""
|
||||
Uses the crate to build the necessary paths for cargo to utilize it
|
||||
"""
|
||||
if ud.type == 'crate-index':
|
||||
return self._index_unpack(ud, rootdir, d)
|
||||
elif ud.type == 'crate':
|
||||
if ud.type == 'crate':
|
||||
return self._crate_unpack(ud, rootdir, d)
|
||||
else:
|
||||
super(Crate, self).unpack(ud, rootdir, d)
|
||||
|
||||
def _index_unpack(self, ud, rootdir, d):
|
||||
"""
|
||||
Unpacks the index
|
||||
"""
|
||||
thefile = ud.localpath
|
||||
|
||||
cargo_index = self._cargo_index_path(rootdir)
|
||||
|
||||
cmd = "tar -xz --no-same-owner --strip-components 1 -f %s -C %s" % (thefile, cargo_index)
|
||||
|
||||
# change to the rootdir to unpack but save the old working dir
|
||||
save_cwd = os.getcwd()
|
||||
os.chdir(rootdir)
|
||||
|
||||
# ensure we've got these paths made
|
||||
bb.utils.mkdirhier(cargo_index)
|
||||
|
||||
# path it
|
||||
path = d.getVar('PATH', True)
|
||||
if path:
|
||||
cmd = "PATH=\"%s\" %s" % (path, cmd)
|
||||
bb.note("Unpacking %s to %s/" % (thefile, cargo_index))
|
||||
|
||||
ret = subprocess.call(cmd, preexec_fn=subprocess_setup, shell=True)
|
||||
|
||||
os.chdir(save_cwd)
|
||||
|
||||
if ret != 0:
|
||||
raise UnpackError("Unpack command %s failed with return value %s" % (cmd, ret), ud.url)
|
||||
|
||||
def _crate_unpack(self, ud, rootdir, d):
|
||||
"""
|
||||
Unpacks a crate
|
||||
@@ -180,12 +107,10 @@ class Crate(Wget):
|
||||
save_cwd = os.getcwd()
|
||||
os.chdir(rootdir)
|
||||
|
||||
pn = d.getVar('BPN', True)
|
||||
pn = d.getVar('BPN')
|
||||
if pn == ud.parm.get('name'):
|
||||
cmd = "tar -xz --no-same-owner -f %s" % thefile
|
||||
else:
|
||||
self._crate_unpack_old_layout(ud, rootdir, d)
|
||||
|
||||
cargo_bitbake = self._cargo_bitbake_path(rootdir)
|
||||
|
||||
cmd = "tar -xz --no-same-owner -f %s -C %s" % (thefile, cargo_bitbake)
|
||||
@@ -202,7 +127,7 @@ class Crate(Wget):
|
||||
metadata['package'] = tarhash
|
||||
|
||||
# path it
|
||||
path = d.getVar('PATH', True)
|
||||
path = d.getVar('PATH')
|
||||
if path:
|
||||
cmd = "PATH=\"%s\" %s" % (path, cmd)
|
||||
bb.note("Unpacking %s to %s/" % (thefile, os.getcwd()))
|
||||
@@ -222,34 +147,3 @@ class Crate(Wget):
|
||||
mdpath = os.path.join(bbpath, cratepath, mdfile)
|
||||
with open(mdpath, "w") as f:
|
||||
json.dump(metadata, f)
|
||||
|
||||
|
||||
def _crate_unpack_old_layout(self, ud, rootdir, d):
|
||||
"""
|
||||
Unpacks a crate in the old location that tried to emulate
|
||||
the Cargo registry layout.
|
||||
"""
|
||||
thefile = ud.localpath
|
||||
|
||||
cargo_src = self._cargo_src_path(rootdir)
|
||||
cargo_cache = self._cargo_cache_path(rootdir)
|
||||
|
||||
cmd = "tar -xz --no-same-owner -f %s -C %s" % (thefile, cargo_src)
|
||||
|
||||
# ensure we've got these paths made
|
||||
bb.utils.mkdirhier(cargo_cache)
|
||||
bb.utils.mkdirhier(cargo_src)
|
||||
|
||||
bb.note("Copying %s to %s/" % (thefile, cargo_cache))
|
||||
shutil.copy(thefile, cargo_cache)
|
||||
|
||||
# path it
|
||||
path = d.getVar('PATH', True)
|
||||
if path:
|
||||
cmd = "PATH=\"%s\" %s" % (path, cmd)
|
||||
bb.note("Unpacking %s to %s/" % (thefile, os.getcwd()))
|
||||
|
||||
ret = subprocess.call(cmd, preexec_fn=subprocess_setup, shell=True)
|
||||
|
||||
if ret != 0:
|
||||
raise UnpackError("Unpack command %s failed with return value %s" % (cmd, ret), ud.url)
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
DESCRIPTION = "Fast multiple substring searching with finite state machines."
|
||||
HOMEPAGE = "https://github.com/BurntSushi/aho-corasick"
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE-MIT;md5=8d0d0aa488af0ab9aafa3b85a7fc8e12"
|
||||
DEPENDS = "memchr-rs"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/BurntSushi/aho-corasick.git;protocol=https"
|
||||
SRCREV = "e1bca33dcc060d587e802320a79cbb035f37f8fa"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
DESCRIPTION = "A macro to generate structures which behave like bitflags."
|
||||
HOMEPAGE = "https://github.com/rust-lang-nursery/bitflags"
|
||||
LICENSE = "MIT | Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "\
|
||||
file://LICENSE-MIT;md5=362255802eb5aa87810d12ddf3cfedb4 \
|
||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
||||
"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/rust-lang-nursery/bitflags.git;protocol=https"
|
||||
SRCREV = "41aa413a7c30d70b93b44ab5447276c381ef249e"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
LIB_SRC = "${S}/src/lib.rs"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
DESCRIPTION = "A (mostly) pure-Rust implementation of various common cryptographic algorithms."
|
||||
HOMEPAGE = "https://github.com/DaGenix/rust-crypto/"
|
||||
LICENSE = "MIT | Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "\
|
||||
file://LICENSE-MIT;md5=4311034aa04489226c1fc3f816dbfb5a \
|
||||
file://LICENSE-APACHE;md5=a02fef6dccf840318474c108a8281b77 \
|
||||
"
|
||||
DEPENDS = "\
|
||||
libc-rs \
|
||||
time-rs \
|
||||
rand-rs \
|
||||
rustc-serialize-rs \
|
||||
"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/DaGenix/rust-crypto.git;protocol=https"
|
||||
SRCREV = "5571cb41690b9cee12025192393ea7df0eddc21b"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
DESCRIPTION = "DBus binding for rust"
|
||||
HOMEPAGE = "https://github.com/diwic/dbus-rs"
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=d2794c0df5b907fdace235a619d80314"
|
||||
DEPENDS = "libc-rs dbus"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/diwic/dbus-rs.git;protocol=https"
|
||||
SRCREV = "d23c8b7fecd5a8e82131893250a5ac376799faff"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
DESCRIPTION = "A copy of libstd's debug builders for use before they stabilize"
|
||||
HOMEPAGE = "https://github.com/sfackler/rust-debug-builders"
|
||||
LICENSE = "MIT | Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://Cargo.toml;md5=97a131dc4ae910d242387f2c9d1a2ce8"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/sfackler/rust-debug-builders.git;protocol=https"
|
||||
SRCREV = "c6943b72c7808ddaa151d08b824525cc7420cb9b"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
DESCRIPTION = "getopts-like option parsing"
|
||||
HOMEPAGE = "https://github.com/rust-lang/getopts"
|
||||
LICENSE = "MIT | Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "\
|
||||
file://LICENSE-MIT;md5=362255802eb5aa87810d12ddf3cfedb4 \
|
||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
||||
"
|
||||
DEPENDS = "log-rs"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/rust-lang/getopts.git;protocol=https"
|
||||
SRCREV = "a13c62b7d860b6d370129ebb972bf5e0373c5be7"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
DESCRIPTION = "A macro for declaring lazily evaluated statics in Rust."
|
||||
HOMEPAGE = "https://github.com/rust-lang-nursery/lazy-static.rs"
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "\
|
||||
file://LICENSE;md5=5795ddb4df1d696d439b6667081cffc9 \
|
||||
"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/rust-lang-nursery/lazy-static.rs.git;protocol=https"
|
||||
SRCREV = "ffe65c818474f863945ca535c0e53f3b8b848ff7"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
LIB_SRC = "${S}/src/lib.rs"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
DESCRIPTION = "A Rust library with native bindings to the types and functions commonly found on various systems, including libc."
|
||||
HOMEPAGE = "https://github.com/rust-lang/libc"
|
||||
LICENSE = "MIT | Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "\
|
||||
file://LICENSE-MIT;md5=362255802eb5aa87810d12ddf3cfedb4 \
|
||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
||||
"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/rust-lang/libc.git;protocol=https"
|
||||
SRCREV = "f54b9c90ee68889181472d4d4a5dd9e43d0e5318"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
LIB_SRC = "${S}/src/lib.rs"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib --cfg feature='"cargo-build"'
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
DESCRIPTION = "An logging implementation for `log` which is configured via an environment variable"
|
||||
DEPENDS = "regex-rs log-rs"
|
||||
|
||||
require log.inc
|
||||
|
||||
LIB_SRC = "${S}/env/src/lib.rs"
|
||||
@@ -1,4 +0,0 @@
|
||||
DESCRIPTION = "A Rust library providing a lightweight logging facade"
|
||||
DEPENDS = "libc-rs"
|
||||
|
||||
require log.inc
|
||||
@@ -1,22 +0,0 @@
|
||||
HOMEPAGE = "https://github.com/rust-lang/log"
|
||||
LICENSE = "MIT | Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "\
|
||||
file://LICENSE-MIT;md5=362255802eb5aa87810d12ddf3cfedb4 \
|
||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
||||
"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/rust-lang/log.git;protocol=https"
|
||||
SRCREV = "5453e16166ec451afc9738978ca01f162127ebbe"
|
||||
PV = "0.3.1"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
DESCRIPTION = "Safe interface to memchr"
|
||||
HOMEPAGE = "https://github.com/BurntSushi/rust-memchr"
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE-MIT;md5=8d0d0aa488af0ab9aafa3b85a7fc8e12"
|
||||
DEPENDS = "libc-rs"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/BurntSushi/rust-memchr.git;protocol=https"
|
||||
SRCREV = "4f9a13f95e6e00f2847c093c56b41b9c1d58d3c4"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
require num.inc
|
||||
|
||||
DEPENDS += "num-traits"
|
||||
|
||||
LIB_SRC = "${S}/integer/src/lib.rs"
|
||||
@@ -1,6 +0,0 @@
|
||||
require num.inc
|
||||
|
||||
DEPENDS += "num-traits"
|
||||
DEPENDS += "num-integer"
|
||||
|
||||
LIB_SRC = "${S}/iter/src/lib.rs"
|
||||
@@ -1,3 +0,0 @@
|
||||
require num.inc
|
||||
|
||||
LIB_SRC = "${S}/traits/src/lib.rs"
|
||||
@@ -1,22 +0,0 @@
|
||||
DESCRIPTION = "A collection of numeric types and traits for Rust, including bigint, complex, rational, range iterators, generic integers, and more!"
|
||||
HOMEPAGE = "https://github.com/rust-num/num"
|
||||
LICENSE = "MIT | Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "\
|
||||
file://LICENSE-MIT;md5=362255802eb5aa87810d12ddf3cfedb4 \
|
||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
||||
"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/rust-num/num.git;protocol=https"
|
||||
SRCREV = "d9f08cb148cc686ec407c1e42fbd4536cde6ac82"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
require num.inc
|
||||
|
||||
DEPENDS += "\
|
||||
num-traits \
|
||||
num-integer \
|
||||
num-iter \
|
||||
"
|
||||
|
||||
LIB_SRC = "${S}/src/lib.rs"
|
||||
@@ -1,23 +0,0 @@
|
||||
DESCRIPTION = "Random number generators and other randomness functionality."
|
||||
HOMEPAGE = "https://github.com/rust-lang/rand"
|
||||
LICENSE = "MIT | Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "\
|
||||
file://LICENSE-MIT;md5=362255802eb5aa87810d12ddf3cfedb4 \
|
||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
||||
"
|
||||
DEPENDS = "libc-rs"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/rust-lang/rand.git;protocol=https"
|
||||
SRCREV = "f872fda5fb8fb899a837ee9eee0332076a8f5300"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
DESCRIPTION = "An implementation of regular expressions for Rust"
|
||||
DEPENDS = "\
|
||||
aho-corasick-rs \
|
||||
memchr-rs \
|
||||
regex-syntax-rs \
|
||||
"
|
||||
|
||||
require regex.inc
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
@@ -1,5 +0,0 @@
|
||||
DESCRIPTION = "A regular expression parser"
|
||||
|
||||
require regex.inc
|
||||
|
||||
LIB_SRC = "${S}/regex-syntax/src/lib.rs"
|
||||
@@ -1,22 +0,0 @@
|
||||
HOMEPAGE = "https://github.com/rust-lang/regex"
|
||||
LICENSE = "MIT | Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "\
|
||||
file://LICENSE-MIT;md5=362255802eb5aa87810d12ddf3cfedb4 \
|
||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
||||
"
|
||||
|
||||
SRC_URI = "git://github.com/rust-lang/regex.git;protocol=https"
|
||||
SRCREV = "c9e6781a6845478aa2d8ebc86972755f854fdbe0"
|
||||
PV = "0.1.38"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
DESCRIPTION = "Generic serialization/deserialization support"
|
||||
HOMEPAGE = "https://github.com/rust-lang/rustc-serialize"
|
||||
LICENSE = "MIT | Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "\
|
||||
file://LICENSE-MIT;md5=362255802eb5aa87810d12ddf3cfedb4 \
|
||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
||||
"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/rust-lang/rustc-serialize.git;protocol=https"
|
||||
SRCREV = "64b38a1f31a9af6eabf2894437aa5ccc3e457e68"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
DESCRIPTION = "Utilities for working with time-related functions in Rust"
|
||||
HOMEPAGE = "https://github.com/rust-lang/time"
|
||||
LICENSE = "MIT | Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "\
|
||||
file://LICENSE-MIT;md5=362255802eb5aa87810d12ddf3cfedb4 \
|
||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
||||
"
|
||||
DEPENDS = "libc-rs"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/rust-lang/time.git;protocol=https"
|
||||
SRCREV = "32b212b877b836dbfdc97af5674d91672e70ecbd"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_compile () {
|
||||
rm -rf time_helpers.o libtimehelpers.a
|
||||
${CC} ${S}/src/time_helpers.c -fPIC -c -o time_helpers.o
|
||||
${AR} rcs libtime_helpers.a time_helpers.o
|
||||
oe_compile_rust_lib -L native=$PWD -l static=time_helpers
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
DESCRIPTION = "FFI bindings to libudev"
|
||||
HOMEPAGE = "https://github.com/dcuddeback/libudev-sys"
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=bbd2acd29c4ba5d4591b03e2757c04a3"
|
||||
DEPENDS = "libudev-sys-rs"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/dcuddeback/libudev-rs.git;protocol=https"
|
||||
SRCREV = "d55763c626790e2e8724947503238731843a969a"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
DESCRIPTION = "FFI bindings to libudev"
|
||||
HOMEPAGE = "https://github.com/dcuddeback/libudev-sys"
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=bbd2acd29c4ba5d4591b03e2757c04a3"
|
||||
|
||||
DEPENDS += "libudev-sys-rs"
|
||||
DEPENDS += "libc-rs"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/dcuddeback/libudev-rs.git;protocol=https"
|
||||
SRCREV = "3da791245f206d0cf5a856531c574b8646b0f059"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
DESCRIPTION = "FFI bindings to libudev"
|
||||
HOMEPAGE = "https://github.com/dcuddeback/libudev-sys"
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=bbd2acd29c4ba5d4591b03e2757c04a3"
|
||||
DEPENDS = "libc-rs udev"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/dcuddeback/libudev-sys.git;protocol=https"
|
||||
SRCREV = "14c24afc61e3315dffddab2c7f36999a16a002d8"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
RUSTC_FLAGS += "-ludev"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
DESCRIPTION = "FFI bindings to libudev"
|
||||
HOMEPAGE = "https://github.com/dcuddeback/libudev-sys"
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=bbd2acd29c4ba5d4591b03e2757c04a3"
|
||||
DEPENDS = "libc-rs udev"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/dcuddeback/libudev-sys.git;protocol=https"
|
||||
SRCREV = "c49163f87d4d109ec21bcf8f8c51db560ed31b22"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
RUSTC_FLAGS += "-ludev"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
DESCRIPTION = "Unix domain socket bindings for Rust"
|
||||
HOMEPAGE = "https://github.com/sfackler/rust-unix-socket"
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=bde86283c1fd74e84ebc3cf6dd7011d0"
|
||||
DEPENDS = "libc-rs debug-builders-rs"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/sfackler/rust-unix-socket.git;protocol=https"
|
||||
SRCREV = "d0f47ae888267a718072c3be5eed42ba1f637097"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
29
recipes-devtools/cargo/cargo-1.34.2/0001-Disable-http2.patch
Normal file
29
recipes-devtools/cargo/cargo-1.34.2/0001-Disable-http2.patch
Normal file
@@ -0,0 +1,29 @@
|
||||
From 44cf21036646e4849e9f8566db7decb7da917394 Mon Sep 17 00:00:00 2001
|
||||
From: Johan Anderholm <johan.anderholm@gmail.com>
|
||||
Date: Sun, 27 Jan 2019 10:19:00 +0100
|
||||
Subject: [PATCH] Disable http2
|
||||
|
||||
http2 requires that curl is build with nghttp2 which in turn depends on
|
||||
many dependencies and ultimately a dependency loop in the case of
|
||||
curl-native. As long as multiplexing is disabled in cargo this should
|
||||
be fine.
|
||||
|
||||
Upstream-Status: Inappropriate
|
||||
|
||||
---
|
||||
Cargo.toml | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Cargo.toml b/Cargo.toml
|
||||
index 8238380861d9..ced1defea459 100644
|
||||
--- a/Cargo.toml
|
||||
+++ b/Cargo.toml
|
||||
@@ -24,7 +24,7 @@ bytesize = "1.0"
|
||||
crates-io = { path = "src/crates-io", version = "0.23" }
|
||||
crossbeam-utils = "0.6"
|
||||
crypto-hash = "0.3.1"
|
||||
-curl = { version = "0.4.19", features = ['http2'] }
|
||||
+curl = { version = "0.4.19" }
|
||||
curl-sys = "0.4.15"
|
||||
env_logger = "0.6.0"
|
||||
pretty_env_logger = { version = "0.3", optional = true }
|
||||
31
recipes-devtools/cargo/cargo-1.36.0/0001-Disable-http2.patch
Normal file
31
recipes-devtools/cargo/cargo-1.36.0/0001-Disable-http2.patch
Normal file
@@ -0,0 +1,31 @@
|
||||
From 42e65192b6f7520b7a05924856e00600961f6758 Mon Sep 17 00:00:00 2001
|
||||
From: Johan Anderholm <johan.anderholm@gmail.com>
|
||||
Date: Sun, 27 Jan 2019 10:19:00 +0100
|
||||
Subject: [PATCH] Disable http2
|
||||
|
||||
http2 requires that curl is build with nghttp2 which in turn depends on
|
||||
many dependencies and ultimately a dependency loop in the case of
|
||||
curl-native. As long as multiplexing is disabled in cargo this should
|
||||
be fine.
|
||||
|
||||
Upstream-Status: Inappropriate
|
||||
---
|
||||
Cargo.toml | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Cargo.toml b/Cargo.toml
|
||||
index c3fcacf5..bd6ec50b 100644
|
||||
--- a/Cargo.toml
|
||||
+++ b/Cargo.toml
|
||||
@@ -24,7 +24,7 @@ bytesize = "1.0"
|
||||
crates-io = { path = "src/crates-io", version = "0.25" }
|
||||
crossbeam-utils = "0.6"
|
||||
crypto-hash = "0.3.1"
|
||||
-curl = { version = "0.4.21", features = ['http2'] }
|
||||
+curl = { version = "0.4.21" }
|
||||
curl-sys = "0.4.18"
|
||||
env_logger = "0.6.0"
|
||||
pretty_env_logger = { version = "0.3", optional = true }
|
||||
--
|
||||
2.11.0
|
||||
|
||||
29
recipes-devtools/cargo/cargo-1.37.0/0001-Disable-http2.patch
Normal file
29
recipes-devtools/cargo/cargo-1.37.0/0001-Disable-http2.patch
Normal file
@@ -0,0 +1,29 @@
|
||||
From 0e2384133664ebeb548b782ad763c3a627c1bc66 Mon Sep 17 00:00:00 2001
|
||||
From: Johan Anderholm <johan.anderholm@gmail.com>
|
||||
Date: Sun, 27 Jan 2019 10:19:00 +0100
|
||||
Subject: [PATCH] Disable http2
|
||||
|
||||
http2 requires that curl is build with nghttp2 which in turn depends on
|
||||
many dependencies and ultimately a dependency loop in the case of
|
||||
curl-native. As long as multiplexing is disabled in cargo this should
|
||||
be fine.
|
||||
|
||||
Upstream-Status: Inappropriate
|
||||
|
||||
---
|
||||
src/tools/cargo/Cargo.toml | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Cargo.toml b/Cargo.toml
|
||||
index d15aa2513..ba9c77d25 100644
|
||||
--- a/Cargo.toml
|
||||
+++ b/Cargo.toml
|
||||
@@ -24,7 +24,7 @@ bytesize = "1.0"
|
||||
crates-io = { path = "crates/crates-io", version = "0.26" }
|
||||
crossbeam-utils = "0.6"
|
||||
crypto-hash = "0.3.1"
|
||||
-curl = { version = "0.4.21", features = ['http2'] }
|
||||
+curl = { version = "0.4.21" }
|
||||
curl-sys = "0.4.18"
|
||||
env_logger = "0.6.0"
|
||||
pretty_env_logger = { version = "0.3", optional = true }
|
||||
29
recipes-devtools/cargo/cargo-1.39.0/0001-Disable-http2.patch
Normal file
29
recipes-devtools/cargo/cargo-1.39.0/0001-Disable-http2.patch
Normal file
@@ -0,0 +1,29 @@
|
||||
From 0e2384133664ebeb548b782ad763c3a627c1bc66 Mon Sep 17 00:00:00 2001
|
||||
From: Johan Anderholm <johan.anderholm@gmail.com>
|
||||
Date: Sun, 27 Jan 2019 10:19:00 +0100
|
||||
Subject: [PATCH] Disable http2
|
||||
|
||||
http2 requires that curl is build with nghttp2 which in turn depends on
|
||||
many dependencies and ultimately a dependency loop in the case of
|
||||
curl-native. As long as multiplexing is disabled in cargo this should
|
||||
be fine.
|
||||
|
||||
Upstream-Status: Inappropriate
|
||||
|
||||
---
|
||||
src/tools/cargo/Cargo.toml | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Cargo.toml b/Cargo.toml
|
||||
index d15aa2513..ba9c77d25 100644
|
||||
--- a/Cargo.toml
|
||||
+++ b/Cargo.toml
|
||||
@@ -24,7 +24,7 @@ bytesize = "1.0"
|
||||
crates-io = { path = "crates/crates-io", version = "0.28" }
|
||||
crossbeam-utils = "0.6"
|
||||
crypto-hash = "0.3.1"
|
||||
-curl = { version = "0.4.21", features = ['http2'] }
|
||||
+curl = { version = "0.4.21" }
|
||||
curl-sys = "0.4.18"
|
||||
env_logger = "0.6.0"
|
||||
pretty_env_logger = { version = "0.3", optional = true }
|
||||
29
recipes-devtools/cargo/cargo-1.40.0/0001-Disable-http2.patch
Normal file
29
recipes-devtools/cargo/cargo-1.40.0/0001-Disable-http2.patch
Normal file
@@ -0,0 +1,29 @@
|
||||
From f0496287fb754e5b8dd1956f6a0addb55f3b06f5 Mon Sep 17 00:00:00 2001
|
||||
From: Johan Anderholm <johan.anderholm@gmail.com>
|
||||
Date: Sun, 27 Jan 2019 10:19:00 +0100
|
||||
Subject: [PATCH] Disable http2
|
||||
|
||||
http2 requires that curl is build with nghttp2 which in turn depends on
|
||||
many dependencies and ultimately a dependency loop in the case of
|
||||
curl-native. As long as multiplexing is disabled in cargo this should
|
||||
be fine.
|
||||
|
||||
Upstream-Status: Inappropriate
|
||||
|
||||
---
|
||||
src/tools/cargo/Cargo.toml | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Cargo.toml b/Cargo.toml
|
||||
index eea1f42a2..5159890f4 100644
|
||||
--- a/Cargo.toml
|
||||
+++ b/Cargo.toml
|
||||
@@ -25,7 +25,7 @@ cargo-platform = { path = "crates/cargo-platform", version = "0.1" }
|
||||
crates-io = { path = "crates/crates-io", version = "0.29" }
|
||||
crossbeam-utils = "0.6"
|
||||
crypto-hash = "0.3.1"
|
||||
-curl = { version = "0.4.23", features = ["http2"] }
|
||||
+curl = { version = "0.4.23" }
|
||||
curl-sys = "0.4.22"
|
||||
env_logger = "0.7.0"
|
||||
pretty_env_logger = { version = "0.3", optional = true }
|
||||
29
recipes-devtools/cargo/cargo-1.41.0/0001-Disable-http2.patch
Normal file
29
recipes-devtools/cargo/cargo-1.41.0/0001-Disable-http2.patch
Normal file
@@ -0,0 +1,29 @@
|
||||
From e06774b9f2be4ff1f3404f2f10e25f99e3f3455b Mon Sep 17 00:00:00 2001
|
||||
From: Johan Anderholm <johan.anderholm@gmail.com>
|
||||
Date: Sun, 27 Jan 2019 10:19:00 +0100
|
||||
Subject: [PATCH] Disable http2
|
||||
|
||||
http2 requires that curl is build with nghttp2 which in turn depends on
|
||||
many dependencies and ultimately a dependency loop in the case of
|
||||
curl-native. As long as multiplexing is disabled in cargo this should
|
||||
be fine.
|
||||
|
||||
Upstream-Status: Inappropriate
|
||||
|
||||
---
|
||||
src/tools/cargo/Cargo.toml | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Cargo.toml b/Cargo.toml
|
||||
index fc9b69c03..2f4d3a949 100644
|
||||
--- a/Cargo.toml
|
||||
+++ b/Cargo.toml
|
||||
@@ -25,7 +25,7 @@ cargo-platform = { path = "crates/cargo-platform", version = "0.1" }
|
||||
crates-io = { path = "crates/crates-io", version = "0.30" }
|
||||
crossbeam-utils = "0.7"
|
||||
crypto-hash = "0.3.1"
|
||||
-curl = { version = "0.4.23", features = ["http2"] }
|
||||
+curl = { version = "0.4.23" }
|
||||
curl-sys = "0.4.22"
|
||||
env_logger = "0.7.0"
|
||||
pretty_env_logger = { version = "0.3", optional = true }
|
||||
@@ -1,4 +0,0 @@
|
||||
|
||||
CARGO_SNAPSHOT = "2016-09-01/cargo-nightly-x86_64-unknown-linux-gnu.tar.gz;downloadfilename=cargo-nightly-x86_64-unknown-linux-gnu-2016-09-01.tar.gz"
|
||||
SRC_URI[md5sum] = "d41ebf79290a7c9c9e5df87cb27e5091"
|
||||
SRC_URI[sha256sum] = "365e5cad79512d244b8ced32f8e5b86a710fc6c17f0d0f5f744b8058ef6dc756"
|
||||
@@ -1,59 +1,43 @@
|
||||
inherit cargo
|
||||
inherit patch
|
||||
|
||||
SUMMARY = "Cargo downloads your Rust project's dependencies and builds your project"
|
||||
HOMEPAGE = "http://crates.io"
|
||||
SECTION = "devel"
|
||||
SUMMARY = "Cargo, a package manager for Rust."
|
||||
HOMEPAGE = "https://crates.io"
|
||||
LICENSE = "MIT | Apache-2.0"
|
||||
SECTION = "devel"
|
||||
|
||||
DEPENDS = "openssl zlib libgit2 curl ca-certificates libssh2"
|
||||
|
||||
CARGO_INDEX_COMMIT = "6127fc24b0b6fe73fe4d339817fbf000b9a798a2"
|
||||
|
||||
SRC_URI = "\
|
||||
http://static-rust-lang-org.s3.amazonaws.com/cargo-dist/${CARGO_SNAPSHOT} \
|
||||
crate-index://crates.io/${CARGO_INDEX_COMMIT} \
|
||||
LIC_FILES_CHKSUM = " \
|
||||
file://LICENSE-MIT;md5=b377b220f43d747efdec40d69fcaa69d \
|
||||
"
|
||||
|
||||
B = "${S}"
|
||||
SRC_URI += "file://0001-Disable-http2.patch"
|
||||
|
||||
# Used in libgit2-sys's build.rs, needed for pkg-config to be used
|
||||
export LIBGIT2_SYS_USE_PKG_CONFIG = "1"
|
||||
S = "${RUSTSRC}/src/tools/cargo"
|
||||
CARGO_VENDORING_DIRECTORY = "${RUSTSRC}/vendor"
|
||||
|
||||
# cargo's configure doesn't recognize --disable-static, so remove it.
|
||||
DISABLE_STATIC = ""
|
||||
inherit cargo
|
||||
|
||||
do_configure () {
|
||||
"${S}/configure" \
|
||||
"--prefix=${prefix}" \
|
||||
"--build=${BUILD_SYS}" \
|
||||
"--host=${HOST_SYS}" \
|
||||
"--target=${TARGET_SYS}" \
|
||||
"--localstatedir=${localstatedir}" \
|
||||
"--sysconfdir=${sysconfdir}" \
|
||||
"--datadir=${datadir}" \
|
||||
"--infodir=${infodir}" \
|
||||
"--mandir=${mandir}" \
|
||||
"--libdir=${libdir}" \
|
||||
"--disable-verify-install" \
|
||||
${EXTRA_OECONF} \
|
||||
|| die "Could not configure cargo"
|
||||
|
||||
cargo_do_configure
|
||||
do_cargo_setup_snapshot () {
|
||||
${WORKDIR}/rust-snapshot-components/${CARGO_SNAPSHOT}/install.sh --prefix="${WORKDIR}/${CARGO_SNAPSHOT}" --disable-ldconfig
|
||||
}
|
||||
|
||||
do_compile () {
|
||||
oe_cargo_fix_env
|
||||
addtask cargo_setup_snapshot after do_unpack before do_configure
|
||||
do_cargo_setup_snapshot[dirs] += "${WORKDIR}/${CARGO_SNAPSHOT}"
|
||||
|
||||
rm -rf target/snapshot
|
||||
mkdir -p target
|
||||
cp -R ${WORKDIR}/cargo-nightly-x86_64-unknown-linux-gnu/cargo target/snapshot
|
||||
|
||||
oe_runmake VERBOSE=1
|
||||
do_compile_prepend () {
|
||||
export RUSTC_BOOTSTRAP="1"
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_runmake prepare-image-${TARGET_SYS} IMGDIR_${TARGET_SYS}="${D}${prefix}"
|
||||
install -d "${D}${bindir}"
|
||||
install -m 755 "${RUSTSRC}/target/${CARGO_TARGET_SUBDIR}/cargo" "${D}${bindir}"
|
||||
}
|
||||
|
||||
# Needed for pkg-config to be used
|
||||
export LIBGIT2_SYS_USE_PKG_CONFIG = "1"
|
||||
export LIBSSH2_SYS_USE_PKG_CONFIG = "1"
|
||||
|
||||
BBCLASSEXTEND = "native"
|
||||
|
||||
# When building cargo-native we don't have a built cargo to use so we must use
|
||||
# the snapshot to bootstrap the build of cargo
|
||||
CARGO_class-native = "${WORKDIR}/${CARGO_SNAPSHOT}/bin/cargo"
|
||||
|
||||
@@ -1,105 +0,0 @@
|
||||
require cargo-snapshot.inc
|
||||
require cargo.inc
|
||||
|
||||
SRC_URI += " \
|
||||
git://github.com/rust-lang/cargo.git;protocol=https;name=cargo \
|
||||
file://0001-disable-cargo-snapshot-fetch.patch \
|
||||
file://0001-Never-update-the-registry-index.patch \
|
||||
crate://crates.io/advapi32-sys/0.1.2 \
|
||||
crate://crates.io/bufstream/0.1.1 \
|
||||
crate://crates.io/crossbeam/0.2.8 \
|
||||
crate://crates.io/docopt/0.6.78 \
|
||||
crate://crates.io/env_logger/0.3.2 \
|
||||
crate://crates.io/filetime/0.1.10 \
|
||||
crate://crates.io/flate2/0.2.13 \
|
||||
crate://crates.io/fs2/0.2.3 \
|
||||
crate://crates.io/glob/0.2.11 \
|
||||
crate://crates.io/hamcrest/0.1.0 \
|
||||
crate://crates.io/kernel32-sys/0.2.1 \
|
||||
crate://crates.io/libc/0.2.8 \
|
||||
crate://crates.io/log/0.3.5 \
|
||||
crate://crates.io/num_cpus/0.2.11 \
|
||||
crate://crates.io/regex/0.1.58 \
|
||||
crate://crates.io/rustc-serialize/0.3.18 \
|
||||
crate://crates.io/tar/0.4.5 \
|
||||
crate://crates.io/tempdir/0.3.4 \
|
||||
crate://crates.io/term/0.4.4 \
|
||||
crate://crates.io/toml/0.1.28 \
|
||||
crate://crates.io/url/1.1.0 \
|
||||
crate://crates.io/winapi/0.2.6 \
|
||||
crate://crates.io/semver/0.2.3 \
|
||||
crate://crates.io/regex-syntax/0.3.0 \
|
||||
crate://crates.io/utf8-ranges/0.1.3 \
|
||||
crate://crates.io/gcc/0.3.26 \
|
||||
crate://crates.io/unicode-normalization/0.1.2 \
|
||||
crate://crates.io/libz-sys/1.0.2 \
|
||||
crate://crates.io/rand/0.3.14 \
|
||||
crate://crates.io/user32-sys/0.1.2 \
|
||||
crate://crates.io/idna/0.1.0 \
|
||||
crate://crates.io/strsim/0.3.0 \
|
||||
crate://crates.io/matches/0.1.2 \
|
||||
crate://crates.io/cmake/0.1.16 \
|
||||
crate://crates.io/gdi32-sys/0.1.1 \
|
||||
crate://crates.io/bitflags/0.1.1 \
|
||||
crate://crates.io/unicode-bidi/0.2.3 \
|
||||
crate://crates.io/pkg-config/0.3.8 \
|
||||
crate://crates.io/winapi-build/0.1.1 \
|
||||
crate://crates.io/memchr/0.1.10 \
|
||||
crate://crates.io/pnacl-build-helper/1.4.10 \
|
||||
crate://crates.io/nom/1.2.2 \
|
||||
crate://crates.io/num/0.1.31 \
|
||||
crate://crates.io/uuid/0.2.3 \
|
||||
crate://crates.io/aho-corasick/0.5.1 \
|
||||
crate://crates.io/libressl-pnacl-sys/2.1.6 \
|
||||
crate://crates.io/miniz-sys/0.1.7 \
|
||||
crate://crates.io/openssl-sys/0.7.8 \
|
||||
crate://crates.io/url/0.5.10 \
|
||||
"
|
||||
# Compatible with Rust 1.10.0
|
||||
# https://static.rust-lang.org/dist/channel-rust-1.10.0.toml
|
||||
SRCREV_cargo = "259324cd8f9bb6e1068a3a2b77685e90fda3e3b6"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
LIC_FILES_CHKSUM ="\
|
||||
file://LICENSE-MIT;md5=362255802eb5aa87810d12ddf3cfedb4 \
|
||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
||||
file://LICENSE-THIRD-PARTY;md5=892ea68b169e69cfe75097fc38a15b56 \
|
||||
"
|
||||
|
||||
## curl-rust
|
||||
SRC_URI += "\
|
||||
git://github.com/carllerche/curl-rust.git;protocol=https;destsuffix=curl-rust;name=curl-rust \
|
||||
file://curl-rust/0001-curl-sys-avoid-explicitly-linking-in-openssl.patch;patchdir=../curl-rust \
|
||||
file://curl-rust/0002-remove-per-triple-deps-on-openssl-sys.patch;patchdir=../curl-rust \
|
||||
"
|
||||
|
||||
# 0.2.19 / -sys 0.1.34
|
||||
SRCREV_curl-rust = "45b8cb56fbed45f828f96bdd8c286b2b3a8a26cb"
|
||||
|
||||
SRCREV_FORMAT .= "_curl-rust"
|
||||
EXTRA_OECARGO_PATHS += "${WORKDIR}/curl-rust"
|
||||
|
||||
## ssh2-rs
|
||||
SRC_URI += "\
|
||||
git://github.com/alexcrichton/ssh2-rs.git;protocol=https;name=ssh2-rs;destsuffix=ssh2-rs \
|
||||
file://ssh2-rs/0001-libssh2-sys-avoid-explicitly-linking-in-openssl.patch;patchdir=../ssh2-rs \
|
||||
"
|
||||
|
||||
# 0.2.11 / -sys 0.1.37
|
||||
SRCREV_ssh2-rs = "ced77751cb780d0725a3411bd588c5a26ea79953"
|
||||
|
||||
SRCREV_FORMAT .= "_ssh2-rs"
|
||||
EXTRA_OECARGO_PATHS += "${WORKDIR}/ssh2-rs"
|
||||
|
||||
## git2-rs
|
||||
SRC_URI += "\
|
||||
git://github.com/alexcrichton/git2-rs.git;protocol=https;name=git2-rs;destsuffix=git2-rs \
|
||||
file://git2-rs/0001-libgit2-sys-avoid-blessed-triples.patch;patchdir=../git2-rs \
|
||||
"
|
||||
|
||||
# 0.4.3 / -sys 0.4.2
|
||||
SRCREV_git2-rs = "cd14fc7801e70d3b26a4e7e5d94785af1f7e9e58"
|
||||
|
||||
SRCREV_FORMAT .= "_git2-rs"
|
||||
EXTRA_OECARGO_PATHS += "${WORKDIR}/git2-rs"
|
||||
@@ -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 \
|
||||
"
|
||||
8
recipes-devtools/cargo/cargo_1.34.2.bb
Normal file
8
recipes-devtools/cargo/cargo_1.34.2.bb
Normal file
@@ -0,0 +1,8 @@
|
||||
require recipes-devtools/rust/rust-source-${PV}.inc
|
||||
require recipes-devtools/rust/rust-snapshot-${PV}.inc
|
||||
require cargo.inc
|
||||
|
||||
LIC_FILES_CHKSUM += " \
|
||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
||||
file://LICENSE-THIRD-PARTY;md5=892ea68b169e69cfe75097fc38a15b56 \
|
||||
"
|
||||
8
recipes-devtools/cargo/cargo_1.36.0.bb
Normal file
8
recipes-devtools/cargo/cargo_1.36.0.bb
Normal file
@@ -0,0 +1,8 @@
|
||||
require recipes-devtools/rust/rust-source-${PV}.inc
|
||||
require recipes-devtools/rust/rust-snapshot-${PV}.inc
|
||||
require cargo.inc
|
||||
|
||||
LIC_FILES_CHKSUM += " \
|
||||
file://LICENSE-APACHE;md5=71b224ca933f0676e26d5c2e2271331c \
|
||||
file://LICENSE-THIRD-PARTY;md5=f257ad009884cb88a3a87d6920e7180a \
|
||||
"
|
||||
8
recipes-devtools/cargo/cargo_1.37.0.bb
Normal file
8
recipes-devtools/cargo/cargo_1.37.0.bb
Normal file
@@ -0,0 +1,8 @@
|
||||
require recipes-devtools/rust/rust-source-${PV}.inc
|
||||
require recipes-devtools/rust/rust-snapshot-${PV}.inc
|
||||
require cargo.inc
|
||||
|
||||
LIC_FILES_CHKSUM += " \
|
||||
file://LICENSE-APACHE;md5=71b224ca933f0676e26d5c2e2271331c \
|
||||
file://LICENSE-THIRD-PARTY;md5=f257ad009884cb88a3a87d6920e7180a \
|
||||
"
|
||||
8
recipes-devtools/cargo/cargo_1.39.0.bb
Normal file
8
recipes-devtools/cargo/cargo_1.39.0.bb
Normal file
@@ -0,0 +1,8 @@
|
||||
require recipes-devtools/rust/rust-source-${PV}.inc
|
||||
require recipes-devtools/rust/rust-snapshot-${PV}.inc
|
||||
require cargo.inc
|
||||
|
||||
LIC_FILES_CHKSUM += " \
|
||||
file://LICENSE-APACHE;md5=71b224ca933f0676e26d5c2e2271331c \
|
||||
file://LICENSE-THIRD-PARTY;md5=f257ad009884cb88a3a87d6920e7180a \
|
||||
"
|
||||
8
recipes-devtools/cargo/cargo_1.40.0.bb
Normal file
8
recipes-devtools/cargo/cargo_1.40.0.bb
Normal file
@@ -0,0 +1,8 @@
|
||||
require recipes-devtools/rust/rust-source-${PV}.inc
|
||||
require recipes-devtools/rust/rust-snapshot-${PV}.inc
|
||||
require cargo.inc
|
||||
|
||||
LIC_FILES_CHKSUM += " \
|
||||
file://LICENSE-APACHE;md5=71b224ca933f0676e26d5c2e2271331c \
|
||||
file://LICENSE-THIRD-PARTY;md5=f257ad009884cb88a3a87d6920e7180a \
|
||||
"
|
||||
8
recipes-devtools/cargo/cargo_1.41.0.bb
Normal file
8
recipes-devtools/cargo/cargo_1.41.0.bb
Normal file
@@ -0,0 +1,8 @@
|
||||
require recipes-devtools/rust/rust-source-${PV}.inc
|
||||
require recipes-devtools/rust/rust-snapshot-${PV}.inc
|
||||
require cargo.inc
|
||||
|
||||
LIC_FILES_CHKSUM += " \
|
||||
file://LICENSE-APACHE;md5=71b224ca933f0676e26d5c2e2271331c \
|
||||
file://LICENSE-THIRD-PARTY;md5=f257ad009884cb88a3a87d6920e7180a \
|
||||
"
|
||||
@@ -1,88 +0,0 @@
|
||||
From 27df8ab04275dfd715d1756fc517bb0323f1b210 Mon Sep 17 00:00:00 2001
|
||||
From: Steven Walter <stevenrwalter@gmail.com>
|
||||
Date: Fri, 2 Sep 2016 14:02:03 -0400
|
||||
Subject: [PATCH] Never update the registry index
|
||||
|
||||
Bitbake will fetch the index for us so that we needn't do network IO
|
||||
during a build
|
||||
---
|
||||
src/cargo/ops/cargo_run.rs | 2 +-
|
||||
src/cargo/sources/registry.rs | 34 +---------------------------------
|
||||
2 files changed, 2 insertions(+), 34 deletions(-)
|
||||
|
||||
diff --git a/src/cargo/ops/cargo_run.rs b/src/cargo/ops/cargo_run.rs
|
||||
index 6764118..379b98b 100644
|
||||
--- a/src/cargo/ops/cargo_run.rs
|
||||
+++ b/src/cargo/ops/cargo_run.rs
|
||||
@@ -1,7 +1,7 @@
|
||||
use std::path::Path;
|
||||
|
||||
use ops::{self, CompileFilter};
|
||||
-use util::{self, CargoResult, process, ProcessError};
|
||||
+use util::{self, CargoResult, ProcessError};
|
||||
use core::Package;
|
||||
|
||||
pub fn run(manifest_path: &Path,
|
||||
diff --git a/src/cargo/sources/registry.rs b/src/cargo/sources/registry.rs
|
||||
index 614d654..a0c7fe6 100644
|
||||
--- a/src/cargo/sources/registry.rs
|
||||
+++ b/src/cargo/sources/registry.rs
|
||||
@@ -166,7 +166,6 @@ use std::path::{PathBuf, Path};
|
||||
|
||||
use curl::http;
|
||||
use flate2::read::GzDecoder;
|
||||
-use git2;
|
||||
use rustc_serialize::hex::ToHex;
|
||||
use rustc_serialize::json;
|
||||
use tar::Archive;
|
||||
@@ -174,7 +173,7 @@ use url::Url;
|
||||
|
||||
use core::{Source, SourceId, PackageId, Package, Summary, Registry};
|
||||
use core::dependency::{Dependency, DependencyInner, Kind};
|
||||
-use sources::{PathSource, git};
|
||||
+use sources::PathSource;
|
||||
use util::{CargoResult, Config, internal, ChainError, ToUrl, human};
|
||||
use util::{hex, Sha256, paths, Filesystem, FileLock};
|
||||
use ops;
|
||||
@@ -464,38 +463,7 @@ impl<'cfg> RegistrySource<'cfg> {
|
||||
|
||||
/// Actually perform network operations to update the registry
|
||||
fn do_update(&mut self) -> CargoResult<()> {
|
||||
- if self.updated {
|
||||
- return Ok(())
|
||||
- }
|
||||
- try!(self.checkout_path.create_dir());
|
||||
- let lock = try!(self.checkout_path.open_rw(Path::new(INDEX_LOCK),
|
||||
- self.config,
|
||||
- "the registry index"));
|
||||
- let path = lock.path().parent().unwrap();
|
||||
-
|
||||
- try!(self.config.shell().status("Updating",
|
||||
- format!("registry `{}`", self.source_id.url())));
|
||||
- let repo = try!(git2::Repository::open(path).or_else(|_| {
|
||||
- let _ = lock.remove_siblings();
|
||||
- git2::Repository::init(path)
|
||||
- }));
|
||||
-
|
||||
- // git fetch origin
|
||||
- let url = self.source_id.url().to_string();
|
||||
- let refspec = "refs/heads/*:refs/remotes/origin/*";
|
||||
-
|
||||
- try!(git::fetch(&repo, &url, refspec, &self.config).chain_error(|| {
|
||||
- internal(format!("failed to fetch `{}`", url))
|
||||
- }));
|
||||
-
|
||||
- // git reset --hard origin/master
|
||||
- let reference = "refs/remotes/origin/master";
|
||||
- let oid = try!(repo.refname_to_id(reference));
|
||||
- trace!("[{}] updating to rev {}", self.source_id, oid);
|
||||
- let object = try!(repo.find_object(oid, None));
|
||||
- try!(repo.reset(&object, git2::ResetType::Hard, None));
|
||||
self.updated = true;
|
||||
- self.cache.clear();
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
--
|
||||
2.7.4
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
From 7ae8ea6523c943cc819eadea011ce4f783e40764 Mon Sep 17 00:00:00 2001
|
||||
From: Cody P Schafer <dev@codyps.com>
|
||||
Date: Wed, 3 Feb 2016 15:59:48 -0500
|
||||
Subject: [PATCH] disable cargo snapshot fetch
|
||||
|
||||
---
|
||||
Makefile.in | 4 ----
|
||||
1 file changed, 4 deletions(-)
|
||||
|
||||
diff --git a/Makefile.in b/Makefile.in
|
||||
index fadcb4b..a8da630 100644
|
||||
--- a/Makefile.in
|
||||
+++ b/Makefile.in
|
||||
@@ -103,10 +103,6 @@ test-unit-$(1): $$(CARGO)
|
||||
endef
|
||||
$(foreach target,$(CFG_TARGET),$(eval $(call CARGO_TARGET,$(target))))
|
||||
|
||||
-$(TARGET_ROOT)/snapshot/bin/cargo$(X): $(S)src/snapshots.txt
|
||||
- $(CFG_PYTHON) $(S)src/etc/dl-snapshot.py $(CFG_BUILD)
|
||||
- touch $@
|
||||
-
|
||||
|
||||
# === Tests
|
||||
|
||||
--
|
||||
2.8.2
|
||||
|
||||
@@ -1,75 +0,0 @@
|
||||
From 8f82cc69e50e7c8e48a2e20b7061483a28bd0d7f Mon Sep 17 00:00:00 2001
|
||||
From: Cody P Schafer <dev@codyps.com>
|
||||
Date: Sat, 12 Dec 2015 22:36:26 -0500
|
||||
Subject: [PATCH 1/2] curl-sys: avoid explicitly linking in openssl
|
||||
|
||||
linking libcurl with libssl is handled by pkg-config, not us
|
||||
This also allows non-blessed triples to work.
|
||||
---
|
||||
curl-sys/Cargo.toml | 38 --------------------------------------
|
||||
curl-sys/lib.rs | 2 --
|
||||
2 files changed, 40 deletions(-)
|
||||
|
||||
diff --git a/curl-sys/Cargo.toml b/curl-sys/Cargo.toml
|
||||
index 24bc4fa..dd56209 100644
|
||||
--- a/curl-sys/Cargo.toml
|
||||
+++ b/curl-sys/Cargo.toml
|
||||
@@ -19,42 +19,4 @@ path = "lib.rs"
|
||||
[dependencies]
|
||||
libz-sys = ">= 0"
|
||||
libc = "0.2"
|
||||
-
|
||||
-[target."cfg(all(unix, not(target_os = \"macos\")))".dependencies]
|
||||
-openssl-sys = ">= 0"
|
||||
-
|
||||
-# Unix platforms use OpenSSL for now to provide SSL functionality
|
||||
-[target.i686-unknown-linux-gnu.dependencies]
|
||||
-openssl-sys = ">= 0"
|
||||
-[target.i586-unknown-linux-gnu.dependencies]
|
||||
-openssl-sys = ">= 0"
|
||||
-[target.i686-linux-android.dependencies]
|
||||
-openssl-sys = ">= 0"
|
||||
-[target.x86_64-unknown-linux-gnu.dependencies]
|
||||
-openssl-sys = ">= 0"
|
||||
-[target.x86_64-unknown-linux-musl.dependencies]
|
||||
-openssl-sys = ">= 0"
|
||||
-[target.arm-unknown-linux-gnueabihf.dependencies]
|
||||
-openssl-sys = ">= 0"
|
||||
-[target.armv7-unknown-linux-gnueabihf.dependencies]
|
||||
openssl-sys = "0.7.0"
|
||||
-[target.arm-linux-androideabi.dependencies]
|
||||
-openssl-sys = ">= 0"
|
||||
-[target.aarch64-unknown-linux-gnu.dependencies]
|
||||
-openssl-sys = ">= 0"
|
||||
-[target.powerpc-unknown-linux-gnu.dependencies]
|
||||
-openssl-sys = ">= 0"
|
||||
-[target.powerpc64-unknown-linux-gnu.dependencies]
|
||||
-openssl-sys = ">= 0"
|
||||
-[target.powerpc64le-unknown-linux-gnu.dependencies]
|
||||
-openssl-sys = ">= 0"
|
||||
-[target.i686-unknown-freebsd.dependencies]
|
||||
-openssl-sys = ">= 0"
|
||||
-[target.x86_64-unknown-freebsd.dependencies]
|
||||
-openssl-sys = ">= 0"
|
||||
-[target.x86_64-unknown-bitrig.dependencies]
|
||||
-openssl-sys = ">= 0"
|
||||
-[target.x86_64-unknown-openbsd.dependencies]
|
||||
-openssl-sys = ">= 0"
|
||||
-[target.x86_64-unknown-dragonfly.dependencies]
|
||||
-openssl-sys = ">= 0"
|
||||
diff --git a/curl-sys/lib.rs b/curl-sys/lib.rs
|
||||
index 7990bd6..eb6c27a 100644
|
||||
--- a/curl-sys/lib.rs
|
||||
+++ b/curl-sys/lib.rs
|
||||
@@ -3,8 +3,6 @@
|
||||
extern crate libc;
|
||||
#[cfg(not(target_env = "msvc"))]
|
||||
extern crate libz_sys;
|
||||
-#[cfg(all(unix, not(target_os = "macos")))]
|
||||
-extern crate openssl_sys;
|
||||
|
||||
use libc::{c_void, c_int, c_char, c_uint, c_long};
|
||||
|
||||
--
|
||||
2.9.2
|
||||
|
||||
@@ -1,67 +0,0 @@
|
||||
From eb23b1b6f749102e3db92b73a5e55ec6ad688524 Mon Sep 17 00:00:00 2001
|
||||
From: Cody P Schafer <dev@codyps.com>
|
||||
Date: Sat, 12 Dec 2015 22:40:33 -0500
|
||||
Subject: [PATCH 2/2] remove per triple deps on openssl-sys
|
||||
|
||||
---
|
||||
Cargo.toml | 40 +---------------------------------------
|
||||
1 file changed, 1 insertion(+), 39 deletions(-)
|
||||
|
||||
diff --git a/Cargo.toml b/Cargo.toml
|
||||
index 5f6cf87..0c87156 100644
|
||||
--- a/Cargo.toml
|
||||
+++ b/Cargo.toml
|
||||
@@ -12,49 +12,11 @@ url = ">= 0.5, < 2.0"
|
||||
log = "0.3.0"
|
||||
libc = "0.2"
|
||||
curl-sys = { path = "curl-sys", version = "0.1.0" }
|
||||
+openssl-sys = "0.7.0"
|
||||
|
||||
[dev-dependencies]
|
||||
env_logger = "0.3.0"
|
||||
|
||||
-# Unix platforms use OpenSSL for now to provide SSL functionality
|
||||
-[target."cfg(all(unix, not(target_os = \"macos\")))".dependencies]
|
||||
-openssl-sys = "0.7.0"
|
||||
-
|
||||
-[target.i686-unknown-linux-gnu.dependencies]
|
||||
-openssl-sys = "0.7.0"
|
||||
-[target.i586-unknown-linux-gnu.dependencies]
|
||||
-openssl-sys = "0.7.0"
|
||||
-[target.i686-linux-android.dependencies]
|
||||
-openssl-sys = "0.7.0"
|
||||
-[target.x86_64-unknown-linux-gnu.dependencies]
|
||||
-openssl-sys = "0.7.0"
|
||||
-[target.x86_64-unknown-linux-musl.dependencies]
|
||||
-openssl-sys = "0.7.0"
|
||||
-[target.arm-unknown-linux-gnueabihf.dependencies]
|
||||
-openssl-sys = "0.7.0"
|
||||
-[target.armv7-unknown-linux-gnueabihf.dependencies]
|
||||
-openssl-sys = "0.7.0"
|
||||
-[target.arm-linux-androideabi.dependencies]
|
||||
-openssl-sys = "0.7.0"
|
||||
-[target.aarch64-unknown-linux-gnu.dependencies]
|
||||
-openssl-sys = "0.7.0"
|
||||
-[target.powerpc-unknown-linux-gnu.dependencies]
|
||||
-openssl-sys = "0.7.0"
|
||||
-[target.powerpc64-unknown-linux-gnu.dependencies]
|
||||
-openssl-sys = "0.7.0"
|
||||
-[target.powerpc64le-unknown-linux-gnu.dependencies]
|
||||
-openssl-sys = "0.7.0"
|
||||
-[target.i686-unknown-freebsd.dependencies]
|
||||
-openssl-sys = "0.7.0"
|
||||
-[target.x86_64-unknown-freebsd.dependencies]
|
||||
-openssl-sys = "0.7.0"
|
||||
-[target.x86_64-unknown-bitrig.dependencies]
|
||||
-openssl-sys = "0.7.0"
|
||||
-[target.x86_64-unknown-openbsd.dependencies]
|
||||
-openssl-sys = "0.7.0"
|
||||
-[target.x86_64-unknown-dragonfly.dependencies]
|
||||
-openssl-sys = "0.7.0"
|
||||
-
|
||||
[[test]]
|
||||
|
||||
name = "test"
|
||||
--
|
||||
2.9.2
|
||||
|
||||
@@ -1,62 +0,0 @@
|
||||
From 308fd350907fba13f68dcdb8e48040582466cae6 Mon Sep 17 00:00:00 2001
|
||||
From: Cody P Schafer <dev@codyps.com>
|
||||
Date: Sat, 12 Dec 2015 22:53:37 -0500
|
||||
Subject: [PATCH] libgit2-sys: avoid blessed triples
|
||||
|
||||
---
|
||||
libgit2-sys/Cargo.toml | 33 +--------------------------------
|
||||
1 file changed, 1 insertion(+), 32 deletions(-)
|
||||
|
||||
diff --git a/libgit2-sys/Cargo.toml b/libgit2-sys/Cargo.toml
|
||||
index 2395314..29000ef 100644
|
||||
--- a/libgit2-sys/Cargo.toml
|
||||
+++ b/libgit2-sys/Cargo.toml
|
||||
@@ -17,44 +17,13 @@ path = "lib.rs"
|
||||
libssh2-sys = { version = ">= 0", optional = true }
|
||||
libc = "0.2"
|
||||
libz-sys = ">= 0"
|
||||
+openssl-sys = "0.7.0"
|
||||
|
||||
[build-dependencies]
|
||||
pkg-config = "0.3"
|
||||
cmake = "0.1.2"
|
||||
gcc = "0.3"
|
||||
|
||||
-[target."cfg(all(unix, not(target_os = \"macos\")))".dependencies]
|
||||
-openssl-sys = "0.7.0"
|
||||
-
|
||||
-[target.i686-unknown-linux-gnu.dependencies]
|
||||
-openssl-sys = "0.7.0"
|
||||
-[target.i586-unknown-linux-gnu.dependencies]
|
||||
-openssl-sys = "0.7.0"
|
||||
-[target.x86_64-unknown-linux-gnu.dependencies]
|
||||
-openssl-sys = "0.7.0"
|
||||
-[target.x86_64-unknown-linux-musl.dependencies]
|
||||
-openssl-sys = "0.7.0"
|
||||
-[target.aarch64-unknown-linux-gnu.dependencies]
|
||||
-openssl-sys = "0.7.0"
|
||||
-[target.powerpc64-unknown-linux-gnu.dependencies]
|
||||
-openssl-sys = "0.7.0"
|
||||
-[target.powerpc64le-unknown-linux-gnu.dependencies]
|
||||
-openssl-sys = "0.7.0"
|
||||
-[target.arm-unknown-linux-gnueabihf.dependencies]
|
||||
-openssl-sys = "0.7.0"
|
||||
-[target.armv7-unknown-linux-gnueabihf.dependencies]
|
||||
-openssl-sys = "0.7.0"
|
||||
-[target.i686-unknown-freebsd.dependencies]
|
||||
-openssl-sys = "0.7.0"
|
||||
-[target.x86_64-unknown-freebsd.dependencies]
|
||||
-openssl-sys = "0.7.0"
|
||||
-[target.x86_64-unknown-bitrig.dependencies]
|
||||
-openssl-sys = "0.7.0"
|
||||
-[target.x86_64-unknown-openbsd.dependencies]
|
||||
-openssl-sys = "0.7.0"
|
||||
-[target.x86_64-unknown-dragonfly.dependencies]
|
||||
-openssl-sys = "0.7.0"
|
||||
-
|
||||
[features]
|
||||
ssh = ["libssh2-sys"]
|
||||
https = []
|
||||
--
|
||||
2.9.2
|
||||
|
||||
@@ -1,70 +0,0 @@
|
||||
From 65f07216c2c7a341cf13c35ecc1a781d7a489511 Mon Sep 17 00:00:00 2001
|
||||
From: Cody P Schafer <dev@codyps.com>
|
||||
Date: Sat, 12 Dec 2015 22:44:14 -0500
|
||||
Subject: [PATCH] libssh2-sys: avoid explicitly linking in openssl
|
||||
|
||||
---
|
||||
libssh2-sys/Cargo.toml | 33 ---------------------------------
|
||||
libssh2-sys/lib.rs | 2 --
|
||||
2 files changed, 35 deletions(-)
|
||||
|
||||
diff --git a/libssh2-sys/Cargo.toml b/libssh2-sys/Cargo.toml
|
||||
index c4e006d..175be77 100644
|
||||
--- a/libssh2-sys/Cargo.toml
|
||||
+++ b/libssh2-sys/Cargo.toml
|
||||
@@ -19,39 +19,6 @@ libc = "0.2"
|
||||
[target."cfg(unix)".dependencies]
|
||||
openssl-sys = ">= 0"
|
||||
|
||||
-[target.i686-apple-darwin.dependencies]
|
||||
-openssl-sys = ">= 0"
|
||||
-[target.x86_64-apple-darwin.dependencies]
|
||||
-openssl-sys = ">= 0"
|
||||
-[target.i686-unknown-linux-gnu.dependencies]
|
||||
-openssl-sys = ">= 0"
|
||||
-[target.i586-unknown-linux-gnu.dependencies]
|
||||
-openssl-sys = ">= 0"
|
||||
-[target.x86_64-unknown-linux-gnu.dependencies]
|
||||
-openssl-sys = ">= 0"
|
||||
-[target.aarch64-unknown-linux-gnu.dependencies]
|
||||
-openssl-sys = ">= 0"
|
||||
-[target.powerpc64-unknown-linux-gnu.dependencies]
|
||||
-openssl-sys = ">= 0"
|
||||
-[target.powerpc64le-unknown-linux-gnu.dependencies]
|
||||
-openssl-sys = ">= 0"
|
||||
-[target.x86_64-unknown-linux-musl.dependencies]
|
||||
-openssl-sys = ">= 0"
|
||||
-[target.arm-unknown-linux-gnueabihf.dependencies]
|
||||
-openssl-sys = ">= 0"
|
||||
-[target.armv7-unknown-linux-gnueabihf.dependencies]
|
||||
-openssl-sys = ">= 0"
|
||||
-[target.i686-unknown-freebsd.dependencies]
|
||||
-openssl-sys = ">= 0"
|
||||
-[target.x86_64-unknown-freebsd.dependencies]
|
||||
-openssl-sys = ">= 0"
|
||||
-[target.x86_64-unknown-dragonfly.dependencies]
|
||||
-openssl-sys = ">= 0"
|
||||
-[target.x86_64-unknown-bitrig.dependencies]
|
||||
-openssl-sys = ">= 0"
|
||||
-[target.x86_64-unknown-openbsd.dependencies]
|
||||
-openssl-sys = ">= 0"
|
||||
-
|
||||
[build-dependencies]
|
||||
pkg-config = "0.3"
|
||||
cmake = "0.1.2"
|
||||
diff --git a/libssh2-sys/lib.rs b/libssh2-sys/lib.rs
|
||||
index 02fd203..3ca1806 100644
|
||||
--- a/libssh2-sys/lib.rs
|
||||
+++ b/libssh2-sys/lib.rs
|
||||
@@ -4,8 +4,6 @@
|
||||
extern crate libc;
|
||||
|
||||
extern crate libz_sys;
|
||||
-#[cfg(unix)]
|
||||
-extern crate openssl_sys;
|
||||
|
||||
use libc::{c_int, size_t, c_void, c_char, c_long, c_uchar, c_uint, c_ulong};
|
||||
use libc::ssize_t;
|
||||
--
|
||||
2.8.2
|
||||
|
||||
@@ -1,63 +0,0 @@
|
||||
From 3d850e1b1651a79085b994c12cdb78faa8271622 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Ho=C3=A0ng=20=C4=90=E1=BB=A9c=20Hi=E1=BA=BFu?=
|
||||
<hdhoang@zahe.me>
|
||||
Date: Mon, 1 Dec 2014 11:48:14 +0700
|
||||
Subject: [PATCH] update to new io::FileType enum
|
||||
|
||||
---
|
||||
src/lib.rs | 32 ++++++++++++++++----------------
|
||||
1 file changed, 16 insertions(+), 16 deletions(-)
|
||||
|
||||
diff --git a/src/lib.rs b/src/lib.rs
|
||||
index 5e13b84..3e24ff2 100644
|
||||
--- a/src/lib.rs
|
||||
+++ b/src/lib.rs
|
||||
@@ -283,12 +283,12 @@ impl<W: Writer> Archive<W> {
|
||||
octal(&mut header.dev_major, 0i);
|
||||
|
||||
header.link[0] = match stat.kind {
|
||||
- io::TypeFile => b'0',
|
||||
- io::TypeDirectory => b'5',
|
||||
- io::TypeNamedPipe => b'6',
|
||||
- io::TypeBlockSpecial => b'4',
|
||||
- io::TypeSymlink => b'2',
|
||||
- io::TypeUnknown => b' ',
|
||||
+ io::FileType::RegularFile => b'0',
|
||||
+ io::FileType::Directory => b'5',
|
||||
+ io::FileType::NamedPipe => b'6',
|
||||
+ io::FileType::BlockSpecial => b'4',
|
||||
+ io::FileType::Symlink => b'2',
|
||||
+ io::FileType::Unknown => b' ',
|
||||
};
|
||||
|
||||
// Final step, calculate the checksum
|
||||
@@ -411,16 +411,16 @@ impl<'a, R> File<'a, R> {
|
||||
/// Classify the type of file that this entry represents
|
||||
pub fn classify(&self) -> io::FileType {
|
||||
match (self.header.is_ustar(), self.header.link[0]) {
|
||||
- (_, b'0') => io::TypeFile,
|
||||
- (_, b'1') => io::TypeUnknown, // need a hard link enum?
|
||||
- (_, b'2') => io::TypeSymlink,
|
||||
- (false, _) => io::TypeUnknown, // not technically valid...
|
||||
-
|
||||
- (_, b'3') => io::TypeUnknown, // character special...
|
||||
- (_, b'4') => io::TypeBlockSpecial,
|
||||
- (_, b'5') => io::TypeDirectory,
|
||||
- (_, b'6') => io::TypeNamedPipe,
|
||||
- (_, _) => io::TypeUnknown, // not technically valid...
|
||||
+ (_, b'0') => io::FileType::RegularFile,
|
||||
+ (_, b'1') => io::FileType::Unknown, // need a hard link enum?
|
||||
+ (_, b'2') => io::FileType::Symlink,
|
||||
+ (false, _) => io::FileType::Unknown, // not technically valid...
|
||||
+
|
||||
+ (_, b'3') => io::FileType::Unknown, // character special...
|
||||
+ (_, b'4') => io::FileType::BlockSpecial,
|
||||
+ (_, b'5') => io::FileType::Directory,
|
||||
+ (_, b'6') => io::FileType::NamedPipe,
|
||||
+ (_, _) => io::FileType::Unknown, // not technically valid...
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
2.0.4
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
SUMMARY = "Rust compiler run-time"
|
||||
HOMEPAGE = "http://www.rust-lang.org"
|
||||
SECTION = "devel"
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=27b14ab4ce08d04c3a9a5f0ed7997362"
|
||||
|
||||
SRC_URI = "\
|
||||
https://static.rust-lang.org/dist/rustc-${PV}-src.tar.gz;name=rust \
|
||||
"
|
||||
|
||||
require rust-source-${PV}.inc
|
||||
|
||||
S = "${WORKDIR}/rustc-${PV}/src/compiler-rt"
|
||||
|
||||
do_compile () {
|
||||
oe_runmake -C ${S} \
|
||||
ProjSrcRoot="${S}" \
|
||||
ProjObjRoot="${B}" \
|
||||
CC="${CC}" \
|
||||
AR="${AR}" \
|
||||
RANLIB="${RANLIB}" \
|
||||
CFLAGS="${CFLAGS}" \
|
||||
TargetTriple=${HOST_SYS} \
|
||||
triple-builtins
|
||||
}
|
||||
|
||||
do_install () {
|
||||
mkdir -p ${D}${libdir}
|
||||
cp triple/builtins/libcompiler_rt.a ${D}${libdir}/libcompiler-rt.a
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
SUMMARY = "Rust compiler run-time"
|
||||
HOMEPAGE = "http://www.rust-lang.org"
|
||||
SECTION = "devel"
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://src/compiler-rt/LICENSE.TXT;md5=bf24bca27049b52e9738451aa55771d4"
|
||||
|
||||
require rust.inc
|
||||
require rust-source-${PV}.inc
|
||||
|
||||
DEPENDS += "rust-llvm-native (=${PV})"
|
||||
|
||||
S = "${WORKDIR}/rustc-${PV}"
|
||||
|
||||
DISABLE_STATIC = ""
|
||||
INHIBIT_DEFAULT_RUST_DEPS = "1"
|
||||
|
||||
do_compile () {
|
||||
oe_runmake ${TARGET_SYS}/rt/libcompiler-rt.a
|
||||
}
|
||||
|
||||
do_install () {
|
||||
mkdir -p ${D}${libdir}
|
||||
cp ${TARGET_SYS}/rt/libcompiler-rt.a ${D}${libdir}/libcompiler-rt.a
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
From 69b65762ccdf459143fc273a39b0a0e0c6d8fe3e Mon Sep 17 00:00:00 2001
|
||||
From: Steven Walter <swalter@lexmark.com>
|
||||
Date: Mon, 2 May 2016 19:57:46 -0400
|
||||
Subject: [PATCH 01/11] Add config for musl-based arm builds
|
||||
|
||||
---
|
||||
mk/cfg/arm-unknown-linux-musleabi.mk | 26 ++++++++++++++++++++++++++
|
||||
1 file changed, 26 insertions(+)
|
||||
create mode 100644 mk/cfg/arm-unknown-linux-musleabi.mk
|
||||
|
||||
diff --git a/mk/cfg/arm-unknown-linux-musleabi.mk b/mk/cfg/arm-unknown-linux-musleabi.mk
|
||||
new file mode 100644
|
||||
index 0000000..2485bd9
|
||||
--- /dev/null
|
||||
+++ b/mk/cfg/arm-unknown-linux-musleabi.mk
|
||||
@@ -0,0 +1,26 @@
|
||||
+# arm-unknown-linux-musleabi configuration
|
||||
+CROSS_PREFIX_arm-unknown-linux-musleabi=arm-linux-musleabi-
|
||||
+CC_arm-unknown-linux-musleabi=gcc
|
||||
+CXX_arm-unknown-linux-musleabi=g++
|
||||
+CPP_arm-unknown-linux-musleabi=gcc -E
|
||||
+AR_arm-unknown-linux-musleabi=ar
|
||||
+CFG_LIB_NAME_arm-unknown-linux-musleabi=lib$(1).so
|
||||
+CFG_STATIC_LIB_NAME_arm-unknown-linux-musleabi=lib$(1).a
|
||||
+CFG_LIB_GLOB_arm-unknown-linux-musleabi=lib$(1)-*.so
|
||||
+CFG_LIB_DSYM_GLOB_arm-unknown-linux-musleabi=lib$(1)-*.dylib.dSYM
|
||||
+CFG_JEMALLOC_CFLAGS_arm-unknown-linux-musleabi := -D__arm__ $(CFLAGS)
|
||||
+CFG_GCCISH_CFLAGS_arm-unknown-linux-musleabi := -Wall -g -fPIC -D__arm__ $(CFLAGS)
|
||||
+CFG_GCCISH_CXXFLAGS_arm-unknown-linux-musleabi := -fno-rtti $(CXXFLAGS)
|
||||
+CFG_GCCISH_LINK_FLAGS_arm-unknown-linux-musleabi := -shared -fPIC -g
|
||||
+CFG_GCCISH_DEF_FLAG_arm-unknown-linux-musleabi := -Wl,--export-dynamic,--dynamic-list=
|
||||
+CFG_LLC_FLAGS_arm-unknown-linux-musleabi :=
|
||||
+CFG_INSTALL_NAME_arm-unknown-linux-musleabi =
|
||||
+CFG_EXE_SUFFIX_arm-unknown-linux-musleabi :=
|
||||
+CFG_WINDOWSY_arm-unknown-linux-musleabi :=
|
||||
+CFG_UNIXY_arm-unknown-linux-musleabi := 1
|
||||
+CFG_LDPATH_arm-unknown-linux-musleabi :=
|
||||
+CFG_RUN_arm-unknown-linux-musleabi=$(2)
|
||||
+CFG_RUN_TARG_arm-unknown-linux-musleabi=$(call CFG_RUN_arm-unknown-linux-musleabi,,$(2))
|
||||
+RUSTC_FLAGS_arm-unknown-linux-musleabi :=
|
||||
+RUSTC_CROSS_FLAGS_arm-unknown-linux-musleabi :=
|
||||
+CFG_GNU_TRIPLE_arm-unknown-linux-musleabi := arm-unknown-linux-musleabi
|
||||
--
|
||||
2.7.4
|
||||
|
||||
@@ -1,107 +0,0 @@
|
||||
From 0535c75086a9c170d8d4d99b3030d9136ea6e2c7 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 02/11] 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 da5555d..6cd0ea9 100644
|
||||
--- a/src/librustc/session/config.rs
|
||||
+++ b/src/librustc/session/config.rs
|
||||
@@ -35,7 +35,7 @@ use getopts;
|
||||
use std::collections::HashMap;
|
||||
use std::env;
|
||||
use std::fmt;
|
||||
-use std::path::PathBuf;
|
||||
+use std::path::{Path, PathBuf};
|
||||
|
||||
pub struct Config {
|
||||
pub target: Target,
|
||||
@@ -787,8 +787,8 @@ pub fn build_configuration(sess: &Session) -> ast::CrateConfig {
|
||||
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) => {
|
||||
panic!(sp.fatal(&format!("Error loading target specification: {}", e)));
|
||||
diff --git a/src/librustc/session/mod.rs b/src/librustc/session/mod.rs
|
||||
index 907241d..d0e3743 100644
|
||||
--- a/src/librustc/session/mod.rs
|
||||
+++ b/src/librustc/session/mod.rs
|
||||
@@ -470,13 +470,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 2163a8a..38607f0 100644
|
||||
--- a/src/librustc_back/target/mod.rs
|
||||
+++ b/src/librustc_back/target/mod.rs
|
||||
@@ -48,6 +48,8 @@ use serialize::json::Json;
|
||||
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;
|
||||
@@ -477,12 +479,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())?;
|
||||
@@ -513,8 +516,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.7.4
|
||||
|
||||
@@ -1,73 +0,0 @@
|
||||
From 4290b8f28222824a558ac4471d26fe88b2889a5b 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 03/11] 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 c47020c..fcf1409 100644
|
||||
--- a/mk/main.mk
|
||||
+++ b/mk/main.mk
|
||||
@@ -403,32 +403,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))
|
||||
@@ -536,6 +530,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.7.4
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
From 06b8c4bc8f7056d604d8ef4d699273cc1dd39025 Mon Sep 17 00:00:00 2001
|
||||
From: Cody P Schafer <dev@codyps.com>
|
||||
Date: Tue, 18 Nov 2014 13:48:14 -0500
|
||||
Subject: [PATCH 04/11] mk: add missing CFG_LIBDIR_RELATIVE
|
||||
|
||||
---
|
||||
mk/grammar.mk | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/mk/grammar.mk b/mk/grammar.mk
|
||||
index 0d527bd..926f247 100644
|
||||
--- a/mk/grammar.mk
|
||||
+++ b/mk/grammar.mk
|
||||
@@ -11,8 +11,8 @@
|
||||
BG = $(CFG_BUILD_DIR)/grammar/
|
||||
SG = $(S)src/grammar/
|
||||
B = $(CFG_BUILD_DIR)/$(CFG_BUILD)/stage2/
|
||||
-L = $(B)lib/rustlib/$(CFG_BUILD)/lib
|
||||
-LD = $(CFG_BUILD)/stage2/lib/rustlib/$(CFG_BUILD)/lib/
|
||||
+L = $(B)$(CFG_LIBDIR_RELATIVE)/rustlib/$(CFG_BUILD)/lib
|
||||
+LD = $(CFG_BUILD)/stage2/$(CFG_LIBDIR_RELATIVE)/rustlib/$(CFG_BUILD)/lib/
|
||||
RUSTC = $(STAGE2_T_$(CFG_BUILD)_H_$(CFG_BUILD))
|
||||
ifeq ($(CFG_OSTYPE),apple-darwin)
|
||||
FLEX_LDFLAGS=-ll
|
||||
--
|
||||
2.7.4
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
From f7441b3080088d8131d106c59c3543b22c9e8211 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 06/11] 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 6b54ec8..5b41b75 100644
|
||||
--- a/src/libstd/thread/local.rs
|
||||
+++ b/src/libstd/thread/local.rs
|
||||
@@ -346,7 +346,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.7.4
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
From a73a748cd73920380ae1f069be91ff833e99d003 Mon Sep 17 00:00:00 2001
|
||||
From: Cody P Schafer <dev@codyps.com>
|
||||
Date: Mon, 2 Mar 2015 13:34:59 -0500
|
||||
Subject: [PATCH 07/11] mk/install: use disable-rewrite-paths
|
||||
|
||||
This stops the install scripts from doing work we've already handled.
|
||||
|
||||
Path rewriting is only useful for prepackaged binary installers.
|
||||
---
|
||||
mk/install.mk | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/mk/install.mk b/mk/install.mk
|
||||
index d2e5449..e67650b 100644
|
||||
--- a/mk/install.mk
|
||||
+++ b/mk/install.mk
|
||||
@@ -12,7 +12,9 @@ RUN_INSTALLER = cd tmp/empty_dir && \
|
||||
sh ../../tmp/dist/$(1)/install.sh \
|
||||
--prefix="$(DESTDIR)$(CFG_PREFIX)" \
|
||||
--libdir="$(DESTDIR)$(CFG_LIBDIR)" \
|
||||
- --mandir="$(DESTDIR)$(CFG_MANDIR)"
|
||||
+ --mandir="$(DESTDIR)$(CFG_MANDIR)" \
|
||||
+ "$(MAYBE_DISABLE_VERIFY)" \
|
||||
+ --disable-rewrite-paths
|
||||
|
||||
install:
|
||||
ifeq (root user, $(USER) $(patsubst %,user,$(SUDO_USER)))
|
||||
--
|
||||
2.7.4
|
||||
|
||||
@@ -1,60 +0,0 @@
|
||||
From 042a5df36597c2c6c23900667ae1b4299279092f Mon Sep 17 00:00:00 2001
|
||||
From: Steven Walter <swalter@lexmark.com>
|
||||
Date: Wed, 18 Nov 2015 08:33:26 -0500
|
||||
Subject: [PATCH 08/11] 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.
|
||||
---
|
||||
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 6cd0ea9..f90398d 100644
|
||||
--- a/src/librustc/session/config.rs
|
||||
+++ b/src/librustc/session/config.rs
|
||||
@@ -585,6 +585,8 @@ options! {CodegenOptions, CodegenSetter, basic_codegen_options,
|
||||
"choose the code model to use (llc -code-model for details)"),
|
||||
metadata: Vec<String> = (Vec::new(), parse_list,
|
||||
"metadata to mangle symbol names with"),
|
||||
+ crate_hash: String = ("".to_string(), parse_string,
|
||||
+ "override crate hash with given value"),
|
||||
extra_filename: String = ("".to_string(), parse_string,
|
||||
"extra data to put in each output filename"),
|
||||
codegen_units: usize = (1, parse_uint,
|
||||
diff --git a/src/librustc_trans/back/link.rs b/src/librustc_trans/back/link.rs
|
||||
index 222d447..e951476 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.7.4
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
From 44ee7a68f44132ebe32ac486355945131c7a2b83 Mon Sep 17 00:00:00 2001
|
||||
From: Steven Walter <swalter@lexmark.com>
|
||||
Date: Wed, 18 Nov 2015 08:41:17 -0500
|
||||
Subject: [PATCH 09/11] mk/platform.mk: pass -C crate_hash to builds
|
||||
|
||||
bitbake recipe will export FORCE_CRATE_HASH
|
||||
---
|
||||
mk/platform.mk | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/mk/platform.mk b/mk/platform.mk
|
||||
index c264462..b959d59 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.7.4
|
||||
|
||||
@@ -1,96 +0,0 @@
|
||||
From 9c76c93de35fb45ed18e75827649e299d8c4e94e Mon Sep 17 00:00:00 2001
|
||||
From: Eduard Burtescu <edy.burt@gmail.com>
|
||||
Date: Sun, 14 Aug 2016 11:16:28 +0300
|
||||
Subject: [PATCH 11/11] Get rid of the .note interpretation of rustc dylib
|
||||
metadata.
|
||||
|
||||
---
|
||||
src/librustc_metadata/loader.rs | 41 ++++++++++++++++++-----------------------
|
||||
src/librustc_trans/base.rs | 13 ++++++++++---
|
||||
2 files changed, 28 insertions(+), 26 deletions(-)
|
||||
|
||||
diff --git a/src/librustc_metadata/loader.rs b/src/librustc_metadata/loader.rs
|
||||
index dc10391..9430b70 100644
|
||||
--- a/src/librustc_metadata/loader.rs
|
||||
+++ b/src/librustc_metadata/loader.rs
|
||||
@@ -875,34 +875,29 @@ fn get_metadata_section_imp(target: &Target, flavor: CrateFlavor, filename: &Pat
|
||||
}
|
||||
|
||||
pub fn meta_section_name(target: &Target) -> &'static str {
|
||||
+ // Historical note:
|
||||
+ //
|
||||
+ // When using link.exe it was seen that the section name `.note.rustc`
|
||||
+ // was getting shortened to `.note.ru`, and according to the PE and COFF
|
||||
+ // specification:
|
||||
+ //
|
||||
+ // > Executable images do not use a string table and do not support
|
||||
+ // > section names longer than 8 characters
|
||||
+ //
|
||||
+ // https://msdn.microsoft.com/en-us/library/windows/hardware/gg463119.aspx
|
||||
+ //
|
||||
+ // As a result, we choose a slightly shorter name! As to why
|
||||
+ // `.note.rustc` works on MinGW, that's another good question...
|
||||
+
|
||||
if target.options.is_like_osx {
|
||||
- "__DATA,__note.rustc"
|
||||
- } else if target.options.is_like_msvc {
|
||||
- // When using link.exe it was seen that the section name `.note.rustc`
|
||||
- // was getting shortened to `.note.ru`, and according to the PE and COFF
|
||||
- // specification:
|
||||
- //
|
||||
- // > Executable images do not use a string table and do not support
|
||||
- // > section names longer than 8 characters
|
||||
- //
|
||||
- // https://msdn.microsoft.com/en-us/library/windows/hardware/gg463119.aspx
|
||||
- //
|
||||
- // As a result, we choose a slightly shorter name! As to why
|
||||
- // `.note.rustc` works on MinGW, that's another good question...
|
||||
- ".rustc"
|
||||
+ "__DATA,.rustc"
|
||||
} else {
|
||||
- ".note.rustc"
|
||||
+ ".rustc"
|
||||
}
|
||||
}
|
||||
|
||||
-pub fn read_meta_section_name(target: &Target) -> &'static str {
|
||||
- if target.options.is_like_osx {
|
||||
- "__note.rustc"
|
||||
- } else if target.options.is_like_msvc {
|
||||
- ".rustc"
|
||||
- } else {
|
||||
- ".note.rustc"
|
||||
- }
|
||||
+pub fn read_meta_section_name(_target: &Target) -> &'static str {
|
||||
+ ".rustc"
|
||||
}
|
||||
|
||||
// A diagnostic function for dumping crate metadata to an output stream
|
||||
diff --git a/src/librustc_trans/base.rs b/src/librustc_trans/base.rs
|
||||
index d4f0786..93c9d1a 100644
|
||||
--- a/src/librustc_trans/base.rs
|
||||
+++ b/src/librustc_trans/base.rs
|
||||
@@ -2523,10 +2523,17 @@ pub fn write_metadata<'a, 'tcx>(cx: &SharedCrateContext<'a, 'tcx>,
|
||||
};
|
||||
unsafe {
|
||||
llvm::LLVMSetInitializer(llglobal, llconst);
|
||||
- let name =
|
||||
+ let section_name =
|
||||
cx.tcx().sess.cstore.metadata_section_name(&cx.sess().target.target);
|
||||
- let name = CString::new(name).unwrap();
|
||||
- llvm::LLVMSetSection(llglobal, name.as_ptr())
|
||||
+ let name = CString::new(section_name).unwrap();
|
||||
+ llvm::LLVMSetSection(llglobal, name.as_ptr());
|
||||
+
|
||||
+ // Also generate a .section directive to force no
|
||||
+ // flags, at least for ELF outputs, so that the
|
||||
+ // metadata doesn't get loaded into memory.
|
||||
+ let directive = format!(".section {}", section_name);
|
||||
+ let directive = CString::new(directive).unwrap();
|
||||
+ llvm::LLVMSetModuleInlineAsm(cx.metadata_llmod(), directive.as_ptr())
|
||||
}
|
||||
return metadata;
|
||||
}
|
||||
--
|
||||
2.7.4
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
From 128503bf447e82b9e99bea8ef83294a6446036b5 Mon Sep 17 00:00:00 2001
|
||||
From: Cody P Schafer <dev@codyps.com>
|
||||
Date: Tue, 18 Nov 2014 13:48:14 -0500
|
||||
Subject: [PATCH 03/10] mk: add missing CFG_LIBDIR_RELATIVE
|
||||
|
||||
---
|
||||
mk/grammar.mk | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/mk/grammar.mk b/mk/grammar.mk
|
||||
index 0d527bd..926f247 100644
|
||||
--- a/mk/grammar.mk
|
||||
+++ b/mk/grammar.mk
|
||||
@@ -11,8 +11,8 @@
|
||||
BG = $(CFG_BUILD_DIR)/grammar/
|
||||
SG = $(S)src/grammar/
|
||||
B = $(CFG_BUILD_DIR)/$(CFG_BUILD)/stage2/
|
||||
-L = $(B)lib/rustlib/$(CFG_BUILD)/lib
|
||||
-LD = $(CFG_BUILD)/stage2/lib/rustlib/$(CFG_BUILD)/lib/
|
||||
+L = $(B)$(CFG_LIBDIR_RELATIVE)/rustlib/$(CFG_BUILD)/lib
|
||||
+LD = $(CFG_BUILD)/stage2/$(CFG_LIBDIR_RELATIVE)/rustlib/$(CFG_BUILD)/lib/
|
||||
RUSTC = $(STAGE2_T_$(CFG_BUILD)_H_$(CFG_BUILD))
|
||||
ifeq ($(CFG_OSTYPE),apple-darwin)
|
||||
FLEX_LDFLAGS=-ll
|
||||
--
|
||||
2.10.0
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
From f8d4b1ea925789bca1aa6261017d63f5efa95c0f Mon Sep 17 00:00:00 2001
|
||||
From: Cody P Schafer <dev@codyps.com>
|
||||
Date: Mon, 2 Mar 2015 13:34:59 -0500
|
||||
Subject: [PATCH 06/10] mk/install: use disable-rewrite-paths
|
||||
|
||||
This stops the install scripts from doing work we've already handled.
|
||||
|
||||
Path rewriting is only useful for prepackaged binary installers.
|
||||
---
|
||||
mk/install.mk | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/mk/install.mk b/mk/install.mk
|
||||
index d2e5449..e67650b 100644
|
||||
--- a/mk/install.mk
|
||||
+++ b/mk/install.mk
|
||||
@@ -12,7 +12,9 @@ RUN_INSTALLER = cd tmp/empty_dir && \
|
||||
sh ../../tmp/dist/$(1)/install.sh \
|
||||
--prefix="$(DESTDIR)$(CFG_PREFIX)" \
|
||||
--libdir="$(DESTDIR)$(CFG_LIBDIR)" \
|
||||
- --mandir="$(DESTDIR)$(CFG_MANDIR)"
|
||||
+ --mandir="$(DESTDIR)$(CFG_MANDIR)" \
|
||||
+ "$(MAYBE_DISABLE_VERIFY)" \
|
||||
+ --disable-rewrite-paths
|
||||
|
||||
install:
|
||||
ifeq (root user, $(USER) $(patsubst %,user,$(SUDO_USER)))
|
||||
--
|
||||
2.10.0
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1,58 +0,0 @@
|
||||
From c7daec775a917d9e3017bc35ea7d88cc9418f181 Mon Sep 17 00:00:00 2001
|
||||
From: Cody P Schafer <dev@codyps.com>
|
||||
Date: Mon, 2 Mar 2015 13:27:49 -0500
|
||||
Subject: [PATCH] add option to disable rewriting of install paths
|
||||
|
||||
This is intended for use by rust & cargo's `make install`, as in that
|
||||
case:
|
||||
|
||||
- these paths are typically built into the pre-install layout already
|
||||
- attempting to do the replacement will be incorrect subdirectory
|
||||
cases (ie: libdir=lib/foo)
|
||||
---
|
||||
install-template.sh | 21 ++++++++++++---------
|
||||
1 file changed, 12 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/install-template.sh b/install-template.sh
|
||||
index 042b955..4ecf430 100644
|
||||
--- a/install-template.sh
|
||||
+++ b/install-template.sh
|
||||
@@ -618,16 +618,18 @@ install_components() {
|
||||
# Decide the destination of the file
|
||||
local _file_install_path="$_dest_prefix/$_file"
|
||||
|
||||
- if echo "$_file" | grep "^lib/" > /dev/null
|
||||
- then
|
||||
- local _f="$(echo "$_file" | sed 's/^lib\///')"
|
||||
- _file_install_path="$CFG_LIBDIR/$_f"
|
||||
- fi
|
||||
+ if [ -n "${CFG_REWRITE_PATHS-}" ]; then
|
||||
+ if echo "$_file" | grep "^lib/" > /dev/null
|
||||
+ then
|
||||
+ local _f="$(echo "$_file" | sed 's/^lib\///')"
|
||||
+ _file_install_path="$CFG_LIBDIR/$_f"
|
||||
+ fi
|
||||
|
||||
- if echo "$_file" | grep "^share/man/" > /dev/null
|
||||
- then
|
||||
- local _f="$(echo "$_file" | sed 's/^share\/man\///')"
|
||||
- _file_install_path="$CFG_MANDIR/$_f"
|
||||
+ if echo "$_file" | grep "^share/man/" > /dev/null
|
||||
+ then
|
||||
+ local _f="$(echo "$_file" | sed 's/^share\/man\///')"
|
||||
+ _file_install_path="$CFG_MANDIR/$_f"
|
||||
+ fi
|
||||
fi
|
||||
|
||||
# Make sure there's a directory for it
|
||||
@@ -810,6 +812,7 @@ valopt mandir "$CFG_DESTDIR_PREFIX/share/man" "install man pages in PATH"
|
||||
opt ldconfig 1 "run ldconfig after installation (Linux only)"
|
||||
opt verify 1 "obsolete"
|
||||
flag verbose "run with verbose output"
|
||||
+opt rewrite-paths 1 "rewrite install paths for libdir & mandir"
|
||||
|
||||
if [ $HELP -eq 1 ]
|
||||
then
|
||||
--
|
||||
2.4.1
|
||||
|
||||
@@ -1,58 +0,0 @@
|
||||
From c7daec775a917d9e3017bc35ea7d88cc9418f181 Mon Sep 17 00:00:00 2001
|
||||
From: Cody P Schafer <dev@codyps.com>
|
||||
Date: Mon, 2 Mar 2015 13:27:49 -0500
|
||||
Subject: [PATCH] add option to disable rewriting of install paths
|
||||
|
||||
This is intended for use by rust & cargo's `make install`, as in that
|
||||
case:
|
||||
|
||||
- these paths are typically built into the pre-install layout already
|
||||
- attempting to do the replacement will be incorrect subdirectory
|
||||
cases (ie: libdir=lib/foo)
|
||||
---
|
||||
install-template.sh | 21 ++++++++++++---------
|
||||
1 file changed, 12 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/install-template.sh b/install-template.sh
|
||||
index 042b955..4ecf430 100644
|
||||
--- a/install-template.sh
|
||||
+++ b/install-template.sh
|
||||
@@ -618,16 +618,18 @@ install_components() {
|
||||
# Decide the destination of the file
|
||||
local _file_install_path="$_dest_prefix/$_file"
|
||||
|
||||
- if echo "$_file" | grep "^lib/" > /dev/null
|
||||
- then
|
||||
- local _f="$(echo "$_file" | sed 's/^lib\///')"
|
||||
- _file_install_path="$CFG_LIBDIR/$_f"
|
||||
- fi
|
||||
+ if [ -n "${CFG_REWRITE_PATHS-}" ]; then
|
||||
+ if echo "$_file" | grep "^lib/" > /dev/null
|
||||
+ then
|
||||
+ local _f="$(echo "$_file" | sed 's/^lib\///')"
|
||||
+ _file_install_path="$CFG_LIBDIR/$_f"
|
||||
+ fi
|
||||
|
||||
- if echo "$_file" | grep "^share/man/" > /dev/null
|
||||
- then
|
||||
- local _f="$(echo "$_file" | sed 's/^share\/man\///')"
|
||||
- _file_install_path="$CFG_MANDIR/$_f"
|
||||
+ if echo "$_file" | grep "^share/man/" > /dev/null
|
||||
+ then
|
||||
+ local _f="$(echo "$_file" | sed 's/^share\/man\///')"
|
||||
+ _file_install_path="$CFG_MANDIR/$_f"
|
||||
+ fi
|
||||
fi
|
||||
|
||||
# Make sure there's a directory for it
|
||||
@@ -810,6 +812,7 @@ valopt mandir "$CFG_DESTDIR_PREFIX/share/man" "install man pages in PATH"
|
||||
opt ldconfig 1 "run ldconfig after installation (Linux only)"
|
||||
opt verify 1 "obsolete"
|
||||
flag verbose "run with verbose output"
|
||||
+opt rewrite-paths 1 "rewrite install paths for libdir & mandir"
|
||||
|
||||
if [ $HELP -eq 1 ]
|
||||
then
|
||||
--
|
||||
2.4.1
|
||||
|
||||
31
recipes-devtools/rust/libstd-rs.inc
Normal file
31
recipes-devtools/rust/libstd-rs.inc
Normal file
@@ -0,0 +1,31 @@
|
||||
SUMMARY = "Rust standard libaries"
|
||||
HOMEPAGE = "http://www.rust-lang.org"
|
||||
SECTION = "devel"
|
||||
LICENSE = "MIT | Apache-2.0"
|
||||
|
||||
RUSTLIB_DEP = ""
|
||||
inherit cargo
|
||||
|
||||
DEPENDS_append_libc-musl = " libunwind"
|
||||
# Needed so cargo can find libbacktrace
|
||||
RUSTFLAGS += "-L ${STAGING_LIBDIR} -C link-arg=-Wl,-soname,libstd.so"
|
||||
|
||||
S = "${RUSTSRC}/src/libstd"
|
||||
|
||||
CARGO_BUILD_FLAGS += "--features '${CARGO_FEATURES}'"
|
||||
|
||||
do_compile_prepend () {
|
||||
export CARGO_TARGET_DIR="${B}"
|
||||
# For Rust 1.13.0 and newer
|
||||
export RUSTC_BOOTSTRAP="1"
|
||||
}
|
||||
|
||||
do_install () {
|
||||
mkdir -p ${D}${rustlibdir}
|
||||
|
||||
# With the incremental build support added in 1.24, the libstd deps directory also includes dependency
|
||||
# files that get installed. Those are really only needed to incrementally rebuild the libstd library
|
||||
# itself and don't need to be installed.
|
||||
rm -f ${B}/${TARGET_SYS}/${BUILD_DIR}/deps/*.d
|
||||
cp ${B}/${TARGET_SYS}/${BUILD_DIR}/deps/* ${D}${rustlibdir}
|
||||
}
|
||||
@@ -1,41 +0,0 @@
|
||||
SUMMARY = "Rust standard libaries"
|
||||
HOMEPAGE = "http://www.rust-lang.org"
|
||||
SECTION = "devel"
|
||||
LICENSE = "MIT | Apache-2.0"
|
||||
LIC_FILES_CHKSUM ="file://COPYRIGHT;md5=43e1f1fb9c0ee3af66693d8c4fecafa8"
|
||||
|
||||
SRC_URI = "\
|
||||
https://static.rust-lang.org/dist/rustc-${PV}-src.tar.gz;name=rust \
|
||||
"
|
||||
|
||||
require rust-source-${PV}.inc
|
||||
|
||||
S = "${WORKDIR}/rustc-${PV}"
|
||||
|
||||
CARGO_INDEX_COMMIT = "6127fc24b0b6fe73fe4d339817fbf000b9a798a2"
|
||||
|
||||
SRC_URI += "\
|
||||
crate://crates.io/gcc/0.3.26 \
|
||||
crate-index://crates.io/${CARGO_INDEX_COMMIT} \
|
||||
"
|
||||
|
||||
DEPENDS += "compiler-rt (=${PV})"
|
||||
|
||||
RUSTLIB_DEP = ""
|
||||
inherit cargo
|
||||
|
||||
# Needed so cargo can find libbacktrace
|
||||
RUSTFLAGS += "-L ${STAGING_LIBDIR}"
|
||||
|
||||
S = "${WORKDIR}/rustc-${PV}"
|
||||
|
||||
do_compile_prepend () {
|
||||
cd ${S}/src/rustc/std_shim
|
||||
export CARGO_TARGET_DIR="${B}"
|
||||
export RUSTC_BOOTSTRAP_KEY="${RS_KEY}"
|
||||
}
|
||||
|
||||
do_install () {
|
||||
mkdir -p ${D}${rustlibdir}
|
||||
cp ${B}/${TARGET_SYS}/release/deps/* ${D}${rustlibdir}
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
SUMMARY = "Rust standard libaries"
|
||||
HOMEPAGE = "http://www.rust-lang.org"
|
||||
SECTION = "devel"
|
||||
LICENSE = "MIT | Apache-2.0"
|
||||
LIC_FILES_CHKSUM ="file://COPYRIGHT;md5=43e1f1fb9c0ee3af66693d8c4fecafa8"
|
||||
|
||||
require rust-source-${PV}.inc
|
||||
|
||||
S = "${WORKDIR}/rustc-${PV}"
|
||||
|
||||
CARGO_INDEX_COMMIT = "6127fc24b0b6fe73fe4d339817fbf000b9a798a2"
|
||||
|
||||
SRC_URI += "\
|
||||
crate://crates.io/gcc/0.3.27 \
|
||||
crate-index://crates.io/${CARGO_INDEX_COMMIT} \
|
||||
"
|
||||
|
||||
DEPENDS += "compiler-rt (=${PV})"
|
||||
|
||||
RUSTLIB_DEP = ""
|
||||
inherit cargo
|
||||
|
||||
# Needed so cargo can find libbacktrace
|
||||
RUSTFLAGS += "-L ${STAGING_LIBDIR}"
|
||||
|
||||
S = "${WORKDIR}/rustc-${PV}"
|
||||
|
||||
do_compile_prepend () {
|
||||
cd ${S}/src/rustc/std_shim
|
||||
export CARGO_TARGET_DIR="${B}"
|
||||
export RUSTC_BOOTSTRAP_KEY="${RS_KEY}"
|
||||
}
|
||||
|
||||
do_install () {
|
||||
mkdir -p ${D}${rustlibdir}
|
||||
cp ${B}/${TARGET_SYS}/release/deps/* ${D}${rustlibdir}
|
||||
}
|
||||
8
recipes-devtools/rust/libstd-rs_1.34.2.bb
Normal file
8
recipes-devtools/rust/libstd-rs_1.34.2.bb
Normal file
@@ -0,0 +1,8 @@
|
||||
require rust-source-${PV}.inc
|
||||
require libstd-rs.inc
|
||||
|
||||
LIC_FILES_CHKSUM = "file://../../COPYRIGHT;md5=93a95682d51b4cb0a633a97046940ef0"
|
||||
|
||||
CARGO_FEATURES ?= "panic-unwind backtrace"
|
||||
|
||||
CARGO_VENDORING_DIRECTORY = "${RUSTSRC}/vendor"
|
||||
8
recipes-devtools/rust/libstd-rs_1.36.0.bb
Normal file
8
recipes-devtools/rust/libstd-rs_1.36.0.bb
Normal file
@@ -0,0 +1,8 @@
|
||||
require rust-source-${PV}.inc
|
||||
require libstd-rs.inc
|
||||
|
||||
LIC_FILES_CHKSUM = "file://../../COPYRIGHT;md5=93a95682d51b4cb0a633a97046940ef0"
|
||||
|
||||
CARGO_FEATURES ?= "panic-unwind backtrace"
|
||||
|
||||
CARGO_VENDORING_DIRECTORY = "${RUSTSRC}/vendor"
|
||||
8
recipes-devtools/rust/libstd-rs_1.37.0.bb
Normal file
8
recipes-devtools/rust/libstd-rs_1.37.0.bb
Normal file
@@ -0,0 +1,8 @@
|
||||
require rust-source-${PV}.inc
|
||||
require libstd-rs.inc
|
||||
|
||||
LIC_FILES_CHKSUM = "file://../../COPYRIGHT;md5=93a95682d51b4cb0a633a97046940ef0"
|
||||
|
||||
CARGO_FEATURES ?= "panic-unwind backtrace"
|
||||
|
||||
CARGO_VENDORING_DIRECTORY = "${RUSTSRC}/vendor"
|
||||
8
recipes-devtools/rust/libstd-rs_1.39.0.bb
Normal file
8
recipes-devtools/rust/libstd-rs_1.39.0.bb
Normal file
@@ -0,0 +1,8 @@
|
||||
require rust-source-${PV}.inc
|
||||
require libstd-rs.inc
|
||||
|
||||
LIC_FILES_CHKSUM = "file://../../COPYRIGHT;md5=93a95682d51b4cb0a633a97046940ef0"
|
||||
|
||||
CARGO_FEATURES ?= "panic-unwind backtrace"
|
||||
|
||||
CARGO_VENDORING_DIRECTORY = "${RUSTSRC}/vendor"
|
||||
8
recipes-devtools/rust/libstd-rs_1.40.0.bb
Normal file
8
recipes-devtools/rust/libstd-rs_1.40.0.bb
Normal file
@@ -0,0 +1,8 @@
|
||||
require rust-source-${PV}.inc
|
||||
require libstd-rs.inc
|
||||
|
||||
LIC_FILES_CHKSUM = "file://../../COPYRIGHT;md5=93a95682d51b4cb0a633a97046940ef0"
|
||||
|
||||
CARGO_FEATURES ?= "panic-unwind backtrace"
|
||||
|
||||
CARGO_VENDORING_DIRECTORY = "${RUSTSRC}/vendor"
|
||||
8
recipes-devtools/rust/libstd-rs_1.41.0.bb
Normal file
8
recipes-devtools/rust/libstd-rs_1.41.0.bb
Normal file
@@ -0,0 +1,8 @@
|
||||
require rust-source-${PV}.inc
|
||||
require libstd-rs.inc
|
||||
|
||||
LIC_FILES_CHKSUM = "file://../../COPYRIGHT;md5=93a95682d51b4cb0a633a97046940ef0"
|
||||
|
||||
CARGO_FEATURES ?= "panic-unwind backtrace"
|
||||
|
||||
CARGO_VENDORING_DIRECTORY = "${RUSTSRC}/vendor"
|
||||
@@ -1,6 +1,20 @@
|
||||
require rust.inc
|
||||
inherit cross
|
||||
require rust-source-${PV}.inc
|
||||
|
||||
python do_rust_gen_targets () {
|
||||
wd = d.getVar('WORKDIR') + '/targets/'
|
||||
# It is important 'TARGET' is last here so that it overrides our less
|
||||
# informed choices for BUILD & HOST if TARGET happens to be the same as
|
||||
# either of them.
|
||||
for thing in ['BUILD', 'HOST', 'TARGET']:
|
||||
bb.debug(1, "rust_gen_target for " + thing)
|
||||
features = ""
|
||||
cpu = "generic"
|
||||
if thing is "TARGET":
|
||||
features = d.getVar('TARGET_LLVM_FEATURES') or ""
|
||||
cpu = d.getVar('TARGET_LLVM_CPU')
|
||||
rust_gen_target(d, thing, wd, features, cpu)
|
||||
}
|
||||
|
||||
# Otherwise we'll depend on what we provide
|
||||
INHIBIT_DEFAULT_RUST_DEPS = "1"
|
||||
@@ -33,6 +47,9 @@ BUILD_POST_LINK_ARGS_append = " -Wl,-rpath=../../lib"
|
||||
# We need the same thing for the calls to the compiler when building the runtime crap
|
||||
TARGET_CC_ARCH_append = " --sysroot=${STAGING_DIR_TARGET}"
|
||||
|
||||
do_rust_setup_snapshot () {
|
||||
}
|
||||
|
||||
do_configure () {
|
||||
}
|
||||
|
||||
@@ -1,50 +0,0 @@
|
||||
require rust.inc
|
||||
inherit cross
|
||||
require rust-source-${PV}.inc
|
||||
|
||||
# Otherwise we'll depend on what we provide
|
||||
INHIBIT_DEFAULT_RUST_DEPS = "1"
|
||||
|
||||
# Unlike native (which nicely maps it's DEPENDS) cross wipes them out completely.
|
||||
# Generally, we (and cross in general) need the same things that native needs,
|
||||
# so it might make sense to take it's mapping. For now, though, we just mention
|
||||
# the bits we need explicitly.
|
||||
DEPENDS += "rust-llvm-native"
|
||||
DEPENDS += "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}compilerlibs virtual/libc"
|
||||
DEPENDS += "rust-native"
|
||||
|
||||
PROVIDES = "virtual/${TARGET_PREFIX}rust"
|
||||
PN = "rust-cross-${TARGET_ARCH}"
|
||||
|
||||
# In the cross compilation case, rustc doesn't seem to get the rpath quite
|
||||
# right. It manages to include '../../lib/${TARGET_PREFIX}', but doesn't
|
||||
# include the '../../lib' (ie: relative path from cross_bindir to normal
|
||||
# libdir. As a result, we end up not being able to properly reference files in normal ${libdir}.
|
||||
# Most of the time this happens to work fine as the systems libraries are
|
||||
# subsituted, but sometimes a host system will lack a library, or the right
|
||||
# version of a library (libtinfo was how I noticed this).
|
||||
#
|
||||
# FIXME: this should really be fixed in rust itself.
|
||||
# FIXME: using hard-coded relative paths is wrong, we should ask bitbake for
|
||||
# the relative path between 2 of it's vars.
|
||||
HOST_POST_LINK_ARGS_append = " -Wl,-rpath=../../lib"
|
||||
BUILD_POST_LINK_ARGS_append = " -Wl,-rpath=../../lib"
|
||||
|
||||
# We need the same thing for the calls to the compiler when building the runtime crap
|
||||
TARGET_CC_ARCH_append = " --sysroot=${STAGING_DIR_TARGET}"
|
||||
|
||||
do_configure () {
|
||||
}
|
||||
|
||||
do_compile () {
|
||||
}
|
||||
|
||||
do_install () {
|
||||
mkdir -p ${D}${prefix}/${base_libdir_native}/rustlib
|
||||
cp ${WORKDIR}/targets/${TARGET_SYS}.json ${D}${prefix}/${base_libdir_native}/rustlib
|
||||
}
|
||||
|
||||
rust_cross_sysroot_preprocess() {
|
||||
sysroot_stage_dir ${D}${prefix}/${base_libdir_native}/rustlib ${SYSROOT_DESTDIR}${prefix}/${base_libdir_native}/rustlib
|
||||
}
|
||||
SYSROOT_PREPROCESS_FUNCS += "rust_cross_sysroot_preprocess"
|
||||
3
recipes-devtools/rust/rust-cross_1.34.2.bb
Normal file
3
recipes-devtools/rust/rust-cross_1.34.2.bb
Normal file
@@ -0,0 +1,3 @@
|
||||
require rust-cross.inc
|
||||
require rust-source-${PV}.inc
|
||||
|
||||
3
recipes-devtools/rust/rust-cross_1.36.0.bb
Normal file
3
recipes-devtools/rust/rust-cross_1.36.0.bb
Normal file
@@ -0,0 +1,3 @@
|
||||
require rust-cross.inc
|
||||
require rust-source-${PV}.inc
|
||||
|
||||
3
recipes-devtools/rust/rust-cross_1.37.0.bb
Normal file
3
recipes-devtools/rust/rust-cross_1.37.0.bb
Normal file
@@ -0,0 +1,3 @@
|
||||
require rust-cross.inc
|
||||
require rust-source-${PV}.inc
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
require rust-llvm.inc
|
||||
require rust-cross.inc
|
||||
require rust-source-${PV}.inc
|
||||
2
recipes-devtools/rust/rust-cross_1.40.0.bb
Normal file
2
recipes-devtools/rust/rust-cross_1.40.0.bb
Normal file
@@ -0,0 +1,2 @@
|
||||
require rust-cross.inc
|
||||
require rust-source-${PV}.inc
|
||||
2
recipes-devtools/rust/rust-cross_1.41.0.bb
Normal file
2
recipes-devtools/rust/rust-cross_1.41.0.bb
Normal file
@@ -0,0 +1,2 @@
|
||||
require rust-cross.inc
|
||||
require rust-source-${PV}.inc
|
||||
5
recipes-devtools/rust/rust-llvm-ncsa.inc
Normal file
5
recipes-devtools/rust/rust-llvm-ncsa.inc
Normal file
@@ -0,0 +1,5 @@
|
||||
LICENSE = "NCSA"
|
||||
|
||||
LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=4c0bc17c954e99fd547528d938832bfa"
|
||||
|
||||
require rust-llvm.inc
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user