21 Commits
sumo ... pyro

Author SHA1 Message Date
Derek Straka
94280a636c Merge pull request #171 from cardoe/pyro-1.20.0
(pyro) upgrade to 1.20.0
2017-10-10 12:06:43 -04:00
Derek Straka
4c764c3447 Always allow the clean-up to succeed
Signed-off-by: Derek Straka <derek@asterius.io>
(cherry picked from commit 34941a25e9)
2017-10-10 08:48:31 -05:00
Johan Anderholm
980f6e2baf rust: Don't specify allocator for >= 1.20.0
System allocator is the default in rust.

(cherry picked from commit 37813c4dff)
2017-10-03 21:51:03 -05:00
Johan Anderholm
633c18c655 libstd: correct path to COPYRIGHT
(cherry picked from commit 2fd83daa46)
2017-10-03 21:50:50 -05:00
Doug Goldstein
13e81c1961 bump to Rust 1.20.0 and Cargo 0.21
(cherry picked from commit 3bf7088579)
2017-10-03 21:50:43 -05:00
Johan Anderholm
ee3fec561a Switch to rustbuild
Switch the build process to using Rust's new build system called
rustbuild. At the same time stop using jemalloc on all platforms and
switch to the system allocator since that was simplier to do.

(cherry picked from commit a4fe235317)
2017-10-03 21:50:30 -05:00
Doug Goldstein
a086ab5c3d cargo: convert to versioned include file
We'll need the prior version of cargo to boot strap ourselves going
forward so include the version info so we can support multiple versions
in the tree.

(cherry picked from commit 1ff41650d5)
2017-10-03 21:50:21 -05:00
Doug Goldstein
f822a1e21f update container to the pyro supported version
(cherry picked from commit 1b8883be12)
2017-10-03 21:49:56 -05:00
Doug Goldstein
c7d40b7e36 cargo{_common}.bbclass: abstract out parts for rustbuild
rustbuild is a cargo based way to build Rust but all of our helper bits
in cargo.bbclass would create a chicken/egg issue with dependencies
since we pull down pre-built binaries and use those for boot strapping.

(cherry picked from commit e31d252eb0)
2017-10-03 21:49:48 -05:00
Doug Goldstein
e4c106a186 cargo.bbclass: include CXXFLAGS for builds
If g++ is invoked when building native bits with cargo we need to
include CXXFLAGS.

Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
(cherry picked from commit 0cccf8b25c)
2017-10-03 21:49:39 -05:00
Doug Goldstein
f881c0897c rustfmt: bump to 0.8.0 and use cargo-bitbake
Switch to using cargo-bitbake to generate the recipe and bump versions
at the same time.

(cherry picked from commit 758f8459ec)
2017-10-03 21:49:21 -05:00
Doug Goldstein
243bc13191 cargo: convert recipe to cargo-bitbake
Generate the Cargo recipe with cargo-bitbake instead of having a
handcrafted recipe. This should make future version bumps easier.

Three known issues:
- license checksum of the Apache license is a generateme value
  due to the license file having a difference name then what's in
  Cargo.toml.
- branch= value was wrong for tags. Pointed to HEAD instead of the
  branch that the underlying tag commit came from.
- Use https protocol when the repo is publicly accessible.

(cherry picked from commit 398fecb48c)
2017-10-03 21:49:11 -05:00
Doug Goldstein
5b7699b4f0 cargo.bbclass: improve debug note showing paths
There was a bbnote that showed the path to the rustc and cargo binaries
being used but this was not necessarily correct since it didn't use the
exact variables used.

(cherry picked from commit c55fb403f8)
2017-10-03 21:48:59 -05:00
Doug Goldstein
49c512c885 rust: drop custom target finding patch
We shouldn't need to patch rustc to find the target but instead pass the
full path to the target spec. This should solve #138.

(cherry picked from commit 06a138a4a4)
2017-10-03 21:48:45 -05:00
Johan Anderholm
b4527016df cargo: build cargo using cargo and not make
Instead of using the configure script paired with make, use Cargo to
build Cargo. This moves us closer to being compatible with rustbuild.

(cherry picked from commit 3e0f03d12a)
2017-10-03 21:48:33 -05:00
Johan Anderholm
e04de10cfa rust-common: provide C++ wrappers
For similar reasons to the C and linker wrappers, using rustbuild
requires a C++ wrapper to ensure that the right flags that Yocto needs
are passed to the underlying compiler.

(cherry picked from commit e814ede9d9)
2017-10-03 21:48:23 -05:00
Doug Goldstein
f6d973c5ca compiler-rt: drop unused bits
Since a3fe7c75bf this file has been unused and should have been deleted
with that commit.
2017-06-21 11:51:15 -05:00
Derek Straka
4b9d7a8c21 Merge pull request #159 from cardoe/pyro-drop-rust-1.12
drop Rust 1.12.1 and Cargo 0.13
2017-06-20 11:27:45 -04:00
Doug Goldstein
a3fe7c75bf drop Rust 1.12.1 and Cargo 0.13
In keeping with our supported versions release schedule at
https://github.com/meta-rust/meta-rust/wiki this removes 1.12.1 from
pyro.
2017-06-18 11:14:04 -05:00
Doug Goldstein
73730520b3 Merge pull request #157 from meta-rust/fix-pyro-jenkinsfile
Jenkinsfile: update for pyro branch
2017-06-17 09:03:56 -05:00
Derek Straka
9d3b6cd3bb Jenkinsfile: update for pyro branch
Signed-off-by: Derek Straka <derek@asterius.io>
2017-06-16 11:43:56 -04:00
46 changed files with 300 additions and 1779 deletions

6
Jenkinsfile vendored
View File

@@ -1,4 +1,4 @@
def targets = [ 'qemux86', 'qemux86-64', 'qemuarm', 'qemuarm64', 'qemumips' ]
def targets = [ 'qemux86', 'qemux86-64', 'qemuarm', 'qemuarm64' ]
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 sumo"
sh "GIT_LOCAL_REF_DIR=/srv/git-cache/ ./scripts/fetch.sh pyro"
}
stage("build $machine") {
sh "MACHINE=${machine} ./scripts/build.sh"
@@ -25,7 +25,7 @@ for (int i = 0; i < targets.size(); i++) {
throw e
} finally {
stage("push build cache $machine") {
sh "./scripts/publish-build-cache.sh sumo"
sh "./scripts/publish-build-cache.sh pyro"
}
stage("cleanup $machine") {
sh "./scripts/cleanup-env.sh"

View File

@@ -24,6 +24,7 @@ export RUST_BACKTRACE = "1"
RUSTFLAGS ??= ""
CARGO_BUILD_FLAGS = "-v --target ${HOST_SYS} --release"
RUST_TARGET_PATH = "${STAGING_LIBDIR_NATIVE}/rustlib"
# This is based on the content of CARGO_BUILD_FLAGS and generally will need to
# change if CARGO_BUILD_FLAGS changes.
@@ -45,20 +46,15 @@ cargo_do_compile () {
cargo_do_install () {
local have_installed=false
for tgt in "${B}/target/${CARGO_TARGET_SUBDIR}/"*; do
case $tgt in
*.so|*.rlib)
if [[ $tgt == *.so || $tgt == *.rlib ]]; then
install -d "${D}${rustlibdir}"
install -m755 "$tgt" "${D}${rustlibdir}"
have_installed=true
;;
*)
if [ -f "$tgt" ] && [ -x "$tgt" ]; then
install -d "${D}${bindir}"
install -m755 "$tgt" "${D}${bindir}"
have_installed=true
fi
;;
esac
elif [ -f "$tgt" ] && [ -x "$tgt" ]; then
install -d "${D}${bindir}"
install -m755 "$tgt" "${D}${bindir}"
have_installed=true
fi
done
if ! $have_installed; then
die "Did not find anything to install"

View File

@@ -21,7 +21,7 @@ export CARGO_HOME = "${WORKDIR}/cargo_home"
export PKG_CONFIG_ALLOW_CROSS = "1"
cargo_common_do_configure () {
mkdir -p ${CARGO_HOME}/bitbake
mkdir -p ${CARGO_HOME}
echo "paths = [" > ${CARGO_HOME}/config
for p in ${EXTRA_OECARGO_PATHS}; do
@@ -33,15 +33,11 @@ cargo_common_do_configure () {
cat <<- EOF >> ${CARGO_HOME}/config
[source.bitbake]
directory = "${CARGO_HOME}/bitbake"
EOF
if [ "${EXTERNALSRC}" == "" ]; then
cat <<- EOF >> ${CARGO_HOME}/config
[source.crates-io]
replace-with = "bitbake"
local-registry = "/nonexistant"
EOF
fi
[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

View File

@@ -1,8 +1,9 @@
inherit rust
RDEPENDS_${PN}_append_class-target += "${RUSTLIB_DEP}"
DEPENDS_append = " patchelf-native"
RDEPENDS_${PN} += "${RUSTLIB_DEP}"
RUSTC_ARCHFLAGS += "-C opt-level=3 -g -L ${STAGING_DIR_HOST}/${rustlibdir} -C linker=${RUST_TARGET_CCLD}"
RUSTC_ARCHFLAGS += "-C opt-level=3 -g -L ${STAGING_DIR_HOST}/${rustlibdir} -C link-args=--sysroot=${STAGING_DIR_HOST}"
EXTRA_OEMAKE += 'RUSTC_ARCHFLAGS="${RUSTC_ARCHFLAGS}"'
# Some libraries alias with the standard library but libstd is configured to
@@ -36,44 +37,6 @@ 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
@@ -93,22 +56,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 [ -n '${@link_args(d, False)}' ]; then
link_args[0]='-C'
link_args[1]='link-args=${@link_args(d, False)}'
if [ "${CRATE_TYPE}" == "dylib" ]; then
link_args[0]="-C"
link_args[1]="link-args=-Wl,-soname -Wl,${LIBNAME}.$suffix"
fi
oe_runrustc $(get_overlap_externs) \
"${link_args[@]}" \
${LIB_SRC} \
-o ${@libfilename(d)} \
-o ${LIBNAME}.$suffix \
--crate-name=${CRATE_NAME} --crate-type=${CRATE_TYPE} \
"$@"
}
@@ -116,27 +79,20 @@ oe_compile_rust_lib[vardeps] += "get_overlap_externs"
oe_compile_rust_bin () {
rm -rf ${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_runrustc $(get_overlap_externs) ${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}/${rustlibdest}/$lib
install -D -m 755 $lib ${D}/${rustlibdir}/$lib
done
}
oe_install_rust_bin () {
echo Installing ${BINNAME}
install -D -m 755 ${BINNAME} ${D}/${rustbindest}/${BINNAME}
install -D -m 755 ${BINNAME} ${D}/${bindir}/${BINNAME}
}
do_rust_bin_fixups() {
@@ -144,6 +100,13 @@ 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"

View File

@@ -5,11 +5,8 @@ FILES_${PN}-dev += "${rustlibdir}/*.rlib"
FILES_${PN}-dbg += "${rustlibdir}/.debug"
RUSTLIB = "-L ${STAGING_LIBDIR}/rust"
RUST_DEBUG_REMAP = "-Zremap-path-prefix-from=${WORKDIR} -Zremap-path-prefix-to=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}"
RUSTFLAGS += "${RUSTLIB} ${RUST_DEBUG_REMAP}"
RUSTFLAGS += "${RUSTLIB}"
RUSTLIB_DEP ?= "libstd-rs"
RUST_TARGET_PATH = "${STAGING_LIBDIR_NATIVE}/rustlib"
RUST_PANIC_STRATEGY ?= "unwind"
# Responsible for taking Yocto triples and converting it to Rust triples

View File

@@ -42,4 +42,3 @@ 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"

View File

@@ -8,11 +8,12 @@ BBFILES ?= ""
BBLAYERS ?= " \
##OEROOT##/meta-rust \
##OEROOT##/meta \
##OEROOT##/meta-poky \
##OEROOT##/meta-yocto \
##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 \

View File

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

View File

@@ -18,5 +18,3 @@ do_compile () {
do_install () {
oe_install_rust_lib
}
BBCLASSEXTEND += "native"

View File

@@ -8,14 +8,12 @@ LIC_FILES_CHKSUM = "\
inherit rust-bin
SRC_URI = "git://github.com/rust-lang-nursery/bitflags.git;protocol=https;nobranch=1"
SRCREV = "e30da43cac0e52fc8d0007ce99a316ec6473033e"
SRC_URI = "git://github.com/rust-lang-nursery/bitflags.git;protocol=https"
SRCREV = "41aa413a7c30d70b93b44ab5447276c381ef249e"
S = "${WORKDIR}/git"
LIB_SRC = "${S}/src/lib.rs"
CRATE_TYPE = "rlib"
RUSTFLAGS += "-A pub_use_of_private_extern_crate"
do_compile () {
oe_compile_rust_lib

View File

@@ -9,19 +9,16 @@ LIC_FILES_CHKSUM = "\
inherit rust-bin
SRC_URI = "git://github.com/rust-lang/libc.git;protocol=https"
SRCREV = "05a2d197356ef253dfd985166576619ac9b6947f"
SRCREV = "f54b9c90ee68889181472d4d4a5dd9e43d0e5318"
S = "${WORKDIR}/git"
LIB_SRC = "${S}/src/lib.rs"
do_compile () {
oe_compile_rust_lib --cfg feature='"cargo-build"' --cfg feature='"use_std"'
oe_compile_rust_lib --cfg feature='"cargo-build"'
}
do_install () {
oe_install_rust_lib
}
BBCLASSEXTEND += "native"

View File

@@ -18,5 +18,3 @@ do_compile () {
do_install () {
oe_install_rust_lib
}
BBCLASSEXTEND += "native"

View File

@@ -8,5 +8,3 @@ DEPENDS = "\
require regex.inc
S = "${WORKDIR}/git"
BBCLASSEXTEND += "native"

View File

@@ -3,5 +3,3 @@ DESCRIPTION = "A regular expression parser"
require regex.inc
LIB_SRC = "${S}/regex-syntax/src/lib.rs"
BBCLASSEXTEND += "native"

View File

@@ -10,12 +10,15 @@ DEPENDS = "libc-rs"
inherit rust-bin
SRC_URI = "git://github.com/rust-lang/time.git;protocol=https"
SRCREV = "d265b7cf9f50db74fbd0a01f8bec90ad7d239d48"
SRCREV = "32b212b877b836dbfdc97af5674d91672e70ecbd"
S = "${WORKDIR}/git"
do_compile () {
oe_compile_rust_lib
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 () {

View File

@@ -0,0 +1,11 @@
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[cargo-snapshot.md5sum] = "d41ebf79290a7c9c9e5df87cb27e5091"
SRC_URI[cargo-snapshot.sha256sum] = "365e5cad79512d244b8ced32f8e5b86a710fc6c17f0d0f5f744b8058ef6dc756"
SRC_URI += "\
https://static.rust-lang.org/cargo-dist/${CARGO_SNAPSHOT};name=cargo-snapshot \
"
# 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-nightly-${RUST_BUILD_SYS}/cargo/bin/cargo"

View File

@@ -1,11 +0,0 @@
CARGO_SNAPSHOT = "cargo-0.21.0-${RUST_BUILD_SYS}"
SRC_URI[cargo-snapshot.md5sum] = "0e5389d2e38a14933dda77db8172cb1f"
SRC_URI[cargo-snapshot.sha256sum] = "caccf4ab039c806a9e6fdc7fe389cc88fb771e28e30d93c07a5c56ef845cdf57"
SRC_URI += "\
https://static.rust-lang.org/dist/${CARGO_SNAPSHOT}.tar.gz;name=cargo-snapshot \
"
# 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

@@ -1,12 +0,0 @@
CARGO_SNAPSHOT = "cargo-0.24.0-${RUST_BUILD_SYS}"
SRC_URI[cargo-snapshot.md5sum] = "830041cfc8627d3f7187954993449cf9"
SRC_URI[cargo-snapshot.sha256sum] = "ff8a454104aba20426ea898ed7515ec5da7de07d11733cdda17462455beb76e8"
SRC_URI += "\
https://static.rust-lang.org/dist/${CARGO_SNAPSHOT}.tar.gz;name=cargo-snapshot \
"
# 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,103 @@
# Auto-Generated by cargo-bitbake 0.3.8
#
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.16.0"
SRC_URI += "git://git@github.com/rust-lang/cargo.git;protocol=https;branch=rust-1.15.1"
SRCREV = "6e0c18cccc8b0c06fba8a8d76486f81a792fb420"
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/advapi32-sys/0.2.0 \
crate://crates.io/aho-corasick/0.5.3 \
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.19 \
crate://crates.io/crossbeam/0.2.10 \
crate://crates.io/curl-sys/0.3.6 \
crate://crates.io/curl/0.4.1 \
crate://crates.io/docopt/0.6.86 \
crate://crates.io/env_logger/0.3.5 \
crate://crates.io/filetime/0.1.10 \
crate://crates.io/flate2/0.2.14 \
crate://crates.io/fs2/0.3.0 \
crate://crates.io/gcc/0.3.39 \
crate://crates.io/gdi32-sys/0.2.0 \
crate://crates.io/git2-curl/0.7.0 \
crate://crates.io/git2/0.6.3 \
crate://crates.io/glob/0.2.11 \
crate://crates.io/hamcrest/0.1.1 \
crate://crates.io/idna/0.1.0 \
crate://crates.io/kernel32-sys/0.2.2 \
crate://crates.io/lazy_static/0.2.2 \
crate://crates.io/libc/0.2.18 \
crate://crates.io/libgit2-sys/0.6.5 \
crate://crates.io/libssh2-sys/0.2.4 \
crate://crates.io/libz-sys/1.0.10 \
crate://crates.io/log/0.3.6 \
crate://crates.io/matches/0.1.4 \
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/num-bigint/0.1.35 \
crate://crates.io/num-complex/0.1.35 \
crate://crates.io/num-integer/0.1.32 \
crate://crates.io/num-iter/0.1.32 \
crate://crates.io/num-rational/0.1.35 \
crate://crates.io/num-traits/0.1.36 \
crate://crates.io/num/0.1.36 \
crate://crates.io/num_cpus/1.1.0 \
crate://crates.io/openssl-probe/0.1.0 \
crate://crates.io/openssl-sys/0.9.1 \
crate://crates.io/openssl/0.9.1 \
crate://crates.io/pkg-config/0.3.8 \
crate://crates.io/psapi-sys/0.1.0 \
crate://crates.io/rand/0.3.14 \
crate://crates.io/regex-syntax/0.3.9 \
crate://crates.io/regex/0.1.80 \
crate://crates.io/rustc-serialize/0.3.21 \
crate://crates.io/semver-parser/0.6.1 \
crate://crates.io/semver/0.5.1 \
crate://crates.io/strsim/0.5.1 \
crate://crates.io/tar/0.4.9 \
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.7 \
crate://crates.io/toml/0.2.1 \
crate://crates.io/unicode-bidi/0.2.3 \
crate://crates.io/unicode-normalization/0.1.2 \
crate://crates.io/url/1.2.3 \
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 \
"
LIC_FILES_CHKSUM=" \
file://LICENSE-MIT;md5=362255802eb5aa87810d12ddf3cfedb4 \
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

@@ -1,151 +0,0 @@
# Auto-Generated by cargo-bitbake 0.3.9
#
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.22.0"
SRC_URI += "git://github.com/rust-lang/cargo.git;protocol=https;branch=rust-1.21.0"
SRCREV = "3423351a5d75ac7377bb15987842aadcfd068ad2"
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/advapi32-sys/0.2.0 \
crate://crates.io/aho-corasick/0.5.3 \
crate://crates.io/aho-corasick/0.6.3 \
crate://crates.io/atty/0.2.2 \
crate://crates.io/backtrace-sys/0.1.12 \
crate://crates.io/backtrace/0.3.2 \
crate://crates.io/bitflags/0.7.0 \
crate://crates.io/bitflags/0.9.1 \
crate://crates.io/bufstream/0.1.3 \
crate://crates.io/cfg-if/0.1.2 \
crate://crates.io/cmake/0.1.24 \
crate://crates.io/conv/0.3.3 \
crate://crates.io/core-foundation-sys/0.4.4 \
crate://crates.io/core-foundation/0.4.4 \
crate://crates.io/crossbeam/0.2.10 \
crate://crates.io/curl-sys/0.3.14 \
crate://crates.io/curl/0.4.8 \
crate://crates.io/custom_derive/0.1.7 \
crate://crates.io/dbghelp-sys/0.2.0 \
crate://crates.io/docopt/0.8.1 \
crate://crates.io/dtoa/0.4.1 \
crate://crates.io/env_logger/0.4.3 \
crate://crates.io/error-chain/0.11.0-rc.2 \
crate://crates.io/filetime/0.1.10 \
crate://crates.io/flate2/0.2.19 \
crate://crates.io/fnv/1.0.5 \
crate://crates.io/foreign-types/0.2.0 \
crate://crates.io/fs2/0.4.2 \
crate://crates.io/gcc/0.3.51 \
crate://crates.io/git2-curl/0.7.0 \
crate://crates.io/git2/0.6.6 \
crate://crates.io/glob/0.2.11 \
crate://crates.io/globset/0.2.0 \
crate://crates.io/hamcrest/0.1.1 \
crate://crates.io/hex/0.2.0 \
crate://crates.io/home/0.3.0 \
crate://crates.io/idna/0.1.4 \
crate://crates.io/ignore/0.2.2 \
crate://crates.io/itoa/0.3.1 \
crate://crates.io/jobserver/0.1.6 \
crate://crates.io/kernel32-sys/0.2.2 \
crate://crates.io/lazy_static/0.2.8 \
crate://crates.io/libc/0.2.28 \
crate://crates.io/libgit2-sys/0.6.12 \
crate://crates.io/libssh2-sys/0.2.6 \
crate://crates.io/libz-sys/1.0.16 \
crate://crates.io/log/0.3.8 \
crate://crates.io/magenta-sys/0.1.1 \
crate://crates.io/magenta/0.1.1 \
crate://crates.io/matches/0.1.6 \
crate://crates.io/memchr/0.1.11 \
crate://crates.io/memchr/1.0.1 \
crate://crates.io/miniz-sys/0.1.9 \
crate://crates.io/miow/0.2.1 \
crate://crates.io/net2/0.2.30 \
crate://crates.io/num-bigint/0.1.40 \
crate://crates.io/num-complex/0.1.40 \
crate://crates.io/num-integer/0.1.35 \
crate://crates.io/num-iter/0.1.34 \
crate://crates.io/num-rational/0.1.39 \
crate://crates.io/num-traits/0.1.40 \
crate://crates.io/num/0.1.40 \
crate://crates.io/num_cpus/1.6.2 \
crate://crates.io/openssl-probe/0.1.1 \
crate://crates.io/openssl-sys/0.9.15 \
crate://crates.io/openssl/0.9.15 \
crate://crates.io/percent-encoding/1.0.0 \
crate://crates.io/pkg-config/0.3.9 \
crate://crates.io/psapi-sys/0.1.0 \
crate://crates.io/quote/0.3.15 \
crate://crates.io/rand/0.3.16 \
crate://crates.io/regex-syntax/0.3.9 \
crate://crates.io/regex-syntax/0.4.1 \
crate://crates.io/regex/0.1.80 \
crate://crates.io/regex/0.2.2 \
crate://crates.io/rustc-demangle/0.1.4 \
crate://crates.io/rustc-serialize/0.3.24 \
crate://crates.io/same-file/0.1.3 \
crate://crates.io/scoped-tls/0.1.0 \
crate://crates.io/scopeguard/0.1.2 \
crate://crates.io/semver-parser/0.7.0 \
crate://crates.io/semver/0.7.0 \
crate://crates.io/serde/1.0.11 \
crate://crates.io/serde_derive/1.0.11 \
crate://crates.io/serde_derive_internals/0.15.1 \
crate://crates.io/serde_ignored/0.0.3 \
crate://crates.io/serde_json/1.0.2 \
crate://crates.io/shell-escape/0.1.3 \
crate://crates.io/socket2/0.2.1 \
crate://crates.io/strsim/0.6.0 \
crate://crates.io/syn/0.11.11 \
crate://crates.io/synom/0.11.3 \
crate://crates.io/tar/0.4.13 \
crate://crates.io/tempdir/0.3.5 \
crate://crates.io/termcolor/0.3.2 \
crate://crates.io/thread-id/2.0.0 \
crate://crates.io/thread_local/0.2.7 \
crate://crates.io/thread_local/0.3.4 \
crate://crates.io/toml/0.4.3 \
crate://crates.io/unicode-bidi/0.3.4 \
crate://crates.io/unicode-normalization/0.1.5 \
crate://crates.io/unicode-xid/0.0.4 \
crate://crates.io/unreachable/1.0.0 \
crate://crates.io/url/1.5.1 \
crate://crates.io/userenv-sys/0.2.0 \
crate://crates.io/utf8-ranges/0.1.3 \
crate://crates.io/utf8-ranges/1.0.0 \
crate://crates.io/vcpkg/0.2.2 \
crate://crates.io/void/1.0.2 \
crate://crates.io/walkdir/1.0.7 \
crate://crates.io/winapi-build/0.1.1 \
crate://crates.io/winapi/0.2.8 \
crate://crates.io/wincolor/0.1.4 \
crate://crates.io/ws2_32-sys/0.2.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

@@ -1,167 +0,0 @@
# Auto-Generated by cargo-bitbake 0.3.10-pre
#
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.25.0"
SRC_URI += "git://github.com/rust-lang/cargo;protocol=http;branch=rust-1.24.0"
SRCREV = "8c93e089536467783957fec23b0f2627bb6ce357"
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/advapi32-sys/0.2.0 \
crate://crates.io/aho-corasick/0.5.3 \
crate://crates.io/aho-corasick/0.6.4 \
crate://crates.io/atty/0.2.6 \
crate://crates.io/backtrace-sys/0.1.16 \
crate://crates.io/backtrace/0.3.5 \
crate://crates.io/bitflags/0.9.1 \
crate://crates.io/bitflags/1.0.1 \
crate://crates.io/bufstream/0.1.3 \
crate://crates.io/cc/1.0.4 \
crate://crates.io/cfg-if/0.1.2 \
crate://crates.io/cmake/0.1.29 \
crate://crates.io/commoncrypto-sys/0.2.0 \
crate://crates.io/commoncrypto/0.2.0 \
crate://crates.io/core-foundation-sys/0.4.6 \
crate://crates.io/core-foundation/0.4.6 \
crate://crates.io/crossbeam/0.2.12 \
crate://crates.io/crossbeam/0.3.2 \
crate://crates.io/crypto-hash/0.3.0 \
crate://crates.io/curl-sys/0.4.1 \
crate://crates.io/curl/0.4.11 \
crate://crates.io/docopt/0.8.3 \
crate://crates.io/dtoa/0.4.2 \
crate://crates.io/env_logger/0.4.3 \
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/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.7.0 \
crate://crates.io/git2/0.6.11 \
crate://crates.io/glob/0.2.11 \
crate://crates.io/globset/0.2.1 \
crate://crates.io/hamcrest/0.1.1 \
crate://crates.io/hex/0.2.0 \
crate://crates.io/home/0.3.0 \
crate://crates.io/idna/0.1.4 \
crate://crates.io/ignore/0.2.2 \
crate://crates.io/itoa/0.3.4 \
crate://crates.io/jobserver/0.1.9 \
crate://crates.io/kernel32-sys/0.2.2 \
crate://crates.io/lazy_static/0.2.11 \
crate://crates.io/lazy_static/1.0.0 \
crate://crates.io/libc/0.2.36 \
crate://crates.io/libgit2-sys/0.6.19 \
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/matches/0.1.6 \
crate://crates.io/memchr/0.1.11 \
crate://crates.io/memchr/1.0.2 \
crate://crates.io/memchr/2.0.1 \
crate://crates.io/miniz-sys/0.1.10 \
crate://crates.io/miow/0.2.1 \
crate://crates.io/net2/0.2.31 \
crate://crates.io/num-bigint/0.1.43 \
crate://crates.io/num-complex/0.1.42 \
crate://crates.io/num-integer/0.1.36 \
crate://crates.io/num-iter/0.1.35 \
crate://crates.io/num-rational/0.1.42 \
crate://crates.io/num-traits/0.1.43 \
crate://crates.io/num-traits/0.2.0 \
crate://crates.io/num/0.1.42 \
crate://crates.io/num_cpus/1.8.0 \
crate://crates.io/openssl-probe/0.1.2 \
crate://crates.io/openssl-sys/0.9.26 \
crate://crates.io/openssl/0.9.24 \
crate://crates.io/percent-encoding/1.0.1 \
crate://crates.io/pkg-config/0.3.9 \
crate://crates.io/psapi-sys/0.1.1 \
crate://crates.io/quote/0.3.15 \
crate://crates.io/rand/0.3.22 \
crate://crates.io/rand/0.4.2 \
crate://crates.io/redox_syscall/0.1.37 \
crate://crates.io/redox_termios/0.1.1 \
crate://crates.io/regex-syntax/0.3.9 \
crate://crates.io/regex-syntax/0.4.2 \
crate://crates.io/regex/0.1.80 \
crate://crates.io/regex/0.2.6 \
crate://crates.io/remove_dir_all/0.3.0 \
crate://crates.io/rustc-demangle/0.1.6 \
crate://crates.io/rustc-serialize/0.3.24 \
crate://crates.io/same-file/0.1.3 \
crate://crates.io/schannel/0.1.10 \
crate://crates.io/scoped-tls/0.1.0 \
crate://crates.io/scopeguard/0.1.2 \
crate://crates.io/semver-parser/0.7.0 \
crate://crates.io/semver/0.8.0 \
crate://crates.io/serde/1.0.27 \
crate://crates.io/serde_derive/1.0.27 \
crate://crates.io/serde_derive_internals/0.19.0 \
crate://crates.io/serde_ignored/0.0.4 \
crate://crates.io/serde_json/1.0.9 \
crate://crates.io/shell-escape/0.1.3 \
crate://crates.io/socket2/0.3.1 \
crate://crates.io/strsim/0.6.0 \
crate://crates.io/syn/0.11.11 \
crate://crates.io/synom/0.11.3 \
crate://crates.io/synstructure/0.6.1 \
crate://crates.io/tar/0.4.14 \
crate://crates.io/tempdir/0.3.6 \
crate://crates.io/termcolor/0.3.4 \
crate://crates.io/termion/1.5.1 \
crate://crates.io/thread-id/2.0.0 \
crate://crates.io/thread_local/0.2.7 \
crate://crates.io/thread_local/0.3.5 \
crate://crates.io/toml/0.4.5 \
crate://crates.io/unicode-bidi/0.3.4 \
crate://crates.io/unicode-normalization/0.1.5 \
crate://crates.io/unicode-xid/0.0.4 \
crate://crates.io/unreachable/1.0.0 \
crate://crates.io/url/1.6.0 \
crate://crates.io/userenv-sys/0.2.0 \
crate://crates.io/utf8-ranges/0.1.3 \
crate://crates.io/utf8-ranges/1.0.0 \
crate://crates.io/vcpkg/0.2.2 \
crate://crates.io/void/1.0.2 \
crate://crates.io/walkdir/1.0.7 \
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/ws2_32-sys/0.2.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

@@ -0,0 +1,25 @@
From bff536002eba2ed322d329d9022ccdc77da458a3 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 3/3] std/thread_local: workaround for NULL __dso_handle
---
src/libstd/sys/unix/fast_thread_local.rs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/libstd/sys/unix/fast_thread_local.rs b/src/libstd/sys/unix/fast_thread_local.rs
index 0c625e7..31e7146 100644
--- a/src/libstd/sys/unix/fast_thread_local.rs
+++ b/src/libstd/sys/unix/fast_thread_local.rs
@@ -110,7 +110,7 @@ unsafe fn register_dtor(t: *mut u8, dtor: unsafe extern fn(*mut u8)) {
#[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.1 (Apple Git-78)

View File

@@ -1,245 +0,0 @@
From a0714f06eb1df66a206e1d0fadccf175276b753b Mon Sep 17 00:00:00 2001
From: Philip Craig <philipjcraig@gmail.com>
Date: Sat, 30 Sep 2017 16:28:48 +1000
Subject: [PATCH] Don't use remapped path when loading modules and include
files
---
src/librustc/ich/impls_syntax.rs | 1 +
src/librustc/session/mod.rs | 4 +---
src/libsyntax/codemap.rs | 14 +++++++++++++-
src/libsyntax/ext/expand.rs | 6 ++----
src/libsyntax/ext/source_util.rs | 2 +-
src/libsyntax/parse/parser.rs | 2 +-
src/libsyntax_pos/lib.rs | 6 ++++++
src/test/codegen/remap_path_prefix/aux_mod.rs | 16 ++++++++++++++++
src/test/codegen/remap_path_prefix/main.rs | 7 +++++++
9 files changed, 48 insertions(+), 10 deletions(-)
create mode 100644 src/test/codegen/remap_path_prefix/aux_mod.rs
diff --git a/src/librustc/ich/impls_syntax.rs b/src/librustc/ich/impls_syntax.rs
index b827284271..489fd9b5b7 100644
--- a/src/librustc/ich/impls_syntax.rs
+++ b/src/librustc/ich/impls_syntax.rs
@@ -332,6 +332,7 @@ impl<'a, 'gcx, 'tcx> HashStable<StableHashingContext<'a, 'gcx, 'tcx>> for FileMa
let FileMap {
ref name,
name_was_remapped,
+ path: _,
crate_of_origin,
// Do not hash the source as it is not encoded
src: _,
diff --git a/src/librustc/session/mod.rs b/src/librustc/session/mod.rs
index 7ff9d202c1..619ae81506 100644
--- a/src/librustc/session/mod.rs
+++ b/src/librustc/session/mod.rs
@@ -72,8 +72,7 @@ pub struct Session {
pub derive_registrar_fn: Cell<Option<ast::NodeId>>,
pub default_sysroot: Option<PathBuf>,
// The name of the root source file of the crate, in the local file system.
- // The path is always expected to be absolute. `None` means that there is no
- // source file.
+ // `None` means that there is no source file.
pub local_crate_source_file: Option<String>,
// The directory the compiler has been executed in plus a flag indicating
// if the value stored here has been affected by path remapping.
@@ -707,7 +706,6 @@ pub fn build_session_(sopts: config::Options,
let file_path_mapping = sopts.file_path_mapping();
- // Make the path absolute, if necessary
let local_crate_source_file = local_crate_source_file.map(|path| {
file_path_mapping.map_prefix(path.to_string_lossy().into_owned()).0
});
diff --git a/src/libsyntax/codemap.rs b/src/libsyntax/codemap.rs
index 30ae7df935..e8cfa51ee2 100644
--- a/src/libsyntax/codemap.rs
+++ b/src/libsyntax/codemap.rs
@@ -162,9 +162,16 @@ impl CodeMap {
let start_pos = self.next_start_pos();
let mut files = self.files.borrow_mut();
+ // The path is used to determine the directory for loading submodules and
+ // include files, so it must be before remapping.
+ // Note that filename may not be a valid path, eg it may be `<anon>` etc,
+ // but this is okay because the directory determined by `path.pop()` will
+ // be empty, so the working directory will be used.
+ let path = PathBuf::from(filename.clone());
+
let (filename, was_remapped) = self.path_mapping.map_prefix(filename);
let filemap =
- Rc::new(FileMap::new(filename, was_remapped, src, Pos::from_usize(start_pos)));
+ Rc::new(FileMap::new(filename, was_remapped, path, src, Pos::from_usize(start_pos)));
files.push(filemap.clone());
@@ -216,6 +223,7 @@ impl CodeMap {
let filemap = Rc::new(FileMap {
name: filename,
name_was_remapped,
+ path: PathBuf::new(),
crate_of_origin,
src: None,
src_hash,
@@ -351,6 +359,10 @@ impl CodeMap {
self.lookup_char_pos(sp.lo).file.name.to_string()
}
+ pub fn span_to_path(&self, sp: Span) -> PathBuf {
+ self.lookup_char_pos(sp.lo).file.path.clone()
+ }
+
pub fn span_to_lines(&self, sp: Span) -> FileLinesResult {
debug!("span_to_lines(sp={:?})", sp);
diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs
index 171b0a22e9..8db8c83ef4 100644
--- a/src/libsyntax/ext/expand.rs
+++ b/src/libsyntax/ext/expand.rs
@@ -35,7 +35,6 @@ use visit::Visitor;
use std::collections::HashMap;
use std::mem;
-use std::path::PathBuf;
use std::rc::Rc;
macro_rules! expansions {
@@ -200,7 +199,7 @@ impl<'a, 'b> MacroExpander<'a, 'b> {
self.cx.crate_root = std_inject::injected_crate_name(&krate);
let mut module = ModuleData {
mod_path: vec![Ident::from_str(&self.cx.ecfg.crate_name)],
- directory: PathBuf::from(self.cx.codemap().span_to_filename(krate.span)),
+ directory: self.cx.codemap().span_to_path(krate.span),
};
module.directory.pop();
self.cx.current_expansion.module = Rc::new(module);
@@ -902,8 +901,7 @@ impl<'a, 'b> Folder for InvocationCollector<'a, 'b> {
module.directory.push(&*item.ident.name.as_str());
}
} else {
- let mut path =
- PathBuf::from(self.cx.parse_sess.codemap().span_to_filename(inner));
+ let mut path = self.cx.parse_sess.codemap().span_to_path(inner);
let directory_ownership = match path.file_name().unwrap().to_str() {
Some("mod.rs") => DirectoryOwnership::Owned,
_ => DirectoryOwnership::UnownedViaMod(false),
diff --git a/src/libsyntax/ext/source_util.rs b/src/libsyntax/ext/source_util.rs
index 95fe41be12..17a18256b3 100644
--- a/src/libsyntax/ext/source_util.rs
+++ b/src/libsyntax/ext/source_util.rs
@@ -197,7 +197,7 @@ fn res_rel_file(cx: &mut ExtCtxt, sp: syntax_pos::Span, arg: &Path) -> PathBuf {
// after macro expansion (that is, they are unhygienic).
if !arg.is_absolute() {
let callsite = sp.source_callsite();
- let mut path = PathBuf::from(&cx.codemap().span_to_filename(callsite));
+ let mut path = cx.codemap().span_to_path(callsite);
path.pop();
path.push(arg);
path
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs
index 90a635fdf4..8c443e8b27 100644
--- a/src/libsyntax/parse/parser.rs
+++ b/src/libsyntax/parse/parser.rs
@@ -519,7 +519,7 @@ impl<'a> Parser<'a> {
if let Some(directory) = directory {
parser.directory = directory;
} else if parser.span != syntax_pos::DUMMY_SP {
- parser.directory.path = PathBuf::from(sess.codemap().span_to_filename(parser.span));
+ parser.directory.path = sess.codemap().span_to_path(parser.span);
parser.directory.path.pop();
}
diff --git a/src/libsyntax_pos/lib.rs b/src/libsyntax_pos/lib.rs
index d34dcfa3ed..b0db4edc30 100644
--- a/src/libsyntax_pos/lib.rs
+++ b/src/libsyntax_pos/lib.rs
@@ -32,6 +32,7 @@ use std::cmp;
use std::fmt;
use std::hash::Hasher;
use std::ops::{Add, Sub};
+use std::path::PathBuf;
use std::rc::Rc;
use rustc_data_structures::stable_hasher::StableHasher;
@@ -441,6 +442,8 @@ pub struct FileMap {
pub name: FileName,
/// True if the `name` field above has been modified by -Zremap-path-prefix
pub name_was_remapped: bool,
+ /// The path of the file that the source came from.
+ pub path: PathBuf,
/// Indicates which crate this FileMap was imported from.
pub crate_of_origin: u32,
/// The complete source code
@@ -566,6 +569,7 @@ impl Decodable for FileMap {
Ok(FileMap {
name,
name_was_remapped,
+ path: PathBuf::new(),
// `crate_of_origin` has to be set by the importer.
// This value matches up with rustc::hir::def_id::INVALID_CRATE.
// That constant is not available here unfortunately :(
@@ -591,6 +595,7 @@ impl fmt::Debug for FileMap {
impl FileMap {
pub fn new(name: FileName,
name_was_remapped: bool,
+ path: PathBuf,
mut src: String,
start_pos: BytePos) -> FileMap {
remove_bom(&mut src);
@@ -604,6 +609,7 @@ impl FileMap {
FileMap {
name,
name_was_remapped,
+ path,
crate_of_origin: 0,
src: Some(Rc::new(src)),
src_hash,
diff --git a/src/test/codegen/remap_path_prefix/aux_mod.rs b/src/test/codegen/remap_path_prefix/aux_mod.rs
new file mode 100644
index 0000000000..2a7019957a
--- /dev/null
+++ b/src/test/codegen/remap_path_prefix/aux_mod.rs
@@ -0,0 +1,16 @@
+// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+// ignore-test: this is not a test
+
+#[inline]
+pub fn some_aux_mod_function() -> i32 {
+ 1234
+}
diff --git a/src/test/codegen/remap_path_prefix/main.rs b/src/test/codegen/remap_path_prefix/main.rs
index eb00c91ba5..c73739bb76 100644
--- a/src/test/codegen/remap_path_prefix/main.rs
+++ b/src/test/codegen/remap_path_prefix/main.rs
@@ -16,12 +16,19 @@
extern crate remap_path_prefix_aux;
+// Here we check that submodules and include files are found using the path without
+// remapping. This test requires that rustc is called with an absolute path.
+mod aux_mod;
+include!("aux_mod.rs");
+
// Here we check that the expansion of the file!() macro is mapped.
// CHECK: internal constant [34 x i8] c"/the/src/remap_path_prefix/main.rs"
pub static FILE_PATH: &'static str = file!();
fn main() {
remap_path_prefix_aux::some_aux_function();
+ aux_mod::some_aux_mod_function();
+ some_aux_mod_function();
}
// Here we check that local debuginfo is mapped correctly.
--
2.14.3

View File

@@ -1,43 +0,0 @@
From 6a82f31d21ac7b85211e580585cc73ab2bdb0bc9 Mon Sep 17 00:00:00 2001
From: Tyler Hall <tyler.hall@lexmark.com>
Date: Sun, 29 Oct 2017 16:29:03 -0400
Subject: [PATCH] librustc: always allow unstable options
---
src/librustc/session/config.rs | 13 -------------
1 file changed, 13 deletions(-)
diff --git a/src/librustc/session/config.rs b/src/librustc/session/config.rs
index 4b41572c1a..97381bc05c 100644
--- a/src/librustc/session/config.rs
+++ b/src/librustc/session/config.rs
@@ -1703,8 +1703,6 @@ pub mod nightly_options {
pub fn check_nightly_options(matches: &getopts::Matches, flags: &[RustcOptGroup]) {
let has_z_unstable_option = matches.opt_strs("Z").iter().any(|x| *x == "unstable-options");
- let really_allows_unstable_options = UnstableFeatures::from_environment()
- .is_nightly_build();
for opt in flags.iter() {
if opt.stability == OptionStability::Stable {
@@ -1719,17 +1717,6 @@ pub mod nightly_options {
the flag `{}`",
opt.name));
}
- if really_allows_unstable_options {
- continue
- }
- match opt.stability {
- OptionStability::Unstable => {
- let msg = format!("the option `{}` is only accepted on the \
- nightly compiler", opt.name);
- early_error(ErrorOutputType::default(), &msg);
- }
- OptionStability::Stable => {}
- }
}
}
}
--
2.14.2

View File

@@ -1,43 +0,0 @@
From 6a82f31d21ac7b85211e580585cc73ab2bdb0bc9 Mon Sep 17 00:00:00 2001
From: Tyler Hall <tyler.hall@lexmark.com>
Date: Sun, 29 Oct 2017 16:29:03 -0400
Subject: [PATCH] librustc: always allow unstable options
---
src/librustc/session/config.rs | 13 -------------
1 file changed, 13 deletions(-)
diff --git a/src/librustc/session/config.rs b/src/librustc/session/config.rs
index 4b41572c1a..97381bc05c 100644
--- a/src/librustc/session/config.rs
+++ b/src/librustc/session/config.rs
@@ -1703,8 +1703,6 @@ pub mod nightly_options {
pub fn check_nightly_options(matches: &getopts::Matches, flags: &[RustcOptGroup]) {
let has_z_unstable_option = matches.opt_strs("Z").iter().any(|x| *x == "unstable-options");
- let really_allows_unstable_options = UnstableFeatures::from_environment()
- .is_nightly_build();
for opt in flags.iter() {
if opt.stability == OptionStability::Stable {
@@ -1719,17 +1717,6 @@ pub mod nightly_options {
the flag `{}`",
opt.name));
}
- if really_allows_unstable_options {
- continue
- }
- match opt.stability {
- OptionStability::Unstable => {
- let msg = format!("the option `{}` is only accepted on the \
- nightly compiler", opt.name);
- early_error(ErrorOutputType::default(), &msg);
- }
- OptionStability::Stable => {}
- }
}
}
}
--
2.14.2

View File

@@ -7,7 +7,7 @@ RUSTLIB_DEP = ""
inherit cargo
# Needed so cargo can find libbacktrace
RUSTFLAGS += "-L ${STAGING_LIBDIR} -C link-arg=-Wl,-soname,libstd.so"
RUSTFLAGS += "-L ${STAGING_LIBDIR}"
S = "${RUSTSRC}/src/libstd"
@@ -20,9 +20,5 @@ do_compile_prepend () {
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}/release/deps/*.d
cp ${B}/${TARGET_SYS}/release/deps/* ${D}${rustlibdir}
}

View File

@@ -0,0 +1,21 @@
require rust-source-${PV}.inc
require libstd-rs.inc
LIC_FILES_CHKSUM = "file://../../COPYRIGHT;md5=43e1f1fb9c0ee3af66693d8c4fecafa8"
# 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'"
SRC_URI += "\
crate://crates.io/cmake/0.1.18 \
crate://crates.io/env_logger/0.3.5 \
crate://crates.io/filetime/0.1.10 \
crate://crates.io/gcc/0.3.40 \
crate://crates.io/getopts/0.2.14 \
crate://crates.io/libc/0.2.17 \
crate://crates.io/log/0.3.6 \
crate://crates.io/num_cpus/0.2.13 \
crate://crates.io/rustc-serialize/0.3.19 \
crate://crates.io/toml/0.1.30 \
"

View File

@@ -1,170 +0,0 @@
require rust-source-${PV}.inc
require libstd-rs.inc
LIC_FILES_CHKSUM = "file://../../COPYRIGHT;md5=c709a09d1b062d9a908e3631c1e1cdf5"
# 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'"
# These are taken from src/libstd/Cargo.toml via cargo-bitbake
SRC_URI += " \
crate://crates.io/advapi32-sys/0.2.0 \
crate://crates.io/aho-corasick/0.5.3 \
crate://crates.io/aho-corasick/0.6.3 \
crate://crates.io/ansi_term/0.9.0 \
crate://crates.io/ar/0.3.0 \
crate://crates.io/atty/0.2.2 \
crate://crates.io/backtrace-sys/0.1.12 \
crate://crates.io/backtrace/0.3.2 \
crate://crates.io/bitflags/0.7.0 \
crate://crates.io/bitflags/0.8.2 \
crate://crates.io/bitflags/0.9.1 \
crate://crates.io/bufstream/0.1.3 \
crate://crates.io/cfg-if/0.1.2 \
crate://crates.io/clap/2.26.0 \
crate://crates.io/cmake/0.1.24 \
crate://crates.io/core-foundation-sys/0.4.4 \
crate://crates.io/core-foundation/0.4.4 \
crate://crates.io/crossbeam/0.2.10 \
crate://crates.io/curl-sys/0.3.14 \
crate://crates.io/curl/0.4.8 \
crate://crates.io/dbghelp-sys/0.2.0 \
crate://crates.io/derive-new/0.3.0 \
crate://crates.io/diff/0.1.10 \
crate://crates.io/docopt/0.8.1 \
crate://crates.io/dtoa/0.4.1 \
crate://crates.io/enum_primitive/0.1.1 \
crate://crates.io/env_logger/0.3.5 \
crate://crates.io/env_logger/0.4.3 \
crate://crates.io/error-chain/0.10.0 \
crate://crates.io/error-chain/0.11.0-rc.2 \
crate://crates.io/filetime/0.1.10 \
crate://crates.io/flate2/0.2.19 \
crate://crates.io/fnv/1.0.5 \
crate://crates.io/foreign-types/0.2.0 \
crate://crates.io/fs2/0.4.2 \
crate://crates.io/futures/0.1.14 \
crate://crates.io/gcc/0.3.51 \
crate://crates.io/getopts/0.2.14 \
crate://crates.io/git2-curl/0.7.0 \
crate://crates.io/git2/0.6.6 \
crate://crates.io/glob/0.2.11 \
crate://crates.io/globset/0.2.0 \
crate://crates.io/hamcrest/0.1.1 \
crate://crates.io/handlebars/0.26.2 \
crate://crates.io/hex/0.2.0 \
crate://crates.io/home/0.3.0 \
crate://crates.io/idna/0.1.4 \
crate://crates.io/ignore/0.2.2 \
crate://crates.io/itoa/0.3.1 \
crate://crates.io/jobserver/0.1.6 \
crate://crates.io/jsonrpc-core/7.1.0 \
crate://crates.io/kernel32-sys/0.2.2 \
crate://crates.io/languageserver-types/0.12.0 \
crate://crates.io/lazy_static/0.2.8 \
crate://crates.io/libc/0.2.29 \
crate://crates.io/libgit2-sys/0.6.12 \
crate://crates.io/libssh2-sys/0.2.6 \
crate://crates.io/libz-sys/1.0.16 \
crate://crates.io/log/0.3.8 \
crate://crates.io/lzma-sys/0.1.8 \
crate://crates.io/matches/0.1.6 \
crate://crates.io/mdbook/0.0.22 \
crate://crates.io/memchr/0.1.11 \
crate://crates.io/memchr/1.0.1 \
crate://crates.io/miniz-sys/0.1.9 \
crate://crates.io/miow/0.2.1 \
crate://crates.io/net2/0.2.31 \
crate://crates.io/num-bigint/0.1.40 \
crate://crates.io/num-complex/0.1.40 \
crate://crates.io/num-integer/0.1.35 \
crate://crates.io/num-iter/0.1.34 \
crate://crates.io/num-rational/0.1.39 \
crate://crates.io/num-traits/0.1.40 \
crate://crates.io/num/0.1.40 \
crate://crates.io/num_cpus/1.6.2 \
crate://crates.io/open/1.2.0 \
crate://crates.io/openssl-probe/0.1.1 \
crate://crates.io/openssl-sys/0.9.17 \
crate://crates.io/openssl/0.9.17 \
crate://crates.io/owning_ref/0.3.3 \
crate://crates.io/percent-encoding/1.0.0 \
crate://crates.io/pest/0.3.3 \
crate://crates.io/pkg-config/0.3.9 \
crate://crates.io/psapi-sys/0.1.0 \
crate://crates.io/pulldown-cmark/0.0.14 \
crate://crates.io/quick-error/1.2.0 \
crate://crates.io/quote/0.2.3 \
crate://crates.io/quote/0.3.15 \
crate://crates.io/racer/2.0.10 \
crate://crates.io/rand/0.3.15 \
crate://crates.io/regex-syntax/0.3.9 \
crate://crates.io/regex-syntax/0.4.1 \
crate://crates.io/regex/0.1.80 \
crate://crates.io/regex/0.2.2 \
crate://crates.io/rls-analysis/0.6.5 \
crate://crates.io/rls-data/0.10.0 \
crate://crates.io/rls-rustc/0.1.0 \
crate://crates.io/rls-span/0.4.0 \
crate://crates.io/rls-vfs/0.4.4 \
crate://crates.io/rustc-demangle/0.1.5 \
crate://crates.io/rustc-serialize/0.3.24 \
crate://crates.io/rustfmt-nightly/0.2.2 \
crate://crates.io/same-file/0.1.3 \
crate://crates.io/scoped-tls/0.1.0 \
crate://crates.io/scopeguard/0.1.2 \
crate://crates.io/semver-parser/0.7.0 \
crate://crates.io/semver/0.7.0 \
crate://crates.io/serde/1.0.11 \
crate://crates.io/serde_derive/1.0.11 \
crate://crates.io/serde_derive_internals/0.15.1 \
crate://crates.io/serde_ignored/0.0.3 \
crate://crates.io/serde_json/1.0.2 \
crate://crates.io/shell-escape/0.1.3 \
crate://crates.io/socket2/0.2.2 \
crate://crates.io/stable_deref_trait/1.0.0 \
crate://crates.io/strings/0.1.0 \
crate://crates.io/strsim/0.6.0 \
crate://crates.io/syn/0.11.11 \
crate://crates.io/syn/0.8.7 \
crate://crates.io/synom/0.11.3 \
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.13 \
crate://crates.io/tempdir/0.3.5 \
crate://crates.io/term/0.4.6 \
crate://crates.io/term_size/0.3.0 \
crate://crates.io/termcolor/0.3.2 \
crate://crates.io/textwrap/0.7.0 \
crate://crates.io/thread-id/2.0.0 \
crate://crates.io/thread_local/0.2.7 \
crate://crates.io/thread_local/0.3.4 \
crate://crates.io/toml/0.2.1 \
crate://crates.io/toml/0.4.5 \
crate://crates.io/typed-arena/1.3.0 \
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/unreachable/1.0.0 \
crate://crates.io/url/1.5.1 \
crate://crates.io/url_serde/0.2.0 \
crate://crates.io/userenv-sys/0.2.0 \
crate://crates.io/utf8-ranges/0.1.3 \
crate://crates.io/utf8-ranges/1.0.0 \
crate://crates.io/vcpkg/0.2.2 \
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/winapi-build/0.1.1 \
crate://crates.io/winapi/0.2.8 \
crate://crates.io/wincolor/0.1.4 \
crate://crates.io/ws2_32-sys/0.2.1 \
crate://crates.io/xattr/0.1.11 \
crate://crates.io/xz2/0.1.3 \
crate://crates.io/yaml-rust/0.3.5 \
"

View File

@@ -1,235 +0,0 @@
require rust-source-${PV}.inc
require libstd-rs.inc
LIC_FILES_CHKSUM = "file://../../COPYRIGHT;md5=c709a09d1b062d9a908e3631c1e1cdf5"
# 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'"
# These are taken from src/libstd/Cargo.toml via cargo-bitbake
SRC_URI += " \
crate://crates.io/advapi32-sys/0.2.0 \
crate://crates.io/aho-corasick/0.5.3 \
crate://crates.io/aho-corasick/0.6.4 \
crate://crates.io/ansi_term/0.10.2 \
crate://crates.io/ar/0.3.1 \
crate://crates.io/atty/0.2.3 \
crate://crates.io/backtrace-sys/0.1.16 \
crate://crates.io/backtrace/0.3.4 \
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/byteorder/1.2.1 \
crate://crates.io/cargo_metadata/0.2.3 \
crate://crates.io/cargo_metadata/0.4.0 \
crate://crates.io/cc/1.0.3 \
crate://crates.io/cfg-if/0.1.2 \
crate://crates.io/clap/2.29.0 \
crate://crates.io/cmake/0.1.29 \
crate://crates.io/coco/0.1.1 \
crate://crates.io/commoncrypto-sys/0.2.0 \
crate://crates.io/commoncrypto/0.2.0 \
crate://crates.io/compiletest_rs/0.3.3 \
crate://crates.io/core-foundation-sys/0.4.6 \
crate://crates.io/core-foundation/0.4.6 \
crate://crates.io/crossbeam/0.2.10 \
crate://crates.io/crossbeam/0.3.0 \
crate://crates.io/crypto-hash/0.3.0 \
crate://crates.io/cssparser-macros/0.3.0 \
crate://crates.io/cssparser/0.13.7 \
crate://crates.io/curl-sys/0.3.15 \
crate://crates.io/curl/0.4.8 \
crate://crates.io/dbghelp-sys/0.2.0 \
crate://crates.io/debug_unreachable/0.1.1 \
crate://crates.io/derive-new/0.5.0 \
crate://crates.io/diff/0.1.11 \
crate://crates.io/docopt/0.8.1 \
crate://crates.io/dtoa/0.4.2 \
crate://crates.io/duct/0.8.2 \
crate://crates.io/either/1.4.0 \
crate://crates.io/endian-type/0.1.2 \
crate://crates.io/enum_primitive/0.1.1 \
crate://crates.io/env_logger/0.3.5 \
crate://crates.io/env_logger/0.4.3 \
crate://crates.io/error-chain/0.11.0 \
crate://crates.io/error-chain/0.8.1 \
crate://crates.io/failure/0.1.1 \
crate://crates.io/failure_derive/0.1.1 \
crate://crates.io/filetime/0.1.14 \
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.2 \
crate://crates.io/fuchsia-zircon-sys/0.3.2 \
crate://crates.io/fuchsia-zircon/0.3.2 \
crate://crates.io/futf/0.1.3 \
crate://crates.io/futures/0.1.17 \
crate://crates.io/getopts/0.2.15 \
crate://crates.io/git2-curl/0.7.0 \
crate://crates.io/git2/0.6.10 \
crate://crates.io/glob/0.2.11 \
crate://crates.io/globset/0.2.1 \
crate://crates.io/hamcrest/0.1.1 \
crate://crates.io/handlebars/0.29.1 \
crate://crates.io/hex/0.2.0 \
crate://crates.io/home/0.3.0 \
crate://crates.io/html-diff/0.0.5 \
crate://crates.io/html5ever/0.20.0 \
crate://crates.io/idna/0.1.4 \
crate://crates.io/if_chain/0.1.2 \
crate://crates.io/ignore/0.2.2 \
crate://crates.io/itertools/0.6.5 \
crate://crates.io/itoa/0.3.4 \
crate://crates.io/jobserver/0.1.8 \
crate://crates.io/json/0.11.12 \
crate://crates.io/jsonrpc-core/8.0.1 \
crate://crates.io/kernel32-sys/0.2.2 \
crate://crates.io/kuchiki/0.6.0 \
crate://crates.io/languageserver-types/0.16.0 \
crate://crates.io/lazy_static/0.2.11 \
crate://crates.io/lazy_static/1.0.0 \
crate://crates.io/lazycell/0.5.1 \
crate://crates.io/libc/0.2.34 \
crate://crates.io/libgit2-sys/0.6.18 \
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/markup5ever/0.5.0 \
crate://crates.io/matches/0.1.6 \
crate://crates.io/mdbook/0.0.26 \
crate://crates.io/memchr/0.1.11 \
crate://crates.io/memchr/1.0.2 \
crate://crates.io/memchr/2.0.1 \
crate://crates.io/miniz-sys/0.1.10 \
crate://crates.io/miow/0.2.1 \
crate://crates.io/net2/0.2.31 \
crate://crates.io/nibble_vec/0.0.3 \
crate://crates.io/nix/0.8.1 \
crate://crates.io/num-bigint/0.1.41 \
crate://crates.io/num-complex/0.1.41 \
crate://crates.io/num-integer/0.1.35 \
crate://crates.io/num-iter/0.1.34 \
crate://crates.io/num-rational/0.1.40 \
crate://crates.io/num-traits/0.1.41 \
crate://crates.io/num/0.1.41 \
crate://crates.io/num_cpus/1.7.0 \
crate://crates.io/open/1.2.1 \
crate://crates.io/openssl-probe/0.1.2 \
crate://crates.io/openssl-sys/0.9.23 \
crate://crates.io/openssl/0.9.23 \
crate://crates.io/os_pipe/0.5.1 \
crate://crates.io/owning_ref/0.3.3 \
crate://crates.io/parking_lot/0.5.3 \
crate://crates.io/parking_lot_core/0.2.9 \
crate://crates.io/percent-encoding/1.0.1 \
crate://crates.io/pest/0.3.3 \
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/procedural-masquerade/0.1.5 \
crate://crates.io/psapi-sys/0.1.1 \
crate://crates.io/pulldown-cmark/0.0.15 \
crate://crates.io/pulldown-cmark/0.1.0 \
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/racer/2.0.12 \
crate://crates.io/radix_trie/0.1.2 \
crate://crates.io/rand/0.3.19 \
crate://crates.io/rayon-core/1.3.0 \
crate://crates.io/rayon/0.9.0 \
crate://crates.io/redox_syscall/0.1.32 \
crate://crates.io/redox_termios/0.1.1 \
crate://crates.io/regex-syntax/0.3.9 \
crate://crates.io/regex-syntax/0.4.1 \
crate://crates.io/regex/0.1.80 \
crate://crates.io/regex/0.2.3 \
crate://crates.io/rls-analysis/0.10.0 \
crate://crates.io/rls-data/0.14.0 \
crate://crates.io/rls-rustc/0.1.1 \
crate://crates.io/rls-span/0.4.0 \
crate://crates.io/rls-vfs/0.4.4 \
crate://crates.io/rustc-demangle/0.1.5 \
crate://crates.io/rustc-serialize/0.3.24 \
crate://crates.io/same-file/0.1.3 \
crate://crates.io/scoped-tls/0.1.0 \
crate://crates.io/scopeguard/0.1.2 \
crate://crates.io/scopeguard/0.3.3 \
crate://crates.io/selectors/0.18.0 \
crate://crates.io/semver-parser/0.7.0 \
crate://crates.io/semver/0.6.0 \
crate://crates.io/semver/0.8.0 \
crate://crates.io/serde/1.0.25 \
crate://crates.io/serde_derive/1.0.25 \
crate://crates.io/serde_derive_internals/0.18.1 \
crate://crates.io/serde_ignored/0.0.4 \
crate://crates.io/serde_json/1.0.8 \
crate://crates.io/shared_child/0.2.1 \
crate://crates.io/shell-escape/0.1.3 \
crate://crates.io/siphasher/0.2.2 \
crate://crates.io/smallvec/0.3.3 \
crate://crates.io/smallvec/0.6.0 \
crate://crates.io/socket2/0.2.4 \
crate://crates.io/stable_deref_trait/1.0.0 \
crate://crates.io/string_cache/0.6.2 \
crate://crates.io/string_cache_codegen/0.4.0 \
crate://crates.io/string_cache_shared/0.3.0 \
crate://crates.io/strsim/0.6.0 \
crate://crates.io/syn/0.11.11 \
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.14 \
crate://crates.io/tempdir/0.3.5 \
crate://crates.io/tendril/0.4.0 \
crate://crates.io/term/0.4.6 \
crate://crates.io/termcolor/0.3.3 \
crate://crates.io/termion/1.5.1 \
crate://crates.io/textwrap/0.9.0 \
crate://crates.io/thread-id/2.0.0 \
crate://crates.io/thread_local/0.2.7 \
crate://crates.io/thread_local/0.3.5 \
crate://crates.io/time/0.1.39 \
crate://crates.io/toml/0.2.1 \
crate://crates.io/toml/0.4.5 \
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/unreachable/0.1.1 \
crate://crates.io/unreachable/1.0.0 \
crate://crates.io/url/1.6.0 \
crate://crates.io/url_serde/0.2.0 \
crate://crates.io/userenv-sys/0.2.0 \
crate://crates.io/utf-8/0.7.1 \
crate://crates.io/utf8-ranges/0.1.3 \
crate://crates.io/utf8-ranges/1.0.0 \
crate://crates.io/vcpkg/0.2.2 \
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/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.4 \
crate://crates.io/ws2_32-sys/0.2.1 \
crate://crates.io/xattr/0.1.11 \
crate://crates.io/xz2/0.1.3 \
crate://crates.io/yaml-rust/0.3.5 \
"

View File

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

View File

@@ -8,7 +8,7 @@ LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=4c0bc17c954e99fd547528d938832bfa"
inherit cmake pythonnative
EXTRA_OECMAKE = " \
-DLLVM_TARGETS_TO_BUILD='X86;ARM;AArch64;PowerPC;Mips' \
-DLLVM_TARGETS_TO_BUILD='X86;ARM;AArch64;PowerPC' \
-DLLVM_ENABLE_ASSERTIONS=OFF \
-DLLVM_BUILD_DOCS=OFF \
-DLLVM_ENABLE_TERMINFO=OFF \
@@ -35,6 +35,10 @@ do_compile_prepend_class-target() {
sed -i 's:/lib\>:/${baselib}:g' ${S}/tools/llvm-config/llvm-config.cpp
}
do_compile() {
oe_runmake
}
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

View File

@@ -1,7 +1,7 @@
require rust-source-${PV}.inc
require rust-llvm.inc
LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=e825e017edc35cfd58e26116e5251771"
LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=b99eb43c934ceebecab85c6b9b1a08be"
do_install_prepend () {
# the install does a sed on this without installing the file

View File

@@ -1,16 +0,0 @@
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,30 @@
# Specifics for Rust 1.15.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.14.0"
RUST_STD_SNAPSHOT = "rust-std-${RS_VERSION}-${RUST_BUILD_SYS}"
RUSTC_SNAPSHOT = "rustc-${RS_VERSION}-${RUST_BUILD_SYS}"
CARGO_REV = "fbeea902d2c9a5be6d99cc35681565d8f7832592"
CARGO_SNAPSHOT = "cargo-nightly-${RUST_BUILD_SYS}"
SRC_URI += " \
https://static.rust-lang.org/dist/${RUST_STD_SNAPSHOT}.tar.gz;name=rust-std-snapshot;subdir=rust-snapshot-components \
https://static.rust-lang.org/dist/${RUSTC_SNAPSHOT}.tar.gz;name=rustc-snapshot;subdir=rust-snapshot-components \
"
# Downloaded cargo tarballs must be named differently to distinguish between versions.
SRC_URI += " \
https://s3.amazonaws.com/rust-lang-ci/cargo-builds/${CARGO_REV}/${CARGO_SNAPSHOT}.tar.gz;name=cargo-snapshot;subdir=rust-snapshot-components;downloadfilename=${CARGO_SNAPSHOT}-${CARGO_REV}.tar.gz \
"
# These are x86_64-unknown-linux-gnu hashes, how can we add more?
SRC_URI[rustc-snapshot.md5sum] = "f178d9d6aad0f87c451f4b2f93170633"
SRC_URI[rustc-snapshot.sha256sum] = "0eeec4211aa872f24c220200a0c2b095bbfc9c0f737c1c5df2555967c8f36787"
SRC_URI[rust-std-snapshot.md5sum] = "518e492fc3d50d8c678056eb788bd0e7"
SRC_URI[rust-std-snapshot.sha256sum] = "3a609bfe9572c742d71199faad578ee76abe9067cd8df698bda6e3ef5caf6ec4"
SRC_URI[cargo-snapshot.md5sum] = "59bc24d15c393de364dadb3f4e3c9a5a"
SRC_URI[cargo-snapshot.sha256sum] = "0e052514ee88f236153a0d6c6f38f66d691eb4cf1ac09e6040d96e5101d57800"

View File

@@ -1,26 +0,0 @@
# Specifics for Rust 1.21.0
## 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.20.0"
RUST_STD_SNAPSHOT = "rust-std-${RS_VERSION}-${RUST_BUILD_SYS}"
RUSTC_SNAPSHOT = "rustc-${RS_VERSION}-${RUST_BUILD_SYS}"
CARGO_VERSION = "0.21.0"
CARGO_SNAPSHOT = "cargo-${CARGO_VERSION}-${RUST_BUILD_SYS}"
SRC_URI += " \
https://static.rust-lang.org/dist/${RUST_STD_SNAPSHOT}.tar.gz;name=rust-std-snapshot;subdir=rust-snapshot-components \
https://static.rust-lang.org/dist/${RUSTC_SNAPSHOT}.tar.gz;name=rustc-snapshot;subdir=rust-snapshot-components \
https://static.rust-lang.org/dist/${CARGO_SNAPSHOT}.tar.gz;name=cargo-snapshot;subdir=rust-snapshot-components \
"
# These are x86_64-unknown-linux-gnu hashes, how can we add more?
SRC_URI[rustc-snapshot.md5sum] = "c6276176ec6061b61ae73617a64bceb0"
SRC_URI[rustc-snapshot.sha256sum] = "000e776431718a32b5d40c4aa6e09b3425f0b71dea8c95e718d29b8c0f5b35d3"
SRC_URI[rust-std-snapshot.md5sum] = "8c0f7355b66830517a51a2bd6f530327"
SRC_URI[rust-std-snapshot.sha256sum] = "a1b3e13b9d6f9aa713783145cb83070b1dabbe17349043b3528031d7712ca929"
SRC_URI[cargo-snapshot.md5sum] = "0e5389d2e38a14933dda77db8172cb1f"
SRC_URI[cargo-snapshot.sha256sum] = "caccf4ab039c806a9e6fdc7fe389cc88fb771e28e30d93c07a5c56ef845cdf57"

View File

@@ -1,26 +0,0 @@
# Specifics for Rust 1.24.0
## 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.23.0"
RUST_STD_SNAPSHOT = "rust-std-${RS_VERSION}-${RUST_BUILD_SYS}"
RUSTC_SNAPSHOT = "rustc-${RS_VERSION}-${RUST_BUILD_SYS}"
CARGO_VERSION = "0.24.0"
CARGO_SNAPSHOT = "cargo-${CARGO_VERSION}-${RUST_BUILD_SYS}"
SRC_URI += " \
https://static.rust-lang.org/dist/${RUST_STD_SNAPSHOT}.tar.gz;name=rust-std-snapshot;subdir=rust-snapshot-components \
https://static.rust-lang.org/dist/${RUSTC_SNAPSHOT}.tar.gz;name=rustc-snapshot;subdir=rust-snapshot-components \
https://static.rust-lang.org/dist/${CARGO_SNAPSHOT}.tar.gz;name=cargo-snapshot;subdir=rust-snapshot-components \
"
# These are x86_64-unknown-linux-gnu hashes, how can we add more?
SRC_URI[rustc-snapshot.md5sum] = "068fc6566772c4ce165cc547151f514c"
SRC_URI[rustc-snapshot.sha256sum] = "27b124fd0d94c082978ff81e45f7b7c37e91d64714587829bf828d64d76524ee"
SRC_URI[rust-std-snapshot.md5sum] = "f9f89caf41e3f9c092118272ceb5bf6b"
SRC_URI[rust-std-snapshot.sha256sum] = "83c7351bdc4326caf785c208cff86682825dad4a89ccee705fa05f55ce7bd25b"
SRC_URI[cargo-snapshot.md5sum] = "830041cfc8627d3f7187954993449cf9"
SRC_URI[cargo-snapshot.sha256sum] = "ff8a454104aba20426ea898ed7515ec5da7de07d11733cdda17462455beb76e8"

View File

@@ -0,0 +1,14 @@
# Specifics for Rust 1.15.1
SRC_URI += "\
https://static.rust-lang.org/dist/rustc-${PV}-src.tar.gz;name=rust \
"
SRC_URI[rust.md5sum] = "5bbfff5ef8857a73d120616546a7fd29"
SRC_URI[rust.sha256sum] = "2e7daad418a830b45b977cd7ecf181b65f30f73df63ff36e124ea5fe5d1af327"
# 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=43e1f1fb9c0ee3af66693d8c4fecafa8"

View File

@@ -1,14 +0,0 @@
# Specifics for Rust 1.21.0
SRC_URI += "\
https://static.rust-lang.org/dist/rustc-${PV}-src.tar.gz;name=rust \
"
SRC_URI[rust.md5sum] = "bc494706b764276613064aad52922f53"
SRC_URI[rust.sha256sum] = "1707c142244b5bd909993559c6116c81987c1de21d6207c05d3ecbe5bba548fa"
# 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=c709a09d1b062d9a908e3631c1e1cdf5"

View File

@@ -1,18 +0,0 @@
# Specifics for Rust 1.24.1
SRC_URI += " \
https://static.rust-lang.org/dist/rustc-${PV}-src.tar.gz;name=rust \
"
SRC_URI[md5sum] = "50639bf359e658fcd713787d5898628d"
SRC_URI[sha256sum] = "3ea53d45e8d2e9a41afb3340cf54b9745f845b552d802d607707cf04450761ef"
SRC_URI[rust.md5sum] = "50639bf359e658fcd713787d5898628d"
SRC_URI[rust.sha256sum] = "3ea53d45e8d2e9a41afb3340cf54b9745f845b552d802d607707cf04450761ef"
# 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=c709a09d1b062d9a908e3631c1e1cdf5"

View File

@@ -33,7 +33,7 @@ def llvm_features_from_tune(d):
f = []
feat = d.getVar('TUNE_FEATURES')
if not feat:
return []
return ""
feat = frozenset(feat.split())
if 'vfpv4' in feat:
@@ -52,12 +52,6 @@ def llvm_features_from_tune(d):
if 'aarch64' in feat:
f.append("+v8")
if 'mips32' in feat:
f.append("+mips32")
if 'mips32r2' in feat:
f.append("+mips32r2")
v7=frozenset(['armv7a', 'armv7r', 'armv7m', 'armv7ve'])
if not feat.isdisjoint(v7):
f.append("+v7")
@@ -83,7 +77,12 @@ def llvm_features_from_tune(d):
if 'cortexa17' in feat:
f.append("+a17")
return f
# Seems like it could be infered by the lack of vfp options, but we'll
# include it anyhow
if 'soft' in feat:
f.append("+soft-float")
return ','.join(f)
# TARGET_CC_ARCH changes from build/cross/target so it'll do the right thing
# this should go away when https://github.com/rust-lang/rust/pull/31709 is
@@ -92,7 +91,7 @@ def llvm_features_from_cc_arch(d):
f = []
feat = d.getVar('TARGET_CC_ARCH')
if not feat:
return []
return ""
feat = frozenset(feat.split())
if '-mmmx' in feat:
@@ -116,26 +115,13 @@ def llvm_features_from_cc_arch(d):
if '-mavx2' in feat:
f.append("+avx2")
return f
def llvm_features_from_target_fpu(d):
# TARGET_FPU can be hard or soft. +soft-float tell llvm to use soft float
# ABI. There is no option for hard.
fpu = d.getVar('TARGET_FPU', True)
return ["+soft-float"] if fpu == "soft" else []
def llvm_features(d):
return ','.join(llvm_features_from_tune(d) +
llvm_features_from_cc_arch(d) +
llvm_features_from_target_fpu(d))
return ','.join(f)
## arm-unknown-linux-gnueabihf
DATA_LAYOUT[arm] = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64"
LLVM_TARGET[arm] = "${RUST_TARGET_SYS}"
TARGET_ENDIAN[arm] = "little"
TARGET_POINTER_WIDTH[arm] = "32"
TARGET_C_INT_WIDTH[arm] = "32"
MAX_ATOMIC_WIDTH[arm] = "64"
FEATURES[arm] = "+v6,+vfp2"
@@ -144,7 +130,6 @@ DATA_LAYOUT[aarch64] = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
LLVM_TARGET[aarch64] = "aarch64-unknown-linux-gnu"
TARGET_ENDIAN[aarch64] = "little"
TARGET_POINTER_WIDTH[aarch64] = "64"
TARGET_C_INT_WIDTH[aarch64] = "64"
MAX_ATOMIC_WIDTH[aarch64] = "128"
## x86_64-unknown-linux-gnu
@@ -152,7 +137,6 @@ DATA_LAYOUT[x86_64] = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
LLVM_TARGET[x86_64] = "x86_64-unknown-linux-gnu"
TARGET_ENDIAN[x86_64] = "little"
TARGET_POINTER_WIDTH[x86_64] = "64"
TARGET_C_INT_WIDTH[x86_64] = "64"
MAX_ATOMIC_WIDTH[x86_64] = "64"
## i686-unknown-linux-gnu
@@ -160,7 +144,6 @@ DATA_LAYOUT[i686] = "e-m:e-p:32:32-f64:32:64-f80:32-n8:16:32-S128"
LLVM_TARGET[i686] = "i686-unknown-linux-gnu"
TARGET_ENDIAN[i686] = "little"
TARGET_POINTER_WIDTH[i686] = "32"
TARGET_C_INT_WIDTH[i686] = "32"
MAX_ATOMIC_WIDTH[i686] = "64"
## XXX: a bit of a hack so qemux86 builds, clone of i686-unknown-linux-gnu above
@@ -168,25 +151,8 @@ DATA_LAYOUT[i586] = "e-m:e-p:32:32-f64:32:64-f80:32-n8:16:32-S128"
LLVM_TARGET[i586] = "i586-unknown-linux-gnu"
TARGET_ENDIAN[i586] = "little"
TARGET_POINTER_WIDTH[i586] = "32"
TARGET_C_INT_WIDTH[i586] = "32"
MAX_ATOMIC_WIDTH[i586] = "64"
## mips-unknown-linux-gnu
DATA_LAYOUT[mips] = "E-m:m-p:32:32-i8:8:32-i16:16:32-i64:64-n32-S64"
LLVM_TARGET[mips] = "${RUST_TARGET_SYS}"
TARGET_ENDIAN[mips] = "big"
TARGET_POINTER_WIDTH[mips] = "32"
TARGET_C_INT_WIDTH[mips] = "32"
MAX_ATOMIC_WIDTH[mips] = "32"
## mipsel-unknown-linux-gnu
DATA_LAYOUT[mipsel] = "e-m:m-p:32:32-i8:8:32-i16:16:32-i64:64-n32-S64"
LLVM_TARGET[mipsel] = "${RUST_TARGET_SYS}"
TARGET_ENDIAN[mipsel] = "little"
TARGET_POINTER_WIDTH[mipsel] = "32"
TARGET_C_INT_WIDTH[mipsel] = "32"
MAX_ATOMIC_WIDTH[mipsel] = "32"
def arch_for(d, thing):
return d.getVar('{}_ARCH'.format(thing))
@@ -201,8 +167,6 @@ def prefix_for(d, thing):
def arch_to_rust_target_arch(arch):
if arch == "i586" or arch == "i686":
return "x86"
elif arch == "mipsel":
return "mips"
else:
return arch
@@ -218,26 +182,17 @@ def llvm_cpu(d):
trans['i686'] = "i686"
trans['i586'] = "i586"
if target in ["mips", "mipsel"]:
feat = frozenset(d.getVar('TUNE_FEATURES').split())
if "mips32r2" in feat:
trans['mipsel'] = "mips32r2"
trans['mips'] = "mips32r2"
elif "mips32" in feat:
trans['mipsel'] = "mips32"
trans['mips'] = "mips32"
try:
return trans[cpu]
except:
return trans.get(target, "generic")
TARGET_LLVM_CPU="${@llvm_cpu(d)}"
TARGET_LLVM_FEATURES = "${@llvm_features(d)}"
TARGET_LLVM_FEATURES = "${@llvm_features_from_tune(d)} ${@llvm_features_from_cc_arch(d)}"
# class-native implies TARGET=HOST, and TUNE_FEATURES only describes the real
# (original) target.
TARGET_LLVM_FEATURES_class-native = "${@','.join(llvm_features_from_cc_arch(d))}"
TARGET_LLVM_FEATURES_class-native = "${@llvm_features_from_cc_arch(d)}"
def rust_gen_target(d, thing, wd):
import json
@@ -260,7 +215,6 @@ def rust_gen_target(d, thing, wd):
tspec['data-layout'] = d.getVarFlag('DATA_LAYOUT', arch)
tspec['max-atomic-width'] = d.getVarFlag('MAX_ATOMIC_WIDTH', arch)
tspec['target-pointer-width'] = d.getVarFlag('TARGET_POINTER_WIDTH', arch)
tspec['target-c-int-width'] = d.getVarFlag('TARGET_C_INT_WIDTH', arch)
tspec['target-endian'] = d.getVarFlag('TARGET_ENDIAN', arch)
tspec['arch'] = arch_to_rust_target_arch(arch)
tspec['os'] = "linux"
@@ -279,7 +233,6 @@ def rust_gen_target(d, thing, wd):
tspec['has-rpath'] = True
tspec['has-elf-tls'] = True
tspec['position-independent-executables'] = True
tspec['panic-strategy'] = d.getVar("RUST_PANIC_STRATEGY")
# Don't use jemalloc as it doesn't work for many targets.
# https://github.com/rust-lang/rust/pull/37392
@@ -314,7 +267,7 @@ do_rust_setup_snapshot () {
# Some versions of rust (e.g. 1.18.0) tries to find cargo in stage0/bin/cargo
# and fail without it there.
mkdir -p ${RUSTSRC}/build/${BUILD_SYS}
ln -sf ${WORKDIR}/rust-snapshot/ ${RUSTSRC}/build/${BUILD_SYS}/stage0
ln -s ${WORKDIR}/rust-snapshot/ ${RUSTSRC}/build/${BUILD_SYS}/stage0
}
addtask rust_setup_snapshot after do_unpack before do_configure
do_rust_setup_snapshot[dirs] += "${WORKDIR}/rust-snapshot"

View File

@@ -0,0 +1,30 @@
require rust.inc
require rust-source-${PV}.inc
require rust-snapshot-${PV}.inc
SRC_URI += " \
file://rust-${PV}/0003-std-thread_local-workaround-for-NULL-__dso_handle.patch \
"
# These are extracted from rustc/src/bootstrap/Cargo.toml.
SRC_URI += " \
crate://crates.io/cmake/0.1.18 \
crate://crates.io/env_logger/0.3.5 \
crate://crates.io/filetime/0.1.10 \
crate://crates.io/gcc/0.3.40 \
crate://crates.io/getopts/0.2.14 \
crate://crates.io/libc/0.2.17 \
crate://crates.io/log/0.3.6 \
crate://crates.io/num_cpus/0.2.13 \
crate://crates.io/rustc-serialize/0.3.19 \
crate://crates.io/toml/0.1.30 \
"
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"

View File

@@ -1,177 +0,0 @@
require rust.inc
require rust-source-${PV}.inc
require rust-snapshot-${PV}.inc
SRC_URI += "file://rust-${PV}/0001-librustc-always-allow-unstable-options.patch"
SRC_URI += "file://rust-${PV}/0001-Don-t-use-remapped-path-when-loading-modules-and-inc.patch"
# These are extracted from rustc/src/bootstrap/Cargo.toml via cargo-bitbake
SRC_URI += " \
crate://crates.io/advapi32-sys/0.2.0 \
crate://crates.io/aho-corasick/0.5.3 \
crate://crates.io/aho-corasick/0.6.3 \
crate://crates.io/ansi_term/0.9.0 \
crate://crates.io/ar/0.3.0 \
crate://crates.io/atty/0.2.2 \
crate://crates.io/backtrace-sys/0.1.12 \
crate://crates.io/backtrace/0.3.2 \
crate://crates.io/bitflags/0.7.0 \
crate://crates.io/bitflags/0.8.2 \
crate://crates.io/bitflags/0.9.1 \
crate://crates.io/bufstream/0.1.3 \
crate://crates.io/cfg-if/0.1.2 \
crate://crates.io/clap/2.26.0 \
crate://crates.io/cmake/0.1.24 \
crate://crates.io/core-foundation-sys/0.4.4 \
crate://crates.io/core-foundation/0.4.4 \
crate://crates.io/crossbeam/0.2.10 \
crate://crates.io/curl-sys/0.3.14 \
crate://crates.io/curl/0.4.8 \
crate://crates.io/dbghelp-sys/0.2.0 \
crate://crates.io/derive-new/0.3.0 \
crate://crates.io/diff/0.1.10 \
crate://crates.io/docopt/0.8.1 \
crate://crates.io/dtoa/0.4.1 \
crate://crates.io/enum_primitive/0.1.1 \
crate://crates.io/env_logger/0.3.5 \
crate://crates.io/env_logger/0.4.3 \
crate://crates.io/error-chain/0.10.0 \
crate://crates.io/error-chain/0.11.0-rc.2 \
crate://crates.io/filetime/0.1.10 \
crate://crates.io/flate2/0.2.19 \
crate://crates.io/fnv/1.0.5 \
crate://crates.io/foreign-types/0.2.0 \
crate://crates.io/fs2/0.4.2 \
crate://crates.io/futures/0.1.14 \
crate://crates.io/gcc/0.3.51 \
crate://crates.io/getopts/0.2.14 \
crate://crates.io/git2-curl/0.7.0 \
crate://crates.io/git2/0.6.6 \
crate://crates.io/glob/0.2.11 \
crate://crates.io/globset/0.2.0 \
crate://crates.io/hamcrest/0.1.1 \
crate://crates.io/handlebars/0.26.2 \
crate://crates.io/hex/0.2.0 \
crate://crates.io/home/0.3.0 \
crate://crates.io/idna/0.1.4 \
crate://crates.io/ignore/0.2.2 \
crate://crates.io/itoa/0.3.1 \
crate://crates.io/jobserver/0.1.6 \
crate://crates.io/jsonrpc-core/7.1.0 \
crate://crates.io/kernel32-sys/0.2.2 \
crate://crates.io/languageserver-types/0.12.0 \
crate://crates.io/lazy_static/0.2.8 \
crate://crates.io/libc/0.2.29 \
crate://crates.io/libgit2-sys/0.6.12 \
crate://crates.io/libssh2-sys/0.2.6 \
crate://crates.io/libz-sys/1.0.16 \
crate://crates.io/log/0.3.8 \
crate://crates.io/lzma-sys/0.1.8 \
crate://crates.io/matches/0.1.6 \
crate://crates.io/mdbook/0.0.22 \
crate://crates.io/memchr/0.1.11 \
crate://crates.io/memchr/1.0.1 \
crate://crates.io/miniz-sys/0.1.9 \
crate://crates.io/miow/0.2.1 \
crate://crates.io/net2/0.2.31 \
crate://crates.io/num-bigint/0.1.40 \
crate://crates.io/num-complex/0.1.40 \
crate://crates.io/num-integer/0.1.35 \
crate://crates.io/num-iter/0.1.34 \
crate://crates.io/num-rational/0.1.39 \
crate://crates.io/num-traits/0.1.40 \
crate://crates.io/num/0.1.40 \
crate://crates.io/num_cpus/1.6.2 \
crate://crates.io/open/1.2.0 \
crate://crates.io/openssl-probe/0.1.1 \
crate://crates.io/openssl-sys/0.9.17 \
crate://crates.io/openssl/0.9.17 \
crate://crates.io/owning_ref/0.3.3 \
crate://crates.io/percent-encoding/1.0.0 \
crate://crates.io/pest/0.3.3 \
crate://crates.io/pkg-config/0.3.9 \
crate://crates.io/psapi-sys/0.1.0 \
crate://crates.io/pulldown-cmark/0.0.14 \
crate://crates.io/quick-error/1.2.0 \
crate://crates.io/quote/0.2.3 \
crate://crates.io/quote/0.3.15 \
crate://crates.io/racer/2.0.10 \
crate://crates.io/rand/0.3.15 \
crate://crates.io/regex-syntax/0.3.9 \
crate://crates.io/regex-syntax/0.4.1 \
crate://crates.io/regex/0.1.80 \
crate://crates.io/regex/0.2.2 \
crate://crates.io/rls-analysis/0.6.5 \
crate://crates.io/rls-data/0.10.0 \
crate://crates.io/rls-rustc/0.1.0 \
crate://crates.io/rls-span/0.4.0 \
crate://crates.io/rls-vfs/0.4.4 \
crate://crates.io/rustc-demangle/0.1.5 \
crate://crates.io/rustc-serialize/0.3.24 \
crate://crates.io/rustfmt-nightly/0.2.2 \
crate://crates.io/same-file/0.1.3 \
crate://crates.io/scoped-tls/0.1.0 \
crate://crates.io/scopeguard/0.1.2 \
crate://crates.io/semver-parser/0.7.0 \
crate://crates.io/semver/0.7.0 \
crate://crates.io/serde/1.0.11 \
crate://crates.io/serde_derive/1.0.11 \
crate://crates.io/serde_derive_internals/0.15.1 \
crate://crates.io/serde_ignored/0.0.3 \
crate://crates.io/serde_json/1.0.2 \
crate://crates.io/shell-escape/0.1.3 \
crate://crates.io/socket2/0.2.2 \
crate://crates.io/stable_deref_trait/1.0.0 \
crate://crates.io/strings/0.1.0 \
crate://crates.io/strsim/0.6.0 \
crate://crates.io/syn/0.11.11 \
crate://crates.io/syn/0.8.7 \
crate://crates.io/synom/0.11.3 \
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.13 \
crate://crates.io/tempdir/0.3.5 \
crate://crates.io/term/0.4.6 \
crate://crates.io/term_size/0.3.0 \
crate://crates.io/termcolor/0.3.2 \
crate://crates.io/textwrap/0.7.0 \
crate://crates.io/thread-id/2.0.0 \
crate://crates.io/thread_local/0.2.7 \
crate://crates.io/thread_local/0.3.4 \
crate://crates.io/toml/0.2.1 \
crate://crates.io/toml/0.4.5 \
crate://crates.io/typed-arena/1.3.0 \
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/unreachable/1.0.0 \
crate://crates.io/url/1.5.1 \
crate://crates.io/url_serde/0.2.0 \
crate://crates.io/userenv-sys/0.2.0 \
crate://crates.io/utf8-ranges/0.1.3 \
crate://crates.io/utf8-ranges/1.0.0 \
crate://crates.io/vcpkg/0.2.2 \
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/winapi-build/0.1.1 \
crate://crates.io/winapi/0.2.8 \
crate://crates.io/wincolor/0.1.4 \
crate://crates.io/ws2_32-sys/0.2.1 \
crate://crates.io/xattr/0.1.11 \
crate://crates.io/xz2/0.1.3 \
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"

View File

@@ -1,241 +0,0 @@
require rust.inc
require rust-source-${PV}.inc
require rust-snapshot-${PV}.inc
SRC_URI += "file://rust-${PV}/0001-librustc-always-allow-unstable-options.patch"
# These are extracted from rustc/src/bootstrap/Cargo.toml via cargo-bitbake
SRC_URI += " \
crate://crates.io/advapi32-sys/0.2.0 \
crate://crates.io/aho-corasick/0.5.3 \
crate://crates.io/aho-corasick/0.6.4 \
crate://crates.io/ansi_term/0.10.2 \
crate://crates.io/ar/0.3.1 \
crate://crates.io/atty/0.2.3 \
crate://crates.io/backtrace-sys/0.1.16 \
crate://crates.io/backtrace/0.3.4 \
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/byteorder/1.2.1 \
crate://crates.io/cargo_metadata/0.2.3 \
crate://crates.io/cargo_metadata/0.4.0 \
crate://crates.io/cc/1.0.3 \
crate://crates.io/cfg-if/0.1.2 \
crate://crates.io/clap/2.29.0 \
crate://crates.io/cmake/0.1.29 \
crate://crates.io/coco/0.1.1 \
crate://crates.io/commoncrypto-sys/0.2.0 \
crate://crates.io/commoncrypto/0.2.0 \
crate://crates.io/compiletest_rs/0.3.3 \
crate://crates.io/core-foundation-sys/0.4.6 \
crate://crates.io/core-foundation/0.4.6 \
crate://crates.io/crossbeam/0.2.10 \
crate://crates.io/crossbeam/0.3.0 \
crate://crates.io/crypto-hash/0.3.0 \
crate://crates.io/cssparser-macros/0.3.0 \
crate://crates.io/cssparser/0.13.7 \
crate://crates.io/curl-sys/0.3.15 \
crate://crates.io/curl/0.4.8 \
crate://crates.io/dbghelp-sys/0.2.0 \
crate://crates.io/debug_unreachable/0.1.1 \
crate://crates.io/derive-new/0.5.0 \
crate://crates.io/diff/0.1.11 \
crate://crates.io/docopt/0.8.1 \
crate://crates.io/dtoa/0.4.2 \
crate://crates.io/duct/0.8.2 \
crate://crates.io/either/1.4.0 \
crate://crates.io/endian-type/0.1.2 \
crate://crates.io/enum_primitive/0.1.1 \
crate://crates.io/env_logger/0.3.5 \
crate://crates.io/env_logger/0.4.3 \
crate://crates.io/error-chain/0.11.0 \
crate://crates.io/error-chain/0.8.1 \
crate://crates.io/failure/0.1.1 \
crate://crates.io/failure_derive/0.1.1 \
crate://crates.io/filetime/0.1.14 \
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.2 \
crate://crates.io/fuchsia-zircon-sys/0.3.2 \
crate://crates.io/fuchsia-zircon/0.3.2 \
crate://crates.io/futf/0.1.3 \
crate://crates.io/futures/0.1.17 \
crate://crates.io/getopts/0.2.15 \
crate://crates.io/git2-curl/0.7.0 \
crate://crates.io/git2/0.6.10 \
crate://crates.io/glob/0.2.11 \
crate://crates.io/globset/0.2.1 \
crate://crates.io/hamcrest/0.1.1 \
crate://crates.io/handlebars/0.29.1 \
crate://crates.io/hex/0.2.0 \
crate://crates.io/home/0.3.0 \
crate://crates.io/html-diff/0.0.5 \
crate://crates.io/html5ever/0.20.0 \
crate://crates.io/idna/0.1.4 \
crate://crates.io/if_chain/0.1.2 \
crate://crates.io/ignore/0.2.2 \
crate://crates.io/itertools/0.6.5 \
crate://crates.io/itoa/0.3.4 \
crate://crates.io/jobserver/0.1.8 \
crate://crates.io/json/0.11.12 \
crate://crates.io/jsonrpc-core/8.0.1 \
crate://crates.io/kernel32-sys/0.2.2 \
crate://crates.io/kuchiki/0.6.0 \
crate://crates.io/languageserver-types/0.16.0 \
crate://crates.io/lazy_static/0.2.11 \
crate://crates.io/lazy_static/1.0.0 \
crate://crates.io/lazycell/0.5.1 \
crate://crates.io/libc/0.2.34 \
crate://crates.io/libgit2-sys/0.6.18 \
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/markup5ever/0.5.0 \
crate://crates.io/matches/0.1.6 \
crate://crates.io/mdbook/0.0.26 \
crate://crates.io/memchr/0.1.11 \
crate://crates.io/memchr/1.0.2 \
crate://crates.io/memchr/2.0.1 \
crate://crates.io/miniz-sys/0.1.10 \
crate://crates.io/miow/0.2.1 \
crate://crates.io/net2/0.2.31 \
crate://crates.io/nibble_vec/0.0.3 \
crate://crates.io/nix/0.8.1 \
crate://crates.io/num-bigint/0.1.41 \
crate://crates.io/num-complex/0.1.41 \
crate://crates.io/num-integer/0.1.35 \
crate://crates.io/num-iter/0.1.34 \
crate://crates.io/num-rational/0.1.40 \
crate://crates.io/num-traits/0.1.41 \
crate://crates.io/num/0.1.41 \
crate://crates.io/num_cpus/1.7.0 \
crate://crates.io/open/1.2.1 \
crate://crates.io/openssl-probe/0.1.2 \
crate://crates.io/openssl-sys/0.9.23 \
crate://crates.io/openssl/0.9.23 \
crate://crates.io/os_pipe/0.5.1 \
crate://crates.io/owning_ref/0.3.3 \
crate://crates.io/parking_lot/0.5.3 \
crate://crates.io/parking_lot_core/0.2.9 \
crate://crates.io/percent-encoding/1.0.1 \
crate://crates.io/pest/0.3.3 \
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/procedural-masquerade/0.1.5 \
crate://crates.io/psapi-sys/0.1.1 \
crate://crates.io/pulldown-cmark/0.0.15 \
crate://crates.io/pulldown-cmark/0.1.0 \
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/racer/2.0.12 \
crate://crates.io/radix_trie/0.1.2 \
crate://crates.io/rand/0.3.19 \
crate://crates.io/rayon-core/1.3.0 \
crate://crates.io/rayon/0.9.0 \
crate://crates.io/redox_syscall/0.1.32 \
crate://crates.io/redox_termios/0.1.1 \
crate://crates.io/regex-syntax/0.3.9 \
crate://crates.io/regex-syntax/0.4.1 \
crate://crates.io/regex/0.1.80 \
crate://crates.io/regex/0.2.3 \
crate://crates.io/rls-analysis/0.10.0 \
crate://crates.io/rls-data/0.14.0 \
crate://crates.io/rls-rustc/0.1.1 \
crate://crates.io/rls-span/0.4.0 \
crate://crates.io/rls-vfs/0.4.4 \
crate://crates.io/rustc-demangle/0.1.5 \
crate://crates.io/rustc-serialize/0.3.24 \
crate://crates.io/same-file/0.1.3 \
crate://crates.io/scoped-tls/0.1.0 \
crate://crates.io/scopeguard/0.1.2 \
crate://crates.io/scopeguard/0.3.3 \
crate://crates.io/selectors/0.18.0 \
crate://crates.io/semver-parser/0.7.0 \
crate://crates.io/semver/0.6.0 \
crate://crates.io/semver/0.8.0 \
crate://crates.io/serde/1.0.25 \
crate://crates.io/serde_derive/1.0.25 \
crate://crates.io/serde_derive_internals/0.18.1 \
crate://crates.io/serde_ignored/0.0.4 \
crate://crates.io/serde_json/1.0.8 \
crate://crates.io/shared_child/0.2.1 \
crate://crates.io/shell-escape/0.1.3 \
crate://crates.io/siphasher/0.2.2 \
crate://crates.io/smallvec/0.3.3 \
crate://crates.io/smallvec/0.6.0 \
crate://crates.io/socket2/0.2.4 \
crate://crates.io/stable_deref_trait/1.0.0 \
crate://crates.io/string_cache/0.6.2 \
crate://crates.io/string_cache_codegen/0.4.0 \
crate://crates.io/string_cache_shared/0.3.0 \
crate://crates.io/strsim/0.6.0 \
crate://crates.io/syn/0.11.11 \
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.14 \
crate://crates.io/tempdir/0.3.5 \
crate://crates.io/tendril/0.4.0 \
crate://crates.io/term/0.4.6 \
crate://crates.io/termcolor/0.3.3 \
crate://crates.io/termion/1.5.1 \
crate://crates.io/textwrap/0.9.0 \
crate://crates.io/thread-id/2.0.0 \
crate://crates.io/thread_local/0.2.7 \
crate://crates.io/thread_local/0.3.5 \
crate://crates.io/time/0.1.39 \
crate://crates.io/toml/0.2.1 \
crate://crates.io/toml/0.4.5 \
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/unreachable/0.1.1 \
crate://crates.io/unreachable/1.0.0 \
crate://crates.io/url/1.6.0 \
crate://crates.io/url_serde/0.2.0 \
crate://crates.io/userenv-sys/0.2.0 \
crate://crates.io/utf-8/0.7.1 \
crate://crates.io/utf8-ranges/0.1.3 \
crate://crates.io/utf8-ranges/1.0.0 \
crate://crates.io/vcpkg/0.2.2 \
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/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.4 \
crate://crates.io/ws2_32-sys/0.2.1 \
crate://crates.io/xattr/0.1.11 \
crate://crates.io/xz2/0.1.3 \
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"

View File

@@ -1,14 +1,8 @@
#!/bin/bash -x
sudo fuser -m `pwd`/build
# Only attempt to unmount if the directory is already mounted
if mountpoint -q `pwd`/build; then
sudo umount `pwd`/build
sudo umount build
fi
sudo fuser -m `pwd`/build
ps -ef
exit 0

View File

@@ -1,4 +1,4 @@
#!/bin/bash -x
#!/bin/bash -e
if [[ $# -lt 1 ]]; then
echo "No Yocto branch specified, defaulting to master"