27 Commits

Author SHA1 Message Date
Steven Walter
0d4f726e89 Merge branch 'master' into add-more-ci 2018-12-07 17:40:29 -05:00
Doug Goldstein
4c9068bd09 Merge pull request #216 from hongxu-jia/master
cargo_common.bbclass: fix bashism
2018-11-23 16:46:58 -06:00
Hongxu Jia
3b9251e732 cargo_common.bbclass: fix bashism
While /bin/sh -> dash, var-EXTERNALSRC didn't work

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
2018-11-20 22:10:18 +08:00
Derek Straka
ea613e2ae2 Merge pull request #212 from OSSystems/master
Use libssh2 from system and upgrade cargo to 0.31.0
2018-11-13 08:46:41 -05:00
Derek Straka
e660179c55 Merge branch 'master' into master 2018-11-12 21:30:03 -05:00
Derek Straka
318a4c6f25 Merge pull request #215 from myagley/miyagley/cxxflags
Fix TARGET_CXXFLAGS in cargo_common
2018-11-12 21:29:47 -05:00
Mike Yagley
c7fc7986c2 Fix TARGET_CXXFLAGS in cargo_common 2018-11-12 13:44:02 -08:00
Derek Straka
50828f8af2 Merge branch 'master' into master 2018-11-12 10:11:32 -05:00
Derek Straka
adf3f10036 Merge pull request #214 from YoeDistro/yoe/mut
Fix building llvm (inspirations from meta-clang)
2018-11-12 10:11:11 -05:00
Khem Raj
446d28d6e1 rust: Use llvm-rust-native and env variables to configure llvm-config
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2018-11-09 22:53:49 -08:00
Khem Raj
b15ba05ea8 rust-llvm: Make llvm-config cross compile friendly
Import patches from clang layer to ensure that llvm-config
can be provided configs from environment

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2018-11-09 22:52:05 -08:00
Otavio Salvador
f54025fed9 cargo: Add 0.31.0 recipe
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2018-11-09 08:06:29 -02:00
Otavio Salvador
f317737fae cargo: Ensure libssh2 from system is used
This forces the use of libssh2 by exporting the
LIBSSH2_SYS_USE_PKG_CONFIG environment variable.

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2018-11-05 14:33:01 -02:00
Khem Raj
e04d99bf38 rust-llvm: Fix build with OE-core master
Disable libxml2 explicitly
Disable building hosttools on target build

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2018-11-02 15:05:17 -07:00
Derek Straka
6b060617cd Merge pull request #210 from alimon/master
conf/layer.conf: Add thud to the LAYERSERIES_COMPAT
2018-10-20 13:35:39 -04:00
Aníbal Limón
99ec7396f6 conf/layer.conf: Add thud to the LAYERSERIES_COMPAT
To support current master builds.

Signed-off-by: Aníbal Limón <anibal.limon@linaro.org>
2018-10-19 19:48:18 -05:00
Derek Straka
1119c88ec3 Merge branch 'master' into add-more-ci 2018-08-13 11:41:16 -04:00
Derek Straka
f81fbebaeb Merge pull request #206 from srwalter/disable-llvm-assertions
rust-llvm: correctly disable assertions
2018-08-11 07:42:08 -04:00
Steven Walter
5a9933dd46 rust-llvm: correctly disable assertions
We were already trying to disable assertions, but it wasn't working.
rust-llvm now configures assertions based on the CMAKE_BUILD_TYPE.
Setting that to "Release" causes assertions to be disabled, which is
what we want.
2018-08-08 12:37:17 -04:00
Derek Straka
0c02af0d86 Add the musl builds to the CI loop
Signed-off-by: Derek Straka <derek@asterius.io>
2018-07-25 16:23:27 -04:00
Derek Straka
badf251873 Merge pull request #205 from tylerwhall/remap-path-prefix
rust-common: fix remap-path-prefix for 1.26
2018-07-23 11:59:53 -04:00
Tyler Hall
060e033df9 rust-common: fix remap-path-prefix for 1.26
Before the flag was stabilized, it required two arguments of the form
"from=<from_path>" and "to=<to_path>" respectively. The stabilized
version uses one argument of the form "<from_path>=<to_path>".

Unfortunately the old format is still parsed successfully, but results
in attempting to replace the literal paths "from" and "to".

https://github.com/rust-lang/rust/issues/41555#issuecomment-320951103
2018-07-22 15:48:46 -04:00
Derek Straka
6d3f61e5ce Merge pull request #202 from Fulkerson/1.27.1
Bump to Rust 1.27.1
2018-07-18 12:34:17 -04:00
Johan Anderholm
bbf4f77f98 Bump to Rust 1.27.1 2018-07-18 08:15:34 +02:00
Steven Walter
b7380307d0 Merge pull request #204 from meta-rust/allow-overriding-libstd-features
libstd-rs: use a separate variable for --features
2018-07-16 12:04:30 -04:00
Steven Walter
8b471a1bdc libstd-rs: use a separate variable for --features
This will allow features to be easily modified through a bbappend file
in another layer.
2018-07-16 09:09:10 -04:00
Derek Straka
b82e450b5a Merge pull request #201 from meta-rust/fix-debug
libstd-rs: support debug builds
2018-07-12 17:09:33 -04:00
20 changed files with 1036 additions and 37 deletions

7
Jenkinsfile vendored
View File

@@ -17,8 +17,11 @@ for (int i = 0; i < targets.size(); i++) {
stage("fetch $machine") {
sh "GIT_LOCAL_REF_DIR=/srv/git-cache/ ./scripts/fetch.sh master"
}
stage("build $machine") {
sh "MACHINE=${machine} ./scripts/build.sh"
stage("build glibc $machine") {
sh "MACHINE=${machine} TCLIBC=glibc ./scripts/build.sh"
}
stage("build musl $machine") {
sh "MACHINE=${machine} TCLIBC=musl ./scripts/build.sh"
}
} catch (e) {
echo "Caught: ${e}"

View File

@@ -35,7 +35,7 @@ cargo_common_do_configure () {
directory = "${CARGO_HOME}/bitbake"
EOF
if [ "${EXTERNALSRC}" == "" ]; then
if [ -z "${EXTERNALSRC}" ]; then
cat <<- EOF >> ${CARGO_HOME}/config
[source.crates-io]
replace-with = "bitbake"
@@ -60,7 +60,7 @@ oe_cargo_fix_env () {
export TARGET_CC="${RUST_TARGET_CC}"
export TARGET_CXX="${RUST_TARGET_CXX}"
export TARGET_CFLAGS="${CFLAGS}"
export TARGET_CFLAGS="${CXXFLAGS}"
export TARGET_CXXFLAGS="${CXXFLAGS}"
export TARGET_AR="${AR}"
export HOST_CC="${RUST_BUILD_CC}"
export HOST_CXX="${RUST_BUILD_CXX}"

View File

@@ -5,7 +5,7 @@ FILES_${PN}-dev += "${rustlibdir}/*.rlib"
FILES_${PN}-dbg += "${rustlibdir}/.debug"
RUSTLIB = "-L ${STAGING_LIBDIR}/rust"
RUST_DEBUG_REMAP = "--remap-path-prefix=from=${WORKDIR} --remap-path-prefix=to=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}"
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"

View File

@@ -9,7 +9,7 @@ BBFILE_PATTERN_rust-layer := "^${LAYERDIR}/"
BBFILE_PRIORITY_rust-layer = "7"
LAYERDEPENDS_rust-layer = "core openembedded-layer"
LAYERSERIES_COMPAT_rust-layer = "rocko sumo"
LAYERSERIES_COMPAT_rust-layer = "rocko sumo thud"
# Override security flags
require conf/distro/include/rust_security_flags.inc

View File

@@ -0,0 +1,12 @@
CARGO_SNAPSHOT = "cargo-0.27.0-${BUILD_ARCH}-unknown-linux-gnu"
SRC_URI[cargo-snapshot-x86_64.md5sum] = "ca366ba1e97ffc02b72dc74859db35e2"
SRC_URI[cargo-snapshot-x86_64.sha256sum] = "8c17710252513d8130141f2c12b4efeef67f0def252b94b246fe326a9a75043b"
SRC_URI += "\
https://static.rust-lang.org/dist/${CARGO_SNAPSHOT}.tar.gz;name=cargo-snapshot-${BUILD_ARCH} \
"
# 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}/cargo/bin/cargo"

View File

@@ -0,0 +1,12 @@
CARGO_SNAPSHOT = "cargo-0.30.0-${BUILD_ARCH}-unknown-linux-gnu"
SRC_URI[cargo-snapshot-x86_64.md5sum] = "79b62c75b11ef480163276be189fdac5"
SRC_URI[cargo-snapshot-x86_64.sha256sum] = "32f210fd3142fda7825a06e95d1aa4b54035c2da435d8cf0dd03fad410c8002f"
SRC_URI += "\
https://static.rust-lang.org/dist/${CARGO_SNAPSHOT}.tar.gz;name=cargo-snapshot-${BUILD_ARCH} \
"
# 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}/cargo/bin/cargo"

View File

@@ -6,7 +6,8 @@ LIC_FILES_CHKSUM += " \
file://LICENSE-THIRD-PARTY;md5=892ea68b169e69cfe75097fc38a15b56 \
"
# Used in libgit2-sys's build.rs, needed for pkg-config to be used
# Needed for pkg-config to be used
export LIBGIT2_SYS_USE_PKG_CONFIG = "1"
export LIBSSH2_SYS_USE_PKG_CONFIG = "1"
BBCLASSEXTEND = "native"

View File

@@ -0,0 +1,153 @@
# Auto-Generated by cargo-bitbake 0.3.10
#
inherit cargo
# If this is git based prefer versioned ones if they exist
# DEFAULT_PREFERENCE = "-1"
# how to get cargo could be as easy as but default to a git checkout:
# SRC_URI += "crate://crates.io/cargo/0.28.0"
SRC_URI += "git://github.com/rust-lang/cargo.git;protocol=https;branch=rust-1.27.0"
SRCREV = "1e95190e5ffd6e6b701ad87dab4671246b96a9ce"
S = "${WORKDIR}/git"
CARGO_SRC_DIR=""
# please note if you have entries that do not begin with crate://
# you must change them to how that package can be fetched
SRC_URI += " \
crate://crates.io/aho-corasick/0.6.5 \
crate://crates.io/ansi_term/0.11.0 \
crate://crates.io/atty/0.2.10 \
crate://crates.io/backtrace-sys/0.1.23 \
crate://crates.io/backtrace/0.3.9 \
crate://crates.io/bitflags/1.0.3 \
crate://crates.io/bufstream/0.1.3 \
crate://crates.io/cc/1.0.17 \
crate://crates.io/cfg-if/0.1.4 \
crate://crates.io/clap/2.32.0 \
crate://crates.io/cmake/0.1.31 \
crate://crates.io/commoncrypto-sys/0.2.0 \
crate://crates.io/commoncrypto/0.2.0 \
crate://crates.io/core-foundation-sys/0.5.1 \
crate://crates.io/core-foundation/0.5.1 \
crate://crates.io/crossbeam/0.3.2 \
crate://crates.io/crypto-hash/0.3.1 \
crate://crates.io/curl-sys/0.4.5 \
crate://crates.io/curl/0.4.12 \
crate://crates.io/dtoa/0.4.2 \
crate://crates.io/env_logger/0.5.10 \
crate://crates.io/failure/0.1.1 \
crate://crates.io/failure_derive/0.1.1 \
crate://crates.io/filetime/0.2.1 \
crate://crates.io/flate2/1.0.1 \
crate://crates.io/fnv/1.0.6 \
crate://crates.io/foreign-types-shared/0.1.1 \
crate://crates.io/foreign-types/0.3.2 \
crate://crates.io/fs2/0.4.3 \
crate://crates.io/fuchsia-zircon-sys/0.3.3 \
crate://crates.io/fuchsia-zircon/0.3.3 \
crate://crates.io/git2-curl/0.8.1 \
crate://crates.io/git2/0.7.2 \
crate://crates.io/glob/0.2.11 \
crate://crates.io/globset/0.4.0 \
crate://crates.io/hex/0.3.2 \
crate://crates.io/home/0.3.3 \
crate://crates.io/humantime/1.1.1 \
crate://crates.io/idna/0.1.4 \
crate://crates.io/ignore/0.4.2 \
crate://crates.io/itoa/0.4.1 \
crate://crates.io/jobserver/0.1.11 \
crate://crates.io/kernel32-sys/0.2.2 \
crate://crates.io/lazy_static/1.0.1 \
crate://crates.io/lazycell/0.6.0 \
crate://crates.io/libc/0.2.42 \
crate://crates.io/libgit2-sys/0.7.4 \
crate://crates.io/libssh2-sys/0.2.7 \
crate://crates.io/libz-sys/1.0.18 \
crate://crates.io/log/0.4.3 \
crate://crates.io/matches/0.1.6 \
crate://crates.io/memchr/2.0.1 \
crate://crates.io/miniz-sys/0.1.10 \
crate://crates.io/miow/0.3.1 \
crate://crates.io/num-traits/0.2.5 \
crate://crates.io/num_cpus/1.8.0 \
crate://crates.io/openssl-probe/0.1.2 \
crate://crates.io/openssl-sys/0.9.33 \
crate://crates.io/openssl/0.10.10 \
crate://crates.io/percent-encoding/1.0.1 \
crate://crates.io/pkg-config/0.3.11 \
crate://crates.io/proc-macro2/0.4.6 \
crate://crates.io/quick-error/1.2.2 \
crate://crates.io/quote/0.3.15 \
crate://crates.io/quote/0.6.3 \
crate://crates.io/rand/0.4.2 \
crate://crates.io/redox_syscall/0.1.40 \
crate://crates.io/redox_termios/0.1.1 \
crate://crates.io/regex-syntax/0.5.6 \
crate://crates.io/regex-syntax/0.6.1 \
crate://crates.io/regex/0.2.11 \
crate://crates.io/regex/1.0.1 \
crate://crates.io/remove_dir_all/0.5.1 \
crate://crates.io/rustc-demangle/0.1.8 \
crate://crates.io/same-file/1.0.2 \
crate://crates.io/schannel/0.1.13 \
crate://crates.io/scopeguard/0.3.3 \
crate://crates.io/semver-parser/0.7.0 \
crate://crates.io/semver/0.9.0 \
crate://crates.io/serde/1.0.69 \
crate://crates.io/serde_derive/1.0.69 \
crate://crates.io/serde_ignored/0.0.4 \
crate://crates.io/serde_json/1.0.22 \
crate://crates.io/shell-escape/0.1.4 \
crate://crates.io/socket2/0.3.7 \
crate://crates.io/strsim/0.7.0 \
crate://crates.io/syn/0.11.11 \
crate://crates.io/syn/0.14.4 \
crate://crates.io/synom/0.11.3 \
crate://crates.io/synstructure/0.6.1 \
crate://crates.io/tar/0.4.16 \
crate://crates.io/tempfile/3.0.2 \
crate://crates.io/termcolor/0.3.6 \
crate://crates.io/termion/1.5.1 \
crate://crates.io/textwrap/0.10.0 \
crate://crates.io/thread_local/0.3.5 \
crate://crates.io/toml/0.4.6 \
crate://crates.io/ucd-util/0.1.1 \
crate://crates.io/unicode-bidi/0.3.4 \
crate://crates.io/unicode-normalization/0.1.7 \
crate://crates.io/unicode-width/0.1.5 \
crate://crates.io/unicode-xid/0.0.4 \
crate://crates.io/unicode-xid/0.1.0 \
crate://crates.io/unreachable/1.0.0 \
crate://crates.io/url/1.7.0 \
crate://crates.io/utf8-ranges/1.0.0 \
crate://crates.io/vcpkg/0.2.4 \
crate://crates.io/vec_map/0.8.1 \
crate://crates.io/void/1.0.2 \
crate://crates.io/walkdir/2.1.4 \
crate://crates.io/winapi-build/0.1.1 \
crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
crate://crates.io/winapi/0.2.8 \
crate://crates.io/winapi/0.3.5 \
crate://crates.io/wincolor/0.1.6 \
"
# FIXME: update generateme with the real MD5 of the license file
LIC_FILES_CHKSUM=" \
file://LICENSE-MIT;md5=b377b220f43d747efdec40d69fcaa69d \
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
"
SUMMARY = "Cargo, a package manager for Rust."
HOMEPAGE = "https://crates.io"
LICENSE = "MIT | Apache-2.0"
# includes this file if it exists but does not fail
# this is useful for anything you may want to override from
# what cargo-bitbake generates.
include cargo-${PV}.inc
include cargo.inc

View File

@@ -0,0 +1,173 @@
# Auto-Generated by cargo-bitbake 0.3.10
#
inherit cargo
# If this is git based prefer versioned ones if they exist
# DEFAULT_PREFERENCE = "-1"
# how to get cargo could be as easy as but default to a git checkout:
# SRC_URI += "crate://crates.io/cargo/0.31.0"
SRC_URI += "git://github.com/rust-lang/cargo;protocol=https;nobranch=1"
SRCREV = "36d96825d0f288c6d1bb2219919a277968bd365f"
S = "${WORKDIR}/git"
CARGO_SRC_DIR=""
# please note if you have entries that do not begin with crate://
# you must change them to how that package can be fetched
SRC_URI += " \
crate://crates.io/adler32/1.0.3 \
crate://crates.io/aho-corasick/0.6.9 \
crate://crates.io/ansi_term/0.11.0 \
crate://crates.io/arrayvec/0.4.7 \
crate://crates.io/atty/0.2.11 \
crate://crates.io/backtrace-sys/0.1.24 \
crate://crates.io/backtrace/0.3.9 \
crate://crates.io/bitflags/1.0.4 \
crate://crates.io/bufstream/0.1.4 \
crate://crates.io/build_const/0.2.1 \
crate://crates.io/cc/1.0.25 \
crate://crates.io/cfg-if/0.1.6 \
crate://crates.io/clap/2.32.0 \
crate://crates.io/cloudabi/0.0.3 \
crate://crates.io/commoncrypto-sys/0.2.0 \
crate://crates.io/commoncrypto/0.2.0 \
crate://crates.io/core-foundation-sys/0.6.2 \
crate://crates.io/core-foundation/0.6.2 \
crate://crates.io/crc/1.8.1 \
crate://crates.io/crossbeam-channel/0.2.6 \
crate://crates.io/crossbeam-epoch/0.6.0 \
crate://crates.io/crossbeam-utils/0.5.0 \
crate://crates.io/crypto-hash/0.3.1 \
crate://crates.io/curl-sys/0.4.14 \
crate://crates.io/curl/0.4.18 \
crate://crates.io/env_logger/0.5.13 \
crate://crates.io/failure/0.1.3 \
crate://crates.io/failure_derive/0.1.3 \
crate://crates.io/filetime/0.2.2 \
crate://crates.io/flate2/1.0.4 \
crate://crates.io/fnv/1.0.6 \
crate://crates.io/foreign-types-shared/0.1.1 \
crate://crates.io/foreign-types/0.3.2 \
crate://crates.io/fs2/0.4.3 \
crate://crates.io/fuchsia-zircon-sys/0.3.3 \
crate://crates.io/fuchsia-zircon/0.3.3 \
crate://crates.io/fwdansi/1.0.1 \
crate://crates.io/git2-curl/0.8.2 \
crate://crates.io/git2/0.7.5 \
crate://crates.io/glob/0.2.11 \
crate://crates.io/globset/0.4.2 \
crate://crates.io/hex/0.3.2 \
crate://crates.io/home/0.3.3 \
crate://crates.io/humantime/1.1.1 \
crate://crates.io/idna/0.1.5 \
crate://crates.io/ignore/0.4.4 \
crate://crates.io/itoa/0.4.3 \
crate://crates.io/jobserver/0.1.11 \
crate://crates.io/kernel32-sys/0.2.2 \
crate://crates.io/lazy_static/1.2.0 \
crate://crates.io/lazycell/1.2.0 \
crate://crates.io/libc/0.2.43 \
crate://crates.io/libgit2-sys/0.7.10 \
crate://crates.io/libssh2-sys/0.2.11 \
crate://crates.io/libz-sys/1.0.25 \
crate://crates.io/lock_api/0.1.4 \
crate://crates.io/log/0.4.6 \
crate://crates.io/matches/0.1.8 \
crate://crates.io/memchr/2.1.1 \
crate://crates.io/memoffset/0.2.1 \
crate://crates.io/miniz-sys/0.1.11 \
crate://crates.io/miniz_oxide/0.2.0 \
crate://crates.io/miniz_oxide_c_api/0.2.0 \
crate://crates.io/miow/0.3.3 \
crate://crates.io/nodrop/0.1.12 \
crate://crates.io/num_cpus/1.8.0 \
crate://crates.io/opener/0.3.0 \
crate://crates.io/openssl-probe/0.1.2 \
crate://crates.io/openssl-src/111.0.1+1.1.1 \
crate://crates.io/openssl-sys/0.9.39 \
crate://crates.io/openssl/0.10.15 \
crate://crates.io/owning_ref/0.3.3 \
crate://crates.io/parking_lot/0.6.4 \
crate://crates.io/parking_lot_core/0.3.1 \
crate://crates.io/percent-encoding/1.0.1 \
crate://crates.io/pkg-config/0.3.14 \
crate://crates.io/proc-macro2/0.4.20 \
crate://crates.io/quick-error/1.2.2 \
crate://crates.io/quote/0.6.9 \
crate://crates.io/rand/0.4.3 \
crate://crates.io/rand/0.5.5 \
crate://crates.io/rand_core/0.2.2 \
crate://crates.io/rand_core/0.3.0 \
crate://crates.io/redox_syscall/0.1.40 \
crate://crates.io/redox_termios/0.1.1 \
crate://crates.io/regex-syntax/0.6.2 \
crate://crates.io/regex/1.0.5 \
crate://crates.io/remove_dir_all/0.5.1 \
crate://crates.io/rustc-demangle/0.1.9 \
crate://crates.io/rustc-workspace-hack/1.0.0 \
crate://crates.io/rustc_version/0.2.3 \
crate://crates.io/rustfix/0.4.2 \
crate://crates.io/ryu/0.2.6 \
crate://crates.io/same-file/1.0.4 \
crate://crates.io/schannel/0.1.14 \
crate://crates.io/scopeguard/0.3.3 \
crate://crates.io/semver-parser/0.7.0 \
crate://crates.io/semver/0.9.0 \
crate://crates.io/serde/1.0.80 \
crate://crates.io/serde_derive/1.0.80 \
crate://crates.io/serde_ignored/0.0.4 \
crate://crates.io/serde_json/1.0.32 \
crate://crates.io/shell-escape/0.1.4 \
crate://crates.io/smallvec/0.6.5 \
crate://crates.io/socket2/0.3.8 \
crate://crates.io/stable_deref_trait/1.1.1 \
crate://crates.io/strsim/0.7.0 \
crate://crates.io/syn/0.15.18 \
crate://crates.io/synstructure/0.10.1 \
crate://crates.io/tar/0.4.18 \
crate://crates.io/tempfile/3.0.4 \
crate://crates.io/termcolor/1.0.4 \
crate://crates.io/termion/1.5.1 \
crate://crates.io/textwrap/0.10.0 \
crate://crates.io/thread_local/0.3.6 \
crate://crates.io/toml/0.4.8 \
crate://crates.io/ucd-util/0.1.2 \
crate://crates.io/unicode-bidi/0.3.4 \
crate://crates.io/unicode-normalization/0.1.7 \
crate://crates.io/unicode-width/0.1.5 \
crate://crates.io/unicode-xid/0.1.0 \
crate://crates.io/unreachable/1.0.0 \
crate://crates.io/url/1.7.1 \
crate://crates.io/utf8-ranges/1.0.2 \
crate://crates.io/vcpkg/0.2.6 \
crate://crates.io/vec_map/0.8.1 \
crate://crates.io/version_check/0.1.5 \
crate://crates.io/void/1.0.2 \
crate://crates.io/walkdir/2.2.6 \
crate://crates.io/winapi-build/0.1.1 \
crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
crate://crates.io/winapi-util/0.1.1 \
crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
crate://crates.io/winapi/0.2.8 \
crate://crates.io/winapi/0.3.6 \
crate://crates.io/wincolor/1.0.1 \
"
# FIXME: update generateme with the real MD5 of the license file
LIC_FILES_CHKSUM=" \
file://LICENSE-MIT;md5=b377b220f43d747efdec40d69fcaa69d \
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
"
SUMMARY = "Cargo, a package manager for Rust."
HOMEPAGE = "https://crates.io"
LICENSE = "MIT | Apache-2.0"
# includes this file if it exists but does not fail
# this is useful for anything you may want to override from
# what cargo-bitbake generates.
include cargo-${PV}.inc
include cargo.inc

View File

@@ -11,6 +11,8 @@ 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

View File

@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://../../COPYRIGHT;md5=99c369ad81a36cd5b27f6c6968d01055"
# Don't use jemalloc as it doesn't work for many targets.
# https://github.com/rust-lang/rust/pull/37392
CARGO_BUILD_FLAGS += "--features 'panic-unwind'"
CARGO_FEATURES ?= "panic-unwind"
# These are taken from src/libstd/Cargo.toml via cargo-bitbake
SRC_URI += " \

View File

@@ -0,0 +1,254 @@
require rust-source-${PV}.inc
require libstd-rs.inc
LIC_FILES_CHKSUM = "file://../../COPYRIGHT;md5=99c369ad81a36cd5b27f6c6968d01055"
# Don't use jemalloc as it doesn't work for many targets.
# https://github.com/rust-lang/rust/pull/37392
CARGO_FEATURES ?= "panic-unwind"
# These are taken from src/libstd/Cargo.toml via cargo-bitbake
SRC_URI += " \
crate://crates.io/aho-corasick/0.6.4 \
crate://crates.io/ammonia/1.1.0 \
crate://crates.io/ansi_term/0.11.0 \
crate://crates.io/ar/0.3.1 \
crate://crates.io/arrayvec/0.4.7 \
crate://crates.io/assert_cli/0.5.4 \
crate://crates.io/atty/0.2.8 \
crate://crates.io/backtrace-sys/0.1.16 \
crate://crates.io/backtrace/0.3.6 \
crate://crates.io/bitflags/0.7.0 \
crate://crates.io/bitflags/0.9.1 \
crate://crates.io/bitflags/1.0.1 \
crate://crates.io/bufstream/0.1.3 \
crate://crates.io/bytecount/0.2.0 \
crate://crates.io/byteorder/1.2.2 \
crate://crates.io/cargo_metadata/0.3.3 \
crate://crates.io/cargo_metadata/0.5.4 \
crate://crates.io/cc/1.0.10 \
crate://crates.io/cfg-if/0.1.2 \
crate://crates.io/chrono/0.4.1 \
crate://crates.io/clap/2.31.2 \
crate://crates.io/clippy_lints/0.0.197 \
crate://crates.io/cmake/0.1.30 \
crate://crates.io/colored/1.6.0 \
crate://crates.io/commoncrypto-sys/0.2.0 \
crate://crates.io/commoncrypto/0.2.0 \
crate://crates.io/compiletest_rs/0.3.9 \
crate://crates.io/core-foundation-sys/0.5.1 \
crate://crates.io/core-foundation/0.5.1 \
crate://crates.io/crossbeam-deque/0.2.0 \
crate://crates.io/crossbeam-epoch/0.3.1 \
crate://crates.io/crossbeam-utils/0.2.2 \
crate://crates.io/crossbeam/0.3.2 \
crate://crates.io/crypto-hash/0.3.1 \
crate://crates.io/curl-sys/0.4.2 \
crate://crates.io/curl/0.4.12 \
crate://crates.io/debug_unreachable/0.1.1 \
crate://crates.io/derive-new/0.5.2 \
crate://crates.io/diff/0.1.11 \
crate://crates.io/difference/1.0.0 \
crate://crates.io/difference/2.0.0 \
crate://crates.io/dtoa/0.4.2 \
crate://crates.io/either/1.5.0 \
crate://crates.io/elasticlunr-rs/2.2.0 \
crate://crates.io/ena/0.9.2 \
crate://crates.io/endian-type/0.1.2 \
crate://crates.io/enum_primitive/0.1.1 \
crate://crates.io/env_logger/0.5.8 \
crate://crates.io/environment/0.1.1 \
crate://crates.io/error-chain/0.11.0 \
crate://crates.io/failure/0.1.1 \
crate://crates.io/failure_derive/0.1.1 \
crate://crates.io/filetime/0.1.15 \
crate://crates.io/filetime/0.2.0 \
crate://crates.io/fixedbitset/0.1.9 \
crate://crates.io/flate2/1.0.1 \
crate://crates.io/fnv/1.0.6 \
crate://crates.io/foreign-types-shared/0.1.1 \
crate://crates.io/foreign-types/0.3.2 \
crate://crates.io/fs2/0.4.3 \
crate://crates.io/fuchsia-zircon-sys/0.3.3 \
crate://crates.io/fuchsia-zircon/0.3.3 \
crate://crates.io/futf/0.1.3 \
crate://crates.io/futures/0.1.20 \
crate://crates.io/getopts/0.2.17 \
crate://crates.io/git2-curl/0.8.1 \
crate://crates.io/git2/0.7.1 \
crate://crates.io/glob/0.2.11 \
crate://crates.io/globset/0.3.0 \
crate://crates.io/handlebars/0.32.0 \
crate://crates.io/hex/0.3.1 \
crate://crates.io/home/0.3.2 \
crate://crates.io/html5ever/0.22.0 \
crate://crates.io/humantime/1.1.1 \
crate://crates.io/idna/0.1.4 \
crate://crates.io/if_chain/0.1.2 \
crate://crates.io/ignore/0.4.1 \
crate://crates.io/is-match/0.1.0 \
crate://crates.io/itertools/0.7.8 \
crate://crates.io/itoa/0.4.1 \
crate://crates.io/jobserver/0.1.11 \
crate://crates.io/json/0.11.13 \
crate://crates.io/jsonrpc-core/8.0.1 \
crate://crates.io/kernel32-sys/0.2.2 \
crate://crates.io/languageserver-types/0.39.0 \
crate://crates.io/lazy_static/0.2.11 \
crate://crates.io/lazy_static/1.0.0 \
crate://crates.io/lazycell/0.6.0 \
crate://crates.io/libc/0.2.40 \
crate://crates.io/libgit2-sys/0.7.1 \
crate://crates.io/libssh2-sys/0.2.6 \
crate://crates.io/libz-sys/1.0.18 \
crate://crates.io/log/0.3.9 \
crate://crates.io/log/0.4.1 \
crate://crates.io/log_settings/0.1.1 \
crate://crates.io/lzma-sys/0.1.9 \
crate://crates.io/mac/0.1.1 \
crate://crates.io/maplit/1.0.1 \
crate://crates.io/markup5ever/0.7.2 \
crate://crates.io/matches/0.1.6 \
crate://crates.io/mdbook/0.1.7 \
crate://crates.io/memchr/2.0.1 \
crate://crates.io/memoffset/0.2.1 \
crate://crates.io/miniz-sys/0.1.10 \
crate://crates.io/miow/0.3.1 \
crate://crates.io/nibble_vec/0.0.4 \
crate://crates.io/nodrop/0.1.12 \
crate://crates.io/num-integer/0.1.36 \
crate://crates.io/num-traits/0.1.43 \
crate://crates.io/num-traits/0.2.2 \
crate://crates.io/num_cpus/1.8.0 \
crate://crates.io/open/1.2.1 \
crate://crates.io/openssl-probe/0.1.2 \
crate://crates.io/openssl-sys/0.9.28 \
crate://crates.io/openssl/0.10.6 \
crate://crates.io/ordermap/0.3.5 \
crate://crates.io/owning_ref/0.3.3 \
crate://crates.io/parking_lot/0.5.5 \
crate://crates.io/parking_lot_core/0.2.14 \
crate://crates.io/percent-encoding/1.0.1 \
crate://crates.io/pest/1.0.6 \
crate://crates.io/pest_derive/1.0.7 \
crate://crates.io/petgraph/0.4.12 \
crate://crates.io/phf/0.7.21 \
crate://crates.io/phf_codegen/0.7.21 \
crate://crates.io/phf_generator/0.7.21 \
crate://crates.io/phf_shared/0.7.21 \
crate://crates.io/pkg-config/0.3.9 \
crate://crates.io/precomputed-hash/0.1.1 \
crate://crates.io/pretty_assertions/0.5.1 \
crate://crates.io/proc-macro2/0.2.3 \
crate://crates.io/proc-macro2/0.3.6 \
crate://crates.io/pulldown-cmark/0.1.2 \
crate://crates.io/quick-error/1.2.1 \
crate://crates.io/quine-mc_cluskey/0.2.4 \
crate://crates.io/quote/0.3.15 \
crate://crates.io/quote/0.4.2 \
crate://crates.io/quote/0.5.1 \
crate://crates.io/racer/2.0.13 \
crate://crates.io/radix_trie/0.1.3 \
crate://crates.io/rand/0.3.22 \
crate://crates.io/rand/0.4.2 \
crate://crates.io/rayon-core/1.4.0 \
crate://crates.io/rayon/1.0.1 \
crate://crates.io/redox_syscall/0.1.37 \
crate://crates.io/redox_termios/0.1.1 \
crate://crates.io/regex-syntax/0.5.5 \
crate://crates.io/regex/0.2.10 \
crate://crates.io/remove_dir_all/0.5.1 \
crate://crates.io/rls-analysis/0.12.1 \
crate://crates.io/rls-blacklist/0.1.2 \
crate://crates.io/rls-data/0.15.0 \
crate://crates.io/rls-rustc/0.2.2 \
crate://crates.io/rls-span/0.4.0 \
crate://crates.io/rls-vfs/0.4.5 \
crate://crates.io/rustc-ap-rustc_cratesio_shim/121.0.0 \
crate://crates.io/rustc-ap-rustc_data_structures/121.0.0 \
crate://crates.io/rustc-ap-rustc_errors/121.0.0 \
crate://crates.io/rustc-ap-rustc_target/121.0.0 \
crate://crates.io/rustc-ap-serialize/121.0.0 \
crate://crates.io/rustc-ap-syntax/121.0.0 \
crate://crates.io/rustc-ap-syntax_pos/121.0.0 \
crate://crates.io/rustc-demangle/0.1.7 \
crate://crates.io/rustc-serialize/0.3.24 \
crate://crates.io/rustfix/0.2.0 \
crate://crates.io/same-file/0.1.3 \
crate://crates.io/same-file/1.0.2 \
crate://crates.io/schannel/0.1.12 \
crate://crates.io/scoped-tls/0.1.1 \
crate://crates.io/scopeguard/0.3.3 \
crate://crates.io/semver-parser/0.7.0 \
crate://crates.io/semver/0.8.0 \
crate://crates.io/semver/0.9.0 \
crate://crates.io/serde/1.0.40 \
crate://crates.io/serde_derive/1.0.40 \
crate://crates.io/serde_derive_internals/0.23.1 \
crate://crates.io/serde_ignored/0.0.4 \
crate://crates.io/serde_json/1.0.15 \
crate://crates.io/shell-escape/0.1.4 \
crate://crates.io/shlex/0.1.1 \
crate://crates.io/siphasher/0.2.2 \
crate://crates.io/skeptic/0.13.2 \
crate://crates.io/smallvec/0.6.0 \
crate://crates.io/socket2/0.3.5 \
crate://crates.io/stable_deref_trait/1.0.0 \
crate://crates.io/string_cache/0.7.1 \
crate://crates.io/string_cache_codegen/0.4.0 \
crate://crates.io/string_cache_shared/0.3.0 \
crate://crates.io/strsim/0.7.0 \
crate://crates.io/strum/0.9.0 \
crate://crates.io/strum_macros/0.9.0 \
crate://crates.io/syn/0.11.11 \
crate://crates.io/syn/0.12.15 \
crate://crates.io/syn/0.13.1 \
crate://crates.io/synom/0.11.3 \
crate://crates.io/synstructure/0.6.1 \
crate://crates.io/syntex_errors/0.52.0 \
crate://crates.io/syntex_pos/0.52.0 \
crate://crates.io/syntex_syntax/0.52.0 \
crate://crates.io/tar/0.4.15 \
crate://crates.io/tempdir/0.3.7 \
crate://crates.io/tempfile/3.0.1 \
crate://crates.io/tendril/0.4.0 \
crate://crates.io/term/0.4.6 \
crate://crates.io/term/0.5.1 \
crate://crates.io/termcolor/0.3.6 \
crate://crates.io/termion/1.5.1 \
crate://crates.io/textwrap/0.9.0 \
crate://crates.io/thread_local/0.3.5 \
crate://crates.io/time/0.1.39 \
crate://crates.io/toml-query/0.6.0 \
crate://crates.io/toml/0.2.1 \
crate://crates.io/toml/0.4.6 \
crate://crates.io/ucd-util/0.1.1 \
crate://crates.io/unicode-bidi/0.3.4 \
crate://crates.io/unicode-normalization/0.1.5 \
crate://crates.io/unicode-segmentation/1.2.0 \
crate://crates.io/unicode-width/0.1.4 \
crate://crates.io/unicode-xid/0.0.3 \
crate://crates.io/unicode-xid/0.0.4 \
crate://crates.io/unicode-xid/0.1.0 \
crate://crates.io/unreachable/0.1.1 \
crate://crates.io/unreachable/1.0.0 \
crate://crates.io/url/1.7.0 \
crate://crates.io/url_serde/0.2.0 \
crate://crates.io/userenv-sys/0.2.0 \
crate://crates.io/utf-8/0.7.2 \
crate://crates.io/utf8-ranges/1.0.0 \
crate://crates.io/vcpkg/0.2.3 \
crate://crates.io/vec_map/0.8.0 \
crate://crates.io/void/1.0.2 \
crate://crates.io/walkdir/1.0.7 \
crate://crates.io/walkdir/2.1.4 \
crate://crates.io/winapi-build/0.1.1 \
crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
crate://crates.io/winapi/0.2.8 \
crate://crates.io/winapi/0.3.4 \
crate://crates.io/wincolor/0.1.6 \
crate://crates.io/xattr/0.2.1 \
crate://crates.io/xz2/0.1.4 \
crate://crates.io/yaml-rust/0.3.5 \
"

View File

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

View File

@@ -1,21 +1,31 @@
SUMMARY = "LLVM compiler framework (packaged with rust)"
LICENSE = "NCSA"
SRC_URI += "file://0002-llvm-allow-env-override-of-exe-path.patch"
S = "${RUSTSRC}/src/llvm"
LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=4c0bc17c954e99fd547528d938832bfa"
inherit cmake pythonnative
DEPENDS += "ninja-native rust-llvm-native"
ARM_INSTRUCTION_SET_armv5 = "arm"
ARM_INSTRUCTION_SET_armv4t = "arm"
LLVM_RELEASE = "6.0"
LLVM_DIR = "llvm${LLVM_RELEASE}"
EXTRA_OECMAKE = " \
-DCMAKE_BUILD_TYPE=Release \
-DLLVM_TARGETS_TO_BUILD='X86;ARM;AArch64;PowerPC;Mips' \
-DLLVM_ENABLE_ASSERTIONS=OFF \
-DLLVM_BUILD_DOCS=OFF \
-DLLVM_ENABLE_TERMINFO=OFF \
-DLLVM_ENABLE_ZLIB=OFF \
-DLLVM_ENABLE_LIBXML2=OFF \
-DLLVM_ENABLE_FFI=OFF \
-DLLVM_INSTALL_UTILS=ON \
-DLLVM_BUILD_TOOLS=ON \
-DLLVM_BUILD_EXAMPLES=OFF \
-DLLVM_INCLUDE_EXAMPLES=OFF \
-DLLVM_BUILD_TESTS=OFF \
@@ -23,44 +33,30 @@ EXTRA_OECMAKE = " \
-DLLVM_TARGET_ARCH=${TARGET_ARCH} \
-DCMAKE_INSTALL_PREFIX:PATH=${libdir}/llvm-rust \
"
EXTRA_OECMAKE_append_class-target = "\
-DCMAKE_CROSSCOMPILING:BOOL=ON \
-DLLVM_BUILD_TOOLS=OFF \
-DLLVM_TABLEGEN=${STAGING_LIBDIR_NATIVE}/llvm-rust/bin/llvm-tblgen \
-DLLVM_CONFIG_PATH=${STAGING_LIBDIR_NATIVE}/llvm-rust/bin/llvm-config \
"
# The debug symbols are huge here (>2GB) so suppress them since they
# provide almost no value. If you really need them then override this
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
do_compile_prepend_class-target() {
# Fix paths in llvm-config
sed -i "s|sys::path::parent_path(CurrentPath))\.str()|sys::path::parent_path(sys::path::parent_path(CurrentPath))).str()|g" ${S}/tools/llvm-config/llvm-config.cpp
# Fix the hardcoded libdir in llvm-config
sed -i 's:/lib\>:/${baselib}:g' ${S}/tools/llvm-config/llvm-config.cpp
}
do_install_append_class-target() {
# Disable checks on the native tools, since these should came from the native recipe
sed -i -e 's/\(.*APPEND.*_IMPORT_CHECK_FILES_FOR_.*{_IMPORT_PREFIX}\/bin\/.*\)/#\1/' ${D}/usr/share/llvm/cmake/LLVMExports-noconfig.cmake
}
SYSROOT_PREPROCESS_FUNCS_append_class-target = " llvm_sysroot_preprocess"
SYSROOT_PREPROCESS_FUNCS_append_class-native = " llvm_native_sysroot_preprocess"
llvm_sysroot_preprocess() {
install -d ${SYSROOT_DESTDIR}${bindir}
cp ${B}/NATIVE/bin/llvm-config ${SYSROOT_DESTDIR}/${bindir} || bbfatal "missing llvm-config"
cp ${B}/NATIVE/bin/llvm-tblgen ${SYSROOT_DESTDIR}/${bindir} || bbfatal "missing llvm-tblgen"
}
llvm_native_sysroot_preprocess() {
sysroot_stage_dir ${D}${STAGING_DIR_NATIVE}/usr/libexec ${SYSROOT_DESTDIR}${bindir}
}
PACKAGES =+ "${PN}-bugpointpasses ${PN}-llvmhello ${PN}-liblto"
# Add the extra locations to avoid the complaints about unpackaged files
FILES_${PN} += "${libdir}/libLLVM*.so"
FILES_${PN}-dev += "${datadir}/llvm"
FILES_${PN}-bugpointpasses = "${libdir}/BugpointPasses.so"
FILES_${PN}-llvmhello = "${libdir}/LLVMHello.so"
FILES_${PN}-liblto = "${libdir}/libLTO.so"
FILES_${PN}-bugpointpasses = "${libdir}/llvm-rust/lib/BugpointPasses.so"
FILES_${PN}-llvmhello = "${libdir}/llvm-rust/lib/LLVMHello.so"
FILES_${PN}-liblto = "${libdir}/llvm-rust/lib/libLTO.so.*"
FILES_${PN}-staticdev =+ "${libdir}/llvm-rust/*/*.a"
FILES_${PN} += "${libdir}/libLLVM*.so.* ${libdir}/llvm-rust/lib/*.so.* ${libdir}/llvm-rust/bin"
FILES_${PN}-dev += "${datadir}/llvm ${libdir}/llvm-rust/lib/*.so ${libdir}/llvm-rust/include ${libdir}/llvm-rust/share ${libdir}/llvm-rust/lib/cmake"
BBCLASSEXTEND = "native"

View File

@@ -0,0 +1,70 @@
From aeccf16eaccdd80e4d5ecaa51673ce4b2bac1130 Mon Sep 17 00:00:00 2001
From: Martin Kelly <mkelly@xevo.com>
Date: Fri, 19 May 2017 00:22:57 -0700
Subject: [PATCH 2/2] llvm: allow env override of exe path
When using a native llvm-config from inside a sysroot, we need llvm-config to
return the libraries, include directories, etc. from inside the sysroot rather
than from the native sysroot. Thus provide an env override for calling
llvm-config from a target sysroot.
To let it work in multilib environment, we need to provide a knob to supply
multilib dirname as well
Upstream-Status: Inappropriate [OE-Specific]
Signed-off-by: Martin Kelly <mkelly@xevo.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
tools/llvm-config/llvm-config.cpp | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
Index: llvm/tools/llvm-config/llvm-config.cpp
===================================================================
--- llvm.orig/tools/llvm-config/llvm-config.cpp
+++ llvm/tools/llvm-config/llvm-config.cpp
@@ -225,6 +225,13 @@ Typical components:\n\
/// \brief Compute the path to the main executable.
std::string GetExecutablePath(const char *Argv0) {
+ // Hack for Yocto: we need to override the root path when we are using
+ // llvm-config from within a target sysroot.
+ const char *Sysroot = std::getenv("YOCTO_ALTERNATE_EXE_PATH");
+ if (Sysroot != nullptr) {
+ return Sysroot;
+ }
+
// This just needs to be some symbol in the binary; C++ doesn't
// allow taking the address of ::main however.
void *P = (void *)(intptr_t)GetExecutablePath;
@@ -306,12 +313,21 @@ int main(int argc, char **argv) {
std::string ActivePrefix, ActiveBinDir, ActiveIncludeDir, ActiveLibDir,
ActiveCMakeDir;
std::string ActiveIncludeOption;
+ // Hack for Yocto: we need to override the multilib path when we are using
+ // llvm-config from within a target sysroot.
+ std::string Multilibdir;
+ if (std::getenv("YOCTO_ALTERNATE_MULTILIB_NAME") != nullptr)
+ Multilibdir = std::getenv("YOCTO_ALTERNATE_MULTILIB_NAME");
+ else
+ Multilibdir = "/lib" LLVM_LIBDIR_SUFFIX;
+
if (IsInDevelopmentTree) {
ActiveIncludeDir = std::string(LLVM_SRC_ROOT) + "/include";
ActivePrefix = CurrentExecPrefix;
// CMake organizes the products differently than a normal prefix style
// layout.
+
switch (DevelopmentTreeLayout) {
case CMakeStyle:
ActiveBinDir = ActiveObjRoot + "/bin";
@@ -336,7 +352,7 @@ int main(int argc, char **argv) {
SmallString<256> path(StringRef(LLVM_TOOLS_INSTALL_DIR));
sys::fs::make_absolute(ActivePrefix, path);
ActiveBinDir = path.str();
- ActiveLibDir = ActivePrefix + "/lib" + LLVM_LIBDIR_SUFFIX;
+ ActiveLibDir = ActivePrefix + Multilibdir;
ActiveCMakeDir = ActiveLibDir + "/cmake/llvm";
ActiveIncludeOption = "-I" + ActiveIncludeDir;
}

View File

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

View File

@@ -0,0 +1,26 @@
# Specifics for Rust 1.27.1
## This is information on the rust-snapshot (binary) used to build our current release.
## snapshot info is taken from rust/src/stage0.txt
## TODO: find a way to add additional SRC_URIs based on the contents of an
## earlier SRC_URI.
RS_VERSION = "1.26.0"
RUST_STD_SNAPSHOT = "rust-std-${RS_VERSION}-${BUILD_ARCH}-unknown-linux-gnu"
RUSTC_SNAPSHOT = "rustc-${RS_VERSION}-${BUILD_ARCH}-unknown-linux-gnu"
CARGO_VERSION = "0.27.0"
CARGO_SNAPSHOT = "cargo-${CARGO_VERSION}-${BUILD_ARCH}-unknown-linux-gnu"
SRC_URI += " \
https://static.rust-lang.org/dist/${RUST_STD_SNAPSHOT}.tar.gz;name=rust-std-snapshot-${BUILD_ARCH};subdir=rust-snapshot-components \
https://static.rust-lang.org/dist/${RUSTC_SNAPSHOT}.tar.gz;name=rustc-snapshot-${BUILD_ARCH};subdir=rust-snapshot-components \
https://static.rust-lang.org/dist/${CARGO_SNAPSHOT}.tar.gz;name=cargo-snapshot-${BUILD_ARCH};subdir=rust-snapshot-components \
"
# TODO: Add hashes for other architecture toolchains as well. Make a script?
SRC_URI[rustc-snapshot-x86_64.md5sum] = "939631f19dd9ca5ae8493dc8ec2d3131"
SRC_URI[rustc-snapshot-x86_64.sha256sum] = "7ca9a30010602aaf2244c376a3cc5baa89429d54da17b8ba1cb0cdfdc846cc61"
SRC_URI[rust-std-snapshot-x86_64.md5sum] = "643460e582de498eea53ec1e93aeabab"
SRC_URI[rust-std-snapshot-x86_64.sha256sum] = "e27cb5c21541a500c8df919e15c8d3b002456ebbe573122e7b058cf5b4c3c13a"
SRC_URI[cargo-snapshot-x86_64.md5sum] = "ca366ba1e97ffc02b72dc74859db35e2"
SRC_URI[cargo-snapshot-x86_64.sha256sum] = "8c17710252513d8130141f2c12b4efeef67f0def252b94b246fe326a9a75043b"

View File

@@ -0,0 +1,15 @@
# Specifics for Rust 1.27.1
SRC_URI += "https://static.rust-lang.org/dist/rustc-${PV}-src.tar.gz;name=rust"
SRC_URI[md5sum] = "3d7f2a08caccb631b46084c31d2759c9"
SRC_URI[sha256sum] = "2133beb01ddc3aa09eebc769dd884533c6cfb08ce684f042497e097068d733d1"
SRC_URI[rust.md5sum] = "3d7f2a08caccb631b46084c31d2759c9"
SRC_URI[rust.sha256sum] = "2133beb01ddc3aa09eebc769dd884533c6cfb08ce684f042497e097068d733d1"
# later versions of rust change the directory that they unextract to
RUSTSRC = "${WORKDIR}/rustc-${PV}-src"
# set this as our default
S = "${RUSTSRC}"
LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=99c369ad81a36cd5b27f6c6968d01055"

View File

@@ -7,12 +7,16 @@ inherit rust
inherit cargo_common
DEPENDS += "file-native python-native"
DEPENDS_append_class-native = " rust-llvm-native"
# We generate local targets, and need to be able to locate them
export RUST_TARGET_PATH="${WORKDIR}/targets/"
export FORCE_CRATE_HASH="${BB_TASKHASH}"
export YOCTO_ALTERNATE_EXE_PATH = "${STAGING_LIBDIR}/llvm-rust/bin/llvm-config"
export YOCTO_ALTERNATE_MULTILIB_NAME = "/${BASELIB}"
# We can't use RUST_BUILD_SYS here because that may be "musl" if
# TCLIBC="musl". Snapshots are always -unknown-linux-gnu
SNAPSHOT_BUILD_SYS = "${BUILD_ARCH}-unknown-linux-gnu"
@@ -345,7 +349,7 @@ python do_configure() {
target_section = "target.{}".format(d.getVar('TARGET_SYS', True))
config.add_section(target_section)
llvm_config = d.expand("${STAGING_DIR_NATIVE}${libdir_native}/llvm-rust/bin/llvm-config")
llvm_config = d.expand("${YOCTO_ALTERNATE_EXE_PATH}")
config.set(target_section, "llvm-config", e(llvm_config))
config.set(target_section, "cxx", e(d.expand("${RUST_TARGET_CXX}")))

View File

@@ -0,0 +1,258 @@
require rust.inc
require rust-source-${PV}.inc
require rust-snapshot-${PV}.inc
# These are extracted from rustc/src/bootstrap/Cargo.toml via cargo-bitbake
SRC_URI += " \
crate://crates.io/aho-corasick/0.6.4 \
crate://crates.io/ammonia/1.1.0 \
crate://crates.io/ansi_term/0.11.0 \
crate://crates.io/ar/0.3.1 \
crate://crates.io/arrayvec/0.4.7 \
crate://crates.io/assert_cli/0.5.4 \
crate://crates.io/atty/0.2.8 \
crate://crates.io/backtrace-sys/0.1.16 \
crate://crates.io/backtrace/0.3.6 \
crate://crates.io/bitflags/0.7.0 \
crate://crates.io/bitflags/0.9.1 \
crate://crates.io/bitflags/1.0.1 \
crate://crates.io/bufstream/0.1.3 \
crate://crates.io/bytecount/0.2.0 \
crate://crates.io/byteorder/1.2.2 \
crate://crates.io/cargo_metadata/0.3.3 \
crate://crates.io/cargo_metadata/0.5.4 \
crate://crates.io/cc/1.0.10 \
crate://crates.io/cfg-if/0.1.2 \
crate://crates.io/chrono/0.4.1 \
crate://crates.io/clap/2.31.2 \
crate://crates.io/clippy_lints/0.0.197 \
crate://crates.io/cmake/0.1.30 \
crate://crates.io/colored/1.6.0 \
crate://crates.io/commoncrypto-sys/0.2.0 \
crate://crates.io/commoncrypto/0.2.0 \
crate://crates.io/compiletest_rs/0.3.9 \
crate://crates.io/core-foundation-sys/0.5.1 \
crate://crates.io/core-foundation/0.5.1 \
crate://crates.io/crossbeam-deque/0.2.0 \
crate://crates.io/crossbeam-epoch/0.3.1 \
crate://crates.io/crossbeam-utils/0.2.2 \
crate://crates.io/crossbeam/0.3.2 \
crate://crates.io/crypto-hash/0.3.1 \
crate://crates.io/curl-sys/0.4.2 \
crate://crates.io/curl/0.4.12 \
crate://crates.io/debug_unreachable/0.1.1 \
crate://crates.io/derive-new/0.5.2 \
crate://crates.io/diff/0.1.11 \
crate://crates.io/difference/1.0.0 \
crate://crates.io/difference/2.0.0 \
crate://crates.io/dtoa/0.4.2 \
crate://crates.io/either/1.5.0 \
crate://crates.io/elasticlunr-rs/2.2.0 \
crate://crates.io/ena/0.9.2 \
crate://crates.io/endian-type/0.1.2 \
crate://crates.io/enum_primitive/0.1.1 \
crate://crates.io/env_logger/0.5.8 \
crate://crates.io/environment/0.1.1 \
crate://crates.io/error-chain/0.11.0 \
crate://crates.io/failure/0.1.1 \
crate://crates.io/failure_derive/0.1.1 \
crate://crates.io/filetime/0.1.15 \
crate://crates.io/filetime/0.2.0 \
crate://crates.io/fixedbitset/0.1.9 \
crate://crates.io/flate2/1.0.1 \
crate://crates.io/fnv/1.0.6 \
crate://crates.io/foreign-types-shared/0.1.1 \
crate://crates.io/foreign-types/0.3.2 \
crate://crates.io/fs2/0.4.3 \
crate://crates.io/fuchsia-zircon-sys/0.3.3 \
crate://crates.io/fuchsia-zircon/0.3.3 \
crate://crates.io/futf/0.1.3 \
crate://crates.io/futures/0.1.20 \
crate://crates.io/getopts/0.2.17 \
crate://crates.io/git2-curl/0.8.1 \
crate://crates.io/git2/0.7.1 \
crate://crates.io/glob/0.2.11 \
crate://crates.io/globset/0.3.0 \
crate://crates.io/handlebars/0.32.0 \
crate://crates.io/hex/0.3.1 \
crate://crates.io/home/0.3.2 \
crate://crates.io/html5ever/0.22.0 \
crate://crates.io/humantime/1.1.1 \
crate://crates.io/idna/0.1.4 \
crate://crates.io/if_chain/0.1.2 \
crate://crates.io/ignore/0.4.1 \
crate://crates.io/is-match/0.1.0 \
crate://crates.io/itertools/0.7.8 \
crate://crates.io/itoa/0.4.1 \
crate://crates.io/jobserver/0.1.11 \
crate://crates.io/json/0.11.13 \
crate://crates.io/jsonrpc-core/8.0.1 \
crate://crates.io/kernel32-sys/0.2.2 \
crate://crates.io/languageserver-types/0.39.0 \
crate://crates.io/lazy_static/0.2.11 \
crate://crates.io/lazy_static/1.0.0 \
crate://crates.io/lazycell/0.6.0 \
crate://crates.io/libc/0.2.40 \
crate://crates.io/libgit2-sys/0.7.1 \
crate://crates.io/libssh2-sys/0.2.6 \
crate://crates.io/libz-sys/1.0.18 \
crate://crates.io/log/0.3.9 \
crate://crates.io/log/0.4.1 \
crate://crates.io/log_settings/0.1.1 \
crate://crates.io/lzma-sys/0.1.9 \
crate://crates.io/mac/0.1.1 \
crate://crates.io/maplit/1.0.1 \
crate://crates.io/markup5ever/0.7.2 \
crate://crates.io/matches/0.1.6 \
crate://crates.io/mdbook/0.1.7 \
crate://crates.io/memchr/2.0.1 \
crate://crates.io/memoffset/0.2.1 \
crate://crates.io/miniz-sys/0.1.10 \
crate://crates.io/miow/0.3.1 \
crate://crates.io/nibble_vec/0.0.4 \
crate://crates.io/nodrop/0.1.12 \
crate://crates.io/num-integer/0.1.36 \
crate://crates.io/num-traits/0.1.43 \
crate://crates.io/num-traits/0.2.2 \
crate://crates.io/num_cpus/1.8.0 \
crate://crates.io/open/1.2.1 \
crate://crates.io/openssl-probe/0.1.2 \
crate://crates.io/openssl-sys/0.9.28 \
crate://crates.io/openssl/0.10.6 \
crate://crates.io/ordermap/0.3.5 \
crate://crates.io/owning_ref/0.3.3 \
crate://crates.io/parking_lot/0.5.5 \
crate://crates.io/parking_lot_core/0.2.14 \
crate://crates.io/percent-encoding/1.0.1 \
crate://crates.io/pest/1.0.6 \
crate://crates.io/pest_derive/1.0.7 \
crate://crates.io/petgraph/0.4.12 \
crate://crates.io/phf/0.7.21 \
crate://crates.io/phf_codegen/0.7.21 \
crate://crates.io/phf_generator/0.7.21 \
crate://crates.io/phf_shared/0.7.21 \
crate://crates.io/pkg-config/0.3.9 \
crate://crates.io/precomputed-hash/0.1.1 \
crate://crates.io/pretty_assertions/0.5.1 \
crate://crates.io/proc-macro2/0.2.3 \
crate://crates.io/proc-macro2/0.3.6 \
crate://crates.io/pulldown-cmark/0.1.2 \
crate://crates.io/quick-error/1.2.1 \
crate://crates.io/quine-mc_cluskey/0.2.4 \
crate://crates.io/quote/0.3.15 \
crate://crates.io/quote/0.4.2 \
crate://crates.io/quote/0.5.1 \
crate://crates.io/racer/2.0.13 \
crate://crates.io/radix_trie/0.1.3 \
crate://crates.io/rand/0.3.22 \
crate://crates.io/rand/0.4.2 \
crate://crates.io/rayon-core/1.4.0 \
crate://crates.io/rayon/1.0.1 \
crate://crates.io/redox_syscall/0.1.37 \
crate://crates.io/redox_termios/0.1.1 \
crate://crates.io/regex-syntax/0.5.5 \
crate://crates.io/regex/0.2.10 \
crate://crates.io/remove_dir_all/0.5.1 \
crate://crates.io/rls-analysis/0.12.1 \
crate://crates.io/rls-blacklist/0.1.2 \
crate://crates.io/rls-data/0.15.0 \
crate://crates.io/rls-rustc/0.2.2 \
crate://crates.io/rls-span/0.4.0 \
crate://crates.io/rls-vfs/0.4.5 \
crate://crates.io/rustc-ap-rustc_cratesio_shim/121.0.0 \
crate://crates.io/rustc-ap-rustc_data_structures/121.0.0 \
crate://crates.io/rustc-ap-rustc_errors/121.0.0 \
crate://crates.io/rustc-ap-rustc_target/121.0.0 \
crate://crates.io/rustc-ap-serialize/121.0.0 \
crate://crates.io/rustc-ap-syntax/121.0.0 \
crate://crates.io/rustc-ap-syntax_pos/121.0.0 \
crate://crates.io/rustc-demangle/0.1.7 \
crate://crates.io/rustc-serialize/0.3.24 \
crate://crates.io/rustfix/0.2.0 \
crate://crates.io/same-file/0.1.3 \
crate://crates.io/same-file/1.0.2 \
crate://crates.io/schannel/0.1.12 \
crate://crates.io/scoped-tls/0.1.1 \
crate://crates.io/scopeguard/0.3.3 \
crate://crates.io/semver-parser/0.7.0 \
crate://crates.io/semver/0.8.0 \
crate://crates.io/semver/0.9.0 \
crate://crates.io/serde/1.0.40 \
crate://crates.io/serde_derive/1.0.40 \
crate://crates.io/serde_derive_internals/0.23.1 \
crate://crates.io/serde_ignored/0.0.4 \
crate://crates.io/serde_json/1.0.15 \
crate://crates.io/shell-escape/0.1.4 \
crate://crates.io/shlex/0.1.1 \
crate://crates.io/siphasher/0.2.2 \
crate://crates.io/skeptic/0.13.2 \
crate://crates.io/smallvec/0.6.0 \
crate://crates.io/socket2/0.3.5 \
crate://crates.io/stable_deref_trait/1.0.0 \
crate://crates.io/string_cache/0.7.1 \
crate://crates.io/string_cache_codegen/0.4.0 \
crate://crates.io/string_cache_shared/0.3.0 \
crate://crates.io/strsim/0.7.0 \
crate://crates.io/strum/0.9.0 \
crate://crates.io/strum_macros/0.9.0 \
crate://crates.io/syn/0.11.11 \
crate://crates.io/syn/0.12.15 \
crate://crates.io/syn/0.13.1 \
crate://crates.io/synom/0.11.3 \
crate://crates.io/synstructure/0.6.1 \
crate://crates.io/syntex_errors/0.52.0 \
crate://crates.io/syntex_pos/0.52.0 \
crate://crates.io/syntex_syntax/0.52.0 \
crate://crates.io/tar/0.4.15 \
crate://crates.io/tempdir/0.3.7 \
crate://crates.io/tempfile/3.0.1 \
crate://crates.io/tendril/0.4.0 \
crate://crates.io/term/0.4.6 \
crate://crates.io/term/0.5.1 \
crate://crates.io/termcolor/0.3.6 \
crate://crates.io/termion/1.5.1 \
crate://crates.io/textwrap/0.9.0 \
crate://crates.io/thread_local/0.3.5 \
crate://crates.io/time/0.1.39 \
crate://crates.io/toml-query/0.6.0 \
crate://crates.io/toml/0.2.1 \
crate://crates.io/toml/0.4.6 \
crate://crates.io/ucd-util/0.1.1 \
crate://crates.io/unicode-bidi/0.3.4 \
crate://crates.io/unicode-normalization/0.1.5 \
crate://crates.io/unicode-segmentation/1.2.0 \
crate://crates.io/unicode-width/0.1.4 \
crate://crates.io/unicode-xid/0.0.3 \
crate://crates.io/unicode-xid/0.0.4 \
crate://crates.io/unicode-xid/0.1.0 \
crate://crates.io/unreachable/0.1.1 \
crate://crates.io/unreachable/1.0.0 \
crate://crates.io/url/1.7.0 \
crate://crates.io/url_serde/0.2.0 \
crate://crates.io/userenv-sys/0.2.0 \
crate://crates.io/utf-8/0.7.2 \
crate://crates.io/utf8-ranges/1.0.0 \
crate://crates.io/vcpkg/0.2.3 \
crate://crates.io/vec_map/0.8.0 \
crate://crates.io/void/1.0.2 \
crate://crates.io/walkdir/1.0.7 \
crate://crates.io/walkdir/2.1.4 \
crate://crates.io/winapi-build/0.1.1 \
crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
crate://crates.io/winapi/0.2.8 \
crate://crates.io/winapi/0.3.4 \
crate://crates.io/wincolor/0.1.6 \
crate://crates.io/xattr/0.2.1 \
crate://crates.io/xz2/0.1.4 \
crate://crates.io/yaml-rust/0.3.5 \
"
DEPENDS += "rust-llvm (=${PV})"
# Otherwise we'll depend on what we provide
INHIBIT_DEFAULT_RUST_DEPS_class-native = "1"
# We don't need to depend on gcc-native because yocto assumes it exists
PROVIDES_class-native = "virtual/${TARGET_PREFIX}rust"
BBCLASSEXTEND = "native"