Compare commits
265 Commits
add-debug-
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
458ab61bef | ||
|
|
681204147c | ||
|
|
59c4377bdb | ||
|
|
f1c1a586cd | ||
|
|
52dbb6731b | ||
|
|
b67791b753 | ||
|
|
24c3e2016d | ||
|
|
c92db6c0a0 | ||
|
|
c654f5cb92 | ||
|
|
297dbb9d1a | ||
|
|
d0044639fe | ||
|
|
4bde33e1fc | ||
|
|
af6d045ac3 | ||
|
|
d4384db8c3 | ||
|
|
448047c7e4 | ||
|
|
bf6705fb7f | ||
|
|
1b59fd4590 | ||
|
|
09605d2ea5 | ||
|
|
ab86e0a068 | ||
|
|
494d879a1d | ||
|
|
b4877e0be0 | ||
|
|
3773dbcebd | ||
|
|
02db606a96 | ||
|
|
25ee517ae2 | ||
|
|
031fc5406e | ||
|
|
920db7b045 | ||
|
|
0048ea8253 | ||
|
|
e0180c565e | ||
|
|
b637307219 | ||
|
|
742cd5c095 | ||
|
|
53cbdb566d | ||
|
|
2a9ee78d08 | ||
|
|
3638b7da88 | ||
|
|
08c385c922 | ||
|
|
2c89770123 | ||
|
|
d9e32f6288 | ||
|
|
250230e292 | ||
|
|
c06069fdaa | ||
|
|
e492b2d86f | ||
|
|
2932b399a5 | ||
|
|
ae08e553b8 | ||
|
|
439dea8664 | ||
|
|
a4302679bb | ||
|
|
64c625f119 | ||
|
|
191cd91817 | ||
|
|
da00d57cda | ||
|
|
57a202ac53 | ||
|
|
51eba75155 | ||
|
|
33904e6514 | ||
|
|
0fffd992ee | ||
|
|
7a8876558b | ||
|
|
cb5a599f02 | ||
|
|
9a035fe272 | ||
|
|
013b210033 | ||
|
|
3f3aa9a6bb | ||
|
|
f31b044c53 | ||
|
|
30dcb2d61f | ||
|
|
6f399bbd90 | ||
|
|
81f9357b58 | ||
|
|
7a261d5d14 | ||
|
|
81a4d79c06 | ||
|
|
f8b9103477 | ||
|
|
83ad3d415f | ||
|
|
38a017d9de | ||
|
|
4434790fc2 | ||
|
|
c1e1921e03 | ||
|
|
029f1ea6a6 | ||
|
|
9937659804 | ||
|
|
920328c8d8 | ||
|
|
4e96013677 | ||
|
|
341a3c77bb | ||
|
|
d59c590245 | ||
|
|
87e8d50abd | ||
|
|
53c9aabda3 | ||
|
|
b53374d793 | ||
|
|
7feed5d36c | ||
|
|
1b944013b8 | ||
|
|
81d4b4c820 | ||
|
|
26609f46d9 | ||
|
|
71538c8762 | ||
|
|
c976184935 | ||
|
|
d15e66ae93 | ||
|
|
2c34da11f0 | ||
|
|
dd7aa2e952 | ||
|
|
0025cebb12 | ||
|
|
3ab7542844 | ||
|
|
b163a89399 | ||
|
|
0ee328aa26 | ||
|
|
c90c9b071a | ||
|
|
3e73030c51 | ||
|
|
9c0a1059be | ||
|
|
a31a4070d3 | ||
|
|
1d64f9075a | ||
|
|
433b7214ad | ||
|
|
80c30c3017 | ||
|
|
1cb40bd3c2 | ||
|
|
805503686f | ||
|
|
a6c629733c | ||
|
|
1c18023894 | ||
|
|
d5ab20d23b | ||
|
|
b7eacc0996 | ||
|
|
1936904ad3 | ||
|
|
5dda6c427a | ||
|
|
c72b2dda3a | ||
|
|
47de35e153 | ||
|
|
e2979482dc | ||
|
|
a679b6f4c2 | ||
|
|
8da0936aa8 | ||
|
|
a59ddd90d2 | ||
|
|
fa5cdb0de4 | ||
|
|
e5ee880894 | ||
|
|
a673320995 | ||
|
|
2a4bb8966a | ||
|
|
cb4f8294d4 | ||
|
|
7ff669d8ce | ||
|
|
25a20987fb | ||
|
|
4b151fa804 | ||
|
|
8cfc3c9826 | ||
|
|
aec6519e23 | ||
|
|
f56fd4ec68 | ||
|
|
7afffa083c | ||
|
|
53bfa32489 | ||
|
|
2822b50c04 | ||
|
|
2e085dda43 | ||
|
|
8a44baed44 | ||
|
|
318fb46863 | ||
|
|
b7f9c1d0d7 | ||
|
|
7f235b6f89 | ||
|
|
647b976da2 | ||
|
|
d2ff87ca55 | ||
|
|
8d3f79f217 | ||
|
|
be88d857a6 | ||
|
|
2c7321dac6 | ||
|
|
b84c61eb85 | ||
|
|
dd0fc89389 | ||
|
|
afcb58e5b9 | ||
|
|
40a6bd8a8d | ||
|
|
c023edd985 | ||
|
|
6ed6a09a99 | ||
|
|
3b783652cc | ||
|
|
a012a1027d | ||
|
|
8ef8b39681 | ||
|
|
646fecee8a | ||
|
|
e4d25b9808 | ||
|
|
1a3625364c | ||
|
|
ea97549161 | ||
|
|
d0dc19aa78 | ||
|
|
4a763a2301 | ||
|
|
5c7f51b6ad | ||
|
|
d8d77be129 | ||
|
|
dbf68d40b3 | ||
|
|
a754e6c5d6 | ||
|
|
837b63596d | ||
|
|
2668f6afd3 | ||
|
|
e5c2a4085f | ||
|
|
72aa4ef3ab | ||
|
|
0f950f5e33 | ||
|
|
10fb698a79 | ||
|
|
186ec59085 | ||
|
|
71895ec5a4 | ||
|
|
5cda04c7c2 | ||
|
|
5d1ada0c97 | ||
|
|
11aed43748 | ||
|
|
1cb2ad5543 | ||
|
|
0b5ea8beb0 | ||
|
|
412987892c | ||
|
|
afccedc43c | ||
|
|
150b1591d6 | ||
|
|
2c4a666b68 | ||
|
|
c5ff05d1e9 | ||
|
|
2f323e1e9e | ||
|
|
9487b089ea | ||
|
|
bcbe02f6ac | ||
|
|
2afc6ecef2 | ||
|
|
4ca5b781dc | ||
|
|
164bc5f20a | ||
|
|
03f492ab35 | ||
|
|
84710b341b | ||
|
|
4a88247046 | ||
|
|
0d03c206c3 | ||
|
|
9a077b21d0 | ||
|
|
0621067c56 | ||
|
|
723e24bd9d | ||
|
|
f2f17c58b0 | ||
|
|
68046d42b8 | ||
|
|
f4517aaba8 | ||
|
|
fa0aebc070 | ||
|
|
b3d1b589ee | ||
|
|
cb383b0d90 | ||
|
|
9952633163 | ||
|
|
d537c62b4e | ||
|
|
16d015a481 | ||
|
|
8b7d6201b6 | ||
|
|
e7c10de555 | ||
|
|
e357f4e5d5 | ||
|
|
9ecc36acb5 | ||
|
|
4110f1d92a | ||
|
|
496b75fa1f | ||
|
|
e4fdc0e8f7 | ||
|
|
bf01840f5b | ||
|
|
1b00814593 | ||
|
|
68d6bce609 | ||
|
|
969467c029 | ||
|
|
665213a13d | ||
|
|
4c9068bd09 | ||
|
|
3b9251e732 | ||
|
|
ea613e2ae2 | ||
|
|
e660179c55 | ||
|
|
318a4c6f25 | ||
|
|
c7fc7986c2 | ||
|
|
50828f8af2 | ||
|
|
adf3f10036 | ||
|
|
446d28d6e1 | ||
|
|
b15ba05ea8 | ||
|
|
f54025fed9 | ||
|
|
f317737fae | ||
|
|
e04d99bf38 | ||
|
|
6b060617cd | ||
|
|
99ec7396f6 | ||
|
|
f81fbebaeb | ||
|
|
5a9933dd46 | ||
|
|
badf251873 | ||
|
|
060e033df9 | ||
|
|
6d3f61e5ce | ||
|
|
bbf4f77f98 | ||
|
|
b7380307d0 | ||
|
|
8b471a1bdc | ||
|
|
b82e450b5a | ||
|
|
cef09a5551 | ||
|
|
6052c90ca8 | ||
|
|
8e6c6271fc | ||
|
|
6066f1d2df | ||
|
|
d3bdd55c03 | ||
|
|
6a0d148968 | ||
|
|
e1fa6d39ce | ||
|
|
de42179513 | ||
|
|
9b1b4db8b0 | ||
|
|
03d8fb472c | ||
|
|
b117a311ef | ||
|
|
55e9c18a37 | ||
|
|
7cfa3db4f6 | ||
|
|
63aa6db53a | ||
|
|
48e2a7db25 | ||
|
|
ab62d9cdbf | ||
|
|
22d72b3be6 | ||
|
|
575016d11d | ||
|
|
8203dce091 | ||
|
|
0639277e4c | ||
|
|
5a9c23fac4 | ||
|
|
69ae1df12e | ||
|
|
17cc34c9c8 | ||
|
|
a19993c804 | ||
|
|
03c0338cab | ||
|
|
52ea673a8f | ||
|
|
4c7cbf6a60 | ||
|
|
8f46fe3e97 | ||
|
|
c65375f14f | ||
|
|
f02df59eea | ||
|
|
141177fbf9 | ||
|
|
fa4f4f9c1a | ||
|
|
7f7156b664 | ||
|
|
af5491692e | ||
|
|
e5230147f6 | ||
|
|
528a34206b | ||
|
|
434f7851f5 |
33
.github/workflows/main.yml
vendored
Normal file
33
.github/workflows/main.yml
vendored
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
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
|
||||||
2
Jenkinsfile
vendored
2
Jenkinsfile
vendored
@@ -1,4 +1,4 @@
|
|||||||
def targets = [ 'qemux86', 'qemux86-64', 'qemuarm', 'qemuarm64' ]
|
def targets = [ 'qemux86', 'qemux86-64', 'qemuarm', 'qemuarm64', 'qemumips' ]
|
||||||
|
|
||||||
def machine_builds = [:]
|
def machine_builds = [:]
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ This OpenEmbedded layer provides the rust compiler, tools for building packages
|
|||||||
## What doesn't:
|
## What doesn't:
|
||||||
|
|
||||||
- Using anything but x86_64 as the build environment
|
- Using anything but x86_64 as the build environment
|
||||||
- rust (built for target) issue #81
|
- rust (built for target) [issue #81](https://github.com/meta-rust/meta-rust/issues/81)
|
||||||
|
|
||||||
## What's untested:
|
## 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.
|
get the code building in cargo first.
|
||||||
|
|
||||||
Once your package builds in cargo, you can use
|
Once your package builds in cargo, you can use
|
||||||
[cargo-bitbake](https://github.com/cardoe/cargo-bitbake) to generate a bitbake
|
[cargo-bitbake](https://github.com/meta-rust/cargo-bitbake) to generate a bitbake
|
||||||
recipe for it. This allows bitbake to fetch all the necessary dependent
|
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
|
crates, as well as a pegged version of the crates.io index, to ensure maximum
|
||||||
reproducibility.
|
reproducibility.
|
||||||
@@ -39,7 +39,7 @@ contained within it
|
|||||||
|
|
||||||
## Pitfalls
|
## 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.
|
- 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).
|
||||||
|
|
||||||
## Dependencies
|
## 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
|
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
|
upstream issues or PRs opened or an explanation why the patch cannot be
|
||||||
upstreamed. This cooresponds to the OpenEmbedded policy for other meta layers.
|
upstreamed. This corresponds to the OpenEmbedded policy for other meta layers.
|
||||||
|
|
||||||
More info can be seen on the wiki.
|
More info can be seen on the wiki.
|
||||||
|
|
||||||
|
|||||||
@@ -9,25 +9,34 @@ inherit cargo_common
|
|||||||
CARGO = "cargo"
|
CARGO = "cargo"
|
||||||
|
|
||||||
# We need cargo to compile for the target
|
# We need cargo to compile for the target
|
||||||
BASEDEPENDS_append = " cargo-native"
|
BASEDEPENDS:append = " cargo-native"
|
||||||
|
|
||||||
# Ensure we get the right rust variant
|
# Ensure we get the right rust variant
|
||||||
DEPENDS_append_class-target = " virtual/${TARGET_PREFIX}rust ${RUSTLIB_DEP}"
|
DEPENDS:append:class-target = " virtual/${TARGET_PREFIX}rust ${RUSTLIB_DEP}"
|
||||||
DEPENDS_append_class-native = " rust-native"
|
DEPENDS:append:class-native = " rust-native"
|
||||||
|
|
||||||
# Cargo only supports in-tree builds at the moment
|
# Enable build separation
|
||||||
B = "${S}"
|
B = "${WORKDIR}/build"
|
||||||
|
|
||||||
# In case something fails in the build process, give a bit more feedback on
|
# In case something fails in the build process, give a bit more feedback on
|
||||||
# where the issue occured
|
# where the issue occured
|
||||||
export RUST_BACKTRACE = "1"
|
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 ??= ""
|
RUSTFLAGS ??= ""
|
||||||
CARGO_BUILD_FLAGS = "-v --target ${HOST_SYS} --release"
|
BUILD_MODE = "${@['--release', ''][d.getVar('DEBUG_BUILD') == '1']}"
|
||||||
|
CARGO_BUILD_FLAGS = "-v --target ${HOST_SYS} ${BUILD_MODE} --manifest-path=${MANIFEST_PATH}"
|
||||||
|
|
||||||
# This is based on the content of CARGO_BUILD_FLAGS and generally will need to
|
# This is based on the content of CARGO_BUILD_FLAGS and generally will need to
|
||||||
# change if CARGO_BUILD_FLAGS changes.
|
# change if CARGO_BUILD_FLAGS changes.
|
||||||
CARGO_TARGET_SUBDIR="${HOST_SYS}/release"
|
BUILD_DIR = "${@['release', 'debug'][d.getVar('DEBUG_BUILD') == '1']}"
|
||||||
|
CARGO_TARGET_SUBDIR="${HOST_SYS}/${BUILD_DIR}"
|
||||||
oe_cargo_build () {
|
oe_cargo_build () {
|
||||||
export RUSTFLAGS="${RUSTFLAGS}"
|
export RUSTFLAGS="${RUSTFLAGS}"
|
||||||
export RUST_TARGET_PATH="${RUST_TARGET_PATH}"
|
export RUST_TARGET_PATH="${RUST_TARGET_PATH}"
|
||||||
@@ -37,6 +46,7 @@ oe_cargo_build () {
|
|||||||
"${CARGO}" build ${CARGO_BUILD_FLAGS} "$@"
|
"${CARGO}" build ${CARGO_BUILD_FLAGS} "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
do_compile[progress] = "outof:\s+(\d+)/(\d+)"
|
||||||
cargo_do_compile () {
|
cargo_do_compile () {
|
||||||
oe_cargo_fix_env
|
oe_cargo_fix_env
|
||||||
oe_cargo_build
|
oe_cargo_build
|
||||||
@@ -51,6 +61,17 @@ cargo_do_install () {
|
|||||||
install -m755 "$tgt" "${D}${rustlibdir}"
|
install -m755 "$tgt" "${D}${rustlibdir}"
|
||||||
have_installed=true
|
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
|
if [ -f "$tgt" ] && [ -x "$tgt" ]; then
|
||||||
install -d "${D}${bindir}"
|
install -d "${D}${bindir}"
|
||||||
|
|||||||
@@ -20,31 +20,90 @@ export CARGO_HOME = "${WORKDIR}/cargo_home"
|
|||||||
# for cross compilation, so tell it we know better than it.
|
# for cross compilation, so tell it we know better than it.
|
||||||
export PKG_CONFIG_ALLOW_CROSS = "1"
|
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 () {
|
cargo_common_do_configure () {
|
||||||
mkdir -p ${CARGO_HOME}
|
mkdir -p ${CARGO_HOME}/bitbake
|
||||||
echo "paths = [" > ${CARGO_HOME}/config
|
|
||||||
|
|
||||||
for p in ${EXTRA_OECARGO_PATHS}; do
|
cat <<- EOF > ${CARGO_HOME}/config
|
||||||
printf "\"%s\"\n" "$p"
|
# EXTRA_OECARGO_PATHS
|
||||||
done | sed -e 's/$/,/' >> ${CARGO_HOME}/config
|
paths = [
|
||||||
echo "]" >> ${CARGO_HOME}/config
|
$(for p in ${EXTRA_OECARGO_PATHS}; do echo \"$p\",; done)
|
||||||
|
]
|
||||||
# Point cargo at our local mirror of the registry
|
|
||||||
cat <<- EOF >> ${CARGO_HOME}/config
|
|
||||||
[source.bitbake]
|
|
||||||
directory = "${CARGO_HOME}/bitbake"
|
|
||||||
|
|
||||||
[source.crates-io]
|
|
||||||
replace-with = "bitbake"
|
|
||||||
local-registry = "/nonexistant"
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
echo "[target.${HOST_SYS}]" >> ${CARGO_HOME}/config
|
cat <<- EOF >> ${CARGO_HOME}/config
|
||||||
echo "linker = '${RUST_TARGET_CCLD}'" >> ${CARGO_HOME}/config
|
|
||||||
if [ "${HOST_SYS}" != "${BUILD_SYS}" ]; then
|
# Local mirror vendored by bitbake
|
||||||
echo "[target.${BUILD_SYS}]" >> ${CARGO_HOME}/config
|
[source.bitbake]
|
||||||
echo "linker = '${RUST_BUILD_CCLD}'" >> ${CARGO_HOME}/config
|
directory = "${CARGO_VENDORING_DIRECTORY}"
|
||||||
|
EOF
|
||||||
|
|
||||||
|
if [ -z "${EXTERNALSRC}" ] && [ ${CARGO_DISABLE_BITBAKE_VENDORING} = "0" ]; then
|
||||||
|
cat <<- EOF >> ${CARGO_HOME}/config
|
||||||
|
|
||||||
|
[source.crates-io]
|
||||||
|
replace-with = "bitbake"
|
||||||
|
local-registry = "/nonexistant"
|
||||||
|
EOF
|
||||||
fi
|
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
|
||||||
|
|
||||||
|
if [ "${HOST_SYS}" != "${BUILD_SYS}" ]; then
|
||||||
|
cat <<- EOF >> ${CARGO_HOME}/config
|
||||||
|
|
||||||
|
# BUILD_SYS
|
||||||
|
[target.${BUILD_SYS}]
|
||||||
|
linker = "${RUST_BUILD_CCLD}"
|
||||||
|
EOF
|
||||||
|
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 () {
|
oe_cargo_fix_env () {
|
||||||
@@ -56,7 +115,7 @@ oe_cargo_fix_env () {
|
|||||||
export TARGET_CC="${RUST_TARGET_CC}"
|
export TARGET_CC="${RUST_TARGET_CC}"
|
||||||
export TARGET_CXX="${RUST_TARGET_CXX}"
|
export TARGET_CXX="${RUST_TARGET_CXX}"
|
||||||
export TARGET_CFLAGS="${CFLAGS}"
|
export TARGET_CFLAGS="${CFLAGS}"
|
||||||
export TARGET_CFLAGS="${CXXFLAGS}"
|
export TARGET_CXXFLAGS="${CXXFLAGS}"
|
||||||
export TARGET_AR="${AR}"
|
export TARGET_AR="${AR}"
|
||||||
export HOST_CC="${RUST_BUILD_CC}"
|
export HOST_CC="${RUST_BUILD_CC}"
|
||||||
export HOST_CXX="${RUST_BUILD_CXX}"
|
export HOST_CXX="${RUST_BUILD_CXX}"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
inherit rust
|
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}"
|
RUSTC_ARCHFLAGS += "-C opt-level=3 -g -L ${STAGING_DIR_HOST}/${rustlibdir} -C linker=${RUST_TARGET_CCLD}"
|
||||||
EXTRA_OEMAKE += 'RUSTC_ARCHFLAGS="${RUSTC_ARCHFLAGS}"'
|
EXTRA_OEMAKE += 'RUSTC_ARCHFLAGS="${RUSTC_ARCHFLAGS}"'
|
||||||
|
|||||||
@@ -1,16 +1,55 @@
|
|||||||
# Common variables used by all Rust builds
|
# Common variables used by all Rust builds
|
||||||
export rustlibdir = "${libdir}/rust"
|
export rustlibdir = "${libdir}/rust"
|
||||||
FILES_${PN} += "${rustlibdir}/*.so"
|
FILES:${PN} += "${rustlibdir}/*.so"
|
||||||
FILES_${PN}-dev += "${rustlibdir}/*.rlib"
|
FILES:${PN}-dev += "${rustlibdir}/*.rlib ${rustlibdir}/*.rmeta"
|
||||||
FILES_${PN}-dbg += "${rustlibdir}/.debug"
|
FILES:${PN}-dbg += "${rustlibdir}/.debug"
|
||||||
|
|
||||||
RUSTLIB = "-L ${STAGING_LIBDIR}/rust"
|
RUSTLIB = "-L ${STAGING_LIBDIR}/rust"
|
||||||
RUSTFLAGS += "${RUSTLIB}"
|
RUST_DEBUG_REMAP = "--remap-path-prefix=${WORKDIR}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}"
|
||||||
|
RUSTFLAGS += "${RUSTLIB} ${RUST_DEBUG_REMAP}"
|
||||||
RUSTLIB_DEP ?= "libstd-rs"
|
RUSTLIB_DEP ?= "libstd-rs"
|
||||||
RUST_TARGET_PATH = "${STAGING_LIBDIR_NATIVE}/rustlib"
|
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
|
# Responsible for taking Yocto triples and converting it to Rust triples
|
||||||
|
|
||||||
def rust_base_triple(d, thing):
|
def rust_base_triple(d, thing):
|
||||||
'''
|
'''
|
||||||
Mangle bitbake's *_SYS into something that rust might support (see
|
Mangle bitbake's *_SYS into something that rust might support (see
|
||||||
@@ -19,11 +58,16 @@ def rust_base_triple(d, thing):
|
|||||||
Note that os is assumed to be some linux form
|
Note that os is assumed to be some linux form
|
||||||
'''
|
'''
|
||||||
|
|
||||||
arch = d.getVar('{}_ARCH'.format(thing))
|
# 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))
|
||||||
|
|
||||||
# All the Yocto targets are Linux and are 'unknown'
|
# All the Yocto targets are Linux and are 'unknown'
|
||||||
vendor = "-unknown"
|
vendor = "-unknown"
|
||||||
os = d.getVar('{}_OS'.format(thing))
|
os = d.getVar('{}_OS'.format(thing))
|
||||||
libc = d.getVar('TCLIBC')
|
libc = determine_libc(d, thing)
|
||||||
|
|
||||||
# Prefix with a dash and convert glibc -> gnu
|
# Prefix with a dash and convert glibc -> gnu
|
||||||
if libc == "glibc":
|
if libc == "glibc":
|
||||||
@@ -59,7 +103,7 @@ def rust_base_triple(d, thing):
|
|||||||
#
|
#
|
||||||
# Rust additionally will use two additional cases:
|
# Rust additionally will use two additional cases:
|
||||||
# - undecorated (e.g. CC) - equivalent to TARGET
|
# - 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
|
# see: https://github.com/alexcrichton/gcc-rs
|
||||||
# The way that Rust's internal triples and Yocto triples are mapped together
|
# 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.
|
# its likely best to not use the triple suffix due to potential confusion.
|
||||||
@@ -89,11 +133,17 @@ create_wrapper () {
|
|||||||
|
|
||||||
cat <<- EOF > "${file}"
|
cat <<- EOF > "${file}"
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
$@ "\$@"
|
exec $@ "\$@"
|
||||||
EOF
|
EOF
|
||||||
chmod +x "${file}"
|
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
|
# compiler is used by gcc-rs
|
||||||
# linker is used by rustc/cargo
|
# linker is used by rustc/cargo
|
||||||
# archiver is used by the build of libstd-rs
|
# archiver is used by the build of libstd-rs
|
||||||
@@ -110,13 +160,14 @@ do_rust_create_wrappers () {
|
|||||||
create_wrapper "${RUST_BUILD_AR}" "${BUILD_AR}"
|
create_wrapper "${RUST_BUILD_AR}" "${BUILD_AR}"
|
||||||
|
|
||||||
# Yocto Target / Rust Target C compiler
|
# Yocto Target / Rust Target C compiler
|
||||||
create_wrapper "${RUST_TARGET_CC}" "${CC}"
|
create_wrapper "${RUST_TARGET_CC}" "${WRAPPER_TARGET_CC}"
|
||||||
# Yocto Target / Rust Target C++ compiler
|
# Yocto Target / Rust Target C++ compiler
|
||||||
create_wrapper "${RUST_TARGET_CXX}" "${CXX}"
|
create_wrapper "${RUST_TARGET_CXX}" "${WRAPPER_TARGET_CXX}"
|
||||||
# Yocto Target / Rust Target linker
|
# Yocto Target / Rust Target linker
|
||||||
create_wrapper "${RUST_TARGET_CCLD}" "${CCLD}" "${LDFLAGS}"
|
create_wrapper "${RUST_TARGET_CCLD}" "${WRAPPER_TARGET_CCLD}" "${WRAPPER_TARGET_LDFLAGS}"
|
||||||
# Yocto Target / Rust Target archiver
|
# Yocto Target / Rust Target archiver
|
||||||
create_wrapper "${RUST_TARGET_AR}" "${AR}"
|
create_wrapper "${RUST_TARGET_AR}" "${WRAPPER_TARGET_AR}"
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
addtask rust_create_wrappers before do_configure after do_patch
|
addtask rust_create_wrappers before do_configure after do_patch
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ def rust_base_dep(d):
|
|||||||
deps += " rust-native"
|
deps += " rust-native"
|
||||||
return deps
|
return deps
|
||||||
|
|
||||||
DEPENDS_append = " ${@rust_base_dep(d)}"
|
DEPENDS:append = " ${@rust_base_dep(d)}"
|
||||||
|
|
||||||
# BUILD_LDFLAGS
|
# BUILD_LDFLAGS
|
||||||
# ${STAGING_LIBDIR_NATIVE}
|
# ${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}"
|
rustlib_src="${prefix}/lib/${rustlib_suffix}"
|
||||||
# Host sysroot standard library path
|
# Host sysroot standard library path
|
||||||
rustlib="${libdir}/${rustlib_suffix}"
|
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
|
# Build errors with PIE options enabled
|
||||||
SECURITY_CFLAGS_pn-rust-native = "${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-cross-${TARGET_ARCH} = "${SECURITY_NO_PIE_CFLAGS}"
|
||||||
SECURITY_CFLAGS_pn-rust = "${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-llvm = "${SECURITY_NO_PIE_CFLAGS}"
|
||||||
|
|
||||||
SECURITY_LDFLAGS_pn-rust-cross-arm = " -lssp_nonshared -lssp"
|
SECURITY_LDFLAGS:pn-rust-cross-arm = " -lssp_nonshared -lssp"
|
||||||
|
|||||||
13
conf/distro/include/rust_versions.inc
Normal file
13
conf/distro/include/rust_versions.inc
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# 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,6 +9,7 @@ BBFILE_PATTERN_rust-layer := "^${LAYERDIR}/"
|
|||||||
BBFILE_PRIORITY_rust-layer = "7"
|
BBFILE_PRIORITY_rust-layer = "7"
|
||||||
|
|
||||||
LAYERDEPENDS_rust-layer = "core openembedded-layer"
|
LAYERDEPENDS_rust-layer = "core openembedded-layer"
|
||||||
|
LAYERSERIES_COMPAT_rust-layer = "dunfell gatesgarth hardknott honister"
|
||||||
|
|
||||||
# Override security flags
|
# Override security flags
|
||||||
require conf/distro/include/rust_security_flags.inc
|
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
|
# 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
|
# 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.
|
# by libsdl-native then uncomment the ASSUME_PROVIDED line below.
|
||||||
PACKAGECONFIG_append_pn-qemu-native = " sdl"
|
PACKAGECONFIG:append:pn-qemu-native = " sdl"
|
||||||
PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl"
|
PACKAGECONFIG:append:pn-nativesdk-qemu = " sdl"
|
||||||
#ASSUME_PROVIDED += "libsdl-native"
|
#ASSUME_PROVIDED += "libsdl-native"
|
||||||
|
|
||||||
# CONF_VERSION is increased each time build/conf/ changes incompatibly and is used to
|
# CONF_VERSION is increased each time build/conf/ changes incompatibly and is used to
|
||||||
|
|||||||
@@ -1,22 +0,0 @@
|
|||||||
DESCRIPTION = "Fast multiple substring searching with finite state machines."
|
|
||||||
HOMEPAGE = "https://github.com/BurntSushi/aho-corasick"
|
|
||||||
LICENSE = "MIT"
|
|
||||||
LIC_FILES_CHKSUM = "file://LICENSE-MIT;md5=8d0d0aa488af0ab9aafa3b85a7fc8e12"
|
|
||||||
DEPENDS = "memchr-rs"
|
|
||||||
|
|
||||||
inherit rust-bin
|
|
||||||
|
|
||||||
SRC_URI = "git://github.com/BurntSushi/aho-corasick.git;protocol=https"
|
|
||||||
SRCREV = "e1bca33dcc060d587e802320a79cbb035f37f8fa"
|
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
|
||||||
|
|
||||||
do_compile () {
|
|
||||||
oe_compile_rust_lib
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install () {
|
|
||||||
oe_install_rust_lib
|
|
||||||
}
|
|
||||||
|
|
||||||
BBCLASSEXTEND += "native"
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
DESCRIPTION = "A macro to generate structures which behave like bitflags."
|
|
||||||
HOMEPAGE = "https://github.com/rust-lang-nursery/bitflags"
|
|
||||||
LICENSE = "MIT | Apache-2.0"
|
|
||||||
LIC_FILES_CHKSUM = "\
|
|
||||||
file://LICENSE-MIT;md5=362255802eb5aa87810d12ddf3cfedb4 \
|
|
||||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
|
||||||
"
|
|
||||||
|
|
||||||
inherit rust-bin
|
|
||||||
|
|
||||||
SRC_URI = "git://github.com/rust-lang-nursery/bitflags.git;protocol=https;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
|
|
||||||
}
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
DESCRIPTION = "A (mostly) pure-Rust implementation of various common cryptographic algorithms."
|
|
||||||
HOMEPAGE = "https://github.com/DaGenix/rust-crypto/"
|
|
||||||
LICENSE = "MIT | Apache-2.0"
|
|
||||||
LIC_FILES_CHKSUM = "\
|
|
||||||
file://LICENSE-MIT;md5=4311034aa04489226c1fc3f816dbfb5a \
|
|
||||||
file://LICENSE-APACHE;md5=a02fef6dccf840318474c108a8281b77 \
|
|
||||||
"
|
|
||||||
DEPENDS = "\
|
|
||||||
libc-rs \
|
|
||||||
time-rs \
|
|
||||||
rand-rs \
|
|
||||||
rustc-serialize-rs \
|
|
||||||
"
|
|
||||||
|
|
||||||
inherit rust-bin
|
|
||||||
|
|
||||||
SRC_URI = "git://github.com/DaGenix/rust-crypto.git;protocol=https"
|
|
||||||
SRCREV = "5571cb41690b9cee12025192393ea7df0eddc21b"
|
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
|
||||||
|
|
||||||
do_compile () {
|
|
||||||
oe_compile_rust_lib
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install () {
|
|
||||||
oe_install_rust_lib
|
|
||||||
}
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
DESCRIPTION = "DBus binding for rust"
|
|
||||||
HOMEPAGE = "https://github.com/diwic/dbus-rs"
|
|
||||||
LICENSE = "Apache-2.0"
|
|
||||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=d2794c0df5b907fdace235a619d80314"
|
|
||||||
DEPENDS = "libc-rs dbus"
|
|
||||||
|
|
||||||
inherit rust-bin
|
|
||||||
|
|
||||||
SRC_URI = "git://github.com/diwic/dbus-rs.git;protocol=https"
|
|
||||||
SRCREV = "d23c8b7fecd5a8e82131893250a5ac376799faff"
|
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
|
||||||
|
|
||||||
do_compile () {
|
|
||||||
oe_compile_rust_lib
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install () {
|
|
||||||
oe_install_rust_lib
|
|
||||||
}
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
DESCRIPTION = "A copy of libstd's debug builders for use before they stabilize"
|
|
||||||
HOMEPAGE = "https://github.com/sfackler/rust-debug-builders"
|
|
||||||
LICENSE = "MIT | Apache-2.0"
|
|
||||||
LIC_FILES_CHKSUM = "file://Cargo.toml;md5=97a131dc4ae910d242387f2c9d1a2ce8"
|
|
||||||
|
|
||||||
inherit rust-bin
|
|
||||||
|
|
||||||
SRC_URI = "git://github.com/sfackler/rust-debug-builders.git;protocol=https"
|
|
||||||
SRCREV = "c6943b72c7808ddaa151d08b824525cc7420cb9b"
|
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
|
||||||
|
|
||||||
do_compile () {
|
|
||||||
oe_compile_rust_lib
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install () {
|
|
||||||
oe_install_rust_lib
|
|
||||||
}
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
DESCRIPTION = "getopts-like option parsing"
|
|
||||||
HOMEPAGE = "https://github.com/rust-lang/getopts"
|
|
||||||
LICENSE = "MIT | Apache-2.0"
|
|
||||||
LIC_FILES_CHKSUM = "\
|
|
||||||
file://LICENSE-MIT;md5=362255802eb5aa87810d12ddf3cfedb4 \
|
|
||||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
|
||||||
"
|
|
||||||
DEPENDS = "log-rs"
|
|
||||||
|
|
||||||
inherit rust-bin
|
|
||||||
|
|
||||||
SRC_URI = "git://github.com/rust-lang/getopts.git;protocol=https"
|
|
||||||
SRCREV = "a13c62b7d860b6d370129ebb972bf5e0373c5be7"
|
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
|
||||||
|
|
||||||
do_compile () {
|
|
||||||
oe_compile_rust_lib
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install () {
|
|
||||||
oe_install_rust_lib
|
|
||||||
}
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
DESCRIPTION = "A macro for declaring lazily evaluated statics in Rust."
|
|
||||||
HOMEPAGE = "https://github.com/rust-lang-nursery/lazy-static.rs"
|
|
||||||
LICENSE = "MIT"
|
|
||||||
LIC_FILES_CHKSUM = "\
|
|
||||||
file://LICENSE;md5=5795ddb4df1d696d439b6667081cffc9 \
|
|
||||||
"
|
|
||||||
|
|
||||||
inherit rust-bin
|
|
||||||
|
|
||||||
SRC_URI = "git://github.com/rust-lang-nursery/lazy-static.rs.git;protocol=https"
|
|
||||||
SRCREV = "ffe65c818474f863945ca535c0e53f3b8b848ff7"
|
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
|
||||||
|
|
||||||
LIB_SRC = "${S}/src/lib.rs"
|
|
||||||
|
|
||||||
do_compile () {
|
|
||||||
oe_compile_rust_lib
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install () {
|
|
||||||
oe_install_rust_lib
|
|
||||||
}
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
DESCRIPTION = "A Rust library with native bindings to the types and functions commonly found on various systems, including libc."
|
|
||||||
HOMEPAGE = "https://github.com/rust-lang/libc"
|
|
||||||
LICENSE = "MIT | Apache-2.0"
|
|
||||||
LIC_FILES_CHKSUM = "\
|
|
||||||
file://LICENSE-MIT;md5=362255802eb5aa87810d12ddf3cfedb4 \
|
|
||||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
|
||||||
"
|
|
||||||
|
|
||||||
inherit rust-bin
|
|
||||||
|
|
||||||
SRC_URI = "git://github.com/rust-lang/libc.git;protocol=https"
|
|
||||||
SRCREV = "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"
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
DESCRIPTION = "An logging implementation for `log` which is configured via an environment variable"
|
|
||||||
DEPENDS = "regex-rs log-rs"
|
|
||||||
|
|
||||||
require log.inc
|
|
||||||
|
|
||||||
LIB_SRC = "${S}/env/src/lib.rs"
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
DESCRIPTION = "A Rust library providing a lightweight logging facade"
|
|
||||||
DEPENDS = "libc-rs"
|
|
||||||
|
|
||||||
require log.inc
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
HOMEPAGE = "https://github.com/rust-lang/log"
|
|
||||||
LICENSE = "MIT | Apache-2.0"
|
|
||||||
LIC_FILES_CHKSUM = "\
|
|
||||||
file://LICENSE-MIT;md5=362255802eb5aa87810d12ddf3cfedb4 \
|
|
||||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
|
||||||
"
|
|
||||||
|
|
||||||
inherit rust-bin
|
|
||||||
|
|
||||||
SRC_URI = "git://github.com/rust-lang/log.git;protocol=https"
|
|
||||||
SRCREV = "5453e16166ec451afc9738978ca01f162127ebbe"
|
|
||||||
PV = "0.3.1"
|
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
|
||||||
|
|
||||||
do_compile () {
|
|
||||||
oe_compile_rust_lib
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install () {
|
|
||||||
oe_install_rust_lib
|
|
||||||
}
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
DESCRIPTION = "Safe interface to memchr"
|
|
||||||
HOMEPAGE = "https://github.com/BurntSushi/rust-memchr"
|
|
||||||
LICENSE = "MIT"
|
|
||||||
LIC_FILES_CHKSUM = "file://LICENSE-MIT;md5=8d0d0aa488af0ab9aafa3b85a7fc8e12"
|
|
||||||
DEPENDS = "libc-rs"
|
|
||||||
|
|
||||||
inherit rust-bin
|
|
||||||
|
|
||||||
SRC_URI = "git://github.com/BurntSushi/rust-memchr.git;protocol=https"
|
|
||||||
SRCREV = "4f9a13f95e6e00f2847c093c56b41b9c1d58d3c4"
|
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
|
||||||
|
|
||||||
do_compile () {
|
|
||||||
oe_compile_rust_lib
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install () {
|
|
||||||
oe_install_rust_lib
|
|
||||||
}
|
|
||||||
|
|
||||||
BBCLASSEXTEND += "native"
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
require num.inc
|
|
||||||
|
|
||||||
DEPENDS += "num-traits"
|
|
||||||
|
|
||||||
LIB_SRC = "${S}/integer/src/lib.rs"
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
require num.inc
|
|
||||||
|
|
||||||
DEPENDS += "num-traits"
|
|
||||||
DEPENDS += "num-integer"
|
|
||||||
|
|
||||||
LIB_SRC = "${S}/iter/src/lib.rs"
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
require num.inc
|
|
||||||
|
|
||||||
LIB_SRC = "${S}/traits/src/lib.rs"
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
DESCRIPTION = "A collection of numeric types and traits for Rust, including bigint, complex, rational, range iterators, generic integers, and more!"
|
|
||||||
HOMEPAGE = "https://github.com/rust-num/num"
|
|
||||||
LICENSE = "MIT | Apache-2.0"
|
|
||||||
LIC_FILES_CHKSUM = "\
|
|
||||||
file://LICENSE-MIT;md5=362255802eb5aa87810d12ddf3cfedb4 \
|
|
||||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
|
||||||
"
|
|
||||||
|
|
||||||
inherit rust-bin
|
|
||||||
|
|
||||||
SRC_URI = "git://github.com/rust-num/num.git;protocol=https"
|
|
||||||
SRCREV = "d9f08cb148cc686ec407c1e42fbd4536cde6ac82"
|
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
|
||||||
|
|
||||||
do_compile () {
|
|
||||||
oe_compile_rust_lib
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install () {
|
|
||||||
oe_install_rust_lib
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
require num.inc
|
|
||||||
|
|
||||||
DEPENDS += "\
|
|
||||||
num-traits \
|
|
||||||
num-integer \
|
|
||||||
num-iter \
|
|
||||||
"
|
|
||||||
|
|
||||||
LIB_SRC = "${S}/src/lib.rs"
|
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
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')} \
|
||||||
|
"
|
||||||
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
DESCRIPTION = "Random number generators and other randomness functionality."
|
|
||||||
HOMEPAGE = "https://github.com/rust-lang/rand"
|
|
||||||
LICENSE = "MIT | Apache-2.0"
|
|
||||||
LIC_FILES_CHKSUM = "\
|
|
||||||
file://LICENSE-MIT;md5=362255802eb5aa87810d12ddf3cfedb4 \
|
|
||||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
|
||||||
"
|
|
||||||
DEPENDS = "libc-rs"
|
|
||||||
|
|
||||||
inherit rust-bin
|
|
||||||
|
|
||||||
SRC_URI = "git://github.com/rust-lang/rand.git;protocol=https"
|
|
||||||
SRCREV = "f872fda5fb8fb899a837ee9eee0332076a8f5300"
|
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
|
||||||
|
|
||||||
do_compile () {
|
|
||||||
oe_compile_rust_lib
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install () {
|
|
||||||
oe_install_rust_lib
|
|
||||||
}
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
DESCRIPTION = "An implementation of regular expressions for Rust"
|
|
||||||
DEPENDS = "\
|
|
||||||
aho-corasick-rs \
|
|
||||||
memchr-rs \
|
|
||||||
regex-syntax-rs \
|
|
||||||
"
|
|
||||||
|
|
||||||
require regex.inc
|
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
|
||||||
|
|
||||||
BBCLASSEXTEND += "native"
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
DESCRIPTION = "A regular expression parser"
|
|
||||||
|
|
||||||
require regex.inc
|
|
||||||
|
|
||||||
LIB_SRC = "${S}/regex-syntax/src/lib.rs"
|
|
||||||
|
|
||||||
BBCLASSEXTEND += "native"
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
HOMEPAGE = "https://github.com/rust-lang/regex"
|
|
||||||
LICENSE = "MIT | Apache-2.0"
|
|
||||||
LIC_FILES_CHKSUM = "\
|
|
||||||
file://LICENSE-MIT;md5=362255802eb5aa87810d12ddf3cfedb4 \
|
|
||||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
|
||||||
"
|
|
||||||
|
|
||||||
SRC_URI = "git://github.com/rust-lang/regex.git;protocol=https"
|
|
||||||
SRCREV = "c9e6781a6845478aa2d8ebc86972755f854fdbe0"
|
|
||||||
PV = "0.1.38"
|
|
||||||
|
|
||||||
inherit rust-bin
|
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
|
||||||
|
|
||||||
do_compile () {
|
|
||||||
oe_compile_rust_lib
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install () {
|
|
||||||
oe_install_rust_lib
|
|
||||||
}
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
DESCRIPTION = "Generic serialization/deserialization support"
|
|
||||||
HOMEPAGE = "https://github.com/rust-lang/rustc-serialize"
|
|
||||||
LICENSE = "MIT | Apache-2.0"
|
|
||||||
LIC_FILES_CHKSUM = "\
|
|
||||||
file://LICENSE-MIT;md5=362255802eb5aa87810d12ddf3cfedb4 \
|
|
||||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
|
||||||
"
|
|
||||||
|
|
||||||
inherit rust-bin
|
|
||||||
|
|
||||||
SRC_URI = "git://github.com/rust-lang/rustc-serialize.git;protocol=https"
|
|
||||||
SRCREV = "64b38a1f31a9af6eabf2894437aa5ccc3e457e68"
|
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
|
||||||
|
|
||||||
do_compile () {
|
|
||||||
oe_compile_rust_lib
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install () {
|
|
||||||
oe_install_rust_lib
|
|
||||||
}
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
DESCRIPTION = "Utilities for working with time-related functions in Rust"
|
|
||||||
HOMEPAGE = "https://github.com/rust-lang/time"
|
|
||||||
LICENSE = "MIT | Apache-2.0"
|
|
||||||
LIC_FILES_CHKSUM = "\
|
|
||||||
file://LICENSE-MIT;md5=362255802eb5aa87810d12ddf3cfedb4 \
|
|
||||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
|
||||||
"
|
|
||||||
DEPENDS = "libc-rs"
|
|
||||||
|
|
||||||
inherit rust-bin
|
|
||||||
|
|
||||||
SRC_URI = "git://github.com/rust-lang/time.git;protocol=https"
|
|
||||||
SRCREV = "d265b7cf9f50db74fbd0a01f8bec90ad7d239d48"
|
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
|
||||||
|
|
||||||
do_compile () {
|
|
||||||
oe_compile_rust_lib
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install () {
|
|
||||||
oe_install_rust_lib
|
|
||||||
}
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
DESCRIPTION = "FFI bindings to libudev"
|
|
||||||
HOMEPAGE = "https://github.com/dcuddeback/libudev-sys"
|
|
||||||
LICENSE = "MIT"
|
|
||||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=bbd2acd29c4ba5d4591b03e2757c04a3"
|
|
||||||
DEPENDS = "libudev-sys-rs"
|
|
||||||
|
|
||||||
inherit rust-bin
|
|
||||||
|
|
||||||
SRC_URI = "git://github.com/dcuddeback/libudev-rs.git;protocol=https"
|
|
||||||
SRCREV = "d55763c626790e2e8724947503238731843a969a"
|
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
|
||||||
|
|
||||||
do_compile () {
|
|
||||||
oe_compile_rust_lib
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install () {
|
|
||||||
oe_install_rust_lib
|
|
||||||
}
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
DESCRIPTION = "FFI bindings to libudev"
|
|
||||||
HOMEPAGE = "https://github.com/dcuddeback/libudev-sys"
|
|
||||||
LICENSE = "MIT"
|
|
||||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=bbd2acd29c4ba5d4591b03e2757c04a3"
|
|
||||||
|
|
||||||
DEPENDS += "libudev-sys-rs"
|
|
||||||
DEPENDS += "libc-rs"
|
|
||||||
|
|
||||||
inherit rust-bin
|
|
||||||
|
|
||||||
SRC_URI = "git://github.com/dcuddeback/libudev-rs.git;protocol=https"
|
|
||||||
SRCREV = "3da791245f206d0cf5a856531c574b8646b0f059"
|
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
|
||||||
|
|
||||||
do_compile () {
|
|
||||||
oe_compile_rust_lib
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install () {
|
|
||||||
oe_install_rust_lib
|
|
||||||
}
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
DESCRIPTION = "FFI bindings to libudev"
|
|
||||||
HOMEPAGE = "https://github.com/dcuddeback/libudev-sys"
|
|
||||||
LICENSE = "MIT"
|
|
||||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=bbd2acd29c4ba5d4591b03e2757c04a3"
|
|
||||||
DEPENDS = "libc-rs udev"
|
|
||||||
|
|
||||||
inherit rust-bin
|
|
||||||
|
|
||||||
SRC_URI = "git://github.com/dcuddeback/libudev-sys.git;protocol=https"
|
|
||||||
SRCREV = "14c24afc61e3315dffddab2c7f36999a16a002d8"
|
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
|
||||||
|
|
||||||
RUSTC_FLAGS += "-ludev"
|
|
||||||
|
|
||||||
do_compile () {
|
|
||||||
oe_compile_rust_lib
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install () {
|
|
||||||
oe_install_rust_lib
|
|
||||||
}
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
DESCRIPTION = "FFI bindings to libudev"
|
|
||||||
HOMEPAGE = "https://github.com/dcuddeback/libudev-sys"
|
|
||||||
LICENSE = "MIT"
|
|
||||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=bbd2acd29c4ba5d4591b03e2757c04a3"
|
|
||||||
DEPENDS = "libc-rs udev"
|
|
||||||
|
|
||||||
inherit rust-bin
|
|
||||||
|
|
||||||
SRC_URI = "git://github.com/dcuddeback/libudev-sys.git;protocol=https"
|
|
||||||
SRCREV = "c49163f87d4d109ec21bcf8f8c51db560ed31b22"
|
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
|
||||||
|
|
||||||
RUSTC_FLAGS += "-ludev"
|
|
||||||
|
|
||||||
do_compile () {
|
|
||||||
oe_compile_rust_lib
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install () {
|
|
||||||
oe_install_rust_lib
|
|
||||||
}
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
DESCRIPTION = "Unix domain socket bindings for Rust"
|
|
||||||
HOMEPAGE = "https://github.com/sfackler/rust-unix-socket"
|
|
||||||
LICENSE = "MIT"
|
|
||||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=bde86283c1fd74e84ebc3cf6dd7011d0"
|
|
||||||
DEPENDS = "libc-rs debug-builders-rs"
|
|
||||||
|
|
||||||
inherit rust-bin
|
|
||||||
|
|
||||||
SRC_URI = "git://github.com/sfackler/rust-unix-socket.git;protocol=https"
|
|
||||||
SRCREV = "d0f47ae888267a718072c3be5eed42ba1f637097"
|
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
|
||||||
|
|
||||||
do_compile () {
|
|
||||||
oe_compile_rust_lib
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install () {
|
|
||||||
oe_install_rust_lib
|
|
||||||
}
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
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"
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
CARGO_SNAPSHOT = "cargo-0.21.0-${RUST_BUILD_SYS}"
|
|
||||||
SRC_URI[cargo-snapshot.md5sum] = "0e5389d2e38a14933dda77db8172cb1f"
|
|
||||||
SRC_URI[cargo-snapshot.sha256sum] = "caccf4ab039c806a9e6fdc7fe389cc88fb771e28e30d93c07a5c56ef845cdf57"
|
|
||||||
|
|
||||||
SRC_URI += "\
|
|
||||||
https://static.rust-lang.org/dist/${CARGO_SNAPSHOT}.tar.gz;name=cargo-snapshot \
|
|
||||||
"
|
|
||||||
|
|
||||||
# When building cargo-native we don't have a built cargo to use so we must use
|
|
||||||
# the snapshot to bootstrap the build of cargo
|
|
||||||
CARGO_class-native = "${WORKDIR}/${CARGO_SNAPSHOT}/cargo/bin/cargo"
|
|
||||||
74
recipes-devtools/cargo/cargo-cross-canadian.inc
Normal file
74
recipes-devtools/cargo/cargo-cross-canadian.inc
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
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}"
|
||||||
|
|
||||||
6
recipes-devtools/cargo/cargo-cross-canadian_1.61.0.bb
Normal file
6
recipes-devtools/cargo/cargo-cross-canadian_1.61.0.bb
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
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
|
||||||
6
recipes-devtools/cargo/cargo-cross-canadian_1.64.0.bb
Normal file
6
recipes-devtools/cargo/cargo-cross-canadian_1.64.0.bb
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
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,12 +1,56 @@
|
|||||||
|
SUMMARY ?= "Cargo, a package manager for Rust."
|
||||||
|
HOMEPAGE = "https://crates.io"
|
||||||
|
LICENSE = "MIT | Apache-2.0"
|
||||||
SECTION = "devel"
|
SECTION = "devel"
|
||||||
|
|
||||||
DEPENDS = "openssl zlib libgit2 curl ca-certificates libssh2"
|
DEPENDS = "openssl zlib curl ca-certificates libssh2"
|
||||||
|
|
||||||
LIC_FILES_CHKSUM += " \
|
LIC_FILES_CHKSUM = " \
|
||||||
file://LICENSE-THIRD-PARTY;md5=892ea68b169e69cfe75097fc38a15b56 \
|
file://LICENSE-MIT;md5=b377b220f43d747efdec40d69fcaa69d \
|
||||||
|
file://LICENSE-APACHE;md5=71b224ca933f0676e26d5c2e2271331c \
|
||||||
|
file://LICENSE-THIRD-PARTY;md5=f257ad009884cb88a3a87d6920e7180a \
|
||||||
"
|
"
|
||||||
|
|
||||||
# Used in libgit2-sys's build.rs, needed for pkg-config to be used
|
|
||||||
export LIBGIT2_SYS_USE_PKG_CONFIG = "1"
|
|
||||||
|
|
||||||
BBCLASSEXTEND = "native"
|
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"
|
||||||
|
|||||||
@@ -1,136 +0,0 @@
|
|||||||
# 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
|
|
||||||
@@ -1,151 +0,0 @@
|
|||||||
# Auto-Generated by cargo-bitbake 0.3.9
|
|
||||||
#
|
|
||||||
inherit cargo
|
|
||||||
|
|
||||||
# If this is git based prefer versioned ones if they exist
|
|
||||||
# DEFAULT_PREFERENCE = "-1"
|
|
||||||
|
|
||||||
# how to get cargo could be as easy as but default to a git checkout:
|
|
||||||
# SRC_URI += "crate://crates.io/cargo/0.22.0"
|
|
||||||
SRC_URI += "git://github.com/rust-lang/cargo.git;protocol=https;branch=rust-1.21.0"
|
|
||||||
SRCREV = "3423351a5d75ac7377bb15987842aadcfd068ad2"
|
|
||||||
S = "${WORKDIR}/git"
|
|
||||||
CARGO_SRC_DIR=""
|
|
||||||
|
|
||||||
|
|
||||||
# please note if you have entries that do not begin with crate://
|
|
||||||
# you must change them to how that package can be fetched
|
|
||||||
SRC_URI += " \
|
|
||||||
crate://crates.io/advapi32-sys/0.2.0 \
|
|
||||||
crate://crates.io/aho-corasick/0.5.3 \
|
|
||||||
crate://crates.io/aho-corasick/0.6.3 \
|
|
||||||
crate://crates.io/atty/0.2.2 \
|
|
||||||
crate://crates.io/backtrace-sys/0.1.12 \
|
|
||||||
crate://crates.io/backtrace/0.3.2 \
|
|
||||||
crate://crates.io/bitflags/0.7.0 \
|
|
||||||
crate://crates.io/bitflags/0.9.1 \
|
|
||||||
crate://crates.io/bufstream/0.1.3 \
|
|
||||||
crate://crates.io/cfg-if/0.1.2 \
|
|
||||||
crate://crates.io/cmake/0.1.24 \
|
|
||||||
crate://crates.io/conv/0.3.3 \
|
|
||||||
crate://crates.io/core-foundation-sys/0.4.4 \
|
|
||||||
crate://crates.io/core-foundation/0.4.4 \
|
|
||||||
crate://crates.io/crossbeam/0.2.10 \
|
|
||||||
crate://crates.io/curl-sys/0.3.14 \
|
|
||||||
crate://crates.io/curl/0.4.8 \
|
|
||||||
crate://crates.io/custom_derive/0.1.7 \
|
|
||||||
crate://crates.io/dbghelp-sys/0.2.0 \
|
|
||||||
crate://crates.io/docopt/0.8.1 \
|
|
||||||
crate://crates.io/dtoa/0.4.1 \
|
|
||||||
crate://crates.io/env_logger/0.4.3 \
|
|
||||||
crate://crates.io/error-chain/0.11.0-rc.2 \
|
|
||||||
crate://crates.io/filetime/0.1.10 \
|
|
||||||
crate://crates.io/flate2/0.2.19 \
|
|
||||||
crate://crates.io/fnv/1.0.5 \
|
|
||||||
crate://crates.io/foreign-types/0.2.0 \
|
|
||||||
crate://crates.io/fs2/0.4.2 \
|
|
||||||
crate://crates.io/gcc/0.3.51 \
|
|
||||||
crate://crates.io/git2-curl/0.7.0 \
|
|
||||||
crate://crates.io/git2/0.6.6 \
|
|
||||||
crate://crates.io/glob/0.2.11 \
|
|
||||||
crate://crates.io/globset/0.2.0 \
|
|
||||||
crate://crates.io/hamcrest/0.1.1 \
|
|
||||||
crate://crates.io/hex/0.2.0 \
|
|
||||||
crate://crates.io/home/0.3.0 \
|
|
||||||
crate://crates.io/idna/0.1.4 \
|
|
||||||
crate://crates.io/ignore/0.2.2 \
|
|
||||||
crate://crates.io/itoa/0.3.1 \
|
|
||||||
crate://crates.io/jobserver/0.1.6 \
|
|
||||||
crate://crates.io/kernel32-sys/0.2.2 \
|
|
||||||
crate://crates.io/lazy_static/0.2.8 \
|
|
||||||
crate://crates.io/libc/0.2.28 \
|
|
||||||
crate://crates.io/libgit2-sys/0.6.12 \
|
|
||||||
crate://crates.io/libssh2-sys/0.2.6 \
|
|
||||||
crate://crates.io/libz-sys/1.0.16 \
|
|
||||||
crate://crates.io/log/0.3.8 \
|
|
||||||
crate://crates.io/magenta-sys/0.1.1 \
|
|
||||||
crate://crates.io/magenta/0.1.1 \
|
|
||||||
crate://crates.io/matches/0.1.6 \
|
|
||||||
crate://crates.io/memchr/0.1.11 \
|
|
||||||
crate://crates.io/memchr/1.0.1 \
|
|
||||||
crate://crates.io/miniz-sys/0.1.9 \
|
|
||||||
crate://crates.io/miow/0.2.1 \
|
|
||||||
crate://crates.io/net2/0.2.30 \
|
|
||||||
crate://crates.io/num-bigint/0.1.40 \
|
|
||||||
crate://crates.io/num-complex/0.1.40 \
|
|
||||||
crate://crates.io/num-integer/0.1.35 \
|
|
||||||
crate://crates.io/num-iter/0.1.34 \
|
|
||||||
crate://crates.io/num-rational/0.1.39 \
|
|
||||||
crate://crates.io/num-traits/0.1.40 \
|
|
||||||
crate://crates.io/num/0.1.40 \
|
|
||||||
crate://crates.io/num_cpus/1.6.2 \
|
|
||||||
crate://crates.io/openssl-probe/0.1.1 \
|
|
||||||
crate://crates.io/openssl-sys/0.9.15 \
|
|
||||||
crate://crates.io/openssl/0.9.15 \
|
|
||||||
crate://crates.io/percent-encoding/1.0.0 \
|
|
||||||
crate://crates.io/pkg-config/0.3.9 \
|
|
||||||
crate://crates.io/psapi-sys/0.1.0 \
|
|
||||||
crate://crates.io/quote/0.3.15 \
|
|
||||||
crate://crates.io/rand/0.3.16 \
|
|
||||||
crate://crates.io/regex-syntax/0.3.9 \
|
|
||||||
crate://crates.io/regex-syntax/0.4.1 \
|
|
||||||
crate://crates.io/regex/0.1.80 \
|
|
||||||
crate://crates.io/regex/0.2.2 \
|
|
||||||
crate://crates.io/rustc-demangle/0.1.4 \
|
|
||||||
crate://crates.io/rustc-serialize/0.3.24 \
|
|
||||||
crate://crates.io/same-file/0.1.3 \
|
|
||||||
crate://crates.io/scoped-tls/0.1.0 \
|
|
||||||
crate://crates.io/scopeguard/0.1.2 \
|
|
||||||
crate://crates.io/semver-parser/0.7.0 \
|
|
||||||
crate://crates.io/semver/0.7.0 \
|
|
||||||
crate://crates.io/serde/1.0.11 \
|
|
||||||
crate://crates.io/serde_derive/1.0.11 \
|
|
||||||
crate://crates.io/serde_derive_internals/0.15.1 \
|
|
||||||
crate://crates.io/serde_ignored/0.0.3 \
|
|
||||||
crate://crates.io/serde_json/1.0.2 \
|
|
||||||
crate://crates.io/shell-escape/0.1.3 \
|
|
||||||
crate://crates.io/socket2/0.2.1 \
|
|
||||||
crate://crates.io/strsim/0.6.0 \
|
|
||||||
crate://crates.io/syn/0.11.11 \
|
|
||||||
crate://crates.io/synom/0.11.3 \
|
|
||||||
crate://crates.io/tar/0.4.13 \
|
|
||||||
crate://crates.io/tempdir/0.3.5 \
|
|
||||||
crate://crates.io/termcolor/0.3.2 \
|
|
||||||
crate://crates.io/thread-id/2.0.0 \
|
|
||||||
crate://crates.io/thread_local/0.2.7 \
|
|
||||||
crate://crates.io/thread_local/0.3.4 \
|
|
||||||
crate://crates.io/toml/0.4.3 \
|
|
||||||
crate://crates.io/unicode-bidi/0.3.4 \
|
|
||||||
crate://crates.io/unicode-normalization/0.1.5 \
|
|
||||||
crate://crates.io/unicode-xid/0.0.4 \
|
|
||||||
crate://crates.io/unreachable/1.0.0 \
|
|
||||||
crate://crates.io/url/1.5.1 \
|
|
||||||
crate://crates.io/userenv-sys/0.2.0 \
|
|
||||||
crate://crates.io/utf8-ranges/0.1.3 \
|
|
||||||
crate://crates.io/utf8-ranges/1.0.0 \
|
|
||||||
crate://crates.io/vcpkg/0.2.2 \
|
|
||||||
crate://crates.io/void/1.0.2 \
|
|
||||||
crate://crates.io/walkdir/1.0.7 \
|
|
||||||
crate://crates.io/winapi-build/0.1.1 \
|
|
||||||
crate://crates.io/winapi/0.2.8 \
|
|
||||||
crate://crates.io/wincolor/0.1.4 \
|
|
||||||
crate://crates.io/ws2_32-sys/0.2.1 \
|
|
||||||
"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# FIXME: update generateme with the real MD5 of the license file
|
|
||||||
LIC_FILES_CHKSUM=" \
|
|
||||||
file://LICENSE-MIT;md5=b377b220f43d747efdec40d69fcaa69d \
|
|
||||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
|
||||||
"
|
|
||||||
|
|
||||||
SUMMARY = "Cargo, a package manager for Rust."
|
|
||||||
HOMEPAGE = "https://crates.io"
|
|
||||||
LICENSE = "MIT | Apache-2.0"
|
|
||||||
|
|
||||||
# includes this file if it exists but does not fail
|
|
||||||
# this is useful for anything you may want to override from
|
|
||||||
# what cargo-bitbake generates.
|
|
||||||
include cargo-${PV}.inc
|
|
||||||
include cargo.inc
|
|
||||||
4
recipes-devtools/cargo/cargo_1.61.0.bb
Normal file
4
recipes-devtools/cargo/cargo_1.61.0.bb
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
require recipes-devtools/rust/rust-source-${PV}.inc
|
||||||
|
require recipes-devtools/rust/rust-snapshot-${PV}.inc
|
||||||
|
require cargo.inc
|
||||||
|
BBCLASSEXTEND = "native nativesdk"
|
||||||
4
recipes-devtools/cargo/cargo_1.64.0.bb
Normal file
4
recipes-devtools/cargo/cargo_1.64.0.bb
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
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,44 @@
|
|||||||
|
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,16 +2,28 @@ SUMMARY = "Rust standard libaries"
|
|||||||
HOMEPAGE = "http://www.rust-lang.org"
|
HOMEPAGE = "http://www.rust-lang.org"
|
||||||
SECTION = "devel"
|
SECTION = "devel"
|
||||||
LICENSE = "MIT | Apache-2.0"
|
LICENSE = "MIT | Apache-2.0"
|
||||||
|
LIC_FILES_CHKSUM = "file://../../COPYRIGHT;md5=93a95682d51b4cb0a633a97046940ef0"
|
||||||
|
|
||||||
RUSTLIB_DEP = ""
|
RUSTLIB_DEP = ""
|
||||||
inherit cargo
|
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
|
# Needed so cargo can find libbacktrace
|
||||||
RUSTFLAGS += "-L ${STAGING_LIBDIR}"
|
RUSTFLAGS += "-L ${STAGING_LIBDIR} -C link-arg=-Wl,-soname,libstd.so"
|
||||||
|
|
||||||
S = "${RUSTSRC}/src/libstd"
|
S = "${RUSTSRC}/src/libstd"
|
||||||
|
|
||||||
do_compile_prepend () {
|
CARGO_FEATURES ?= "panic-unwind backtrace"
|
||||||
|
CARGO_BUILD_FLAGS += "--features '${CARGO_FEATURES}'"
|
||||||
|
CARGO_VENDORING_DIRECTORY = "${RUSTSRC}/vendor"
|
||||||
|
|
||||||
|
do_compile:prepend () {
|
||||||
export CARGO_TARGET_DIR="${B}"
|
export CARGO_TARGET_DIR="${B}"
|
||||||
# For Rust 1.13.0 and newer
|
# For Rust 1.13.0 and newer
|
||||||
export RUSTC_BOOTSTRAP="1"
|
export RUSTC_BOOTSTRAP="1"
|
||||||
@@ -20,5 +32,9 @@ do_compile_prepend () {
|
|||||||
do_install () {
|
do_install () {
|
||||||
mkdir -p ${D}${rustlibdir}
|
mkdir -p ${D}${rustlibdir}
|
||||||
|
|
||||||
cp ${B}/${TARGET_SYS}/release/deps/* ${D}${rustlibdir}
|
# With the incremental build support added in 1.24, the libstd deps directory also includes dependency
|
||||||
|
# files that get installed. Those are really only needed to incrementally rebuild the libstd library
|
||||||
|
# itself and don't need to be installed.
|
||||||
|
rm -f ${B}/${TARGET_SYS}/${BUILD_DIR}/deps/*.d
|
||||||
|
cp ${B}/${TARGET_SYS}/${BUILD_DIR}/deps/* ${D}${rustlibdir}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,139 +0,0 @@
|
|||||||
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 \
|
|
||||||
"
|
|
||||||
@@ -1,170 +0,0 @@
|
|||||||
require rust-source-${PV}.inc
|
|
||||||
require libstd-rs.inc
|
|
||||||
|
|
||||||
LIC_FILES_CHKSUM = "file://../../COPYRIGHT;md5=c709a09d1b062d9a908e3631c1e1cdf5"
|
|
||||||
|
|
||||||
# Don't use jemalloc as it doesn't work for many targets.
|
|
||||||
# https://github.com/rust-lang/rust/pull/37392
|
|
||||||
CARGO_BUILD_FLAGS += "--features 'panic-unwind'"
|
|
||||||
|
|
||||||
# These are taken from src/libstd/Cargo.toml via cargo-bitbake
|
|
||||||
SRC_URI += " \
|
|
||||||
crate://crates.io/advapi32-sys/0.2.0 \
|
|
||||||
crate://crates.io/aho-corasick/0.5.3 \
|
|
||||||
crate://crates.io/aho-corasick/0.6.3 \
|
|
||||||
crate://crates.io/ansi_term/0.9.0 \
|
|
||||||
crate://crates.io/ar/0.3.0 \
|
|
||||||
crate://crates.io/atty/0.2.2 \
|
|
||||||
crate://crates.io/backtrace-sys/0.1.12 \
|
|
||||||
crate://crates.io/backtrace/0.3.2 \
|
|
||||||
crate://crates.io/bitflags/0.7.0 \
|
|
||||||
crate://crates.io/bitflags/0.8.2 \
|
|
||||||
crate://crates.io/bitflags/0.9.1 \
|
|
||||||
crate://crates.io/bufstream/0.1.3 \
|
|
||||||
crate://crates.io/cfg-if/0.1.2 \
|
|
||||||
crate://crates.io/clap/2.26.0 \
|
|
||||||
crate://crates.io/cmake/0.1.24 \
|
|
||||||
crate://crates.io/core-foundation-sys/0.4.4 \
|
|
||||||
crate://crates.io/core-foundation/0.4.4 \
|
|
||||||
crate://crates.io/crossbeam/0.2.10 \
|
|
||||||
crate://crates.io/curl-sys/0.3.14 \
|
|
||||||
crate://crates.io/curl/0.4.8 \
|
|
||||||
crate://crates.io/dbghelp-sys/0.2.0 \
|
|
||||||
crate://crates.io/derive-new/0.3.0 \
|
|
||||||
crate://crates.io/diff/0.1.10 \
|
|
||||||
crate://crates.io/docopt/0.8.1 \
|
|
||||||
crate://crates.io/dtoa/0.4.1 \
|
|
||||||
crate://crates.io/enum_primitive/0.1.1 \
|
|
||||||
crate://crates.io/env_logger/0.3.5 \
|
|
||||||
crate://crates.io/env_logger/0.4.3 \
|
|
||||||
crate://crates.io/error-chain/0.10.0 \
|
|
||||||
crate://crates.io/error-chain/0.11.0-rc.2 \
|
|
||||||
crate://crates.io/filetime/0.1.10 \
|
|
||||||
crate://crates.io/flate2/0.2.19 \
|
|
||||||
crate://crates.io/fnv/1.0.5 \
|
|
||||||
crate://crates.io/foreign-types/0.2.0 \
|
|
||||||
crate://crates.io/fs2/0.4.2 \
|
|
||||||
crate://crates.io/futures/0.1.14 \
|
|
||||||
crate://crates.io/gcc/0.3.51 \
|
|
||||||
crate://crates.io/getopts/0.2.14 \
|
|
||||||
crate://crates.io/git2-curl/0.7.0 \
|
|
||||||
crate://crates.io/git2/0.6.6 \
|
|
||||||
crate://crates.io/glob/0.2.11 \
|
|
||||||
crate://crates.io/globset/0.2.0 \
|
|
||||||
crate://crates.io/hamcrest/0.1.1 \
|
|
||||||
crate://crates.io/handlebars/0.26.2 \
|
|
||||||
crate://crates.io/hex/0.2.0 \
|
|
||||||
crate://crates.io/home/0.3.0 \
|
|
||||||
crate://crates.io/idna/0.1.4 \
|
|
||||||
crate://crates.io/ignore/0.2.2 \
|
|
||||||
crate://crates.io/itoa/0.3.1 \
|
|
||||||
crate://crates.io/jobserver/0.1.6 \
|
|
||||||
crate://crates.io/jsonrpc-core/7.1.0 \
|
|
||||||
crate://crates.io/kernel32-sys/0.2.2 \
|
|
||||||
crate://crates.io/languageserver-types/0.12.0 \
|
|
||||||
crate://crates.io/lazy_static/0.2.8 \
|
|
||||||
crate://crates.io/libc/0.2.29 \
|
|
||||||
crate://crates.io/libgit2-sys/0.6.12 \
|
|
||||||
crate://crates.io/libssh2-sys/0.2.6 \
|
|
||||||
crate://crates.io/libz-sys/1.0.16 \
|
|
||||||
crate://crates.io/log/0.3.8 \
|
|
||||||
crate://crates.io/lzma-sys/0.1.8 \
|
|
||||||
crate://crates.io/matches/0.1.6 \
|
|
||||||
crate://crates.io/mdbook/0.0.22 \
|
|
||||||
crate://crates.io/memchr/0.1.11 \
|
|
||||||
crate://crates.io/memchr/1.0.1 \
|
|
||||||
crate://crates.io/miniz-sys/0.1.9 \
|
|
||||||
crate://crates.io/miow/0.2.1 \
|
|
||||||
crate://crates.io/net2/0.2.31 \
|
|
||||||
crate://crates.io/num-bigint/0.1.40 \
|
|
||||||
crate://crates.io/num-complex/0.1.40 \
|
|
||||||
crate://crates.io/num-integer/0.1.35 \
|
|
||||||
crate://crates.io/num-iter/0.1.34 \
|
|
||||||
crate://crates.io/num-rational/0.1.39 \
|
|
||||||
crate://crates.io/num-traits/0.1.40 \
|
|
||||||
crate://crates.io/num/0.1.40 \
|
|
||||||
crate://crates.io/num_cpus/1.6.2 \
|
|
||||||
crate://crates.io/open/1.2.0 \
|
|
||||||
crate://crates.io/openssl-probe/0.1.1 \
|
|
||||||
crate://crates.io/openssl-sys/0.9.17 \
|
|
||||||
crate://crates.io/openssl/0.9.17 \
|
|
||||||
crate://crates.io/owning_ref/0.3.3 \
|
|
||||||
crate://crates.io/percent-encoding/1.0.0 \
|
|
||||||
crate://crates.io/pest/0.3.3 \
|
|
||||||
crate://crates.io/pkg-config/0.3.9 \
|
|
||||||
crate://crates.io/psapi-sys/0.1.0 \
|
|
||||||
crate://crates.io/pulldown-cmark/0.0.14 \
|
|
||||||
crate://crates.io/quick-error/1.2.0 \
|
|
||||||
crate://crates.io/quote/0.2.3 \
|
|
||||||
crate://crates.io/quote/0.3.15 \
|
|
||||||
crate://crates.io/racer/2.0.10 \
|
|
||||||
crate://crates.io/rand/0.3.15 \
|
|
||||||
crate://crates.io/regex-syntax/0.3.9 \
|
|
||||||
crate://crates.io/regex-syntax/0.4.1 \
|
|
||||||
crate://crates.io/regex/0.1.80 \
|
|
||||||
crate://crates.io/regex/0.2.2 \
|
|
||||||
crate://crates.io/rls-analysis/0.6.5 \
|
|
||||||
crate://crates.io/rls-data/0.10.0 \
|
|
||||||
crate://crates.io/rls-rustc/0.1.0 \
|
|
||||||
crate://crates.io/rls-span/0.4.0 \
|
|
||||||
crate://crates.io/rls-vfs/0.4.4 \
|
|
||||||
crate://crates.io/rustc-demangle/0.1.5 \
|
|
||||||
crate://crates.io/rustc-serialize/0.3.24 \
|
|
||||||
crate://crates.io/rustfmt-nightly/0.2.2 \
|
|
||||||
crate://crates.io/same-file/0.1.3 \
|
|
||||||
crate://crates.io/scoped-tls/0.1.0 \
|
|
||||||
crate://crates.io/scopeguard/0.1.2 \
|
|
||||||
crate://crates.io/semver-parser/0.7.0 \
|
|
||||||
crate://crates.io/semver/0.7.0 \
|
|
||||||
crate://crates.io/serde/1.0.11 \
|
|
||||||
crate://crates.io/serde_derive/1.0.11 \
|
|
||||||
crate://crates.io/serde_derive_internals/0.15.1 \
|
|
||||||
crate://crates.io/serde_ignored/0.0.3 \
|
|
||||||
crate://crates.io/serde_json/1.0.2 \
|
|
||||||
crate://crates.io/shell-escape/0.1.3 \
|
|
||||||
crate://crates.io/socket2/0.2.2 \
|
|
||||||
crate://crates.io/stable_deref_trait/1.0.0 \
|
|
||||||
crate://crates.io/strings/0.1.0 \
|
|
||||||
crate://crates.io/strsim/0.6.0 \
|
|
||||||
crate://crates.io/syn/0.11.11 \
|
|
||||||
crate://crates.io/syn/0.8.7 \
|
|
||||||
crate://crates.io/synom/0.11.3 \
|
|
||||||
crate://crates.io/syntex_errors/0.52.0 \
|
|
||||||
crate://crates.io/syntex_pos/0.52.0 \
|
|
||||||
crate://crates.io/syntex_syntax/0.52.0 \
|
|
||||||
crate://crates.io/tar/0.4.13 \
|
|
||||||
crate://crates.io/tempdir/0.3.5 \
|
|
||||||
crate://crates.io/term/0.4.6 \
|
|
||||||
crate://crates.io/term_size/0.3.0 \
|
|
||||||
crate://crates.io/termcolor/0.3.2 \
|
|
||||||
crate://crates.io/textwrap/0.7.0 \
|
|
||||||
crate://crates.io/thread-id/2.0.0 \
|
|
||||||
crate://crates.io/thread_local/0.2.7 \
|
|
||||||
crate://crates.io/thread_local/0.3.4 \
|
|
||||||
crate://crates.io/toml/0.2.1 \
|
|
||||||
crate://crates.io/toml/0.4.5 \
|
|
||||||
crate://crates.io/typed-arena/1.3.0 \
|
|
||||||
crate://crates.io/unicode-bidi/0.3.4 \
|
|
||||||
crate://crates.io/unicode-normalization/0.1.5 \
|
|
||||||
crate://crates.io/unicode-segmentation/1.2.0 \
|
|
||||||
crate://crates.io/unicode-width/0.1.4 \
|
|
||||||
crate://crates.io/unicode-xid/0.0.3 \
|
|
||||||
crate://crates.io/unicode-xid/0.0.4 \
|
|
||||||
crate://crates.io/unreachable/1.0.0 \
|
|
||||||
crate://crates.io/url/1.5.1 \
|
|
||||||
crate://crates.io/url_serde/0.2.0 \
|
|
||||||
crate://crates.io/userenv-sys/0.2.0 \
|
|
||||||
crate://crates.io/utf8-ranges/0.1.3 \
|
|
||||||
crate://crates.io/utf8-ranges/1.0.0 \
|
|
||||||
crate://crates.io/vcpkg/0.2.2 \
|
|
||||||
crate://crates.io/vec_map/0.8.0 \
|
|
||||||
crate://crates.io/void/1.0.2 \
|
|
||||||
crate://crates.io/walkdir/1.0.7 \
|
|
||||||
crate://crates.io/winapi-build/0.1.1 \
|
|
||||||
crate://crates.io/winapi/0.2.8 \
|
|
||||||
crate://crates.io/wincolor/0.1.4 \
|
|
||||||
crate://crates.io/ws2_32-sys/0.2.1 \
|
|
||||||
crate://crates.io/xattr/0.1.11 \
|
|
||||||
crate://crates.io/xz2/0.1.3 \
|
|
||||||
crate://crates.io/yaml-rust/0.3.5 \
|
|
||||||
"
|
|
||||||
11
recipes-devtools/rust/libstd-rs_1.61.0.bb
Normal file
11
recipes-devtools/rust/libstd-rs_1.61.0.bb
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
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"
|
||||||
5
recipes-devtools/rust/libstd-rs_1.64.0.bb
Normal file
5
recipes-devtools/rust/libstd-rs_1.64.0.bb
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
require rust-source-${PV}.inc
|
||||||
|
require libstd-rs.inc
|
||||||
|
|
||||||
|
# libstd moved from src/libstd to library/std in 1.47+
|
||||||
|
S = "${RUSTSRC}/library/std"
|
||||||
369
recipes-devtools/rust/rust-common.inc
Normal file
369
recipes-devtools/rust/rust-common.inc
Normal file
@@ -0,0 +1,369 @@
|
|||||||
|
|
||||||
|
# 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"
|
||||||
|
|
||||||
55
recipes-devtools/rust/rust-cross-canadian-common.inc
Normal file
55
recipes-devtools/rust/rust-cross-canadian-common.inc
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
|
||||||
|
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"
|
||||||
|
|
||||||
78
recipes-devtools/rust/rust-cross-canadian.inc
Normal file
78
recipes-devtools/rust/rust-cross-canadian.inc
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
|
||||||
|
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"
|
||||||
|
|
||||||
6
recipes-devtools/rust/rust-cross-canadian_1.61.0.bb
Normal file
6
recipes-devtools/rust/rust-cross-canadian_1.61.0.bb
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
require rust-cross-canadian.inc
|
||||||
|
require rust-source-${PV}.inc
|
||||||
|
require rust-snapshot-${PV}.inc
|
||||||
|
|
||||||
|
FILESEXTRAPATHS:prepend := "${THISDIR}/rust:"
|
||||||
|
|
||||||
6
recipes-devtools/rust/rust-cross-canadian_1.64.0.bb
Normal file
6
recipes-devtools/rust/rust-cross-canadian_1.64.0.bb
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
require rust-cross-canadian.inc
|
||||||
|
require rust-source-${PV}.inc
|
||||||
|
require rust-snapshot-${PV}.inc
|
||||||
|
|
||||||
|
FILESEXTRAPATHS:prepend := "${THISDIR}/rust:"
|
||||||
|
|
||||||
@@ -1,6 +1,27 @@
|
|||||||
require rust.inc
|
require rust.inc
|
||||||
inherit cross
|
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
|
# Otherwise we'll depend on what we provide
|
||||||
INHIBIT_DEFAULT_RUST_DEPS = "1"
|
INHIBIT_DEFAULT_RUST_DEPS = "1"
|
||||||
|
|
||||||
@@ -13,7 +34,7 @@ DEPENDS += "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}compilerlibs vir
|
|||||||
DEPENDS += "rust-native"
|
DEPENDS += "rust-native"
|
||||||
|
|
||||||
PROVIDES = "virtual/${TARGET_PREFIX}rust"
|
PROVIDES = "virtual/${TARGET_PREFIX}rust"
|
||||||
PN = "rust-cross-${TARGET_ARCH}"
|
PN = "rust-cross-${TUNE_PKGARCH}-${TCLIBC}"
|
||||||
|
|
||||||
# In the cross compilation case, rustc doesn't seem to get the rpath quite
|
# 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
|
# right. It manages to include '../../lib/${TARGET_PREFIX}', but doesn't
|
||||||
@@ -26,11 +47,14 @@ PN = "rust-cross-${TARGET_ARCH}"
|
|||||||
# FIXME: this should really be fixed in rust itself.
|
# FIXME: this should really be fixed in rust itself.
|
||||||
# FIXME: using hard-coded relative paths is wrong, we should ask bitbake for
|
# FIXME: using hard-coded relative paths is wrong, we should ask bitbake for
|
||||||
# the relative path between 2 of it's vars.
|
# the relative path between 2 of it's vars.
|
||||||
HOST_POST_LINK_ARGS_append = " -Wl,-rpath=../../lib"
|
HOST_POST_LINK_ARGS:append = " -Wl,-rpath=../../lib"
|
||||||
BUILD_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
|
# We need the same thing for the calls to the compiler when building the runtime crap
|
||||||
TARGET_CC_ARCH_append = " --sysroot=${STAGING_DIR_TARGET}"
|
TARGET_CC_ARCH:append = " --sysroot=${STAGING_DIR_TARGET}"
|
||||||
|
|
||||||
|
do_rust_setup_snapshot () {
|
||||||
|
}
|
||||||
|
|
||||||
do_configure () {
|
do_configure () {
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,2 @@
|
|||||||
require rust-cross.inc
|
require rust-cross.inc
|
||||||
require rust-source-${PV}.inc
|
require rust-source-${PV}.inc
|
||||||
require rust-snapshot-${PV}.inc
|
|
||||||
@@ -1,3 +1,2 @@
|
|||||||
require rust-cross.inc
|
require rust-cross.inc
|
||||||
require rust-source-${PV}.inc
|
require rust-source-${PV}.inc
|
||||||
require rust-snapshot-${PV}.inc
|
|
||||||
@@ -1,69 +1,72 @@
|
|||||||
SUMMARY = "LLVM compiler framework (packaged with rust)"
|
SUMMARY = "LLVM compiler framework (packaged with rust)"
|
||||||
LICENSE = "NCSA"
|
LICENSE ?= "Apache-2.0-with-LLVM-exception"
|
||||||
|
HOMEPAGE = "http://www.rust-lang.org"
|
||||||
|
|
||||||
S = "${RUSTSRC}/src/llvm"
|
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 \
|
||||||
|
"
|
||||||
|
|
||||||
LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=4c0bc17c954e99fd547528d938832bfa"
|
S = "${RUSTSRC}/src/llvm-project/llvm"
|
||||||
|
|
||||||
inherit cmake pythonnative
|
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}"
|
||||||
|
|
||||||
EXTRA_OECMAKE = " \
|
EXTRA_OECMAKE = " \
|
||||||
-DLLVM_TARGETS_TO_BUILD='X86;ARM;AArch64;PowerPC' \
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
-DLLVM_ENABLE_ASSERTIONS=OFF \
|
-DLLVM_TARGETS_TO_BUILD='ARM;AArch64;Mips;PowerPC;RISCV;X86' \
|
||||||
-DLLVM_BUILD_DOCS=OFF \
|
-DLLVM_BUILD_DOCS=OFF \
|
||||||
-DLLVM_ENABLE_TERMINFO=OFF \
|
-DLLVM_ENABLE_TERMINFO=OFF \
|
||||||
-DLLVM_ENABLE_ZLIB=OFF \
|
-DLLVM_ENABLE_ZLIB=OFF \
|
||||||
|
-DLLVM_ENABLE_LIBXML2=OFF \
|
||||||
-DLLVM_ENABLE_FFI=OFF \
|
-DLLVM_ENABLE_FFI=OFF \
|
||||||
-DLLVM_INSTALL_UTILS=ON \
|
-DLLVM_INSTALL_UTILS=ON \
|
||||||
-DLLVM_BUILD_TOOLS=ON \
|
|
||||||
-DLLVM_BUILD_EXAMPLES=OFF \
|
-DLLVM_BUILD_EXAMPLES=OFF \
|
||||||
-DLLVM_INCLUDE_EXAMPLES=OFF \
|
-DLLVM_INCLUDE_EXAMPLES=OFF \
|
||||||
-DLLVM_BUILD_TESTS=OFF \
|
-DLLVM_BUILD_TESTS=OFF \
|
||||||
-DLLVM_INCLUDE_TESTS=OFF \
|
-DLLVM_INCLUDE_TESTS=OFF \
|
||||||
-DLLVM_TARGET_ARCH=${TARGET_ARCH} \
|
-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
|
# The debug symbols are huge here (>2GB) so suppress them since they
|
||||||
# provide almost no value. If you really need them then override this
|
# provide almost no value. If you really need them then override this
|
||||||
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
|
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
|
||||||
|
|
||||||
do_compile_prepend_class-target() {
|
export YOCTO_ALTERNATE_EXE_PATH = "${STAGING_LIBDIR}/llvm-rust/bin/llvm-config"
|
||||||
# Fix paths in llvm-config
|
|
||||||
sed -i "s|sys::path::parent_path(CurrentPath))\.str()|sys::path::parent_path(sys::path::parent_path(CurrentPath))).str()|g" ${S}/tools/llvm-config/llvm-config.cpp
|
|
||||||
|
|
||||||
# Fix the hardcoded libdir in llvm-config
|
do_install:append () {
|
||||||
sed -i 's:/lib\>:/${baselib}:g' ${S}/tools/llvm-config/llvm-config.cpp
|
# we don't need any of this stuff to build Rust
|
||||||
}
|
rm -rf "${D}/usr/lib/cmake"
|
||||||
|
|
||||||
do_compile() {
|
|
||||||
oe_runmake
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install_append_class-target() {
|
|
||||||
# Disable checks on the native tools, since these should came from the native recipe
|
|
||||||
sed -i -e 's/\(.*APPEND.*_IMPORT_CHECK_FILES_FOR_.*{_IMPORT_PREFIX}\/bin\/.*\)/#\1/' ${D}/usr/share/llvm/cmake/LLVMExports-noconfig.cmake
|
|
||||||
}
|
|
||||||
|
|
||||||
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"
|
PACKAGES =+ "${PN}-bugpointpasses ${PN}-llvmhello ${PN}-liblto"
|
||||||
|
|
||||||
# Add the extra locations to avoid the complaints about unpackaged files
|
# Add the extra locations to avoid the complaints about unpackaged files
|
||||||
FILES_${PN} += "${libdir}/libLLVM*.so"
|
FILES:${PN}-bugpointpasses = "${libdir}/llvm-rust/lib/BugpointPasses.so"
|
||||||
FILES_${PN}-dev += "${datadir}/llvm"
|
FILES:${PN}-llvmhello = "${libdir}/llvm-rust/lib/LLVMHello.so"
|
||||||
FILES_${PN}-bugpointpasses = "${libdir}/BugpointPasses.so"
|
FILES:${PN}-liblto = "${libdir}/llvm-rust/lib/libLTO.so.*"
|
||||||
FILES_${PN}-llvmhello = "${libdir}/LLVMHello.so"
|
FILES:${PN}-staticdev =+ "${libdir}/llvm-rust/*/*.a"
|
||||||
FILES_${PN}-liblto = "${libdir}/libLTO.so"
|
FILES:${PN} += "${libdir}/libLLVM*.so.* ${libdir}/llvm-rust/lib/*.so.* ${libdir}/llvm-rust/bin"
|
||||||
|
FILES:${PN}-dev += "${datadir}/llvm ${libdir}/llvm-rust/lib/*.so ${libdir}/llvm-rust/include ${libdir}/llvm-rust/share ${libdir}/llvm-rust/lib/cmake"
|
||||||
|
|
||||||
BBCLASSEXTEND = "native"
|
BBCLASSEXTEND = "native"
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
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;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
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;
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
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)
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
require rust-source-${PV}.inc
|
|
||||||
require rust-llvm.inc
|
|
||||||
|
|
||||||
LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=e825e017edc35cfd58e26116e5251771"
|
|
||||||
|
|
||||||
do_install_prepend () {
|
|
||||||
# the install does a sed on this without installing the file
|
|
||||||
# we don't need it for anything
|
|
||||||
mkdir -p "${D}/usr/share/llvm/cmake"
|
|
||||||
touch "${D}/usr/share/llvm/cmake/LLVMExports-noconfig.cmake"
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install_append () {
|
|
||||||
# we don't need any of this stuff to build Rust
|
|
||||||
rm -rf "${D}/usr/lib/cmake"
|
|
||||||
}
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
require rust-source-${PV}.inc
|
|
||||||
require rust-llvm.inc
|
|
||||||
|
|
||||||
LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=e825e017edc35cfd58e26116e5251771"
|
|
||||||
|
|
||||||
do_install_prepend () {
|
|
||||||
# the install does a sed on this without installing the file
|
|
||||||
# we don't need it for anything
|
|
||||||
mkdir -p "${D}/usr/share/llvm/cmake"
|
|
||||||
touch "${D}/usr/share/llvm/cmake/LLVMExports-noconfig.cmake"
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install_append () {
|
|
||||||
# we don't need any of this stuff to build Rust
|
|
||||||
rm -rf "${D}/usr/lib/cmake"
|
|
||||||
}
|
|
||||||
5
recipes-devtools/rust/rust-llvm_1.61.0.bb
Normal file
5
recipes-devtools/rust/rust-llvm_1.61.0.bb
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
# 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
|
||||||
5
recipes-devtools/rust/rust-llvm_1.64.0.bb
Normal file
5
recipes-devtools/rust/rust-llvm_1.64.0.bb
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
# 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
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
# 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"
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
# Specifics for Rust 1.21.0
|
|
||||||
|
|
||||||
## This is information on the rust-snapshot (binary) used to build our current release.
|
|
||||||
## snapshot info is taken from rust/src/stage0.txt
|
|
||||||
## TODO: find a way to add additional SRC_URIs based on the contents of an
|
|
||||||
## earlier SRC_URI.
|
|
||||||
RS_VERSION = "1.20.0"
|
|
||||||
|
|
||||||
RUST_STD_SNAPSHOT = "rust-std-${RS_VERSION}-${RUST_BUILD_SYS}"
|
|
||||||
RUSTC_SNAPSHOT = "rustc-${RS_VERSION}-${RUST_BUILD_SYS}"
|
|
||||||
CARGO_VERSION = "0.21.0"
|
|
||||||
CARGO_SNAPSHOT = "cargo-${CARGO_VERSION}-${RUST_BUILD_SYS}"
|
|
||||||
|
|
||||||
SRC_URI += " \
|
|
||||||
https://static.rust-lang.org/dist/${RUST_STD_SNAPSHOT}.tar.gz;name=rust-std-snapshot;subdir=rust-snapshot-components \
|
|
||||||
https://static.rust-lang.org/dist/${RUSTC_SNAPSHOT}.tar.gz;name=rustc-snapshot;subdir=rust-snapshot-components \
|
|
||||||
https://static.rust-lang.org/dist/${CARGO_SNAPSHOT}.tar.gz;name=cargo-snapshot;subdir=rust-snapshot-components \
|
|
||||||
"
|
|
||||||
|
|
||||||
# These are x86_64-unknown-linux-gnu hashes, how can we add more?
|
|
||||||
SRC_URI[rustc-snapshot.md5sum] = "c6276176ec6061b61ae73617a64bceb0"
|
|
||||||
SRC_URI[rustc-snapshot.sha256sum] = "000e776431718a32b5d40c4aa6e09b3425f0b71dea8c95e718d29b8c0f5b35d3"
|
|
||||||
SRC_URI[rust-std-snapshot.md5sum] = "8c0f7355b66830517a51a2bd6f530327"
|
|
||||||
SRC_URI[rust-std-snapshot.sha256sum] = "a1b3e13b9d6f9aa713783145cb83070b1dabbe17349043b3528031d7712ca929"
|
|
||||||
SRC_URI[cargo-snapshot.md5sum] = "0e5389d2e38a14933dda77db8172cb1f"
|
|
||||||
SRC_URI[cargo-snapshot.sha256sum] = "caccf4ab039c806a9e6fdc7fe389cc88fb771e28e30d93c07a5c56ef845cdf57"
|
|
||||||
25
recipes-devtools/rust/rust-snapshot-1.61.0.inc
Normal file
25
recipes-devtools/rust/rust-snapshot-1.61.0.inc
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
## 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"
|
||||||
25
recipes-devtools/rust/rust-snapshot-1.64.0.inc
Normal file
25
recipes-devtools/rust/rust-snapshot-1.64.0.inc
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
## 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"
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
# 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"
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
# Specifics for Rust 1.21.0
|
|
||||||
|
|
||||||
SRC_URI += "\
|
|
||||||
https://static.rust-lang.org/dist/rustc-${PV}-src.tar.gz;name=rust \
|
|
||||||
"
|
|
||||||
SRC_URI[rust.md5sum] = "bc494706b764276613064aad52922f53"
|
|
||||||
SRC_URI[rust.sha256sum] = "1707c142244b5bd909993559c6116c81987c1de21d6207c05d3ecbe5bba548fa"
|
|
||||||
|
|
||||||
# later versions of rust change the directory that they unextract to
|
|
||||||
RUSTSRC = "${WORKDIR}/rustc-${PV}-src"
|
|
||||||
# set this as our default
|
|
||||||
S = "${RUSTSRC}"
|
|
||||||
|
|
||||||
LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=c709a09d1b062d9a908e3631c1e1cdf5"
|
|
||||||
7
recipes-devtools/rust/rust-source-1.61.0.inc
Normal file
7
recipes-devtools/rust/rust-source-1.61.0.inc
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
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"
|
||||||
7
recipes-devtools/rust/rust-source-1.64.0.inc
Normal file
7
recipes-devtools/rust/rust-source-1.64.0.inc
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
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"
|
||||||
10
recipes-devtools/rust/rust-target.inc
Normal file
10
recipes-devtools/rust/rust-target.inc
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
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"
|
||||||
38
recipes-devtools/rust/rust-tools-cross-canadian.inc
Normal file
38
recipes-devtools/rust/rust-tools-cross-canadian.inc
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
|
||||||
|
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"
|
||||||
|
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
require rust-tools-cross-canadian.inc
|
||||||
|
require rust-source-${PV}.inc
|
||||||
|
require rust-snapshot-${PV}.inc
|
||||||
|
|
||||||
|
FILESEXTRAPATHS:prepend := "${THISDIR}/rust:"
|
||||||
|
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
require rust-tools-cross-canadian.inc
|
||||||
|
require rust-source-${PV}.inc
|
||||||
|
require rust-snapshot-${PV}.inc
|
||||||
|
|
||||||
|
FILESEXTRAPATHS:prepend := "${THISDIR}/rust:"
|
||||||
|
|
||||||
@@ -2,17 +2,32 @@ SUMMARY = "Rust compiler and runtime libaries"
|
|||||||
HOMEPAGE = "http://www.rust-lang.org"
|
HOMEPAGE = "http://www.rust-lang.org"
|
||||||
SECTION = "devel"
|
SECTION = "devel"
|
||||||
LICENSE = "MIT | Apache-2.0"
|
LICENSE = "MIT | Apache-2.0"
|
||||||
|
LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=93a95682d51b4cb0a633a97046940ef0"
|
||||||
|
|
||||||
inherit rust
|
inherit rust
|
||||||
inherit cargo_common
|
inherit cargo_common
|
||||||
|
|
||||||
DEPENDS += "file-native python-native"
|
DEPENDS += "file-native python3-native"
|
||||||
|
DEPENDS:append:class-native = " rust-llvm-native"
|
||||||
|
|
||||||
|
S = "${RUSTSRC}"
|
||||||
|
|
||||||
# We generate local targets, and need to be able to locate them
|
# We generate local targets, and need to be able to locate them
|
||||||
export RUST_TARGET_PATH="${WORKDIR}/targets/"
|
export RUST_TARGET_PATH="${WORKDIR}/targets/"
|
||||||
|
|
||||||
export FORCE_CRATE_HASH="${BB_TASKHASH}"
|
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 () {
|
setup_cargo_environment () {
|
||||||
# The first step is to build bootstrap and some early stage tools,
|
# The first step is to build bootstrap and some early stage tools,
|
||||||
# these are build for the same target as the snapshot, e.g.
|
# these are build for the same target as the snapshot, e.g.
|
||||||
@@ -20,244 +35,11 @@ setup_cargo_environment () {
|
|||||||
# Later stages are build for the native target (i.e. target.x86_64-linux)
|
# Later stages are build for the native target (i.e. target.x86_64-linux)
|
||||||
cargo_common_do_configure
|
cargo_common_do_configure
|
||||||
|
|
||||||
echo "[target.${RUST_BUILD_SYS}]" >> ${CARGO_HOME}/config
|
printf '[target.%s]\n' "${SNAPSHOT_BUILD_SYS}" >> ${CARGO_HOME}/config
|
||||||
echo "linker = '${RUST_TARGET_CCLD}'" >> ${CARGO_HOME}/config
|
printf "linker = '%s'\n" "${RUST_BUILD_CCLD}" >> ${CARGO_HOME}/config
|
||||||
}
|
}
|
||||||
|
|
||||||
# Right now this is focused on arm-specific tune features.
|
include rust-common.inc
|
||||||
# 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")
|
|
||||||
|
|
||||||
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")
|
|
||||||
|
|
||||||
# Seems like it could be infered by the lack of vfp options, but we'll
|
|
||||||
# include it anyhow
|
|
||||||
if 'soft' in feat:
|
|
||||||
f.append("+soft-float")
|
|
||||||
|
|
||||||
return ','.join(f)
|
|
||||||
|
|
||||||
# TARGET_CC_ARCH changes from build/cross/target so it'll do the right thing
|
|
||||||
# this should go away when https://github.com/rust-lang/rust/pull/31709 is
|
|
||||||
# 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 ','.join(f)
|
|
||||||
|
|
||||||
## arm-unknown-linux-gnueabihf
|
|
||||||
DATA_LAYOUT[arm] = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64"
|
|
||||||
LLVM_TARGET[arm] = "${RUST_TARGET_SYS}"
|
|
||||||
TARGET_ENDIAN[arm] = "little"
|
|
||||||
TARGET_POINTER_WIDTH[arm] = "32"
|
|
||||||
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"
|
|
||||||
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"
|
|
||||||
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"
|
|
||||||
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"
|
|
||||||
MAX_ATOMIC_WIDTH[i586] = "64"
|
|
||||||
|
|
||||||
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"
|
|
||||||
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"
|
|
||||||
|
|
||||||
try:
|
|
||||||
return trans[cpu]
|
|
||||||
except:
|
|
||||||
return trans.get(target, "generic")
|
|
||||||
|
|
||||||
TARGET_LLVM_CPU="${@llvm_cpu(d)}"
|
|
||||||
TARGET_LLVM_FEATURES = "${@llvm_features_from_tune(d)} ${@llvm_features_from_cc_arch(d)}"
|
|
||||||
|
|
||||||
# class-native implies TARGET=HOST, and TUNE_FEATURES only describes the real
|
|
||||||
# (original) target.
|
|
||||||
TARGET_LLVM_FEATURES_class-native = "${@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-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
|
|
||||||
|
|
||||||
# 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 () {
|
do_rust_setup_snapshot () {
|
||||||
for installer in "${WORKDIR}/rust-snapshot-components/"*"/install.sh"; do
|
for installer in "${WORKDIR}/rust-snapshot-components/"*"/install.sh"; do
|
||||||
@@ -267,11 +49,19 @@ do_rust_setup_snapshot () {
|
|||||||
# Some versions of rust (e.g. 1.18.0) tries to find cargo in stage0/bin/cargo
|
# Some versions of rust (e.g. 1.18.0) tries to find cargo in stage0/bin/cargo
|
||||||
# and fail without it there.
|
# and fail without it there.
|
||||||
mkdir -p ${RUSTSRC}/build/${BUILD_SYS}
|
mkdir -p ${RUSTSRC}/build/${BUILD_SYS}
|
||||||
ln -s ${WORKDIR}/rust-snapshot/ ${RUSTSRC}/build/${BUILD_SYS}/stage0
|
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
|
addtask rust_setup_snapshot after do_unpack before do_configure
|
||||||
do_rust_setup_snapshot[dirs] += "${WORKDIR}/rust-snapshot"
|
do_rust_setup_snapshot[dirs] += "${WORKDIR}/rust-snapshot"
|
||||||
|
do_rust_setup_snapshot[vardepsexclude] += "UNINATIVE_LOADER"
|
||||||
|
|
||||||
python do_configure() {
|
python do_configure() {
|
||||||
import json
|
import json
|
||||||
@@ -292,21 +82,27 @@ python do_configure() {
|
|||||||
target_section = "target.{}".format(d.getVar('TARGET_SYS', True))
|
target_section = "target.{}".format(d.getVar('TARGET_SYS', True))
|
||||||
config.add_section(target_section)
|
config.add_section(target_section)
|
||||||
|
|
||||||
llvm_config = d.expand("${STAGING_DIR_NATIVE}${bindir_native}/llvm-config")
|
llvm_config = d.expand("${YOCTO_ALTERNATE_EXE_PATH}")
|
||||||
config.set(target_section, "llvm-config", e(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, "cxx", e(d.expand("${RUST_TARGET_CXX}")))
|
||||||
config.set(target_section, "cc", e(d.expand("${RUST_TARGET_CC}")))
|
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]
|
# [rust]
|
||||||
config.add_section("rust")
|
config.add_section("rust")
|
||||||
config.set("rust", "rpath", e(True))
|
config.set("rust", "rpath", e(True))
|
||||||
config.set("rust", "channel", e("stable"))
|
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
|
# Whether or not to optimize the compiler and standard library
|
||||||
config.set("rust", "optimize", e(True))
|
config.set("rust", "optimize", e(True))
|
||||||
|
|
||||||
@@ -318,18 +114,39 @@ python do_configure() {
|
|||||||
rustc = d.expand("${WORKDIR}/rust-snapshot/bin/rustc")
|
rustc = d.expand("${WORKDIR}/rust-snapshot/bin/rustc")
|
||||||
config.set("build", "rustc", e(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")
|
cargo = d.expand("${WORKDIR}/rust-snapshot/bin/cargo")
|
||||||
config.set("build", "cargo", e(cargo))
|
config.set("build", "cargo", e(cargo))
|
||||||
|
|
||||||
targets = [d.getVar("TARGET_SYS", True)]
|
config.set("build", "vendor", e(True))
|
||||||
|
|
||||||
|
if not "targets" in locals():
|
||||||
|
targets = [d.getVar("TARGET_SYS", True)]
|
||||||
config.set("build", "target", e(targets))
|
config.set("build", "target", e(targets))
|
||||||
|
|
||||||
hosts = [d.getVar("HOST_SYS", True)]
|
if not "hosts" in locals():
|
||||||
config.set("build", "host", e(targets))
|
hosts = [d.getVar("HOST_SYS", True)]
|
||||||
|
config.set("build", "host", e(hosts))
|
||||||
|
|
||||||
config.set("build", "build", e(d.getVar("BUILD_SYS", True)))
|
# 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)))
|
||||||
|
|
||||||
with open("config.toml", "w") as f:
|
with open("config.toml", "w") as f:
|
||||||
|
f.write('changelog-seen = 2\n\n')
|
||||||
config.write(f)
|
config.write(f)
|
||||||
|
|
||||||
# set up ${WORKDIR}/cargo_home
|
# set up ${WORKDIR}/cargo_home
|
||||||
@@ -350,42 +167,36 @@ rust_runx () {
|
|||||||
|
|
||||||
oe_cargo_fix_env
|
oe_cargo_fix_env
|
||||||
|
|
||||||
python src/bootstrap/bootstrap.py "$@" --verbose
|
python3 src/bootstrap/bootstrap.py ${@oe.utils.parallel_make_argument(d, '-j %d')} "$@" --verbose
|
||||||
}
|
}
|
||||||
|
rust_runx[vardepsexclude] += "PARALLEL_MAKE"
|
||||||
|
|
||||||
do_compile () {
|
do_compile () {
|
||||||
rust_runx build
|
rust_runx build
|
||||||
}
|
}
|
||||||
|
|
||||||
|
rust_do_install () {
|
||||||
|
mkdir -p ${D}${bindir}
|
||||||
|
cp build/${HOST_SYS}/stage2/bin/* ${D}${bindir}
|
||||||
|
|
||||||
rust_do_dist_install () {
|
mkdir -p ${D}${libdir}/rustlib
|
||||||
rust_runx dist
|
cp -pRd build/${HOST_SYS}/stage2/lib/* ${D}${libdir}
|
||||||
|
# Remove absolute symlink so bitbake doesn't complain
|
||||||
for installer in "build/tmp/dist/rustc"*"/install.sh"; do
|
rm -f ${D}${libdir}/rustlib/src/rust
|
||||||
"${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
|
# Install our custom target.json files
|
||||||
local td="${D}${libdir}/rustlib/"
|
local td="${D}${libdir}/rustlib/"
|
||||||
install -d "$td"
|
install -d "$td"
|
||||||
for tgt in "${WORKDIR}/targets/"* ; do
|
for tgt in "${WORKDIR}/targets/"* ; do
|
||||||
install -m 0644 "$tgt" "$td"
|
install -m 0644 "$tgt" "$td"
|
||||||
done
|
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 () {
|
do_install () {
|
||||||
rust_do_dist_install
|
rust_do_install
|
||||||
|
rust_install_targets
|
||||||
}
|
}
|
||||||
# ex: sts=4 et sw=4 ts=8
|
# ex: sts=4 et sw=4 ts=8
|
||||||
|
|||||||
@@ -1,143 +0,0 @@
|
|||||||
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"
|
|
||||||
@@ -1,174 +0,0 @@
|
|||||||
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/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"
|
|
||||||
21
recipes-devtools/rust/rust_1.61.0.bb
Normal file
21
recipes-devtools/rust/rust_1.61.0.bb
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
require rust-target.inc
|
||||||
|
require rust-source-${PV}.inc
|
||||||
|
require rust-snapshot-${PV}.inc
|
||||||
|
|
||||||
|
INSANE_SKIP:${PN}:class-native = "already-stripped"
|
||||||
|
|
||||||
|
do_compile () {
|
||||||
|
rust_runx build --stage 2
|
||||||
|
}
|
||||||
|
|
||||||
|
rust_do_install() {
|
||||||
|
rust_runx install
|
||||||
|
}
|
||||||
|
|
||||||
|
python () {
|
||||||
|
pn = d.getVar('PN')
|
||||||
|
|
||||||
|
if not pn.endswith("-native"):
|
||||||
|
raise bb.parse.SkipRecipe("Rust recipe doesn't work for target builds at this time. Fixes welcome.")
|
||||||
|
}
|
||||||
|
|
||||||
21
recipes-devtools/rust/rust_1.64.0.bb
Normal file
21
recipes-devtools/rust/rust_1.64.0.bb
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
require rust-target.inc
|
||||||
|
require rust-source-${PV}.inc
|
||||||
|
require rust-snapshot-${PV}.inc
|
||||||
|
|
||||||
|
INSANE_SKIP:${PN}:class-native = "already-stripped"
|
||||||
|
|
||||||
|
do_compile () {
|
||||||
|
rust_runx build --stage 2
|
||||||
|
}
|
||||||
|
|
||||||
|
rust_do_install() {
|
||||||
|
rust_runx install
|
||||||
|
}
|
||||||
|
|
||||||
|
python () {
|
||||||
|
pn = d.getVar('PN')
|
||||||
|
|
||||||
|
if not pn.endswith("-native"):
|
||||||
|
raise bb.parse.SkipRecipe("Rust recipe doesn't work for target builds at this time. Fixes welcome.")
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
From fa40b874f6470ec11a8fd7b0c9909d0cdd2d6feb Mon Sep 17 00:00:00 2001
|
||||||
|
From: Dan Callaghan <dan.callaghan@opengear.com>
|
||||||
|
Date: Fri, 5 Feb 2021 08:56:34 +1000
|
||||||
|
Subject: [PATCH] enable LTO
|
||||||
|
|
||||||
|
---
|
||||||
|
Cargo.toml | 3 +++
|
||||||
|
1 file changed, 3 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/Cargo.toml b/Cargo.toml
|
||||||
|
index 7a2f6c8..cdb6b5d 100644
|
||||||
|
--- a/Cargo.toml
|
||||||
|
+++ b/Cargo.toml
|
||||||
|
@@ -3,3 +3,6 @@
|
||||||
|
name = "rust-hello-world"
|
||||||
|
version = "0.0.1"
|
||||||
|
authors = ["Cody P Schafer <dev@codyps.com>"]
|
||||||
|
+
|
||||||
|
+[profile.release]
|
||||||
|
+lto = true
|
||||||
|
--
|
||||||
|
2.28.0
|
||||||
|
|
||||||
@@ -1,11 +1,15 @@
|
|||||||
inherit cargo
|
inherit cargo
|
||||||
|
|
||||||
SRC_URI = "git://github.com/jmesmon/rust-hello-world.git;protocol=https"
|
SRC_URI = "git://github.com/meta-rust/rust-hello-world.git;protocol=https"
|
||||||
SRCREV="e0fa23f1a3cb1eb1407165bd2fc36d2f6e6ad728"
|
SRCREV="e0fa23f1a3cb1eb1407165bd2fc36d2f6e6ad728"
|
||||||
LIC_FILES_CHKSUM="file://COPYRIGHT;md5=e6b2207ac3740d2d01141c49208c2147"
|
LIC_FILES_CHKSUM="file://COPYRIGHT;md5=e6b2207ac3740d2d01141c49208c2147"
|
||||||
|
|
||||||
|
SRC_URI += "\
|
||||||
|
file://0001-enable-LTO.patch \
|
||||||
|
"
|
||||||
|
|
||||||
SUMMARY = "Hello World by Cargo for Rust"
|
SUMMARY = "Hello World by Cargo for Rust"
|
||||||
HOMEPAGE = "https://github.com/jmesmon/rust-hello-world"
|
HOMEPAGE = "https://github.com/meta-rust/rust-hello-world"
|
||||||
LICENSE = "MIT | Apache-2.0"
|
LICENSE = "MIT | Apache-2.0"
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
S = "${WORKDIR}/git"
|
||||||
|
|||||||
@@ -1,67 +0,0 @@
|
|||||||
# Auto-Generated by cargo-bitbake 0.3.6
|
|
||||||
#
|
|
||||||
inherit cargo
|
|
||||||
|
|
||||||
# If this is git based prefer versioned ones if they exist
|
|
||||||
# DEFAULT_PREFERENCE = "-1"
|
|
||||||
|
|
||||||
# how to get rustfmt could be as easy as but default to a git checkout:
|
|
||||||
# SRC_URI += "crate://crates.io/rustfmt/0.8.0"
|
|
||||||
SRC_URI += "git://github.com/rust-lang-nursery/rustfmt.git;protocol=https;branch=syntex"
|
|
||||||
SRCREV = "4ed5a3bac71ed104e27797ee63729b0333e39d39"
|
|
||||||
S = "${WORKDIR}/git"
|
|
||||||
CARGO_SRC_DIR=""
|
|
||||||
|
|
||||||
|
|
||||||
# please note if you have entries that do not begin with crate://
|
|
||||||
# you must change them to how that package can be fetched
|
|
||||||
SRC_URI += " \
|
|
||||||
crate://crates.io/aho-corasick/0.6.2 \
|
|
||||||
crate://crates.io/bitflags/0.8.0 \
|
|
||||||
crate://crates.io/diff/0.1.10 \
|
|
||||||
crate://crates.io/either/1.0.3 \
|
|
||||||
crate://crates.io/env_logger/0.4.1 \
|
|
||||||
crate://crates.io/getopts/0.2.14 \
|
|
||||||
crate://crates.io/itertools/0.5.9 \
|
|
||||||
crate://crates.io/kernel32-sys/0.2.2 \
|
|
||||||
crate://crates.io/libc/0.2.21 \
|
|
||||||
crate://crates.io/log/0.3.6 \
|
|
||||||
crate://crates.io/memchr/1.0.1 \
|
|
||||||
crate://crates.io/multimap/0.3.0 \
|
|
||||||
crate://crates.io/regex-syntax/0.4.0 \
|
|
||||||
crate://crates.io/regex/0.2.1 \
|
|
||||||
crate://crates.io/rustc-serialize/0.3.22 \
|
|
||||||
crate://crates.io/same-file/0.1.3 \
|
|
||||||
crate://crates.io/strings/0.0.1 \
|
|
||||||
crate://crates.io/syntex_errors/0.58.1 \
|
|
||||||
crate://crates.io/syntex_pos/0.58.1 \
|
|
||||||
crate://crates.io/syntex_syntax/0.58.1 \
|
|
||||||
crate://crates.io/term/0.4.5 \
|
|
||||||
crate://crates.io/thread-id/3.0.0 \
|
|
||||||
crate://crates.io/thread_local/0.3.3 \
|
|
||||||
crate://crates.io/toml/0.2.1 \
|
|
||||||
crate://crates.io/unicode-segmentation/1.1.0 \
|
|
||||||
crate://crates.io/unicode-xid/0.0.4 \
|
|
||||||
crate://crates.io/unreachable/0.1.1 \
|
|
||||||
crate://crates.io/utf8-ranges/1.0.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 \
|
|
||||||
"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
LIC_FILES_CHKSUM=" \
|
|
||||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
|
||||||
file://LICENSE-MIT;md5=0b29d505d9225d1f0815cbdcf602b901 \
|
|
||||||
"
|
|
||||||
|
|
||||||
SUMMARY = "Tool to find and fix Rust formatting issues"
|
|
||||||
HOMEPAGE = "https://github.com/rust-lang-nursery/rustfmt"
|
|
||||||
LICENSE = "Apache-2.0 | MIT"
|
|
||||||
|
|
||||||
# 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 rustfmt.inc
|
|
||||||
171
recipes-example/rustfmt/rustfmt_1.4.2.bb
Normal file
171
recipes-example/rustfmt/rustfmt_1.4.2.bb
Normal file
@@ -0,0 +1,171 @@
|
|||||||
|
# Auto-Generated by cargo-bitbake 0.3.13
|
||||||
|
#
|
||||||
|
inherit cargo
|
||||||
|
|
||||||
|
# If this is git based prefer versioned ones if they exist
|
||||||
|
# DEFAULT_PREFERENCE = "-1"
|
||||||
|
|
||||||
|
# how to get rustfmt-nightly could be as easy as but default to a git checkout:
|
||||||
|
# SRC_URI += "crate://crates.io/rustfmt-nightly/1.4.2"
|
||||||
|
SRC_URI += "git://github.com/rust-lang/rustfmt/;protocol=https;nobranch=1"
|
||||||
|
SRCREV = "aeb3496f31a0dfa90fc511520d2023634e885260"
|
||||||
|
S = "${WORKDIR}/git"
|
||||||
|
CARGO_SRC_DIR = ""
|
||||||
|
|
||||||
|
|
||||||
|
# please note if you have entries that do not begin with crate://
|
||||||
|
# you must change them to how that package can be fetched
|
||||||
|
SRC_URI += " \
|
||||||
|
crate://crates.io/aho-corasick/0.7.4 \
|
||||||
|
crate://crates.io/annotate-snippets/0.6.1 \
|
||||||
|
crate://crates.io/ansi_term/0.11.0 \
|
||||||
|
crate://crates.io/argon2rs/0.2.5 \
|
||||||
|
crate://crates.io/arrayvec/0.4.11 \
|
||||||
|
crate://crates.io/atty/0.2.13 \
|
||||||
|
crate://crates.io/autocfg/0.1.5 \
|
||||||
|
crate://crates.io/backtrace-sys/0.1.31 \
|
||||||
|
crate://crates.io/backtrace/0.3.33 \
|
||||||
|
crate://crates.io/bitflags/1.1.0 \
|
||||||
|
crate://crates.io/blake2-rfc/0.2.18 \
|
||||||
|
crate://crates.io/bstr/0.2.6 \
|
||||||
|
crate://crates.io/bytecount/0.5.1 \
|
||||||
|
crate://crates.io/byteorder/1.3.2 \
|
||||||
|
crate://crates.io/c2-chacha/0.2.2 \
|
||||||
|
crate://crates.io/cargo_metadata/0.8.1 \
|
||||||
|
crate://crates.io/cc/1.0.38 \
|
||||||
|
crate://crates.io/cfg-if/0.1.9 \
|
||||||
|
crate://crates.io/clap/2.33.0 \
|
||||||
|
crate://crates.io/cloudabi/0.0.3 \
|
||||||
|
crate://crates.io/constant_time_eq/0.1.3 \
|
||||||
|
crate://crates.io/crossbeam-channel/0.3.9 \
|
||||||
|
crate://crates.io/crossbeam-deque/0.2.0 \
|
||||||
|
crate://crates.io/crossbeam-epoch/0.3.1 \
|
||||||
|
crate://crates.io/crossbeam-utils/0.2.2 \
|
||||||
|
crate://crates.io/crossbeam-utils/0.6.6 \
|
||||||
|
crate://crates.io/derive-new/0.5.7 \
|
||||||
|
crate://crates.io/diff/0.1.11 \
|
||||||
|
crate://crates.io/dirs-sys/0.3.3 \
|
||||||
|
crate://crates.io/dirs/2.0.1 \
|
||||||
|
crate://crates.io/either/1.5.2 \
|
||||||
|
crate://crates.io/ena/0.13.0 \
|
||||||
|
crate://crates.io/env_logger/0.6.2 \
|
||||||
|
crate://crates.io/failure/0.1.5 \
|
||||||
|
crate://crates.io/failure_derive/0.1.5 \
|
||||||
|
crate://crates.io/fnv/1.0.6 \
|
||||||
|
crate://crates.io/fuchsia-cprng/0.1.1 \
|
||||||
|
crate://crates.io/getopts/0.2.19 \
|
||||||
|
crate://crates.io/getrandom/0.1.6 \
|
||||||
|
crate://crates.io/globset/0.4.4 \
|
||||||
|
crate://crates.io/heck/0.3.1 \
|
||||||
|
crate://crates.io/humantime/1.2.0 \
|
||||||
|
crate://crates.io/ignore/0.4.8 \
|
||||||
|
crate://crates.io/indexmap/1.0.2 \
|
||||||
|
crate://crates.io/itertools/0.8.0 \
|
||||||
|
crate://crates.io/itoa/0.4.4 \
|
||||||
|
crate://crates.io/jobserver/0.1.16 \
|
||||||
|
crate://crates.io/lazy_static/1.3.0 \
|
||||||
|
crate://crates.io/libc/0.2.60 \
|
||||||
|
crate://crates.io/lock_api/0.1.5 \
|
||||||
|
crate://crates.io/log/0.4.7 \
|
||||||
|
crate://crates.io/memchr/2.2.1 \
|
||||||
|
crate://crates.io/memoffset/0.2.1 \
|
||||||
|
crate://crates.io/nodrop/0.1.13 \
|
||||||
|
crate://crates.io/num_cpus/1.10.1 \
|
||||||
|
crate://crates.io/owning_ref/0.4.0 \
|
||||||
|
crate://crates.io/packed_simd/0.3.3 \
|
||||||
|
crate://crates.io/parking_lot/0.7.1 \
|
||||||
|
crate://crates.io/parking_lot_core/0.4.0 \
|
||||||
|
crate://crates.io/ppv-lite86/0.2.5 \
|
||||||
|
crate://crates.io/proc-macro2/0.4.30 \
|
||||||
|
crate://crates.io/quick-error/1.2.2 \
|
||||||
|
crate://crates.io/quote/0.6.13 \
|
||||||
|
crate://crates.io/rand/0.6.5 \
|
||||||
|
crate://crates.io/rand/0.7.0 \
|
||||||
|
crate://crates.io/rand_chacha/0.1.1 \
|
||||||
|
crate://crates.io/rand_chacha/0.2.1 \
|
||||||
|
crate://crates.io/rand_core/0.3.1 \
|
||||||
|
crate://crates.io/rand_core/0.4.0 \
|
||||||
|
crate://crates.io/rand_core/0.5.0 \
|
||||||
|
crate://crates.io/rand_hc/0.1.0 \
|
||||||
|
crate://crates.io/rand_hc/0.2.0 \
|
||||||
|
crate://crates.io/rand_isaac/0.1.1 \
|
||||||
|
crate://crates.io/rand_jitter/0.1.4 \
|
||||||
|
crate://crates.io/rand_os/0.1.3 \
|
||||||
|
crate://crates.io/rand_pcg/0.1.2 \
|
||||||
|
crate://crates.io/rand_xorshift/0.1.1 \
|
||||||
|
crate://crates.io/rdrand/0.4.0 \
|
||||||
|
crate://crates.io/redox_syscall/0.1.56 \
|
||||||
|
crate://crates.io/redox_users/0.3.0 \
|
||||||
|
crate://crates.io/regex-syntax/0.6.10 \
|
||||||
|
crate://crates.io/regex/1.2.0 \
|
||||||
|
crate://crates.io/rustc-ap-arena/542.0.0 \
|
||||||
|
crate://crates.io/rustc-ap-graphviz/542.0.0 \
|
||||||
|
crate://crates.io/rustc-ap-rustc_data_structures/542.0.0 \
|
||||||
|
crate://crates.io/rustc-ap-rustc_errors/542.0.0 \
|
||||||
|
crate://crates.io/rustc-ap-rustc_lexer/542.0.0 \
|
||||||
|
crate://crates.io/rustc-ap-rustc_macros/542.0.0 \
|
||||||
|
crate://crates.io/rustc-ap-rustc_target/542.0.0 \
|
||||||
|
crate://crates.io/rustc-ap-serialize/542.0.0 \
|
||||||
|
crate://crates.io/rustc-ap-syntax/542.0.0 \
|
||||||
|
crate://crates.io/rustc-ap-syntax_pos/542.0.0 \
|
||||||
|
crate://crates.io/rustc-demangle/0.1.15 \
|
||||||
|
crate://crates.io/rustc-hash/1.0.1 \
|
||||||
|
crate://crates.io/rustc-rayon-core/0.2.0 \
|
||||||
|
crate://crates.io/rustc-rayon/0.2.0 \
|
||||||
|
crate://crates.io/rustc-workspace-hack/1.0.0 \
|
||||||
|
crate://crates.io/rustc_version/0.2.3 \
|
||||||
|
crate://crates.io/ryu/1.0.0 \
|
||||||
|
crate://crates.io/same-file/1.0.5 \
|
||||||
|
crate://crates.io/scoped-tls/1.0.0 \
|
||||||
|
crate://crates.io/scoped_threadpool/0.1.9 \
|
||||||
|
crate://crates.io/scopeguard/0.3.3 \
|
||||||
|
crate://crates.io/semver-parser/0.7.0 \
|
||||||
|
crate://crates.io/semver/0.9.0 \
|
||||||
|
crate://crates.io/serde/1.0.97 \
|
||||||
|
crate://crates.io/serde_derive/1.0.97 \
|
||||||
|
crate://crates.io/serde_json/1.0.40 \
|
||||||
|
crate://crates.io/smallvec/0.6.10 \
|
||||||
|
crate://crates.io/spin/0.5.0 \
|
||||||
|
crate://crates.io/stable_deref_trait/1.1.1 \
|
||||||
|
crate://crates.io/strsim/0.8.0 \
|
||||||
|
crate://crates.io/structopt-derive/0.2.18 \
|
||||||
|
crate://crates.io/structopt/0.2.18 \
|
||||||
|
crate://crates.io/syn/0.15.42 \
|
||||||
|
crate://crates.io/synstructure/0.10.2 \
|
||||||
|
crate://crates.io/term/0.6.0 \
|
||||||
|
crate://crates.io/termcolor/1.0.5 \
|
||||||
|
crate://crates.io/textwrap/0.11.0 \
|
||||||
|
crate://crates.io/thread_local/0.3.6 \
|
||||||
|
crate://crates.io/toml/0.5.1 \
|
||||||
|
crate://crates.io/ucd-util/0.1.5 \
|
||||||
|
crate://crates.io/unicode-segmentation/1.3.0 \
|
||||||
|
crate://crates.io/unicode-width/0.1.5 \
|
||||||
|
crate://crates.io/unicode-xid/0.1.0 \
|
||||||
|
crate://crates.io/unicode_categories/0.1.1 \
|
||||||
|
crate://crates.io/utf8-ranges/1.0.3 \
|
||||||
|
crate://crates.io/vec_map/0.8.1 \
|
||||||
|
crate://crates.io/walkdir/2.2.9 \
|
||||||
|
crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
|
||||||
|
crate://crates.io/winapi-util/0.1.2 \
|
||||||
|
crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
|
||||||
|
crate://crates.io/winapi/0.3.7 \
|
||||||
|
crate://crates.io/wincolor/1.0.1 \
|
||||||
|
"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# FIXME: update generateme with the real MD5 of the license file
|
||||||
|
LIC_FILES_CHKSUM = " \
|
||||||
|
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
||||||
|
file://LICENSE-MIT;md5=0b29d505d9225d1f0815cbdcf602b901 \
|
||||||
|
"
|
||||||
|
|
||||||
|
SUMMARY = "Tool to find and fix Rust formatting issues"
|
||||||
|
HOMEPAGE = "https://github.com/rust-lang/rustfmt"
|
||||||
|
LICENSE = "Apache-2.0 | MIT"
|
||||||
|
|
||||||
|
# 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 rustfmt-nightly-${PV}.inc
|
||||||
|
include rustfmt-nightly.inc
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
require sdl2.inc
|
|
||||||
|
|
||||||
DEPENDS += "\
|
|
||||||
libc-rs \
|
|
||||||
lazy-static \
|
|
||||||
bitflags \
|
|
||||||
rand-rs \
|
|
||||||
num \
|
|
||||||
sdl2-sys \
|
|
||||||
"
|
|
||||||
|
|
||||||
LIB_SRC = "${S}/src/sdl2/lib.rs"
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
require sdl2.inc
|
|
||||||
|
|
||||||
DEPENDS += "\
|
|
||||||
libc-rs \
|
|
||||||
libsdl2 \
|
|
||||||
"
|
|
||||||
|
|
||||||
LIB_SRC = "${S}/sdl2-sys/src/lib.rs"
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
DESCRIPTION = "SDL2 bindings for Rust"
|
|
||||||
HOMEPAGE = "https://github.com/AngryLawyer/rust-sdl2"
|
|
||||||
LICENSE = "MIT"
|
|
||||||
LIC_FILES_CHKSUM = "\
|
|
||||||
file://LICENSE;md5=efab06594070f714e6e655a25c330fcd \
|
|
||||||
"
|
|
||||||
|
|
||||||
inherit rust-bin
|
|
||||||
|
|
||||||
SRC_URI = "git://github.com/AngryLawyer/rust-sdl2.git;protocol=https"
|
|
||||||
SRCREV = "ffdfe48bd90d8c141f1f8a6f38a88243ad78508f"
|
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
|
||||||
|
|
||||||
do_compile () {
|
|
||||||
oe_compile_rust_lib
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install () {
|
|
||||||
oe_install_rust_lib
|
|
||||||
}
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
DESCRIPTION = "SDL2 bindings for Rust"
|
|
||||||
HOMEPAGE = "https://github.com/AngryLawyer/rust-sdl2"
|
|
||||||
LICENSE = "MIT"
|
|
||||||
LIC_FILES_CHKSUM = "\
|
|
||||||
file://LICENSE;md5=d8786ddfe98d69e641491528dd88fa55 \
|
|
||||||
"
|
|
||||||
|
|
||||||
DEPENDS += "\
|
|
||||||
bitflags \
|
|
||||||
sdl2-sys \
|
|
||||||
sdl2-rs \
|
|
||||||
libsdl2-ttf \
|
|
||||||
"
|
|
||||||
|
|
||||||
inherit rust-bin
|
|
||||||
|
|
||||||
LIB_SRC = "${S}/src/sdl2_ttf/lib.rs"
|
|
||||||
|
|
||||||
SRC_URI = "git://github.com/andelf/rust-sdl2_ttf.git;protocol=https"
|
|
||||||
SRCREV = "203a550a804aed79e6ad6c1fcc0ed9e31e9ca2f4"
|
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
|
||||||
|
|
||||||
do_compile () {
|
|
||||||
oe_compile_rust_lib
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install () {
|
|
||||||
oe_install_rust_lib
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user