Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8b0b52d5b3 | ||
|
|
1587d5b8dc | ||
|
|
3efa0f069f |
33
.github/workflows/main.yml
vendored
33
.github/workflows/main.yml
vendored
@@ -1,33 +0,0 @@
|
||||
on: [pull_request]
|
||||
jobs:
|
||||
build:
|
||||
env:
|
||||
YOCTO_VERSION: 3.3.2
|
||||
YOCTO_BRANCH: hardknott
|
||||
runs-on: self-hosted
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
path: 'meta-rust'
|
||||
- name: Fetch poky
|
||||
run: |
|
||||
mv poky/build/sstate-cache . || true
|
||||
rm -rf poky meta-openembedded
|
||||
git clone -b $YOCTO_BRANCH --single-branch git://git.yoctoproject.org/poky
|
||||
git clone -b $YOCTO_BRANCH --single-branch git://git.openembedded.org/meta-openembedded
|
||||
- name: Configure build
|
||||
run: |
|
||||
cd poky
|
||||
. oe-init-build-env
|
||||
mv ../../sstate-cache . || true
|
||||
bitbake-layers add-layer ../../meta-openembedded/meta-oe
|
||||
bitbake-layers add-layer ../../meta-rust
|
||||
echo 'PARALLEL_MAKE:pn-rust-llvm-native = "-j2"' >> conf/local.conf
|
||||
echo 'TOOLCHAIN_HOST_TASK:append = " packagegroup-rust-cross-canadian-${MACHINE}"' >> conf/local.conf
|
||||
echo 'PREFERRED_PROVIDER_virtual/kernel = "linux-dummy"' >> conf/local.conf
|
||||
echo 'INHERIT_remove = "uninative"' >> conf/local.conf
|
||||
- name: Run bitbake
|
||||
run: |
|
||||
cd poky
|
||||
. oe-init-build-env
|
||||
bitbake rust-hello-world
|
||||
4
Jenkinsfile
vendored
4
Jenkinsfile
vendored
@@ -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 master"
|
||||
sh "GIT_LOCAL_REF_DIR=/srv/git-cache/ ./scripts/fetch.sh sumo"
|
||||
}
|
||||
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 master"
|
||||
sh "./scripts/publish-build-cache.sh sumo"
|
||||
}
|
||||
stage("cleanup $machine") {
|
||||
sh "./scripts/cleanup-env.sh"
|
||||
|
||||
@@ -13,7 +13,7 @@ This OpenEmbedded layer provides the rust compiler, tools for building packages
|
||||
## What doesn't:
|
||||
|
||||
- Using anything but x86_64 as the build environment
|
||||
- rust (built for target) [issue #81](https://github.com/meta-rust/meta-rust/issues/81)
|
||||
- rust (built for target) issue #81
|
||||
|
||||
## What's untested:
|
||||
|
||||
@@ -27,7 +27,7 @@ rust packages do), then it's especially easy. Otherwise you should probably
|
||||
get the code building in cargo first.
|
||||
|
||||
Once your package builds in cargo, you can use
|
||||
[cargo-bitbake](https://github.com/meta-rust/cargo-bitbake) to generate a bitbake
|
||||
[cargo-bitbake](https://github.com/cardoe/cargo-bitbake) to generate a bitbake
|
||||
recipe for it. This allows bitbake to fetch all the necessary dependent
|
||||
crates, as well as a pegged version of the crates.io index, to ensure maximum
|
||||
reproducibility.
|
||||
@@ -39,7 +39,7 @@ contained within it
|
||||
|
||||
## Pitfalls
|
||||
|
||||
- TARGET_SYS _must_ be different from BUILD_SYS. This is due to the way Rust configuration options are tracked for different targets. This is the reason we use the Yocto triples instead of the native Rust triples. See [rust-lang/cargo#3349](https://github.com/rust-lang/cargo/issues/3349).
|
||||
- TARGET_SYS _must_ be different from BUILD_SYS. This is due to the way Rust configuration options are tracked for different targets. This is the reason we use the Yocto triples instead of the native Rust triples. See rust-lang/cargo#3349.
|
||||
|
||||
## Dependencies
|
||||
|
||||
@@ -59,7 +59,7 @@ The master branch supports the latest master of poky. When poky creates releases
|
||||
|
||||
All new patches against rust, rust-llvm, and cargo must have referenced
|
||||
upstream issues or PRs opened or an explanation why the patch cannot be
|
||||
upstreamed. This corresponds to the OpenEmbedded policy for other meta layers.
|
||||
upstreamed. This cooresponds to the OpenEmbedded policy for other meta layers.
|
||||
|
||||
More info can be seen on the wiki.
|
||||
|
||||
|
||||
@@ -9,34 +9,25 @@ inherit cargo_common
|
||||
CARGO = "cargo"
|
||||
|
||||
# We need cargo to compile for the target
|
||||
BASEDEPENDS:append = " cargo-native"
|
||||
BASEDEPENDS_append = " cargo-native"
|
||||
|
||||
# Ensure we get the right rust variant
|
||||
DEPENDS:append:class-target = " virtual/${TARGET_PREFIX}rust ${RUSTLIB_DEP}"
|
||||
DEPENDS:append:class-native = " rust-native"
|
||||
DEPENDS_append_class-target = " virtual/${TARGET_PREFIX}rust ${RUSTLIB_DEP}"
|
||||
DEPENDS_append_class-native = " rust-native"
|
||||
|
||||
# Enable build separation
|
||||
B = "${WORKDIR}/build"
|
||||
# Cargo only supports in-tree builds at the moment
|
||||
B = "${S}"
|
||||
|
||||
# In case something fails in the build process, give a bit more feedback on
|
||||
# where the issue occured
|
||||
export RUST_BACKTRACE = "1"
|
||||
|
||||
# The directory of the Cargo.toml relative to the root directory, per default
|
||||
# assume there's a Cargo.toml directly in the root directory
|
||||
CARGO_SRC_DIR ??= ""
|
||||
|
||||
# The actual path to the Cargo.toml
|
||||
MANIFEST_PATH ??= "${S}/${CARGO_SRC_DIR}/Cargo.toml"
|
||||
|
||||
RUSTFLAGS ??= ""
|
||||
BUILD_MODE = "${@['--release', ''][d.getVar('DEBUG_BUILD') == '1']}"
|
||||
CARGO_BUILD_FLAGS = "-v --target ${HOST_SYS} ${BUILD_MODE} --manifest-path=${MANIFEST_PATH}"
|
||||
CARGO_BUILD_FLAGS = "-v --target ${HOST_SYS} --release"
|
||||
|
||||
# This is based on the content of CARGO_BUILD_FLAGS and generally will need to
|
||||
# change if CARGO_BUILD_FLAGS changes.
|
||||
BUILD_DIR = "${@['release', 'debug'][d.getVar('DEBUG_BUILD') == '1']}"
|
||||
CARGO_TARGET_SUBDIR="${HOST_SYS}/${BUILD_DIR}"
|
||||
CARGO_TARGET_SUBDIR="${HOST_SYS}/release"
|
||||
oe_cargo_build () {
|
||||
export RUSTFLAGS="${RUSTFLAGS}"
|
||||
export RUST_TARGET_PATH="${RUST_TARGET_PATH}"
|
||||
@@ -46,7 +37,6 @@ oe_cargo_build () {
|
||||
"${CARGO}" build ${CARGO_BUILD_FLAGS} "$@"
|
||||
}
|
||||
|
||||
do_compile[progress] = "outof:\s+(\d+)/(\d+)"
|
||||
cargo_do_compile () {
|
||||
oe_cargo_fix_env
|
||||
oe_cargo_build
|
||||
@@ -61,17 +51,6 @@ cargo_do_install () {
|
||||
install -m755 "$tgt" "${D}${rustlibdir}"
|
||||
have_installed=true
|
||||
;;
|
||||
*examples)
|
||||
if [ -d "$tgt" ]; then
|
||||
for example in "$tgt/"*; do
|
||||
if [ -f "$example" ] && [ -x "$example" ]; then
|
||||
install -d "${D}${bindir}"
|
||||
install -m755 "$example" "${D}${bindir}"
|
||||
have_installed=true
|
||||
fi
|
||||
done
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
if [ -f "$tgt" ] && [ -x "$tgt" ]; then
|
||||
install -d "${D}${bindir}"
|
||||
|
||||
@@ -20,90 +20,35 @@ export CARGO_HOME = "${WORKDIR}/cargo_home"
|
||||
# for cross compilation, so tell it we know better than it.
|
||||
export PKG_CONFIG_ALLOW_CROSS = "1"
|
||||
|
||||
# Don't instruct cargo to use crates downloaded by bitbake. Some rust packages,
|
||||
# for example the rust compiler itself, come with their own vendored sources.
|
||||
# Specifying two [source.crates-io] will not work.
|
||||
CARGO_DISABLE_BITBAKE_VENDORING ?= "0"
|
||||
|
||||
# Used by libstd-rs to point to the vendor dir included in rustc src
|
||||
CARGO_VENDORING_DIRECTORY ?= "${CARGO_HOME}/bitbake"
|
||||
|
||||
CARGO_RUST_TARGET_CCLD ?= "${RUST_TARGET_CCLD}"
|
||||
cargo_common_do_configure () {
|
||||
mkdir -p ${CARGO_HOME}/bitbake
|
||||
echo "paths = [" > ${CARGO_HOME}/config
|
||||
|
||||
cat <<- EOF > ${CARGO_HOME}/config
|
||||
# EXTRA_OECARGO_PATHS
|
||||
paths = [
|
||||
$(for p in ${EXTRA_OECARGO_PATHS}; do echo \"$p\",; done)
|
||||
]
|
||||
EOF
|
||||
for p in ${EXTRA_OECARGO_PATHS}; do
|
||||
printf "\"%s\"\n" "$p"
|
||||
done | sed -e 's/$/,/' >> ${CARGO_HOME}/config
|
||||
echo "]" >> ${CARGO_HOME}/config
|
||||
|
||||
# Point cargo at our local mirror of the registry
|
||||
cat <<- EOF >> ${CARGO_HOME}/config
|
||||
|
||||
# Local mirror vendored by bitbake
|
||||
[source.bitbake]
|
||||
directory = "${CARGO_VENDORING_DIRECTORY}"
|
||||
directory = "${CARGO_HOME}/bitbake"
|
||||
EOF
|
||||
|
||||
if [ -z "${EXTERNALSRC}" ] && [ ${CARGO_DISABLE_BITBAKE_VENDORING} = "0" ]; then
|
||||
if [ "${EXTERNALSRC}" == "" ]; then
|
||||
cat <<- EOF >> ${CARGO_HOME}/config
|
||||
|
||||
[source.crates-io]
|
||||
replace-with = "bitbake"
|
||||
local-registry = "/nonexistant"
|
||||
EOF
|
||||
fi
|
||||
|
||||
cat <<- EOF >> ${CARGO_HOME}/config
|
||||
|
||||
[http]
|
||||
# Multiplexing can't be enabled because http2 can't be enabled
|
||||
# in curl-native without dependency loops
|
||||
multiplexing = false
|
||||
|
||||
# Ignore the hard coded and incorrect path to certificates
|
||||
cainfo = "${STAGING_ETCDIR_NATIVE}/ssl/certs/ca-certificates.crt"
|
||||
|
||||
EOF
|
||||
|
||||
if [ -n "${http_proxy}" ]; then
|
||||
echo "proxy = \"${http_proxy}\"" >> ${CARGO_HOME}/config
|
||||
fi
|
||||
|
||||
cat <<- EOF >> ${CARGO_HOME}/config
|
||||
|
||||
# HOST_SYS
|
||||
[target.${HOST_SYS}]
|
||||
linker = "${CARGO_RUST_TARGET_CCLD}"
|
||||
EOF
|
||||
|
||||
echo "[target.${HOST_SYS}]" >> ${CARGO_HOME}/config
|
||||
echo "linker = '${RUST_TARGET_CCLD}'" >> ${CARGO_HOME}/config
|
||||
if [ "${HOST_SYS}" != "${BUILD_SYS}" ]; then
|
||||
cat <<- EOF >> ${CARGO_HOME}/config
|
||||
|
||||
# BUILD_SYS
|
||||
[target.${BUILD_SYS}]
|
||||
linker = "${RUST_BUILD_CCLD}"
|
||||
EOF
|
||||
echo "[target.${BUILD_SYS}]" >> ${CARGO_HOME}/config
|
||||
echo "linker = '${RUST_BUILD_CCLD}'" >> ${CARGO_HOME}/config
|
||||
fi
|
||||
|
||||
# Put build output in build directory preferred by bitbake instead of
|
||||
# inside source directory unless they are the same
|
||||
if [ "${B}" != "${S}" ]; then
|
||||
cat <<- EOF >> ${CARGO_HOME}/config
|
||||
|
||||
[build]
|
||||
# Use out of tree build destination to avoid poluting the source tree
|
||||
target-dir = "${B}/target"
|
||||
EOF
|
||||
fi
|
||||
|
||||
cat <<- EOF >> ${CARGO_HOME}/config
|
||||
|
||||
[term]
|
||||
progress.when = 'always'
|
||||
progress.width = 80
|
||||
EOF
|
||||
}
|
||||
|
||||
oe_cargo_fix_env () {
|
||||
@@ -115,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_CXXFLAGS="${CXXFLAGS}"
|
||||
export TARGET_CFLAGS="${CXXFLAGS}"
|
||||
export TARGET_AR="${AR}"
|
||||
export HOST_CC="${RUST_BUILD_CC}"
|
||||
export HOST_CXX="${RUST_BUILD_CXX}"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
inherit rust
|
||||
|
||||
RDEPENDS:${PN}:append:class-target = " ${RUSTLIB_DEP}"
|
||||
RDEPENDS_${PN}_append_class-target += "${RUSTLIB_DEP}"
|
||||
|
||||
RUSTC_ARCHFLAGS += "-C opt-level=3 -g -L ${STAGING_DIR_HOST}/${rustlibdir} -C linker=${RUST_TARGET_CCLD}"
|
||||
EXTRA_OEMAKE += 'RUSTC_ARCHFLAGS="${RUSTC_ARCHFLAGS}"'
|
||||
|
||||
@@ -1,55 +1,18 @@
|
||||
# Common variables used by all Rust builds
|
||||
export rustlibdir = "${libdir}/rust"
|
||||
FILES:${PN} += "${rustlibdir}/*.so"
|
||||
FILES:${PN}-dev += "${rustlibdir}/*.rlib ${rustlibdir}/*.rmeta"
|
||||
FILES:${PN}-dbg += "${rustlibdir}/.debug"
|
||||
FILES_${PN} += "${rustlibdir}/*.so"
|
||||
FILES_${PN}-dev += "${rustlibdir}/*.rlib"
|
||||
FILES_${PN}-dbg += "${rustlibdir}/.debug"
|
||||
|
||||
RUSTLIB = "-L ${STAGING_LIBDIR}/rust"
|
||||
RUST_DEBUG_REMAP = "--remap-path-prefix=${WORKDIR}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}"
|
||||
RUST_DEBUG_REMAP = "-Zremap-path-prefix-from=${WORKDIR} -Zremap-path-prefix-to=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}"
|
||||
RUSTFLAGS += "${RUSTLIB} ${RUST_DEBUG_REMAP}"
|
||||
RUSTLIB_DEP ?= "libstd-rs"
|
||||
RUST_TARGET_PATH = "${STAGING_LIBDIR_NATIVE}/rustlib"
|
||||
RUST_PANIC_STRATEGY ?= "unwind"
|
||||
|
||||
# Native builds are not effected by TCLIBC. Without this, rust-native
|
||||
# thinks it's "target" (i.e. x86_64-linux) is a musl target.
|
||||
RUST_LIBC = "${TCLIBC}"
|
||||
RUST_LIBC:class-native = "glibc"
|
||||
|
||||
def determine_libc(d, thing):
|
||||
'''Determine which libc something should target'''
|
||||
|
||||
# BUILD is never musl, TARGET may be musl or glibc,
|
||||
# HOST could be musl, but only if a compiler is built to be run on
|
||||
# target in which case HOST_SYS != BUILD_SYS.
|
||||
if thing == 'TARGET':
|
||||
libc = d.getVar('RUST_LIBC')
|
||||
elif thing == 'BUILD' and (d.getVar('HOST_SYS') != d.getVar('BUILD_SYS')):
|
||||
libc = d.getVar('RUST_LIBC')
|
||||
else:
|
||||
libc = d.getVar('RUST_LIBC:class-native')
|
||||
|
||||
return libc
|
||||
|
||||
def target_is_armv7(d):
|
||||
'''Determine if target is armv7'''
|
||||
# TUNE_FEATURES may include arm* even if the target is not arm
|
||||
# in the case of *-native packages
|
||||
if d.getVar('TARGET_ARCH') != 'arm':
|
||||
return False
|
||||
|
||||
feat = d.getVar('TUNE_FEATURES')
|
||||
feat = frozenset(feat.split())
|
||||
mach_overrides = d.getVar('MACHINEOVERRIDES')
|
||||
mach_overrides = frozenset(mach_overrides.split(':'))
|
||||
|
||||
v7=frozenset(['armv7a', 'armv7r', 'armv7m', 'armv7ve'])
|
||||
if mach_overrides.isdisjoint(v7) and feat.isdisjoint(v7):
|
||||
return False
|
||||
else:
|
||||
return True
|
||||
|
||||
# Responsible for taking Yocto triples and converting it to Rust triples
|
||||
|
||||
def rust_base_triple(d, thing):
|
||||
'''
|
||||
Mangle bitbake's *_SYS into something that rust might support (see
|
||||
@@ -58,16 +21,11 @@ def rust_base_triple(d, thing):
|
||||
Note that os is assumed to be some linux form
|
||||
'''
|
||||
|
||||
# The llvm-target for armv7 is armv7-unknown-linux-gnueabihf
|
||||
if thing == "TARGET" and target_is_armv7(d):
|
||||
arch = "armv7"
|
||||
else:
|
||||
arch = d.getVar('{}_ARCH'.format(thing))
|
||||
|
||||
arch = d.getVar('{}_ARCH'.format(thing))
|
||||
# All the Yocto targets are Linux and are 'unknown'
|
||||
vendor = "-unknown"
|
||||
os = d.getVar('{}_OS'.format(thing))
|
||||
libc = determine_libc(d, thing)
|
||||
libc = d.getVar('TCLIBC')
|
||||
|
||||
# Prefix with a dash and convert glibc -> gnu
|
||||
if libc == "glibc":
|
||||
@@ -103,7 +61,7 @@ def rust_base_triple(d, thing):
|
||||
#
|
||||
# Rust additionally will use two additional cases:
|
||||
# - undecorated (e.g. CC) - equivalent to TARGET
|
||||
# - triple suffix (e.g. CC:x86_64_unknown_linux_gnu) - both
|
||||
# - triple suffix (e.g. CC_x86_64_unknown_linux_gnu) - both
|
||||
# see: https://github.com/alexcrichton/gcc-rs
|
||||
# The way that Rust's internal triples and Yocto triples are mapped together
|
||||
# its likely best to not use the triple suffix due to potential confusion.
|
||||
@@ -133,17 +91,11 @@ create_wrapper () {
|
||||
|
||||
cat <<- EOF > "${file}"
|
||||
#!/bin/sh
|
||||
exec $@ "\$@"
|
||||
$@ "\$@"
|
||||
EOF
|
||||
chmod +x "${file}"
|
||||
}
|
||||
|
||||
export WRAPPER_TARGET_CC = "${CC}"
|
||||
export WRAPPER_TARGET_CXX = "${CXX}"
|
||||
export WRAPPER_TARGET_CCLD = "${CCLD}"
|
||||
export WRAPPER_TARGET_LDFLAGS = "${LDFLAGS}"
|
||||
export WRAPPER_TARGET_AR = "${AR}"
|
||||
|
||||
# compiler is used by gcc-rs
|
||||
# linker is used by rustc/cargo
|
||||
# archiver is used by the build of libstd-rs
|
||||
@@ -160,14 +112,13 @@ do_rust_create_wrappers () {
|
||||
create_wrapper "${RUST_BUILD_AR}" "${BUILD_AR}"
|
||||
|
||||
# Yocto Target / Rust Target C compiler
|
||||
create_wrapper "${RUST_TARGET_CC}" "${WRAPPER_TARGET_CC}"
|
||||
create_wrapper "${RUST_TARGET_CC}" "${CC}"
|
||||
# Yocto Target / Rust Target C++ compiler
|
||||
create_wrapper "${RUST_TARGET_CXX}" "${WRAPPER_TARGET_CXX}"
|
||||
create_wrapper "${RUST_TARGET_CXX}" "${CXX}"
|
||||
# Yocto Target / Rust Target linker
|
||||
create_wrapper "${RUST_TARGET_CCLD}" "${WRAPPER_TARGET_CCLD}" "${WRAPPER_TARGET_LDFLAGS}"
|
||||
create_wrapper "${RUST_TARGET_CCLD}" "${CCLD}" "${LDFLAGS}"
|
||||
# Yocto Target / Rust Target archiver
|
||||
create_wrapper "${RUST_TARGET_AR}" "${WRAPPER_TARGET_AR}"
|
||||
|
||||
create_wrapper "${RUST_TARGET_AR}" "${AR}"
|
||||
}
|
||||
|
||||
addtask rust_create_wrappers before do_configure after do_patch
|
||||
|
||||
@@ -15,7 +15,7 @@ def rust_base_dep(d):
|
||||
deps += " rust-native"
|
||||
return deps
|
||||
|
||||
DEPENDS:append = " ${@rust_base_dep(d)}"
|
||||
DEPENDS_append = " ${@rust_base_dep(d)}"
|
||||
|
||||
# BUILD_LDFLAGS
|
||||
# ${STAGING_LIBDIR_NATIVE}
|
||||
@@ -42,4 +42,4 @@ rustlib_suffix="${TUNE_ARCH}${TARGET_VENDOR}-${TARGET_OS}/rustlib/${HOST_SYS}/li
|
||||
rustlib_src="${prefix}/lib/${rustlib_suffix}"
|
||||
# Host sysroot standard library path
|
||||
rustlib="${libdir}/${rustlib_suffix}"
|
||||
rustlib:class-native="${libdir}/rustlib/${BUILD_SYS}/lib"
|
||||
rustlib_class-native="${libdir}/rustlib/${BUILD_SYS}/lib"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Build errors with PIE options enabled
|
||||
SECURITY_CFLAGS:pn-rust-native = "${SECURITY_NO_PIE_CFLAGS}"
|
||||
SECURITY_CFLAGS:pn-rust-cross-${TARGET_ARCH} = "${SECURITY_NO_PIE_CFLAGS}"
|
||||
SECURITY_CFLAGS:pn-rust = "${SECURITY_NO_PIE_CFLAGS}"
|
||||
SECURITY_CFLAGS:pn-rust-llvm = "${SECURITY_NO_PIE_CFLAGS}"
|
||||
SECURITY_CFLAGS_pn-rust-native = "${SECURITY_NO_PIE_CFLAGS}"
|
||||
SECURITY_CFLAGS_pn-rust-cross-${TARGET_ARCH} = "${SECURITY_NO_PIE_CFLAGS}"
|
||||
SECURITY_CFLAGS_pn-rust = "${SECURITY_NO_PIE_CFLAGS}"
|
||||
SECURITY_CFLAGS_pn-rust-llvm = "${SECURITY_NO_PIE_CFLAGS}"
|
||||
|
||||
SECURITY_LDFLAGS:pn-rust-cross-arm = " -lssp_nonshared -lssp"
|
||||
SECURITY_LDFLAGS_pn-rust-cross-arm = " -lssp_nonshared -lssp"
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
# include this in your distribution to easily switch between versions
|
||||
# just by changing RUST_VERSION variable
|
||||
|
||||
RUST_VERSION ?= "1.51.0"
|
||||
|
||||
PREFERRED_VERSION_cargo ?= "${RUST_VERSION}"
|
||||
PREFERRED_VERSION_cargo-native ?= "${RUST_VERSION}"
|
||||
PREFERRED_VERSION_libstd-rs ?= "${RUST_VERSION}"
|
||||
PREFERRED_VERSION_rust ?= "${RUST_VERSION}"
|
||||
PREFERRED_VERSION_rust-cross-${TARGET_ARCH} ?= "${RUST_VERSION}"
|
||||
PREFERRED_VERSION_rust-llvm ?= "${RUST_VERSION}"
|
||||
PREFERRED_VERSION_rust-llvm-native ?= "${RUST_VERSION}"
|
||||
PREFERRED_VERSION_rust-native ?= "${RUST_VERSION}"
|
||||
@@ -9,7 +9,7 @@ BBFILE_PATTERN_rust-layer := "^${LAYERDIR}/"
|
||||
BBFILE_PRIORITY_rust-layer = "7"
|
||||
|
||||
LAYERDEPENDS_rust-layer = "core openembedded-layer"
|
||||
LAYERSERIES_COMPAT_rust-layer = "dunfell gatesgarth hardknott honister kirkstone"
|
||||
LAYERSERIES_COMPAT_rust-layer = "sumo"
|
||||
|
||||
# Override security flags
|
||||
require conf/distro/include/rust_security_flags.inc
|
||||
|
||||
@@ -232,8 +232,8 @@ INHERIT += "own-mirrors rm_work"
|
||||
# seen. The two lines below enable the SDL backend too. By default libsdl-native will
|
||||
# be built, if you want to use your host's libSDL instead of the minimal libsdl built
|
||||
# by libsdl-native then uncomment the ASSUME_PROVIDED line below.
|
||||
PACKAGECONFIG:append:pn-qemu-native = " sdl"
|
||||
PACKAGECONFIG:append:pn-nativesdk-qemu = " sdl"
|
||||
PACKAGECONFIG_append_pn-qemu-native = " sdl"
|
||||
PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl"
|
||||
#ASSUME_PROVIDED += "libsdl-native"
|
||||
|
||||
# CONF_VERSION is increased each time build/conf/ changes incompatibly and is used to
|
||||
|
||||
22
recipes-core/aho-corasick/aho-corasick-rs_0.2.1.bb
Normal file
22
recipes-core/aho-corasick/aho-corasick-rs_0.2.1.bb
Normal file
@@ -0,0 +1,22 @@
|
||||
DESCRIPTION = "Fast multiple substring searching with finite state machines."
|
||||
HOMEPAGE = "https://github.com/BurntSushi/aho-corasick"
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE-MIT;md5=8d0d0aa488af0ab9aafa3b85a7fc8e12"
|
||||
DEPENDS = "memchr-rs"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/BurntSushi/aho-corasick.git;protocol=https"
|
||||
SRCREV = "e1bca33dcc060d587e802320a79cbb035f37f8fa"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
|
||||
BBCLASSEXTEND += "native"
|
||||
26
recipes-core/bitflags/bitflags_0.8.2.bb
Normal file
26
recipes-core/bitflags/bitflags_0.8.2.bb
Normal file
@@ -0,0 +1,26 @@
|
||||
DESCRIPTION = "A macro to generate structures which behave like bitflags."
|
||||
HOMEPAGE = "https://github.com/rust-lang-nursery/bitflags"
|
||||
LICENSE = "MIT | Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "\
|
||||
file://LICENSE-MIT;md5=362255802eb5aa87810d12ddf3cfedb4 \
|
||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
||||
"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/rust-lang-nursery/bitflags.git;protocol=https;nobranch=1"
|
||||
SRCREV = "e30da43cac0e52fc8d0007ce99a316ec6473033e"
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
28
recipes-core/crypto/crypto-rs_0.2.31.bb
Normal file
28
recipes-core/crypto/crypto-rs_0.2.31.bb
Normal file
@@ -0,0 +1,28 @@
|
||||
DESCRIPTION = "A (mostly) pure-Rust implementation of various common cryptographic algorithms."
|
||||
HOMEPAGE = "https://github.com/DaGenix/rust-crypto/"
|
||||
LICENSE = "MIT | Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "\
|
||||
file://LICENSE-MIT;md5=4311034aa04489226c1fc3f816dbfb5a \
|
||||
file://LICENSE-APACHE;md5=a02fef6dccf840318474c108a8281b77 \
|
||||
"
|
||||
DEPENDS = "\
|
||||
libc-rs \
|
||||
time-rs \
|
||||
rand-rs \
|
||||
rustc-serialize-rs \
|
||||
"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/DaGenix/rust-crypto.git;protocol=https"
|
||||
SRCREV = "5571cb41690b9cee12025192393ea7df0eddc21b"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
20
recipes-core/dbus/dbus-rs_0.1.0.bb
Normal file
20
recipes-core/dbus/dbus-rs_0.1.0.bb
Normal file
@@ -0,0 +1,20 @@
|
||||
DESCRIPTION = "DBus binding for rust"
|
||||
HOMEPAGE = "https://github.com/diwic/dbus-rs"
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=d2794c0df5b907fdace235a619d80314"
|
||||
DEPENDS = "libc-rs dbus"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/diwic/dbus-rs.git;protocol=https"
|
||||
SRCREV = "d23c8b7fecd5a8e82131893250a5ac376799faff"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
19
recipes-core/debug-builders/debug-builders-rs_0.1.0.bb
Normal file
19
recipes-core/debug-builders/debug-builders-rs_0.1.0.bb
Normal file
@@ -0,0 +1,19 @@
|
||||
DESCRIPTION = "A copy of libstd's debug builders for use before they stabilize"
|
||||
HOMEPAGE = "https://github.com/sfackler/rust-debug-builders"
|
||||
LICENSE = "MIT | Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://Cargo.toml;md5=97a131dc4ae910d242387f2c9d1a2ce8"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/sfackler/rust-debug-builders.git;protocol=https"
|
||||
SRCREV = "c6943b72c7808ddaa151d08b824525cc7420cb9b"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
23
recipes-core/getopts/getopts-rs_0.2.11.bb
Normal file
23
recipes-core/getopts/getopts-rs_0.2.11.bb
Normal file
@@ -0,0 +1,23 @@
|
||||
DESCRIPTION = "getopts-like option parsing"
|
||||
HOMEPAGE = "https://github.com/rust-lang/getopts"
|
||||
LICENSE = "MIT | Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "\
|
||||
file://LICENSE-MIT;md5=362255802eb5aa87810d12ddf3cfedb4 \
|
||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
||||
"
|
||||
DEPENDS = "log-rs"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/rust-lang/getopts.git;protocol=https"
|
||||
SRCREV = "a13c62b7d860b6d370129ebb972bf5e0373c5be7"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
23
recipes-core/lazy-static/lazy-static_0.2.1.bb
Normal file
23
recipes-core/lazy-static/lazy-static_0.2.1.bb
Normal file
@@ -0,0 +1,23 @@
|
||||
DESCRIPTION = "A macro for declaring lazily evaluated statics in Rust."
|
||||
HOMEPAGE = "https://github.com/rust-lang-nursery/lazy-static.rs"
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "\
|
||||
file://LICENSE;md5=5795ddb4df1d696d439b6667081cffc9 \
|
||||
"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/rust-lang-nursery/lazy-static.rs.git;protocol=https"
|
||||
SRCREV = "ffe65c818474f863945ca535c0e53f3b8b848ff7"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
LIB_SRC = "${S}/src/lib.rs"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
27
recipes-core/libc/libc-rs_0.2.21.bb
Normal file
27
recipes-core/libc/libc-rs_0.2.21.bb
Normal file
@@ -0,0 +1,27 @@
|
||||
DESCRIPTION = "A Rust library with native bindings to the types and functions commonly found on various systems, including libc."
|
||||
HOMEPAGE = "https://github.com/rust-lang/libc"
|
||||
LICENSE = "MIT | Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "\
|
||||
file://LICENSE-MIT;md5=362255802eb5aa87810d12ddf3cfedb4 \
|
||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
||||
"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/rust-lang/libc.git;protocol=https"
|
||||
SRCREV = "05a2d197356ef253dfd985166576619ac9b6947f"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
LIB_SRC = "${S}/src/lib.rs"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib --cfg feature='"cargo-build"' --cfg feature='"use_std"'
|
||||
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
|
||||
BBCLASSEXTEND += "native"
|
||||
6
recipes-core/log/env-logger-rs_0.3.1.bb
Normal file
6
recipes-core/log/env-logger-rs_0.3.1.bb
Normal file
@@ -0,0 +1,6 @@
|
||||
DESCRIPTION = "An logging implementation for `log` which is configured via an environment variable"
|
||||
DEPENDS = "regex-rs log-rs"
|
||||
|
||||
require log.inc
|
||||
|
||||
LIB_SRC = "${S}/env/src/lib.rs"
|
||||
4
recipes-core/log/log-rs.bb
Normal file
4
recipes-core/log/log-rs.bb
Normal file
@@ -0,0 +1,4 @@
|
||||
DESCRIPTION = "A Rust library providing a lightweight logging facade"
|
||||
DEPENDS = "libc-rs"
|
||||
|
||||
require log.inc
|
||||
22
recipes-core/log/log.inc
Normal file
22
recipes-core/log/log.inc
Normal file
@@ -0,0 +1,22 @@
|
||||
HOMEPAGE = "https://github.com/rust-lang/log"
|
||||
LICENSE = "MIT | Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "\
|
||||
file://LICENSE-MIT;md5=362255802eb5aa87810d12ddf3cfedb4 \
|
||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
||||
"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/rust-lang/log.git;protocol=https"
|
||||
SRCREV = "5453e16166ec451afc9738978ca01f162127ebbe"
|
||||
PV = "0.3.1"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
22
recipes-core/memchr/memchr-rs_0.1.11.bb
Normal file
22
recipes-core/memchr/memchr-rs_0.1.11.bb
Normal file
@@ -0,0 +1,22 @@
|
||||
DESCRIPTION = "Safe interface to memchr"
|
||||
HOMEPAGE = "https://github.com/BurntSushi/rust-memchr"
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE-MIT;md5=8d0d0aa488af0ab9aafa3b85a7fc8e12"
|
||||
DEPENDS = "libc-rs"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/BurntSushi/rust-memchr.git;protocol=https"
|
||||
SRCREV = "4f9a13f95e6e00f2847c093c56b41b9c1d58d3c4"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
|
||||
BBCLASSEXTEND += "native"
|
||||
5
recipes-core/num/num-integer_0.1.34.bb
Normal file
5
recipes-core/num/num-integer_0.1.34.bb
Normal file
@@ -0,0 +1,5 @@
|
||||
require num.inc
|
||||
|
||||
DEPENDS += "num-traits"
|
||||
|
||||
LIB_SRC = "${S}/integer/src/lib.rs"
|
||||
6
recipes-core/num/num-iter_0.1.34.bb
Normal file
6
recipes-core/num/num-iter_0.1.34.bb
Normal file
@@ -0,0 +1,6 @@
|
||||
require num.inc
|
||||
|
||||
DEPENDS += "num-traits"
|
||||
DEPENDS += "num-integer"
|
||||
|
||||
LIB_SRC = "${S}/iter/src/lib.rs"
|
||||
3
recipes-core/num/num-traits_0.1.34.bb
Normal file
3
recipes-core/num/num-traits_0.1.34.bb
Normal file
@@ -0,0 +1,3 @@
|
||||
require num.inc
|
||||
|
||||
LIB_SRC = "${S}/traits/src/lib.rs"
|
||||
22
recipes-core/num/num.inc
Normal file
22
recipes-core/num/num.inc
Normal file
@@ -0,0 +1,22 @@
|
||||
DESCRIPTION = "A collection of numeric types and traits for Rust, including bigint, complex, rational, range iterators, generic integers, and more!"
|
||||
HOMEPAGE = "https://github.com/rust-num/num"
|
||||
LICENSE = "MIT | Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "\
|
||||
file://LICENSE-MIT;md5=362255802eb5aa87810d12ddf3cfedb4 \
|
||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
||||
"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/rust-num/num.git;protocol=https"
|
||||
SRCREV = "d9f08cb148cc686ec407c1e42fbd4536cde6ac82"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
9
recipes-core/num/num_0.1.34.bb
Normal file
9
recipes-core/num/num_0.1.34.bb
Normal file
@@ -0,0 +1,9 @@
|
||||
require num.inc
|
||||
|
||||
DEPENDS += "\
|
||||
num-traits \
|
||||
num-integer \
|
||||
num-iter \
|
||||
"
|
||||
|
||||
LIB_SRC = "${S}/src/lib.rs"
|
||||
@@ -1,18 +0,0 @@
|
||||
SUMMARY = "Host SDK package for Rust cross canadian toolchain"
|
||||
PN = "packagegroup-rust-cross-canadian-${MACHINE}"
|
||||
|
||||
inherit cross-canadian packagegroup
|
||||
|
||||
PACKAGEGROUP_DISABLE_COMPLEMENTARY = "1"
|
||||
|
||||
RUST="rust-cross-canadian-${TRANSLATED_TARGET_ARCH}"
|
||||
CARGO="cargo-cross-canadian-${TRANSLATED_TARGET_ARCH}"
|
||||
RUST_TOOLS="rust-tools-cross-canadian-${TRANSLATED_TARGET_ARCH}"
|
||||
|
||||
RDEPENDS:${PN} = " \
|
||||
${@all_multilib_tune_values(d, 'RUST')} \
|
||||
${@all_multilib_tune_values(d, 'CARGO')} \
|
||||
rust-cross-canadian-src \
|
||||
${@all_multilib_tune_values(d, 'RUST_TOOLS')} \
|
||||
"
|
||||
|
||||
23
recipes-core/rand/rand-rs_0.3.14.bb
Normal file
23
recipes-core/rand/rand-rs_0.3.14.bb
Normal file
@@ -0,0 +1,23 @@
|
||||
DESCRIPTION = "Random number generators and other randomness functionality."
|
||||
HOMEPAGE = "https://github.com/rust-lang/rand"
|
||||
LICENSE = "MIT | Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "\
|
||||
file://LICENSE-MIT;md5=362255802eb5aa87810d12ddf3cfedb4 \
|
||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
||||
"
|
||||
DEPENDS = "libc-rs"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/rust-lang/rand.git;protocol=https"
|
||||
SRCREV = "f872fda5fb8fb899a837ee9eee0332076a8f5300"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
12
recipes-core/regex/regex-rs.bb
Normal file
12
recipes-core/regex/regex-rs.bb
Normal file
@@ -0,0 +1,12 @@
|
||||
DESCRIPTION = "An implementation of regular expressions for Rust"
|
||||
DEPENDS = "\
|
||||
aho-corasick-rs \
|
||||
memchr-rs \
|
||||
regex-syntax-rs \
|
||||
"
|
||||
|
||||
require regex.inc
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
BBCLASSEXTEND += "native"
|
||||
7
recipes-core/regex/regex-syntax-rs.bb
Normal file
7
recipes-core/regex/regex-syntax-rs.bb
Normal file
@@ -0,0 +1,7 @@
|
||||
DESCRIPTION = "A regular expression parser"
|
||||
|
||||
require regex.inc
|
||||
|
||||
LIB_SRC = "${S}/regex-syntax/src/lib.rs"
|
||||
|
||||
BBCLASSEXTEND += "native"
|
||||
22
recipes-core/regex/regex.inc
Normal file
22
recipes-core/regex/regex.inc
Normal file
@@ -0,0 +1,22 @@
|
||||
HOMEPAGE = "https://github.com/rust-lang/regex"
|
||||
LICENSE = "MIT | Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "\
|
||||
file://LICENSE-MIT;md5=362255802eb5aa87810d12ddf3cfedb4 \
|
||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
||||
"
|
||||
|
||||
SRC_URI = "git://github.com/rust-lang/regex.git;protocol=https"
|
||||
SRCREV = "c9e6781a6845478aa2d8ebc86972755f854fdbe0"
|
||||
PV = "0.1.38"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
22
recipes-core/rustc-serialize/rustc-serialize-rs_0.3.19.bb
Normal file
22
recipes-core/rustc-serialize/rustc-serialize-rs_0.3.19.bb
Normal file
@@ -0,0 +1,22 @@
|
||||
DESCRIPTION = "Generic serialization/deserialization support"
|
||||
HOMEPAGE = "https://github.com/rust-lang/rustc-serialize"
|
||||
LICENSE = "MIT | Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "\
|
||||
file://LICENSE-MIT;md5=362255802eb5aa87810d12ddf3cfedb4 \
|
||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
||||
"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/rust-lang/rustc-serialize.git;protocol=https"
|
||||
SRCREV = "64b38a1f31a9af6eabf2894437aa5ccc3e457e68"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
23
recipes-core/time/time-rs_0.1.38.bb
Normal file
23
recipes-core/time/time-rs_0.1.38.bb
Normal file
@@ -0,0 +1,23 @@
|
||||
DESCRIPTION = "Utilities for working with time-related functions in Rust"
|
||||
HOMEPAGE = "https://github.com/rust-lang/time"
|
||||
LICENSE = "MIT | Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "\
|
||||
file://LICENSE-MIT;md5=362255802eb5aa87810d12ddf3cfedb4 \
|
||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
||||
"
|
||||
DEPENDS = "libc-rs"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/rust-lang/time.git;protocol=https"
|
||||
SRCREV = "d265b7cf9f50db74fbd0a01f8bec90ad7d239d48"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
20
recipes-core/udev/libudev-rs_0.1.0.bb
Normal file
20
recipes-core/udev/libudev-rs_0.1.0.bb
Normal file
@@ -0,0 +1,20 @@
|
||||
DESCRIPTION = "FFI bindings to libudev"
|
||||
HOMEPAGE = "https://github.com/dcuddeback/libudev-sys"
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=bbd2acd29c4ba5d4591b03e2757c04a3"
|
||||
DEPENDS = "libudev-sys-rs"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/dcuddeback/libudev-rs.git;protocol=https"
|
||||
SRCREV = "d55763c626790e2e8724947503238731843a969a"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
22
recipes-core/udev/libudev-rs_0.1.2.bb
Normal file
22
recipes-core/udev/libudev-rs_0.1.2.bb
Normal file
@@ -0,0 +1,22 @@
|
||||
DESCRIPTION = "FFI bindings to libudev"
|
||||
HOMEPAGE = "https://github.com/dcuddeback/libudev-sys"
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=bbd2acd29c4ba5d4591b03e2757c04a3"
|
||||
|
||||
DEPENDS += "libudev-sys-rs"
|
||||
DEPENDS += "libc-rs"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/dcuddeback/libudev-rs.git;protocol=https"
|
||||
SRCREV = "3da791245f206d0cf5a856531c574b8646b0f059"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
22
recipes-core/udev/libudev-sys-rs_0.1.1.bb
Normal file
22
recipes-core/udev/libudev-sys-rs_0.1.1.bb
Normal file
@@ -0,0 +1,22 @@
|
||||
DESCRIPTION = "FFI bindings to libudev"
|
||||
HOMEPAGE = "https://github.com/dcuddeback/libudev-sys"
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=bbd2acd29c4ba5d4591b03e2757c04a3"
|
||||
DEPENDS = "libc-rs udev"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/dcuddeback/libudev-sys.git;protocol=https"
|
||||
SRCREV = "14c24afc61e3315dffddab2c7f36999a16a002d8"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
RUSTC_FLAGS += "-ludev"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
22
recipes-core/udev/libudev-sys-rs_0.1.3.bb
Normal file
22
recipes-core/udev/libudev-sys-rs_0.1.3.bb
Normal file
@@ -0,0 +1,22 @@
|
||||
DESCRIPTION = "FFI bindings to libudev"
|
||||
HOMEPAGE = "https://github.com/dcuddeback/libudev-sys"
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=bbd2acd29c4ba5d4591b03e2757c04a3"
|
||||
DEPENDS = "libc-rs udev"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/dcuddeback/libudev-sys.git;protocol=https"
|
||||
SRCREV = "c49163f87d4d109ec21bcf8f8c51db560ed31b22"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
RUSTC_FLAGS += "-ludev"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
20
recipes-core/unix-socket/unix-socket-rs_0.4.3.bb
Normal file
20
recipes-core/unix-socket/unix-socket-rs_0.4.3.bb
Normal file
@@ -0,0 +1,20 @@
|
||||
DESCRIPTION = "Unix domain socket bindings for Rust"
|
||||
HOMEPAGE = "https://github.com/sfackler/rust-unix-socket"
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=bde86283c1fd74e84ebc3cf6dd7011d0"
|
||||
DEPENDS = "libc-rs debug-builders-rs"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/sfackler/rust-unix-socket.git;protocol=https"
|
||||
SRCREV = "d0f47ae888267a718072c3be5eed42ba1f637097"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
11
recipes-devtools/cargo/cargo-0.21.0.inc
Normal file
11
recipes-devtools/cargo/cargo-0.21.0.inc
Normal file
@@ -0,0 +1,11 @@
|
||||
CARGO_SNAPSHOT = "cargo-0.20.0-${RUST_BUILD_SYS}"
|
||||
SRC_URI[cargo-snapshot.md5sum] = "63aa861b029eec9f559f4fb5a10c287d"
|
||||
SRC_URI[cargo-snapshot.sha256sum] = "a677d13b01d00ad13edf75c7d1b484421c7fc09338bf9ed6d456b4685bb42ed1"
|
||||
|
||||
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"
|
||||
11
recipes-devtools/cargo/cargo-0.22.0.inc
Normal file
11
recipes-devtools/cargo/cargo-0.22.0.inc
Normal file
@@ -0,0 +1,11 @@
|
||||
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"
|
||||
12
recipes-devtools/cargo/cargo-0.25.0.inc
Normal file
12
recipes-devtools/cargo/cargo-0.25.0.inc
Normal file
@@ -0,0 +1,12 @@
|
||||
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"
|
||||
@@ -1,74 +0,0 @@
|
||||
SUMMARY = "Cargo, a package manager for Rust cross canadian flavor."
|
||||
|
||||
RUST_ALTERNATE_EXE_PATH = "${STAGING_LIBDIR_NATIVE}/llvm-rust/bin/llvm-config"
|
||||
|
||||
HOST_SYS = "${HOST_ARCH}-unknown-linux-gnu"
|
||||
CARGO_RUST_TARGET_CCLD = "${RUST_BUILD_CCLD}"
|
||||
|
||||
require recipes-devtools/rust/rust-common.inc
|
||||
require cargo.inc
|
||||
|
||||
CARGO = "${WORKDIR}/${CARGO_SNAPSHOT}/bin/cargo"
|
||||
BASEDEPENDS:remove = "cargo-native"
|
||||
|
||||
export RUST_TARGET_PATH="${WORKDIR}/targets/"
|
||||
|
||||
RUSTLIB = " \
|
||||
-L ${STAGING_DIR_NATIVE}/${SDKPATHNATIVE}/usr/lib/${TARGET_SYS}/rustlib/${HOST_SYS}/lib \
|
||||
"
|
||||
|
||||
DEPENDS += "rust-native \
|
||||
rust-cross-canadian-${TRANSLATED_TARGET_ARCH} \
|
||||
virtual/nativesdk-${HOST_PREFIX}compilerlibs \
|
||||
nativesdk-openssl nativesdk-zlib \
|
||||
virtual/nativesdk-libc \
|
||||
"
|
||||
|
||||
inherit cross-canadian
|
||||
|
||||
PN = "cargo-cross-canadian-${TRANSLATED_TARGET_ARCH}"
|
||||
|
||||
LLVM_TARGET[x86_64] = "${RUST_HOST_SYS}"
|
||||
|
||||
python do_rust_gen_targets () {
|
||||
wd = d.getVar('WORKDIR') + '/targets/'
|
||||
|
||||
rust_gen_target(d, 'BUILD', wd, "", "generic", d.getVar('BUILD_ARCH'))
|
||||
rust_gen_target(d, 'HOST', wd, "", "generic", d.getVar('HOST_ARCH'))
|
||||
}
|
||||
|
||||
do_compile:prepend () {
|
||||
PKG_CONFIG_PATH="${RECIPE_SYSROOT_NATIVE}/usr/lib/pkgconfig:${PKG_CONFIG_PATH}"
|
||||
}
|
||||
|
||||
do_install () {
|
||||
SYS_BINDIR=$(dirname ${D}${bindir})
|
||||
install -d "${SYS_BINDIR}"
|
||||
install -m 755 "${B}/target/${CARGO_TARGET_SUBDIR}/cargo" "${SYS_BINDIR}"
|
||||
for i in ${SYS_BINDIR}/*; do
|
||||
chrpath -r "\$ORIGIN/../lib" ${i}
|
||||
done
|
||||
|
||||
ENV_SETUP_DIR=${D}${base_prefix}/environment-setup.d
|
||||
mkdir "${ENV_SETUP_DIR}"
|
||||
ENV_SETUP_SH="${ENV_SETUP_DIR}/cargo.sh"
|
||||
cat <<- EOF > "${ENV_SETUP_SH}"
|
||||
export CARGO_HOME="\$OECORE_TARGET_SYSROOT/home/cargo"
|
||||
mkdir -p "\$CARGO_HOME"
|
||||
# Init the default target once, it might be otherwise user modified.
|
||||
if [ ! -f "\$CARGO_HOME/config" ]; then
|
||||
touch "\$CARGO_HOME/config"
|
||||
echo "[build]" >> "\$CARGO_HOME/config"
|
||||
echo 'target = "'${TARGET_SYS}'"' >> "\$CARGO_HOME/config"
|
||||
fi
|
||||
|
||||
# Keep the below off as long as HTTP/2 is disabled.
|
||||
export CARGO_HTTP_MULTIPLEXING=false
|
||||
|
||||
export CARGO_HTTP_CAINFO="\$OECORE_NATIVE_SYSROOT/etc/ssl/certs/ca-certificates.crt"
|
||||
EOF
|
||||
}
|
||||
|
||||
PKG_SYS_BINDIR = "${SDKPATHNATIVE}/usr/bin"
|
||||
FILES:${PN} += "${base_prefix}/environment-setup.d ${PKG_SYS_BINDIR}"
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
require recipes-devtools/rust/rust-source-${PV}.inc
|
||||
require recipes-devtools/rust/rust-snapshot-${PV}.inc
|
||||
|
||||
FILESEXTRAPATHS:prepend := "${THISDIR}/cargo-${PV}:"
|
||||
|
||||
require cargo-cross-canadian.inc
|
||||
@@ -1,6 +0,0 @@
|
||||
require recipes-devtools/rust/rust-source-${PV}.inc
|
||||
require recipes-devtools/rust/rust-snapshot-${PV}.inc
|
||||
|
||||
FILESEXTRAPATHS:prepend := "${THISDIR}/cargo-${PV}:"
|
||||
|
||||
require cargo-cross-canadian.inc
|
||||
@@ -1,56 +1,12 @@
|
||||
SUMMARY ?= "Cargo, a package manager for Rust."
|
||||
HOMEPAGE = "https://crates.io"
|
||||
LICENSE = "MIT | Apache-2.0"
|
||||
SECTION = "devel"
|
||||
|
||||
DEPENDS = "openssl zlib curl ca-certificates libssh2"
|
||||
DEPENDS = "openssl zlib libgit2 curl ca-certificates libssh2"
|
||||
|
||||
LIC_FILES_CHKSUM = " \
|
||||
file://LICENSE-MIT;md5=b377b220f43d747efdec40d69fcaa69d \
|
||||
file://LICENSE-APACHE;md5=71b224ca933f0676e26d5c2e2271331c \
|
||||
file://LICENSE-THIRD-PARTY;md5=f257ad009884cb88a3a87d6920e7180a \
|
||||
LIC_FILES_CHKSUM += " \
|
||||
file://LICENSE-THIRD-PARTY;md5=892ea68b169e69cfe75097fc38a15b56 \
|
||||
"
|
||||
|
||||
# Used in libgit2-sys's build.rs, needed for pkg-config to be used
|
||||
export LIBGIT2_SYS_USE_PKG_CONFIG = "1"
|
||||
|
||||
S = "${RUSTSRC}/src/tools/cargo"
|
||||
CARGO_VENDORING_DIRECTORY = "${RUSTSRC}/vendor"
|
||||
EXCLUDE_FROM_WORLD = "1"
|
||||
|
||||
inherit cargo pkgconfig
|
||||
|
||||
do_cargo_setup_snapshot () {
|
||||
${WORKDIR}/rust-snapshot-components/${CARGO_SNAPSHOT}/install.sh --prefix="${WORKDIR}/${CARGO_SNAPSHOT}" --disable-ldconfig
|
||||
# Need to use uninative's loader if enabled/present since the library paths
|
||||
# are used internally by rust and result in symbol mismatches if we don't
|
||||
if [ ! -z "${UNINATIVE_LOADER}" -a -e "${UNINATIVE_LOADER}" ]; then
|
||||
patchelf-uninative ${WORKDIR}/${CARGO_SNAPSHOT}/bin/cargo --set-interpreter ${UNINATIVE_LOADER}
|
||||
fi
|
||||
}
|
||||
|
||||
addtask cargo_setup_snapshot after do_unpack before do_configure
|
||||
do_cargo_setup_snapshot[dirs] += "${WORKDIR}/${CARGO_SNAPSHOT}"
|
||||
do_cargo_setup_snapshot[vardepsexclude] += "UNINATIVE_LOADER"
|
||||
|
||||
|
||||
do_compile:prepend () {
|
||||
export RUSTC_BOOTSTRAP="1"
|
||||
}
|
||||
|
||||
do_install () {
|
||||
install -d "${D}${bindir}"
|
||||
install -m 755 "${B}/target/${CARGO_TARGET_SUBDIR}/cargo" "${D}${bindir}"
|
||||
}
|
||||
|
||||
# Disabled due to incompatibility with libgit2 0.28.x (https://github.com/rust-lang/git2-rs/issues/458, https://bugs.gentoo.org/707746#c1)
|
||||
# as shipped by Yocto Dunfell.
|
||||
# According to https://github.com/rust-lang/git2-rs/issues/458#issuecomment-522567539, there are no compatibility guarantees between
|
||||
# libgit2-sys and arbitrary system libgit2 versions, so better keep this turned off.
|
||||
#export LIBGIT2_SYS_USE_PKG_CONFIG = "1"
|
||||
|
||||
# Needed for pkg-config to be used
|
||||
export LIBSSH2_SYS_USE_PKG_CONFIG = "1"
|
||||
|
||||
# When building cargo-native we don't have cargo-native to use and depend on,
|
||||
# so we must use the locally set up snapshot to bootstrap the build.
|
||||
BASEDEPENDS:remove:class-native = "cargo-native"
|
||||
CARGO:class-native = "${WORKDIR}/${CARGO_SNAPSHOT}/bin/cargo"
|
||||
BBCLASSEXTEND = "native"
|
||||
|
||||
136
recipes-devtools/cargo/cargo_0.21.0.bb
Normal file
136
recipes-devtools/cargo/cargo_0.21.0.bb
Normal file
@@ -0,0 +1,136 @@
|
||||
# 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.21.0"
|
||||
SRC_URI += "git://git@github.com/rust-lang/cargo.git;protocol=ssh;branch=rust-1.20.0"
|
||||
SRCREV = "5b4b8b2ae3f6a884099544ce66dbb41626110ece"
|
||||
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.11 \
|
||||
crate://crates.io/backtrace/0.3.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/cmake/0.1.24 \
|
||||
crate://crates.io/crossbeam/0.2.10 \
|
||||
crate://crates.io/curl-sys/0.3.14 \
|
||||
crate://crates.io/curl/0.4.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/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/hamcrest/0.1.1 \
|
||||
crate://crates.io/hex/0.2.0 \
|
||||
crate://crates.io/idna/0.1.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.25 \
|
||||
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/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.29 \
|
||||
crate://crates.io/num-bigint/0.1.39 \
|
||||
crate://crates.io/num-complex/0.1.38 \
|
||||
crate://crates.io/num-integer/0.1.34 \
|
||||
crate://crates.io/num-iter/0.1.33 \
|
||||
crate://crates.io/num-rational/0.1.38 \
|
||||
crate://crates.io/num-traits/0.1.39 \
|
||||
crate://crates.io/num/0.1.39 \
|
||||
crate://crates.io/num_cpus/1.6.2 \
|
||||
crate://crates.io/openssl-probe/0.1.1 \
|
||||
crate://crates.io/openssl-sys/0.9.14 \
|
||||
crate://crates.io/openssl/0.9.14 \
|
||||
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.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/rustc-demangle/0.1.4 \
|
||||
crate://crates.io/rustc-serialize/0.3.24 \
|
||||
crate://crates.io/scoped-tls/0.1.0 \
|
||||
crate://crates.io/semver-parser/0.7.0 \
|
||||
crate://crates.io/semver/0.7.0 \
|
||||
crate://crates.io/serde/1.0.9 \
|
||||
crate://crates.io/serde_derive/1.0.9 \
|
||||
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.2 \
|
||||
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/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/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=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
|
||||
151
recipes-devtools/cargo/cargo_0.22.0.bb
Normal file
151
recipes-devtools/cargo/cargo_0.22.0.bb
Normal file
@@ -0,0 +1,151 @@
|
||||
# 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
|
||||
167
recipes-devtools/cargo/cargo_0.25.0.bb
Normal file
167
recipes-devtools/cargo/cargo_0.25.0.bb
Normal file
@@ -0,0 +1,167 @@
|
||||
# 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
|
||||
@@ -1,4 +0,0 @@
|
||||
require recipes-devtools/rust/rust-source-${PV}.inc
|
||||
require recipes-devtools/rust/rust-snapshot-${PV}.inc
|
||||
require cargo.inc
|
||||
BBCLASSEXTEND = "native nativesdk"
|
||||
@@ -1,4 +0,0 @@
|
||||
require recipes-devtools/rust/rust-source-${PV}.inc
|
||||
require recipes-devtools/rust/rust-snapshot-${PV}.inc
|
||||
require cargo.inc
|
||||
BBCLASSEXTEND = "native nativesdk"
|
||||
@@ -0,0 +1,245 @@
|
||||
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
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
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
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
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
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
From 7b3bc1de0c79a1b410105ce36bbe9f774438d263 Mon Sep 17 00:00:00 2001
|
||||
From: Ross Schulman <ross@rbs.io>
|
||||
Date: Tue, 1 Feb 2022 09:13:16 -0500
|
||||
Subject: [PATCH] Add 400-series syscalls to musl riscv64 definitions
|
||||
|
||||
Upstream-Status: Backport [https://github.com/rust-lang/libc/commit/7b3bc1de0c79a1b410105ce36bbe9f774438d263]
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
.../linux_like/linux/musl/b64/riscv64/mod.rs | 19 +++++++++++++++++++
|
||||
1 file changed, 19 insertions(+)
|
||||
|
||||
diff --git a/vendor/libc-0.2.116/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs b/vendor/libc-0.2.116/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs
|
||||
index 6b17621c7..2036583d5 100644
|
||||
--- a/vendor/libc-0.2.116/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs
|
||||
+++ b/vendor/libc-0.2.116/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs
|
||||
@@ -465,6 +465,25 @@ pub const SYS_pkey_mprotect: ::c_long = 288;
|
||||
pub const SYS_pkey_alloc: ::c_long = 289;
|
||||
pub const SYS_pkey_free: ::c_long = 290;
|
||||
pub const SYS_statx: ::c_long = 291;
|
||||
+pub const SYS_pidfd_send_signal: ::c_long = 424;
|
||||
+pub const SYS_io_uring_setup: ::c_long = 425;
|
||||
+pub const SYS_io_uring_enter: ::c_long = 426;
|
||||
+pub const SYS_io_uring_register: ::c_long = 427;
|
||||
+pub const SYS_open_tree: ::c_long = 428;
|
||||
+pub const SYS_move_mount: ::c_long = 429;
|
||||
+pub const SYS_fsopen: ::c_long = 430;
|
||||
+pub const SYS_fsconfig: ::c_long = 431;
|
||||
+pub const SYS_fsmount: ::c_long = 432;
|
||||
+pub const SYS_fspick: ::c_long = 433;
|
||||
+pub const SYS_pidfd_open: ::c_long = 434;
|
||||
+pub const SYS_clone3: ::c_long = 435;
|
||||
+pub const SYS_close_range: ::c_long = 436;
|
||||
+pub const SYS_openat2: ::c_long = 437;
|
||||
+pub const SYS_pidfd_getfd: ::c_long = 438;
|
||||
+pub const SYS_faccessat2: ::c_long = 439;
|
||||
+pub const SYS_process_madvise: ::c_long = 440;
|
||||
+pub const SYS_epoll_pwait2: ::c_long = 441;
|
||||
+pub const SYS_mount_setattr: ::c_long = 442;
|
||||
|
||||
pub const O_APPEND: ::c_int = 1024;
|
||||
pub const O_DIRECT: ::c_int = 0x4000;
|
||||
--
|
||||
2.35.1
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -2,28 +2,16 @@ SUMMARY = "Rust standard libaries"
|
||||
HOMEPAGE = "http://www.rust-lang.org"
|
||||
SECTION = "devel"
|
||||
LICENSE = "MIT | Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://../../COPYRIGHT;md5=93a95682d51b4cb0a633a97046940ef0"
|
||||
|
||||
RUSTLIB_DEP = ""
|
||||
inherit cargo
|
||||
|
||||
DEPENDS:append:libc-musl = " libunwind"
|
||||
# rv32 does not have libunwind ported yet
|
||||
DEPENDS:remove:riscv32 = "libunwind"
|
||||
DEPENDS:remove:riscv64 = "libunwind"
|
||||
|
||||
# Embed bitcode in order to allow compiling both with and without LTO
|
||||
RUSTFLAGS += "-Cembed-bitcode=yes"
|
||||
# Needed so cargo can find libbacktrace
|
||||
RUSTFLAGS += "-L ${STAGING_LIBDIR} -C link-arg=-Wl,-soname,libstd.so"
|
||||
|
||||
S = "${RUSTSRC}/src/libstd"
|
||||
|
||||
CARGO_FEATURES ?= "panic-unwind backtrace"
|
||||
CARGO_BUILD_FLAGS += "--features '${CARGO_FEATURES}'"
|
||||
CARGO_VENDORING_DIRECTORY = "${RUSTSRC}/vendor"
|
||||
|
||||
do_compile:prepend () {
|
||||
do_compile_prepend () {
|
||||
export CARGO_TARGET_DIR="${B}"
|
||||
# For Rust 1.13.0 and newer
|
||||
export RUSTC_BOOTSTRAP="1"
|
||||
@@ -35,6 +23,6 @@ do_install () {
|
||||
# With the incremental build support added in 1.24, the libstd deps directory also includes dependency
|
||||
# files that get installed. Those are really only needed to incrementally rebuild the libstd library
|
||||
# itself and don't need to be installed.
|
||||
rm -f ${B}/${TARGET_SYS}/${BUILD_DIR}/deps/*.d
|
||||
cp ${B}/${TARGET_SYS}/${BUILD_DIR}/deps/* ${D}${rustlibdir}
|
||||
rm -f ${B}/${TARGET_SYS}/release/deps/*.d
|
||||
cp ${B}/${TARGET_SYS}/release/deps/* ${D}${rustlibdir}
|
||||
}
|
||||
|
||||
139
recipes-devtools/rust/libstd-rs_1.20.0.bb
Normal file
139
recipes-devtools/rust/libstd-rs_1.20.0.bb
Normal file
@@ -0,0 +1,139 @@
|
||||
require rust-source-${PV}.inc
|
||||
require libstd-rs.inc
|
||||
|
||||
LIC_FILES_CHKSUM = "file://../../COPYRIGHT;md5=12922f5565a22267bd82aaeb6d3548e5"
|
||||
|
||||
# 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/atty/0.2.2 \
|
||||
crate://crates.io/backtrace-sys/0.1.11 \
|
||||
crate://crates.io/backtrace/0.3.2 \
|
||||
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.25.0 \
|
||||
crate://crates.io/cmake/0.1.24 \
|
||||
crate://crates.io/crossbeam/0.2.10 \
|
||||
crate://crates.io/curl-sys/0.3.14 \
|
||||
crate://crates.io/curl/0.4.7 \
|
||||
crate://crates.io/dbghelp-sys/0.2.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/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/foreign-types/0.2.0 \
|
||||
crate://crates.io/fs2/0.4.2 \
|
||||
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/hamcrest/0.1.1 \
|
||||
crate://crates.io/handlebars/0.26.2 \
|
||||
crate://crates.io/hex/0.2.0 \
|
||||
crate://crates.io/idna/0.1.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.26 \
|
||||
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.7 \
|
||||
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.29 \
|
||||
crate://crates.io/num-bigint/0.1.39 \
|
||||
crate://crates.io/num-complex/0.1.38 \
|
||||
crate://crates.io/num-integer/0.1.34 \
|
||||
crate://crates.io/num-iter/0.1.33 \
|
||||
crate://crates.io/num-rational/0.1.38 \
|
||||
crate://crates.io/num-traits/0.1.39 \
|
||||
crate://crates.io/num/0.1.39 \
|
||||
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.15 \
|
||||
crate://crates.io/openssl/0.9.15 \
|
||||
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.3.15 \
|
||||
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-data/0.7.0 \
|
||||
crate://crates.io/rls-span/0.4.0 \
|
||||
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/semver-parser/0.7.0 \
|
||||
crate://crates.io/semver/0.7.0 \
|
||||
crate://crates.io/serde/1.0.10 \
|
||||
crate://crates.io/serde_derive/1.0.10 \
|
||||
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/stable_deref_trait/1.0.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/tar/0.4.13 \
|
||||
crate://crates.io/tempdir/0.3.5 \
|
||||
crate://crates.io/term_size/0.3.0 \
|
||||
crate://crates.io/termcolor/0.3.2 \
|
||||
crate://crates.io/textwrap/0.6.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.1.30 \
|
||||
crate://crates.io/toml/0.4.2 \
|
||||
crate://crates.io/unicode-bidi/0.3.4 \
|
||||
crate://crates.io/unicode-normalization/0.1.5 \
|
||||
crate://crates.io/unicode-segmentation/1.1.0 \
|
||||
crate://crates.io/unicode-width/0.1.4 \
|
||||
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/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 \
|
||||
"
|
||||
170
recipes-devtools/rust/libstd-rs_1.21.0.bb
Normal file
170
recipes-devtools/rust/libstd-rs_1.21.0.bb
Normal file
@@ -0,0 +1,170 @@
|
||||
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 \
|
||||
"
|
||||
235
recipes-devtools/rust/libstd-rs_1.24.1.bb
Normal file
235
recipes-devtools/rust/libstd-rs_1.24.1.bb
Normal file
@@ -0,0 +1,235 @@
|
||||
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 \
|
||||
"
|
||||
@@ -1,11 +0,0 @@
|
||||
require rust-source-${PV}.inc
|
||||
require libstd-rs.inc
|
||||
|
||||
# Check if libc crate is >= 0.2.117 before dropping this patch
|
||||
SRC_URI += " \
|
||||
file://0001-Add-400-series-syscalls-to-musl-riscv64-definitions.patch;patchdir=../../ \
|
||||
file://0001-Update-checksums-for-modified-vendored-libc.patch;patchdir=../../ \
|
||||
"
|
||||
|
||||
# libstd moved from src/libstd to library/std in 1.47+
|
||||
S = "${RUSTSRC}/library/std"
|
||||
@@ -1,5 +0,0 @@
|
||||
require rust-source-${PV}.inc
|
||||
require libstd-rs.inc
|
||||
|
||||
# libstd moved from src/libstd to library/std in 1.47+
|
||||
S = "${RUSTSRC}/library/std"
|
||||
@@ -1,369 +0,0 @@
|
||||
|
||||
# Right now this is focused on arm-specific tune features.
|
||||
# We get away with this for now as one can only use x86-64 as the build host
|
||||
# (not arm).
|
||||
# Note that TUNE_FEATURES is _always_ refering to the target, so we really
|
||||
# don't want to use this for the host/build.
|
||||
def llvm_features_from_tune(d):
|
||||
f = []
|
||||
feat = d.getVar('TUNE_FEATURES')
|
||||
if not feat:
|
||||
return []
|
||||
feat = frozenset(feat.split())
|
||||
|
||||
mach_overrides = d.getVar('MACHINEOVERRIDES')
|
||||
mach_overrides = frozenset(mach_overrides.split(':'))
|
||||
|
||||
if 'vfpv4' in feat:
|
||||
f.append("+vfp4")
|
||||
if 'vfpv3' in feat:
|
||||
f.append("+vfp3")
|
||||
if 'vfpv3d16' in feat:
|
||||
f.append("+d16")
|
||||
|
||||
if 'vfpv2' in feat or 'vfp' in feat:
|
||||
f.append("+vfp2")
|
||||
|
||||
if 'neon' in feat:
|
||||
f.append("+neon")
|
||||
|
||||
if 'mips32' in feat:
|
||||
f.append("+mips32")
|
||||
|
||||
if 'mips32r2' in feat:
|
||||
f.append("+mips32r2")
|
||||
|
||||
if target_is_armv7(d):
|
||||
f.append('+v7')
|
||||
|
||||
if ('armv6' in mach_overrides) or ('armv6' in feat):
|
||||
f.append("+v6")
|
||||
if 'armv5te' in feat:
|
||||
f.append("+strict-align")
|
||||
f.append("+v5te")
|
||||
elif 'armv5' in feat:
|
||||
f.append("+strict-align")
|
||||
f.append("+v5")
|
||||
|
||||
if ('armv4' in mach_overrides) or ('armv4' in feat):
|
||||
f.append("+strict-align")
|
||||
|
||||
if 'dsp' in feat:
|
||||
f.append("+dsp")
|
||||
|
||||
if 'thumb' in feat:
|
||||
if d.getVar('ARM_THUMB_OPT') == "thumb":
|
||||
if target_is_armv7(d):
|
||||
f.append('+thumb2')
|
||||
f.append("+thumb-mode")
|
||||
|
||||
if 'cortexa5' in feat:
|
||||
f.append("+a5")
|
||||
if 'cortexa7' in feat:
|
||||
f.append("+a7")
|
||||
if 'cortexa9' in feat:
|
||||
f.append("+a9")
|
||||
if 'cortexa15' in feat:
|
||||
f.append("+a15")
|
||||
if 'cortexa17' in feat:
|
||||
f.append("+a17")
|
||||
if ('riscv64' in feat) or ('riscv32' in feat):
|
||||
f.append("+a,+c,+d,+f,+m")
|
||||
return f
|
||||
llvm_features_from_tune[vardepvalue] = "${@llvm_features_from_tune(d)}"
|
||||
|
||||
# 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
|
||||
# stable (1.9.0?)
|
||||
def llvm_features_from_cc_arch(d):
|
||||
f = []
|
||||
feat = d.getVar('TARGET_CC_ARCH')
|
||||
if not feat:
|
||||
return []
|
||||
feat = frozenset(feat.split())
|
||||
|
||||
if '-mmmx' in feat:
|
||||
f.append("+mmx")
|
||||
if '-msse' in feat:
|
||||
f.append("+sse")
|
||||
if '-msse2' in feat:
|
||||
f.append("+sse2")
|
||||
if '-msse3' in feat:
|
||||
f.append("+sse3")
|
||||
if '-mssse3' in feat:
|
||||
f.append("+ssse3")
|
||||
if '-msse4.1' in feat:
|
||||
f.append("+sse4.1")
|
||||
if '-msse4.2' in feat:
|
||||
f.append("+sse4.2")
|
||||
if '-msse4a' in feat:
|
||||
f.append("+sse4a")
|
||||
if '-mavx' in feat:
|
||||
f.append("+avx")
|
||||
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))
|
||||
|
||||
|
||||
## arm-unknown-linux-gnueabihf
|
||||
DATA_LAYOUT[arm-eabi] = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64"
|
||||
LLVM_TARGET[arm-eabi] = "${RUST_TARGET_SYS}"
|
||||
TARGET_ENDIAN[arm-eabi] = "little"
|
||||
TARGET_POINTER_WIDTH[arm-eabi] = "32"
|
||||
TARGET_C_INT_WIDTH[arm-eabi] = "32"
|
||||
MAX_ATOMIC_WIDTH[arm-eabi] = "64"
|
||||
FEATURES[arm-eabi] = "+v6,+vfp2"
|
||||
|
||||
## armv7-unknown-linux-gnueabihf
|
||||
DATA_LAYOUT[armv7-eabi] = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64"
|
||||
LLVM_TARGET[armv7-eabi] = "${RUST_TARGET_SYS}"
|
||||
TARGET_ENDIAN[armv7-eabi] = "little"
|
||||
TARGET_POINTER_WIDTH[armv7-eabi] = "32"
|
||||
TARGET_C_INT_WIDTH[armv7-eabi] = "32"
|
||||
MAX_ATOMIC_WIDTH[armv7-eabi] = "64"
|
||||
FEATURES[armv7-eabi] = "+v7,+vfp2,+thumb2"
|
||||
|
||||
## aarch64-unknown-linux-{gnu, musl}
|
||||
DATA_LAYOUT[aarch64] = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
|
||||
LLVM_TARGET[aarch64] = "${RUST_TARGET_SYS}"
|
||||
TARGET_ENDIAN[aarch64] = "little"
|
||||
TARGET_POINTER_WIDTH[aarch64] = "64"
|
||||
TARGET_C_INT_WIDTH[aarch64] = "32"
|
||||
MAX_ATOMIC_WIDTH[aarch64] = "128"
|
||||
|
||||
## x86_64-unknown-linux-{gnu, musl}
|
||||
DATA_LAYOUT[x86_64] = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
|
||||
LLVM_TARGET[x86_64] = "${RUST_TARGET_SYS}"
|
||||
TARGET_ENDIAN[x86_64] = "little"
|
||||
TARGET_POINTER_WIDTH[x86_64] = "64"
|
||||
TARGET_C_INT_WIDTH[x86_64] = "32"
|
||||
MAX_ATOMIC_WIDTH[x86_64] = "64"
|
||||
|
||||
## x86_64-unknown-linux-gnux32
|
||||
DATA_LAYOUT[x86_64-x32] = "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
|
||||
LLVM_TARGET[x86_64-x32] = "${RUST_TARGET_SYS}"
|
||||
TARGET_ENDIAN[x86_64-x32] = "little"
|
||||
TARGET_POINTER_WIDTH[x86_64-x32] = "32"
|
||||
TARGET_C_INT_WIDTH[x86_64-x32] = "32"
|
||||
MAX_ATOMIC_WIDTH[x86_64-x32] = "64"
|
||||
|
||||
## i686-unknown-linux-{gnu, musl}
|
||||
DATA_LAYOUT[i686] = "e-m:e-p:32:32-f64:32:64-f80:32-n8:16:32-S128"
|
||||
LLVM_TARGET[i686] = "${RUST_TARGET_SYS}"
|
||||
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, musl} above
|
||||
DATA_LAYOUT[i586] = "e-m:e-p:32:32-f64:32:64-f80:32-n8:16:32-S128"
|
||||
LLVM_TARGET[i586] = "${RUST_TARGET_SYS}"
|
||||
TARGET_ENDIAN[i586] = "little"
|
||||
TARGET_POINTER_WIDTH[i586] = "32"
|
||||
TARGET_C_INT_WIDTH[i586] = "32"
|
||||
MAX_ATOMIC_WIDTH[i586] = "64"
|
||||
|
||||
## mips-unknown-linux-{gnu, musl}
|
||||
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, musl}
|
||||
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"
|
||||
|
||||
## mips64-unknown-linux-{gnu, musl}
|
||||
DATA_LAYOUT[mips64] = "E-m:e-i8:8:32-i16:16:32-i64:64-n32:64-S128"
|
||||
LLVM_TARGET[mips64] = "${RUST_TARGET_SYS}"
|
||||
TARGET_ENDIAN[mips64] = "big"
|
||||
TARGET_POINTER_WIDTH[mips64] = "64"
|
||||
TARGET_C_INT_WIDTH[mips64] = "64"
|
||||
MAX_ATOMIC_WIDTH[mips64] = "64"
|
||||
|
||||
## mips64el-unknown-linux-{gnu, musl}
|
||||
DATA_LAYOUT[mips64el] = "e-m:e-i8:8:32-i16:16:32-i64:64-n32:64-S128"
|
||||
LLVM_TARGET[mips64el] = "${RUST_TARGET_SYS}"
|
||||
TARGET_ENDIAN[mips64el] = "little"
|
||||
TARGET_POINTER_WIDTH[mips64el] = "64"
|
||||
TARGET_C_INT_WIDTH[mips64el] = "64"
|
||||
MAX_ATOMIC_WIDTH[mips64el] = "64"
|
||||
|
||||
## powerpc-unknown-linux-{gnu, musl}
|
||||
DATA_LAYOUT[powerpc] = "E-m:e-p:32:32-i64:64-n32"
|
||||
LLVM_TARGET[powerpc] = "${RUST_TARGET_SYS}"
|
||||
TARGET_ENDIAN[powerpc] = "big"
|
||||
TARGET_POINTER_WIDTH[powerpc] = "32"
|
||||
TARGET_C_INT_WIDTH[powerpc] = "32"
|
||||
MAX_ATOMIC_WIDTH[powerpc] = "32"
|
||||
|
||||
## powerpc64-unknown-linux-{gnu, musl}
|
||||
DATA_LAYOUT[powerpc64] = "E-m:e-i64:64-n32:64-S128-v256:256:256-v512:512:512"
|
||||
LLVM_TARGET[powerpc64] = "${RUST_TARGET_SYS}"
|
||||
TARGET_ENDIAN[powerpc64] = "big"
|
||||
TARGET_POINTER_WIDTH[powerpc64] = "64"
|
||||
TARGET_C_INT_WIDTH[powerpc64] = "64"
|
||||
MAX_ATOMIC_WIDTH[powerpc64] = "64"
|
||||
|
||||
## powerpc64le-unknown-linux-{gnu, musl}
|
||||
DATA_LAYOUT[powerpc64le] = "e-m:e-i64:64-n32:64-v256:256:256-v512:512:512"
|
||||
LLVM_TARGET[powerpc64le] = "${RUST_TARGET_SYS}"
|
||||
TARGET_ENDIAN[powerpc64le] = "little"
|
||||
TARGET_POINTER_WIDTH[powerpc64le] = "64"
|
||||
TARGET_C_INT_WIDTH[powerpc64le] = "64"
|
||||
MAX_ATOMIC_WIDTH[powerpc64le] = "64"
|
||||
|
||||
## riscv32-unknown-linux-{gnu, musl}
|
||||
DATA_LAYOUT[riscv32] = "e-m:e-p:32:32-i64:64-n32-S128"
|
||||
LLVM_TARGET[riscv32] = "${RUST_TARGET_SYS}"
|
||||
TARGET_ENDIAN[riscv32] = "little"
|
||||
TARGET_POINTER_WIDTH[riscv32] = "32"
|
||||
TARGET_C_INT_WIDTH[riscv32] = "32"
|
||||
MAX_ATOMIC_WIDTH[riscv32] = "32"
|
||||
|
||||
## riscv64-unknown-linux-{gnu, musl}
|
||||
DATA_LAYOUT[riscv64] = "e-m:e-p:64:64-i64:64-i128:128-n64-S128"
|
||||
LLVM_TARGET[riscv64] = "${RUST_TARGET_SYS}"
|
||||
TARGET_ENDIAN[riscv64] = "little"
|
||||
TARGET_POINTER_WIDTH[riscv64] = "64"
|
||||
TARGET_C_INT_WIDTH[riscv64] = "64"
|
||||
MAX_ATOMIC_WIDTH[riscv64] = "64"
|
||||
|
||||
def sys_for(d, thing):
|
||||
return d.getVar('{}_SYS'.format(thing))
|
||||
|
||||
def prefix_for(d, thing):
|
||||
return d.getVar('{}_PREFIX'.format(thing))
|
||||
|
||||
# Convert a normal arch (HOST_ARCH, TARGET_ARCH, BUILD_ARCH, etc) to something
|
||||
# rust's internals won't choke on.
|
||||
def arch_to_rust_target_arch(arch):
|
||||
if arch == "i586" or arch == "i686":
|
||||
return "x86"
|
||||
elif arch == "mipsel":
|
||||
return "mips"
|
||||
elif arch == "mip64sel":
|
||||
return "mips64"
|
||||
elif arch == "armv7":
|
||||
return "arm"
|
||||
elif arch == "powerpc64le":
|
||||
return "powerpc64"
|
||||
else:
|
||||
return arch
|
||||
|
||||
# generates our target CPU value
|
||||
def llvm_cpu(d):
|
||||
cpu = d.getVar('PACKAGE_ARCH')
|
||||
target = d.getVar('TRANSLATED_TARGET_ARCH')
|
||||
|
||||
trans = {}
|
||||
trans['corei7-64'] = "corei7"
|
||||
trans['core2-32'] = "core2"
|
||||
trans['x86-64'] = "x86-64"
|
||||
trans['i686'] = "i686"
|
||||
trans['i586'] = "i586"
|
||||
trans['powerpc'] = "powerpc"
|
||||
trans['mips64'] = "mips64"
|
||||
trans['mips64el'] = "mips64"
|
||||
trans['riscv64'] = "generic-rv64"
|
||||
trans['riscv32'] = "generic-rv32"
|
||||
|
||||
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)}"
|
||||
|
||||
# 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))}"
|
||||
|
||||
def rust_gen_target(d, thing, wd, features, cpu, arch, abi=""):
|
||||
import json
|
||||
sys = sys_for(d, thing)
|
||||
prefix = prefix_for(d, thing)
|
||||
|
||||
if abi:
|
||||
arch_abi = "{}-{}".format(arch, abi)
|
||||
else:
|
||||
arch_abi = arch
|
||||
|
||||
features = features or d.getVarFlag('FEATURES', arch_abi) or ""
|
||||
features = features.strip()
|
||||
|
||||
# build tspec
|
||||
tspec = {}
|
||||
tspec['llvm-target'] = d.getVarFlag('LLVM_TARGET', arch_abi)
|
||||
tspec['data-layout'] = d.getVarFlag('DATA_LAYOUT', arch_abi)
|
||||
tspec['max-atomic-width'] = int(d.getVarFlag('MAX_ATOMIC_WIDTH', arch_abi))
|
||||
tspec['target-pointer-width'] = d.getVarFlag('TARGET_POINTER_WIDTH', arch_abi)
|
||||
tspec['target-c-int-width'] = d.getVarFlag('TARGET_C_INT_WIDTH', arch_abi)
|
||||
tspec['target-endian'] = d.getVarFlag('TARGET_ENDIAN', arch_abi)
|
||||
tspec['arch'] = arch_to_rust_target_arch(arch)
|
||||
tspec['os'] = "linux"
|
||||
if "musl" in tspec['llvm-target']:
|
||||
tspec['env'] = "musl"
|
||||
else:
|
||||
tspec['env'] = "gnu"
|
||||
if "riscv64" in tspec['llvm-target']:
|
||||
tspec['llvm-abiname'] = "lp64d"
|
||||
if "riscv32" in tspec['llvm-target']:
|
||||
tspec['llvm-abiname'] = "ilp32d"
|
||||
tspec['vendor'] = "unknown"
|
||||
tspec['target-family'] = "unix"
|
||||
tspec['linker'] = "{}{}gcc".format(d.getVar('CCACHE'), prefix)
|
||||
tspec['cpu'] = cpu
|
||||
if features != "":
|
||||
tspec['features'] = features
|
||||
tspec['dynamic-linking'] = True
|
||||
tspec['executables'] = True
|
||||
tspec['linker-is-gnu'] = True
|
||||
tspec['linker-flavor'] = "gcc"
|
||||
tspec['has-rpath'] = True
|
||||
tspec['has-elf-tls'] = True
|
||||
tspec['position-independent-executables'] = True
|
||||
tspec['panic-strategy'] = d.getVar("RUST_PANIC_STRATEGY")
|
||||
|
||||
# write out the target spec json file
|
||||
with open(wd + sys + '.json', 'w') as f:
|
||||
json.dump(tspec, f, indent=4)
|
||||
|
||||
python do_rust_gen_targets () {
|
||||
wd = d.getVar('WORKDIR') + '/targets/'
|
||||
build_arch = d.getVar('BUILD_ARCH')
|
||||
rust_gen_target(d, 'BUILD', wd, "", "generic", build_arch)
|
||||
}
|
||||
|
||||
addtask rust_gen_targets after do_patch before do_compile
|
||||
do_rust_gen_targets[dirs] += "${WORKDIR}/targets"
|
||||
|
||||
@@ -1,55 +0,0 @@
|
||||
|
||||
RUST_ALTERNATE_EXE_PATH = "${STAGING_LIBDIR_NATIVE}/llvm-rust/bin/llvm-config"
|
||||
|
||||
require rust.inc
|
||||
|
||||
DEPENDS += "rust-llvm (=${PV})"
|
||||
|
||||
inherit cross-canadian
|
||||
|
||||
DEPENDS += " \
|
||||
virtual/${HOST_PREFIX}gcc-crosssdk \
|
||||
virtual/nativesdk-libc rust-llvm-native \
|
||||
virtual/${TARGET_PREFIX}compilerlibs \
|
||||
virtual/nativesdk-${HOST_PREFIX}compilerlibs \
|
||||
gcc-cross-${TARGET_ARCH} \
|
||||
"
|
||||
|
||||
# The host tools are likely not to be able to do the necessary operation on
|
||||
# the target architecturea. Alternatively one could check compatibility
|
||||
# between host/target.
|
||||
EXCLUDE_FROM_SHLIBS_${RUSTLIB_TARGET_PN} = "1"
|
||||
|
||||
DEBUG_PREFIX_MAP = "-fdebug-prefix-map=${WORKDIR}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR} \
|
||||
-fdebug-prefix-map=${STAGING_DIR_HOST}= \
|
||||
-fdebug-prefix-map=${STAGING_DIR_NATIVE}= \
|
||||
"
|
||||
|
||||
LLVM_TARGET[x86_64] = "${RUST_HOST_SYS}"
|
||||
python do_rust_gen_targets () {
|
||||
wd = d.getVar('WORKDIR') + '/targets/'
|
||||
rust_gen_target(d, 'TARGET', wd, d.getVar('TARGET_LLVM_FEATURES') or "", d.getVar('TARGET_LLVM_CPU'), d.getVar('TARGET_ARCH'))
|
||||
rust_gen_target(d, 'HOST', wd, "", "generic", d.getVar('HOST_ARCH'))
|
||||
rust_gen_target(d, 'BUILD', wd, "", "generic", d.getVar('BUILD_ARCH'))
|
||||
}
|
||||
|
||||
INHIBIT_DEFAULT_RUST_DEPS = "1"
|
||||
|
||||
export WRAPPER_TARGET_CC = "${CCACHE}${TARGET_PREFIX}gcc --sysroot=${STAGING_DIR_TARGET} ${TARGET_CC_ARCH} ${SECURITY_NOPIE_CFLAGS}"
|
||||
export WRAPPER_TARGET_CXX = "${CCACHE}${TARGET_PREFIX}g++ --sysroot=${STAGING_DIR_TARGET} ${TARGET_CC_ARCH} ${SECURITY_NOPIE_CFLAGS}"
|
||||
export WRAPPER_TARGET_CCLD = "${TARGET_PREFIX}gcc --sysroot=${STAGING_DIR_TARGET} ${TARGET_CC_ARCH} ${SECURITY_NOPIE_CFLAGS}"
|
||||
export WRAPPER_TARGET_LDFLAGS = "${TARGET_LDFLAGS}"
|
||||
export WRAPPER_TARGET_AR = "${TARGET_PREFIX}ar"
|
||||
|
||||
python do_configure:prepend() {
|
||||
targets = [d.getVar("TARGET_SYS", True), "{}-unknown-linux-gnu".format(d.getVar("HOST_ARCH", True))]
|
||||
hosts = ["{}-unknown-linux-gnu".format(d.getVar("HOST_ARCH", True))]
|
||||
}
|
||||
|
||||
INSANE_SKIP:${RUSTLIB_TARGET_PN} = "file-rdeps arch ldflags"
|
||||
SKIP_FILEDEPS:${RUSTLIB_TARGET_PN} = "1"
|
||||
|
||||
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
|
||||
INHIBIT_PACKAGE_STRIP = "1"
|
||||
INHIBIT_SYSROOT_STRIP = "1"
|
||||
|
||||
@@ -1,78 +0,0 @@
|
||||
|
||||
require rust-cross-canadian-common.inc
|
||||
|
||||
RUSTLIB_TARGET_PN = "rust-cross-canadian-rustlib-target-${TRANSLATED_TARGET_ARCH}"
|
||||
RUSTLIB_HOST_PN = "rust-cross-canadian-rustlib-host-${TRANSLATED_TARGET_ARCH}"
|
||||
RUSTLIB_SRC_PN = "rust-cross-canadian-src"
|
||||
RUSTLIB_PKGS = "${RUSTLIB_SRC_PN} ${RUSTLIB_TARGET_PN} ${RUSTLIB_HOST_PN}"
|
||||
PN = "rust-cross-canadian-${TRANSLATED_TARGET_ARCH}"
|
||||
|
||||
PACKAGES = "${RUSTLIB_PKGS} ${PN}"
|
||||
RDEPENDS:${PN} += "${RUSTLIB_PKGS}"
|
||||
|
||||
# The default behaviour of x.py changed in 1.47+ so now we need to
|
||||
# explicitly ask for the stage 2 compiler to be assembled.
|
||||
do_compile () {
|
||||
rust_runx build --stage 2
|
||||
}
|
||||
|
||||
do_install () {
|
||||
# Rust requires /usr/lib to contain the libs.
|
||||
# Similar story is with /usr/bin ruquiring `lib` to be at the same level.
|
||||
# The required structure is retained for simplicity.
|
||||
SYS_LIBDIR=$(dirname ${D}${libdir})
|
||||
SYS_BINDIR=$(dirname ${D}${bindir})
|
||||
RUSTLIB_DIR=${SYS_LIBDIR}/${TARGET_SYS}/rustlib
|
||||
|
||||
install -d "${SYS_BINDIR}"
|
||||
cp build/${SNAPSHOT_BUILD_SYS}/stage2/bin/* ${SYS_BINDIR}
|
||||
for i in ${SYS_BINDIR}/*; do
|
||||
chrpath -r "\$ORIGIN/../lib" ${i}
|
||||
done
|
||||
|
||||
install -d "${D}${libdir}"
|
||||
cp -pRd build/${SNAPSHOT_BUILD_SYS}/stage2/lib/${TARGET_SYS}/*.so ${SYS_LIBDIR}
|
||||
cp -pRd build/${SNAPSHOT_BUILD_SYS}/stage2/lib/${TARGET_SYS}/rustlib ${RUSTLIB_DIR}
|
||||
|
||||
for i in ${SYS_LIBDIR}/*.so; do
|
||||
chrpath -r "\$ORIGIN/../lib" ${i}
|
||||
done
|
||||
for i in ${RUSTLIB_DIR}/*/lib/*.so; do
|
||||
chrpath -d ${i}
|
||||
done
|
||||
|
||||
install -m 0644 "${WORKDIR}/targets/${TARGET_SYS}.json" "${RUSTLIB_DIR}"
|
||||
|
||||
SRC_DIR=${RUSTLIB_DIR}/src/rust
|
||||
install -d ${SRC_DIR}/src/llvm-project
|
||||
cp -R --no-dereference build/${SNAPSHOT_BUILD_SYS}/stage2/lib/rustlib/src/rust/src/llvm-project/libunwind ${SRC_DIR}/src/llvm-project
|
||||
cp -R --no-dereference build/${SNAPSHOT_BUILD_SYS}/stage2/lib/rustlib/src/rust/library ${SRC_DIR}
|
||||
cp --no-dereference build/${SNAPSHOT_BUILD_SYS}/stage2/lib/rustlib/src/rust/Cargo.lock ${SRC_DIR}
|
||||
# Remove executable bit from any files so then SDK doesn't try to relocate.
|
||||
chmod -R -x+X ${SRC_DIR}
|
||||
|
||||
ENV_SETUP_DIR=${D}${base_prefix}/environment-setup.d
|
||||
mkdir "${ENV_SETUP_DIR}"
|
||||
ENV_SETUP_SH="${ENV_SETUP_DIR}/rust.sh"
|
||||
|
||||
cat <<- EOF > "${ENV_SETUP_SH}"
|
||||
export RUSTFLAGS="--sysroot=\$OECORE_NATIVE_SYSROOT/usr -C link-arg=--sysroot=\$OECORE_TARGET_SYSROOT -L\$OECORE_NATIVE_SYSROOT/usr/lib/${TARGET_SYS}/rustlib/${TARGET_SYS}/lib"
|
||||
export RUST_TARGET_PATH="\$OECORE_NATIVE_SYSROOT/usr/lib/${TARGET_SYS}/rustlib"
|
||||
EOF
|
||||
|
||||
chown -R root.root ${D}
|
||||
}
|
||||
|
||||
PKG_SYS_LIBDIR = "${SDKPATHNATIVE}/usr/lib"
|
||||
PKG_SYS_BINDIR = "${SDKPATHNATIVE}/usr/bin"
|
||||
PKG_RUSTLIB_DIR = "${PKG_SYS_LIBDIR}/${TARGET_SYS}/rustlib"
|
||||
FILES:${PN} = "${PKG_SYS_LIBDIR}/*.so ${PKG_SYS_BINDIR} ${base_prefix}/environment-setup.d"
|
||||
FILES:${RUSTLIB_TARGET_PN} = "${PKG_RUSTLIB_DIR}/${TARGET_SYS} ${PKG_RUSTLIB_DIR}/${TARGET_SYS}.json"
|
||||
FILES:${RUSTLIB_HOST_PN} = "${PKG_RUSTLIB_DIR}/${BUILD_ARCH}-unknown-linux-gnu"
|
||||
FILES:${RUSTLIB_SRC_PN} = "${PKG_RUSTLIB_DIR}/src"
|
||||
|
||||
SUMMARY:${RUSTLIB_TARGET_PN} = "Rust cross canadian libaries for ${TARGET_SYS}"
|
||||
SUMMARY:${RUSTLIB_HOST_PN} = "Rust cross canadian libaries for ${HOST_SYS}"
|
||||
SUMMARY:${RUSTLIB_SRC_PN} = "Rust standard library sources for cross canadian toolchain"
|
||||
SUMMARY:${PN} = "Rust crost canadian compiler"
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
require rust-cross-canadian.inc
|
||||
require rust-source-${PV}.inc
|
||||
require rust-snapshot-${PV}.inc
|
||||
|
||||
FILESEXTRAPATHS:prepend := "${THISDIR}/rust:"
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
require rust-cross-canadian.inc
|
||||
require rust-source-${PV}.inc
|
||||
require rust-snapshot-${PV}.inc
|
||||
|
||||
FILESEXTRAPATHS:prepend := "${THISDIR}/rust:"
|
||||
|
||||
@@ -1,27 +1,6 @@
|
||||
require rust.inc
|
||||
inherit cross
|
||||
|
||||
python do_rust_gen_targets () {
|
||||
wd = d.getVar('WORKDIR') + '/targets/'
|
||||
# It is important 'TARGET' is last here so that it overrides our less
|
||||
# informed choices for BUILD & HOST if TARGET happens to be the same as
|
||||
# either of them.
|
||||
for thing in ['BUILD', 'HOST', 'TARGET']:
|
||||
bb.debug(1, "rust_gen_target for " + thing)
|
||||
features = ""
|
||||
cpu = "generic"
|
||||
arch = d.getVar('{}_ARCH'.format(thing))
|
||||
abi = ""
|
||||
if thing is "TARGET":
|
||||
abi = d.getVar('ABIEXTENSION')
|
||||
# arm and armv7 have different targets in llvm
|
||||
if arch == "arm" and target_is_armv7(d):
|
||||
arch = 'armv7'
|
||||
features = d.getVar('TARGET_LLVM_FEATURES') or ""
|
||||
cpu = d.getVar('TARGET_LLVM_CPU')
|
||||
rust_gen_target(d, thing, wd, features, cpu, arch, abi)
|
||||
}
|
||||
|
||||
# Otherwise we'll depend on what we provide
|
||||
INHIBIT_DEFAULT_RUST_DEPS = "1"
|
||||
|
||||
@@ -34,7 +13,7 @@ DEPENDS += "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}compilerlibs vir
|
||||
DEPENDS += "rust-native"
|
||||
|
||||
PROVIDES = "virtual/${TARGET_PREFIX}rust"
|
||||
PN = "rust-cross-${TUNE_PKGARCH}-${TCLIBC}"
|
||||
PN = "rust-cross-${TARGET_ARCH}"
|
||||
|
||||
# In the cross compilation case, rustc doesn't seem to get the rpath quite
|
||||
# right. It manages to include '../../lib/${TARGET_PREFIX}', but doesn't
|
||||
@@ -47,14 +26,11 @@ PN = "rust-cross-${TUNE_PKGARCH}-${TCLIBC}"
|
||||
# FIXME: this should really be fixed in rust itself.
|
||||
# FIXME: using hard-coded relative paths is wrong, we should ask bitbake for
|
||||
# the relative path between 2 of it's vars.
|
||||
HOST_POST_LINK_ARGS:append = " -Wl,-rpath=../../lib"
|
||||
BUILD_POST_LINK_ARGS:append = " -Wl,-rpath=../../lib"
|
||||
HOST_POST_LINK_ARGS_append = " -Wl,-rpath=../../lib"
|
||||
BUILD_POST_LINK_ARGS_append = " -Wl,-rpath=../../lib"
|
||||
|
||||
# We need the same thing for the calls to the compiler when building the runtime crap
|
||||
TARGET_CC_ARCH:append = " --sysroot=${STAGING_DIR_TARGET}"
|
||||
|
||||
do_rust_setup_snapshot () {
|
||||
}
|
||||
TARGET_CC_ARCH_append = " --sysroot=${STAGING_DIR_TARGET}"
|
||||
|
||||
do_configure () {
|
||||
}
|
||||
|
||||
@@ -1,2 +1,3 @@
|
||||
require rust-cross.inc
|
||||
require rust-source-${PV}.inc
|
||||
require rust-snapshot-${PV}.inc
|
||||
@@ -1,2 +1,3 @@
|
||||
require rust-cross.inc
|
||||
require rust-source-${PV}.inc
|
||||
require rust-snapshot-${PV}.inc
|
||||
4
recipes-devtools/rust/rust-cross_1.24.1.bb
Normal file
4
recipes-devtools/rust/rust-cross_1.24.1.bb
Normal file
@@ -0,0 +1,4 @@
|
||||
require rust-cross.inc
|
||||
require rust-source-${PV}.inc
|
||||
require rust-snapshot-${PV}.inc
|
||||
|
||||
@@ -1,72 +1,65 @@
|
||||
SUMMARY = "LLVM compiler framework (packaged with rust)"
|
||||
LICENSE ?= "Apache-2.0-with-LLVM-exception"
|
||||
HOMEPAGE = "http://www.rust-lang.org"
|
||||
LICENSE = "NCSA"
|
||||
|
||||
SRC_URI += "file://0002-llvm-allow-env-override-of-exe-path.patch;striplevel=2 \
|
||||
file://0001-AsmMatcherEmitter-sort-ClassInfo-lists-by-name-as-we.patch;striplevel=2 \
|
||||
file://0003-llvm-fix-include-benchmarks.patch;striplevel=2 \
|
||||
"
|
||||
S = "${RUSTSRC}/src/llvm"
|
||||
|
||||
S = "${RUSTSRC}/src/llvm-project/llvm"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=4c0bc17c954e99fd547528d938832bfa"
|
||||
|
||||
LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=8a15a0759ef07f2682d2ba4b893c9afe"
|
||||
|
||||
inherit cmake python3native
|
||||
|
||||
DEPENDS += "ninja-native rust-llvm-native"
|
||||
|
||||
ARM_INSTRUCTION_SET:armv5 = "arm"
|
||||
ARM_INSTRUCTION_SET:armv4t = "arm"
|
||||
|
||||
# rustc_llvm with debug info is not recognized as a valid crate that's
|
||||
# generated by rust-llvm-native.
|
||||
CFLAGS:remove = "-g"
|
||||
CXXFLAGS:remove = "-g"
|
||||
|
||||
LLVM_DIR = "llvm${LLVM_RELEASE}"
|
||||
inherit cmake pythonnative
|
||||
|
||||
EXTRA_OECMAKE = " \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DLLVM_TARGETS_TO_BUILD='ARM;AArch64;Mips;PowerPC;RISCV;X86' \
|
||||
-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 \
|
||||
-DLLVM_INCLUDE_TESTS=OFF \
|
||||
-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"
|
||||
|
||||
export YOCTO_ALTERNATE_EXE_PATH = "${STAGING_LIBDIR}/llvm-rust/bin/llvm-config"
|
||||
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
|
||||
|
||||
do_install:append () {
|
||||
# we don't need any of this stuff to build Rust
|
||||
rm -rf "${D}/usr/lib/cmake"
|
||||
# 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}-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"
|
||||
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"
|
||||
|
||||
BBCLASSEXTEND = "native"
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
From 86940d87026432683fb6741cd8a34d3b9b18e40d Mon Sep 17 00:00:00 2001
|
||||
From: Alexander Kanavin <alex.kanavin@gmail.com>
|
||||
Date: Fri, 27 Nov 2020 10:11:08 +0000
|
||||
Subject: [PATCH] AsmMatcherEmitter: sort ClassInfo lists by name as well
|
||||
|
||||
Otherwise, there are instances which are identical in
|
||||
every other field and therefore sort non-reproducibly
|
||||
(which breaks binary and source reproducibiliy).
|
||||
|
||||
Upstream-Status: Submitted [https://reviews.llvm.org/D97477]
|
||||
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
|
||||
---
|
||||
llvm/utils/TableGen/AsmMatcherEmitter.cpp | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/llvm/utils/TableGen/AsmMatcherEmitter.cpp b/llvm/utils/TableGen/AsmMatcherEmitter.cpp
|
||||
index ccf0959389b..1f801e83b7d 100644
|
||||
--- a/llvm/utils/TableGen/AsmMatcherEmitter.cpp
|
||||
+++ b/llvm/utils/TableGen/AsmMatcherEmitter.cpp
|
||||
@@ -359,7 +359,10 @@ public:
|
||||
// name of a class shouldn't be significant. However, some of the backends
|
||||
// accidentally rely on this behaviour, so it will have to stay like this
|
||||
// until they are fixed.
|
||||
- return ValueName < RHS.ValueName;
|
||||
+ if (ValueName != RHS.ValueName)
|
||||
+ return ValueName < RHS.ValueName;
|
||||
+ // All else being equal, we should sort by name, for source and binary reproducibility
|
||||
+ return Name < RHS.Name;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
From 7111770e8290082530d920e120995bf81431b0aa Mon Sep 17 00:00:00 2001
|
||||
From: Martin Kelly <mkelly@xevo.com>
|
||||
Date: Fri, 19 May 2017 00:22:57 -0700
|
||||
Subject: [PATCH 12/18] 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.
|
||||
|
||||
Upstream-Status: Inappropriate [oe-core specific]
|
||||
Signed-off-by: Martin Kelly <mkelly@xevo.com>
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
llvm/tools/llvm-config/llvm-config.cpp | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
--- a/llvm/tools/llvm-config/llvm-config.cpp
|
||||
+++ b/llvm/tools/llvm-config/llvm-config.cpp
|
||||
@@ -226,6 +226,13 @@ Typical components:\n\
|
||||
|
||||
/// 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;
|
||||
@@ -1,25 +0,0 @@
|
||||
Subject: LLVM_INCLUDE_BENCHMARKS with llvm 14.0.1 failing to build
|
||||
|
||||
https://github.com/llvm/llvm-project/issues/54941
|
||||
|
||||
The LLVM_INCLUDE_BENCHMARKS is turned OFF to fix the build error as
|
||||
per the discussions in the above link. We will work on the issue and
|
||||
replace the workaround with actual fix once committed in LLVM.
|
||||
|
||||
Please refer the following link for more discussions on the issue:-
|
||||
https://github.com/rust-lang/rust/issues/96054
|
||||
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Pgowda <pgowda.cve@gmail.com>
|
||||
|
||||
--- a/llvm/CMakeLists.txt 2022-04-22 00:45:30.543445478 -0700
|
||||
+++ b/llvm/CMakeLists.txt 2022-04-22 00:45:42.095232974 -0700
|
||||
@@ -615,7 +615,7 @@ option(LLVM_INCLUDE_GO_TESTS "Include th
|
||||
|
||||
option(LLVM_BUILD_BENCHMARKS "Add LLVM benchmark targets to the list of default
|
||||
targets. If OFF, benchmarks still could be built using Benchmarks target." OFF)
|
||||
-option(LLVM_INCLUDE_BENCHMARKS "Generate benchmark targets. If OFF, benchmarks can't be built." ON)
|
||||
+option(LLVM_INCLUDE_BENCHMARKS "Generate benchmark targets. If OFF, benchmarks can't be built." OFF)
|
||||
|
||||
option (LLVM_BUILD_DOCS "Build the llvm documentation." OFF)
|
||||
option (LLVM_INCLUDE_DOCS "Generate build targets for llvm documentation." ON)
|
||||
16
recipes-devtools/rust/rust-llvm_1.20.0.bb
Normal file
16
recipes-devtools/rust/rust-llvm_1.20.0.bb
Normal 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"
|
||||
}
|
||||
16
recipes-devtools/rust/rust-llvm_1.21.0.bb
Normal file
16
recipes-devtools/rust/rust-llvm_1.21.0.bb
Normal 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"
|
||||
}
|
||||
16
recipes-devtools/rust/rust-llvm_1.24.1.bb
Normal file
16
recipes-devtools/rust/rust-llvm_1.24.1.bb
Normal 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"
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
# check src/llvm-project/llvm/CMakeLists.txt for llvm version in use
|
||||
#
|
||||
LLVM_RELEASE = "14.0.0"
|
||||
require rust-source-${PV}.inc
|
||||
require rust-llvm.inc
|
||||
@@ -1,5 +0,0 @@
|
||||
# check src/llvm-project/llvm/CMakeLists.txt for llvm version in use
|
||||
#
|
||||
LLVM_RELEASE = "14.0.6"
|
||||
require rust-source-${PV}.inc
|
||||
require rust-llvm.inc
|
||||
26
recipes-devtools/rust/rust-snapshot-1.20.0.inc
Normal file
26
recipes-devtools/rust/rust-snapshot-1.20.0.inc
Normal file
@@ -0,0 +1,26 @@
|
||||
# Specifics for Rust 1.20.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.19.0"
|
||||
|
||||
RUST_STD_SNAPSHOT = "rust-std-${RS_VERSION}-${RUST_BUILD_SYS}"
|
||||
RUSTC_SNAPSHOT = "rustc-${RS_VERSION}-${RUST_BUILD_SYS}"
|
||||
CARGO_VERSION = "0.20.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] = "e5077b80cc953a1fb9c767aa039d5984"
|
||||
SRC_URI[rustc-snapshot.sha256sum] = "4c8df3088d17c8e06bf58d453d39bd521487defcefc8193203b80f0fb797d6fe"
|
||||
SRC_URI[rust-std-snapshot.md5sum] = "2bff47764df01c99f349908601c10478"
|
||||
SRC_URI[rust-std-snapshot.sha256sum] = "5905803e8a127f656bf253978692f0d6cf6c9206c527e4d6d7e981980618d1b6"
|
||||
SRC_URI[cargo-snapshot.md5sum] = "63aa861b029eec9f559f4fb5a10c287d"
|
||||
SRC_URI[cargo-snapshot.sha256sum] = "a677d13b01d00ad13edf75c7d1b484421c7fc09338bf9ed6d456b4685bb42ed1"
|
||||
26
recipes-devtools/rust/rust-snapshot-1.21.0.inc
Normal file
26
recipes-devtools/rust/rust-snapshot-1.21.0.inc
Normal file
@@ -0,0 +1,26 @@
|
||||
# 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"
|
||||
26
recipes-devtools/rust/rust-snapshot-1.24.1.inc
Normal file
26
recipes-devtools/rust/rust-snapshot-1.24.1.inc
Normal file
@@ -0,0 +1,26 @@
|
||||
# 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"
|
||||
@@ -1,25 +0,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.60.0"
|
||||
CARGO_VERSION = "1.60.0"
|
||||
|
||||
# TODO: Add hashes for other architecture toolchains as well. Make a script?
|
||||
SRC_URI[rust-std-snapshot-x86_64.sha256sum] = "6fb8ee3650beb10836ae48a9aaa535473e64eaca20695b88113267aea3c7557f"
|
||||
SRC_URI[rustc-snapshot-x86_64.sha256sum] = "fc0b41c15e348ad0eeb7a6c015a922a2ac95e9577e531635558b26d99399f315"
|
||||
SRC_URI[cargo-snapshot-x86_64.sha256sum] = "48edb2eb51d7c56ef9a3130f0b331e83f139559161f6f93b9588d28cf72610f3"
|
||||
|
||||
SRC_URI[rust-std-snapshot-aarch64.sha256sum] = "fbc39c2ba2eee9bad7305d73d02a63ada651961be8fd9e0dae520bda5d715c6e"
|
||||
SRC_URI[rustc-snapshot-aarch64.sha256sum] = "f5b24f2bc30db4b8efb7eba7db86fd5db0bc283631b4c918794e9217fca32822"
|
||||
SRC_URI[cargo-snapshot-aarch64.sha256sum] = "36030f5cede7971eaed45284b5243b4103184a663ad934124de8a530e0e6d993"
|
||||
|
||||
SRC_URI += " \
|
||||
https://static.rust-lang.org/dist/${RUST_STD_SNAPSHOT}.tar.xz;name=rust-std-snapshot-${BUILD_ARCH};subdir=rust-snapshot-components \
|
||||
https://static.rust-lang.org/dist/${RUSTC_SNAPSHOT}.tar.xz;name=rustc-snapshot-${BUILD_ARCH};subdir=rust-snapshot-components \
|
||||
https://static.rust-lang.org/dist/${CARGO_SNAPSHOT}.tar.xz;name=cargo-snapshot-${BUILD_ARCH};subdir=rust-snapshot-components \
|
||||
"
|
||||
|
||||
RUST_STD_SNAPSHOT = "rust-std-${RS_VERSION}-${BUILD_ARCH}-unknown-linux-gnu"
|
||||
RUSTC_SNAPSHOT = "rustc-${RS_VERSION}-${BUILD_ARCH}-unknown-linux-gnu"
|
||||
CARGO_SNAPSHOT = "cargo-${CARGO_VERSION}-${BUILD_ARCH}-unknown-linux-gnu"
|
||||
@@ -1,25 +0,0 @@
|
||||
## This is information on the rust-snapshot (binary) used to build our current release.
|
||||
## snapshot info is taken from rust/src/stage0.json
|
||||
## TODO: find a way to add additional SRC_URIs based on the contents of an
|
||||
## earlier SRC_URI.
|
||||
RS_VERSION = "1.63.0"
|
||||
CARGO_VERSION = "1.63.0"
|
||||
|
||||
# TODO: Add hashes for other architecture toolchains as well. Make a script?
|
||||
SRC_URI[rust-std-snapshot-x86_64.sha256sum] = "993c2c17bf76ac626bfb5b17bddce65fbdfc14f70d183f33773de0cd12df46d2"
|
||||
SRC_URI[rustc-snapshot-x86_64.sha256sum] = "bdab9d9afa5c329c40f9ba568364815237fab8426477c12bfabad35ffc484ab5"
|
||||
SRC_URI[cargo-snapshot-x86_64.sha256sum] = "f370d12e4c11f0c835becb738bcf00d363f29b76f8b424b4dcb005abcf15fc9a"
|
||||
|
||||
SRC_URI[rust-std-snapshot-aarch64.sha256sum] = "f1d93b3d48258f701687c63ef9b226c07329fb92c2c5559283258687f958e9d0"
|
||||
SRC_URI[rustc-snapshot-aarch64.sha256sum] = "d78799bb8f4177877f97b9051c9cba1fd85173f2e9cecab9486388fc6fa66259"
|
||||
SRC_URI[cargo-snapshot-aarch64.sha256sum] = "4313ab44dccba4faed20db4aacc16def405773d1676e79d3e65ced4b99d710d4"
|
||||
|
||||
SRC_URI += " \
|
||||
https://static.rust-lang.org/dist/${RUST_STD_SNAPSHOT}.tar.xz;name=rust-std-snapshot-${BUILD_ARCH};subdir=rust-snapshot-components \
|
||||
https://static.rust-lang.org/dist/${RUSTC_SNAPSHOT}.tar.xz;name=rustc-snapshot-${BUILD_ARCH};subdir=rust-snapshot-components \
|
||||
https://static.rust-lang.org/dist/${CARGO_SNAPSHOT}.tar.xz;name=cargo-snapshot-${BUILD_ARCH};subdir=rust-snapshot-components \
|
||||
"
|
||||
|
||||
RUST_STD_SNAPSHOT = "rust-std-${RS_VERSION}-${BUILD_ARCH}-unknown-linux-gnu"
|
||||
RUSTC_SNAPSHOT = "rustc-${RS_VERSION}-${BUILD_ARCH}-unknown-linux-gnu"
|
||||
CARGO_SNAPSHOT = "cargo-${CARGO_VERSION}-${BUILD_ARCH}-unknown-linux-gnu"
|
||||
14
recipes-devtools/rust/rust-source-1.20.0.inc
Normal file
14
recipes-devtools/rust/rust-source-1.20.0.inc
Normal file
@@ -0,0 +1,14 @@
|
||||
# Specifics for Rust 1.20.0
|
||||
|
||||
SRC_URI += "\
|
||||
https://static.rust-lang.org/dist/rustc-${PV}-src.tar.gz;name=rust \
|
||||
"
|
||||
SRC_URI[rust.md5sum] = "1d3c5d25d8e6215e7d0b6d4d4c9835b9"
|
||||
SRC_URI[rust.sha256sum] = "2aa4875ff4472c6e35262bbb9052cb2623da3dae6084a858cc59d36f33f18214"
|
||||
|
||||
# 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=12922f5565a22267bd82aaeb6d3548e5"
|
||||
14
recipes-devtools/rust/rust-source-1.21.0.inc
Normal file
14
recipes-devtools/rust/rust-source-1.21.0.inc
Normal file
@@ -0,0 +1,14 @@
|
||||
# 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"
|
||||
18
recipes-devtools/rust/rust-source-1.24.1.inc
Normal file
18
recipes-devtools/rust/rust-source-1.24.1.inc
Normal file
@@ -0,0 +1,18 @@
|
||||
# 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"
|
||||
@@ -1,7 +0,0 @@
|
||||
SRC_URI += "https://static.rust-lang.org/dist/rustc-${PV}-src.tar.xz;name=rust"
|
||||
SRC_URI[rust.sha256sum] = "a63305a3ad734f170746b337a5e3d07ccaa7aa8f253dc52336b44c0a3b549d7b"
|
||||
|
||||
RUSTSRC = "${WORKDIR}/rustc-${PV}-src"
|
||||
|
||||
UPSTREAM_CHECK_URI = "https://forge.rust-lang.org/infra/other-installation-methods.html"
|
||||
UPSTREAM_CHECK_REGEX = "rustc-(?P<pver>\d+(\.\d+)+)-src"
|
||||
@@ -1,7 +0,0 @@
|
||||
SRC_URI += "https://static.rust-lang.org/dist/rustc-${PV}-src.tar.xz;name=rust"
|
||||
SRC_URI[rust.sha256sum] = "e8170d318fac9d2fc17d5c3e648e7068f56e8db8d233d864aeffbef7c6542eac"
|
||||
|
||||
RUSTSRC = "${WORKDIR}/rustc-${PV}-src"
|
||||
|
||||
UPSTREAM_CHECK_URI = "https://forge.rust-lang.org/infra/other-installation-methods.html"
|
||||
UPSTREAM_CHECK_REGEX = "rustc-(?P<pver>\d+(\.\d+)+)-src"
|
||||
@@ -1,10 +0,0 @@
|
||||
require rust.inc
|
||||
|
||||
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"
|
||||
@@ -1,38 +0,0 @@
|
||||
|
||||
require rust-cross-canadian-common.inc
|
||||
|
||||
RUST_TOOLS_CLIPPY_PN = "rust-tools-clippy-cross-canadian-${TRANSLATED_TARGET_ARCH}"
|
||||
RUST_TOOLS_RUSTFMT_PN = "rust-tools-rustfmt-cross-canadian-${TRANSLATED_TARGET_ARCH}"
|
||||
RUST_TOOLS_PKGS = "${RUST_TOOLS_CLIPPY_PN} ${RUST_TOOLS_RUSTFMT_PN}"
|
||||
PN = "rust-tools-cross-canadian-${TRANSLATED_TARGET_ARCH}"
|
||||
|
||||
PACKAGES = "${RUST_TOOLS_CLIPPY_PN} ${RUST_TOOLS_RUSTFMT_PN} ${PN}"
|
||||
RDEPENDS:${PN} += "${RUST_TOOLS_PKGS}"
|
||||
|
||||
do_compile () {
|
||||
rust_runx build --stage 2 src/tools/clippy
|
||||
rust_runx build --stage 2 src/tools/rustfmt
|
||||
}
|
||||
|
||||
do_install () {
|
||||
SYS_BINDIR=$(dirname ${D}${bindir})
|
||||
|
||||
install -d "${SYS_BINDIR}"
|
||||
cp build/${SNAPSHOT_BUILD_SYS}/stage2-tools-bin/* ${SYS_BINDIR}
|
||||
for i in ${SYS_BINDIR}/*; do
|
||||
chrpath -r "\$ORIGIN/../lib" ${i}
|
||||
done
|
||||
|
||||
chown -R root.root ${D}
|
||||
}
|
||||
|
||||
ALLOW_EMPTY:${PN} = "1"
|
||||
|
||||
PKG_SYS_BINDIR = "${SDKPATHNATIVE}/usr/bin"
|
||||
FILES:${RUST_TOOLS_CLIPPY_PN} = "${PKG_SYS_BINDIR}/cargo-clippy ${PKG_SYS_BINDIR}/clippy-driver"
|
||||
FILES:${RUST_TOOLS_RUSTFMT_PN} = "${PKG_SYS_BINDIR}/rustfmt"
|
||||
|
||||
SUMMARY:${PN} = "Rust helper tools"
|
||||
SUMMARY:${RUST_TOOLS_CLIPPY_PN} = "A collection of lints to catch common mistakes and improve your Rust code"
|
||||
SUMMARY:${RUST_TOOLS_RUSTFMT_PN} = "A tool for formatting Rust code according to style guidelines"
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
require rust-tools-cross-canadian.inc
|
||||
require rust-source-${PV}.inc
|
||||
require rust-snapshot-${PV}.inc
|
||||
|
||||
FILESEXTRAPATHS:prepend := "${THISDIR}/rust:"
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
require rust-tools-cross-canadian.inc
|
||||
require rust-source-${PV}.inc
|
||||
require rust-snapshot-${PV}.inc
|
||||
|
||||
FILESEXTRAPATHS:prepend := "${THISDIR}/rust:"
|
||||
|
||||
@@ -2,32 +2,17 @@ SUMMARY = "Rust compiler and runtime libaries"
|
||||
HOMEPAGE = "http://www.rust-lang.org"
|
||||
SECTION = "devel"
|
||||
LICENSE = "MIT | Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=93a95682d51b4cb0a633a97046940ef0"
|
||||
|
||||
inherit rust
|
||||
inherit cargo_common
|
||||
|
||||
DEPENDS += "file-native python3-native"
|
||||
DEPENDS:append:class-native = " rust-llvm-native"
|
||||
|
||||
S = "${RUSTSRC}"
|
||||
DEPENDS += "file-native python-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}"
|
||||
|
||||
RUST_ALTERNATE_EXE_PATH ?= "${STAGING_LIBDIR}/llvm-rust/bin/llvm-config"
|
||||
export YOCTO_ALTERNATE_EXE_PATH = "${RUST_ALTERNATE_EXE_PATH}"
|
||||
export YOCTO_ALTERNATE_MULTILIB_NAME = "/${BASELIB}"
|
||||
|
||||
# We don't want to use bitbakes vendoring because the rust sources do their
|
||||
# own vendoring.
|
||||
CARGO_DISABLE_BITBAKE_VENDORING = "1"
|
||||
|
||||
# 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"
|
||||
setup_cargo_environment () {
|
||||
# The first step is to build bootstrap and some early stage tools,
|
||||
# these are build for the same target as the snapshot, e.g.
|
||||
@@ -35,11 +20,291 @@ setup_cargo_environment () {
|
||||
# Later stages are build for the native target (i.e. target.x86_64-linux)
|
||||
cargo_common_do_configure
|
||||
|
||||
printf '[target.%s]\n' "${SNAPSHOT_BUILD_SYS}" >> ${CARGO_HOME}/config
|
||||
printf "linker = '%s'\n" "${RUST_BUILD_CCLD}" >> ${CARGO_HOME}/config
|
||||
echo "[target.${RUST_BUILD_SYS}]" >> ${CARGO_HOME}/config
|
||||
echo "linker = '${RUST_TARGET_CCLD}'" >> ${CARGO_HOME}/config
|
||||
}
|
||||
|
||||
include rust-common.inc
|
||||
# Right now this is focused on arm-specific tune features.
|
||||
# We get away with this for now as one can only use x86-64 as the build host
|
||||
# (not arm).
|
||||
# Note that TUNE_FEATURES is _always_ refering to the target, so we really
|
||||
# don't want to use this for the host/build.
|
||||
def llvm_features_from_tune(d):
|
||||
f = []
|
||||
feat = d.getVar('TUNE_FEATURES')
|
||||
if not feat:
|
||||
return []
|
||||
feat = frozenset(feat.split())
|
||||
|
||||
if 'vfpv4' in feat:
|
||||
f.append("+vfp4")
|
||||
if 'vfpv3' in feat:
|
||||
f.append("+vfp3")
|
||||
if 'vfpv3d16' in feat:
|
||||
f.append("+d16")
|
||||
|
||||
if 'vfpv2' in feat or 'vfp' in feat:
|
||||
f.append("+vfp2")
|
||||
|
||||
if 'neon' in feat:
|
||||
f.append("+neon")
|
||||
|
||||
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")
|
||||
if 'armv6' in feat:
|
||||
f.append("+v6")
|
||||
|
||||
if 'dsp' in feat:
|
||||
f.append("+dsp")
|
||||
|
||||
if d.getVar('ARM_THUMB_OPT') is "thumb":
|
||||
if not feat.isdisjoint(v7):
|
||||
f.append("+thumb2")
|
||||
f.append("+thumb-mode")
|
||||
|
||||
if 'cortexa5' in feat:
|
||||
f.append("+a5")
|
||||
if 'cortexa7' in feat:
|
||||
f.append("+a7")
|
||||
if 'cortexa9' in feat:
|
||||
f.append("+a9")
|
||||
if 'cortexa15' in feat:
|
||||
f.append("+a15")
|
||||
if 'cortexa17' in feat:
|
||||
f.append("+a17")
|
||||
|
||||
return 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
|
||||
# stable (1.9.0?)
|
||||
def llvm_features_from_cc_arch(d):
|
||||
f = []
|
||||
feat = d.getVar('TARGET_CC_ARCH')
|
||||
if not feat:
|
||||
return []
|
||||
feat = frozenset(feat.split())
|
||||
|
||||
if '-mmmx' in feat:
|
||||
f.append("+mmx")
|
||||
if '-msse' in feat:
|
||||
f.append("+sse")
|
||||
if '-msse2' in feat:
|
||||
f.append("+sse2")
|
||||
if '-msse3' in feat:
|
||||
f.append("+sse3")
|
||||
if '-mssse3' in feat:
|
||||
f.append("+ssse3")
|
||||
if '-msse4.1' in feat:
|
||||
f.append("+sse4.1")
|
||||
if '-msse4.2' in feat:
|
||||
f.append("+sse4.2")
|
||||
if '-msse4a' in feat:
|
||||
f.append("+sse4a")
|
||||
if '-mavx' in feat:
|
||||
f.append("+avx")
|
||||
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))
|
||||
|
||||
## 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"
|
||||
|
||||
## aarch64-unknown-linux-gnu
|
||||
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
|
||||
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
|
||||
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
|
||||
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))
|
||||
|
||||
def sys_for(d, thing):
|
||||
return d.getVar('{}_SYS'.format(thing))
|
||||
|
||||
def prefix_for(d, thing):
|
||||
return d.getVar('{}_PREFIX'.format(thing))
|
||||
|
||||
# Convert a normal arch (HOST_ARCH, TARGET_ARCH, BUILD_ARCH, etc) to something
|
||||
# rust's internals won't choke on.
|
||||
def arch_to_rust_target_arch(arch):
|
||||
if arch == "i586" or arch == "i686":
|
||||
return "x86"
|
||||
elif arch == "mipsel":
|
||||
return "mips"
|
||||
else:
|
||||
return arch
|
||||
|
||||
# generates our target CPU value
|
||||
def llvm_cpu(d):
|
||||
cpu = d.getVar('PACKAGE_ARCH')
|
||||
target = d.getVar('TRANSLATED_TARGET_ARCH')
|
||||
|
||||
trans = {}
|
||||
trans['corei7-64'] = "corei7"
|
||||
trans['core2-32'] = "core2"
|
||||
trans['x86-64'] = "x86-64"
|
||||
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)}"
|
||||
|
||||
# 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))}"
|
||||
|
||||
def rust_gen_target(d, thing, wd):
|
||||
import json
|
||||
from distutils.version import LooseVersion
|
||||
arch = arch_for(d, thing)
|
||||
sys = sys_for(d, thing)
|
||||
prefix = prefix_for(d, thing)
|
||||
|
||||
features = ""
|
||||
cpu = "generic"
|
||||
if thing is "TARGET":
|
||||
features = d.getVar('TARGET_LLVM_FEATURES') or ""
|
||||
cpu = d.getVar('TARGET_LLVM_CPU')
|
||||
features = features or d.getVarFlag('FEATURES', arch) or ""
|
||||
features = features.strip()
|
||||
|
||||
# build tspec
|
||||
tspec = {}
|
||||
tspec['llvm-target'] = d.getVarFlag('LLVM_TARGET', arch)
|
||||
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"
|
||||
tspec['env'] = "gnu"
|
||||
tspec['vendor'] = "unknown"
|
||||
tspec['target-family'] = "unix"
|
||||
tspec['linker'] = "{}{}gcc".format(d.getVar('CCACHE'), prefix)
|
||||
tspec['ar'] = "{}ar".format(prefix)
|
||||
tspec['cpu'] = cpu
|
||||
if features is not "":
|
||||
tspec['features'] = features
|
||||
tspec['dynamic-linking'] = True
|
||||
tspec['executables'] = True
|
||||
tspec['linker-is-gnu'] = True
|
||||
tspec['linker-flavor'] = "gcc"
|
||||
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
|
||||
# From 1.20.0 and forward, system allocator is the default.
|
||||
if LooseVersion(d.getVar("PV")) < LooseVersion("1.20.0"):
|
||||
tspec['exe-allocation-crate'] = "alloc_system"
|
||||
tspec['lib-allocation-crate'] = "alloc_system"
|
||||
|
||||
# write out the target spec json file
|
||||
with open(wd + sys + '.json', 'w') as f:
|
||||
json.dump(tspec, f, indent=4)
|
||||
|
||||
|
||||
python do_rust_gen_targets () {
|
||||
wd = d.getVar('WORKDIR') + '/targets/'
|
||||
# It is important 'TARGET' is last here so that it overrides our less
|
||||
# informed choices for BUILD & HOST if TARGET happens to be the same as
|
||||
# either of them.
|
||||
for thing in ['BUILD', 'HOST', 'TARGET']:
|
||||
bb.debug(1, "rust_gen_target for " + thing)
|
||||
rust_gen_target(d, thing, wd)
|
||||
}
|
||||
addtask rust_gen_targets after do_patch before do_compile
|
||||
do_rust_gen_targets[dirs] += "${WORKDIR}/targets"
|
||||
|
||||
|
||||
do_rust_setup_snapshot () {
|
||||
for installer in "${WORKDIR}/rust-snapshot-components/"*"/install.sh"; do
|
||||
@@ -50,18 +315,10 @@ do_rust_setup_snapshot () {
|
||||
# and fail without it there.
|
||||
mkdir -p ${RUSTSRC}/build/${BUILD_SYS}
|
||||
ln -sf ${WORKDIR}/rust-snapshot/ ${RUSTSRC}/build/${BUILD_SYS}/stage0
|
||||
|
||||
# Need to use uninative's loader if enabled/present since the library paths
|
||||
# are used internally by rust and result in symbol mismatches if we don't
|
||||
if [ ! -z "${UNINATIVE_LOADER}" -a -e "${UNINATIVE_LOADER}" ]; then
|
||||
for bin in cargo rustc rustdoc; do
|
||||
patchelf-uninative ${WORKDIR}/rust-snapshot/bin/$bin --set-interpreter ${UNINATIVE_LOADER}
|
||||
done
|
||||
fi
|
||||
}
|
||||
addtask rust_setup_snapshot after do_unpack before do_configure
|
||||
do_rust_setup_snapshot[dirs] += "${WORKDIR}/rust-snapshot"
|
||||
do_rust_setup_snapshot[vardepsexclude] += "UNINATIVE_LOADER"
|
||||
|
||||
|
||||
python do_configure() {
|
||||
import json
|
||||
@@ -82,27 +339,21 @@ python do_configure() {
|
||||
target_section = "target.{}".format(d.getVar('TARGET_SYS', True))
|
||||
config.add_section(target_section)
|
||||
|
||||
llvm_config = d.expand("${YOCTO_ALTERNATE_EXE_PATH}")
|
||||
llvm_config = d.expand("${STAGING_DIR_NATIVE}${bindir_native}/llvm-config")
|
||||
config.set(target_section, "llvm-config", e(llvm_config))
|
||||
|
||||
config.set(target_section, "cxx", e(d.expand("${RUST_TARGET_CXX}")))
|
||||
config.set(target_section, "cc", e(d.expand("${RUST_TARGET_CC}")))
|
||||
|
||||
# If we don't do this rust-native will compile it's own llvm for BUILD.
|
||||
# [target.${BUILD_ARCH}-unknown-linux-gnu]
|
||||
target_section = "target.{}".format(d.getVar('SNAPSHOT_BUILD_SYS', True))
|
||||
config.add_section(target_section)
|
||||
|
||||
config.set(target_section, "llvm-config", e(llvm_config))
|
||||
|
||||
config.set(target_section, "cxx", e(d.expand("${RUST_BUILD_CXX}")))
|
||||
config.set(target_section, "cc", e(d.expand("${RUST_BUILD_CC}")))
|
||||
|
||||
# [rust]
|
||||
config.add_section("rust")
|
||||
config.set("rust", "rpath", e(True))
|
||||
config.set("rust", "channel", e("stable"))
|
||||
|
||||
# Don't use jemalloc as it doesn't work for many targets.
|
||||
# https://github.com/rust-lang/rust/pull/37392
|
||||
config.set("rust", "use-jemalloc", e(False))
|
||||
|
||||
# Whether or not to optimize the compiler and standard library
|
||||
config.set("rust", "optimize", e(True))
|
||||
|
||||
@@ -114,39 +365,18 @@ python do_configure() {
|
||||
rustc = d.expand("${WORKDIR}/rust-snapshot/bin/rustc")
|
||||
config.set("build", "rustc", e(rustc))
|
||||
|
||||
# Support for the profiler runtime to generate e.g. coverage report,
|
||||
# PGO etc.
|
||||
config.set("build", "profiler", e(True))
|
||||
|
||||
cargo = d.expand("${WORKDIR}/rust-snapshot/bin/cargo")
|
||||
config.set("build", "cargo", e(cargo))
|
||||
|
||||
config.set("build", "vendor", e(True))
|
||||
|
||||
if not "targets" in locals():
|
||||
targets = [d.getVar("TARGET_SYS", True)]
|
||||
targets = [d.getVar("TARGET_SYS", True)]
|
||||
config.set("build", "target", e(targets))
|
||||
|
||||
if not "hosts" in locals():
|
||||
hosts = [d.getVar("HOST_SYS", True)]
|
||||
config.set("build", "host", e(hosts))
|
||||
hosts = [d.getVar("HOST_SYS", True)]
|
||||
config.set("build", "host", e(targets))
|
||||
|
||||
# We can't use BUILD_SYS since that is something the rust snapshot knows
|
||||
# nothing about when trying to build some stage0 tools (like fabricate)
|
||||
config.set("build", "build", e(d.getVar("SNAPSHOT_BUILD_SYS", True)))
|
||||
|
||||
# [install]
|
||||
config.add_section("install")
|
||||
# ./x.py install doesn't have any notion of "destdir"
|
||||
# but we can prepend ${D} to all the directories instead
|
||||
config.set("install", "prefix", e(d.getVar("D", True) + d.getVar("prefix", True)))
|
||||
config.set("install", "bindir", e(d.getVar("D", True) + d.getVar("bindir", True)))
|
||||
config.set("install", "libdir", e(d.getVar("D", True) + d.getVar("libdir", True)))
|
||||
config.set("install", "datadir", e(d.getVar("D", True) + d.getVar("datadir", True)))
|
||||
config.set("install", "mandir", e(d.getVar("D", True) + d.getVar("mandir", True)))
|
||||
config.set("build", "build", e(d.getVar("BUILD_SYS", True)))
|
||||
|
||||
with open("config.toml", "w") as f:
|
||||
f.write('changelog-seen = 2\n\n')
|
||||
config.write(f)
|
||||
|
||||
# set up ${WORKDIR}/cargo_home
|
||||
@@ -167,36 +397,42 @@ rust_runx () {
|
||||
|
||||
oe_cargo_fix_env
|
||||
|
||||
python3 src/bootstrap/bootstrap.py ${@oe.utils.parallel_make_argument(d, '-j %d')} "$@" --verbose
|
||||
python src/bootstrap/bootstrap.py "$@" --verbose
|
||||
}
|
||||
rust_runx[vardepsexclude] += "PARALLEL_MAKE"
|
||||
|
||||
|
||||
do_compile () {
|
||||
rust_runx build
|
||||
}
|
||||
|
||||
rust_do_install () {
|
||||
mkdir -p ${D}${bindir}
|
||||
cp build/${HOST_SYS}/stage2/bin/* ${D}${bindir}
|
||||
|
||||
mkdir -p ${D}${libdir}/rustlib
|
||||
cp -pRd build/${HOST_SYS}/stage2/lib/* ${D}${libdir}
|
||||
# Remove absolute symlink so bitbake doesn't complain
|
||||
rm -f ${D}${libdir}/rustlib/src/rust
|
||||
}
|
||||
rust_do_dist_install () {
|
||||
rust_runx dist
|
||||
|
||||
for installer in "build/tmp/dist/rustc"*"/install.sh"; do
|
||||
"${installer}" --destdir="${D}" --prefix="${prefix}" --disable-ldconfig
|
||||
done
|
||||
|
||||
for installer in "build/tmp/dist/rust-std"*"/install.sh"; do
|
||||
"${installer}" --destdir="${D}" --prefix="${prefix}" --disable-ldconfig
|
||||
done
|
||||
|
||||
rust_install_targets() {
|
||||
# Install our custom target.json files
|
||||
local td="${D}${libdir}/rustlib/"
|
||||
install -d "$td"
|
||||
for tgt in "${WORKDIR}/targets/"* ; do
|
||||
install -m 0644 "$tgt" "$td"
|
||||
done
|
||||
|
||||
# cleanup after rust-installer since we don't need these bits
|
||||
rm ${D}/${libdir}/rustlib/install.log
|
||||
rm ${D}/${libdir}/rustlib/rust-installer-version
|
||||
rm ${D}/${libdir}/rustlib/uninstall.sh
|
||||
rm ${D}/${libdir}/rustlib/components
|
||||
}
|
||||
|
||||
|
||||
do_install () {
|
||||
rust_do_install
|
||||
rust_install_targets
|
||||
rust_do_dist_install
|
||||
}
|
||||
# ex: sts=4 et sw=4 ts=8
|
||||
|
||||
143
recipes-devtools/rust/rust_1.20.0.bb
Normal file
143
recipes-devtools/rust/rust_1.20.0.bb
Normal file
@@ -0,0 +1,143 @@
|
||||
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/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/atty/0.2.2 \
|
||||
crate://crates.io/backtrace-sys/0.1.11 \
|
||||
crate://crates.io/backtrace/0.3.2 \
|
||||
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.25.0 \
|
||||
crate://crates.io/cmake/0.1.24 \
|
||||
crate://crates.io/crossbeam/0.2.10 \
|
||||
crate://crates.io/curl-sys/0.3.14 \
|
||||
crate://crates.io/curl/0.4.7 \
|
||||
crate://crates.io/dbghelp-sys/0.2.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/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/foreign-types/0.2.0 \
|
||||
crate://crates.io/fs2/0.4.2 \
|
||||
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/hamcrest/0.1.1 \
|
||||
crate://crates.io/handlebars/0.26.2 \
|
||||
crate://crates.io/hex/0.2.0 \
|
||||
crate://crates.io/idna/0.1.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.26 \
|
||||
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.7 \
|
||||
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.29 \
|
||||
crate://crates.io/num-bigint/0.1.39 \
|
||||
crate://crates.io/num-complex/0.1.38 \
|
||||
crate://crates.io/num-integer/0.1.34 \
|
||||
crate://crates.io/num-iter/0.1.33 \
|
||||
crate://crates.io/num-rational/0.1.38 \
|
||||
crate://crates.io/num-traits/0.1.39 \
|
||||
crate://crates.io/num/0.1.39 \
|
||||
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.15 \
|
||||
crate://crates.io/openssl/0.9.15 \
|
||||
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.3.15 \
|
||||
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-data/0.7.0 \
|
||||
crate://crates.io/rls-span/0.4.0 \
|
||||
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/semver-parser/0.7.0 \
|
||||
crate://crates.io/semver/0.7.0 \
|
||||
crate://crates.io/serde/1.0.10 \
|
||||
crate://crates.io/serde_derive/1.0.10 \
|
||||
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/stable_deref_trait/1.0.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/tar/0.4.13 \
|
||||
crate://crates.io/tempdir/0.3.5 \
|
||||
crate://crates.io/term_size/0.3.0 \
|
||||
crate://crates.io/termcolor/0.3.2 \
|
||||
crate://crates.io/textwrap/0.6.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.1.30 \
|
||||
crate://crates.io/toml/0.4.2 \
|
||||
crate://crates.io/unicode-bidi/0.3.4 \
|
||||
crate://crates.io/unicode-normalization/0.1.5 \
|
||||
crate://crates.io/unicode-segmentation/1.1.0 \
|
||||
crate://crates.io/unicode-width/0.1.4 \
|
||||
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/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"
|
||||
177
recipes-devtools/rust/rust_1.21.0.bb
Normal file
177
recipes-devtools/rust/rust_1.21.0.bb
Normal file
@@ -0,0 +1,177 @@
|
||||
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"
|
||||
241
recipes-devtools/rust/rust_1.24.1.bb
Normal file
241
recipes-devtools/rust/rust_1.24.1.bb
Normal file
@@ -0,0 +1,241 @@
|
||||
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"
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user